Compare commits

...
4031 Commits
Author SHA1 Message Date
Lauri Ojansivu 3fcde252f7 v3.78 2020-02-12 02:23:26 +02:00
Lauri Ojansivu e89965f642 Remove card element grouping to create compact card layout.
Card Settings / Show on Card: Description Title and Description Text.

Thanks to e-stoniauk, 2020product and xet7 !

Fixes https://github.com/wekan/wekan/pull/2922
2020-02-12 02:08:29 +02:00
Lauri Ojansivu b4e5583065 Update translations. 2020-02-12 02:06:26 +02:00
Lauri Ojansivu 65b11ce3bd v3.77 2020-02-10 20:45:02 +02:00
Lauri Ojansivu ea74e6ad23 Update ChangeLog. 2020-02-10 19:39:30 +02:00
Lauri Ojansivu 4467a68b97 Part 2: Fix Copy Card Link to Clipboard button at card title did not work.
Thanks to 2020product and xet7 !

Related https://github.com/wekan/wekan/pull/2922
2020-02-10 19:37:25 +02:00
Lauri Ojansivu 799bf5735b Update translations. 2020-02-10 19:14:25 +02:00
Lauri Ojansivu 92d0385911 Update ChangeLog. 2020-02-10 19:04:03 +02:00
Lauri Ojansivu 9a21b0a1c9 Fix Copy Card Link to Clipboard button at card title did not work.
Thanks to 2020product and xet7 !

Related https://github.com/wekan/wekan/pull/2922
2020-02-10 18:47:03 +02:00
Lauri Ojansivu 6eb21faca2 Update ChangeLog. 2020-02-10 17:27:18 +02:00
Lauri Ojansivu 2a54218f3f Remove hiding comments and activities. 2020-02-10 17:25:27 +02:00
Lauri Ojansivu 6eac38bde5 Update translations. 2020-02-07 14:05:39 +02:00
Lauri Ojansivu 947c1f81ee Update ChangeLog. 2020-02-07 14:03:57 +02:00
Lauri Ojansivu 2fce02afbc Add Feature: Card Settings/Show on card/Activities.
Fix: When in Card Settings hiding Comments, only adding new comment is hidden, not old comments.

Thanks to xet7 !

Closes #2925
2020-02-07 13:58:43 +02:00
Lauri Ojansivu a58e6be78d v3.76 2020-02-07 03:29:21 +02:00
Lauri Ojansivu 77b43e75a2 Update translations. 2020-02-07 03:28:33 +02:00
Lauri Ojansivu 228e5389cf Update ChangeLog. 2020-02-07 03:20:46 +02:00
Lauri Ojansivu bf78b093ba Try to disable dragging Swimlanes/Lists/Cards/Checklists/Subtasks on small mobile smartphones webbrowsers, and hide drag handles on mobile web.
Thanks to xet7 !
2020-02-07 03:16:16 +02:00
Lauri Ojansivu 8384d68a06 Use Meteor 1.9 and Node.js 12.15.0 on Snap and Docker.
Thanks to xet7 !
2020-02-07 03:12:27 +02:00
Lauri Ojansivu 120a430deb Fix Bug enable/disable Comments in Card Settings.
Thanks to warnt, mdurokov and xet7 !

Closes #2923
2020-02-07 02:34:57 +02:00
Lauri Ojansivu 8e7b9b73b5 Update translations. 2020-02-07 00:08:36 +02:00
Lauri Ojansivu 47afee63d1 v3.75 2020-02-05 20:12:22 +02:00
Lauri Ojansivu 243e4c856e Update translations. 2020-02-05 19:57:19 +02:00
Lauri Ojansivu f22785dbcd - Fix adding comments.
- Added some working layout changes from https://github.com/wekan/wekan/pull/2920.
- Fixed Card Settings not working at Sandstorm.

Thanks to 2020product xet7 !

Closes #2918,
closes https://github.com/wekan/wekan/pull/2920
2020-02-05 19:47:08 +02:00
Lauri Ojansivu 5848e7fe29 Update translations. 2020-02-05 17:26:05 +02:00
Lauri Ojansivu 4c5398f643 Merge branch 'master' of github.com:wekan/wekan 2020-02-05 02:48:48 +02:00
Lauri Ojansivu 45ecd2d04f v3.74
And update translations.
2020-02-05 02:48:13 +02:00
Lauri Ojansivu 132ddfa931 Update translations. 2020-02-05 02:46:27 +02:00
Lauri Ojansivu b7f9dc77d1 Update translations. 2020-02-05 01:45:16 +02:00
Lauri Ojansivu b68557a293 Remove duplicate function. 2020-02-05 01:44:29 +02:00
Lauri Ojansivu bc6e78608b Merge branch '2020product-dollybean' 2020-02-05 01:34:28 +02:00
Lauri Ojansivu 1350694538 Add Board Card Settings to Show on Card only some of it's fields.
Default WYSIWYG comment editor not enabled, use markdown instead.
2020-02-05 01:18:01 +02:00
Lauri Ojansivu 65fa2f626f Merge branch 'dollybean' of https://github.com/2020product/wekan into 2020product-dollybean 2020-02-05 01:17:15 +02:00
dollybean 0b00a8095c Customize of some card's functions 2020-02-04 02:28:45 -08:00
Lauri Ojansivu 58df99d5be Update translations. 2020-01-31 19:50:09 +02:00
Lauri Ojansivu e37bbb9e44 Update package versions. 2020-01-31 19:48:21 +02:00
Lauri Ojansivu 85d47c4ff2 v3.73 2020-01-29 14:57:41 +02:00
Lauri Ojansivu 928973e310 Update translations. 2020-01-29 14:46:01 +02:00
Lauri Ojansivu 9e93540970 Update ChangeLog. 2020-01-29 14:41:38 +02:00
Lauri Ojansivu ecf76f2c61 Merge branch 'master' of github.com:wekan/wekan 2020-01-29 14:39:52 +02:00
Lauri Ojansivu 79223b0b8c Merge branch 'kuleuven-feature-action-move-other-board' 2020-01-29 14:39:29 +02:00
Lauri Ojansivu 5e6469bddc Add info how to install Meteor on Windows. 2020-01-29 01:40:16 +02:00
Lauri Ojansivu 2216cc1b07 Merge branch 'feature-action-move-other-board' of https://github.com/kuleuven/wekan into kuleuven-feature-action-move-other-board 2020-01-23 17:24:27 +02:00
Lauri Ojansivu f275eb5e47 Update ChangeLog. 2020-01-23 16:20:50 +02:00
Peter Verraedt 4b56bbfe6d Add rule action to move cards to other boards
Fixes #1996
2020-01-23 15:12:18 +01:00
Lauri Ojansivu d8c09369eb Merge branch 'izadpoor-hotfix-export-board' 2020-01-23 16:10:27 +02:00
Lauri Ojansivu 6ef532d187 Merge branch 'hotfix-export-board' of https://github.com/izadpoor/wekan into izadpoor-hotfix-export-board 2020-01-23 15:11:21 +02:00
Lauri Ojansivu c610ba0976 Update ChangeLog. 2020-01-23 15:07:33 +02:00
Lauri Ojansivu 362b6432a9 Merge pull request #2897 from bogie/oauth2-nc
Implemented Nextcloud OAuth2 Hack References Issue #1874
2020-01-23 15:00:17 +02:00
izadpoor f868b3d1f9 fixed board export with attchment 2020-01-23 01:16:56 -05:00
Bojan Hartmann 7bba07ccbf Implemented Nextcloud OAuth2 Hack
Fixed: OAuth2 authentication via Nextcloud(tested Nextcloud 17.0.2-18.0.0)
Todo: actually use the profile data: Fullname and Email in Profile
2020-01-22 22:28:03 +01:00
Lauri Ojansivu 70f5326099 Update translations. 2020-01-22 08:06:26 +02:00
Lauri Ojansivu a64204a0c4 Update ChangeLog. 2020-01-20 16:53:38 +02:00
Lauri Ojansivu ea73d9a424 Merge pull request #2891 from tsia/master
Show System Wide Announcement in one line
2020-01-20 16:50:26 +02:00
tsia 3e2415631f Update header.styl 2020-01-20 11:23:08 +01:00
Lauri Ojansivu f425fbfcdf v3.72 2020-01-19 15:29:28 +02:00
Lauri Ojansivu a0e9f4615c v3.71 2020-01-18 20:23:10 +02:00
Lauri Ojansivu 5e5ab95410 Try to fix Wekan at Sandstorm by using Meteor 1.8.x and Node 8.17.0 at Sandstorm.
Thanks to xet7 !
2020-01-18 20:19:20 +02:00
Lauri Ojansivu d7663316f1 v3.70 API docs. 2020-01-18 16:53:27 +02:00
Lauri Ojansivu a0b6b6dac7 v3.70 2020-01-18 16:51:26 +02:00
Lauri Ojansivu 62328c2d2a Merge branch 'master' of github.com:wekan/wekan 2020-01-18 16:42:07 +02:00
Lauri Ojansivu 48f8050c25 Add Snap Meteor 1.8.x files to lint ignore files. 2020-01-18 16:41:23 +02:00
Lauri Ojansivu 135b770400 Add Snap Meteor 1.8.x files to ignore lists. 2020-01-18 16:40:49 +02:00
Lauri Ojansivu f20c2e4565 Update translations. 2020-01-18 16:39:47 +02:00
Lauri Ojansivu 9b905c2833 Try to fix Node 12 Buffer() deprecation errors.
Thanks to xet7 !
2020-01-18 16:01:02 +02:00
Lauri Ojansivu 7efbf30af6 Update translations. 2020-01-17 19:17:43 +02:00
Lauri Ojansivu d9778c1220 Update translations. 2020-01-16 07:57:35 +02:00
Lauri Ojansivu 10f142a1a0 Add LD_LIBRARY_PATH. 2020-01-16 06:49:16 +02:00
Lauri Ojansivu 6a01170d86 Use Meteor 1.8.x on Snap. 2020-01-16 06:15:10 +02:00
Lauri Ojansivu 55a2aa90cb Use Meteor 1.8.x on Snap. 2020-01-16 06:07:22 +02:00
Lauri Ojansivu feafa1827a Try to fix Snap. 2020-01-16 05:52:11 +02:00
Lauri Ojansivu 116e63aa03 Try to fix Snap. 2020-01-14 20:04:47 +02:00
Lauri Ojansivu 1159199e90 Try to fix Snap. 2020-01-14 19:43:25 +02:00
Lauri Ojansivu 0009c4c650 Try to fix Snap. 2020-01-14 12:29:05 +02:00
Lauri Ojansivu b591727b64 Try to fix Snap. 2020-01-14 11:17:23 +02:00
Lauri Ojansivu 218b44d476 Try to fix Snap. 2020-01-14 11:16:43 +02:00
Lauri Ojansivu cc020485c1 Try to fix Snap. 2020-01-12 22:37:37 +02:00
Lauri Ojansivu fc6149d232 Try to fix Snap. 2020-01-12 15:47:01 +02:00
Lauri Ojansivu 8090b6f701 Try to fix Snap. 2020-01-11 23:29:23 +02:00
Lauri Ojansivu 7fc2f2e2e5 Try to fix Snap. 2020-01-11 23:23:27 +02:00
Lauri Ojansivu 76c7fa67d8 Try to fix Snap. 2020-01-11 21:41:09 +02:00
Lauri Ojansivu 4d73eccaa8 Try to fix Snap. 2020-01-11 20:47:26 +02:00
Lauri Ojansivu 634706ca6a Try to fix Snap. 2020-01-11 20:44:46 +02:00
Lauri Ojansivu 88ef717793 Try to fix Snap. 2020-01-11 20:19:23 +02:00
Lauri Ojansivu 870dfc4489 Try to fix snap. 2020-01-11 13:35:27 +02:00
Lauri Ojansivu e01f4dbf13 Change Buffer to Buffer.alloc on Node v12. Try to fix Snap. 2020-01-11 13:08:29 +02:00
Lauri Ojansivu 5bece0dd1e Fix prettier. 2020-01-10 04:09:40 +02:00
Lauri Ojansivu 83e4d214cd Update Travis. 2020-01-10 04:06:54 +02:00
Lauri Ojansivu 891fd60a6c v3.69 2020-01-10 04:03:41 +02:00
Lauri Ojansivu ecb76842fc Fix docker-compose.yml 2020-01-10 03:59:33 +02:00
Lauri Ojansivu da8ae71963 v3.68 2020-01-10 03:57:19 +02:00
Lauri Ojansivu 031df54a2e Try to fix Snap.
Thanks to xet7 !
2020-01-10 03:51:57 +02:00
Lauri Ojansivu 6849bb8af9 v3.67 2020-01-10 02:54:10 +02:00
Lauri Ojansivu 2b382b940b Try to fix Snap. 2020-01-10 02:49:38 +02:00
Lauri Ojansivu 8a64531ad9 v3.66 2020-01-10 01:35:51 +02:00
Lauri Ojansivu 39bf1e375e Try to fix Snap. 2020-01-10 01:31:48 +02:00
Lauri Ojansivu b3e1b8683c Update translations. 2020-01-10 00:18:50 +02:00
Lauri Ojansivu be96f16069 v3.65 2020-01-10 00:16:52 +02:00
Lauri Ojansivu 785f3cf88b Upgrade to Meteor 1.9, Node 12.14.1 and MongoDB 4.2.2.
Thanks to xet7 !
2020-01-10 00:04:43 +02:00
Lauri Ojansivu d16a601c04 More keyboard shortcuts: c for archive card
Thanks to xet7 !

Related #1878
2020-01-09 23:22:27 +02:00
Lauri Ojansivu 5724674e73 Add more issue repo links to GitHub issue template. 2020-01-08 22:09:08 +02:00
Lauri Ojansivu ba0068598c v3.64 2020-01-06 20:33:01 +02:00
Lauri Ojansivu 8f16c8bf8e Update translations. 2020-01-06 20:27:38 +02:00
Lauri Ojansivu 29726453a0 Update ChangeLog. 2020-01-06 20:19:56 +02:00
Lauri Ojansivu 5058233509 Wider sidebar.
Thanks to vjrj !

Closes #2218
2020-01-06 20:12:35 +02:00
Lauri Ojansivu 8442e1e83b Fix typo. 2020-01-06 11:20:11 +02:00
Lauri Ojansivu ef0689baf7 Update ChangeLog. 2020-01-06 11:04:58 +02:00
Lauri Ojansivu ddce0ada09 Removed Custom HTML feature that does not work.
Thanks to xet7 !

Closes #2218
2020-01-06 11:01:38 +02:00
Lauri Ojansivu 60df1fa1ee v3.63 2020-01-06 10:14:00 +02:00
Lauri Ojansivu 8e93912389 Update translations. 2020-01-06 10:09:14 +02:00
Lauri Ojansivu 064e4a2cf9 Update ChangeLog. 2020-01-06 10:07:02 +02:00
Lauri Ojansivu 8ce9939217 Fix: Unable to find Archive Card/List/Swimlane in board settings.
Thanks to neobradley and xet7 !

Closes #2872
2020-01-06 10:02:37 +02:00
Lauri Ojansivu 41a28df430 v3.62 2020-01-05 21:43:44 +02:00
Lauri Ojansivu c36a74b956 Update ChangeLog. 2020-01-05 21:36:28 +02:00
Lauri Ojansivu f6f7705f23 Add Worker role.
This was originally added at Wekan v3.58,
reverted at Wekan v3.60 because of bugs,
and now after fixes added back.

Thanks to xet7 !

Closes #2788
2020-01-05 21:28:14 +02:00
Lauri Ojansivu 6209b792aa Update translations. 2020-01-05 19:48:11 +02:00
Lauri Ojansivu f8873b009b Fix typo. 2020-01-03 17:20:04 +02:00
Lauri Ojansivu 1a1f610977 v3.61 2020-01-03 17:13:56 +02:00
Lauri Ojansivu 3d7871ebfc Update ChangeLog. 2020-01-03 17:09:49 +02:00
Lauri Ojansivu cd253522a3 Add more Font Awesome icons. This was originally added
at Wekan v3.58, removed at Wekan v3.60, and now
added back at Wekan v3.61.

Thanks to xet7 !
2020-01-03 17:02:27 +02:00
Lauri Ojansivu cc70773fd5 v3.60 2020-01-03 16:10:17 +02:00
Lauri Ojansivu 27943796ad Revert to Wekan v3.57 version of client and models directories,
removing Worker role temporarily, because Worker role changes
broke saving card.

Thanks to xet7 !
2020-01-03 16:02:31 +02:00
Lauri Ojansivu 9b28847592 v3.59 2020-01-03 13:34:55 +02:00
Lauri Ojansivu 5376bc7b79 Fix not being able to edit received date.
Thanks to xet7 !
2020-01-03 13:27:27 +02:00
Lauri Ojansivu 19d42c675b v3.58 2020-01-03 07:07:12 +02:00
Lauri Ojansivu be3e4af643 Fix typos. 2020-01-03 07:01:39 +02:00
Lauri Ojansivu 96b3352b2b Update translations. 2020-01-03 06:57:10 +02:00
Lauri Ojansivu 62408fcbf7 Update ChangeLog. 2020-01-03 06:54:39 +02:00
Lauri Ojansivu 2bf004120d Add Worker role.
Add more Font Awesome icons.
Fix browser console errors when editing user profile name etc.

Thanks to xet7 !

Closes #2788
2020-01-03 06:49:35 +02:00
Lauri Ojansivu 0709b5abc8 Update ChangeLog. 2020-01-02 14:07:35 +02:00
Lauri Ojansivu ac43b4c1e6 Merge pull request #2867 from jiangytcn/helm
fix: k8s templates update for helm
2020-01-02 14:02:43 +02:00
Jiang Yitao 5aeb88ee6c fix: k8s templates update for helm
Why:

This change addresses the need by:

1. upgrade mongo replica version
2. access mongo via service url
3. change the expose servicePort to numeric

Signed-off-by: Jiang Yitao <jiangyt.cn@gmail.com>
2020-01-02 11:52:34 +08:00
Lauri Ojansivu c25162aac7 Update translations. 2019-12-31 21:46:23 +02:00
Lauri Ojansivu da6df62042 Update translations. 2019-12-31 21:40:32 +02:00
Lauri Ojansivu 458b9eddb2 Update translations. 2019-12-30 18:25:42 +02:00
Lauri Ojansivu 7af7fe6146 v3.57 2019-12-22 10:51:05 +02:00
Lauri Ojansivu 340d7c731f Update translations. 2019-12-22 10:09:23 +02:00
Lauri Ojansivu e142acfdb7 Remove LINKED_CARDS_ENABLED settings, because it does not work.
Thanks to xet7 !
2019-12-22 09:44:58 +02:00
Lauri Ojansivu e928660bc0 LINKED_CARDS_ENABLED settings part 3.
In Progress, linked cards not completely disabled yet.

Thanks to xet7 !
2019-12-21 19:38:02 +02:00
Lauri Ojansivu 7a90e89348 Update ChangeLog. 2019-12-20 17:07:52 +02:00
Lauri Ojansivu 1f1aea87a4 Visual difference for inactive user in Administration: strikethrough.
Thanks to hever and xet7 !

Closes #2860
2019-12-20 17:04:33 +02:00
Lauri Ojansivu e9b7c4cdde Update ChangeLog. 2019-12-20 16:35:35 +02:00
Lauri Ojansivu 1bf7f95bd8 LINKED_CARDS_ENABLED settings part 2.
Thanks to xet7 !
2019-12-20 16:32:38 +02:00
Lauri Ojansivu 2a065825fa Update ChangeLog. 2019-12-20 16:18:32 +02:00
Lauri Ojansivu 492ed2bdc2 Merge pull request #2834 from Akuket/master
Issue #2688
2019-12-20 16:12:29 +02:00
Lauri Ojansivu afe7d4991d Merge branch 'Robert-Lebedeu-master' 2019-12-20 16:10:26 +02:00
Lauri Ojansivu 0649add494 Merge branch 'master' of https://github.com/Robert-Lebedeu/wekan into Robert-Lebedeu-master 2019-12-20 16:09:48 +02:00
Lauri Ojansivu 2dafde8db9 Update ChangeLog. 2019-12-20 16:06:12 +02:00
Lauri Ojansivu 782d0b6209 Upgrade to Meteor 1.8.3 and Node 8.17.0.
Update release scripts.
Fix ldap background sync documentation part 2.

Thanks to xet7 !
2019-12-20 16:03:46 +02:00
Lauri Ojansivu 8dcd360f93 Merge branch 'master' of github.com:wekan/wekan 2019-12-20 15:36:48 +02:00
Lauri Ojansivu ea1af474fd Update translations. 2019-12-20 15:36:30 +02:00
Lauri Ojansivu e3d0aece14 Merge pull request #2855 from koelle25/fix-ldap-background-sync-documentation
Fix ldap background sync documentation
2019-12-20 15:00:31 +02:00
Kevin Köllmann 75dae5c714 Made the link https and moved default value into setting 2019-12-18 15:32:17 +01:00
Kevin Köllmann f96bba7a63 Update the LDAP_BACKGROUND_SYNC_INTERVAL setting documentation 2019-12-18 15:12:36 +01:00
Lauri Ojansivu 3b3950369c Fix comment text disappearing when clicking outside of comment text area.
Fix lint error.

Thanks to xet7 !
2019-12-17 23:42:30 +02:00
Robert Lebedeu a35df88805 Allow checklist creation for board members
- Only for members with checklist add permission
2019-12-17 12:15:41 +01:00
Robert Lebedeu 40c70c439d Allow card creation for board members
- Only for members with card add permission
2019-12-17 12:15:06 +01:00
Robert Lebedeu 2c4d3fa317 Fix checkBoardAccess authentication check 2019-12-16 18:10:48 +01:00
Lauri Ojansivu a4dbe98299 Update translations. 2019-12-15 08:05:10 +02:00
Lauri Ojansivu 98602dabb0 Update translations. 2019-12-14 14:37:55 +02:00
Lauri Ojansivu 6ae5f0cea5 Update translations. 2019-12-13 22:20:00 +02:00
Lauri Ojansivu 0316802b84 Update ChangeLog. 2019-12-13 00:41:39 +02:00
Lauri Ojansivu 25561946ed Fix: Allow to set empty card title, AssignedBy and RequestedBy.
Thanks to xet7 !
2019-12-13 00:37:21 +02:00
Lauri Ojansivu c29aa76d02 Update translations. 2019-12-12 18:48:24 +02:00
Lauri Ojansivu 258af8bfed Update ChangeLog. 2019-12-12 18:45:18 +02:00
Lauri Ojansivu e2a374f0aa Fix: Don't add a blank space for empty custom fields on minicards.
Thanks to roobre and xet7 !

Closes #2850
2019-12-12 18:41:22 +02:00
Lauri Ojansivu 6a53aaf24a Update translations. 2019-12-07 15:36:06 +02:00
Lauri Ojansivu b2eccc7b54 Back to Meteor 1.8.x. 2019-12-05 14:31:28 +02:00
Lauri Ojansivu c2fa23d525 Snap back to MongoDB 3.2.22 2019-12-05 13:58:14 +02:00
Lauri Ojansivu e6fa02e0a1 Use libcurl3 instead. 2019-12-05 12:00:51 +02:00
Lauri Ojansivu e164aafbd8 Add libcurl4 to snap. 2019-12-05 11:34:10 +02:00
Lauri Ojansivu a863194e74 Make travis to wait Wekan to build.
Thanks to xet7 !
2019-12-05 11:23:40 +02:00
Lauri Ojansivu f518397f7a Merge branch 'master' of github.com:wekan/wekan 2019-12-05 10:35:46 +02:00
Lauri Ojansivu fc91d866db Try to fix Travis. 2019-12-05 10:35:28 +02:00
Lauri Ojansivu 8670561f78 Create dockerimage.yml 2019-12-05 10:31:32 +02:00
Lauri Ojansivu d8474056d2 Update Travis docker-compose version. 2019-12-05 10:22:51 +02:00
Lauri Ojansivu e48c5fb066 Update ChangeLog. 2019-12-05 10:04:23 +02:00
Lauri Ojansivu 467a3be850 Update to Meteor 1.9-beta.4, Node.js 12.13.1 and MongoDB 4.2.1.
Remove MongoDB option --smallfiles that is not supported in MongoDB 4.2.1.
Add MongoDB option --quiet to docker-compose.yml.
Update snap fibers to 4.0.1.

Thanks to xet7 !
2019-12-05 10:00:07 +02:00
Lauri Ojansivu 1b12d3f04f Update translations. 2019-12-05 07:03:59 +02:00
Guillaume c77979ff13 Merge branch 'master' of https://github.com/wekan/wekan 2019-11-29 14:57:33 +01:00
Guillaume 0a1e7006b3 Using LINKED_CARDS_ENABLED 2019-11-29 14:48:44 +01:00
Lauri Ojansivu d5a8ec1c36 Remove 1st implementation of collapse swimlanes. I will do it
differently in next 2nd implementation.

Thanks to xet7 !
2019-11-29 03:25:52 +02:00
Lauri Ojansivu d497b75c1d Update translations. 2019-11-28 15:46:39 +02:00
Akuket 07724f99ae Add LINKED_CARDS_ENABLED env var 2019-11-28 11:55:36 +01:00
Lauri Ojansivu 8898862d36 Fix lint errors. 2019-11-26 02:29:36 +02:00
Lauri Ojansivu 2cc3507740 Update translations. 2019-11-26 01:26:18 +02:00
Lauri Ojansivu 3565437728 v3.56 2019-11-21 23:03:09 +02:00
Lauri Ojansivu 15ba982810 Update ChangeLog. 2019-11-21 22:54:09 +02:00
Lauri Ojansivu 488a895850 Update translations. 2019-11-21 22:49:07 +02:00
Lauri Ojansivu c7ded51502 Add to snap Snap MongoDB logging option --quiet .
Thanks to fmeehan and xet7 !

Closes wekan/wekan-snap#113
2019-11-21 22:21:05 +02:00
Lauri Ojansivu c66cc3d4da Change base image eoan to rolling, that is probably always newest Ubuntu
rolling version.

Thanks to xet7 !
2019-11-21 20:44:46 +02:00
Lauri Ojansivu c60967e935 It seems Ubuntu eoan package bsdtar has been renamed to libarchive-tools.
Thanks to xet7 !
2019-11-21 20:42:28 +02:00
Lauri Ojansivu 343343e7e7 Dockerfile: Use eoan base image. Add missing python3 dependency for node-gyp.
Thanks to xet7 !
2019-11-21 20:22:37 +02:00
Lauri Ojansivu 4f5de87cc4 Fix typo. 2019-11-20 23:49:43 +02:00
Lauri Ojansivu f371cbd5d2 Update translations. 2019-11-20 23:49:08 +02:00
Lauri Ojansivu 99ef6e3a20 Update ChangeLog. 2019-11-20 23:47:25 +02:00
Lauri Ojansivu 599ace1db7 Fix slow scroll on card detail by setting scrollInertia to 0.
Thanks to cafeoh !

Closes #2179
2019-11-20 23:40:04 +02:00
Lauri Ojansivu a06daff92e Remove eslint option that does not work.
Thanks to xet7 !
2019-11-20 23:39:11 +02:00
Lauri Ojansivu 58e505f79a Try to fix lint errors. 2019-11-20 21:28:48 +02:00
Lauri Ojansivu 788dd0a81a Fix lint errors. 2019-11-20 21:10:11 +02:00
Lauri Ojansivu 82d76e55e5 Add babel-eslint. 2019-11-20 20:22:30 +02:00
Lauri Ojansivu 38dfe0b9a7 Update to Meteor 1.8.2. Update dependencies.
Thanks to xet7 !
2019-11-20 19:57:16 +02:00
Lauri Ojansivu b0f345ba21 Fix lint errors and update travis NPM version. 2019-11-20 10:14:53 +02:00
Lauri Ojansivu 95a4592346 Update Wekan API docs. 2019-11-19 23:08:29 +02:00
Lauri Ojansivu 3168c4067d v3.55 2019-11-19 21:59:09 +02:00
Lauri Ojansivu 115d23f929 Use database when logged in. Continued.
Thanks to xet7 !
2019-11-19 21:55:43 +02:00
Lauri Ojansivu 975258ef39 Update translations. 2019-11-19 21:52:09 +02:00
Lauri Ojansivu b13d28203b Update ChangeLog. 2019-11-19 21:45:12 +02:00
Lauri Ojansivu 4786b0c18d Use database when logged in. Continued.
Thanks to xet7 !
2019-11-19 21:42:00 +02:00
Lauri Ojansivu bc9512b750 Update ChangeLog. 2019-11-19 14:17:27 +02:00
Lauri Ojansivu abb31cb603 Update translations. 2019-11-19 14:14:49 +02:00
Lauri Ojansivu 351d4767d7 When logged in, use database for setting, so that changes are
immediate. Only on public board use cookies.
Comment out Collapse CSS that is not in use.

Thanks to xet7 !
2019-11-19 14:09:36 +02:00
Lauri Ojansivu f595120e72 v3.54 2019-11-18 23:06:10 +02:00
Lauri Ojansivu 3f2c3c1af9 Even more thanks. 2019-11-18 22:36:31 +02:00
Lauri Ojansivu 69f2e8e74d Update ChangeLog. 2019-11-18 22:35:14 +02:00
Lauri Ojansivu 72553c1f14 Update translations. 2019-11-18 22:26:20 +02:00
Lauri Ojansivu 96abe3c691 New feature: Now there is popup selection of Lists/Swimlanes/Calendar/Roles.
New feature, not set visible yet, because switching to it does not
work properly yet: Collapsible Swimlanes #2804

Fix: Public board now loads correctly. When you select one of Lists/Swimlanes/Calendar view and
reload webbrowser page, it can change view. Closes #2311

Fix: List sorting commented out. Closes #2800

Fix: Errors hasHiddenMinicardText, hasShowDragHandles, showSort, hasSortBy, profile,
FirefoxAndroid/IE11/Vivaldi/Chromium browsers not working by using
cookies instead of database.
More details at https://github.com/wekan/wekan/issues/2643#issuecomment-554907955
Note: Cookie changes are not always immediate, if there is no effect,
you may need to reload webbrowser page.
Closes #2643 .

Thanks to xet7 !
2019-11-18 22:23:49 +02:00
Lauri Ojansivu 2079a5bfa3 Update translations. 2019-11-18 21:13:20 +02:00
Lauri Ojansivu 34bfb09c85 Fix prettier. 2019-11-17 14:03:39 +02:00
Lauri Ojansivu f652b677d0 Fix prettier. 2019-11-17 01:59:57 +02:00
Lauri Ojansivu c93ea33d05 Fix prettify. 2019-11-17 01:36:33 +02:00
Lauri Ojansivu 26e0bbce17 Swimlanes collapsed by default.
TODO:
- Add count.
- Move list names to top, if possible. I did not get it working yet.
- Try to fit collapse+swimlane name etc at same row.

Related #2804
2019-11-17 01:20:26 +02:00
Lauri Ojansivu a636611471 Remove swimlane handle at desktop non-handle mode. 2019-11-17 00:57:50 +02:00
Lauri Ojansivu 9313979db7 v3.53 2019-11-14 21:43:01 +02:00
Lauri Ojansivu 1c4f93a2ce Update translations. 2019-11-14 21:37:46 +02:00
Lauri Ojansivu a34f13aa2a Update ChangeLog. 2019-11-14 21:35:43 +02:00
Lauri Ojansivu ab2a721a14 Revert list sorting change of Wekan v3.51 because it reversed
alphabetical sorting of lists.

Thanks to Dalisay and xet7 !
2019-11-14 21:31:38 +02:00
Lauri Ojansivu 16cc4d7cbd v3.52 2019-11-14 03:08:46 +02:00
Lauri Ojansivu 730352a48d Update changelog. 2019-11-14 03:03:05 +02:00
Lauri Ojansivu 5b41d72e8d Add database migration for assignee.
Thanks to ocdtrekkie and xet7 !
2019-11-14 03:00:14 +02:00
Lauri Ojansivu 33b8952c0b v3.51 2019-11-14 01:03:26 +02:00
Lauri Ojansivu 12483350a1 Update ChangeLog. 2019-11-14 00:58:36 +02:00
Lauri Ojansivu bbc3ab3f99 Change sorting to work on desktop drag handle page instead,
where it seems to work better.

Thanks to xet7 !
2019-11-14 00:55:11 +02:00
Lauri Ojansivu a9e53ec088 v3.50 2019-11-13 21:57:45 +02:00
Lauri Ojansivu 704808a6cb Update translations. 2019-11-13 21:56:53 +02:00
Lauri Ojansivu 5b2f439500 Update API docs. 2019-11-13 21:50:19 +02:00
Lauri Ojansivu 688bc063e5 Update ChangeLog. 2019-11-13 21:48:33 +02:00
Lauri Ojansivu 1eb3d25b40 Update Node.js to v8.16.2.
Thanks to xet7 !
2019-11-13 21:46:33 +02:00
Lauri Ojansivu 7206e2528f Update ChangeLog. 2019-11-13 21:28:17 +02:00
Lauri Ojansivu e1029816df Fix typo. 2019-11-13 21:26:06 +02:00
Lauri Ojansivu 639c95bade Fix typo. 2019-11-13 21:25:15 +02:00
Lauri Ojansivu 0907936d2b Update ChangeLog. 2019-11-13 19:44:18 +02:00
Lauri Ojansivu cdc988c7b1 Merge branch 'master' of github.com:wekan/wekan 2019-11-13 19:41:35 +02:00
Lauri Ojansivu 274a997e62 Fix card, list and swimlane move.
Allow moving cards in multiselect mode.

Closes #2771,
closes #2743,
closes #2704,
related #2081
2019-11-13 19:40:48 +02:00
Lauri Ojansivu 537a48bede Fix card, list and swimlane move.
Closes #2771,
closes #2743,
closes #2704,
related #2081
2019-11-13 19:33:13 +02:00
Lauri Ojansivu 82f0924914 Update translations. 2019-11-13 15:34:29 +02:00
Lauri Ojansivu 7214be488b Close card button now visible on mobile.
Thanks to xet7 !

Closes #2261,
closes #2637
2019-11-08 00:32:10 +02:00
Lauri Ojansivu 36b5965dd0 Close card button now visible on mobile.
Closes #2261
2019-11-08 00:21:04 +02:00
Lauri Ojansivu 3a00a59ffb Update translations. 2019-11-07 23:38:09 +02:00
Lauri Ojansivu 6b855ac045 Update ChangeLog:
More mobile drag handles, and optional desktop drag handles, In Progress.

Thanks to xet7 !

Related #2081
2019-11-07 23:19:06 +02:00
Lauri Ojansivu 9bba0ea283 Done: Assignee field like Jira.
Thanks to xet7 !

Closes #2452
2019-11-07 23:05:44 +02:00
Lauri Ojansivu de7509dc60 Assignee field like Jira #2452 , Done.
Update REST API docs, there can only be one assignee in array.

Thanks to xet7 !
2019-11-07 22:46:55 +02:00
Lauri Ojansivu 9fd14f7ecb Assignee field like Jira #2452 , in progress.
Now assignee is visible also at minicard.

Thanks to xet7 !
2019-11-07 06:04:23 +02:00
Lauri Ojansivu 3cf09efb13 Assignee field like Jira #2452 , in progress.
When there is one selected assignee on card, don't show + button
for adding more assignees, because there can only be one assignee.

Thanks to xet7 !
2019-11-07 00:14:50 +02:00
Lauri Ojansivu 22083787f9 Try to fix prettify. 2019-11-07 00:04:05 +02:00
Lauri Ojansivu 1728298659 Assignee field like Jira #2452 , in progress.
Prevent more than one assignee.

Thanks to xet7 !
2019-11-06 23:36:43 +02:00
Lauri Ojansivu 865c8305cb Update translations. 2019-11-05 23:58:11 +02:00
Lauri Ojansivu 31dbdc835d Assignee field like Jira #2452 , in progress.
Add assignee popup title.

Thanks to xet7 !
2019-11-05 23:53:02 +02:00
Lauri Ojansivu 56efb5c410 Assignee field like Jira #2452 , in progress.
In add assignee popup, avatars are now visible.

Thanks to xet7 !
2019-11-05 23:42:22 +02:00
Lauri Ojansivu ebdb3a0cc3 Fix prettier. 2019-11-05 23:26:07 +02:00
Lauri Ojansivu 473af2f5e2 Update API docs. 2019-11-05 22:10:01 +02:00
Lauri Ojansivu 1d2ab299b0 Update translations. 2019-11-05 22:03:03 +02:00
Lauri Ojansivu f2eda9d7ed Update ChangeLog. 2019-11-05 16:35:52 +02:00
Lauri Ojansivu 52129ed714 Merge pull request #2782 from jymcheong/master
fixed #2780
2019-11-05 16:30:51 +02:00
Lauri Ojansivu e868f9dcee Merge pull request #2783 from bentiss/openapi_gen
Openapi gen fixes
2019-11-05 16:30:14 +02:00
Benjamin Tissoires 3f059ec1e0 generate_openapi: fix enums when they are declared as const
Fixes: #2781
2019-11-05 12:58:06 +01:00
Benjamin Tissoires 8cb3974eff generate_openapi: print a more useful error
...when we can not parse a SchemaProperty
2019-11-05 12:54:58 +01:00
Benjamin Tissoires 7d62d0920c generate_openapi: add a little bit more verbosity when we get an Error 2019-11-05 12:01:04 +01:00
Benjamin Tissoires b787854289 generate_openapi.py: use the logging module
Instead of dealing with custom writes to stderr, it's always better
to rely on standard libraries.
2019-11-05 11:06:40 +01:00
jymcheong d84ea7d16f fixed #2780
https://github.com/wekan/wekan/issues/2780
2019-11-05 11:04:35 +08:00
Lauri Ojansivu 7318e42080 Comment out already existing directory. 2019-11-04 22:53:10 +02:00
Lauri Ojansivu 9f11ea0cc6 Update dependencies. 2019-11-04 22:50:29 +02:00
Lauri Ojansivu 2ec15602d2 Fix desktop swimlane drag handle position.
Thanks to xet7 !

Related #2081
2019-11-04 11:13:10 +02:00
Lauri Ojansivu 6a89605477 Some drag handle fixes.
Thanks to xet7 !

Related #2081
2019-11-04 10:52:52 +02:00
Lauri Ojansivu dff261efee Update translations. 2019-11-04 10:07:51 +02:00
Lauri Ojansivu 931f0d508a Update ChangeLog. 2019-11-04 10:06:13 +02:00
Lauri Ojansivu ea823ab68f Assignee field like Jira #2452 , in progress. 2019-11-04 10:00:28 +02:00
Lauri Ojansivu b56ddf9df9 Fix prettier 2019-11-04 09:59:40 +02:00
Lauri Ojansivu 9a468dfce5 Merge pull request #2779 from bandresen/cardDate_receivedAtfix_and_endDatechange
Card date received-date fix and end-date coloring change (simplify)
2019-11-04 09:52:31 +02:00
Lauri Ojansivu db3476c8ec Merge pull request #2778 from liske/fixes/rest-deletes-all-cards-2624
REST API: fix deletion of a single board card (closes wekan#2624)
2019-11-04 09:51:14 +02:00
Benjamin Andresen 7a5401d5f0 cardDate: endDate coloring change
if no due-date timestamp is set => Gray
if end-date timestamp is younger than due-date timestamp => Green
if end-date timestamp is older than due-date timestamp => Red

resolves #2741
2019-11-04 08:10:11 +01:00
Benjamin Andresen d3ca816762 cardDate: fix ReceivedDate startAt coloring 2019-11-04 08:08:51 +01:00
Thomas Liske b7492e4a11 REST API: fix deletion of a single board card (closes wekan#2624) 2019-11-04 06:08:40 +01:00
Lauri Ojansivu 32ce2b51d8 Assignee field like Jira #2452 , in progress.
Added features:
- When selecting new assignee (+) icon, list shows names who to add.

TODO:
- When selecting new assignee (+) icon, list does not yet show avatars who to add.

Thanks to xet7 !
2019-11-02 16:38:16 +02:00
Lauri Ojansivu e033959278 Update translations. 2019-11-02 16:18:55 +02:00
Lauri Ojansivu 3e8f9ef1a5 Assignee field like Jira #2452 , in progress.
Added features:
- Assignee can now be added and removed.
- Avatar icon is at card and assignee details

TODO:
- When selecting new assignee (+) icon, list does not yet show avatars and names who to add.
  There is empty avatar without name.

Thanks to xet7 !
2019-11-02 16:12:40 +02:00
Lauri Ojansivu 92efb8bec4 Update translations. 2019-10-31 17:08:23 +02:00
Lauri Ojansivu 9e1aaf163f Assignee field like Jira #2452 , in progress.
Assignee can not be removed yet, it removes member, wrong link in popup.

Thanks to xet7 !
2019-10-31 02:21:50 +02:00
Lauri Ojansivu 3f19091a91 Update ChangeLog. 2019-10-30 21:18:11 +02:00
Lauri Ojansivu ae6eb706c7 Update ChangeLog. 2019-10-30 21:14:23 +02:00
Lauri Ojansivu 806df30ba3 Revert creating new list to left, now creates again to right. Thanks to whowillcare !
Revert New List item moved from right to left. Thanks to derbolle and xet7 !

Closes #2772
2019-10-30 20:45:30 +02:00
Lauri Ojansivu 6a88c2f289 Merge branch 'whowillcare-master' 2019-10-30 20:38:52 +02:00
Lauri Ojansivu acc6bc0758 Merge branch 'master' of https://github.com/whowillcare/wekan into whowillcare-master 2019-10-30 20:33:53 +02:00
Lauri Ojansivu f3bc92904c Change list sorting to be visible only at DesktopDragHandle mode. 2019-10-30 18:48:54 +02:00
Sam X. Chen 3308d90a3a Fix: List last modify time will be affected by cards dueAt, endAt 2019-10-30 12:26:39 -04:00
Lauri Ojansivu 5bb99ba096 Add back miniscreen add list style. 2019-10-30 18:09:56 +02:00
Lauri Ojansivu 6ac7523d9d Update translations. 2019-10-30 17:45:24 +02:00
Lauri Ojansivu 758bbab441 Revert New List item moved from right to left.
Thanks to derbolle and xet7 !

Closes #2772
2019-10-30 17:33:02 +02:00
Sam X. Chen b26504f414 Fix: lists filter didn't get added into filter active checklist 2019-10-30 09:45:50 -04:00
Sam X. Chen e195c731de Change the radom to random typo in export.js 2019-10-29 17:45:06 -04:00
Lauri Ojansivu 00d581245c Fix typo on exporting subtasks.
Thanks to xiorcala !

Closes #2770
2019-10-29 22:02:30 +02:00
Lauri Ojansivu 7faff44825 Update translations. 2019-10-29 19:13:00 +02:00
Lauri Ojansivu 6fc9dd1323 Merge pull request #2763 from liske/changes/sensible-card-times
Enhancement: set card times more sensible using the 'Today' button in…
2019-10-29 19:12:35 +02:00
Lauri Ojansivu 7d6d3af54a Add Features: allowing lists to be sorted by modifiedAt when not in draggable mode.
Bug Fix #2093: the broken should be prior to file attachment feature introduced, and tested export board is working.

Thanks to whowillcare !

( xet7 merged this pull request manually from https://github.com/wekan/wekan/pull/2756 )

Closes #2093
2019-10-29 19:05:44 +02:00
Thomas Liske 064c4d7ca7 Lintian fixes. 2019-10-28 08:25:55 +01:00
Thomas Liske 0fb15888bc Enhancement: set card times more sensible using the 'Today' button in datepicker 2019-10-24 13:08:41 +02:00
Sam X. Chen 32f50e1658 Add Feature: allow user to search Lists in Board 2019-10-19 00:28:49 -04:00
Sam X. Chen d2d4840758 Add Feature: allowing user to filter list in Filter function not just cards 2019-10-18 18:06:34 -04:00
Sam X. Chen bc2a20f04e Add Feature: allow user to sort Lists in Board by his own preference, boardadmin can star list 2019-10-18 16:44:09 -04:00
Sam X. Chen 2737d6b23f Bug Fix:2093, need to clean up the temporary file 2019-10-11 11:56:44 -04:00
Sam X. Chen f53c624b0f Buf Fix #2093: the broken should be prior to file attachment feature introduced 2019-10-11 11:01:10 -04:00
Sam X. Chen 77f8b76d4e Add Features: allowing lists to be sorted by modifiedAt when not in draggable mode 2019-10-10 22:57:40 -04:00
Lauri Ojansivu 13a2bd6380 Update package-lock.json 2019-10-09 19:11:32 +03:00
Lauri Ojansivu bec9903f46 v3.49 2019-10-09 18:20:02 +03:00
Lauri Ojansivu 36e006fa4e Fix prettier. 2019-10-09 18:09:14 +03:00
Lauri Ojansivu 5b415c851b v3.48 2019-10-09 17:44:12 +03:00
Lauri Ojansivu 95fb392692 Update ChangeLog. 2019-10-09 17:36:49 +03:00
Lauri Ojansivu f2453834ac Merge pull request #2754 from moserben16/master
Update attachments.js
2019-10-09 17:33:56 +03:00
benji 3064cdd371 Update attachments.js
added else condition to check if MAX_IMAGE_PIXEL is not set, so that it is possible to  upload attachments using drag-and-drop or Ctrl+V without setting the environmental-variable.
If this change is not allowed, please document in the wiki, that this is necessary for a fully-running wekan-instance
2019-10-09 14:24:45 +02:00
Lauri Ojansivu 417fed8605 v3.47 2019-10-09 14:15:12 +03:00
Lauri Ojansivu 4eca27498c Update translations. 2019-10-09 14:01:39 +03:00
Lauri Ojansivu d962ecd77f Update ChangeLog. 2019-10-09 14:00:05 +03:00
Lauri Ojansivu 6feb35c079 Merge pull request #2751 from liske/fixes/rest-card-members
REST API: fix handling of members property on card creation
2019-10-09 13:56:11 +03:00
Thomas Liske ea90ce8784 REST API: fix handling of members property on card creation 2019-10-09 07:23:21 +02:00
Lauri Ojansivu 4a42d683af v3.46 2019-10-07 00:39:52 +03:00
Lauri Ojansivu 8faa48fe12 Update translations. 2019-10-07 00:30:08 +03:00
Lauri Ojansivu 67c4fae32b Update ChangeLog. 2019-10-07 00:28:00 +03:00
Lauri Ojansivu 42d31901b5 Merge pull request #2747 from liske/fixes/rest-create-checklist-2746
REST API: fix creation of Checklists (closes wekan/wekan#2746)
2019-10-07 00:22:49 +03:00
Thomas Liske 72b22a73b6 REST API: fix creation of Checklists (closes wekan/wekan#2746) 2019-10-06 22:53:43 +02:00
Lauri Ojansivu 4d30503cb5 Update translations. 2019-10-05 12:58:46 +03:00
Lauri Ojansivu 7b45a0fbfe Update ChangeLog. 2019-10-05 12:57:17 +03:00
Lauri Ojansivu 42dee10dbe Merge branch 'master' of github.com:wekan/wekan 2019-10-05 12:55:05 +03:00
Lauri Ojansivu 68be12d166 More black minicard badges.
Thanks to sfahrenholz and xet7 !

Closes #2745
2019-10-05 12:54:16 +03:00
Lauri Ojansivu fd896c29b5 More black minicard badges.
Thanks to sfahrenholz and xet7 !
2019-10-05 12:52:57 +03:00
Lauri Ojansivu 98a4be643e Update translation. 2019-10-04 23:01:57 +03:00
Lauri Ojansivu b650a89728 v3.45 2019-10-03 07:51:50 +03:00
Lauri Ojansivu 346dba4969 Update translations. 2019-10-03 07:46:50 +03:00
Lauri Ojansivu f3b858ca21 Revert drag handle changes. 2019-10-03 06:03:11 +03:00
Lauri Ojansivu 5bc355f9a5 Drag handles. In progress. 2019-10-03 04:23:33 +03:00
Lauri Ojansivu 21fa26a1be Update ChangeLog. 2019-10-01 21:09:27 +03:00
Lauri Ojansivu 66372271c2 Merge pull request #2740 from whowillcare/master
#2738 adding all pertinent help file for due days, plus modified the …
2019-10-01 18:41:01 +03:00
Sam X. Chen e60926f847 #2738 adding all pertinent help file for due days, plus modified the .list-header-name when in mobile mode 2019-10-01 10:39:36 -04:00
Lauri Ojansivu b04df1d54d Update translations. 2019-10-01 16:18:38 +03:00
Lauri Ojansivu 83f81f4586 Fix prettier. 2019-10-01 01:05:02 +03:00
Lauri Ojansivu 4785086e2f Fix lint. 2019-10-01 00:58:12 +03:00
Lauri Ojansivu 98c38fe58f Drag handles continue. In progress.
Thanks to xet7 !
2019-10-01 00:48:36 +03:00
Lauri Ojansivu 44378fe9d1 Update translations. 2019-09-30 21:31:49 +03:00
Lauri Ojansivu afcca947e3 Update translations. 2019-09-30 15:03:15 +03:00
Lauri Ojansivu 20526756db Update translations. 2019-09-28 15:15:23 +03:00
Lauri Ojansivu 58724f93c9 Update ChangeLog. 2019-09-28 15:05:53 +03:00
Lauri Ojansivu 5d6c68a9cf Merge branch 'master' of github.com:wekan/wekan 2019-09-28 14:56:51 +03:00
Lauri Ojansivu ed4c49090a Merge pull request #2738 from whowillcare/master
Add feature: Add due timeline into Calendar view
2019-09-28 14:57:00 +03:00
Lauri Ojansivu 75dc5f226c Merge branch 'feature-drag-handle' 2019-09-28 14:55:09 +03:00
Sam X. Chen 020b663836 Feature enhancement: Allow wekan master have more flexiblity on setting up due reminder 2019-09-26 12:24:40 -04:00
Sam X. Chen e5f0dd7dd8 Add feature: Add due timeline into Calendar view 2019-09-26 12:20:14 -04:00
Sam X. Chen 4f34adbd44 Merge remote-tracking branch 'upstream/master' 2019-09-26 10:53:58 -04:00
Sam X. Chen 62b72a03c4 Add feature: Add due timeline into Calendar view 2019-09-26 10:53:40 -04:00
Lauri Ojansivu 5696e4a4c6 Update translations. 2019-09-25 21:37:25 +03:00
Lauri Ojansivu 814e264521 Merge pull request #2720 from whowillcare/master
if username contains space, @ functions will fail at certain point
2019-09-25 20:51:51 +03:00
Lauri Ojansivu 872ed4b2f9 Drag handles continue. In progress. 2019-09-25 20:49:19 +03:00
Lauri Ojansivu 1d8633e7e6 Update translations. 2019-09-25 20:46:35 +03:00
Lauri Ojansivu b3637f2781 Merge branch 'master' of github.com:wekan/wekan 2019-09-25 20:44:46 +03:00
Lauri Ojansivu 68d3cdae58 Merge pull request #2734 from jernejh/patch-1
Update sl.i18n.json
2019-09-25 20:44:53 +03:00
jernejh 620a362244 Update sl.i18n.json 2019-09-25 19:08:18 +02:00
Sam X. Chen d5cff1ec48 Add feature: differentiating new due time and modified due time 2019-09-25 11:48:20 -04:00
Sam X. Chen 8d7714760c BUG FIX: archived cards still sent out notification 2019-09-25 11:26:46 -04:00
Sam X. Chen a37723f8a4 Fixing method in users.js didn't have check userId 2019-09-21 15:32:21 -04:00
Sam X. Chen e3a727edec Merge remote-tracking branch 'upstream/master' 2019-09-19 15:17:01 -04:00
Sam X. Chen 4ee88e026e Buxfixed: if username contains space, it will cause @ commment failed to send out email and other 2019-09-19 15:16:48 -04:00
Lauri Ojansivu 55a2473d81 Merge branch 'feature-drag-handle' 2019-09-19 01:12:04 +03:00
Lauri Ojansivu ba754cfaea v3.44 2019-09-17 23:54:31 +03:00
Lauri Ojansivu 7a8011f887 Update ChangeLog. 2019-09-17 22:19:01 +03:00
Lauri Ojansivu 125231beff Add language: Slovenian.
Thanks to translators!
2019-09-17 22:16:06 +03:00
Lauri Ojansivu f70e47a012 Update ChangeLog. 2019-09-17 20:28:39 +03:00
Lauri Ojansivu 0c34566aef Merge pull request #2717 from whowillcare/master
BugFix: in richer editor @ autocomplete doesn't really insert the username properly
2019-09-17 19:37:38 +03:00
Sam X. Chen f29d7daa1d BugFix: in richer editor @ autocomplete doesn't really insert the user name into comment properly 2019-09-17 09:30:26 -04:00
Sam X. Chen 0120c73a80 Merge remote-tracking branch 'upstream/master' 2019-09-17 09:27:36 -04:00
Sam X. Chen 194b6ad46e BugFix: in richer editor @ autocomplete doesn't really insert the user name into comment properly 2019-09-17 09:27:23 -04:00
Lauri Ojansivu 158ddadf54 v3.43 2019-09-17 03:06:01 +03:00
Lauri Ojansivu 9fb0ef7eb2 Update readme. 2019-09-17 02:51:44 +03:00
Lauri Ojansivu 503be10d36 Update Readme. 2019-09-17 02:49:38 +03:00
Lauri Ojansivu 3021f1cbe1 Update ChangeLog. 2019-09-17 02:39:21 +03:00
Lauri Ojansivu c66eba217b Update ChangeLog. 2019-09-17 02:36:49 +03:00
Lauri Ojansivu 8486ccbaa8 Update translations. 2019-09-17 01:43:26 +03:00
Lauri Ojansivu 03d7fc02ec Drag handles. In Progress. 2019-09-17 01:39:10 +03:00
Lauri Ojansivu ddd00a27a9 Merge pull request #2715 from whowillcare/master
fix some issues found
2019-09-17 01:34:55 +03:00
Sam X. Chen b31c42acc4 Merge remote-tracking branch 'upstream/master' 2019-09-16 14:43:51 -04:00
Sam X. Chen 616903114f Fix two-way webhooks - locking might fail sometime 2019-09-16 14:43:32 -04:00
Lauri Ojansivu 6e6e7ded82 Update translations. 2019-09-15 00:03:27 +03:00
Lauri Ojansivu 6c7e1ed3ae Add translation for "Show desktop drag handles".
Thanks to xet7 !
2019-09-14 23:53:56 +03:00
Lauri Ojansivu d896f6dbcf v3.42 2019-09-14 06:06:08 +03:00
Lauri Ojansivu 5e963375cb Update translations. 2019-09-14 06:00:05 +03:00
Lauri Ojansivu 57119868bb Revert drag handle changes.
Thanks to Keelan !

Related #2704
2019-09-14 05:55:32 +03:00
Lauri Ojansivu 7b445dfc93 v3.41 2019-09-13 03:59:51 +03:00
Lauri Ojansivu 5f27a76312 Update translations. 2019-09-13 03:56:37 +03:00
Lauri Ojansivu b34960d1bd Update ChangeLog. 2019-09-13 03:50:09 +03:00
Lauri Ojansivu ff550e9110 Mobile and Desktop drag handles part 1.
Thanks to xet7 !

Related #2081
2019-09-13 03:45:55 +03:00
Lauri Ojansivu 0fcfc3a340 Update readme. 2019-09-12 13:06:35 +03:00
Lauri Ojansivu f95d19ab49 Update readme. 2019-09-12 13:05:01 +03:00
Lauri Ojansivu 50744dead8 Update links at readme. 2019-09-12 12:59:27 +03:00
Lauri Ojansivu a0e5737e4c Anonymize data please. 2019-09-12 10:18:53 +03:00
Lauri Ojansivu ecd9b9b5f4 v3.40 2019-09-11 21:12:58 +03:00
Lauri Ojansivu 389ed2f1ad Update translations. 2019-09-11 21:07:54 +03:00
Lauri Ojansivu 273dc5223b Update ChangeLog. 2019-09-11 21:02:55 +03:00
Lauri Ojansivu db32f595fe Merge pull request #2697 from justinr1234/patch-7
Fix #2688 subcard selector
2019-09-11 19:18:32 +03:00
justinr1234 4d967360b2 Fix #2688 subcard selector 2019-09-11 10:54:32 -05:00
Lauri Ojansivu f14dce2f19 v3.39 2019-09-11 16:11:55 +03:00
Lauri Ojansivu 82f73ab58c Update translations. 2019-09-11 16:05:58 +03:00
Sam X. Chen 0b52ba4ded Merge remote-tracking branch 'upstream/master' 2019-09-11 09:05:28 -04:00
Sam X. Chen e0046032e8 Fixing @user in comments doesn't work if it's in a separate line 2019-09-11 09:05:16 -04:00
Lauri Ojansivu f094efa929 Update ChangeLog. 2019-09-11 16:04:26 +03:00
Lauri Ojansivu 6ce8eeee6c Revert Wekan v3.37 Fix Linked cards make load all cards of database.
Thanks to xet7!

Related #2688,
related #2693
2019-09-11 16:00:57 +03:00
Lauri Ojansivu be70c02922 v3.38 2019-09-11 04:47:56 +03:00
Lauri Ojansivu a61afda39e Update translations. 2019-09-11 04:30:38 +03:00
Lauri Ojansivu 126ab58e03 Create FUNDING.yml 2019-09-11 03:05:45 +03:00
Lauri Ojansivu ca95bba358 v3.37 2019-09-07 22:42:03 +03:00
Lauri Ojansivu 6407893aa6 Update translations. 2019-09-07 22:39:23 +03:00
Lauri Ojansivu 45ed9b426f [Fix Unable to drag select text without closing card details](https://github.com/wekan/wekan/pull/2690).
Thanks to justinr1234 !

Closes #2451
2019-09-07 22:35:15 +03:00
Lauri Ojansivu 11d6b77bb1 Merge pull request #2690 from justinr1234/fix-drag-select-on-card-details
Fix #2451 unable to drag select text without closing card details
2019-09-07 22:33:20 +03:00
Lauri Ojansivu f248dada3f Update ChangeLog. 2019-09-07 17:58:55 +03:00
Lauri Ojansivu a56988c487 Fix: Linked cards make load all cards of database.
Thanks to Akuket !

Closes #2688
2019-09-07 17:56:38 +03:00
Justin Reynolds 74b5bdf2aa Fix #2451 unable to drag select text without closing card details 2019-09-06 17:18:06 -05:00
Lauri Ojansivu 753d5b953d Fix prettier. 2019-09-06 21:27:06 +03:00
Lauri Ojansivu ea26f70669 Merge pull request #2683 from insertjokehere/fix_error_on_successful_webhook
Treat any 2xx webhook response status code as success
2019-09-06 19:22:36 +03:00
William Hughes 682c23e011 Treat any 2xx webhook response status code as success 2019-09-06 11:29:00 +12:00
Lauri Ojansivu d4a307f66d Update translations. 2019-09-06 01:28:43 +03:00
Lauri Ojansivu 7c9bf3ce0f Update ChangeLog. 2019-09-06 01:27:09 +03:00
Lauri Ojansivu 6cbd4cabc7 LDAP: Fix USERDN example, when parameters contain spaces:
LDAP_AUTHENTIFICATION_USERDN="CN=ldap admin,CN=users,DC=domainmatter,DC=lan"

Thanks to compumatter !
2019-09-06 01:22:15 +03:00
Lauri Ojansivu 10b953041f v3.36 2019-09-05 23:17:03 +03:00
Lauri Ojansivu 36fb31c138 Try to fix snap. 2019-09-05 23:05:50 +03:00
Lauri Ojansivu 3f2490e64d Update translations. 2019-09-05 22:58:53 +03:00
Lauri Ojansivu 37065c1d50 Update ChangeLog. 2019-09-05 22:54:37 +03:00
Lauri Ojansivu 9764e03a37 Merge branch 'justinr1234-fix-date-stamps' 2019-09-05 22:48:36 +03:00
Lauri Ojansivu 0f5226f814 Merge branch 'fix-date-stamps' of https://github.com/justinr1234/wekan into justinr1234-fix-date-stamps 2019-09-05 21:01:51 +03:00
Justin Reynolds 3b9f2ca7c2 Fixes #2596 incorrect date types for created & updated 2019-09-05 12:29:45 -05:00
Lauri Ojansivu 7953e5a52a Try to fix Snap. 2019-09-04 23:53:14 +03:00
Lauri Ojansivu 9617c78798 Update translations. 2019-09-04 22:48:17 +03:00
Lauri Ojansivu 28f21487b0 Add package-lock.json back. 2019-09-04 22:35:32 +03:00
Lauri Ojansivu 4567f08a0b Try to fix prettier. 2019-09-04 22:26:00 +03:00
Lauri Ojansivu b0281e1941 Try to fix rebuild script. 2019-09-04 22:25:30 +03:00
Lauri Ojansivu efed77b474 Update translations. 2019-09-04 22:14:44 +03:00
Lauri Ojansivu a70b97676a Remove package-lock.json 2019-09-04 22:09:22 +03:00
Lauri Ojansivu 7b54983ec2 Try to fix snap. 2019-09-04 22:05:51 +03:00
Lauri Ojansivu bc2fcef7c4 Update ChangeLog. 2019-09-04 21:54:27 +03:00
Lauri Ojansivu 750349053c Update translations. 2019-09-04 21:46:01 +03:00
Lauri Ojansivu bfbe32e1ec Merge pull request #2665 from whowillcare/master
Add Feature: complete the original author's webhook functions and add two-way webhook type
2019-09-04 21:11:41 +03:00
Lauri Ojansivu ccfaf879dd Merge pull request #2667 from Akuket/master
Patch admin search feature
2019-09-04 21:10:25 +03:00
Lauri Ojansivu ebd32af5c1 Merge pull request #2672 from Scherdel/master
Devcontainer: Removed MAIL-Vars, Add PATH with meteor to Envionment
2019-09-04 21:09:57 +03:00
Lauri Ojansivu 43ea7d761e Try to fix snap. 2019-09-04 21:07:17 +03:00
Christoph Jahn a715e30cba DevContainer: use docker extend file, fix PATH 2019-09-03 21:20:24 +02:00
Christoph Jahn 8633bd8974 Merge branch 'master' of https://github.com/scherdel/wekan 2019-09-02 20:28:48 +02:00
Christoph Jahn 9474bee7fa DevContainer: Updated node and mongodb 2019-09-02 20:28:39 +02:00
Christoph Jahn 92b86ada39 Merge branch 'master' of https://github.com/scherdel/wekan 2019-09-02 17:00:17 +00:00
Christoph Jahn 03bea6e406 Removed MAIL-Vars for DEV, Add PATH to ENV 2019-09-02 18:57:17 +02:00
guillaume 6183402754 Merge branch 'master' of https://github.com/wekan/wekan 2019-08-30 17:18:29 +02:00
guillaume 663ba26d4d Patch admin search feature 2019-08-30 17:17:25 +02:00
Sam X. Chen 510407467c Add Feature: enable two-way webhooks - add comments need userid 2019-08-30 10:36:17 -04:00
Sam X. Chen b477fc1b1c Add Feature: enable two-way webhooks - fixing lint error 2019-08-29 23:49:32 -04:00
Sam X. Chen 58155288fb Merge remote-tracking branch 'upstream/master' 2019-08-29 22:08:41 -04:00
Sam X. Chen dd0682328b Add Feature: enable two-way webhooks - stage two 2019-08-29 22:07:40 -04:00
Lauri Ojansivu d1ab787215 v3.35 2019-08-29 21:12:24 +03:00
Lauri Ojansivu 71d32c6bc8 Try to fix snap. 2019-08-29 21:08:14 +03:00
Lauri Ojansivu 3acc9d4468 v3.34 2019-08-29 19:41:26 +03:00
Lauri Ojansivu d5403bbfc5 Snap: Delete all .swp files.
Thanks to xet7 !
2019-08-29 19:38:25 +03:00
Lauri Ojansivu 583c369233 v3.33 2019-08-29 17:01:23 +03:00
Lauri Ojansivu 96efa659a8 Update ChangeLog. 2019-08-29 16:57:33 +03:00
Lauri Ojansivu 87af5ecb36 Merge pull request #2664 from grmpfhmbl/feature-colored-calendar-cards
add card color to calendar event (#2651)
2019-08-29 16:54:46 +03:00
Lauri Ojansivu 3d39793cbf v3.32 2019-08-29 16:42:43 +03:00
Lauri Ojansivu 79d4cd83b1 Fix Snap adopt-info.
https://forum.snapcraft.io/t/dirty-snap-release/12975/12?u=xet7

Thanks to popey at Snapcraft forum.
2019-08-29 16:37:03 +03:00
Lauri Ojansivu 9bc8040634 Try to fix adopt-info.
Thanks to xet7.
2019-08-29 16:31:45 +03:00
Lauri Ojansivu 93ae815946 v3.31 2019-08-29 16:20:26 +03:00
Lauri Ojansivu be5f435bc5 Try to fix adopt-info.
https://forum.snapcraft.io/t/dirty-snap-release/12975/8

Thanks to ogra at Snapcraft forum.
2019-08-29 16:15:57 +03:00
Lauri Ojansivu 8a74210c60 Try to fix adopt-info. 2019-08-29 16:02:21 +03:00
Lauri Ojansivu 629a6f0103 v3.30 2019-08-29 15:42:07 +03:00
Lauri Ojansivu 2522a98f7d Update translations. 2019-08-29 15:36:32 +03:00
Lauri Ojansivu 0ff5ce8fde Snap: Change version-script to adopt-info to fix dirty.
https://forum.snapcraft.io/t/dirty-snap-release/12975/4

Thanks to popey and daniel at Snapcraft forum.
2019-08-29 15:30:14 +03:00
Lauri Ojansivu 5084102e6e Delete another phantomjs binary from Snap.
Thanks to xet7 !
2019-08-29 15:14:35 +03:00
Steffen b7c5ba3d1b add card color to calendar event (#2651) 2019-08-29 14:12:53 +02:00
Lauri Ojansivu e5b9d41e67 Revert fix dirty, because it caused Snap build to fail.
Thanks to xet7 !
2019-08-29 15:12:00 +03:00
Lauri Ojansivu 007c064672 Fix dirty snap release.
https://stackoverflow.com/questions/16035240/why-is-git-describe-dirty-adding-a-dirty-suffix-when-describing-a-clean-ch
https://forum.snapcraft.io/t/dirty-snap-release/12975

Thanks to xet7.
2019-08-29 02:09:01 +03:00
Lauri Ojansivu 9c15fb1e69 v3.29 2019-08-29 00:51:06 +03:00
Lauri Ojansivu 7761a22bb4 Fix Snap.
Thanks to xet7 !
2019-08-29 00:45:37 +03:00
Lauri Ojansivu 16388a5e25 v2.38 2019-08-29 00:39:04 +03:00
Lauri Ojansivu 43c28a2f15 v3.27 2019-08-29 00:23:59 +03:00
Lauri Ojansivu d29b40c0ee Update translations. 2019-08-29 00:21:53 +03:00
Lauri Ojansivu e21c47d3cf Upgrade node, mongo and fibers.
Thanks to xet7 !
2019-08-29 00:18:15 +03:00
Lauri Ojansivu 971de9ca34 v3.26 2019-08-28 18:38:41 +03:00
Lauri Ojansivu 3976e02012 Update translations. 2019-08-28 18:36:02 +03:00
Lauri Ojansivu d4f5717264 Update ChangeLog. 2019-08-28 18:31:50 +03:00
Lauri Ojansivu 362220299f Merge pull request #2660 from Scherdel/master
Fixed endless compilation devcontainer and added debugging launch.conf
2019-08-28 16:43:43 +03:00
Christoph Jahn dbdb26a044 Fixed endless compilation devcontainer, debugging 2019-08-28 15:26:17 +02:00
Lauri Ojansivu 60e8deb064 Merge pull request #2659 from Scherdel/master
Adds .devcontainer feature to debug and compile with vscode
2019-08-28 13:20:44 +03:00
Christoph Jahn 4b06e2188c Merge branch 'master' of https://github.com/scherdel/wekan 2019-08-28 10:13:31 +00:00
Christoph Jahn 3307629c8c Devcontainer node-gyp fix 2019-08-28 10:13:10 +00:00
Christoph Jahn 3978c08757 Add debugging in containers for vscode 2019-08-28 10:13:09 +00:00
Christoph Jahn e21b0674e3 Devcontainer node-gyp fix 2019-08-28 10:07:35 +00:00
Lauri Ojansivu a97360dcfb Try to fix lint, and make board loading fix Sandstorm-only where
user permissions work differently.

Thanks to xet7 !

Related https://github.com/wekan/wekan/pull/2654
2019-08-26 23:24:13 +03:00
Lauri Ojansivu 6705007595 Update ChangeLog. 2019-08-26 22:58:27 +03:00
Lauri Ojansivu 8c6164f590 Merge branch 'PDIS-master' 2019-08-26 22:34:35 +03:00
Lauri Ojansivu bbb9815c30 Update ChangeLog. 2019-08-26 22:31:45 +03:00
Lauri Ojansivu 0083215ea3 Default to BIGEVENTS_PATTERN=NONE so that Wekan sends less email
notifications.

Thanks to rinnaz and xet7 !

Closes #2646,
closes #2617
2019-08-26 22:27:45 +03:00
Lauri Ojansivu cdea7e8869 Update ChangeLog. 2019-08-26 22:25:37 +03:00
Lauri Ojansivu 828822daad Merge pull request #2657 from justinr1234/patch-6
Fix last label undefined
2019-08-26 22:13:28 +03:00
justinr1234 0cf9a7b552 Fix last label undefined 2019-08-26 12:16:21 -05:00
Lauri Ojansivu 7cffce972d Update translations. 2019-08-26 19:13:01 +03:00
Lauri Ojansivu ad01526124 Add package-lock.json. 2019-08-26 19:02:48 +03:00
Lauri Ojansivu fa34950ca9 Merge pull request #2653 from GhassenRjab/add-missing-modules
Add missing modules
2019-08-26 14:42:15 +03:00
Romulus Urakagi Tsai 9bbeb73db1 Fix app hang when Meteor.user() is null and list spinner is loaded bug 2019-08-26 10:10:57 +00:00
Lauri Ojansivu ff419f0b60 Update translations. 2019-08-25 13:41:22 +03:00
Lauri Ojansivu 537a9c0568 Update translations. 2019-08-24 22:19:23 +03:00
Ghassen Rjab 843783d6cb Add missing modules 2019-08-24 11:51:08 +01:00
Lauri Ojansivu 07abed0067 v3.25 2019-08-23 03:12:29 +03:00
Lauri Ojansivu fe885860e3 Update translations. 2019-08-23 03:09:43 +03:00
Lauri Ojansivu 0dd3ff29f2 Limit card width to fixed size.
Thanks to xet7 !
2019-08-23 02:59:29 +03:00
Lauri Ojansivu 576523021e Merge pull request #2645 from justinr1234/master
Fixes #2638 importing trello
2019-08-23 00:09:06 +03:00
Justin Reynolds 9d8a38f324 Fixes #2638 importing trello 2019-08-22 16:05:41 -05:00
Lauri Ojansivu 2c78aab3dc Ask for webbrowser version at GitHub issue template.
Thanks to xet7 !
2019-08-22 23:25:56 +03:00
Lauri Ojansivu 45c8b00339 v3.24 2019-08-22 19:35:36 +03:00
Lauri Ojansivu 9156e5a6b6 Update translations. 2019-08-22 19:31:25 +03:00
Lauri Ojansivu cc792ddd57 Snap: Delete old MongoDB log, and log to syslog instead, because
syslog usually already has log rotation.

Thanks to xet7 !

Closes wekan/wekan-snap#92,
closes #1911
2019-08-22 19:22:27 +03:00
Lauri Ojansivu b8d60f0069 v3.23 2019-08-20 21:17:36 +03:00
Lauri Ojansivu b2deab544b Fix login did not work.
Thanks to xet7 !
2019-08-20 21:14:16 +03:00
Lauri Ojansivu f96c1eda70 v3.22 2019-08-20 19:25:37 +03:00
Lauri Ojansivu e9bbbb6a04 Update translations. 2019-08-20 19:21:39 +03:00
Lauri Ojansivu efcdbf2e3d Update ChangeLog. 2019-08-20 19:20:06 +03:00
Lauri Ojansivu 6e12e2fa59 [Fix: Some users cannot switch views or languages](https://github.com/wekan/wekan/issues/2630).
Thanks to xet7 and justinr1234.
2019-08-20 19:16:44 +03:00
Lauri Ojansivu a31ece0974 Update translations. 2019-08-19 12:59:27 +03:00
Lauri Ojansivu 06d85b66f1 Update ChangeLog. 2019-08-19 12:52:20 +03:00
Lauri Ojansivu af830812db Wrap minicard text labels to multiple rows.
Thanks to xet7 !
2019-08-19 12:47:02 +03:00
Sam X. Chen 3f0600fed7 Add Feature: enable two-way webhooks - stage one 2019-08-17 19:17:57 -04:00
Lauri Ojansivu 4e21e04a48 v3.21 2019-08-16 23:26:10 +03:00
Lauri Ojansivu 9779f2a7e6 Update ChangeLog. 2019-08-16 23:21:31 +03:00
Lauri Ojansivu a98f6d8e8a Update ChangeLog. 2019-08-16 23:15:17 +03:00
Lauri Ojansivu d93f33d919 Update translations. 2019-08-16 23:03:58 +03:00
Lauri Ojansivu 564ab219c6 Merge branch 'PDIS-master' 2019-08-16 22:36:19 +03:00
Lauri Ojansivu 026d8f4941 Merge branch 'master' of https://github.com/PDIS/wekan into PDIS-master 2019-08-16 22:27:44 +03:00
Lauri Ojansivu 4b2193436e Merge branch 'master' of github.com:wekan/wekan 2019-08-16 22:21:38 +03:00
Lauri Ojansivu dfb558ae99 Update translations. 2019-08-16 22:21:02 +03:00
Romulus Urakagi Tsai 76731e852d Undo translation change 2019-08-16 07:52:51 +00:00
Romulus Urakagi Tsai b794c22ac0 Merge branch 'master' of https://github.com/wekan/wekan 2019-08-16 07:43:55 +00:00
Romulus Urakagi Tsai b778cea34f Fix cannot show archived list bug 2019-08-16 07:42:18 +00:00
Lauri Ojansivu a1582c3e65 Merge pull request #2628 from justinr1234/fix-mismatched-queries
Fix mismatched queries
2019-08-16 00:39:16 +03:00
Justin Reynolds 977503fa79 Fix mismatched queries 2019-08-15 15:47:32 -05:00
Lauri Ojansivu a809284a14 Update translations. 2019-08-15 22:22:48 +03:00
Lauri Ojansivu 8e3cbd2d82 Merge pull request #2626 from whowillcare/master
bugfix 2616
2019-08-15 21:31:25 +03:00
Sam X. Chen f3147af2f7 Merge remote-tracking branch 'upstream/master' 2019-08-15 14:29:02 -04:00
Sam X. Chen 86d686fe1d Bugfix: 2621 2019-08-15 14:28:18 -04:00
Sam X. Chen 7d52ae16d5 Bugfix: 2621 Summmernote is too wide on mobile screen 2019-08-15 14:23:14 -04:00
Lauri Ojansivu c882ebe030 Update translations. 2019-08-15 16:32:55 +03:00
Lauri Ojansivu d80a258c8b v3.20 2019-08-15 13:39:24 +03:00
Lauri Ojansivu 96d0447df0 v3.19 2019-08-15 13:33:01 +03:00
Lauri Ojansivu 65769f3726 Update ChangeLog. 2019-08-15 13:29:57 +03:00
Lauri Ojansivu 315b5bad46 Fix formatting. 2019-08-15 13:29:37 +03:00
Lauri Ojansivu 692138c40b Update translations. 2019-08-15 13:28:30 +03:00
Lauri Ojansivu 5c696e5a3c On board, BoardAdmin and normal user can now invite new user directly
with email address, without using Admin Panel or registering at /sign-up.
Closes #2060

Revert permission change.
Related https://github.com/wekan/wekan/commit/9f6d615ee5bbdb7552e6bdcae75a76a7f74fef7a#commitcomment-34636513
Opens #2590

Thanks to xet7 !
2019-08-15 13:16:34 +03:00
Lauri Ojansivu ebf3e2e65b Update ChangeLog. 2019-08-15 13:11:46 +03:00
Lauri Ojansivu d302d6f857 Fix bug: When on board, clicking Admin Panel redirects to All Boards page,
so it did require to click Admin Panel again.

Thanks to xet7 !
2019-08-15 13:08:03 +03:00
Lauri Ojansivu a282384ab0 v3.18 2019-08-15 00:52:40 +03:00
Lauri Ojansivu c87001fa9f Update base64 dependency. 2019-08-15 00:45:35 +03:00
Lauri Ojansivu 8fdb126a99 Update translations. 2019-08-15 00:41:26 +03:00
Lauri Ojansivu e2e35655c3 Update ChangeLog. 2019-08-15 00:39:02 +03:00
Lauri Ojansivu b8c527d52b Add setting CARD_OPENED_WEBHOOK_ENABLED=false as default.
Thanks to xet7 !

Related https://github.com/wekan/wekan/commit/843478ac40b7718f1096a75295522487f0ca6dbe ,
related #2518
2019-08-15 00:29:00 +03:00
Lauri Ojansivu a8ab7b15d8 Update translations. 2019-08-14 20:38:18 +03:00
Lauri Ojansivu c9118c21d1 Update ChangeLog. 2019-08-14 20:26:47 +03:00
Lauri Ojansivu 16adcb7e5a In Sandstorm release script, after release, delete temp files. 2019-08-14 20:13:35 +03:00
Lauri Ojansivu d295cb8385 Merge pull request #2615 from whowillcare/master
Time line is missing delete/edit comments
2019-08-14 19:36:39 +03:00
Lauri Ojansivu ece011f6ae Merge pull request #2620 from jymcheong/master
Webhook cardDetails onRendered
2019-08-14 19:26:38 +03:00
Romulus Urakagi Tsai 3084f24278 Merge branch 'master' of https://github.com/wekan/wekan 2019-08-14 08:42:25 +00:00
jymcheong 843478ac40 Webhook cardDetails onRendered
Send webhook when cardDetails is rendered.
2019-08-14 15:44:47 +08:00
Lauri Ojansivu 43d14f8b2b Update translations. 2019-08-13 16:32:52 +03:00
Sam X. Chen 7198e6b66e Merge remote-tracking branch 'upstream/master' 2019-08-13 09:31:14 -04:00
Sam X. Chen a666883986 Addfeature: showing action in system message when user deleted/edited comments, plus changing email content \n to <br/> 2019-08-13 09:28:42 -04:00
Lauri Ojansivu 76dbadf1ba v3.17 2019-08-13 12:04:58 +03:00
Lauri Ojansivu a7b7fd874d Update translations. 2019-08-13 12:01:04 +03:00
Lauri Ojansivu ee0fb094e6 Revert In-Progress Assignee field, moving it to feature branch.
Thanks to xet7 !

Fixes #2612
2019-08-13 11:45:30 +03:00
Lauri Ojansivu 306301e881 Assignee field. In Progress.
Thanks to xet7 !

Related #2452
2019-08-13 02:33:41 +03:00
Lauri Ojansivu 411ded513d Fix typos. 2019-08-13 01:34:10 +03:00
Lauri Ojansivu c12496e91d v3.16 2019-08-13 01:23:30 +03:00
Lauri Ojansivu 0cf8996df9 Update translations. 2019-08-13 01:18:37 +03:00
Lauri Ojansivu 46176f5cec Update ChangeLog. 2019-08-13 01:13:57 +03:00
Lauri Ojansivu b9a7bd3503 Merge pull request #2611 from whowillcare/master
Addfeature: Enable HTML email content for richer comment
2019-08-13 01:08:22 +03:00
Lauri Ojansivu 861868fa29 Update ChangeLog. 2019-08-13 00:43:09 +03:00
Sam X. Chen 8d76db91b8 Addfeature: Enable HTML email content for richer comment 2019-08-12 17:41:49 -04:00
Lauri Ojansivu 39ffe1d80d Use Meteor 1.8.1 and MongoDB 3.2.22 in Snap.
Thanks to xet7 !
2019-08-13 00:40:33 +03:00
Lauri Ojansivu 3513198416 Update ChangeLog. 2019-08-13 00:37:35 +03:00
Lauri Ojansivu 20294d833a Add to Admin Panel / Version: Meteor version, MongoDB version, MongoDB storage engine,
MongoDB Oplog enabled.

Thanks to RocketChat developers for MongoDB detection code and xet7 for other code.
2019-08-13 00:32:46 +03:00
Lauri Ojansivu ad09cdb1d1 Update ChangeLog. 2019-08-13 00:02:46 +03:00
Lauri Ojansivu 5aa090e911 Make Admin Panel text like version etc selectable.
Thanks to xet7 !

Closes #2180
2019-08-12 23:59:05 +03:00
Lauri Ojansivu 7ea0912159 - [Fix scrollHeight error when the sidebar is not visible](https://github.com/wekan/wekan/pull/2609).
Thanks to Trekky12.
- [Fix insert action for CustomFields API](https://github.com/wekan/wekan/pull/2610).
  Thanks to JimCircadian. Closes #2586
2019-08-12 21:39:29 +03:00
Lauri Ojansivu 6d47c2e568 Merge pull request #2610 from JimCircadian/custom-field-api-insert
Updated insert action for CustomFields API
2019-08-12 20:04:49 +03:00
Lauri Ojansivu b5f74162af Merge pull request #2609 from Trekky12/master
fix error when the sidebar is not visible
2019-08-12 20:04:28 +03:00
James Byrne 851246a59b Updated insert action for CustomFields API 2019-08-12 17:47:04 +01:00
Tobias 446e29e422 fix error when the sidebar is not visible 2019-08-12 17:24:53 +02:00
Romulus Urakagi Tsai efdab37f3f Merge branch 'master' of https://github.com/wekan/wekan 2019-08-12 01:43:21 +00:00
Lauri Ojansivu db1cf5bb64 Update release build scripts. 2019-08-11 23:05:41 +03:00
Lauri Ojansivu 9b7b0cf557 Try to fix Snap. 2019-08-11 23:04:57 +03:00
Lauri Ojansivu 32563e053d Test snap with Meteor 1.8.1.
Thanks to xet7 !
2019-08-11 21:17:55 +03:00
Lauri Ojansivu b5b81af103 v3.15 2019-08-11 20:31:37 +03:00
Lauri Ojansivu a1d883b22f Try to fix Snap. 2019-08-11 20:27:40 +03:00
Lauri Ojansivu 1a7ee618be v3.14 2019-08-11 19:45:04 +03:00
Lauri Ojansivu 405e0b9bb2 Update translations. 2019-08-11 19:31:46 +03:00
Lauri Ojansivu d3e37d2912 Update ChangeLog. 2019-08-11 19:29:02 +03:00
Lauri Ojansivu 2859457600 Merge pull request #2608 from whowillcare/master
Make image upload in summernote as attachment to wekan board instead of base64 string and more
2019-08-11 19:26:05 +03:00
Sam X. Chen 4857bce5d9 fixing snap build errors due to some rm statements and allowing mixed attachment mode to work in snap 2019-08-10 23:39:12 -04:00
Sam X. Chen 16dbbfa98c Merge remote-tracking branch 'upstream/master' 2019-08-10 21:22:48 -04:00
Sam X. Chen 67d23ff8ae Add Feature: Richer Editor insert picture as attachment instead of b64 string 2019-08-10 21:21:42 -04:00
Lauri Ojansivu 30680f13d6 Add ATTACHMENTS_STORE_PATH to Dockerfile. 2019-08-11 04:16:17 +03:00
Lauri Ojansivu 3b526cad40 Update attachments help. 2019-08-11 04:12:01 +03:00
Lauri Ojansivu 55f0ac959a Remove meteor public variable.
https://github.com/wekan/wekan/pull/2607/files#r312719580

Thanks to xet7 !
2019-08-11 04:05:44 +03:00
Lauri Ojansivu 6dc515210a Update translations. 2019-08-11 03:43:30 +03:00
Lauri Ojansivu 7777dd3b45 Update changelog. 2019-08-11 03:39:23 +03:00
Lauri Ojansivu e9a874144d Merge pull request #2607 from whowillcare/master
Bugfix: 2560, 2604 - enable mixed mode mongodb attachment and filesys
2019-08-11 03:34:08 +03:00
Sam X. Chen 77b5244723 Bugfix: 2560, 2604 - enable mixed mode mongodb attachment and filesystem attachment while reading 2019-08-10 00:50:55 -04:00
Sam X. Chen af560bc9b4 Merge remote-tracking branch 'upstream/master' 2019-08-10 00:49:07 -04:00
Sam X. Chen c569565ec0 Bugfix: 2560, 2604 - enable mixed mode mongodb attachment and filesystem attachment while reading 2019-08-10 00:48:05 -04:00
Lauri Ojansivu 80f1222af4 v3.13 2019-08-09 02:55:15 +03:00
Lauri Ojansivu 76ff965619 Add to ChangeLog those that I forgot to add previously from Wekan v3.12. 2019-08-09 02:49:24 +03:00
Lauri Ojansivu 2ca01b589f Update translations. 2019-08-09 02:37:18 +03:00
Lauri Ojansivu 46cd1aced9 v3.12 2019-08-09 02:34:50 +03:00
Lauri Ojansivu d5d5e4448c Add dependencies for pull request #2603 to meteor-1.6 snap.
Thanks to xet7 !
2019-08-09 02:25:54 +03:00
Lauri Ojansivu faa1e73027 Update ChangeLog. 2019-08-09 01:50:41 +03:00
Lauri Ojansivu 9f6d615ee5 Fix bug on editing users informations, switching to other view, staring a board.
Thanks to road42 !

Closes #2590
2019-08-09 01:42:23 +03:00
Lauri Ojansivu 520ae551c6 Merge pull request #2603 from whowillcare/master
Add Features: allowing wekan master to set where the attachments stor…
2019-08-08 23:43:39 +03:00
Lauri Ojansivu d5d75ae7b8 Merge pull request #2602 from justinr1234/fix-null-access-boardbody
Fix null access with board body
2019-08-08 23:43:22 +03:00
Sam X. Chen 13a13e8eca Add Features: allowing wekan master to set where the attachments stored on server instead of mongodb 2019-08-08 16:24:58 -04:00
Justin Reynolds cf65f1b7a1 Fix null access with board body 2019-08-08 14:54:22 -05:00
Lauri Ojansivu aa6a588376 Update ChangeLog. 2019-08-08 20:24:25 +03:00
Lauri Ojansivu 4c92cd6ae1 Show All Boards Archive and Clone Boards buttons only on
desktop webbrowser mode for BoardAdmin/Admin/Sandstorm users.

Thanks to derbolle and xet7 !

Closes #2599
2019-08-08 20:11:53 +03:00
Lauri Ojansivu f766c1a61c Merge pull request #2600 from whowillcare/master
Bugfix: style kbd font color became white after introduced summernote
2019-08-08 19:39:45 +03:00
Sam X. Chen 264526e85f Bugfix: style kbd font color became white after introduced summernote 2019-08-08 09:54:30 -04:00
Lauri Ojansivu ecc74583ed Update translations. 2019-08-08 15:47:26 +03:00
Lauri Ojansivu 7dad66fbe6 Merge branch 'whowillcare-master' 2019-08-08 15:23:22 +03:00
Christoph Jahn 47f6fee279 Merge branch 'master' of https://github.com/scherdel/wekan 2019-08-08 13:27:04 +02:00
Christoph Jahn 460caa7823 Add debugging in containers for vscode 2019-08-08 12:42:16 +02:00
Sam X. Chen 71d1d9ad98 Bug fix: bug#2589 #2575, Add Features: allowing user to insert/paste link, image, video 2019-08-07 23:44:45 -04:00
Lauri Ojansivu 9ed0c3029f Remove removing phantomjs from release-bundle.sh 2019-08-07 20:02:00 +03:00
Lauri Ojansivu b7628050be v3.11 2019-08-07 20:00:34 +03:00
Lauri Ojansivu 2a53a6cb36 Update translations. 2019-08-07 19:57:50 +03:00
Lauri Ojansivu ad82a900e8 Remove non-existing file from snapcraft.yaml to get Snap to build.
Thanks to xet7 !
2019-08-07 19:54:09 +03:00
Lauri Ojansivu 4708764bd9 v3.10 2019-08-07 19:22:07 +03:00
Lauri Ojansivu e519f989ee Update translations. 2019-08-07 19:17:56 +03:00
Lauri Ojansivu 32e9aa0dda Add missing dependencies back.
Thanks to whowillcare and xet7 !

Related #2589
2019-08-07 19:13:52 +03:00
Lauri Ojansivu c1905f1db1 v3.09 2019-08-07 18:22:28 +03:00
Lauri Ojansivu f7e0b837d3 Hide minicard label text: per user checkbox setting at sidebar.
Thanks to xet7 !

Closes #1466,
closes #2561
2019-08-07 18:11:34 +03:00
Lauri Ojansivu 9e60b41438 Update ChangeLog. 2019-08-07 14:08:48 +03:00
Lauri Ojansivu 778759b8ca Merge pull request #2588 from justinr1234/fix-api-parser
Fix checking if API is enabled
2019-08-07 14:06:46 +03:00
Lauri Ojansivu b58ddcabaf Update ChangeLog. 2019-08-07 13:36:23 +03:00
Lauri Ojansivu 716fc32968 Make Save button visible again at Admin Panel People Edit.
Thanks to sclerc-chss and xet7 !

Related #2590
2019-08-07 13:31:56 +03:00
Christoph Jahn 5d55b21fb6 Add debugging in containers for vscode 2019-08-07 12:18:51 +02:00
Romulus Urakagi Tsai 4f4e0a21f8 Add 'show archive' and 'hide empty lists' in filter feature. 2019-08-07 07:58:05 +00:00
Justin Reynolds 7a60eef375 Fix checking if API is enabled 2019-08-06 21:14:33 -05:00
Lauri Ojansivu cf9ad221f8 Update docker-compose.yml, quay works now again. 2019-08-07 04:13:36 +03:00
Lauri Ojansivu f7ab08aeeb v3.08 2019-08-07 04:10:22 +03:00
Lauri Ojansivu 7d8f1dee62 Removed removing phantomjs from snap, because snap build did stop
to error no phantomjs could be removed.

Thanks to xet7 !
2019-08-07 04:02:14 +03:00
Lauri Ojansivu 2eebc5c884 Fix file permission. 2019-08-07 03:20:49 +03:00
Lauri Ojansivu 93c5f08a25 Fix used script file name. 2019-08-07 03:19:51 +03:00
Lauri Ojansivu 3973c45a1f v3.07 2019-08-07 03:12:29 +03:00
Lauri Ojansivu 1fc3a1db2e Try to make release sizes smaller by deleting phantomjs.
Thanks to xet7 !
2019-08-07 03:05:28 +03:00
Lauri Ojansivu 972e7a9971 v3.06 2019-08-07 02:19:40 +03:00
Lauri Ojansivu b23282d426 Merge pull request #2587 from justinr1234/fix-board-query
Fix board query
2019-08-07 00:46:59 +03:00
Lauri Ojansivu 603aa1dfc8 v3.05 2019-08-07 00:44:43 +03:00
Justin Reynolds b31a74e9af Fix board query 2019-08-06 16:41:56 -05:00
Lauri Ojansivu c33657e921 Merge pull request #2584 from KuenzelIT/patch-1
Fixed group filtering bug
2019-08-07 00:26:36 +03:00
Lauri Ojansivu 367ef208cb Update package-lock.json 2019-08-07 00:18:25 +03:00
Lauri Ojansivu c6ab28a3ce v3.04 2019-08-06 23:15:38 +03:00
Lauri Ojansivu b49d78e266 Update translations. 2019-08-06 23:12:39 +03:00
Lauri Ojansivu 8c4ea103c0 Removed duplicate. 2019-08-06 22:24:09 +03:00
Lauri Ojansivu bb4fde6374 Try to fix Snap MongoDB. 2019-08-06 22:02:23 +03:00
Lauri Ojansivu 74a4b28313 Use Meteor 1.6.0.1 dependencies on Snap.
Thanks to xet7 !
2019-08-06 20:31:12 +03:00
kuenzelIT d9d06dd61d Fixed group filtering bug
To make the LDAP authentication work in our installation with group filtering, we had to set `KEY_LDAP_GROUP_FILTER_GROUP_NAME` to `ldap-group-filter-group-name`.
2019-08-06 15:55:32 +02:00
Lauri Ojansivu b9a25ecfac Hide delete button until someone has time to fix it. 2019-08-06 16:09:57 +03:00
Lauri Ojansivu 8bb587155e Try to fix Snap. 2019-08-05 14:57:42 +03:00
Lauri Ojansivu b9b6aef4c8 Try to fix builds. 2019-08-05 13:55:04 +03:00
Lauri Ojansivu d3ca3e25d7 Update package-lock.json 2019-08-05 13:31:03 +03:00
Lauri Ojansivu 833f19a5cd v3.03 2019-08-04 18:11:49 +03:00
Lauri Ojansivu 174ffd0967 Update ChangeLog. 2019-08-04 18:06:26 +03:00
Lauri Ojansivu c4f0229373 Update translations. 2019-08-04 16:08:42 +03:00
Lauri Ojansivu a54bb91bba Update snap dependencies. 2019-08-04 15:17:57 +03:00
Lauri Ojansivu f78a8f2b55 Update packager.io dependencies and targets. 2019-08-04 15:15:50 +03:00
Lauri Ojansivu be4b2a0504 Merge branch 'Trekky12-master' 2019-08-04 14:02:33 +03:00
Lauri Ojansivu c74934836f Merge branch 'master' of https://github.com/Trekky12/wekan into Trekky12-master 2019-08-04 13:59:43 +03:00
Lauri Ojansivu ec35c544b7 Upgrade to MongoDB 4.0.11 2019-08-04 13:58:37 +03:00
Tobias 2bd48bc45c add settings field for LDAP user authentication field 2019-08-04 11:12:21 +02:00
Lauri Ojansivu 67ecee8322 More targets for packager.io. 2019-08-04 02:29:56 +03:00
Lauri Ojansivu a7b8611c70 Add packager.io targets for https://packager.io/gh/wekan/wekan 2019-08-04 02:17:50 +03:00
Lauri Ojansivu dacaea7443 Update translations. 2019-08-04 01:34:44 +03:00
Lauri Ojansivu a7f7e00a14 Try to fix Snap. 2019-08-04 01:33:18 +03:00
Lauri Ojansivu 5db3dcf8da Update translations. 2019-08-01 17:14:36 +03:00
Lauri Ojansivu 66e011c71b Update translations. 2019-07-30 21:01:19 +03:00
Lauri Ojansivu d2ea240ed4 Merge branch 'Akuket-master' 2019-07-30 20:51:54 +03:00
Lauri Ojansivu 61bc6d3b7a Fix typo. 2019-07-30 20:42:07 +03:00
guillaume f414fe447d add transaltion 2019-07-30 12:00:25 +02:00
guillaume 98e3b0ce77 Add admin setting to prevent users to self deleting their account 2019-07-30 11:57:21 +02:00
guillaume 84ba42f42e add popup to confirm deleting one account 2019-07-30 11:42:43 +02:00
Lauri Ojansivu 7cc1ffcab2 Update translations. 2019-07-29 17:49:03 +03:00
Lauri Ojansivu 669cd76018 Remove mixmax:smart-disconnect , previously it did disconnect Wekan when
browser tab was not active, but because now users are working on multiple
boards at different browser tabs and switching all time time, there was constant
loading, so now after removing all keeps active.
2019-07-29 17:38:10 +03:00
Lauri Ojansivu 8108158573 Update translations. 2019-07-29 00:50:46 +03:00
Lauri Ojansivu 268f9de23c Add RICHER_CARD_COMMENT_EDITOR=true to docker-compose.yml. 2019-07-26 22:30:43 +03:00
Lauri Ojansivu 9fc7d0e825 Update package-lock.json version. 2019-07-26 21:51:22 +03:00
Lauri Ojansivu ea1cdf52dd v3.02 2019-07-26 11:01:56 +03:00
Lauri Ojansivu 7cf6850cdf Try to fix Snap.
Thanks to xet7 !
2019-07-26 10:54:53 +03:00
Lauri Ojansivu 231fee52d2 Update translations. 2019-07-26 09:47:12 +03:00
Lauri Ojansivu 1da198f3bc Update ChangeLog. 2019-07-26 09:31:29 +03:00
Lauri Ojansivu fff144a827 - Set LDAP_BACKGROUND_SYNC_INTERVAL='' (empty string) so it works
and [does not crash](https://github.com/wekan/wekan/issues/2354#issuecomment-515305722).

Thanks to benh57 and xet7 !

Closes #2354
2019-07-26 09:11:28 +03:00
Lauri Ojansivu 85ca2b1363 Updated Wekan on OpenShift. 2019-07-26 09:10:37 +03:00
Lauri Ojansivu 4d4399e95f v3.01 2019-07-26 02:34:32 +03:00
Lauri Ojansivu 05b153f9cc Update ChangeLog. 2019-07-26 02:15:49 +03:00
Lauri Ojansivu 4aba290358 Add RICHER_CARD_COMMENT_EDITOR=true setting to Source/Snap/Docker/Sandstorm.
More details at https://github.com/wekan/wekan/pull/2560

Thanks to xet7 !
2019-07-26 02:01:48 +03:00
Lauri Ojansivu 6a190589f5 Update translations. 2019-07-26 02:00:37 +03:00
Lauri Ojansivu 6218da4c53 Merge branch 'whowillcare-master' 2019-07-26 01:44:04 +03:00
Lauri Ojansivu bdeb941682 Update package-lock.json. 2019-07-26 01:25:53 +03:00
Sam X. Chen 2c042e7f11 Merge remote-tracking branch 'upstream/master' 2019-07-25 16:27:34 -04:00
Sam X. Chen 8f899fca72 Add Feature: User can have richer formatted text into the comments (unexpected theme changes fixed) 2019-07-25 16:26:33 -04:00
Lauri Ojansivu 5f56ba4fb9 Update docs release v3.00 2019-07-25 01:43:50 +03:00
Lauri Ojansivu b50dd68030 v3.00 2019-07-25 01:40:16 +03:00
Lauri Ojansivu 95698911f9 Now Docker works, fixed docker-compose.yml.
Thanks to xet7 !

Related #2533
2019-07-25 01:16:52 +03:00
Lauri Ojansivu 156c8aa75b Update ChangeLog. 2019-07-24 23:07:22 +03:00
Lauri Ojansivu 7df6f305c5 Try to fix Dockerfile. 2019-07-24 22:32:40 +03:00
Lauri Ojansivu f34197b8d2 Try libcurl3. 2019-07-24 21:33:17 +03:00
Lauri Ojansivu 2483b8dbe3 Snap: Add MongoDB dependencies libcurl4 and php-curl. 2019-07-24 21:20:20 +03:00
Lauri Ojansivu 0c8f13e1d9 Try MongoDB 4.0.10 deb with libcurl3-gnutls 2019-07-24 20:08:22 +03:00
Lauri Ojansivu 85084e1808 Update ChangeLog. 2019-07-24 19:16:09 +03:00
Lauri Ojansivu d87920f556 Update ChangeLog. 2019-07-24 18:26:40 +03:00
Lauri Ojansivu 4b5e6aa893 Update translations. 2019-07-24 18:07:43 +03:00
Sam X. Chen a5c1395c46 Add Feature: User can have richer formatted text into the comments (admin-panel fixed) 2019-07-24 11:01:30 -04:00
Lauri Ojansivu c48d5a73ca Added label text to labels on minicard.
Thanks to xet7 !

Closes #2561,
closes #2296,
closes #1466
2019-07-24 17:57:02 +03:00
Lauri Ojansivu a68c928896 Prevent isCommentOnly user adding attachments, editing list names, moving lists,
and seeing board settings menu. Show non-editable Custom Fields to isCommentOnly user.

Thanks to xet7 !

Closes wekan/wekan-snap#97,
closes #2416,
closes #2255
2019-07-24 15:01:05 +03:00
Sam X. Chen 2eae236c5a Add Feature: User can have richer formatted text into the comments (bug fixed) 2019-07-23 14:06:41 -04:00
Sam X. Chen 0db5c1b8fa Merge remote-tracking branch 'upstream/master' 2019-07-22 23:36:31 -04:00
Sam X. Chen 3632f4c8ab Add Feature: Comments can be richer (can support some safe HTML tags) 2019-07-22 23:33:44 -04:00
Lauri Ojansivu 62bfe1da21 Update translations. 2019-07-22 23:00:17 +03:00
Sam X. Chen 0291bcde17 Add Feature: Comments can be richer (can support some safe HTML tags) 2019-07-22 13:57:36 -04:00
Sam X. Chen e3e504310a Add Feature: Comments can be richer (can support some safe HTML tags) 2019-07-22 13:53:37 -04:00
Lauri Ojansivu ff23c54fd5 Merge branch 'pshunter-igbmc' 2019-07-22 00:12:09 +03:00
Lauri Ojansivu 4cc2f7411c Added meteor package percolate:synced-cron required by LDAP
backgound sync https://github.com/wekan/wekan/pull/2555

Thanks to xet7 !

Related #2354
2019-07-22 00:09:04 +03:00
Lauri Ojansivu 41e5478cb3 Merge branch 'igbmc' of https://github.com/pshunter/wekan into pshunter-igbmc 2019-07-22 00:02:00 +03:00
Lauri Ojansivu 14d7e4d20c Update translations. 2019-07-21 23:57:02 +03:00
Lauri Ojansivu e24925c27f Update translations. 2019-07-21 00:50:44 +03:00
Lauri Ojansivu 8ec98ef00c Try legacy MongoDB 4.0.10 without curl etc. 2019-07-21 00:48:39 +03:00
Jean-Christophe Haessig be44fb8aea Makes LDAP background sync work. If the sync interval is unspecified, falls back to a hourly default. 2019-07-19 09:30:35 +02:00
Lauri Ojansivu f06098f3dd Merge pull request #2553 from justinr1234/patch-5
More snap fixes
2019-07-19 00:23:38 +03:00
justinr1234 b30dc8d4f2 More snap fixes 2019-07-18 16:10:15 -05:00
Lauri Ojansivu 57f7af5f90 Merge pull request #2552 from justinr1234/patch-4
Fix snap build-pacakges
2019-07-18 22:32:08 +03:00
justinr1234 510a20133c Fix snap build-pacakges 2019-07-18 14:29:58 -05:00
Lauri Ojansivu 3bd0f6f911 Merge pull request #2549 from justinr1234/fix-invite
Fix invites
2019-07-18 22:24:52 +03:00
Justin Reynolds 66b45ed35c Fix invites 2019-07-18 13:06:25 -05:00
Lauri Ojansivu 34bd1e9c49 Update translations. 2019-07-18 19:10:21 +03:00
Lauri Ojansivu 007c4fc003 Remove python, docs generations etc from Dockerfile. 2019-07-18 04:57:28 +03:00
Lauri Ojansivu ec80acf36b Allow to shrink attached/pasted image: Add to Snap/Docker/Source.
Thanks to xet7 !
2019-07-18 04:52:19 +03:00
Lauri Ojansivu 26ebe6d63a Remove building OpenAPI with esprima-python etc.
Generated docs are included at repo.

Thanks to xet7 !
2019-07-18 04:33:04 +03:00
Lauri Ojansivu 132bf89677 Merge branch 'master' of github.com:wekan/wekan 2019-07-18 04:29:00 +03:00
Lauri Ojansivu 6d43e32f8c Merge branch 'whowillcare-master' 2019-07-18 04:28:42 +03:00
Lauri Ojansivu 9066bd1a0f Add env setting to image resizer, part 1.
Thanks to xet7 !
2019-07-18 04:27:03 +03:00
Lauri Ojansivu 73da3e122e Merge pull request #2546 from justinr1234/fix-snap
Fix snap
2019-07-18 04:19:01 +03:00
Justin Reynolds fbbcd47c4c Fix snap 2019-07-17 23:57:38 +00:00
Lauri Ojansivu 21e0e68a02 Merge branch 'master' of https://github.com/whowillcare/wekan into whowillcare-master 2019-07-17 17:58:57 +03:00
Lauri Ojansivu 21323b3755 Fix typo. 2019-07-17 17:12:46 +03:00
Lauri Ojansivu 6f2eb00c43 Add API docs to repo. 2019-07-17 17:06:25 +03:00
Lauri Ojansivu 797ea29113 v2.99 2019-07-17 16:18:30 +03:00
Lauri Ojansivu 3bf8af4840 Update ChangeLog. 2019-07-17 16:14:13 +03:00
Lauri Ojansivu 350807bc2d Update release scripts. 2019-07-17 16:13:53 +03:00
Lauri Ojansivu 0fb313aec7 Update translations. 2019-07-17 15:51:13 +03:00
Lauri Ojansivu fe42eb1d01 Add check for isActive.
Thanks to xet !
2019-07-17 03:11:37 +03:00
Lauri Ojansivu 1e9a481451 Update translations. 2019-07-16 19:09:56 +03:00
Lauri Ojansivu 7f2f407e2a Org tables already have created and modified fields, so they
[are not needed](https://github.com/wekan/wekan/commit/2cedbcb9b334cd497874736bbb740a1d5c5acb6c#r34310611)
for add-missing-created-and-modified migration, so removing not needed migration.

Thanks to justinr1234 and xet7 !

Related #802
2019-07-16 01:01:25 +03:00
Lauri Ojansivu 75c84e3b5d [Fix id to _id](https://github.com/wekan/wekan/commit/2cedbcb9b334cd497874736bbb740a1d5c5acb6c#r34310594).
Thanks to justinr1234 and xet7 !

Related #802
2019-07-15 23:50:30 +03:00
Lauri Ojansivu 74a4926e83 Use camelCase.
Thanks to xet7 !

Related #802
2019-07-15 23:36:29 +03:00
Lauri Ojansivu 41950ba4de Teams/Organizations part 3, in progress. Table: org_user, and indexes.
Thanks to xet7 !

Related #802
2019-07-15 23:23:09 +03:00
Lauri Ojansivu 583f32e5c5 Teams/Organizations part 2, in progress. Table: org, add index for name field.
Thanks to xet7 !

Related #802
2019-07-15 22:47:30 +03:00
Lauri Ojansivu 2cedbcb9b3 Teams/Organizations part 1, in progress. Add table: org
Thanks to xet7 !

Related  #802
2019-07-15 19:39:30 +03:00
Sam X. Chen 075f1b5df4 Add Feature: allow to shrink attached/pasted image if server has correponding settings 2019-07-15 10:25:16 -04:00
Lauri Ojansivu 2b1ba0b8f8 Update package-lock.json 2019-07-15 06:17:18 +03:00
Lauri Ojansivu 22319e8dfe Revert including local wekan-cfs-access-point, because it did not work. 2019-07-14 21:27:23 +03:00
Lauri Ojansivu 72604d5d73 Add cfs-access-point as local package included in Wekan repo,
to hopefully make Wekan all deps work directly with command `meteor`.

Thanks to xet7 !
2019-07-14 21:09:47 +03:00
Lauri Ojansivu 37ee7091f7 Update translations. 2019-07-14 16:16:30 +03:00
Lauri Ojansivu 3c938252a7 Update translations. 2019-07-12 23:51:47 +03:00
Lauri Ojansivu 09d0fb095f Fix typo. 2019-07-12 23:45:54 +03:00
Lauri Ojansivu 878b43ab31 Update translations. 2019-07-12 14:28:05 -04:00
Lauri Ojansivu b81193c41f Update ChangeLog. 2019-07-12 14:18:38 -04:00
Lauri Ojansivu 3ad6e554dc RELAX THEME: Use only in this theme the aggressive [red color and big bold serif font style
number](https://github.com/wekan/wekan/commit/bbc68309af0029f2bc4194db4c7e79689f888ea4#commitcomment-34216371) and
[card details text emphasis](https://github.com/wekan/wekan/commit/48ebc5f11745b125ce01d08d60e2d8e3a9419a5f#commitcomment-34268095).

Thanks to hever and xet7.
2019-07-12 14:14:50 -04:00
Lauri Ojansivu c9037f55bc Update ChangeLog. 2019-07-12 11:56:04 -04:00
Lauri Ojansivu 2c6b51857f Merge branch 'whowillcare-master' 2019-07-12 11:49:22 -04:00
Lauri Ojansivu 398ae568a0 Merge branch 'master' of https://github.com/whowillcare/wekan into whowillcare-master 2019-07-12 11:45:56 -04:00
Lauri Ojansivu e17d41a15e Update ChangeLog. 2019-07-12 11:35:20 -04:00
Lauri Ojansivu 8bf33a3fce Merge branch 'newhinton-fix/2529/hoverboardoverlay' 2019-07-12 11:14:17 -04:00
Lauri Ojansivu e9f6473a00 Merge branch 'fix/2529/hoverboardoverlay' of https://github.com/newhinton/wekan into newhinton-fix/2529/hoverboardoverlay 2019-07-12 11:07:24 -04:00
Lauri Ojansivu c0d44a9e69 Update translations. 2019-07-12 11:02:10 -04:00
Sam X. Chen 41cffc2418 Add Features: limit the board list to 2 or 1 for mobile clients 2019-07-11 17:32:24 -04:00
Lauri Ojansivu d7c09df7d2 Add BIGEVENTS_PATTERN to Source/Snap/Docker.
Thanks to xet7 !
2019-07-11 17:14:34 -04:00
Lauri Ojansivu 507f84df4c Update translations. 2019-07-11 16:43:52 -04:00
Lauri Ojansivu b39bbfc97a Merge pull request #2541 from whowillcare/master
Added new features: user will be notified when been @ and other feature
2019-07-11 22:47:48 +03:00
Lauri Ojansivu f85080ebd3 Update translations. 2019-07-11 15:39:00 -04:00
Lauri Ojansivu d14a96027a Add package-lock.json 2019-07-11 15:37:12 -04:00
Sam X. Chen 5fd86d29ba Add Features: notifications will be sent when user is being @, or activitytype matches env var BIGENVENTS 2019-07-11 14:32:39 -04:00
Lauri Ojansivu 2461836ae8 Update translations. 2019-07-11 12:35:15 -04:00
Lauri Ojansivu 15dbe227e8 Try to fix Dockerfile. 2019-07-11 12:33:11 -04:00
Sam X. Chen f2a0ae0a2c Merge remote-tracking branch 'upstream/master' 2019-07-11 10:47:08 -04:00
Lauri Ojansivu 46970ae424 Try to fix Dockerfile. 2019-07-10 20:22:27 -04:00
Lauri Ojansivu f7bfa5c112 Try to fix Dockerfile. 2019-07-10 20:05:24 -04:00
Lauri Ojansivu cad8ed89cc Try to fix Dockerfile. 2019-07-10 20:02:06 -04:00
Lauri Ojansivu bae8180385 Try to fix Dockerfile. 2019-07-10 19:55:09 -04:00
Lauri Ojansivu ea97d9dd02 Try to fix Dockerfile. 2019-07-10 19:44:42 -04:00
Lauri Ojansivu 27f73e692f Try to fix Dockerfile. 2019-07-10 19:41:54 -04:00
Lauri Ojansivu e4d1e0d4cb Try to fix Dockerfile. 2019-07-10 19:36:12 -04:00
Lauri Ojansivu 6f90a8d027 Try to fix Dockerfile. 2019-07-10 19:27:37 -04:00
Lauri Ojansivu 7a03e0ef12 Try to fix Dockerfile. 2019-07-10 19:20:38 -04:00
Lauri Ojansivu aa7ad516ee Try to fix Dockerfile. 2019-07-10 19:18:09 -04:00
Lauri Ojansivu d05c4ea9ef Try to fix Dockerfile. 2019-07-10 19:12:39 -04:00
Lauri Ojansivu 72921f04bb Try to fix Dockerfile.
Thanks to xet7 !
2019-07-10 19:11:28 -04:00
Lauri Ojansivu 9b4322c8c7 Try to fix Dockerfile.
Thanks to xet7 !
2019-07-10 18:58:11 -04:00
Lauri Ojansivu 5db7988066 Change compiler to g++
Thanks to xet7 !
2019-07-10 18:45:57 -04:00
Lauri Ojansivu 1634a14246 Try to fix Dockerfile: Create directory for node-gyp.
Thanks to xet7 !
2019-07-10 18:34:22 -04:00
Lauri Ojansivu b7dfd17cbb Try to fix Dockerfile.
Thanks to xet7 !
2019-07-10 18:28:31 -04:00
Lauri Ojansivu 7f16c55ff4 Add missing Python that is used during build.
Thanks to xet7 !
2019-07-10 18:17:09 -04:00
Lauri Ojansivu 15e4d89d20 Update ChangeLog. 2019-07-10 18:00:36 -04:00
Lauri Ojansivu a276fe13a6 Update translations. 2019-07-10 17:57:49 -04:00
Lauri Ojansivu 5042a1f853 Update ChangeLog. 2019-07-10 17:51:30 -04:00
Lauri Ojansivu 2003d90467 Outgoing Webhooks setCustomField: Add board name, card name, custom field name to be visible.
Still missing: custom field value, list name, swimlane name.

Thanks to xet7 !
2019-07-10 17:46:07 -04:00
Lauri Ojansivu 12795c5995 Update ChangeLog. 2019-07-10 13:47:59 -04:00
Lauri Ojansivu 5084cddf37 Notify Due Days: Add settings to Snap/Docker/Source.
Rename env variables to NOTIFY_DUE_DAYS_BEFORE_AND_AFTER and NOTIFY_DUE_AT_HOUR_OF_DAY.

Thanks to xet7 !
2019-07-10 13:45:37 -04:00
Felix Nüsse 064d3dd5f7 dont remove boardoverlay when mouse leaves carddetails 2019-07-10 19:26:43 +02:00
Lauri Ojansivu a3201f4d28 Update rebuild-wekan.sh . 2019-07-10 11:58:37 -04:00
Lauri Ojansivu bbefc67b54 Update rebuild-wekan.sh 2019-07-10 11:56:50 -04:00
Lauri Ojansivu bf24cf48fc Update translations. 2019-07-10 11:42:05 -04:00
Lauri Ojansivu 2ff27674d0 Add .eslintcache to .gitignore 2019-07-10 11:40:30 -04:00
Lauri Ojansivu c80cd9d0b0 Update ChangeLog. 2019-07-10 10:39:10 -04:00
Lauri Ojansivu c019a68fc5 Merge branch 'whowillcare-master' 2019-07-10 10:29:24 -04:00
Lauri Ojansivu 12051a5164 Update babel runtime. 2019-07-10 09:07:01 -04:00
Sam X. Chen 5ca09cdf09 Add Feature: system timelines will be showing any modification for duat startat endat receivedat, also notification to the watchers and if card is due, watchers will be notified 2019-07-09 16:47:48 -04:00
Sam X. Chen 2c44f83453 Add Feature: system timelines will be showing any modification for duat startat endat receivedat, also notification to the watchers and if card is due, watchers will be notified 2019-07-09 16:36:50 -04:00
Lauri Ojansivu a545f8c1a2 Update translations. 2019-07-08 12:44:31 -04:00
Lauri Ojansivu 561a24c481 Update changelog. 2019-07-08 12:42:55 -04:00
Lauri Ojansivu 1ea6552cd1 [Remove from minicard comment icon and number of comments
the aggressive red color and big bold serif font style
number](https://github.com/wekan/wekan/commit/bbc68309af0029f2bc4194db4c7e79689f888ea4#commitcomment-34216371).

Thanks to hever and xet7 !
2019-07-08 12:31:00 -04:00
Lauri Ojansivu 96065d11a5 Update Meteor mongo package version. 2019-07-08 12:30:31 -04:00
Lauri Ojansivu d82c72f1c1 Update dependencies. 2019-07-08 04:50:19 +03:00
Lauri Ojansivu 202cc5a797 Fix docker-compose.yml to use correct master branch that has meteor 1.8.1. 2019-07-06 06:58:12 -04:00
Lauri Ojansivu 289e78dbd2 Add Corteza theme. In progress.
Thanks to xet7 !
2019-07-06 04:59:17 -04:00
Lauri Ojansivu 6dd63db16c Update translations. 2019-07-06 01:56:44 -04:00
Lauri Ojansivu fa00564883 Fix lint error. 2019-07-03 16:04:18 -04:00
Lauri Ojansivu c65ef9bb31 Fix lint error. 2019-07-03 15:53:55 -04:00
Lauri Ojansivu a33cad0d13 v2.98 2019-07-01 17:31:51 -04:00
Lauri Ojansivu 979a439078 Update translations. 2019-07-01 17:27:56 -04:00
Lauri Ojansivu bdd958b24b Update ChangeLog. 2019-07-01 17:25:20 -04:00
Lauri Ojansivu 34b2168d0d Add Wekan v2.95-v2.97 master branch features and fixes to meteor-1.8 branch.
Thanks to xet7 !
2019-07-01 17:23:41 -04:00
Lauri Ojansivu 2c90e7c585 Remove snapcraft version. 2019-07-01 16:16:55 -04:00
Lauri Ojansivu 2105f4d805 Add version. 2019-06-29 11:13:44 -04:00
Lauri Ojansivu 6a05f4fb4e - Change start-wekan.sh use mongodb port 27018 because xet7 uses
RocketChat MongoDB at 27017 and Wekan Snap MongoDB at 27019.
  MongoDB 4.0.10 port is installed separately for Xubuntu 19.10
  from MongDB website and changed at /etc/mongod.conf to run
  on port 27018.

Thanks to xet7.
2019-06-29 11:02:19 -04:00
Lauri Ojansivu 0d10282dbe Update build scripts. 2019-06-29 10:40:03 -04:00
Lauri Ojansivu 8c23d12487 v2.94 2019-06-29 10:11:14 -04:00
Lauri Ojansivu 31e801cc39 - [LDAP: Check if email attribute is an array, that has many email addresses](https://github.com/wekan/wekan/pull/2519).
Thanks to tdemaret and xet7 !
2019-06-29 10:02:23 -04:00
Lauri Ojansivu a2587f94da Update translations. 2019-06-29 09:04:01 -04:00
Lauri Ojansivu 40b782788a Merge branch 'justinr1234-linting' into meteor-1.8 2019-06-29 08:38:52 -04:00
Lauri Ojansivu 45163e2d2d Fix rebuild-wekan.sh 2019-06-29 08:37:14 -04:00
Lauri Ojansivu b711cbae94 Fixes to rebuild-wekan.sh 2019-06-29 08:21:55 -04:00
Lauri Ojansivu b84dc20ded Merge branch 'linting' of https://github.com/justinr1234/wekan into justinr1234-linting 2019-06-29 07:47:57 -04:00
Lauri Ojansivu 100288b3e1 Update translations. 2019-06-29 07:46:25 -04:00
Justin Reynolds 3eb4d2c341 Prettier & eslint project style update 2019-06-28 12:56:51 -05:00
Lauri Ojansivu a0a482aa8e Merge branch 'justinr1234-created-modified' into meteor-1.8 2019-06-27 15:27:14 -04:00
Justin Reynolds 3d63b6006b Auto linting on commit 2019-06-27 09:19:29 -05:00
Justin Reynolds 7d86af2b00 Add prettier 2019-06-27 09:13:22 -05:00
Justin Reynolds c60e80d25b Add createdAt and modifiedAt to all collections 2019-06-27 09:13:20 -05:00
Lauri Ojansivu fb728baf0c Merge branch 'edge' into meteor-1.8 2019-06-27 05:04:23 +03:00
Lauri Ojansivu 436db99a5b v2.92 2019-06-27 05:02:50 +03:00
Lauri Ojansivu ac9b2f7c8f Update translations. 2019-06-27 04:28:16 +03:00
Lauri Ojansivu f0f0634e83 Update translation. 2019-06-27 04:24:38 +03:00
Lauri Ojansivu d6d4629b5a Update changelog. 2019-06-27 04:14:43 +03:00
Lauri Ojansivu 5283ba9ebb - Fix Outgoing Webhook messages for Checlists, Checklist Items, Card comments, Add/Remove CustomField to board.
Not yet fixed is Outgoing Webhook message about setting CustomField value.

Thanks to xet7 !

Related #1969
2019-06-27 04:06:21 +03:00
Lauri Ojansivu 0c352ab143 Merge branch 'edge' into meteor-1.8 2019-06-27 00:54:06 +03:00
Lauri Ojansivu 7c89336ea9 v2.91 2019-06-27 00:52:20 +03:00
Lauri Ojansivu bca1a2f95b Update changelog. 2019-06-26 23:14:16 +03:00
Lauri Ojansivu 6a2f120d00 Fix Attachment Outgoing Webhook missing list and swimlane name.
Thanks to xet7 !

Related #1969,
Closes #2170
2019-06-26 23:06:50 +03:00
Lauri Ojansivu e8ccfb6743 Update translations. 2019-06-26 22:14:51 +03:00
Lauri Ojansivu 69333ea64f Merge branch 'edge' into meteor-1.8 2019-06-21 21:30:15 +03:00
Lauri Ojansivu 8f5e2c4af3 v2.90 2019-06-21 21:28:30 +03:00
Lauri Ojansivu e5c0d0ea18 Revert v2.89 setting every Sandstorm Wekan user as admin.
Thanks to xet7.

Related #2405
2019-06-21 21:23:42 +03:00
Lauri Ojansivu a35712c708 Merge branch 'edge' into meteor-1.8 2019-06-21 21:00:06 +03:00
Lauri Ojansivu 47e64c269c v2.89 2019-06-21 20:58:30 +03:00
Lauri Ojansivu cd69b03ac1 Update translations. 2019-06-21 20:55:36 +03:00
Lauri Ojansivu 5afaa5bce6 Update changelog. 2019-06-21 20:53:58 +03:00
Lauri Ojansivu 60d62a6ae3 - Sandstorm Wekan: Set everyone as Admin. Please test does this help with
[Problem with the user management: can't add users or give wekan admin rights](https://github.com/wekan/wekan/issues/2405).

Thanks to xet7 !

Related #2405
2019-06-21 20:46:05 +03:00
Lauri Ojansivu 4f46adc389 - If board does not exist, redirect to All Boards page, at all Wekan platforms.
So now at Sandstorm when loading Wekan grain, if first Sandstorm board is found,
  it is opened. If first Sandstorm board is not found (it's deleted or archived),
  then redirect automatically to All Boards page.

Closes #3132
2019-06-21 20:09:18 +03:00
Lauri Ojansivu f2bc6f773b Merge branch 'edge' into meteor-1.8 2019-06-21 18:12:21 +03:00
Lauri Ojansivu d2dfcf36d9 v2.88 2019-06-21 18:11:19 +03:00
Lauri Ojansivu 353768b4b5 Update translations. 2019-06-21 18:07:45 +03:00
Lauri Ojansivu 11ad8c7b30 Merge branch 'edge' into meteor-1.8 2019-06-21 12:51:21 +03:00
Lauri Ojansivu 4f3e83b363 v2.87 2019-06-21 12:50:13 +03:00
Lauri Ojansivu 263ec64453 Update changelog. 2019-06-21 12:46:19 +03:00
Lauri Ojansivu 140dc6db25 Update translations. 2019-06-21 12:22:29 +03:00
Lauri Ojansivu 47a7097044 Merge pull request #2508 from road42/bug/card_move_to_top_bottom_fix
Inferface: Can move cardToTop/Bottom. Fixes #2289
2019-06-21 11:54:01 +03:00
Lauri Ojansivu b8e774107a Merge pull request #2507 from road42/bug/english_language_fix_card_trigger
English language update. Fixes #2456
2019-06-21 11:53:44 +03:00
Lauri Ojansivu 3d3c78260b Merge pull request #2506 from road42/feature/rule_card_action_setdate
Adds rule feature: cardAction - SetDate #2504
2019-06-21 11:53:20 +03:00
Christoph Jahn e8f4c4d8b8 Inferface: Can move cardToTop/Bottom. Fixes #2289 2019-06-21 10:11:40 +02:00
Christoph Jahn 2156b28445 English language fixed #2456 2019-06-21 09:11:42 +02:00
Christoph Jahn a9fc74a9b4 Adds rule feature: cardAction - SetDate #2504 2019-06-21 07:24:21 +02:00
Lauri Ojansivu e0a1651784 Merge branch 'edge' into meteor-1.8 2019-06-19 22:58:01 +03:00
Lauri Ojansivu 02de9164f0 v2.86 2019-06-19 22:56:46 +03:00
Lauri Ojansivu 140a2d7915 Update changelog. 2019-06-19 22:50:49 +03:00
Lauri Ojansivu 17c4c96c29 - [Fix Wekan unable to Select Text from Description edit box](https://github.com/wekan/wekan/issues/2451)
by removing feature of card description submit on click outside. This is because when selecting text
  and dragging up did trigger submit of description, so description was closed and selecting text failed.
  This did affect all Chromium-based browsers: Chrome, Chromium, Chromium Edge.

Thanks to xet7 !

Closes #2451
2019-06-19 22:39:29 +03:00
Lauri Ojansivu 2e1162ed73 Merge branch 'edge' into meteor-1.8 2019-06-19 11:43:23 +03:00
Lauri Ojansivu 56e5585730 v2.85 2019-06-19 11:41:59 +03:00
Lauri Ojansivu 51a0dd8861 [Fixed bug: rule doesn't move card to top/bottom](https://github.com/wekan/wekan/pull/2502).
Thanks to road42 !

Closes #2501
2019-06-19 11:36:13 +03:00
Lauri Ojansivu 8bfd94474a Merge pull request #2502 from road42/bug/rule_action_card_move_fix
Fixed bug (rule doesn't move card to top/bottom) #2501
2019-06-19 11:33:34 +03:00
Christoph Jahn 6789e8564a Fixed bug #2501
card.move needs boardId as first parameter
2019-06-19 06:57:58 +02:00
Lauri Ojansivu 8b6856fc89 Merge branch 'edge' into meteor-1.8 2019-06-18 23:45:33 +03:00
Lauri Ojansivu b48c6a5b9c v2.84 2019-06-18 23:43:49 +03:00
Lauri Ojansivu b39b9f5463 Update changelog. 2019-06-18 21:28:32 +03:00
Lauri Ojansivu e72f186a36 Merge branch 'road42-devel' into devel 2019-06-18 21:25:33 +03:00
Christoph Jahn c3d495e7c6 Show buttons for isBoardAdmin 2019-06-17 21:05:21 +02:00
Lauri Ojansivu 70e5b71bdd Merge branch 'meteor-1.8' of github.com:wekan/wekan into meteor-1.8 2019-06-17 21:58:58 +03:00
Lauri Ojansivu a84c8f518b Merge branch 'edge' into meteor-1.8 2019-06-17 21:58:38 +03:00
Lauri Ojansivu 98c6ea467a v2.83 2019-06-17 21:55:16 +03:00
Lauri Ojansivu 6e73abde50 Update changelog. 2019-06-17 21:51:59 +03:00
Lauri Ojansivu 7ff6f24a90 Fix Bug: Unable to click board submenu on mobile.
Thanks to xet7 !

Closes #2261
2019-06-17 21:47:02 +03:00
Lauri Ojansivu 6790c22794 Update dependencies. 2019-06-15 12:58:14 -04:00
Lauri Ojansivu 60a9b4b934 Merge branch 'edge' into meteor-1.8 2019-06-14 16:31:48 +03:00
Lauri Ojansivu 8368461b57 v2.82 2019-06-14 16:30:34 +03:00
Lauri Ojansivu 7dc8a2d659 [Fix OIDC Docker login. Empty string results to empty array at wekan/server/authentication.js](https://github.com/wekan/wekan/commit/bddbaa7bc2f3cfe8553a2265e168231ab51876f3).
Thanks to xet7 !

Closes #2206
2019-06-14 16:27:40 +03:00
Lauri Ojansivu bddbaa7bc2 - Fix OIDC Docker login. Empty string results to empty array at wekan/server/authentication.js
Thanks to xet7 !

Closes #2206
2019-06-14 16:23:18 +03:00
Lauri Ojansivu 434fa3226a Merge branch 'edge' into meteor-1.8 2019-06-13 19:31:02 +03:00
Lauri Ojansivu f9abfe5244 v2.81 2019-06-13 19:29:41 +03:00
Lauri Ojansivu 97d57b05ad Update changelog. 2019-06-13 19:28:08 +03:00
Lauri Ojansivu 4334fbbb9d - Change OAuth2 whitelist default to empty string at snap, so it would be used as array on wekan/server/authentication.js.
Thanks to xet7 !
2019-06-13 19:24:50 +03:00
Lauri Ojansivu e689feddcb Merge branch 'edge' into meteor-1.8 2019-06-13 19:01:30 +03:00
Lauri Ojansivu 595c657b57 Add missing text. 2019-06-13 19:00:18 +03:00
Lauri Ojansivu 375fda0eff Merge branch 'edge' into meteor-1.8 2019-06-13 18:23:24 +03:00
Lauri Ojansivu ed04769947 v2.80 2019-06-13 18:21:51 +03:00
Lauri Ojansivu 44dbd462b1 Default whitelist array, not string.
Thanks to xet7 !
2019-06-13 18:18:03 +03:00
Lauri Ojansivu 291797b238 v2.79 2019-06-13 18:14:43 +03:00
Lauri Ojansivu 1178a48e68 Add back [OAuth2 idTokenWhitelistFields default empty array](https://github.com/wekan/wekan/commit/8b31c0768c34fc4557b54cec936a0b4288a8e722#commitcomment-33921882).
Thanks to moserben16 !
2019-06-13 11:03:45 +03:00
Lauri Ojansivu 34b7bfd19c Update translations. 2019-06-12 19:07:31 +03:00
Lauri Ojansivu 02c418f4bb Update changelog. 2019-06-12 19:05:29 +03:00
Lauri Ojansivu ae3b061d4c Merge pull request #2488 from DominikPf/fix-dockerfile-oauth2-typo
fix oauth2 typos in dockerfile & compose
2019-06-12 18:44:50 +03:00
Dominik Pfeifer eb49bb5e10 fix oauth2 typos in dockerfile & compose 2019-06-12 13:41:10 +02:00
Lauri Ojansivu 38a238df80 Merge branch 'edge' into meteor-1.8 2019-06-12 06:37:34 +03:00
Lauri Ojansivu 79745d1892 v2.78 2019-06-12 06:34:46 +03:00
Lauri Ojansivu 8b31c0768c Try to fix OIDC login.
Thanks to xet7 !
2019-06-12 06:29:57 +03:00
Lauri Ojansivu 25e294fd92 v2.77 2019-06-11 20:27:17 +03:00
Lauri Ojansivu 017d2deeee Fix Snap build.
Thanks to xet7 !
2019-06-11 20:20:29 +03:00
Lauri Ojansivu f154c03385 Merge branch 'edge' into meteor-1.8 2019-06-11 17:48:08 +03:00
Lauri Ojansivu e1e20275a6 v2.76 2019-06-11 17:03:01 +03:00
Lauri Ojansivu 3c4f8f6796 Support scopes in OAuth2, so Authentication via OAuth2 with Google is now possible.
Thanks to moserben16 !

Closes #2454
2019-06-11 16:56:45 +03:00
Lauri Ojansivu 406a9492fd Merge branch 'moserben16-patch-1' into devel 2019-06-11 16:51:36 +03:00
Lauri Ojansivu c859cd2278 Merge branch 'patch-1' of https://github.com/moserben16/wekan into moserben16-patch-1 2019-06-11 16:36:14 +03:00
Lauri Ojansivu cd70d9d09e Update changelog. 2019-06-11 16:34:36 +03:00
Lauri Ojansivu 86e7e1c600 More CORS headers settings related to https://github.com/wekan/wekan/pull/2429
Thanks to xet7 !
2019-06-11 16:32:42 +03:00
Lauri Ojansivu e540148d09 Update changelog. 2019-06-11 16:10:34 +03:00
Lauri Ojansivu 30b108ab36 Merge pull request #2442 from Jason-Cooke/patch-1
docs: fix typo
2019-06-11 16:07:58 +03:00
Lauri Ojansivu ec535aaa9c Update changelog. 2019-06-11 16:02:53 +03:00
Lauri Ojansivu bb108b2144 Merge branch 'road42-devel' into edge 2019-06-11 16:00:44 +03:00
Lauri Ojansivu f3c76ac60b Update ChangeLog. 2019-06-11 15:56:41 +03:00
Lauri Ojansivu 23ccb3b991 Show attachment name in Outgoing Webhook when attachment is removed from card.
Thanks to xet7 !

Related #2285
2019-06-11 13:11:35 +03:00
Lauri Ojansivu 992ecfefa2 Show attachment name in Outgoing Webhook when attachment is added to card.
Thanks to xet7 !

Related #2285
2019-06-11 10:53:50 +03:00
benji fd390d2560 Update oidc_server.js
with this fix, Authentication via OAuth2 with Google is possible.
1.) token endpoint and userinfo-endpoint in Google are different, so you have to check that,
2.) request the scopes of the environment variable "process.env.OAUTH2_REQUEST_PERMISSIONS"
with this small little fix the login with google in oauth2-protocol gets possible :-)
I would be very happy about a master-merge

thank you in advance
2019-06-11 09:23:12 +02:00
Lauri Ojansivu 3f1ac6b5db Update translations. 2019-06-10 18:57:07 +03:00
Lauri Ojansivu d8f112278b Additional CORS headers settings, added earlier. In progress. 2019-06-10 18:29:33 +03:00
Christoph Jahn 0704cfb8b6 isAdmin and isBoardAdmin should add rules 2019-06-08 22:04:09 +02:00
Jason Cooke 5e806c3879 docs: fix typo 2019-06-01 09:57:45 +12:00
Christoph Jahn 27b0fd35b4 Allow BoardAdmin to create board rules. #2431 2019-05-28 17:41:39 +02:00
Lauri Ojansivu 5c1818fc9a Update changelog. 2019-05-24 22:38:23 +03:00
Lauri Ojansivu a7fb9662e3 Merge branch 'risacher-master' into edge 2019-05-24 22:35:35 +03:00
Daniel Risacher cb00cfc1b7 Add support for more CORS headers 2019-05-24 12:39:54 -04:00
Lauri Ojansivu d7bc8d100d Update changelog. 2019-05-23 11:47:50 +03:00
Lauri Ojansivu d067b3976c Merge pull request #2427 from DominikPf/OAuth2-fix
Fix Scope parsing Issue for OAuth2 Login with simple String
2019-05-23 11:43:10 +03:00
DominikPf 892ee60527 Fix Scope parsing Issue for OAuth2 Login 2019-05-23 10:28:08 +02:00
Lauri Ojansivu 526e10865f Merge branch 'edge' into meteor-1.8 2019-05-22 21:48:52 +03:00
Lauri Ojansivu d83cb75f95 v2.75 2019-05-22 21:47:49 +03:00
Lauri Ojansivu 697aaa895d Update translations. 2019-05-22 21:44:23 +03:00
Lauri Ojansivu 8add28d328 Update changelog. 2019-05-22 21:42:59 +03:00
Lauri Ojansivu 634df8f6f2 - Fix: OAuth2 Requested Scopes are wrong / cannot be configured.
Thanks to DominikPf and xet7 !

Closes #2412
2019-05-22 21:37:01 +03:00
Lauri Ojansivu d194cc7a5a - [CAS allowed LDAP groups](https://github.com/wekan/meteor-accounts-cas/pull/4).
Thanks to ppoulard !

Please test.

Related #2356
2019-05-22 20:15:24 +03:00
Lauri Ojansivu e38988126a Merge branch 'edge' into meteor-1.8 2019-05-14 21:34:30 +03:00
Lauri Ojansivu 0834f6ed1e v2.74 2019-05-14 21:33:12 +03:00
Lauri Ojansivu 9d5e288bca Update changelog. 2019-05-14 21:29:46 +03:00
Lauri Ojansivu 0fe40ad9ec - Add missing [wekan-ldap#40](https://github.com/wekan/wekan-ldap/pull/40) code about LDAP_SYNC_ADMIN_STATUS.
Thanks to JulianJacobi, n-st, chirrut2 and xet7 !

Closes #2351
2019-05-14 21:24:11 +03:00
Lauri Ojansivu 4903f3a814 Merge branch 'edge' into meteor-1.8 2019-05-14 16:56:35 +03:00
Lauri Ojansivu 0765278195 v2.73 2019-05-14 16:48:18 +03:00
Lauri Ojansivu f782b9c298 Update translations (fi). 2019-05-14 16:42:05 +03:00
Lauri Ojansivu e611685e50 Fix lint errors. 2019-05-14 16:37:41 +03:00
Lauri Ojansivu 3edef95c4e - [Few fixes for Dockerfile](https://github.com/wekan/wekan/pulls/2407).
Thanks to bentiss !
2019-05-14 16:31:13 +03:00
Lauri Ojansivu 9b902e1ca0 Merge pull request #2407 from bentiss/dockerfile-fixes
Few fixes for Dockerfile
2019-05-14 16:28:51 +03:00
Lauri Ojansivu fc835815d8 - [Card count placement and export API functionality back](https://github.com/wekan/wekan/pulls/2406).
Thanks to bentiss.

Closes #2403,
closes #2328
2019-05-14 16:27:15 +03:00
Lauri Ojansivu da083c2e20 Merge pull request #2406 from bentiss/fixes
card count placement and export API functionality back
2019-05-14 16:25:05 +03:00
Lauri Ojansivu 6ee17ab080 - Fixed [#2338](https://github.com/wekan/wekan/issues/2338) -> [Slow opening of big boards with too many archived items](https://github.com/wekan/wekan/pull/2402).
If some Wekan users see errors with this, please empty your browser cache.
  Thanks to nerminator.

Closes #2338
2019-05-14 16:23:52 +03:00
Benjamin Tissoires 1e34585548 Dockerfile: no need to change the permissions once again
we carefully used gosu where needed, so there is no need to re-run a
check on the permissions.
2019-05-14 10:33:41 +02:00
Benjamin Tissoires 76cd5a2844 Dockerfile: use gosu for creating the openapi files 2019-05-14 10:33:41 +02:00
Benjamin Tissoires ffd1b93abf Dockerfile: bump api2html to version 0.3.3 2019-05-14 10:33:41 +02:00
Benjamin Tissoires 1eea102f26 openAPI: also handle export statement in the scripts
The files are actually modules, not plain scripts, and thus we are allowed
to use `export`. Without `parseModule`, the script would silently fail
when parsing `export.js` and the export function will not be present.
2019-05-14 10:10:21 +02:00
Benjamin Tissoires 94c1367684 Restore export API
Commit 477d71e0b9 was based on an older version of export.js, which
means it reverted a few changes that were made previously.

Fixes #2328
2019-05-14 09:37:56 +02:00
Benjamin Tissoires 9bf19f81a4 Fix card count position
When introducing markdown in the title (b795115042), the card
count got pushed outside of the List Header.

Add its own style (by manually merge small and quiet), and restore its
original placement.

Fixes #2403
2019-05-14 09:37:34 +02:00
Lauri Ojansivu 21de0ec396 Merge pull request #2402 from nerminator/feature/performance_archive
Fixed #2338 -> Slow opening of big boards with too many archived items
2019-05-13 12:56:12 +03:00
wekan ab4fec0f3c Fixed #2338 -> Slow opening of big boards with too many archived items 2019-05-13 11:01:50 +02:00
Lauri Ojansivu 663384e62f Merge branch 'edge' into meteor-1.8 2019-05-13 10:51:44 +03:00
Lauri Ojansivu b983479476 v2.72 2019-05-13 10:49:41 +03:00
Lauri Ojansivu f6e5e514ef Merge pull request #2401 from guyzyl/devel
Added BIDI support to "Add Card" #884
2019-05-13 10:42:42 +03:00
Guy Zylberberg ddd828083e Added BIDI support to "Add Card" #884 2019-05-13 00:37:40 +03:00
Lauri Ojansivu e246099794 Merge branch 'edge' into meteor-1.8 2019-05-12 20:52:49 +03:00
Lauri Ojansivu e079b4df17 v2.71 2019-05-12 20:49:27 +03:00
Lauri Ojansivu 4e5ff17e18 Update translations. 2019-05-12 20:43:23 +03:00
Lauri Ojansivu 86e1a9cd5d Update changelog. 2019-05-12 20:40:32 +03:00
Lauri Ojansivu 8a0efffdf8 Merge pull request #2400 from atilaromero/devel
Add partentId support on card web API
2019-05-12 20:27:50 +03:00
Lauri Ojansivu c21f710a70 Fix typo. 2019-05-12 19:15:49 +03:00
Atila Romero f3382abe3b Add partentId support on card web API 2019-05-12 10:26:08 -03:00
Lauri Ojansivu 0b3343674b Merge branch 'edge' into meteor-1.8 2019-05-11 23:53:39 +03:00
Lauri Ojansivu d6c86f3cba v2.70 2019-05-11 23:50:47 +03:00
Lauri Ojansivu 3a6516f0cb Update changelog. 2019-05-11 23:47:11 +03:00
Lauri Ojansivu b795115042 - [View markdown on List names, Custom Fields (Text and Dropdown), Label names,
All Boards view Board names and Board descriptions](https://github.com/wekan/wekan/issues/2334).

Thanks to shaygover and xet7 !

Related #2334
2019-05-11 23:40:18 +03:00
Lauri Ojansivu 1d33701af0 Merge branch 'edge' into meteor-1.8 2019-05-11 00:09:08 +03:00
Lauri Ojansivu 52fe845d24 v2.69 2019-05-11 00:07:37 +03:00
Lauri Ojansivu b2b6bb2d39 Update changelog. 2019-05-11 00:05:34 +03:00
Lauri Ojansivu db40ca25ac - Fix translation name in Wekan menu: oc to Occitan.
Thanks to xet7 !
2019-05-11 00:02:40 +03:00
Lauri Ojansivu df69ade422 Merge branch 'edge' into meteor-1.8 2019-05-10 23:20:17 +03:00
Lauri Ojansivu 3eef42eee0 v2.68 2019-05-10 23:18:12 +03:00
Lauri Ojansivu 38d0ad74a9 Update changelog. 2019-05-10 23:13:20 +03:00
Lauri Ojansivu 3bbc805ee4 Option to login to the LDAP server with the user's own username and password, instead of an administrator key. Default: false (use administrator key).
With new setting: LDAP_USER_AUTHENTICATION=true
Added to Snap, Docker and Source.

Thanks to xet7 !

Related https://github.com/wekan/wekan/pull/2399
2019-05-10 23:04:51 +03:00
Lauri Ojansivu c37a454bd5 Merge branch 'thiagofernando-devel' into devel 2019-05-10 22:23:15 +03:00
Lauri Ojansivu 6f98be5608 Merge branch 'devel' of https://github.com/thiagofernando/wekan into thiagofernando-devel 2019-05-10 22:21:50 +03:00
Lauri Ojansivu ac0f13ad18 Merge branch 'edge' into meteor-1.8 2019-05-10 21:03:03 +03:00
Lauri Ojansivu ab4dab2ade v2.67 2019-05-10 21:01:34 +03:00
Lauri Ojansivu 88ffddfeba Update changelog. 2019-05-10 20:58:35 +03:00
Thiago Fernando 36f148a7cb Update loginHandler.js
additional option to login in ldap server with user account
2019-05-10 14:58:19 -03:00
Thiago Fernando fd1af07e43 Update ldap.js 2019-05-10 14:56:07 -03:00
Lauri Ojansivu fca87b53f0 Update changelog. 2019-05-10 20:55:35 +03:00
Thiago Fernando ce0473480b Merge pull request #1 from wekan/devel
ldap changes
2019-05-10 14:54:25 -03:00
Lauri Ojansivu 828f6ea321 - Add Feature: Move board to Archive button at each board at All Boards page.
Thanks to xet7 !

Related #2389
2019-05-10 20:50:53 +03:00
Lauri Ojansivu 34b1654077 Merge branch 'edge' into meteor-1.8 2019-05-09 16:37:18 +03:00
Lauri Ojansivu 5dcd1b630e Merge branch 'meteor-1.8' of github.com:wekan/wekan into meteor-1.8 2019-05-09 16:34:33 +03:00
Lauri Ojansivu 7ff4067e88 v2.66 2019-05-09 16:32:34 +03:00
Lauri Ojansivu 491d27638a Delete user feature. 2019-05-09 16:24:13 +03:00
Lauri Ojansivu e1b016cf3d Prevent data loss.
Thanks to xet7 !
2019-05-09 16:17:53 +03:00
Lauri Ojansivu c850669777 Merge pull request #2384 from Akuket/origin/edge
Delete user feature
2019-05-09 16:06:17 +03:00
Lauri Ojansivu 04c7372a4e Update changelog. 2019-05-09 16:02:54 +03:00
Lauri Ojansivu 9fe4aedec1 Update packages. 2019-05-09 08:48:02 -04:00
Lauri Ojansivu 64ee60a008 Fix missing profile checks.
Thanks to justinr1234 !
2019-05-09 14:32:38 +03:00
Lauri Ojansivu b6d7c71cc8 Merge branch 'edge' into meteor-1.8 2019-05-09 14:27:34 +03:00
Lauri Ojansivu 778cd22e72 Merge pull request #2396 from justinr1234/wekan-profile-checks
Fix missing profile checks
2019-05-09 14:25:06 +03:00
Lauri Ojansivu 434ed895ed Merge pull request #2395 from guyzyl/devel
Fixed RTL issue #884
2019-05-09 14:24:35 +03:00
Justin Reynolds daf314b037 Fix missing profile checks 2019-05-08 16:54:15 -05:00
Guy Zylberberg 1bdc1017d6 Fixed RTL issue #884 2019-05-08 21:30:38 +03:00
Lauri Ojansivu 6218d8c7ed Update translations. 2019-05-08 18:20:49 +03:00
Lauri Ojansivu c250554177 Update translations. Add Chinese (Hong Kong). 2019-05-06 20:57:01 +03:00
Lauri Ojansivu de772a8c3b Update changelog. 2019-04-29 01:18:17 +03:00
Lauri Ojansivu 23f1cf5f49 Update translations. 2019-04-29 01:17:52 +03:00
Lauri Ojansivu 723fa11a74 Merge pull request #2385 from faust64/patch-1
fix(oidc): can not log in
2019-04-26 23:08:45 +03:00
Lauri Ojansivu 94b602e167 Update translations. 2019-04-26 23:07:38 +03:00
Samuel b17359ec6f fix(oidc): can not log in
Trying to configure wekan authenticating against LemonLDAP-NG, I used to read about errors like the following:

```
XXX: getUserInfo response:  { sub: 'demoone' }
XXX: userinfo: { sub: 'demoone' }
{"line":"431","file":"oauth.js","message":"Error in OAuth Server: id is not defined","time":{"$date":1556286530412},"level":"warn"}
Exception while invoking method 'login' { stack: 'ReferenceError: id is not defined\n    at Object.handleOauthRequest (packages/wekan-oidc.js:39:68)\n    at OAuth._requestHandlers.(anonymous function) (packages/oauth2.js:27:31)\n    at middleware (packages/oauth.js:203:5)\n    at packages/oauth.js:176:5',
source: 'method' }
```

Looking at the sources, that error message seems to be right: we have several references to `id`, `uid`, `displayName` or `email`, which are not defined. Probably a typo, assuming we meant these to be strings.

Applying that patch, I confirm I can finally log in:

```
XXX: getUserInfo response:  { sub: 'demoone' }
XXX: userinfo: { sub: 'demoone' }
XXX: serviceData: { id: undefined,
  username: undefined,
  fullname: undefined,
  accessToken: 'e57dc4e9e81cc98c279db3ed08b1c72f',
  expiresAt: 1556298699213,
  email: undefined }
XXX: profile: { name: undefined, email: undefined }
```

All the credit goes to @pcurie .
2019-04-26 18:21:42 +02:00
guillaume cdef8a33e4 Delete user feature 2019-04-26 17:53:48 +02:00
Lauri Ojansivu 97ff2bd2fa Merge branch 'edge' into meteor-1.8 2019-04-24 16:13:29 +03:00
Lauri Ojansivu 11a91bfc78 Update translations. 2019-04-24 16:12:29 +03:00
Lauri Ojansivu 4282906833 Merge branch 'edge' into meteor-1.8 2019-04-24 14:41:37 +03:00
Lauri Ojansivu aeb3dd0220 v2.65 2019-04-24 14:40:04 +03:00
Lauri Ojansivu 9647a33209 Update translations. 2019-04-24 14:01:38 +03:00
Lauri Ojansivu 2d966863e3 Merge branch 'Akuket-edge' into edge 2019-04-24 13:51:00 +03:00
Lauri Ojansivu a66632f767 Update translations. 2019-04-24 13:41:29 +03:00
Lauri Ojansivu 1c2ee631f4 Update changelog. 2019-04-24 13:37:19 +03:00
guillaume 259ff3436f fix lints 2019-04-24 12:35:00 +02:00
Lauri Ojansivu a750ecaafd - Remove from card menu, because they also exist at card:
members, labels, attachments, dates received/start/due/end.

Thanks to sfahrenholz, jrsupplee and xet7 !

Closes #2242,
related https://community.vanila.io/?t=517527b6-3d84-4e9d-b2ec-6f560a9cfdf7
2019-04-24 13:32:36 +03:00
guillaume 8b3601248d Loading authentication page 2019-04-24 12:28:11 +02:00
Lauri Ojansivu b1cfd8229a Merge branch 'meteor-1.8' of github.com:wekan/wekan into meteor-1.8 2019-04-23 19:52:07 +03:00
Lauri Ojansivu 202f4235d7 Merge branch 'edge' into meteor-1.8 2019-04-23 19:51:53 +03:00
Lauri Ojansivu 6420020309 v2.64 2019-04-23 19:49:07 +03:00
Lauri Ojansivu 65d86a42d7 Update translations (es). 2019-04-23 19:45:54 +03:00
Lauri Ojansivu 4eaffdc6a4 [Board Archive: Delete Card/List/Swimlane](https://github.com/wekan/wekan/pull/2376).
Thanks to Akuket !

Closes #1625
2019-04-23 19:43:02 +03:00
Lauri Ojansivu 454e8a3962 Update translations. 2019-04-23 19:38:23 +03:00
Lauri Ojansivu 11e8a9d5c4 Merge branch 'Akuket-feature/removeArchived' into edge 2019-04-23 19:30:23 +03:00
guillaume 8137f2692f remove feature 2019-04-23 18:00:09 +02:00
Lauri Ojansivu 6933424fca Remove python2 from Dockerfile, to make Docker image smaller.
Thanks to xet7 !
2019-04-23 15:10:47 +03:00
Lauri Ojansivu 1fff4e0eed Upgrade pip also. 2019-04-23 15:10:05 +03:00
Lauri Ojansivu 9d2227bffb Merge branch 'edge' into meteor-1.8 2019-04-23 14:42:58 +03:00
Lauri Ojansivu ff8a10c231 v2.63 2019-04-23 14:41:33 +03:00
Lauri Ojansivu 6a94500170 Remove caddy plugins http.filter, http.ipfilter and http.realip from caddy
because they are currently broken, preventing download of caddy
during Wekan Snap build.

Thanks to xet7 !
2019-04-23 14:35:41 +03:00
Lauri Ojansivu d9e361cf1b Merge branch 'edge' into meteor-1.8 2019-04-23 14:09:39 +03:00
Lauri Ojansivu 41eb47bc15 v2.62 2019-04-23 14:08:13 +03:00
Lauri Ojansivu 211f772447 Merge pull request #2374 from hupptechnologies/center-card-list-view
Issue : Mobile UI Center cards in list view #2371
2019-04-23 14:02:04 +03:00
Lauri Ojansivu 6d6e3fd127 Update translations. 2019-04-23 14:00:12 +03:00
hupptechnologies 14ef0ab6d1 Issue : Mobile UI Center cards in list view #2371
Resolved #2371
2019-04-23 15:09:09 +05:30
Lauri Ojansivu 070de69ebe Fix build scripts. 2019-04-20 15:11:20 -04:00
Lauri Ojansivu a72d730373 Remove extra check. 2019-04-20 14:20:37 -04:00
Lauri Ojansivu a1efe50659 Fix repo url. 2019-04-20 14:17:55 -04:00
Lauri Ojansivu 30e3b448fd Update docker-compose.yml to use meteor-1.8 branch with MongoDB 4.0.9. 2019-04-20 13:56:32 -04:00
Lauri Ojansivu 29d895742c Fix snap npm permissions. 2019-04-20 13:45:23 -04:00
Lauri Ojansivu c23047a59f Update to MongoDB 4.0.9 on Snap. 2019-04-20 13:34:55 -04:00
Lauri Ojansivu 4aa26e292e Try to fix snap. 2019-04-20 13:31:36 -04:00
Lauri Ojansivu 0a20795ea4 Fix python3 pip and setuptools error. 2019-04-20 13:31:03 -04:00
Lauri Ojansivu c3a27f6d17 Fixes to get Dockerfile built on ubuntu:disco. 2019-04-20 13:13:00 -04:00
Lauri Ojansivu 4c9a90a461 Update version. 2019-04-20 12:09:42 -04:00
Lauri Ojansivu eb58d335c0 Merge branch 'edge' into meteor-1.8 2019-04-20 17:12:41 +03:00
Lauri Ojansivu 8434069539 v2.61 2019-04-20 17:11:14 +03:00
Lauri Ojansivu c7621f251f Fix release build script. package repos are included to Wekan now. 2019-04-20 17:04:59 +03:00
Lauri Ojansivu 2f2c4723a6 Merge pull request #2347 from justinr1234/meteor18
Additional Meteor 1.8.1 changes
2019-04-20 16:52:33 +03:00
Lauri Ojansivu 02819ca169 Merge branch 'edge' into meteor-1.8 2019-04-20 16:51:57 +03:00
Lauri Ojansivu a5122cc076 Update translations. 2019-04-20 16:47:54 +03:00
Lauri Ojansivu 5993d6862b Change enter => search 2019-04-20 16:46:26 +03:00
Lauri Ojansivu 348b612f98 Fix rebuild script. 2019-04-20 16:34:16 +03:00
Lauri Ojansivu f714b59c88 Uncomment not needed lines. 2019-04-20 16:31:10 +03:00
Lauri Ojansivu b627499acd Merge branch 'Akuket-edge' into edge 2019-04-20 16:29:08 +03:00
Lauri Ojansivu 43beccc2eb Update translations. 2019-04-20 16:28:03 +03:00
Lauri Ojansivu b8275b3404 Merge branch 'edge' of https://github.com/Akuket/wekan into Akuket-edge 2019-04-20 16:22:20 +03:00
Lauri Ojansivu 6e4da08164 LDAP issues now at main Wekan repo. 2019-04-20 16:21:21 +03:00
Lauri Ojansivu f2ac52bcdf Update changelog. 2019-04-20 16:20:00 +03:00
Lauri Ojansivu 46e976513b Move https://github.com/wekan/wekan-postgresql to
wekan/torodb-postgresql at https://github.com/wekan/wekan

Thanks to xet7 !
2019-04-20 16:05:54 +03:00
Lauri Ojansivu 816ccf6509 Update package names. 2019-04-20 15:24:09 +03:00
Lauri Ojansivu 73e265d8fd Include to Wekan packages directory contents, so that meteor command would build all directly.
This also simplifies build scripts.

Thanks to xet7 !
2019-04-20 15:18:33 +03:00
Lauri Ojansivu 6117097a93 - Upgrade to Node 8.16.0
- Change git repo urls from git:// to https://

Thanks to xet7 !
2019-04-20 14:52:37 +03:00
Lauri Ojansivu fee732dba1 Fix repo urls. 2019-04-20 14:47:33 +03:00
Lauri Ojansivu 1138e8062f Fix repo url. 2019-04-20 14:46:11 +03:00
Lauri Ojansivu 123cf0d7b8 Fix typos in directory names. 2019-04-20 14:03:35 +03:00
Lauri Ojansivu bd14ee3b1f Ubuntu base image to ubuntu:disco
Thanks to Ubuntu and xet7 !
2019-04-20 13:44:14 +03:00
Justin Reynolds a1ae4d7ef0 Additional Meteor 1.8.1 changes 2019-04-19 10:16:37 -05:00
guillaume e63eee0c68 fix lints 2019-04-19 16:39:14 +02:00
guillaume 070feb4b66 Number of users 2019-04-19 16:17:17 +02:00
guillaume 308417852c Search user in admin panel 2019-04-19 14:57:52 +02:00
Lauri Ojansivu 9c3a976250 - Remove [extra](https://github.com/wekan/wekan/pull/2332) [quotes](https://github.com/wekan/wekan/pull/2333) from docker-compose.yml.
Thanks to hibare !
2019-04-18 13:42:00 +03:00
Lauri Ojansivu 688973bae5 [Fix Full width of lists and space before first list](https://github.com/wekan/wekan/pull/2343).
Thanks to hupptehcnologies !

Closes #2336
2019-04-18 13:38:37 +03:00
Lauri Ojansivu d93b0be0d4 Add missing packages back. 2019-04-18 13:36:14 +03:00
Lauri Ojansivu 773abbae13 Merge pull request #2343 from hupptechnologies/improve-mobile-ui
Issue: Full width of lists and space before first list #2336
2019-04-18 13:35:20 +03:00
Lauri Ojansivu 0f3579fd7b Merge branch 'devel' into improve-mobile-ui 2019-04-18 13:34:40 +03:00
Lauri Ojansivu db7b7158fa Merge branch 'master' into devel 2019-04-18 13:30:49 +03:00
Lauri Ojansivu b5a61f2dd8 Merge pull request #2333 from hibare/devel
Removed quotes
2019-04-18 13:30:23 +03:00
Lauri Ojansivu 8347f15de2 Merge pull request #2332 from hibare/master
Removed quotes
2019-04-18 13:30:05 +03:00
Lauri Ojansivu 26309fad10 Update translations. 2019-04-18 13:26:46 +03:00
Lauri Ojansivu ba4d8b0b35 Update to newest GitHub flawored markdown.
Thanks to shaygover and xet7 !

Related #2334
2019-04-18 13:23:48 +03:00
hupp-mac-4 dc11e0c79c Issue: Full width of lists and space before first list #2336
Resolved #2336
2019-04-18 15:41:23 +05:30
Lauri Ojansivu a13d931cfd Change to correct issue number as noticed typo at #2295 2019-04-18 13:10:49 +03:00
Lauri Ojansivu fea2ad3d7d Test newest markdown. 2019-04-18 10:57:59 +03:00
Lauri Ojansivu 53d42a17ff Update compatible mongodb version to 4.0.6 2019-04-12 19:26:24 +00:00
Lauri Ojansivu cc21da6266 Fix quotes. 2019-04-12 18:55:24 +00:00
Lauri Ojansivu ab05af79ec Update packages, and remove broken one about mousewheel. 2019-04-12 18:40:50 +00:00
Lauri Ojansivu c46c5e9c8f Fix rebuild script. 2019-04-12 18:03:07 +00:00
Lauri Ojansivu 9c50b81c70 Update packages. 2019-04-12 18:01:02 +00:00
Lauri Ojansivu 144771bebf Merge branch 'meteor-1.8' of github.com:wekan/wekan into meteor-1.8 2019-04-12 17:02:12 +00:00
Lauri Ojansivu 422aabd562 Update to Meteor 1.8.1 2019-04-12 17:01:44 +00:00
Shubham Hibare b8c10def8e Removed quotes 2019-04-12 00:44:54 +05:30
Shubham Hibare 80afc28719 Removed quotes 2019-04-12 00:43:59 +05:30
Lauri Ojansivu 561cd77e68 Replace header login example variable names.
Related #2019
2019-04-08 12:01:26 +03:00
Lauri Ojansivu d8554ec67e Combine to same line. 2019-04-08 10:58:49 +03:00
Lauri Ojansivu 076dda8bd3 Merge branch 'edge' into meteor-1.8 2019-04-08 10:33:24 +03:00
Lauri Ojansivu a43237d4f9 v2.60 2019-04-08 10:31:48 +03:00
Lauri Ojansivu 6af7d782d4 Update translations. 2019-04-08 10:29:29 +03:00
Lauri Ojansivu 6d2b778ac5 [Fix: Description of Board is out of visible after Feature "Duplicate Board"](https://github.com/wekan/wekan/issues/2324).
Thanks to sfahrenholz and xet7 !

Closes #2324
2019-04-08 09:07:58 +03:00
Lauri Ojansivu eada773048 [Fix: Description of Board is out of visible after Feature "Duplicate Board"](https://github.com/wekan/wekan/issues/2324).
Thanks to sfahrenholz and xet7 !

Closes #2324
2019-04-08 09:03:55 +03:00
Lauri Ojansivu 9bff4e061e Update translations. 2019-04-07 18:27:17 +03:00
Lauri Ojansivu f2f13450b5 Merge branch 'edge' into meteor-1.8 2019-04-06 14:17:09 +03:00
Lauri Ojansivu 753ce8e119 v2.59 2019-04-06 14:15:40 +03:00
Lauri Ojansivu 4be6719db4 - [Add variables for activity notifications, Fixes #2285](https://github.com/wekan/wekan/pull/2320).
Thanks to rinnaz !

Closes #2285
2019-04-06 14:07:55 +03:00
Lauri Ojansivu a6e1dc4269 Merge pull request #2320 from rinnaz/fix/issue-2285
Add variables for activity notifications Fixes #2285
2019-04-06 14:04:09 +03:00
Lauri Ojansivu 4356aaff23 Merge branch 'edge' into meteor-1.8 2019-04-06 13:56:09 +03:00
Lauri Ojansivu ad241b9f84 v2.58 2019-04-06 13:54:32 +03:00
Lauri Ojansivu 53e76288cb [Add Duplicate Board tooltip, and remove adding text "Copy" to duplicated board](https://github.com/wekan/wekan/commit/0f15b6d1982c383f76e8411cb501ff27e8febd42).
Thanks to xet7 !
2019-04-06 13:52:05 +03:00
Lauri Ojansivu 0f15b6d198 - Add Duplicate Board tooltip, and remove adding text "Copy" to duplicated board.
Thanks to xet7 !
2019-04-06 13:47:15 +03:00
windblow 143e93f483 Add variables for activity notifications Fixes #2285 2019-04-06 12:45:31 +03:00
Lauri Ojansivu 93a5bb2baa Add the following new features:
- [Duplicate Board](https://github.com/wekan/wekan/issues/2257). Related #2225.
  Thanks to Angtrim. Closes #2257.

and fix the following bugs:

- [Fix Swimlane Rules don't work](https://github.com/wekan/wekan/issues/2225).
  Thanks to Angtrim.
2019-04-06 09:19:33 +03:00
Lauri Ojansivu ebfc8e5a1b Fix lint errors.
Thanks to xet7 !
2019-04-06 09:00:13 +03:00
Lauri Ojansivu 972b9b6e91 Remove extra files.
Thanks to xet7 !
2019-04-06 08:50:56 +03:00
Lauri Ojansivu 56cccc6781 Merge remote-tracking branch 'Angtrim/feature-duplicate' into edge 2019-04-06 08:46:40 +03:00
Lauri Ojansivu b680bb5372 - [Remove not needed ARGS from Dockerfile to reduce amount of Docker layers](https://github.com/wekan/wekan/issues/2301).
Thanks to folhabranca !

Closes #2301
2019-04-06 08:14:37 +03:00
Lauri Ojansivu 217b3ae488 Remove not needed ARGS from Dockerfile to reduce amount of Docker layers.
Thanks to folhabranca !

Closes #2301
2019-04-06 08:11:08 +03:00
Lauri Ojansivu 959392f815 [Center reduce left margin in card view on mobile browser](https://github.com/wekan/wekan/pull/2314).
Thanks to hupptechnologies !
2019-04-06 07:57:30 +03:00
Lauri Ojansivu d1e13e48fe Restore original meteor packages and versions.
Thanks to xet7 !
2019-04-06 07:47:08 +03:00
Lauri Ojansivu 1c04502963 Merge branch 'devel' of github.com:wekan/wekan into devel 2019-04-06 07:45:16 +03:00
Lauri Ojansivu 34da23783e Merge pull request #2314 from hupptechnologies/card-view-on-mobile-browser
Issue: Center reduce left margin in card view on mobile browser #2188
2019-04-06 07:45:03 +03:00
Lauri Ojansivu 2b603cfbb5 Merge branch 'edge' into devel 2019-04-06 07:44:03 +03:00
Lauri Ojansivu a1fe22c08c [Add proper variables for unjoin card](https://github.com/wekan/wekan/pull/2313).
Thanks to chotaire.
2019-04-06 07:43:14 +03:00
Lauri Ojansivu bc04ae24a7 Merge pull request #2313 from chotaire/edge
Add proper variables for unjoin card
2019-04-05 22:10:05 +03:00
Angelo Gallarello 48216e1653 Minor fixes 2019-04-05 10:38:39 +02:00
hupptechnologies 8aca82a593 Issue: Center (or reduce left margin) in card view on mobile browser #2188
Resolved #2188
2019-04-05 13:27:41 +05:30
chotaire 68d8cbe68a Merge pull request #1 from chotaire/chotaire-patch-1
Add proper variables for unjoin card
2019-04-05 03:03:57 +02:00
chotaire 4bc3acb14d Add proper variables for unjoin card 2019-04-05 02:59:35 +02:00
Lauri Ojansivu a974ec9dee Update translations. 2019-04-04 20:22:25 +03:00
Lauri Ojansivu e91c43466d Merge pull request #2303 from fossabot/devel
Add license scan report and status
2019-04-02 16:36:29 +03:00
fossabot dfc4ab6dd8 Add license scan report and status
Signed-off-by: fossabot <badges@fossa.io>
2019-04-02 06:32:34 -07:00
Lauri Ojansivu 0b9afcb443 Merge branch 'edge' into meteor-1.8 2019-04-02 15:28:30 +03:00
Lauri Ojansivu 9f5ffde2dd v2.57 2019-04-02 15:26:40 +03:00
Lauri Ojansivu 678bef2360 Update changelog. 2019-04-02 15:19:21 +03:00
Lauri Ojansivu 3b12cdc179 Merge branch 'bentiss-spinners-no-IntersectionObserver' into devel 2019-04-02 15:15:34 +03:00
Benjamin Tissoires 261754f18b list: do not use IntersectionObserver to reduce CPU usage
Switch back to a custom spinner detection, as the IntersectionObserver
is eating a lot of CPU resources on idle.

This should also take care of #2250 properly: the previous `onDestroyed()`
was removing the resize and scroll callbacks, but they were not unique
enough, and they were shared across swimlanes. So if a list had 2 swimlanes
with spinners, when one was removed, the other was not triggering its
callbacks anymore.

Related: #2294
2019-04-01 23:54:35 +02:00
Lauri Ojansivu 980db9cb0c Merge branch 'edge' of github.com:wekan/wekan into edge 2019-03-30 19:07:05 +02:00
Lauri Ojansivu a80cd455de - [Add back zoom fixes of #2250](https://github.com/wekan/wekan/issues/2250).
Thanks to xet7 !
2019-03-30 19:06:09 +02:00
Lauri Ojansivu 289e3d6286 More deps. 2019-03-30 14:34:32 +02:00
Lauri Ojansivu 4b181620d8 Added nodejs to install dependencies.
Thanks to xet7 !
2019-03-30 14:30:04 +02:00
Lauri Ojansivu 088ec7fd94 [Add proper variables for join card](https://github.com/wekan/wekan/commit/289f1fe1340c85eb2af19825f4972e9057a86b7a),
fixes [Incorrect variable replacement on email notifications](https://github.com/wekan/wekan/issues/2295).

Thanks to justinr1234 !

Closes #2295
2019-03-29 14:39:35 +02:00
Lauri Ojansivu 289f1fe134 Merge pull request #2291 from justinr1234/patch-3
Add proper variables for join card Fixes #2285
2019-03-29 14:35:06 +02:00
Lauri Ojansivu 6b9ac52af6 Update translations. 2019-03-29 14:34:24 +02:00
Lauri Ojansivu 0e422eb70d [Revert spinner etc fixes of Wekan v2.56, because of some new bugs](https://github.com/wekan/wekan/issues/2250).
Thanks to gerroon !

Related #2250
2019-03-29 14:31:26 +02:00
Lauri Ojansivu df32545b07 Revert spinner etc fixes of Wekan v2.56, because of some new bugs.
Thanks to gerroon !

Related #2250
2019-03-29 14:27:37 +02:00
justinr1234 bab340a849 Add proper variables for join card Fixes #2285 2019-03-28 19:38:02 -05:00
Lauri Ojansivu 5e7e9e8c0d Change to MongoDB 4.0.7 legacy versions without curl to get it working. 2019-03-27 19:02:57 +02:00
Lauri Ojansivu 5841a3abea Merge branch 'edge' into meteor-1.8 2019-03-27 17:53:06 +02:00
Lauri Ojansivu 494d44f8bb v2.56 2019-03-27 17:51:54 +02:00
Lauri Ojansivu ad1a81e8a0 Update translations. 2019-03-27 17:46:09 +02:00
Lauri Ojansivu b0d507c2dd [Fixes the following bugs](https://github.com/wekan/wekan/pull/2287):
- [#2250 -> the spinner could be shown on startup and never goes away](https://github.com/wekan/wekan/issues/2250).
- The code will now only load extra cards that will be in the current viewport.
- When 2 users were interacting on the same board, there was a situation where the spinner could show up on the other user, without being able to load the extra cards.
- The code is now much simpler, thanks to the IntersectionObserver, and all of this for fewer lines of code :)

Thanks to bentiss with Apache I-CLA !

Closes #2250
2019-03-27 17:38:54 +02:00
Lauri Ojansivu 619e5e944b Merge branch 'bentiss-fix-infinite-scroll' into edge 2019-03-27 17:33:53 +02:00
Benjamin Tissoires e2d0faa539 list: disconnect infinite-scroll observer to prevent memory leak 2019-03-26 16:28:25 +01:00
Benjamin Tissoires cbb6c82113 list: move the spinner into its own blaze component
This way, when a list is at the maximum number of cards shown and adding
a new card would make the spinner appear, the list would load the next
N items.

This can happen if user A and B are both looking at the same board,
B adds a new cards, and A will see the spinner and will not be able to
remove it.
2019-03-26 16:27:52 +01:00
Benjamin Tissoires 00376b43f8 list: make sure the spinner of infinite scrolling doesn't show on load
When loading a board on a high resolution screen, there is a chance there
is not enough cards displayed and the spinner is still there, spinning
forever.

Add an idle callback that checks if the spinner is still there, and while
it is there, extend the number of cards to show.

Fixes #2250
2019-03-26 16:26:59 +01:00
Benjamin Tissoires fb163a2493 list: simplify infinite scrolling
Use IntersectionObserver instead of custom made one.
This adds the benefit of not loading any extra cards if the list is
not shown on screen
2019-03-26 16:25:49 +01:00
Lauri Ojansivu d753fc06c9 Use mongodb for Ubuntu 16.04 2019-03-26 00:25:40 +02:00
Lauri Ojansivu a85d652db4 Try to fix meteor-1.8 snap build. 2019-03-25 20:09:31 +02:00
Lauri Ojansivu a9e6bf62bd Merge branch 'edge' into meteor-1.8 2019-03-25 19:12:48 +02:00
Lauri Ojansivu 14c493fc63 v2.55 2019-03-25 19:11:35 +02:00
Lauri Ojansivu 625682a4da - Use older api2html@0.3.0 to fix broken snap and docker build,
because newer api2html caused
  [breaking change](https://github.com/tobilg/api2html/commit/a9a41bca18db3f9ec61395d7262eff071a995783)
  at api2html/bin/api2html.js:23 has error about "php: "PHP".

Thanks to bentiss with Apache I-CLA !

Closes #2286
2019-03-25 18:57:35 +02:00
Lauri Ojansivu 0674ce19fe Revert to original snapcraft.yaml. 2019-03-25 17:18:01 +02:00
Lauri Ojansivu 3fc251c1f6 Merge branch 'meteor-1.8' of github.com:wekan/wekan into meteor-1.8 2019-03-25 17:15:36 +02:00
Lauri Ojansivu 67c3f663a1 Merge branch 'edge' into meteor-1.8 2019-03-25 17:15:18 +02:00
Lauri Ojansivu eec8f45de5 v2.54 2019-03-25 17:11:29 +02:00
Lauri Ojansivu 0855e3e32f Update translations. 2019-03-25 17:04:29 +02:00
Lauri Ojansivu fab3ce46b8 - Fix typos.
- Fix Outgoing Webhook message about created new swimlane.

Related #1969
2019-03-25 17:02:36 +02:00
Lauri Ojansivu 08c8ebc100 - Fix typos.
- Fix Outgoing Webhook message about created new swimlane.

Related #1969
2019-03-25 16:59:12 +02:00
Lauri Ojansivu 2050796a33 Try to build meteor-1.8 snap. 2019-03-25 08:59:52 +00:00
Lauri Ojansivu 7c4c467e46 Update packages. 2019-03-25 08:25:36 +00:00
Lauri Ojansivu 0039fe09be Removed commented out text. 2019-03-24 17:44:03 +02:00
Lauri Ojansivu 4f4f3e4593 Merge branch 'edge' into meteor-1.8 2019-03-23 21:35:55 +02:00
Lauri Ojansivu 97beed6fd1 v2.53 2019-03-23 21:34:43 +02:00
Lauri Ojansivu 994314cfa3 Fix filenames and urls. 2019-03-23 21:30:41 +02:00
Lauri Ojansivu 5160d59d79 Merge branch 'edge' into meteor-1.8 2019-03-23 21:14:05 +02:00
Lauri Ojansivu db6dbe34c3 Fix docker-compose.yml 2019-03-23 21:13:03 +02:00
Lauri Ojansivu fa7ef361e2 Update translations. 2019-03-23 13:17:36 +02:00
Lauri Ojansivu ab4774a59a Merge branch 'edge' into meteor-1.8 2019-03-22 13:10:31 +02:00
Lauri Ojansivu 296349a83b v2.52 2019-03-22 13:08:36 +02:00
Lauri Ojansivu 563458e0b5 Update translations. 2019-03-22 12:03:25 +02:00
Lauri Ojansivu 169301fa18 Update translations. 2019-03-22 09:25:18 +02:00
Lauri Ojansivu 0363e6f122 Remove extra title quotes, so that Custom Product Name comes visible.
Thanks to xet7 !
2019-03-22 01:35:53 +02:00
Lauri Ojansivu c259324185 Fix cloning repos. 2019-03-21 23:58:58 +02:00
Lauri Ojansivu 57767d9906 Update translations. 2019-03-21 23:48:36 +02:00
Lauri Ojansivu 1a26f9fb82 Update translations. 2019-03-21 22:35:13 +02:00
Lauri Ojansivu 19ab7db239 Add vanila community link. 2019-03-21 22:34:41 +02:00
Lauri Ojansivu ded430c155 - [Add LDAP config example, remove extra text](https://github.com/wekan/wekan/commit/506acda70b5e78737c52455e5eee9c8758243196).
Thanks to xet7 !
2019-03-21 22:24:35 +02:00
Lauri Ojansivu 506acda70b - Add LDAP config example, remove extra text.
Thanks to xet7 !
2019-03-21 22:22:46 +02:00
Lauri Ojansivu d173844f98 OAUTH2_LOGIN_STYLE popup or redirect, part 2 and 3. 2019-03-21 21:41:18 +02:00
Lauri Ojansivu 7919ae3628 - OAUTH2_LOGIN_STYLE popup or redirect, part 2.
Thanks to xet7 !
2019-03-21 21:37:38 +02:00
Lauri Ojansivu 188d42dcd6 [Add option to redirect OIDC OAuth2 login](https://github.com/wekan/wekan-ldap/commit/82a894ac20ba9e7c6fdf053cff1721cab709bf8a).
Thanks to xet7 !
2019-03-21 20:59:45 +02:00
Lauri Ojansivu 7735394373 - [Fix IFTTT email sending](https://github.com/wekan/wekan/pull/2279).
Thanks to justinr1234.

Related #1972
2019-03-21 20:38:06 +02:00
Lauri Ojansivu 30bf8a1724 Merge pull request #2279 from justinr1234/patch-2
Fix IFTTT email sending
2019-03-21 20:35:38 +02:00
Lauri Ojansivu 0310560938 More whitelabeling. 2019-03-21 20:32:07 +02:00
Lauri Ojansivu 2969161afb - More whitelabeling.
Thanks to xet7 !
2019-03-21 20:27:21 +02:00
Lauri Ojansivu a6213d4a6f Update translations. 2019-03-21 20:21:21 +02:00
justinr1234 12268bd065 Fix IFTTT email sending 2019-03-21 10:22:57 -05:00
Lauri Ojansivu b0d1ccc311 Merge branch 'edge' into meteor-1.8 2019-03-21 02:42:14 +02:00
Lauri Ojansivu 35a66c3550 Fix typo. 2019-03-21 02:41:21 +02:00
Lauri Ojansivu 8c2ebde3d5 Merge branch 'edge' into meteor-1.8 2019-03-21 01:23:20 +02:00
Lauri Ojansivu 402a974a70 v2.51 2019-03-21 01:22:09 +02:00
Lauri Ojansivu 079cd95e0e Merge pull request #2269 from andresmanelli/fix_2268
Fix #2268
2019-03-21 01:13:33 +02:00
Lauri Ojansivu 508e8c87be Merge branch 'edge' into meteor-1.8 2019-03-21 01:12:57 +02:00
Lauri Ojansivu e9f5aaa397 v2.50 2019-03-21 01:11:48 +02:00
Lauri Ojansivu ca0236fdfd [Fix](https://github.com/wekan/wekan/pull/2269) [Unable to change card title in Template](https://github.com/wekan/wekan/issues/2268)
and [Fix Unable to create a new board from a template](https://github.com/wekan/wekan/issues/2267).

Thanks to andresmanelli !

Closes 2268,
closes #2267
2019-03-21 00:56:18 +02:00
Lauri Ojansivu 365e8455e6 Merge branch 'edge' into meteor-1.8 2019-03-21 00:40:46 +02:00
Lauri Ojansivu da3edb35cc v2.49 2019-03-21 00:39:35 +02:00
Andrés Manelli ef6054b859 Fix #2268 2019-03-20 23:32:52 +01:00
Lauri Ojansivu 1046976c08 [Fix Cards disappear when rearranged on template board](https://github.com/wekan/wekan/issues/2266).
Thanks to andresmanelli !

Closes #2266
2019-03-21 00:23:35 +02:00
Lauri Ojansivu f8cbbfc2cd Merge pull request #2270 from andresmanelli/fix_2266
Fix #2266
2019-03-21 00:21:19 +02:00
Lauri Ojansivu f083fc0d7b Update changelog. 2019-03-21 00:13:31 +02:00
Lauri Ojansivu 72cb820f1f Merge branch 'andresmanelli-fix_subtasks' into edge 2019-03-21 00:12:06 +02:00
Lauri Ojansivu d5d33247fb Merge branch 'fix_subtasks' of https://github.com/andresmanelli/wekan into andresmanelli-fix_subtasks 2019-03-20 23:50:43 +02:00
Lauri Ojansivu 9f95a10591 Update translations. 2019-03-20 21:45:56 +02:00
Lauri Ojansivu 5ca083105c Update changelog. 2019-03-20 21:36:19 +02:00
Lauri Ojansivu 6bc8d8dd56 git push origin edgeMerge branch 'andresmanelli-edge' into edge 2019-03-20 21:24:45 +02:00
Lauri Ojansivu dce89bcfa8 Merge branch 'edge' of https://github.com/andresmanelli/wekan into andresmanelli-edge 2019-03-20 19:30:44 +02:00
Lauri Ojansivu e5370ce859 Merge branch 'devel' of github.com:wekan/wekan into devel 2019-03-20 19:29:32 +02:00
Lauri Ojansivu 6f35d73fe8 Update changelog. 2019-03-20 19:28:56 +02:00
Lauri Ojansivu af2fb5f399 Merge pull request #2272 from justinr1234/patch-1
Don't swallow email errors
2019-03-20 19:26:00 +02:00
Lauri Ojansivu e976565550 Update changelog. 2019-03-20 19:25:28 +02:00
justinr1234 7a6b4adcc1 Disable eslint for console error 2019-03-18 23:50:15 -05:00
justinr1234 ec30665bc4 Don't swallow email errors
Fixes #2246
2019-03-18 23:06:18 -05:00
Andrés Manelli 9651d62b96 Fix #2266 2019-03-18 22:55:56 +01:00
Andrés Manelli a6e3c8984d Fix dissapearing subtasks 2019-03-17 16:37:06 +01:00
Andrés Manelli 777d9ac353 Lint fix 2019-03-16 23:15:30 +01:00
Andrés Manelli d01fccd949 - Fix card copy & move between boards with customFields
- Fix card copy & move between boards with labels with same name
- Fix activities for labels when copying and moving card
- Fix activities for customFields when copying and moving card
2019-03-16 22:49:45 +01:00
Andrés Manelli 4cd0d1c397 Migrate customFields 2019-03-16 22:49:45 +01:00
Lauri Ojansivu bf3ec060f7 Merge pull request #2263 from inoio/devel
make emails for invitations lowercase, compatible with AccountsTemplates
2019-03-16 16:24:02 +02:00
Ole Langbehn 40a3267615 make emails for invitations all lowercase for compatibility with AccountsTemplates
Email addresses for invitations are stored case sensitive in mongo,
together with the invitation codes. When someone tries to sign up due to
an invitation, in the sign up form, due to AccountsTemplates defaults,
the email address is lowercased on blur of the textbox. When they then
try to sign in, they get an error about the invitation code not existing.
This makes it impossible to successfully invite people using
non-lowercased email addresses.

This patch lowercases the emails on the client side when inviting them.

Other possibilities would be to lowercase them on the server side before
storing them to mongodb, making a case insensitive search on mongodb, or
making the email input field in the sign up form not lowercase the email
string.

This patch was chosen in favor of the other possibilities because of its
simplicity.
2019-03-16 14:32:39 +01:00
Lauri Ojansivu 393684fb19 Merge branch 'edge' into meteor-1.8 2019-03-15 11:09:21 +02:00
Lauri Ojansivu ff19d6744e v2.48 2019-03-15 11:08:07 +02:00
Lauri Ojansivu c26af16688 Update translations. 2019-03-15 11:03:52 +02:00
Lauri Ojansivu 216b3cfe01 Fix LDAP login.
Thanks to xet7 !

Closes wekan/wekan-ldap#43,
closes wekan/wekan-snap#85
2019-03-15 10:59:54 +02:00
Lauri Ojansivu 909a23e529 Merge branch 'edge' into meteor-1.8 2019-03-14 00:41:55 +02:00
Lauri Ojansivu fd70556c82 v2.47 2019-03-14 00:39:24 +02:00
Lauri Ojansivu 0fee20cc12 Update changelog. 2019-03-14 00:27:46 +02:00
Lauri Ojansivu 32f6de1eec Try to fix [LDAP Login: "Login forbidden", ReferenceError: req is not defined](https://github.com/wekan/wekan-ldap/issues/44).
Please test.

Thanks to xet7 !

Closes wekan/wekan-ldap#44
2019-03-14 00:25:40 +02:00
Lauri Ojansivu 8671f08a0e Remove ordering of cards by stars/color/description, so that cards would not reorder all the time.
Thanks to xet7 !

Closes #2241
2019-03-14 00:16:39 +02:00
Lauri Ojansivu b68a2e2b41 Merge branch 'edge' into meteor-1.8 2019-03-13 15:56:54 +02:00
Lauri Ojansivu 299484f7b2 v2.46 2019-03-13 15:55:52 +02:00
Lauri Ojansivu d16086fcdb Update changelog. 2019-03-13 15:40:20 +02:00
Lauri Ojansivu 1968b7da31 Revert hiding of Subtask boards, because of feedback from Wekan users,
that need Subtask boards to be visible.

Thanks to xet7 !
2019-03-13 15:35:34 +02:00
Lauri Ojansivu 95a40a45e5 Update translations. 2019-03-13 00:30:07 +02:00
Lauri Ojansivu 0ad7f080b7 Merge branch 'devel' of github.com:wekan/wekan into devel 2019-03-12 23:01:31 +02:00
Lauri Ojansivu aca3048036 Update changelog. 2019-03-12 23:01:18 +02:00
Lauri Ojansivu 1158cd42cc Merge pull request #2253 from justinr1234/devel
Fix watchers undefined #2252
2019-03-12 22:57:38 +02:00
Justin Reynolds 0e2b7458d7 Fix watchers undefined #2252 2019-03-12 12:04:59 -05:00
Lauri Ojansivu 33f09f0887 Merge branch 'edge' into meteor-1.8 2019-03-11 23:40:24 +02:00
Lauri Ojansivu cf7d740004 v2.45 2019-03-11 23:39:05 +02:00
Lauri Ojansivu dc4c4d9ade Merge pull request #2248 from andresmanelli/circular_migration
Rename migration to re run
2019-03-11 23:32:46 +02:00
Andrés Manelli a347ae3676 Rename migration to re run 2019-03-11 22:30:16 +01:00
Lauri Ojansivu aee05a549f v2.44
Merge branch 'edge' into meteor-1.8
2019-03-11 20:26:23 +02:00
Lauri Ojansivu 7da2a8a15e v2.44 2019-03-11 20:23:27 +02:00
Lauri Ojansivu 0002559d6e Update translations. 2019-03-11 20:20:45 +02:00
Lauri Ojansivu afda0ed4da Try to get ordering of All Boards working so that it does
not keep reordering.

Thanks to bentiss, with Apache I-CLA.

Related #2241
2019-03-11 19:56:17 +02:00
Lauri Ojansivu 473f389bbe [Changed brute force protection package from eluck:accounts-lockout to lucasantoniassi:accounts-lockout that is maintained and works.
Added Snap/Docker/Source settings](https://github.com/wekan/wekan/commit/b7c000b78b9af253fb115bbfa5ef0d4c0681abbb).

Thanks to xet7.
2019-03-11 19:53:13 +02:00
Lauri Ojansivu b7c000b78b Changed brute force protection package from eluck:accounts-lockout to
lucasantoniassi:accounts-lockout that is maintained and works.
Added Snap/Docker/Source settings.

Thanks to xet7 !

Closes #1572,
closes #1821
2019-03-11 19:47:23 +02:00
Lauri Ojansivu 4ac8247db0 [Fix imports](https://github.com/wekan/wekan/pull/2245).
Thanks to bentiss with Apache I-CLA.
2019-03-11 19:40:03 +02:00
Lauri Ojansivu 0471d1ac97 Merge branch 'edge' of github.com:wekan/wekan into edge 2019-03-11 19:37:52 +02:00
Lauri Ojansivu c0221dafde Update changelog. 2019-03-11 19:37:40 +02:00
Lauri Ojansivu 8f337f17e4 - Order All Boards by starred, color, board name and board description. Part 2.
Thanks to xet7 !
2019-03-11 19:32:58 +02:00
Lauri Ojansivu de5a63f7b2 Merge pull request #2245 from bentiss/fix-imports
Fix imports
2019-03-11 19:28:03 +02:00
Lauri Ojansivu 52a744b443 Update changelog. 2019-03-11 19:16:53 +02:00
Lauri Ojansivu 4be5fa598e Merge pull request #2244 from bentiss/edge
customFields: fix leftover from lint
2019-03-11 19:04:13 +02:00
Benjamin Tissoires d03a7e7a98 wekan-import: also import each swimlane color 2019-03-11 11:47:01 +01:00
Benjamin Tissoires ebc4d6fdbd wekan-import: also import each card color 2019-03-11 11:42:22 +01:00
Benjamin Tissoires 35ffd02814 Fix import error 500
while running an import from a previously exported board, we encounter
the following error:

Exception while invoking method 'importBoard' Error: Did not check() all arguments during call to 'importBoard'
    at ArgumentChecker.throwUnlessAllArgumentsHaveBeenChecked (packages/check.js:483:13)
    at Object._failIfArgumentsAreNotAllChecked (packages/check.js:131:16)
    at maybeAuditArgumentChecks (packages/ddp-server/livedata_server.js:1765:18)
    at DDP._CurrentMethodInvocation.withValue (packages/ddp-server/livedata_server.js:719:19)
    at Meteor.EnvironmentVariable.EVp.withValue (packages/meteor.js:1186:15)
    at DDPServer._CurrentWriteFence.withValue (packages/ddp-server/livedata_server.js:717:46)
    at Meteor.EnvironmentVariable.EVp.withValue (packages/meteor.js:1186:15)
    at Promise (packages/ddp-server/livedata_server.js:715:46)
    at new Promise (<anonymous>)
    at Session.method (packages/ddp-server/livedata_server.js:689:23)
    at packages/mdg_meteor-apm-agent.js:2617:38
    at Meteor.EnvironmentVariable.EVp.withValue (packages/meteor.js:1186:15)
    at Session.sessionProto.protocol_handlers.method (packages/mdg_meteor-apm-agent.js:2616:44)
    at packages/ddp-server/livedata_server.js:559:43

Commit 4cf9813449 removed the checks as the original board might
not have all the required fields, but we actually still need to run
a general check on all parameters
2019-03-11 11:42:05 +01:00
Benjamin Tissoires 4c72479d12 customFields: fix leftover from lint
Looks like I forgot to use the camelCase notation here, and this leads
to an exception while updating a custom field.
2019-03-11 10:12:19 +01:00
Lauri Ojansivu 907c761f71 Update translations. 2019-03-10 21:35:55 +02:00
Lauri Ojansivu 97206aa8f6 Update changelog. 2019-03-10 21:31:40 +02:00
Andrés Manelli 2ec1664408 Fix removed checklistItem activity => dangling activities created 2019-03-08 21:13:41 +01:00
Andrés Manelli 97822f35fd Avoid set self as parent card, for real 2019-03-08 20:41:32 +01:00
Lauri Ojansivu c5e72d1a2b Merge branch 'edge' of github.com:wekan/wekan into edge 2019-03-08 20:51:57 +02:00
Lauri Ojansivu 117c9e069e Update changelog. 2019-03-08 20:51:43 +02:00
Lauri Ojansivu 951a9f81d6 Merge pull request #2239 from bentiss/customFields-activities
Activities: register customFields changes in the activities
2019-03-08 20:48:49 +02:00
Lauri Ojansivu 6f30c33f11 Add language: Occitan. 2019-03-08 20:47:05 +02:00
Lauri Ojansivu 8050117adf Add language: Occintan.
Thanks to translators !
2019-03-08 20:45:39 +02:00
Lauri Ojansivu 0155c7d8ce Merge branch 'edge' into meteor-1.8 2019-03-08 19:17:33 +02:00
Lauri Ojansivu 98031aacce v2.43 2019-03-08 19:12:11 +02:00
Lauri Ojansivu 2781ce6fa0 Update translations. 2019-03-08 19:02:31 +02:00
Lauri Ojansivu 08db39d76a Fix lint errors.
Thanks to xet7 !

Related #2019
2019-03-08 19:00:56 +02:00
Lauri Ojansivu da267e1488 [HTTP header automatic login](https://github.com/wekan/wekan/commit/ff825d6123ecfd033ccb08ce97c11cefee676104)
for [3rd party authentication server method](https://github.com/wekan/wekan/issues/2019) like siteminder, and any webserver that
handles authentication and based on it adds HTTP headers to be used for login. Please test.

Thanks to xet7 !

Related #2019
2019-03-08 18:55:36 +02:00
Lauri Ojansivu ff825d6123 [HTTP header automatic login. Not tested yet.](https://github.com/wekan/wekan/issues/2019).
Thanks to xet7 !

Related #2019
2019-03-08 18:40:43 +02:00
Benjamin Tissoires 6d6bb8fc57 Activities: register customFields changed in the activities
This stores the updates to the custom fields in the activities side bar.

Only manual updates to the custom fields are currently registered.
2019-03-08 11:32:59 +01:00
Lauri Ojansivu 7836ab83d0 - Order All Boards by Starred, Color and Title and Description.
Thanks to xet7 !

Closes #1990,
Related #252
2019-03-08 10:44:20 +02:00
Lauri Ojansivu 8568728152 - [Hide Subtask boards from All Boards](https://github.com/wekan/wekan/issues/1990).
- Order All Boards by Starred, Color and Title.

Thanks to xet7 !

Closes #1990,
Related #641
2019-03-08 09:41:36 +02:00
Lauri Ojansivu 8783983945 Update changelog. 2019-03-07 17:20:25 +02:00
Lauri Ojansivu 4055f451fd Reverts the following change of v2.42, because it did not fix anything:
- [Tried to fix snap mongodb-control not starting database](https://github.com/wekan/wekan/commit/2c5628b5fbcc25427021d0b22e74577a71149c21).

Thanks to xet7.
2019-03-07 17:17:21 +02:00
Lauri Ojansivu 31777ce804 Update changelog. 2019-03-07 11:27:06 +02:00
Lauri Ojansivu 97a9e92969 Merge remote-tracking branch 'andresmanelli/edge' into edge 2019-03-07 02:03:34 +02:00
Lauri Ojansivu 64fca5893e Merge branch 'edge' into meteor-1.8 2019-03-07 01:54:00 +02:00
Lauri Ojansivu c5ca414e8f v2.42 2019-03-07 01:52:53 +02:00
Lauri Ojansivu 2c5628b5fb Fix mongodb-control.
Thanks to xet7 and qurqar[m].
2019-03-07 01:48:42 +02:00
Andrés Manelli a338e937e5 Add migration to fix circular references 2019-03-07 00:13:21 +01:00
Lauri Ojansivu 221831e4e5 Merge branch 'edge' into meteor-1.8 2019-03-07 00:05:46 +02:00
Lauri Ojansivu 1089572d66 v2.41 2019-03-07 00:04:50 +02:00
Lauri Ojansivu ddb2460187 [Fix: Card was selected as parent card (circular reference) and now board can be not opened anymore](https://github.com/wekan/wekan/issues/2202)
with [Avoid setting same card as parentCard. Avoid listing templates board in copy/move/more menus](https://github.com/wekan/wekan/commit/745f39ed20169f56b99c0339f2043f8c4ed43873).

Thanks to andresmanelli.

Closes #2202
2019-03-06 23:48:36 +02:00
Andrés Manelli 745f39ed20 Avoid setting same card as parentCard.
Avoid listing templates board in copy/move/more menus
2019-03-06 20:57:19 +01:00
Lauri Ojansivu cb755af2ee Merge branch 'edge' into meteor-1.8 2019-03-06 20:58:01 +02:00
Lauri Ojansivu 18cccd514f Fix typos. 2019-03-06 20:56:58 +02:00
Lauri Ojansivu f71f3126db Merge branch 'edge' into meteor-1.8 2019-03-06 18:23:37 +02:00
Lauri Ojansivu 9c0eba4f00 v2.40 2019-03-06 18:21:26 +02:00
Lauri Ojansivu f19625d835 Fix manifest and icon urls, part 2.
Thanks to xet7 !
2019-03-06 18:18:34 +02:00
Lauri Ojansivu 42a2767211 Merge branch 'edge' into meteor-1.8 2019-03-06 17:32:20 +02:00
Lauri Ojansivu c4754d9f85 v2.39 2019-03-06 17:31:15 +02:00
Lauri Ojansivu acdc5dc1f4 Update translations. 2019-03-06 17:23:33 +02:00
Lauri Ojansivu 4927609af0 Update changelog. 2019-03-06 17:20:47 +02:00
Lauri Ojansivu e845fe3e71 Fix manifest and icon paths.
Thanks to xet7 !

Closes #2168,
closes #1692
2019-03-06 17:15:36 +02:00
Lauri Ojansivu e410205886 Merge branch 'edge' into meteor-1.8 2019-03-06 03:15:51 +02:00
Lauri Ojansivu d807efd4f8 Update translations. 2019-03-06 03:14:13 +02:00
Lauri Ojansivu 5f76695298 Update release scripts. 2019-03-06 03:12:27 +02:00
Lauri Ojansivu aadb1f3109 v2.38 2019-03-06 03:07:50 +02:00
Lauri Ojansivu cb986912c4 [Added support for LDAP admin status sync](https://github.com/wekan/wekan-ldap/pull/40).
Examples: LDAP_SYNC_ADMIN_STATUS=true, LDAP_SYNC_ADMIN_GROUP=group1,group2 (https://github.com/wekan/wekan/commit/7e451d9033eb6162cd37de3e5ffabdc22e272948).
Thanks to JulianJacobi and xet7.
2019-03-06 02:55:13 +02:00
Lauri Ojansivu 7e451d9033 [Add support for admin status sync](https://github.com/wekan/wekan-ldap/pull/40).
Examples: LDAP_SYNC_ADMIN_STATUS=true, LDAP_SYNC_ADMIN_GROUP=group1,group2

Thanks to JulianJacobi and xet7 !
2019-03-06 02:47:27 +02:00
Lauri Ojansivu a024b6d692 Update changelog. 2019-03-06 02:00:31 +02:00
Lauri Ojansivu a45ccf1db7 [Remove phantomjs binary from Docker/Snap/Stackerfile to reduce size](https://github.com/wekan/wekan/issues/2229).
Thanks to soohwa !

Closes #2229
2019-03-06 01:56:32 +02:00
Lauri Ojansivu 30bf430a91 - [Use ubuntu:cosmic base in Dockerfile](https://github.com/wekan/wekan/commit/df00776e6ca47080435eca9a31a16fd24c0770ed). Thanks to xet7. 2019-03-06 01:44:47 +02:00
Lauri Ojansivu df00776e6c Use ubuntu:cosmic base in Dockerfile.
Thanks to xet7 !
2019-03-06 01:42:30 +02:00
Lauri Ojansivu 1dc0d0c12e Update changelog. 2019-03-06 01:34:58 +02:00
Lauri Ojansivu 002fd411ea [Fix: LDAP Authentication with Recursive Group Filtering Does Not Work on Snap](https://github.com/wekan/wekan/issues/2228).
Thanks to apages2 !

Closes #2228,
closes wekan/wekan-ldap#23
2019-03-06 01:27:40 +02:00
Lauri Ojansivu 6311cf0c5a Update translations. 2019-03-06 01:23:40 +02:00
Lauri Ojansivu d71543beb6 - [Fix card deletion from archive](https://github.com/wekan/wekan/commit/77754cf32f28498e550a46325d90eb41f08f8552).
- [Fix card move with wrong swimlaneId](https://github.com/wekan/wekan/commit/1bef3a3f8ff4eac43bf97cc8b86d85e618b0e2ef).
  NOTE: This does not yet fix card move with Custom Field, it will be fixed later.

Thanks to andresmanelli !

Closes wekan/wekan-snap#83,
closes #2224,
closes #2230,
related #2233
2019-03-06 01:05:15 +02:00
Lauri Ojansivu 5a9837f676 Merge remote-tracking branch 'andresmanelli/edge' into edge 2019-03-06 00:58:49 +02:00
Andrés Manelli 77754cf32f Fix card deletion from archive 2019-03-05 22:48:29 +01:00
Lauri Ojansivu 43a74fb99b Merge remote-tracking branch 'andresmanelli/edge' into edge 2019-03-05 23:38:47 +02:00
Andrés Manelli 1bef3a3f8f Fix card move with wrong swimlaneId 2019-03-05 22:35:45 +01:00
Lauri Ojansivu 07433b8005 Merge branch 'edge' into meteor-1.8 2019-03-04 19:57:14 +00:00
Lauri Ojansivu 58575706fe Update stylus. 2019-03-04 19:56:22 +00:00
Lauri Ojansivu b6b6be34f6 Update translations. 2019-03-04 21:29:04 +02:00
Lauri Ojansivu f1cde3e873 - [Added a Helm Chart to the project](https://github.com/wekan/wekan/pull/2227).
Thanks to TechnoTaff !
2019-03-04 21:27:35 +02:00
Lauri Ojansivu dcd6ae2e01 Merge pull request #2227 from TechnoTaff/devel
Added a Helm Chart to the project
2019-03-04 21:21:51 +02:00
Stephen Randall 8984172ff6 Readme updates 2019-03-04 16:44:12 +00:00
Stephen Randall 87a5e7f030 Merge branch 'devel' of https://github.com/TechnoTaff/wekan into devel 2019-03-04 16:29:29 +00:00
Stephen Randall 115d07da5a Added some notes 2019-03-04 16:28:44 +00:00
Steve Randall e67ed023cd Create .gitkeep 2019-03-04 16:26:34 +00:00
Steve Randall 1f1d753791 Delete requirements.lock 2019-03-04 16:13:34 +00:00
Steve Randall 34fcce60af Delete mongodb-replicaset-3.6.4.tgz 2019-03-04 16:13:11 +00:00
Stephen Randall e7a90d9a7c Added helm chart v1 2019-03-04 15:55:20 +00:00
Lauri Ojansivu ebba71077e Fix escaping special character as advised at
https://github.com/jquery/jquery/issues/2885

Thanks to xet7 !
2019-03-04 10:31:05 +00:00
Lauri Ojansivu 6c0df108c7 Merge branch 'edge' into meteor-1.8 2019-03-04 12:10:11 +02:00
Lauri Ojansivu 9d6d5e1a14 v2.37 2019-03-04 12:08:55 +02:00
Lauri Ojansivu 763cf81c97 [Fix Adding Labels to cards is not possible anymore](https://github.com/wekan/wekan/issues/2223).
Thanks to xet7 !

Closes #2223
2019-03-04 12:04:12 +02:00
Lauri Ojansivu 5f3ffcb0eb Merge branch 'edge' into meteor-1.8 2019-03-04 10:17:14 +02:00
Lauri Ojansivu 265d57b9f4 Update packages.
Thanks to xet7 !
2019-03-04 10:02:54 +02:00
Lauri Ojansivu 42e85f693c Upgrade to Meteor 1.8.0.2.
Thanks to xet7 !
2019-03-04 09:56:12 +02:00
Lauri Ojansivu 30dacb0369 Change Dockerfile to use ubuntu:cosmic base.
Thanks to xet7 !
2019-03-04 09:48:59 +02:00
Lauri Ojansivu 0b64a46bdc Update translations. 2019-03-04 08:55:42 +02:00
Lauri Ojansivu 304d5e6256 Merge branch 'edge' into meteor-1.8 2019-03-03 22:40:24 +02:00
Lauri Ojansivu d417bf058d v2.36 2019-03-03 22:39:09 +02:00
Lauri Ojansivu 46088bfbb5 Update translations. 2019-03-03 22:33:17 +02:00
Lauri Ojansivu a6ea622f78 Update changelog. 2019-03-03 22:32:00 +02:00
Lauri Ojansivu 847ed8570b [Combine hamburger menus at right](https://github.com/wekan/wekan/issues/2219).
Thanks to xet7 !

Related #2219
2019-03-03 22:27:05 +02:00
Lauri Ojansivu 3a9ab817a9 Update translations. 2019-03-03 20:43:12 +02:00
Lauri Ojansivu 2a5c2ed192 [Forked salleman-oidc](https://github.com/wekan/wekan/commit/8867bec8e65f1ef6be0c731918e8eefcacb7acb0)
to https://github.com/wekan/meteor-accounts-oidc where salleman also has write access,
xet7 can make changes directly and GitHub issues are enabled.

Thanks to xet7 !
2019-03-03 20:40:37 +02:00
Lauri Ojansivu 8867bec8e6 Forked salleman-oidc to https://github.com/wekan/meteor-accounts-oidc
where salleman also has write access, xet7 can make changes directly
and GitHub issues are enabled.

Thanks to xet7 !
2019-03-03 20:36:44 +02:00
Lauri Ojansivu 262da85399 Update translations. 2019-03-03 18:10:52 +02:00
Lauri Ojansivu 51a70f2164 Fix translation. 2019-03-03 18:07:14 +02:00
Lauri Ojansivu 0854a658d8 Fix typos in translation. 2019-03-03 17:55:34 +02:00
Lauri Ojansivu d99056ced5 Fix translation. 2019-03-03 17:41:11 +02:00
Lauri Ojansivu 4a5473b4e7 Update translation. 2019-03-03 17:38:23 +02:00
Lauri Ojansivu d3f368efd7 Fix typos in translation. 2019-03-03 17:30:57 +02:00
Lauri Ojansivu ca052566de Fix translation. 2019-03-03 17:19:01 +02:00
Lauri Ojansivu c101e262d6 Fix translation. 2019-03-03 16:52:55 +02:00
Lauri Ojansivu 1f942301ad Fix translation. 2019-03-03 16:45:33 +02:00
Lauri Ojansivu b6db1e12b7 - [Add more Webhook translations](https://github.com/wekan/wekan/issues/1969).
In progress.

Thanks to xet7 !
2019-03-03 16:40:35 +02:00
Lauri Ojansivu 3bfc6ea8d7 [Add more Webhook translations](https://github.com/wekan/wekan/issues/1969).
In progress.

Thanks to xet7 !

Related #1969
2019-03-03 16:33:43 +02:00
Lauri Ojansivu ec30dd4788 Update changelog. 2019-03-03 10:45:50 +02:00
Lauri Ojansivu 990ebbdbcb Update translations. 2019-03-03 10:36:58 +02:00
Lauri Ojansivu 99a856be97 Change board menu:
- Board menu (hamburger icon) to Board Settings (Cog icon)
- Sidebar arrows icons to hamburger icon

Thanks to xet7 !

Related #2219
2019-03-03 10:31:30 +02:00
Lauri Ojansivu 260d0641df Rename Board Menu to Board Settings.
Thanks to xet7 !
2019-03-03 10:26:18 +02:00
Lauri Ojansivu 597de31116 Merge branch 'edge' into meteor-1.8 2019-03-02 17:33:01 +02:00
Lauri Ojansivu 16963859e1 Update translations. 2019-03-02 17:32:06 +02:00
Lauri Ojansivu 010a201d0c Update readme. 2019-03-02 17:27:34 +02:00
Lauri Ojansivu 95014e6348 Update readme. 2019-03-02 17:26:00 +02:00
Lauri Ojansivu 724912ec48 Update readme. 2019-03-02 17:24:26 +02:00
Lauri Ojansivu 46d8a11c51 Remove outdated team page. 2019-03-02 17:15:18 +02:00
Lauri Ojansivu 065cd05c96 Update readme. 2019-03-02 17:13:50 +02:00
Lauri Ojansivu 425b3d98b3 Merge branch 'edge' into meteor-1.8 2019-03-01 15:44:16 +02:00
Lauri Ojansivu a4564bed3a v2.35 2019-03-01 15:42:23 +02:00
Lauri Ojansivu 4ef3e587cb [Add Filter fix back](https://github.com/wekan/wekan/issues/2213),
because there was no bug in filter fix.
2019-03-01 14:48:25 +02:00
Lauri Ojansivu d6259836e0 - [Add Filter fix back](https://github.com/wekan/wekan/issues/2213),
because there was no bug in filter fix.

Thanks to xet7 !

Closes #2213,
related #2209
2019-03-01 14:41:09 +02:00
Lauri Ojansivu c2fb8b5be8 Merge branch 'edge' into meteor-1.8 2019-03-01 07:11:59 +02:00
Lauri Ojansivu ef246cfef3 v2.34 2019-03-01 07:10:50 +02:00
Lauri Ojansivu 90dd0ddb94 Revert [Filter fix](https://github.com/wekan/wekan/issues/2213) because of
[mongodb data tampered](https://github.com/wekan/wekan-snap/issues/83).

Thanks to xet7 !
2019-03-01 07:05:49 +02:00
Lauri Ojansivu 1ba299585c Merge branch 'edge' into meteor-1.8 2019-02-28 23:32:58 +02:00
Lauri Ojansivu bd2c54398b v2.33 2019-02-28 23:31:39 +02:00
Lauri Ojansivu e65776f9f0 [Upgrade Node.js to v8.15.1](https://github.com/wekan/wekan/commit/5cafdd9878ab4b6123024ec33279ccdae75f554f).
Thanks to Node.js developers and xet7 !
2019-02-28 23:29:13 +02:00
Lauri Ojansivu 5cafdd9878 Upgrade node to v8.15.1
Thanks to xet7 !
2019-02-28 23:25:03 +02:00
Lauri Ojansivu 174ad1a987 Merge branch 'edge' into meteor-1.8 2019-02-28 23:03:16 +02:00
Lauri Ojansivu 49882a05d1 v2.32 2019-02-28 23:01:56 +02:00
Lauri Ojansivu 8e36a2bc83 [Fix filtering in swimlane view](https://github.com/wekan/wekan/commit/49229e1723de14cdc66dc6480624bba426d35e36)
that was [broken since v2.29](https://github.com/wekan/wekan/issues/2213).

Thanks to andresmanelli !

Closes #2213,
Related #2209
2019-02-28 22:57:40 +02:00
Lauri Ojansivu 24e47195e5 - [Fix](https://github.com/wekan/wekan/commit/49229e1723de14cdc66dc6480624bba426d35e36)
[Filtering in swimlane view is broken since v2.29](https://github.com/wekan/wekan/issues/2213).

Thanks to andresmanelli !

Related #2209
2019-02-28 22:45:37 +02:00
Lauri Ojansivu 4b37958140 Merge branch 'devel' into edge 2019-02-28 22:39:02 +02:00
Lauri Ojansivu 3edff32bde [Performance improvements](https://github.com/wekan/wekan/pull/2214), thanks to justinr1234:
- New indexes for queries that were missing an index;
- Bulk querying documents to reduce the number of mongo queries when loading a board;
- Ensure oplog is being used to query the database by providing a `sort` key when `limit` is used querying the `boards` collection.
2019-02-28 22:37:28 +02:00
Lauri Ojansivu 78c5e0f7ef Merge branch 'justinr1234-wekan-perf-improvements' into devel 2019-02-28 22:32:33 +02:00
Andrés Manelli 49229e1723 Fix filter in swimlanes view 2019-02-28 20:46:50 +01:00
Lauri Ojansivu 14e2bfd1bf Merge branch 'wekan-perf-improvements' of https://github.com/justinr1234/wekan into justinr1234-wekan-perf-improvements 2019-02-28 21:19:50 +02:00
Justin Reynolds 3c49e2d0ed Performance Enhancements 2019-02-28 11:44:29 -06:00
Lauri Ojansivu 199246ea6c Merge branch 'edge' into meteor-1.8 2019-02-28 12:42:49 +02:00
Lauri Ojansivu d5bc66c9a4 v2.31 2019-02-28 12:41:07 +02:00
Lauri Ojansivu 4f6977668b Update translations. 2019-02-28 12:37:36 +02:00
Lauri Ojansivu 17826c28e5 - [Fix copy card](https://github.com/wekan/wekan/issues/2210).
Thanks to andresmanelli !

Closes #2210,
Related #2209
2019-02-28 12:34:48 +02:00
Lauri Ojansivu a3d71dd694 Merge remote-tracking branch 'andresmanelli/edge' into edge 2019-02-28 12:29:14 +02:00
Andrés Manelli a5c39342ba Fix card copy 2019-02-28 08:10:33 +01:00
Lauri Ojansivu eeb8d4b3de Merge branch 'edge' into meteor-1.8 2019-02-28 00:54:29 +02:00
Lauri Ojansivu ad75c541cf v2.30 2019-02-28 00:52:36 +02:00
Lauri Ojansivu cd46cbeb8f Add new [Template features](https://github.com/wekan/wekan/issues/2209):
- [Fix popup title. Add element title modification](https://github.com/wekan/wekan/commit/888e1ad5d3e32be53283aa32198057f669f3d706);
- [Copy template attachments](https://github.com/wekan/wekan/commit/abb71083215462d91b084c4de13af0b130638e4d);
- [Standarize copy functions. Match labels by name](https://github.com/wekan/wekan/commit/da21a2a410c9b905de89d66236748e0c8f5357ea).

Thanks to andresmanelli !

Related #2209
2019-02-28 00:44:13 +02:00
Andrés Manelli 888e1ad5d3 Fix popup title
Add element title modification
2019-02-27 21:50:08 +01:00
Andrés Manelli abb7108321 Copy template attachments 2019-02-27 21:50:08 +01:00
Andrés Manelli da21a2a410 Standarize copy functions. Match labels by name 2019-02-27 21:50:08 +01:00
Lauri Ojansivu 82a728df71 Merge branch 'edge' into meteor-1.8 2019-02-27 21:03:54 +02:00
Lauri Ojansivu 904b5bf0f5 v2.29 2019-02-27 21:01:32 +02:00
Lauri Ojansivu d21aa97219 Update translations. 2019-02-27 20:39:56 +02:00
Andrés Manelli 6ee75fbdba Fix templates board not found 2019-02-27 19:34:53 +01:00
Lauri Ojansivu 3f067c793c Merge branch 'devel' into meteor-1.8 2019-02-27 17:29:39 +02:00
Lauri Ojansivu c3b2a0c955 Merge branch 'devel' into edge 2019-02-27 17:29:21 +02:00
Lauri Ojansivu 0ac42c145e Fix typo. 2019-02-27 17:28:44 +02:00
Lauri Ojansivu 2489cc5b91 Merge branch 'devel' into meteor-1.8 2019-02-27 16:27:15 +02:00
Lauri Ojansivu 4a77bc930f Merge branch 'devel' into edge 2019-02-27 16:26:48 +02:00
Lauri Ojansivu 29c3080eb6 v2.28 2019-02-27 16:21:31 +02:00
Lauri Ojansivu 57516177a0 Update ChangeLog. 2019-02-27 16:17:21 +02:00
Lauri Ojansivu 34d8235551 Add the following new Sandstorm features and fixes:
- All Boards page [so it's possible to go back from subtask board](https://github.com/wekan/wekan/issues/2082)
- Board favorites
- New Sandstorm board first user is Admin and [has IFTTT Rules](https://github.com/wekan/wekan/issues/2125)
  and Standalone Wekan Admin Panel. Probably some Admin Panel features do not work yet. Please keep backup of your grains before testig Admin Panel.
- Linked Cards and Linked Boards.
- Some not needed options like Logout etc have been hidden from top bar right menu.
- [Import board now works. "Board not found" is not problem anymore](https://github.com/wekan/wekan/issues/1430), because you can go to All Boards page to change to imported board.

and removes the following features:

- Remove Welcome Board from Standalone Wekan, [to fix Welcome board not translated](https://github.com/wekan/wekan/issues/1601).
  Sandstorm Wekan does not have Welcome Board.

Thanks to xet7 !

Closes #2125,
closes #2082,
closes #1430,
closes #1601,
related #2205,
related #2070,
related #1695,
related #1192.
2019-02-27 16:14:14 +02:00
Lauri Ojansivu 1c832a24b7 Merge branch 'devel' into meteor-1.8 2019-02-27 06:21:23 +02:00
Lauri Ojansivu 8d51245161 Merge branch 'devel' into edge 2019-02-27 06:20:30 +02:00
Lauri Ojansivu 55ad98ecc4 v2.27 2019-02-27 06:18:51 +02:00
Lauri Ojansivu ed04181bb9 Update translations. 2019-02-27 06:16:37 +02:00
Lauri Ojansivu 868fba55cd Update changelog. 2019-02-27 06:14:15 +02:00
Lauri Ojansivu 05351c0ac1 - Fix OIDC error "a.join is not a function" b reverting
configurable OAUTH2_ID_TOKEN_WHITELIST_FIELDS and
  OAUTH2_REQUEST_PERMISSIONS from Wekan v2.22-2.26.

Thanks to xet7 !

Closes #2206,
Related #1874,
Related #1722
2019-02-27 06:02:00 +02:00
Lauri Ojansivu a707129146 Removed console.log. 2019-02-26 16:51:24 +02:00
Lauri Ojansivu 2f3138207c Update translations. 2019-02-26 00:28:01 +02:00
Andrés Manelli dc7286a0ef Fix list view issues. Allow creation of boards from templates 2019-02-25 22:48:32 +01:00
Lauri Ojansivu e40198cd26 Merge branch 'devel' into meteor-1.8 2019-02-25 20:04:47 +02:00
Lauri Ojansivu 5e66119bf0 v2.26 2019-02-25 20:03:36 +02:00
Lauri Ojansivu b751fd11e4 - [Fix OAuth2 requestPermissions](https://github.com/wekan/wekan/commit/5e238bfbfea16940ae29647ae347bbdc0d78efb0).
This maybe makes [Auth0 login possible](https://github.com/wekan/wekan/issues/1722) with OIDC.
  Thanks to GitHub user xet7.
2019-02-25 19:51:17 +02:00
Lauri Ojansivu 5e238bfbfe - Fix OAuth2 requestPermissions.
Thanks to xet7 !

Closes #1722
2019-02-25 19:45:41 +02:00
Lauri Ojansivu 7e20a3cac6 - Add setting [EMAIL_NOTIFICATION_TIMEOUT](https://github.com/wekan/wekan/issues/2203).
Defaut 30000 ms (30s). Thanks to GitHub users ngru and xet7.
2019-02-25 18:13:43 +02:00
Lauri Ojansivu 7c1d6e4d2e - Add setting EMAIL_NOTIFICATION_TIMEOUT. Defaut 30000 ms (30s).
Thanks to xet7 !

Closes #2203
2019-02-25 18:10:36 +02:00
Lauri Ojansivu 13c2157e36 Update translations. 2019-02-25 06:14:43 +02:00
Andrés Manelli 7033315cd3 Add migrations 2019-02-24 12:55:34 +01:00
Andrés Manelli 775476f97c Fix miniscreen render 2019-02-24 11:54:52 +01:00
Andrés Manelli eb62c9ce6a Fix lint errors 2019-02-24 00:13:35 +01:00
Andrés Manelli 60be4df76e Allow swimlane creation from template
Mix lists with same name to avoid duplicates
2019-02-24 00:05:00 +01:00
Andrés Manelli f888cfd565 Allow list creation from template 2019-02-24 00:05:00 +01:00
Andrés Manelli 044126188d Allow card creation from template 2019-02-24 00:05:00 +01:00
Andrés Manelli 0fec711545 Prepare to create card from template 2019-02-24 00:05:00 +01:00
Andrés Manelli 7a6afb8aea Add template search in Add Card menu
Archive all cards in list when list is archived
Remove default board in link popup
Only list non-template boards in card link and search
2019-02-24 00:05:00 +01:00
Andrés Manelli 1e72177991 Avoid links on a template-board
Allow creation of template boards with a linked card
Avoid changing the name of the template-container swimlanes
2019-02-24 00:05:00 +01:00
Andrés Manelli cdf070189e Remove links from templates board for the moment
Insert the correct template type in templates board
Allow independant lists in templates board
Add some helpers
2019-02-24 00:05:00 +01:00
Andrés Manelli 64bf455b29 Save template swimlanes in profile. Fix swimlane view for templates board. Avoid deleting template containers 2019-02-24 00:05:00 +01:00
Andrés Manelli 0a53ee87b9 Add first draft of data model and user interface. No actions. 2019-02-24 00:05:00 +01:00
Lauri Ojansivu c81556b64c Merge branch 'edge' into meteor-1.8 2019-02-23 19:55:50 +02:00
Lauri Ojansivu ef85b71ee4 v2.25 2019-02-23 19:54:37 +02:00
Lauri Ojansivu ac0133e8fa - Revert file permission changes from v2.24 LDAP changes that
caused snap version to not build.

Thanks to xet7 !
2019-02-23 19:51:33 +02:00
Lauri Ojansivu 60546d2ce3 Merge branch 'edge' into meteor-1.8 2019-02-23 19:24:51 +02:00
Lauri Ojansivu 25ba6df007 v2.24 2019-02-23 19:23:36 +02:00
Lauri Ojansivu 6d750897a8 - [Add LDAP email] matching support](https://github.com/wekan/wekan-ldap/pull/39) and
[related env variables](https://github.com/wekan/wekan/pull/2198).
  Thanks to GitHub user stevenpwaters.
2019-02-23 19:18:43 +02:00
Lauri Ojansivu a7747c537b Merge pull request #2198 from stevenpwaters/devel
Add LDAP email environment variables
2019-02-23 19:07:16 +02:00
Lauri Ojansivu 65b6a21938 - Add missing text .env to wekan/server/authentication.js.
Thanks to Vanila Chat user .gitignore.
2019-02-23 19:04:02 +02:00
Lauri Ojansivu 4e6e78ccd2 - Add missing text .env
Thanks to Vanila Chat user .gitignore !
2019-02-23 19:00:29 +02:00
Lauri Ojansivu fd5d6546b2 Update translations. 2019-02-23 18:52:44 +02:00
Steven Waters 402d484182 Added LDAP email environment variables
Support for LDAP matching existing accounts with e-mail address.
2019-02-21 09:02:47 +00:00
Lauri Ojansivu fa0b4d7edd Merge branch 'edge' into meteor-1.8 2019-02-17 18:16:11 +02:00
Lauri Ojansivu 4bf0914f1e v2.23 2019-02-17 18:13:54 +02:00
Lauri Ojansivu 96519296e1 Update translations (sv). 2019-02-15 18:47:21 +02:00
Lauri Ojansivu 03d06685b0 - [Fix authentication dropdown](https://github.com/wekan/wekan/pull/2191).
Thanks to Akuket.
2019-02-15 18:45:41 +02:00
Lauri Ojansivu 7d57c56b17 Merge pull request #2191 from Akuket/feature-improve-authentication
Fix authentication dropdown
2019-02-15 18:41:38 +02:00
guillaume 4ce766853c Fix authentication dropdown 2019-02-15 17:06:05 +01:00
Lauri Ojansivu d5593e059b Merge branch 'edge' into meteor-1.8 2019-02-13 03:17:04 +02:00
Lauri Ojansivu dc7bbd848c v2.22 2019-02-13 03:14:18 +02:00
Lauri Ojansivu 81744e6523 - Add [configurable](https://github.com/wekan/wekan/issues/1874#issuecomment-462759627)
settings [OAUTH2_ID_TOKEN_WHITELIST_FIELDS and
  OAUTH2_REQUEST_PERMISSIONS](https://github.com/wekan/wekan/commit/b66f471e530d41a3f12e4bfc29548313e9a73c35).
  Thanks to xet7.
2019-02-13 03:07:31 +02:00
Lauri Ojansivu b66f471e53 - Add configurable settings OAUTH2_ID_TOKEN_WHITELIST_FIELDS
and OAUTH2_REQUEST_PERMISSIONS.

Thanks to xet7.

Related #1874
2019-02-13 03:01:10 +02:00
Lauri Ojansivu 202b8a92af - Add Kadira integration. Thanks to GavinLilly.
Closes #2152
2019-02-13 02:24:21 +02:00
Lauri Ojansivu 1e98f6b781 Merge branch 'edge' into devel 2019-02-13 02:15:19 +02:00
Lauri Ojansivu f53e8fbd21 Merge pull request #2187 from GavinLilly/kadira-integration
Kadira integration
2019-02-13 02:13:46 +02:00
Gavin Lilly 8e95871534 Adding wekan-ldap back in to build in the Dockerfile 2019-02-13 00:01:47 +00:00
Gavin Lilly 595a2d2baa Cleaning up docker-compose for merge 2019-02-13 00:00:34 +00:00
Gavin Lilly 227772bc33 Added back wekan-ldap after it's fixed in a separate change 2019-02-12 23:56:40 +00:00
Lauri Ojansivu 2ca98e477d - Fix2: Remove overlap of side bar button with card/list menu button on mobile browser
Thanks to xet7 !

Closes #2183
2019-02-13 01:04:30 +02:00
Angelo Gallarello 477d71e0b9 Fixes 2019-02-12 23:40:12 +01:00
Lauri Ojansivu 677bfc3f6b - Fix: Remove overlap of side bar button with card/list menu button on mobile browser
Thanks to xet7 !

Closes #2183
2019-02-13 00:01:38 +02:00
Lauri Ojansivu c7721b048d - Fix indenting textline. 2019-02-12 23:46:25 +02:00
Lauri Ojansivu 1417f091fe Update translations. 2019-02-12 23:38:24 +02:00
Lauri Ojansivu 93ae4e504e Merge branch 'edge' into meteor-1.8 2019-02-12 03:26:56 +02:00
Lauri Ojansivu d22964bcfd v2.21 2019-02-12 03:24:32 +02:00
Lauri Ojansivu 59314ab17d - Add OIDC claim mapping parameters to docker-compose.yml/Snap/Source.
Thanks to xet7 !
2019-02-12 03:09:30 +02:00
Gavin Lilly 5c083d99e2 Moved to meteor-apm-agent and removed Wekan LDAP to test if working 2019-02-11 23:16:37 +00:00
Gavin Lilly d3abb0756e Pulled Wekan-LDAP locally for debug 2019-02-11 20:12:53 +00:00
Lauri Ojansivu 4de9848e34 Merge pull request #2182 from danpatdav/oidc
Add parameters for OIDC claim mapping
2019-02-11 20:30:01 +02:00
Daniel Davis bdbbb12f96 Added parameters for OIDC claim mapping
These mapping parameters take advantage of new code in salleman-oidc 1.0.12 to override the default claim names provided by the userinfo endpoint.
2019-02-11 10:48:20 -06:00
Gavin Lilly c1ea3f49ca Merge branch 'devel' of github.com:wekan/wekan into devel 2019-02-11 16:43:57 +00:00
Gavin Lilly 905c45f225 Replaced Kadira by meteor-apm-agent 2019-02-11 16:43:52 +00:00
Daniel Davis 352e5c6cb0 Bump salleman-oidc to 1.0.12 2019-02-11 10:41:24 -06:00
Lauri Ojansivu fcac5d1033 Merge branch 'edge' into meteor-1.8 2019-02-11 16:46:12 +02:00
Lauri Ojansivu 2d291c8f5e v2.20 2019-02-11 16:45:11 +02:00
Lauri Ojansivu 86630fa1e0 Update changelog. 2019-02-11 16:38:23 +02:00
Lauri Ojansivu 8e02170dd1 - Add option DEBUG=true for docker-compose.yml/Snap/Source.
Thanks to xet7 !
2019-02-11 16:32:24 +02:00
Lauri Ojansivu 9edf95ec93 Merge pull request #2181 from danpatdav/debug-oidc
Added debug flag and bumped salleman package version
2019-02-11 16:11:15 +02:00
Lauri Ojansivu 2add875a38 Update translations. 2019-02-11 16:09:39 +02:00
Daniel Davis b20309f7aa Syntax 2019-02-11 07:46:24 -06:00
Gavin Lilly 8996df5c09 Added Kadira using meteor add method 2019-02-09 23:37:01 +00:00
Gavin Lilly 7b5f02b4c8 Added Kadira packages and env settings in Docker Compose 2019-02-09 23:22:22 +00:00
Lauri Ojansivu fc0287a829 Update translations. 2019-02-09 21:22:36 +02:00
Lauri Ojansivu f69392566a Merge branch 'edge' into meteor-1.8 2019-02-09 00:06:05 +02:00
Lauri Ojansivu ed8bca5394 Update translations (es). 2019-02-09 00:04:51 +02:00
Lauri Ojansivu 9458f4011d v2.19 2019-02-09 00:02:49 +02:00
Lauri Ojansivu f1bd36a3b8 - Remove oplog. Need to think how to do it properly.
Thanks to xet7 !
2019-02-08 23:58:13 +02:00
Lauri Ojansivu 8e3689a11d Merge branch 'edge' into meteor-1.8 2019-02-08 20:58:04 +02:00
Lauri Ojansivu f060e02fc0 v2.18 2019-02-08 20:56:45 +02:00
Lauri Ojansivu 0fa2e5d3a0 Add commit link to changelog. 2019-02-08 20:52:28 +02:00
Lauri Ojansivu 6d0055ecb5 Add issue link to changelog. 2019-02-08 20:49:39 +02:00
Lauri Ojansivu 2d3ce9c290 Add commit link to changelog. 2019-02-08 20:48:05 +02:00
Lauri Ojansivu 796b276d02 Update changelog. 2019-02-08 20:37:30 +02:00
Lauri Ojansivu ed98b5c807 Update changelog. 2019-02-08 20:09:42 +02:00
Lauri Ojansivu f1da7dcb0c Merge pull request #2174 from bentiss/fix-sw-reordering
Fix swimlanes sorting
2019-02-08 19:49:50 +02:00
Lauri Ojansivu 35a539eee2 Update translations. 2019-02-08 19:48:12 +02:00
Lauri Ojansivu 79ffb7d502 - Add oplog to snap mongodb.
Thanks to xet7 !
2019-02-08 19:43:21 +02:00
Benjamin Tissoires a2e6f621a2 Fix swimlanes sorting
Since 7cc185ac "Properly fix horizontal rendering on Chrome and Firefox"

The rendering of the new design of the swimlanes was correct, but this
commit broke the reordering capability. Having the swimlane header at
the same level than the lists of cards makes the whole sortable
pattern fail.

2 solutions:
- revert to only have 1 div per swimlane. But this introduces the firefox
  bug mentioned in 7cc185ac, so not ideal
- force the sortable pattern to do what we want.

To force the sortable pattern, we need:
- add in the helper a clone of the list of cards (to not just move the
  header)
- make sure the placeholder never get placed between the header and the
  list of cards in a swimlane
- fix the finding of the next and previous list of cards.

For all of this to be successful, we need to resize the swimlanes to a
known value. This can lead to some visual jumps with scrolling when you
drag or drop the swimlanea. I tried to remedy that by computing the new
scroll value. Still not ideal however, as there are still some jumps when
dropping.

Fixes #2159
2019-02-08 17:37:20 +01:00
Lauri Ojansivu 96e97143f2 Update translations. 2019-02-08 13:06:35 +02:00
Lauri Ojansivu 4126a1a808 Translate also Admin Panel/Layout/Display Authentication Method and Default Authentication Method. Thanks to Akuket and xet7 ! 2019-02-08 12:46:07 +02:00
Lauri Ojansivu 3ce902123f Lint also async. Thanks to Akuket ! 2019-02-08 12:44:48 +02:00
Lauri Ojansivu 7125357a44 Merge remote-tracking branch 'upstream/feature-improve-authentication' into feature-improve-authentication 2019-02-08 12:33:39 +02:00
guillaume ec453b89b8 Fix lints 2019-02-07 11:38:04 +01:00
Daniel Davis 303404acc6 Bumped salleman packages to 1.0.11
1.0.11 includes new debugging code
2019-02-06 10:18:05 -06:00
Daniel Davis f11d42e72d Add a debug argument
Implementing this for OIDC debugging, but I think it will be broadly useful for runtime debugging.
2019-02-06 10:12:32 -06:00
Lauri Ojansivu 5804a204fe Merge branch 'edge' into meteor-1.8 2019-02-04 21:48:58 +02:00
Lauri Ojansivu 329c8d64a8 v2.17 2019-02-04 21:47:50 +02:00
Lauri Ojansivu 698ce8f0e6 Update translations (sv). 2019-02-04 21:07:36 +02:00
Lauri Ojansivu b06e11ba09 Merge pull request #2164 from gil0109/edge
Fix trailing spaces for OIDC fix
2019-02-04 20:23:41 +02:00
Karim Gillani d689a7408b Fix trailing spaces 2019-02-04 09:36:21 -08:00
Lauri Ojansivu c899218fb9 Merge pull request #2162 from gil0109/edge
OIDC BoardView Fix
2019-02-04 19:30:24 +02:00
Karim Gillani c42f2a05d2 OIDC BoardView Fix 2019-02-04 08:24:10 -08:00
Lauri Ojansivu 09682111d6 Merge branch 'edge' into meteor-1.8 2019-02-03 15:47:05 +02:00
Lauri Ojansivu 70ed552e1a Update translations. 2019-02-03 15:45:00 +02:00
Lauri Ojansivu 3a845d13f8 Merge branch 'edge' into meteor-1.8 2019-02-03 05:19:58 +02:00
Lauri Ojansivu 9a07649b8a v2.16 2019-02-03 05:18:50 +02:00
Lauri Ojansivu 9a6ac544dd - Fix Sandstorm open card on public board, part 2.
Thanks to ChronikEwok !
2019-02-03 05:12:50 +02:00
Lauri Ojansivu 2cb4df9e0b Merge branch 'edge' into meteor-1.8 2019-02-03 03:09:02 +02:00
Lauri Ojansivu 06a1e26655 Add missing text. 2019-02-03 03:06:54 +02:00
Lauri Ojansivu daa602ed9e Merge branch 'edge' into meteor-1.8 2019-02-03 02:33:03 +02:00
Lauri Ojansivu 626e7c2c61 v2.15 2019-02-03 02:31:51 +02:00
Lauri Ojansivu eabf24d750 Merge branch 'edge' into meteor-1.8 2019-02-03 02:26:23 +02:00
Lauri Ojansivu a7aeb491ba Update changelog. 2019-02-03 02:25:14 +02:00
Lauri Ojansivu 7ba8f72d7b - [Fix: Not displaying card content of public board: Snap, Docker and Sandstorm Shared Wekan Board
Link](https://github.com/wekan/wekan/issues/1623) with
  [code from ChronikEwok](https://github.com/ChronikEwok/wekan/commit/cad9b20451bb6149bfb527a99b5001873b06c3de).

Thanks to ChronikEwok !

Closes #1623
2019-02-03 02:18:35 +02:00
Lauri Ojansivu e2475ad73f Merge branch 'edge' into meteor-1.8 2019-02-02 21:56:40 +02:00
Lauri Ojansivu d0f74d7a99 Add missing text. 2019-02-02 21:55:50 +02:00
Lauri Ojansivu 4f79e84399 Merge branch 'devel' into meteor-1.8 2019-02-02 21:03:12 +02:00
Lauri Ojansivu 7f33fa5368 v2.14 2019-02-02 21:00:16 +02:00
Lauri Ojansivu 0ab97266f6 - [Fix Sandstorm export board from web](https://github.com/wekan/wekan/issues/2157).
- [Fix Error when logging in to Wekan REST API when using Sandstorm Wekan](https://github.com/wekan/wekan/issues/1279).
  Sandstorm API works this way: Make API key, and from that key copy API URL and API KEY to below. It saves Wekan board to file.
  `curl http://Bearer:APIKEY@api-12345.local.sandstorm.io:6080/api/boards/sandstorm/export?authToken=#APIKEY > wekanboard.json`
  If later API key does not work, you need to remove it and make a new one.

Thanks to xet7 !
2019-02-02 20:57:47 +02:00
Lauri Ojansivu 32f896f19d - [Fix Sandstorm export board from web](https://github.com/wekan/wekan/issues/2157).
- [Fix Error when logging in to Wekan REST API when using Sandstorm Wekan](https://github.com/wekan/wekan/issues/1279).
  Sandstorm API works this way: Make API key, and from that key copy API URL and API KEY to below. It saves Wekan board to file.
  `curl http://Bearer:APIKEY@api-12345.local.sandstorm.io:6080/api/boards/sandstorm/export?authToken=#APIKEY > wekanboard.json`
  If later API key does not work, you need to remove it and make a new one.

Closes #2157,
closes #1279
2019-02-02 20:52:09 +02:00
Lauri Ojansivu de9965213a - Fix lint errors.
Thanks to xet7 !
2019-02-01 21:26:04 +02:00
guillaume c2118f4830 Improve authentication 2019-02-01 19:00:44 +01:00
Lauri Ojansivu e4c0638f72 Merge branch 'edge' into meteor-1.8 2019-02-01 17:16:22 +02:00
Lauri Ojansivu 6f0e0748e1 v2.13 2019-02-01 17:15:15 +02:00
Lauri Ojansivu 8e5fc13ba4 Update changelog with latest changes from bentiss. 2019-02-01 17:09:05 +02:00
Lauri Ojansivu 7a35099fb9 - When writing to minicard, press Shift-Enter on minicard to go to next line below,
to continue writing on same minicard 2nd line.

Thanks to bentiss!
2019-02-01 17:03:59 +02:00
Lauri Ojansivu d08bee6817 Merge branch 'bentiss-infinite-scrolling' into edge 2019-02-01 16:54:41 +02:00
Lauri Ojansivu 4fc96904d6 Merge branch 'infinite-scrolling' of https://github.com/bentiss/wekan into bentiss-infinite-scrolling 2019-02-01 16:05:46 +02:00
Benjamin Tissoires 66bc1f28dd Use infinite-scrolling on lists
This allows to reduce the loading time of a big board.

Note that there is an infinite scroll implementation in the mixins,
but this doesn't fit well as the cards in the list can have arbitrary
height.

The idea to rely on the visibility of a spinner is based on
http://www.meteorpedia.com/read/Infinite_Scrolling
2019-02-01 14:58:02 +01:00
Benjamin Tissoires 30d082e709 Use infinite-scrolling on lists
This allows to reduce the loading time of a big board.

Note that there is an infinite scroll implementation in the mixins,
but this doesn't fit well as the cards in the list can have arbitrary
height.

The idea to rely on the visibility of a spinner is based on
http://www.meteorpedia.com/read/Infinite_Scrolling
2019-02-01 13:53:45 +01:00
Lauri Ojansivu e774f71205 Merge branch 'edge' into meteor-1.8 2019-01-31 19:33:39 +02:00
Lauri Ojansivu 1b11123797 v2.12 2019-01-31 19:32:27 +02:00
Lauri Ojansivu 654c2add0d - [Bumped the salleman oidc packages versions to include an upstream bug fix](https://github.com/wekan/wekan/commit/361faa6646556de68ad78dc90d9eb9f78956ce0f).
Thanks to danpatdav !
2019-01-31 19:19:47 +02:00
Lauri Ojansivu 6d179d6d3d Merge pull request #2149 from danpatdav/salleman-1.0.10
Bumped the salleman oidc packages versions to include an upstream bug…
2019-01-31 19:10:03 +02:00
Daniel Davis 361faa6646 Bumped the salleman oidc packages versions to include an upstream bug fix 2019-01-31 11:45:55 -05:00
Lauri Ojansivu b2986ca289 Merge branch 'edge' into meteor-1.8 2019-01-31 14:28:53 +02:00
Lauri Ojansivu 7fc22ba0b7 v2.11 2019-01-31 14:27:36 +02:00
Lauri Ojansivu 9c82e6ab68 Update translations. 2019-01-31 14:23:57 +02:00
Lauri Ojansivu 78c18d4ffe Update changelog. 2019-01-31 14:23:23 +02:00
Lauri Ojansivu 978dafc62b - Fix: Bug: Not logged in public board page has calendar.
Thanks to xet7 !

Closes #2061
2019-01-31 14:19:14 +02:00
Lauri Ojansivu 271853e155 Merge branch 'edge' into meteor-1.8 2019-01-30 18:53:02 +02:00
Lauri Ojansivu 8919d8fb7d Fix typo. 2019-01-30 18:52:14 +02:00
Lauri Ojansivu cdb7dd9175 Fix typo. 2019-01-30 18:49:38 +02:00
Lauri Ojansivu a2a3d316d5 Merge branch 'edge' into meteor-1.8 2019-01-30 18:19:07 +02:00
Lauri Ojansivu d6b7c17402 v2.10 2019-01-30 18:17:15 +02:00
Lauri Ojansivu 7e247c14b2 Update translations (mk). 2019-01-30 18:07:23 +02:00
Lauri Ojansivu e6af48fc4a Update changelog with latest changes. 2019-01-30 18:04:44 +02:00
Lauri Ojansivu 9703843602 - Revert [Sandstorm API changes](https://github.com/wekan/wekan/commit/be03a191c4321c2f80116c0ee1ae6c826d882535
that were done at [Wekan v2.05](https://github.com/wekan/wekan/blob/devel/CHANGELOG.md#v205-2019-01-27-wekan-release)
  to fix #2143.

Thanks to pantraining and xet7 !

Closes #2143
2019-01-30 17:56:53 +02:00
Lauri Ojansivu 33b75f2f23 Merge branch 'edge' into meteor-1.8 2019-01-30 16:07:41 +02:00
Lauri Ojansivu d53a7ce5f1 Update translations. 2019-01-30 16:06:31 +02:00
Lauri Ojansivu 929ca9cbd9 Merge branch 'edge' into meteor-1.8 2019-01-30 02:20:35 +02:00
Lauri Ojansivu 6e4a6515e0 - Translations: Add Macedonian. 2019-01-30 02:18:27 +02:00
Lauri Ojansivu bf304ffde5 - Translations: Add Macedonian. 2019-01-30 02:16:55 +02:00
Lauri Ojansivu ea3bcf4320 Merge branch 'edge' into meteor-1.8 2019-01-29 18:57:57 +02:00
Lauri Ojansivu 7cefe9d367 Update translations. 2019-01-29 18:56:11 +02:00
Lauri Ojansivu 0b018bfad5 Merge branch 'edge' into meteor-1.8 2019-01-28 18:31:26 +02:00
Lauri Ojansivu 12cccc25cc v2.09 2019-01-28 18:29:46 +02:00
Lauri Ojansivu 34f62cb3b3 - [Fix vertical automatic scrolling when opening a card](https://github.com/wekan/wekan/commit/820d3270935dc89f046144a7bbf2c8277e2484bc).
Thanks to bentiss !
2019-01-28 18:23:28 +02:00
Lauri Ojansivu 820d327093 Merge pull request #2140 from bentiss/scrolling-fixes
automatic scroll: fix vertical automatic scrolling when opening a card
2019-01-28 18:12:51 +02:00
Lauri Ojansivu c360afb341 Merge branch 'edge' into meteor-1.8 2019-01-28 17:27:50 +02:00
Lauri Ojansivu 04279342a4 v2.08 2019-01-28 17:26:18 +02:00
Benjamin Tissoires 1cfe084cc2 automatic scroll: fix vertical automatic scrolling when opening a card
We actually want the vertical scrolling to be fixed when opening the
card details.
I am not sure where the `100` value comes from, but this makes the
scrolling happy on the swimlane view and on the lists view.
2019-01-28 16:21:43 +01:00
Lauri Ojansivu 4629cc1b19 Update translations. 2019-01-28 17:08:47 +02:00
Lauri Ojansivu b4e87466ba Merge branch 'bentiss-horizontal-fixes' into edge 2019-01-28 17:06:56 +02:00
Benjamin Tissoires ae82f43078 make the max height of the swimlane not too big
We should take a full screen minus the header height
2019-01-28 15:34:12 +01:00
Benjamin Tissoires 7cc185ac57 Properly fix horizontal rendering on Chrome and Firefox
This reverts commit 74cf9e2573 "- Fix Firefox left-rigth scrollbar."

This reverts commit 9dd8216dfb.
"- Fix cards below swimlane title in Firefox by making
[previous fix](https://github.com/wekan/wekan/pull/2132/commits/f7c6b7fce237a6dbdbbd6d728cfb11ad3f4378eb)"

And this partially reverts commit dd88eb4cc

The root of the issue was that I was adding a new div and nesting
the list of lists in this new list. This resulted in some
weird behavior that Firefox could not handled properly
Revert to a code colser to v2.02, by just having the
swimlane header in a separate line, and keep only one
flex element.

fixes #2137
2019-01-28 15:33:47 +01:00
Lauri Ojansivu 2dba189830 Merge branch 'edge' into meteor-1.8 2019-01-28 02:59:32 +02:00
Lauri Ojansivu 4d37e1d640 v2.07 2019-01-28 02:58:02 +02:00
Lauri Ojansivu 74cf9e2573 - Fix Firefox left-rigth scrollbar.
Thanks to xet7 !

Closes #2137
2019-01-28 02:50:25 +02:00
Lauri Ojansivu d40d5652ba Merge branch 'edge' into meteor-1.8 2019-01-27 19:13:01 +02:00
Lauri Ojansivu 3c2de2a38d v2.06 2019-01-27 19:11:57 +02:00
Lauri Ojansivu 9dd8216dfb - Fix cards below swimlane title in Firefox by making [previous fix](https://github.com/wekan/wekan/pull/2132/commits/f7c6b7fce237a6dbdbbd6d728cfb11ad3f4378eb)
Firefox-only.

Thanks to xet7 !
2019-01-27 19:03:50 +02:00
Lauri Ojansivu d40ad94384 Merge branch 'edge' into meteor-1.8 2019-01-27 18:29:02 +02:00
Lauri Ojansivu 905ddafe41 v2.05 2019-01-27 18:27:21 +02:00
Lauri Ojansivu 62a0e57f38 Update translations. 2019-01-27 18:18:20 +02:00
Lauri Ojansivu be03a191c4 - Try to have some progress on Wekan Sandstorm API. I did not get it fully working yet.
Thanks to xet7.
2019-01-27 18:16:27 +02:00
Lauri Ojansivu cf7d3b5a7e - Add back scrollbars that [were hidden when trying to fix another
bug](https://github.com/wekan/wekan/pull/2132/commits/f7c6b7fce237a6dbdbbd6d728cfb11ad3f4378eb).

Thanks to xet7 !

Closes #2134
2019-01-27 18:09:53 +02:00
Lauri Ojansivu 8e2f44bbc0 Merge branch 'edge' into meteor-1.8 2019-01-26 20:22:17 +02:00
Lauri Ojansivu 939d8a7078 v2.04 2019-01-26 20:20:54 +02:00
Lauri Ojansivu db62a51d5a Update translations. 2019-01-26 19:48:28 +02:00
Lauri Ojansivu 9ebf5751fd Merge pull request #2132 from bentiss/edge
Fix for v2.03
2019-01-26 19:45:56 +02:00
Benjamin Tissoires f7c6b7fce2 ui: fix rendering issue on firefox
When a list have more cards that can fit in the screen, the members icons
are drawn on top of the swimlane below and the scrollbar is not available.

According to https://github.com/utatti/perfect-scrollbar the container
must have an `overflow: hidden` css style.

When changing the swimlane header from vertical to horizontal, dd88eb4cc1
broke this which led to this weird bug.
2019-01-26 17:38:51 +01:00
Benjamin Tissoires 850b34ce33 ifttt: card actions: simplify the logic for setting the color
Jade allows a simpler approach than my initial manual update.
Just declare the correct ReactiveVar and accessor, and done.
2019-01-26 17:38:51 +01:00
Lauri Ojansivu 87df11434b Merge branch 'edge' into meteor-1.8 2019-01-25 23:07:43 +02:00
Lauri Ojansivu 1a64a88d3d Waiting for bugfix. 2019-01-25 23:06:34 +02:00
Lauri Ojansivu 95c178cee3 Merge branch 'edge' into meteor-1.8 2019-01-25 22:20:00 +02:00
Lauri Ojansivu be8f00ab8a v2.03 2019-01-25 22:18:39 +02:00
Lauri Ojansivu ddedb8a48b Update translations (de). 2019-01-25 22:14:09 +02:00
Lauri Ojansivu ba392362ee Update ChangeLog for all that huge amount of contributions from bentiss. 2019-01-25 22:09:40 +02:00
Lauri Ojansivu 8fbd47e199 Merge pull request #2130 from bentiss/color-lists
lists-color: only colorize the bottom border
2019-01-25 20:02:26 +02:00
Lauri Ojansivu 6aaf0c812a Update translations. 2019-01-25 19:25:46 +02:00
Benjamin Tissoires 33977b2282 lists-color: only colorize the bottom border
And make the background clearer to visually separate the header from
the list of cards
2019-01-25 18:13:37 +01:00
Lauri Ojansivu 37f70bdf0f Merge branch 'devel' into edge 2019-01-25 19:13:08 +02:00
Lauri Ojansivu 5d6203f5f9 Merge pull request #2128 from bentiss/color-lists
Color lists
2019-01-25 19:05:44 +02:00
Lauri Ojansivu 082aabc735 Merge pull request #2127 from bentiss/fix-set-member
api: fix set_board_member_permission
2019-01-25 19:05:26 +02:00
Lauri Ojansivu ba15526516 Merge pull request #2126 from bentiss/color-swimlanes
Color for swimlanes
2019-01-25 19:05:09 +02:00
Lauri Ojansivu 4a2576fbc2 Merge pull request #2121 from bentiss/color
Color picker in IFTTT
2019-01-25 19:04:45 +02:00
Benjamin Tissoires 97d95b4bcb ui: lists: make sure all lists boxes are the same height
When `Show card count` is enabled, the lists with the card counts have
two lines of text while the lists without have only one.

This results in the box around the list headers are not of the same size
and this is visible when setting a color to the list.
2019-01-25 15:58:52 +01:00
Benjamin Tissoires d0a9d8c581 colors: add per list color
Hamburger menu only.

Note that I am definitively not responsible for the resulting Christmas
tree.

fixes #328
2019-01-25 15:56:40 +01:00
Benjamin Tissoires 78c779faaf client: lists headers: use padding instead of margin
No visual changes but allows to set a background color to the list header.
2019-01-25 14:25:28 +01:00
Benjamin Tissoires 8d81aca439 api: fix set_board_member_permission
If the data is passed as a boolean, through json, data.toLowerCase()
raises an error.

Also define query which we are returning in case of success.
2019-01-25 14:15:08 +01:00
Benjamin Tissoires 6c3dbc3c6f api: new_card: add the card at the end of the list
If we keep the `0` value, the card might be inserted in the middle of the
list, making it hard to find it later on.

Always append the card at the end of the list by setting a sort value
based on the number of cards in the list.
2019-01-25 12:44:27 +01:00
Benjamin Tissoires b5411841cf api: fix the sort field when inserting a swimlane or a list
This has the side effect of always inserting the element at the end.
2019-01-25 11:04:56 +01:00
Benjamin Tissoires 5c6a725712 Make sure Swimlanes and Lists have a populated sort field
When moving around the swimlanes or the lists, if one element has a sort
with a null value, the computation of the new sort value is aborted,
meaning that there are glitches in the UI.

This happens on the first swimlane created with the new board, or when
a swimlane or a list gets added through the API.
2019-01-25 11:04:56 +01:00
Benjamin Tissoires 03efeaeb1a Add colors to swimlanes
fixes #1688
2019-01-25 11:04:40 +01:00
Benjamin Tissoires c075187088 swimlane: insert the new swimlane after the one we clicked on 2019-01-24 20:52:03 +01:00
Benjamin Tissoires 416b17062e Remove the 'Add Swimlane' entry and replace it by a plus sign
Still need to create the swimlane right after the one that has been
created
2019-01-24 20:51:38 +01:00
Benjamin Tissoires dd88eb4cc1 swimlane-view: have the swimlane header horizontal
This allows to use the header as a separator between swimlanes.

This will be most useful when we can set the background color of these
headers.
2019-01-24 20:50:42 +01:00
Benjamin Tissoires 5fa0821e07 card colors: remove unused variables 2019-01-24 20:50:42 +01:00
Benjamin Tissoires 6e9bad5772 IFTTT: card colors: add an actual white entry
To unset the color through the IFTTT, we need a white entry.
However, we do not want to show the white enry in the hamburger
`Set Color` entry.

We can also give the `white` capability to the API, it won't hurt
and be more straightforward.
2019-01-24 16:51:06 +01:00
Benjamin Tissoires 5769d438a0 rules: set card color: use the color picker 2019-01-24 16:51:06 +01:00
Benjamin Tissoires 8a48ff96ef set card colors: properly set the title of the popups 2019-01-24 16:51:06 +01:00
Benjamin Tissoires 0782c97d4f card colors: force overwrite of text color
This allows to show checks on the color with the correct color instead
of plain white.
2019-01-24 09:32:38 +01:00
Lauri Ojansivu 542cc75dc4 Update translations (tr). 2019-01-22 19:27:32 +02:00
Lauri Ojansivu 46a468b06d Merge branch 'edge' into meteor-1.8 2019-01-22 17:33:27 +02:00
Lauri Ojansivu 1b445ad789 v2.02 2019-01-22 17:31:57 +02:00
Lauri Ojansivu 9baed4256a Update translations (he). 2019-01-22 17:28:19 +02:00
Lauri Ojansivu 2b4df7e8c7 Update changelog. 2019-01-22 17:26:48 +02:00
Lauri Ojansivu 6e28dec712 Merge pull request #2119 from bentiss/fix-color-translation
Fix: Translate and add colors to IFTTT Rules dropdown."
2019-01-22 16:45:29 +02:00
Benjamin Tissoires ba9f0ca672 Fix: Translate and add colors to IFTTT Rules dropdown."
This fixes commit 44e4df2492.

When the label has a name, not setting `translatedname` results in a
blank item in the IFTTT label trigger.
2019-01-22 15:40:54 +01:00
Lauri Ojansivu 7261ccdc90 Update translations. 2019-01-22 16:32:43 +02:00
Lauri Ojansivu 6fbadbe5bc Merge pull request #2118 from bentiss/export
Allow to call export from the API
2019-01-22 16:29:42 +02:00
Benjamin Tissoires 26d7ba72aa api: export board: allow authentication through generic authentication
This allows to retrieve the full export of the board from the API.
When the board is big, retrieving individual cards is heavy for both
the server and the number of requests.

Allowing the API to directly call on export and then treat the data
makes the whole process smoother.
2019-01-22 15:14:01 +01:00
Lauri Ojansivu 44e4df2492 - Translate and add colors to IFTTT Rules dropdown.
Thanks to xet7 !
2019-01-22 15:22:31 +02:00
Lauri Ojansivu d8482b533a Merge pull request #2117 from bentiss/color
Set the card color with the color picker
2019-01-22 14:57:00 +02:00
Benjamin Tissoires 2082480ddd Set the card color with the color picker
When triggered from the hamburger
2019-01-22 13:45:08 +01:00
Lauri Ojansivu e8c4e394fd Update translations. 2019-01-22 14:01:07 +02:00
Lauri Ojansivu 0c5052ebae Merge pull request #2116 from bentiss/color
Add per card color
2019-01-22 13:02:14 +02:00
Lauri Ojansivu d3b2ae1975 Update translations. 2019-01-22 12:12:18 +02:00
Benjamin Tissoires f4f0f489eb add action: set card color 2019-01-22 11:10:29 +01:00
Benjamin Tissoires 3368ebf067 color: add option in hamburger to change the card color
Currently only dropdown, no palette

Fixes: #428
2019-01-22 11:10:29 +01:00
Benjamin Tissoires b0ac10d94a Add the ability to change the card background
Currently the only way to set it is via the REST API
2019-01-22 11:10:29 +01:00
Lauri Ojansivu c87a8b86ae - Added missing translation for 'days'
Thanks to Chartman123 !

Closes #2114
2019-01-21 16:26:55 +02:00
Lauri Ojansivu d5d71d7097 Update upcase/lowercase. 2019-01-20 00:53:59 +02:00
Lauri Ojansivu c960a8b909 - [OpenAPI and generating of REST API Docs](https://github.com/wekan/wekan/pull/1965).
Thanks to bentiss.
2019-01-19 21:14:32 +02:00
Lauri Ojansivu 3257f78d24 Merge branch 'bentiss-openapi' into devel 2019-01-19 21:09:42 +02:00
Lauri Ojansivu a9133bf933 Merge branch 'openapi' of https://github.com/bentiss/wekan into bentiss-openapi 2019-01-19 20:55:14 +02:00
Lauri Ojansivu 8e8147b5ac - Fix License to 2019. https://github.com/wekan/wekan/pull/2112
Thanks to ajRiverav !
2019-01-19 20:45:43 +02:00
Lauri Ojansivu 711f4de3d7 Merge pull request #2112 from ajRiverav/devel
update license to year 2019
2019-01-19 20:43:42 +02:00
Lauri Ojansivu 68998e062e Update translations. 2019-01-19 20:42:41 +02:00
AJ Rivera f40d1f6bd5 update license to year 2019 2019-01-18 17:25:48 -04:00
Benjamin Tissoires 048c3cd14d snap: also generate the html doc of the REST API
Same for snap: embed the documentation of the REST API
in the snap.
2019-01-18 19:33:08 +01:00
Benjamin Tissoires 08ca353205 openapi: generate the HTML documentation too and embed it in the image
Aligning with the requirement to run the container without
external resources: embed the documentation of the REST API
directly in the Docker image.
2019-01-18 19:33:08 +01:00
Benjamin Tissoires c83cdc9335 Add openapi in snaps
Same thing than in the Dockerfile, snaps need
to embed the current openapi yaml file.
2019-01-18 17:07:18 +01:00
Benjamin Tissoires e91e3c076d snapcraft add nodejs and npm as build dependencies
When pulling the docker container snapcore/snapcraft
to build the snap, those 2 packages are not present
by default leading to a failure in the snap creation.

Note: it is good to call `apt-get update` before
`snapcraft` or the build will fail.
2019-01-18 17:05:41 +01:00
Benjamin Tissoires 8be7eec2ca openapi: make the code python 3.5 compatible
It is common to use Ubuntu 16.04 to build snaps. For example,
the official docker container to build snaps is using this old
distribution.

However, Ubuntu 16.04 ships Python 3.5.X which is not compatible
with the f-strings in generate_openapi.py. This is sad, because
we need to use the `.format()` syntax to make it compatible.
2019-01-18 17:03:12 +01:00
Benjamin Tissoires acc4493517 Generate the OpenAPI in the Dockerfile
When we build the docker container, we need to generate the openapi
description in it so the geenrated API actually matches the code
the container is running.
2019-01-18 17:03:05 +01:00
Benjamin Tissoires ff467402c0 RESTAPI: Add some JSDoc
So we can have a decent REST API documentation generated.
2019-01-18 17:02:56 +01:00
Benjamin Tissoires 49d3eb5a3f Add OpenAPI description of the REST API
The API is generated by a custom script that parses the models directory.
Once the API is generated, tools like https://editor.swagger.io/ or
Python bravado can parse the file and generate a language friendly API.

Note that the tool generate an OpenAPI 2.0 version because bravado
doesn't handle OpenAPI 3.0.

The script also parses the JSDoc with a custom parser to allow
customization of the description of the fields.
2019-01-18 17:01:11 +01:00
Benjamin Tissoires 889aa6d652 Revert "models: boards: add PUT members entry point"
This reverts commit f61942e5cb.

Adding a member is actually already handled by
POST', '/api/boards/:boardId/members/:userId/add'

So this function is purely duplicated.

Not to mention that the '/add' one allows to set permissions
so this one in this commit is less interesting.
2019-01-18 17:01:03 +01:00
Lauri Ojansivu 78e0457843 Update translations (ca). 2019-01-15 15:47:46 +02:00
Lauri Ojansivu 8d4eef6649 Merge branch 'edge' into meteor-1.8 2019-01-13 20:14:23 +02:00
Lauri Ojansivu 7f568faef6 Fix typo.
Thanks to xorander00 !

Closes #2101
2019-01-13 20:12:57 +02:00
Lauri Ojansivu be045f3156 Fix typo.
Thanks to xorander00 !

Closes #2101
2019-01-13 20:10:20 +02:00
Lauri Ojansivu 3b5e81d514 Update translations. 2019-01-11 16:34:02 +02:00
Lauri Ojansivu 9421c0ba05 Merge branch 'edge' into meteor-1.8 2019-01-06 13:30:19 +02:00
Lauri Ojansivu 346bdf2ca8 v2.01 2019-01-06 13:29:04 +02:00
Lauri Ojansivu 501289786c Update translations (cs and he). 2019-01-06 13:26:10 +02:00
Lauri Ojansivu 1c827f9830 Merge branch 'edge' into meteor-1.8 2019-01-04 20:08:55 +02:00
Lauri Ojansivu 24ffe223be v2.00 2019-01-04 20:07:22 +02:00
Lauri Ojansivu 32c561d78e Update translations. 2019-01-04 20:03:16 +02:00
Lauri Ojansivu 4114d08961 Merge branch 'edge' into meteor-1.8 2019-01-04 12:18:24 +02:00
Lauri Ojansivu ff65b37336 v1.99 2019-01-04 12:17:05 +02:00
Lauri Ojansivu 3f698ca012 Update translations. 2019-01-04 12:07:03 +02:00
Lauri Ojansivu 785bc2556e - Merge duplicate translation.
Thanks to xet7 !
2019-01-04 11:26:38 +02:00
Lauri Ojansivu e198282b4d - Remove duplicate translation.
Thanks to xet7 !
2019-01-04 11:18:26 +02:00
Lauri Ojansivu 24e59c378b Merge branch 'edge' into devel 2019-01-04 11:14:18 +02:00
Lauri Ojansivu c1b4aae573 Merge branch 'Angtrim-feature-rules' into devel 2019-01-04 11:12:54 +02:00
Lauri Ojansivu f5339ef97f - Fix lint errors.
Thanks to xet7 !
2019-01-04 11:00:33 +02:00
Lauri Ojansivu 2b53fae16f Merge branch 'feature-rules' of https://github.com/Angtrim/wekan into Angtrim-feature-rules 2019-01-04 09:23:54 +02:00
Lauri Ojansivu 1d3466c7a0 Update translations (pt-BR). 2019-01-04 09:05:57 +02:00
Angelo Gallarello 4d8b2029d2 Fixed errors 2019-01-02 22:51:00 +01:00
Angelo Gallarello 8ad0da2109 Added create card action 2019-01-02 22:32:08 +01:00
Angelo Gallarello 12827ef0a6 Added notes 2019-01-02 15:52:58 +01:00
Angelo Gallarello 4c399a41f7 Add action: create checklist with items 2019-01-02 15:42:10 +01:00
Angelo Gallarello 25968a35cc Finished triggers improvements 2019-01-02 14:45:45 +01:00
Lauri Ojansivu 548d095223 - Add find.sh bash script that ignores extra directories when searching.
xet7 uses this a lot when developing.

Thanks to xet7 !
2019-01-02 13:22:21 +02:00
Lauri Ojansivu 98917523fc Merge branch 'edge' into meteor-1.8 2019-01-01 14:10:10 +02:00
Lauri Ojansivu 1683bcb3e5 v1.98 2019-01-01 14:08:44 +02:00
Lauri Ojansivu 991843acb0 - [Mobile fixes](https://github.com/wekan/wekan/pull/2084), thanks to hupptechnologies:
- Move home button / avatar bar from bottom to top. So at top first is home button / avatar, then others.
  - When clicking Move Card, go to correct page position. Currently it's at empty page position, and there is
    need to scroll page up to see Move Card options. It should work similarly like Copy Card, that is visible.
  - Also check that other buttons go to visible page.
2019-01-01 14:03:24 +02:00
Lauri Ojansivu 8b85437b6b Merge branch 'hupptechnologies-wekan-mobile-use-issue' into devel 2019-01-01 13:59:34 +02:00
Lauri Ojansivu 6259f0de70 - Add removed packages back.
Thanks to xet7 !
2019-01-01 13:42:13 +02:00
Lauri Ojansivu d86bc1d84d Merge branch 'wekan-mobile-use-issue' of https://github.com/hupptechnologies/wekan into hupptechnologies-wekan-mobile-use-issue 2019-01-01 13:41:26 +02:00
Lauri Ojansivu 88bdb0815d Update translations (cs). 2019-01-01 13:40:22 +02:00
hupptechnologies 97f64fe5e6 Issue: Hard to use Wekan on mobile because of UI/UX issues #953
Resolved #953
2019-01-01 16:35:18 +05:30
Angelo Gallarello 196fef3a1b Added popup 2018-12-31 00:45:11 +01:00
Angelo Gallarello a2d756074f Added swimlane trigger 2018-12-30 22:08:34 +01:00
Lauri Ojansivu e9a3601d2e - Upgrade to Meteor 1.8.0.1.
Thanks to xet7 !
2018-12-29 19:47:59 +02:00
Lauri Ojansivu 3c53b3de15 - Change to meteor v1.8, finally got it working, at least it started.
Note that if MongoDB does not start, you could try fixing meteor's local database with
  command from https://github.com/meteor/meteor/issues/9591#issuecomment-367351465 that for
  Linux is `cd ~ && .meteor/packages/meteor-tool/1.8.0/mt-os.linux.x86_64/dev_bundle/mongodb/bin/mongod --dbpath ./repos/wekan/.meteor/local/db --repair`
  but that did not work for me, so I needed to move away (or delete) repos/wekan/.meteor/local/db file
  so that it was created again and with command `mongo` database could start correctly.

Thanks to xet7 !
2018-12-29 19:29:14 +02:00
Angelo Gallarello b2f23d619d Triggers by username, updated desc 2018-12-29 17:36:57 +01:00
Angelo Gallarello 9d1d66b0f5 Added triggers by username 2018-12-29 16:59:50 +01:00
Lauri Ojansivu 8becd9aad3 - Update some packages. Error about tap:i18n still exists.
Thanks to xet7 !
2018-12-29 16:41:20 +02:00
Lauri Ojansivu 5eadc0c850 Merge branch 'edge' into meteor-1.8 2018-12-28 17:33:28 +02:00
Lauri Ojansivu c61e44d55b - Add optional Nginx reverse proxy config to docker-compose.yml and nginx directory.
Thanks to MyTheValentinus !
2018-12-28 17:26:30 +02:00
Lauri Ojansivu 89d0da5eee - Update dependencies. But this Meteor 1.8.x version still does not work
because of tap:18n bug.

Thanks to xet7 !
2018-12-28 17:20:34 +02:00
Lauri Ojansivu 03fbc1cd70 Merge branch 'edge' into meteor-1.8 2018-12-27 00:36:41 +02:00
Lauri Ojansivu 76c5c283b9 - docker-compose.yml back to MongoDB 3.2.21 because 3.2.22 MongoDB container does not exist yet.
Thanks to xet7 !
2018-12-27 00:35:39 +02:00
Lauri Ojansivu 738e07c424 Merge branch 'edge' into meteor-1.8 2018-12-26 23:58:42 +02:00
Lauri Ojansivu 2d88afb77e - docker-compose.yml back to MongoDB 3.2.21 because 3.2.22 MongoDB container does not exist yet.
Thanks to xet7 !
2018-12-26 23:57:00 +02:00
Lauri Ojansivu 4fb81bd686 Merge branch 'edge' into meteor-1.8 2018-12-26 22:50:25 +02:00
Lauri Ojansivu 7fd09761cb v1.97 2018-12-26 22:49:14 +02:00
Lauri Ojansivu cb53c53c2b - Use Node 8.15.0 and MongoDB 3.2.22.
- Stacksmith: back to Meteor 1.6.x based Wekan, because Meteor 1.8.x based is currently broken.

Thanks to xet7 !
2018-12-26 22:32:25 +02:00
Lauri Ojansivu 77ff6349f6 - Use Node 8.15.0 and MongoDB 3.2.22.
- Stacksmith: back to Meteor 1.6.x based Wekan, because Meteor 1.8.x based is currently broken.

Thanks to xet7 !
2018-12-26 22:29:04 +02:00
Lauri Ojansivu 879ad4001d Update translations (he). 2018-12-26 11:40:31 +02:00
Lauri Ojansivu aff8b562d6 Merge branch 'edge' into meteor-1.8 2018-12-24 23:56:54 +02:00
Lauri Ojansivu e1436ab964 Update rebuild script. 2018-12-24 23:54:57 +02:00
Lauri Ojansivu 007bea0a4b Update rebuild script. 2018-12-24 23:50:43 +02:00
Lauri Ojansivu 236c99b39f Merge branch 'edge' into meteor-1.8 2018-12-24 18:27:49 +02:00
Lauri Ojansivu 67b76558fc v1.96 2018-12-24 18:26:33 +02:00
Lauri Ojansivu f60429efdf - Comment out docker build from source part of docker-compose.yml
Thanks to xet7 !
2018-12-24 18:24:32 +02:00
Lauri Ojansivu f140e20c6f - Revert "Improve authentication" and "Default Authentication Method"
to make login work again.
- Fixes to docker-compose.yml so that Wekan Meteor 1.6.x version would work.
  Most likely Meteor 1.8.x version is still broken.

Thanks to xet7 !
2018-12-24 18:22:30 +02:00
Lauri Ojansivu c502ab9500 - Revert "Improve authentication" and "Default Authentication Method"
to make login work again.
- Fixes to docker-compose.yml so that Wekan Meteor 1.6.x version would work.
  Most likely Meteor 1.8.x version is still broken.

Thanks to xet7 !
2018-12-24 18:18:41 +02:00
Lauri Ojansivu 425ae55422 Update translations (fa). 2018-12-24 16:41:36 +02:00
Lauri Ojansivu e9006a234b - Fix docker-compose.yml to use Meteor 1.6.x based Wekan,
because currently Meteor 1.8.x based version is broken.

Thanks to xet7 !
2018-12-24 16:29:53 +02:00
Lauri Ojansivu 5488b68b9b - Update meteor.
Thanks to xet7 !
2018-12-24 14:03:31 +02:00
Lauri Ojansivu 6d18fb689f - Update dependency package versions.
Thanks to xet7 !
2018-12-24 13:56:29 +02:00
Lauri Ojansivu 9d7e9e9869 Merge branch 'edge' into meteor-1.8 2018-12-22 21:42:11 +02:00
Lauri Ojansivu ef6aa4e415 - Move wekan-postgresql back to https://github.com/wekan/wekan-postgresql
because there is many differences in database settings.

Thanks to xet7 !
2018-12-22 21:40:34 +02:00
Lauri Ojansivu 6d15fd29ee Merge branch 'edge' into meteor-1.8 2018-12-22 19:05:33 +02:00
Lauri Ojansivu 1901c3c798 Fix typo. 2018-12-22 19:04:43 +02:00
Lauri Ojansivu d78e067246 Merge branch 'edge' into meteor-1.8 2018-12-22 18:58:35 +02:00
Lauri Ojansivu 6cb046f29e Update translations (de). 2018-12-22 18:57:23 +02:00
Lauri Ojansivu e7e67e300b - [Combine all docker-compose.yml files](https://github.com/wekan/wekan/commit/3f948ba49ba7266c436ff138716bdcae9e879903). Thanks to xet7. 2018-12-22 18:46:45 +02:00
Lauri Ojansivu 3f948ba49b - Combine all docker-compose.yml files.
Thanks to xet7 !
2018-12-22 18:44:08 +02:00
Lauri Ojansivu 5b227b2b4f Merge branch 'edge' into meteor-1.8 2018-12-21 22:24:21 +02:00
Lauri Ojansivu 96f33e4052 v1.95 2018-12-21 22:23:12 +02:00
Lauri Ojansivu 68d60f4f64 - Upgrade to node v8.14.1
Thanks to xet7 !
2018-12-21 22:12:54 +02:00
Lauri Ojansivu f7153da83d - Upgrade to node v8.14.1
Thanks to xet7 !
2018-12-21 22:11:43 +02:00
Lauri Ojansivu 16d53897c7 - [Drag handles and long press on mobile when using desktop mode of mobile
browser](https://github.com/wekan/wekan/pull/2067). Thanks to hupptechnologies.
2018-12-21 21:56:30 +02:00
Lauri Ojansivu 32d405bca4 Merge branch 'hupptechnologies-ui-feature-drag-handler' into devel 2018-12-21 21:52:42 +02:00
Lauri Ojansivu 2f747fc09d - Added removed packages back.
Thanks to xet7 !
2018-12-21 21:10:00 +02:00
Lauri Ojansivu 32d5a1d3f7 Merge branch 'ui-feature-drag-handler' of https://github.com/hupptechnologies/wekan into hupptechnologies-ui-feature-drag-handler 2018-12-21 21:09:31 +02:00
Lauri Ojansivu db44b8ea54 Merge branch 'Akuket-devel' into devel 2018-12-21 20:53:31 +02:00
Lauri Ojansivu 1f512c8ba1 - [Improve authentication](https://github.com/wekan/wekan/pull/2065): remove login dropdown,
and add setting `DEFAULT_AUTHENTICATION_METHOD=ldap` or
  `sudo snap set wekan default-authentication-method='ldap'`. Thanks to Akuket. Closes wekan/wekan-ldap#31
2018-12-21 20:52:48 +02:00
Lauri Ojansivu 417dc9dc42 Fix lint errors. 2018-12-21 20:36:26 +02:00
Lauri Ojansivu bd66ea8acc Update translations (ru). 2018-12-21 20:16:35 +02:00
Lauri Ojansivu dba9d13b00 Update translations. 2018-12-21 20:11:32 +02:00
Lauri Ojansivu 1e034a794f - Update translated text. 2018-12-21 19:47:34 +02:00
Lauri Ojansivu a261c66f34 Merge branch 'devel' of https://github.com/Akuket/wekan into Akuket-devel 2018-12-21 19:34:32 +02:00
hupptechnologies b94bd73d33 Uncommect packages 2018-12-20 14:43:21 +05:30
hupptechnologies a9be6b17b9 Issue : UI feature suggestion: drag handles and long press #1772
Resolved #1772
2018-12-20 14:42:46 +05:30
Lauri Ojansivu 16fe2be04d Merge branch 'edge' into meteor-1.8 2018-12-19 19:59:11 +02:00
Lauri Ojansivu ac6f8e8551 - Output Meteor 1.8.x version in build log.
Thanks to xet7 !
2018-12-19 19:55:30 +02:00
Lauri Ojansivu 23fb2bfc7f - Use meteor 1.8.x, because Stacksmith uses MongoDB 4.0.3.
Thanks to xet7 !
2018-12-19 19:42:40 +02:00
guillaume ff1c3722a8 Patch currentBoard doesn't exist when logout 2018-12-19 17:22:16 +01:00
guillaume 1712368f6a Improves UI for ldap error messages 2018-12-19 17:21:27 +01:00
guillaume d7529bf6b5 Add help message for the new env var in snap 2018-12-19 13:53:05 +01:00
guillaume 6b145bb3cc Add a new env var to select the default authentication method 2018-12-19 13:42:51 +01:00
guillaume 72e905675d Removes the dropdown for the authentication method 2018-12-19 13:41:21 +01:00
Lauri Ojansivu 61c0292089 Merge branch 'edge' into meteor-1.8 2018-12-18 20:23:43 +02:00
Lauri Ojansivu 2fbcf7e9b6 v1.94 2018-12-18 20:22:11 +02:00
Lauri Ojansivu 0ade4dbf00 - Use wekan/wekan repo.
Thanks to xet7 !
2018-12-18 20:05:10 +02:00
Lauri Ojansivu d70ad9d733 - Comment out extra node version.
Thanks to xet7 !
2018-12-18 19:42:04 +02:00
Lauri Ojansivu 51a19878dd Merge pull request #2064 from j-fuentes/devel
Add Bitnami Stacksmith
2018-12-18 19:40:44 +02:00
Lauri Ojansivu ddca6a1ad8 Update translations. 2018-12-18 19:27:23 +02:00
Jose Fuentes cac74122f2 Wait for DB on boot 2018-12-17 13:09:32 +01:00
Lauri Ojansivu 991b2b9721 Update translations (he). 2018-12-17 01:15:44 +02:00
Lauri Ojansivu b6663acf91 Update translations. 2018-12-16 23:48:43 +02:00
Lauri Ojansivu 7f74e72cea - Trying to get custom HTML working as described at
https://guide.meteor.com/v1.3/blaze.html#rendering-html
  Still does not work yet.

Thanks to xet7 !
2018-12-16 23:46:04 +02:00
Lauri Ojansivu bd1df642fa - Maybe custom html should be here. But it still does not work yet.
Thanks to xet7 !
2018-12-16 22:50:23 +02:00
Lauri Ojansivu 575b0241e4 Update translations. 2018-12-16 22:27:45 +02:00
Lauri Ojansivu f1ed6304a4 - Admin Panel / Layout / Custom HTML after <body> start, and Custom HTML before </body> end.
In progress, does not work yet.

Thanks to xet7 !
2018-12-16 22:21:16 +02:00
Lauri Ojansivu c8173fd9f9 Merge branch 'edge' into meteor-1.8 2018-12-16 19:11:05 +02:00
Lauri Ojansivu a42d9871bd v1.93 2018-12-16 19:09:16 +02:00
Lauri Ojansivu 7a2ea7cace Fix typo. 2018-12-16 19:03:49 +02:00
Lauri Ojansivu fb39811d95 Update translations. 2018-12-16 19:02:09 +02:00
Lauri Ojansivu 78e88f4c42 - Remove Wekan_version translation string.
Thanks to xet7 !
2018-12-16 18:36:50 +02:00
Lauri Ojansivu db63af5f7a - In tranlations, only show name "Wekan" in Admin Panel Wekan version.
Elsewhere use general descriptions for whitelabeling.

Thanks to xet7 !
2018-12-16 18:27:47 +02:00
Lauri Ojansivu c3e04da796 - Update translations (ru). 2018-12-16 18:14:18 +02:00
Lauri Ojansivu 72f8baf6b3 Merge branch 'edge' into meteor-1.8 2018-12-16 12:01:42 +02:00
Lauri Ojansivu 2a59043ef1 v1.92 2018-12-16 11:58:44 +02:00
Lauri Ojansivu 3d76a35a68 - Fix [favicon paths for non-suburl cases](https://github.com/wekan/wekan/commit/c1733fc89c4c73a1ab3f4054d0a9ebff7741a804).
Thanks to xet7 !

Related #1692
2018-12-16 11:45:12 +02:00
Lauri Ojansivu c1733fc89c - Fix favicon paths for non-suburl cases.
Thanks to xet7 !

Related #1692
2018-12-16 11:41:10 +02:00
Lauri Ojansivu 388c1bec45 - Fix [Card scrollbar ignores mousewheel](https://github.com/wekan/wekan-scrollbar/commit/94a40da51627c6322afca50a5b1f4aa55c7ce7bf).
Thanks to rinnaz and xet7 !

Closes #2058
2018-12-16 11:14:16 +02:00
Lauri Ojansivu a2869e9d2a - Fix [Popup class declares member name _current but use current instead](https://github.com/wekan/wekan/issues/2059).
Thanks to peishaofeng !

Closes #2059
2018-12-16 11:10:06 +02:00
Lauri Ojansivu 3e5ff42474 - Fix [Popup class declares member name _current but use current instead](https://github.com/wekan/wekan/issues/2059).
Thanks to peishaofeng !

Closes #2059
2018-12-16 11:06:29 +02:00
Lauri Ojansivu e135af8c37 Merge branch 'edge' into meteor-1.8 2018-12-16 00:43:25 +02:00
Lauri Ojansivu 9366eaf374 - Fix typo.
Thanks to xet7 !
2018-12-16 00:42:13 +02:00
Lauri Ojansivu 61eb0e7acd Merge branch 'edge' into meteor-1.8 2018-12-15 22:45:36 +02:00
Lauri Ojansivu cb4c93a632 v1.91 2018-12-15 22:44:25 +02:00
Lauri Ojansivu adaffd7189 - [Add back mquandalle:perfect-scrollbar package so that Firefox and Chrome
stop complaning in browser dev tools console](https://github.com/wekan/wekan/issues/2057).

Thanks uusijani and xet7 !

Closes #2057
2018-12-15 22:41:10 +02:00
Lauri Ojansivu 821dc22e80 - Add back mquandalle:perfect-scrollbar package so that Firefox and Chrome
stop complaning in browser dev tools console.

Thanks to uusijani and xet7 !

Closes #2057
2018-12-15 22:36:15 +02:00
Lauri Ojansivu 0b841f2e05 Merge branch 'edge' into meteor-1.8 2018-12-15 22:03:10 +02:00
Lauri Ojansivu b0a71e96cc v1.90 2018-12-15 22:01:57 +02:00
Lauri Ojansivu 40e156992a - [Remove not working duplicate saveMailServerInfo](https://github.com/wekan/wekan/commit/ab031d9da134aa13490a26dbe97ad2d7d01d534a),
to remove error from browser dev tools console.

Thanks to xet7 !
2018-12-15 21:59:29 +02:00
Lauri Ojansivu ab031d9da1 - Remove not working duplicate saveMailServerInfo, to remove
error from browser dev tools console.

Thanks to xet7 !
2018-12-15 21:55:20 +02:00
Lauri Ojansivu 9662267628 Merge branch 'edge' into meteor-1.8 2018-12-15 20:53:47 +02:00
Lauri Ojansivu 209a76c5ce v1.89 2018-12-15 20:52:11 +02:00
Lauri Ojansivu 4bd74b5817 - Admin Panel / Layout / Custom Product Name [now changes webpage title](https://github.com/wekan/wekan/commit/dbb1a86ca377e551063cc04c5189fad4aa9148c0).
Related #1196

Thanks to xet7 !
2018-12-15 20:46:47 +02:00
Lauri Ojansivu dbb1a86ca3 - Admin Panel / Layout / Custom Product Name now changes webpage title.
Thanks to xet7 !

Related #1196
2018-12-15 20:39:01 +02:00
Lauri Ojansivu 34f2e4466e Merge branch 'edge' into meteor-1.8 2018-12-14 23:34:06 +02:00
Lauri Ojansivu c066883dbd v1.88 2018-12-14 23:31:17 +02:00
Lauri Ojansivu 0b6b6dc7fd - Fix: [Scrollbar used](https://github.com/wekan/wekan/issues/2056) [remote file from CDN](https://github.com/MaazAli/Meteor-Malihu-Custom-Scrollbar/blob/master/jquery.mCustomScrollbar.js#L50),
so forked package to https://github.com/wekan/wekan-scrollbar and included
  non-minified file locally to Wekan, so that using scrollbar works without direct connection
  to Internet. Wekan should not load any external files by default, as was case before
  new scrollbar, and is again now [after this fix](https://github.com/wekan/wekan/commit/c546464d9f56117a8bf580512cd62fc1102559c3).

Thanks to xet7 !

Closes #2056
2018-12-14 23:27:22 +02:00
Lauri Ojansivu c546464d9f - Because scrollbar uses [remote file from CDN](https://github.com/MaazAli/Meteor-Malihu-Custom-Scrollbar/blob/master/jquery.mCustomScrollbar.js#L50),
fork package to https://github.com/wekan/wekan-scrollbar and include
  non-minified file locally to Wekan, so that using scrollbar works without direct connection
  to Internet. Wekan should not load any external files by default, as was case before
  new scrollbar, and is again now after this fix.

Closes #2056
2018-12-14 23:13:15 +02:00
Jose Fuentes 7b3e2c58e2 Pipefail error 2018-12-14 11:06:00 +01:00
Jose Fuentes d6127082e9 Add stacksmith scripts 2018-12-13 20:27:35 +01:00
Lauri Ojansivu 73f288cd9b Merge branch 'edge' into meteor-1.8 2018-12-13 20:15:16 +02:00
Lauri Ojansivu 67a5fdaf96 v1.87 2018-12-13 20:13:50 +02:00
Lauri Ojansivu af9156b18a Update translations (es). 2018-12-13 20:12:03 +02:00
Lauri Ojansivu 7af20fd2d9 - Fix Reference error.
Thanks to Akuket !
2018-12-13 20:10:00 +02:00
Lauri Ojansivu 2a5a428bc0 - Fix Reference error.
Thanks to Akuket !
2018-12-13 20:07:55 +02:00
Lauri Ojansivu 622f1360bb Merge branch 'edge' into meteor-1.8 2018-12-13 14:41:42 +02:00
Lauri Ojansivu 4b7d47465a v1.86 2018-12-13 14:40:16 +02:00
Lauri Ojansivu 5f4e2d8e06 - Fix [Cannot login with new LDAP account when auto-registration disabled (request invitation code)](https://github.com/wekan/wekan-ldap/issues/29);
- Fix [Unable to create new account from LDAP](https://github.com/wekan/wekan-ldap/issues/32).

Thanks to Akuket !
2018-12-13 14:34:11 +02:00
Lauri Ojansivu f8ef8507b5 - Fix [Cannot login with new LDAP account when auto-registration disabled (request invitation code)](https://github.com/wekan/wekan-ldap/issues/29);
- Fix [Unable to create new account from LDAP](https://github.com/wekan/wekan-ldap/issues/32).

Thanks to Akuket !

Closes wekan/wekan-ldap#29,
closes wekan/wekan-ldap#32
2018-12-13 14:27:34 +02:00
Lauri Ojansivu 2ae143e6da Update translations. 2018-12-13 14:10:55 +02:00
Lauri Ojansivu 4ecdf7558f Merge branch 'edge' into meteor-1.8 2018-12-09 01:45:24 +02:00
Lauri Ojansivu 38e8f52293 Add missing text about bugs fixes. 2018-12-09 01:44:08 +02:00
Lauri Ojansivu 25fac166cf Merge branch 'edge' into meteor-1.8 2018-12-09 00:51:50 +02:00
Lauri Ojansivu b143fc9297 v1.85 2018-12-09 00:49:07 +02:00
Lauri Ojansivu dd10f78401 Merge branch 'hupptechnologies-scrollbar-closes-card-chrome' into devel 2018-12-09 00:44:47 +02:00
Lauri Ojansivu 90208b774a - Fix [Clicking the scrollbar closes the card on Chrome](https://github.com/wekan/wekan/issues/1404)
by changing [mquandalle:perfect-scrollbar to malihu-jquery-custom-scrollbar](https://github.com/wekan/wekan/pull/2050).
  that works also when clicking scrollbar in Chrome. Also added back required packages that were removed in PR.

Thanks to hupptechnologies and xet7 !
2018-12-09 00:43:21 +02:00
Lauri Ojansivu bc35d9fe1a - Fix [Clicking the scrollbar closes the card on Chrome](https://github.com/wekan/wekan/issues/1404)
by changing [mquandalle:perfect-scrollbar to malihu-jquery-custom-scrollbar](https://github.com/wekan/wekan/pull/2050).
  that works also when clicking scrollbar in Chrome. Also added back required packages that were removed in PR.

Thanks to hupptechnologies and xet7 !

Closes #1404
2018-12-09 00:33:36 +02:00
Lauri Ojansivu 472d637c9f Merge branch 'scrollbar-closes-card-chrome' of https://github.com/hupptechnologies/wekan into hupptechnologies-scrollbar-closes-card-chrome 2018-12-09 00:21:35 +02:00
Lauri Ojansivu 20c86613a7 Update translations (ru). 2018-12-09 00:16:48 +02:00
hupptechnologies 5ac69ed7de Fix lineter issue 2018-12-08 18:05:59 +05:30
hupptechnologies 0620fe5e11 Issue : Clicking the scrollbar closes the card on Chrome #1404
Resolved #1404
2018-12-08 17:53:26 +05:30
hupptechnologies 44a819226f Merge branch 'devel' into edge 2018-12-08 17:20:56 +05:30
Lauri Ojansivu cf2cf7898a - Fix lint warning.
Thanks to xet7 !
2018-12-07 06:18:46 +02:00
Lauri Ojansivu 66d1546081 Merge branch 'edge' into meteor-1.8 2018-12-07 05:23:00 +02:00
Lauri Ojansivu ee212b69a9 v1.84 2018-12-07 05:20:06 +02:00
Lauri Ojansivu 87d91560f8 Update translations (ru). 2018-12-07 05:11:08 +02:00
Lauri Ojansivu bccca00aaf - Fix 2/8: IFTTT Rule action/trigger ["Remove all members from the card"](https://github.com/wekan/wekan/issues/1972).
Thanks to BurakTuran9 !
2018-12-07 05:07:22 +02:00
Lauri Ojansivu d6e36ed50a - Fix: IFTTT Rule "Remove all members from the card" doesn't work.
Thanks to BurakTuran9 !

Related #1972
2018-12-07 04:57:51 +02:00
Lauri Ojansivu 181b564bf3 Upgrade to meteor 1.8.1-beta.8
Thanks to xet7 !
2018-12-07 04:14:34 +02:00
Lauri Ojansivu 872e503ff8 Merge branch 'edge' into meteor-1.8 2018-12-06 02:01:36 +02:00
Lauri Ojansivu 83f7fa768d v1.83 2018-12-06 01:59:37 +02:00
Lauri Ojansivu 2d49006aee - Fix IFTTT Rule action/trigger part 1 of 7: [When a checklist is completed](https://github.com/wekan/wekan/issues/1972).
And partial incomplete fix to when all of checklist is set as uncompleted. Help in fixing welcome.

Thanks to BurakTuran9 and xet7 !

Related #1972
2018-12-06 01:55:02 +02:00
Lauri Ojansivu c2e58dcb62 - Partial fix to unchecked rule, and tips for fixing.
Related #1972
2018-12-06 01:49:57 +02:00
Lauri Ojansivu f154c5e521 Update translations. 2018-12-05 15:45:42 +02:00
Lauri Ojansivu eadbebb4fa - Fix IFTTT Rule action/trigger: When a checklist is completed/made incomplete.
Thanks to BurakTuran9 !

Related #1972
2018-12-05 15:45:10 +02:00
Lauri Ojansivu 40cf1c7549 - Fix IFTTT Rule action/trigger: When a checklist is completed/made incomplete.
Thanks to BurakTuran9 !

Related #1972
2018-12-05 15:21:24 +02:00
Lauri Ojansivu 38012903b8 Merge branch 'edge' into meteor-1.8 2018-12-05 08:59:59 +02:00
Lauri Ojansivu 9c4e305a84 v1.82 2018-12-05 08:53:40 +02:00
Lauri Ojansivu 167197fcda - Partially #2045 revert, continue.
Thanks to xet7 !
2018-12-05 08:47:48 +02:00
Lauri Ojansivu e3a40aca6f This release fixes the following bugs:
- Partially #2045 revert [Improve authentication](https://github.com/wekan/wekan/issues/2016),
  adding back password/LDAP dropdown, because login did now work.
  NOTE: This was added in v1.71, reverted at v1.73 because login did not work, added back at v1.79,
  and then reverted partially at v1.82 because login did not work.
  Related LDAP logout timer does not work yet.

Thanks to xet7 !
2018-12-05 08:20:59 +02:00
Lauri Ojansivu 6ab699d650 Merge branch 'edge' into meteor-1.8 2018-12-04 22:34:22 +02:00
Lauri Ojansivu 0611e0c4bd Add text about fixing bugs. 2018-12-04 22:32:30 +02:00
Lauri Ojansivu d6857693bb v1.81 2018-12-04 22:30:54 +02:00
Lauri Ojansivu b5ccf7a58f - Remove extra commas , and add missing backslash \.
Maybe after that login, logout and CORS works.

Thanks to xet7 !

Related #2045,
related wekan/wekan-snap#69
2018-12-04 22:23:49 +02:00
Lauri Ojansivu bfca1822a0 - Remove extra commas , and add missing backslash \.
Maybe after that login, logout and CORS works.

Thanks to xet7 !

Related #2045,
related wekan/wekan-snap#69
2018-12-04 22:20:24 +02:00
Lauri Ojansivu af6513ccc7 Merge branch 'edge' into meteor-1.8 2018-12-03 18:26:01 +02:00
Lauri Ojansivu 30151de269 v1.80 2018-12-03 18:22:41 +02:00
Lauri Ojansivu fe7c4528d7 - Upgrade Node from v8.12 to v8.14
- Revert non-working architectures that were added at v1.79, so now Wekan is just amd64 as before.

Thanks to xet7 !
2018-12-03 18:19:25 +02:00
Lauri Ojansivu 30fe263bfe Merge branch 'edge' into meteor-1.8 2018-12-03 16:32:05 +02:00
Lauri Ojansivu 40367995e7 v1.79 2018-12-03 16:29:58 +02:00
Lauri Ojansivu b75fafc5f2 - Add CORS https://enable-cors.org/server_meteor.html
- Add missing LDAP and TIMER environment variables.

Thanks to xet7 !

Closes wekan/wekan-snap#69
2018-12-03 16:20:04 +02:00
Lauri Ojansivu b788deb002 - Add CORS https://enable-cors.org/server_meteor.html
- Add missing LDAP and TIMER environment variables.

Thanks to xet7 !

Closes wekan/wekan-snap#69
2018-12-03 16:05:24 +02:00
Lauri Ojansivu fa6b2e5679 - Improve authentication. Thanks to Akuket. 2018-12-03 11:31:03 +02:00
Lauri Ojansivu 70fd1ce57d Fix lint errors. 2018-12-03 11:18:54 +02:00
Lauri Ojansivu 97158de70f Merge branch 'Akuket-devel' into edge 2018-12-02 23:30:10 +02:00
Lauri Ojansivu 926faf0031 Merge branch 'devel' of https://github.com/Akuket/wekan into Akuket-devel 2018-12-02 23:28:39 +02:00
Lauri Ojansivu 228996412c - Fix wrong dates in ChangeLog.
Thanks to kelvinhammond !
2018-12-02 23:24:32 +02:00
Lauri Ojansivu c9c1464c79 Merge pull request #2041 from kelvinhammond/patch-1
Updated CHANGELOG.md - Fixed 2018-20-24 dates
2018-12-02 23:22:58 +02:00
Lauri Ojansivu 30c80f167c Update translations. 2018-12-02 23:19:51 +02:00
Lauri Ojansivu af9ca9b6c4 - Build snap also on i386, armhf and arm64. Ignore if it fails.
Most likely armhf and arm64 does not build yet, I will add fixes later.

Thanks to xet7 !
2018-12-02 23:17:14 +02:00
Lauri Ojansivu 3e03f557cf - Build snap also on i386, armhf and arm64. Ignore if it fails.
Most likely armhf and arm64 does not build yet, I will add fixes later.

Thanks to xet7 !

Related #1503,
related wekan/wekan-snap#46
2018-12-02 23:12:45 +02:00
Kelvin f19dc77d2c Updated CHANGELOG.md - Fixed 2018-20-24 dates 2018-12-01 23:43:37 -05:00
hupptechnologies 1bad630641 autoamted local change 2018-11-27 12:57:03 +05:30
hupptechnologies 8a9a82fc80 Pull code 2018-11-24 16:30:12 +05:30
guillaume 745bd7e806 finish prepare for test 2018-11-23 18:04:05 +01:00
Lauri Ojansivu 51cf57025d Merge branch 'meteor-1.8' of github.com:wekan/wekan into meteor-1.8 2018-11-23 16:39:43 +02:00
Lauri Ojansivu 28884cb409 Merge branch 'devel' into meteor-1.8 2018-11-23 16:39:28 +02:00
Lauri Ojansivu cdb44da71e - Fix: Message box for deleting subtask unreachable.
Thanks to hupptechnologies. Closes #1800
2018-11-23 16:37:34 +02:00
Lauri Ojansivu 064a2deaaf - Fix: Message box for deleting subtask unreachable.
Thanks to hupptechnologies !

Closes #1800
2018-11-23 16:30:18 +02:00
Lauri Ojansivu a085ed1e1b Update translations. 2018-11-22 23:41:50 +02:00
guillaume f23448be33 revert changes for patch authentication 2018-11-22 18:00:21 +01:00
Lauri Ojansivu 6e29152b76 Merge branch 'edge' into meteor-1.8 2018-11-20 22:52:24 +02:00
Lauri Ojansivu a27c16e434 v1.78 2018-11-20 22:50:44 +02:00
Lauri Ojansivu d5be48b905 Update translations. 2018-11-20 22:49:04 +02:00
Lauri Ojansivu 7432af67c1 v1.77 2018-11-20 22:45:42 +02:00
Lauri Ojansivu 0defff70af Merge branch 'edge' into meteor-1.8 2018-11-20 12:26:02 +02:00
Lauri Ojansivu 24b61cf772 v1.76 2018-11-20 12:24:38 +02:00
Lauri Ojansivu cc64ef903f - Add [LDAP_FULLNAME_FIELD](https://github.com/wekan/wekan-ldap/issues/10) to
[configs](https://github.com/wekan/wekan/commit/8e3f53021775069dba125efd4b7200d0d70a1ed1)
  and other options that were not in all config files. Thanks to alkemyst and xet7.
2018-11-20 12:19:05 +02:00
Lauri Ojansivu 8e3f530217 - Add [LDAP_FULLNAME_FIELD](https://github.com/wekan/wekan-ldap/issues/10). Thanks to alkemyst and xet7.
Closes wekan/wekan-ldap#21,
closes wekan/wekan-ldap#10
2018-11-20 12:11:37 +02:00
Lauri Ojansivu f9b272c223 - Fix: When saving Custom Layout, save also SMTP settings. Thanks to xet7. 2018-11-20 11:38:39 +02:00
Lauri Ojansivu f0232fb5cb - Fix: When saving Admin Panel / Layout, save also SMTP settings.
Thanks to xet7 !
2018-11-20 11:35:14 +02:00
Lauri Ojansivu d93efd9e9b Merge branch 'edge' into meteor-1.8 2018-11-20 02:46:35 +02:00
Lauri Ojansivu f84bad13b4 v1.75 2018-11-20 02:45:03 +02:00
Lauri Ojansivu b72a68705c Update translations. 2018-11-20 02:42:14 +02:00
Lauri Ojansivu dd6ba152a0 Admin Panel / Layout: Hide Logo: Yes / No. This does hide Wekan logo on Login page and Board page. Thanks to xet7. 2018-11-20 02:38:00 +02:00
Lauri Ojansivu eab46523ee Merge branch 'edge' into meteor-1.8 2018-11-19 23:29:49 +02:00
Lauri Ojansivu cb9ced756f - [Fix Snap database-list-backups command](https://github.com/wekan/wekan-snap/issues/26). Thanks to WaryWolf.
Closes wekan/wekan-snap#26
2018-11-19 23:28:37 +02:00
Lauri Ojansivu c4473f3515 Merge branch 'edge' into meteor-1.8 2018-11-19 23:12:46 +02:00
Lauri Ojansivu dbf3a48b5f Update GitHub issue template for LDAP and Snap issues elsewhere. 2018-11-19 23:11:37 +02:00
Lauri Ojansivu 8b3f8ac501 Merge branch 'edge' into meteor-1.8 2018-11-19 15:09:10 +02:00
Lauri Ojansivu b5d1799f5a v1.74.1
- Full Name from LDAP server via environment variable. Thanks to alkemyst.

Closes wekan/wekan-ldap#10
2018-11-18 20:15:18 +02:00
Lauri Ojansivu fb2e8b4a31 Merge branch 'devel' into meteor-1.8 2018-11-17 17:44:11 +02:00
Lauri Ojansivu d4ec0cc647 v1.74 2018-11-17 17:41:31 +02:00
Lauri Ojansivu 871e229fae Merge branch 'edge' into meteor-1.8 2018-11-17 16:58:27 +02:00
Lauri Ojansivu 21a8c7cc45 v1.73 2018-11-17 16:57:12 +02:00
Lauri Ojansivu aa691b0af1 - Revert Improve authentication to [fix Login failure](https://github.com/wekan/wekan/issues/2004).
Thanks to xet7 !

Closes #2004
2018-11-17 16:50:42 +02:00
Lauri Ojansivu e1b3f38315 Merge branch 'edge' into meteor-1.8 2018-11-17 15:22:47 +02:00
Lauri Ojansivu 7a75d82114 v1.72 2018-11-17 15:20:33 +02:00
Lauri Ojansivu 4daf69e4b6 Update translations. 2018-11-17 15:15:50 +02:00
Lauri Ojansivu b8b1512e26 Merge branch 'edge' into meteor-1.8 2018-11-17 14:51:22 +02:00
Lauri Ojansivu 960b33c3d9 v1.71 2018-11-17 00:30:49 +02:00
Lauri Ojansivu 685eb0f22c - [Improve shell scripts](https://github.com/wekan/wekan/pull/2002). Thanks to warnerjon12. 2018-11-16 22:00:50 +02:00
Lauri Ojansivu 81a51c8dfc Merge branch 'warnerjon12-devel' into devel 2018-11-16 21:55:32 +02:00
Lauri Ojansivu 75c1dff1f8 Merge branch 'devel' of https://github.com/warnerjon12/wekan into warnerjon12-devel 2018-11-16 21:54:16 +02:00
Lauri Ojansivu cb24b85191 Improve authentication. Thanks to Akuket. 2018-11-16 21:48:53 +02:00
Lauri Ojansivu 3aec8087f7 Fix lint errors. 2018-11-16 21:32:01 +02:00
Lauri Ojansivu 39ff51ef96 Merge branch 'Akuket-devel' into devel 2018-11-16 21:28:19 +02:00
Lauri Ojansivu 033a9482fc Merge branch 'devel' of https://github.com/Akuket/wekan into Akuket-devel 2018-11-16 21:26:07 +02:00
Lauri Ojansivu 017017623f Fix typo. 2018-11-16 21:22:41 +02:00
Lauri Ojansivu 4b53a532bd Update readme for clarity. 2018-11-16 21:17:06 +02:00
Lauri Ojansivu 6df296da47 - Rename Recycle Bin to Archive.
Thanks to xet7 !
2018-11-16 21:14:10 +02:00
Lauri Ojansivu 9f5d04de27 - Add language: Danish.
Thanks to translators.
2018-11-16 21:12:06 +02:00
Lauri Ojansivu c11b91d32a - Update translations.
- Add language: Swahili / Kiswahili.

Thanks to translators.
2018-11-16 21:04:58 +02:00
Lauri Ojansivu e266902ba9 Update translations. 2018-11-13 13:39:30 +02:00
Lauri Ojansivu b919eb23ab Rename Recycle Bin to Archive.
Closes #1784,
closes #1489
2018-11-13 12:17:46 +02:00
Jonathan Warner 22a9e783c9 Revised shell scripts to check for wekan repository
The scripts used to assume that ~/repos/wekan was a local wekan repo.
They now check that the active directory is a wekan repo.
2018-11-12 05:45:51 -07:00
Jonathan Warner d4e75165dd Revised rebuild-wekan.sh to work correctly with npm
The use of sudo npm is bugged. This is a workaround patch.
Fixes issue #2001
2018-11-12 05:45:42 -07:00
Lauri Ojansivu 73daf191ae Update translations. 2018-11-11 20:20:19 +02:00
Lauri Ojansivu 329471e7e3 Fix typo. 2018-11-10 04:12:56 +02:00
Lauri Ojansivu 644e2c334f Fix IRC link ;) 2018-11-10 03:36:26 +02:00
Lauri Ojansivu 16d925e588 Reorganize readme. 2018-11-10 02:47:01 +02:00
Lauri Ojansivu 0daa6d3f7b Update readme for clarity. 2018-11-10 02:41:27 +02:00
Lauri Ojansivu 3300c69a03 Merge branch 'edge' into meteor-1.8 2018-11-09 21:58:31 +02:00
Lauri Ojansivu e3b3e8b8c6 v1.70 2018-11-09 21:44:50 +02:00
Lauri Ojansivu ddef1ea89c Update translations. 2018-11-09 21:18:17 +02:00
Lauri Ojansivu 8ddf136928 Update changelog based on previous commits. 2018-11-09 20:54:27 +02:00
guillaume 893329d9c6 patch authentication 2018-11-09 17:46:02 +01:00
guillaume cb091c8a54 Merge https://github.com/wekan/wekan into devel 2018-11-09 14:12:17 +01:00
Lauri Ojansivu 043f9813ef Update translations. 2018-11-08 23:41:11 +02:00
Lauri Ojansivu 717891bee9 Merge remote-tracking branch 'origin/edge' into devel 2018-11-08 23:18:10 +02:00
Lauri Ojansivu 508f47f940 - Fix typo. 2018-11-08 23:17:26 +02:00
Lauri Ojansivu e4c0623cf7 Merge branch 'tugal-devel' into devel 2018-11-08 23:15:21 +02:00
Lauri Ojansivu 4cf9813449 - Some fixes to Wekan import:
- isCommentOnly and isNoComments are now optional
  - Turn off import error checking, so something is imported anyway, and import does not stop at error.
  - Now most of Sandstorm export do import to Standalone Wekan, but some of imported cards, dates etc are missing.
  - Sandstorm Import Wekan board warning messages are now translateable.

Thanks to xet7 !

Closes #1945,
closes #1616,
closes #1903
2018-11-08 22:49:08 +02:00
Lauri Ojansivu d44fb6bedd Update translations. 2018-11-07 23:20:10 +02:00
Nunes Nelson f2dd725eff custom fields upgrade -- correct 2018-11-07 18:23:28 +01:00
guillaume 3646a9c259 Logout with timer 2018-11-06 17:48:12 +01:00
guillaume 8c497efb46 patch authentication 2018-11-06 11:28:35 +01:00
Nunes Nelson a82aa87850 custom fields upgrade 2018-11-05 21:46:57 +01:00
Lauri Ojansivu 09a95dfef6 v1.69.2 2018-11-05 15:46:43 +02:00
Lauri Ojansivu ea141f62d7 Update meteor 2018-11-05 15:43:35 +02:00
Lauri Ojansivu 68e5909c96 - Add more options to start-wekan.bat 2018-11-04 18:47:18 +02:00
Lauri Ojansivu 4c2857b6e8 Add build scripts. 2018-11-04 18:32:08 +02:00
Lauri Ojansivu 6f2275e8cb v1.69 2018-11-03 18:18:02 +02:00
Lauri Ojansivu d42d7a89fb Update translations. 2018-11-03 18:13:41 +02:00
Lauri Ojansivu cba8b56cb5 v1.68 2018-11-03 11:00:16 +02:00
Lauri Ojansivu ece009f556 Update translations (hi). 2018-11-03 10:58:17 +02:00
Lauri Ojansivu 53ed1f1a2c v1.67 2018-11-03 10:41:33 +02:00
Lauri Ojansivu 22a09f3e7d - Hide Linked Card and Linked Board on Sandstorm, because they are only
useful when having multiple boards, and at Sandstorm
  there is only one board per grain. Thanks to ocdtrekkie and xet7.

Closes #1982
2018-11-03 10:37:22 +02:00
Lauri Ojansivu dda36f4eb3 - Hide Linked Card and Linked Board on Sandstorm, because they are only
useful when having multiple boards, and at Sandstorm
  there is only one board per grain. Thanks to ocdtrekkie and xet7.

Closes #1982
2018-11-03 10:25:31 +02:00
Lauri Ojansivu 8c6c089363 - Add Hindi language. Thanks to saurabharch. 2018-11-03 09:53:58 +02:00
Lauri Ojansivu 997a902ae4 Add hindi language. 2018-11-03 09:51:53 +02:00
Lauri Ojansivu defcfed272 v1.66 2018-10-31 22:03:30 +02:00
Lauri Ojansivu 0f1b157bda Update translations. 2018-10-31 21:59:41 +02:00
Lauri Ojansivu 7188879567 - [Fix typo about ldaps](https://github.com/wekan/wekan/pull/1980).
Documentation said to set LDAP_ENCRYPTION to true if we want to use
  ldaps, but the code in wekan-ldap does not check if it is set to true,
  but if the value equals to 'ssl' instead. Thanks to imkwx.
2018-10-31 21:58:13 +02:00
Lauri Ojansivu c753d40f6c - Fix typo about ldaps.
Documentation said to set LDAP_ENCRYPTION to true if we want to use
  ldaps, but the code in wekan-ldap does not check if it is set to true,
  but if the value equals to 'ssl' instead. Thanks to imkwx.
2018-10-31 21:57:05 +02:00
Lauri Ojansivu 706436b638 Merge pull request #1980 from imkwx/devel
Fix typo about ldaps
2018-10-31 20:29:30 +02:00
Robin BRUCKER 13aab4d410 Fix typo about ldaps
Documentation said to set LDAP_ENCRYPTION to true if we want to use
ldaps, but the code in wekan-ldap does not check if it is set to true,
but if the value equals to 'ssl' instead.
2018-10-31 18:59:16 +01:00
Lauri Ojansivu a06fd63690 Fix syntax. 2018-10-30 16:32:58 +02:00
Lauri Ojansivu 07369b9784 Update translations. 2018-10-30 00:07:35 +02:00
Lauri Ojansivu 415e28b471 - Fix typos in CHANGELOG.md, thanks to loginKing !
https://github.com/wekan/wekan/pull/1975
2018-10-30 00:05:24 +02:00
Lauri Ojansivu f62d0530ec Merge pull request #1975 from loginKing/patch-1
Update CHANGELOG.md
2018-10-30 00:03:26 +02:00
loginKing d12561aae9 Update CHANGELOG.md 2018-10-29 16:09:10 +08:00
Lauri Ojansivu d1ab38e57e - Typo fix etc. 2018-10-26 17:15:24 +03:00
Lauri Ojansivu 27bc03d452 docker-compose.yml and docker-compose-build.yml:
- Remove single quotes, because settings are quoted automatically.
- Comment out most settings that have default values.

Thanks to xet7 !
2018-10-26 17:10:14 +03:00
Lauri Ojansivu 9cff76f110 Update translations. 2018-10-26 16:55:19 +03:00
Lauri Ojansivu a5a487caf8 Merge pull request #1974 from Hillside502/patch-1
Update CHANGELOG.md
2018-10-26 15:14:20 +03:00
Hillside502 9cfef8c337 Update CHANGELOG.md
typo
2018-10-26 09:22:08 +00:00
Lauri Ojansivu 46e2679f82 v1.65 2018-10-25 18:30:25 +03:00
Lauri Ojansivu 08383ed22d Update translations (bg). 2018-10-25 18:25:10 +03:00
Lauri Ojansivu 3602d59125 This release adds the [following new features](https://github.com/wekan/wekan/pull/1967), with Apache I-CLA:
- UI: list headers: show the card count smaller in grey color below list name
- UI: lists: only output the number of cards for each swimlane

Thanks to bentiss !
2018-10-25 18:23:03 +03:00
Lauri Ojansivu c72b3a870e Merge branch 'bentiss-ui-fixes' into edge 2018-10-25 18:12:13 +03:00
Lauri Ojansivu 078bab405b Merge branch 'ui-fixes' of https://github.com/bentiss/wekan into bentiss-ui-fixes 2018-10-25 17:31:56 +03:00
Benjamin Tissoires e57269ed57 UI: lists: only output the number of cards for each swimlane 2018-10-25 16:18:02 +02:00
Benjamin Tissoires 05e0fb8fbe UI: list headers: show the card count smaller
The card count was at the same level than the title, which made
reading the list title harder. Use the quiet and small class
to put it in the following line and not make it jump out of the screen
2018-10-25 16:17:30 +02:00
Lauri Ojansivu 500ba88781 v1.64.2 2018-10-25 13:22:42 +03:00
Lauri Ojansivu 7f941840cb - Additional fix to [Impossible to connect to LDAP if UserDN contain space(s)](https://github.com/wekan/wekan/issues/1970).
Thanks to Akuket and xet7 !
2018-10-25 13:19:27 +03:00
Lauri Ojansivu b4670f12a5 v1.64.1 2018-10-25 13:16:15 +03:00
Lauri Ojansivu 2a4eb0bcc2 - Fix: [Impossible to connect to LDAP if UserDN contain space(s)](https://github.com/wekan/wekan/issues/1970).
Thanks to Akuket and xet7 !

Closes #1970
2018-10-25 13:15:15 +03:00
Lauri Ojansivu f2b64c1aaa Remove console.log 2018-10-25 13:09:25 +03:00
Lauri Ojansivu 05b9e825bb - Try to fix: Impossible to connect to LDAP if UserDN contain space(s) #1970
Thanks to Akuket and xet7 !
2018-10-25 12:38:30 +03:00
Lauri Ojansivu 187b4632e6 v1.64 2018-10-24 22:10:58 +03:00
Lauri Ojansivu ce2b8a8d1a Update translations. 2018-10-24 20:09:02 +03:00
Lauri Ojansivu d3517f03f6 v1.63 2018-10-24 19:50:38 +03:00
Lauri Ojansivu 0583bf6df0 REST API: [Allow to remove the full list of labels/members through the API](https://github.com/wekan/wekan/pull/1968), with Apache I-CLA:
- [Models: Cards: an empty string in members or label deletes the list](https://github.com/wekan/wekan/commit/e5949504b7ed42ad59742d2a0aa001fe6c762873).
  There is currently no way to remove all members or all labels attached
  to a card. If an empty string is provided, we can consider as a hint to
  remove the list from the card.
- [Models: Cards: allow singletons to be assigned to members and labelIds](https://github.com/wekan/wekan/commit/2ce1ba37a1d0a09f8b3d2a1db4c8a11d1f98caa0).
  If we need to set only one member or one label, the data provided will
  not give us an array, but the only element as a string.
  We need to detect that and convert the parameter into an array.

Thanks to bentiss !
2018-10-24 19:46:12 +03:00
Lauri Ojansivu d446075239 Merge branch 'bentiss-api-fixes' into edge 2018-10-24 19:36:07 +03:00
Benjamin Tissoires e5949504b7 models: cards: an empty string in members or label deletes the list
There is currently no way to remove all members or all labels attached
to a card. If an empty string is provided, we can consider as a hint to
remove the list from the card.
2018-10-24 16:55:33 +02:00
Benjamin Tissoires 2ce1ba37a1 models: cards: allow singletons to be assigned to members and labelIds
If we need to set only one member or one label, the data provided will
not give us an array, but the only element as a string.
We need to detect that and convert the parameter into an array.
2018-10-24 16:55:27 +02:00
Lauri Ojansivu 6d4ffdd8b4 v1.62 2018-10-24 12:44:45 +03:00
Lauri Ojansivu 8ff2e1f16a - Fix missing dropdown arrow on Chrome. Thanks to xet7 ! Closes #1964 2018-10-24 12:40:40 +03:00
Lauri Ojansivu 09b05ea3fb v1.61 2018-10-24 12:15:11 +03:00
Lauri Ojansivu 90a0478d0b - Fix lint error. Thanks to xet7 ! 2018-10-24 12:13:20 +03:00
Lauri Ojansivu ecb3a18206 v1.60 2018-10-24 12:07:43 +03:00
Lauri Ojansivu e580109dd6 Update translations. 2018-10-24 12:06:33 +03:00
Lauri Ojansivu 9561049668 v1.59 2018-10-24 11:57:16 +03:00
Lauri Ojansivu d4dd646bf4 This release adds the beginning of following new features:
- Custom Product Name in Admin Panel / Layout. In Progress, setting does not affect change UI yet. Thanks to xet7.

and fixes the following bugs:

- Fix LDAP User Search Scope. Thanks to Vnimos and Akuket. Related #119
- Fix Save Admin Panel STMP password. Thanks to saurabharch and xet7. Closes #1856
2018-10-24 11:53:47 +03:00
Lauri Ojansivu 4cb25a5bcf - Custom Product Name in Admin Panel / Layout. In Progress, setting does not affect change UI yet. Thanks to xet7 !
- Fix LDAP User Search Scope. Thanks to Vnimos and Akuket ! Related #119
- Fix Save Admin Panel STMP password. Thanks to saurabharch and xet7 ! Closes #1856
2018-10-24 11:39:45 +03:00
Lauri Ojansivu 82e90f7b94 v1.58 2018-10-23 21:19:48 +03:00
Lauri Ojansivu 760c008f5b Adds [following new features and fixes](https://github.com/wekan/wekan/pull/1962), with Apache I-CLA:
- Also export the cards created with an older wekan instance (without linked cards) (related to #1873);
- Fix the GET customFields API that was failing;
- Allow to directly overwrite the members of cards and boards with a PUT call (this avoids to do multiple calls to add and remove users);
- Allow to change the swimlane of a card from the API.

Thanks to bentiss !
2018-10-23 21:08:04 +03:00
Lauri Ojansivu 54f8d4f308 Merge branch 'bentiss-api-fixes' into edge 2018-10-23 21:02:13 +03:00
Lauri Ojansivu 0de0135619 Merge branch 'api-fixes' of https://github.com/bentiss/wekan into bentiss-api-fixes 2018-10-23 20:44:35 +03:00
Benjamin Tissoires dfdba25ea0 api: add the ability to change the Swimlane of a card 2018-10-23 18:48:05 +02:00
Benjamin Tissoires f61942e5cb models: boards: add PUT members entry point
Allows to change the members from the API.
2018-10-23 18:48:05 +02:00
Benjamin Tissoires 33d4ad76ca models: cards: add members PUT entry point
Allows to change the members from the API
2018-10-23 18:48:05 +02:00
Benjamin Tissoires 53c8e63a09 models: customFields: fix GET api
Calling GET on /api/board/XXXX/customfields
returns a 500 error:

 TypeError: Converting circular structure to JSON
2018-10-23 18:48:01 +02:00
Benjamin Tissoires 9aa5584c9c models: make the REST API more uniform
All of the other REST API are in the form 'modelId' but a few ones in
boards.js and users.js.

Change it for a more uniform API.
2018-10-23 18:02:15 +02:00
Benjamin Tissoires 24f66c9f88 fix cards export
6eeb708e4d (Fix cards export and add customFields export.) is
incomplete as it allows to export newer cards inserted in the db after
the linkedId has been set, but not older cards present in an earlier
version of wekan.

Allow both null and empty value to be retrieved to match all cards.

related #1873
2018-10-23 18:02:15 +02:00
Lauri Ojansivu fa548a4c32 v1.57 2018-10-23 14:21:59 +03:00
Lauri Ojansivu 10bc2c0d1a v1.56 2018-10-23 14:19:31 +03:00
Lauri Ojansivu 5188f2f2c9 - This docker-compose.yml uses prebuilt image.
Thanks to xet7 !
2018-10-23 14:18:17 +03:00
Lauri Ojansivu 1019f6272e - Add separate docker-compose-build.yml
Thanks to xet7 !
2018-10-23 14:17:00 +03:00
Lauri Ojansivu dbd34c3254 Update translations. 2018-10-23 14:16:34 +03:00
Lauri Ojansivu 20af78e50b - Back to Meteor 1.6.0.1 and MongoDB 3.2.21 to make Snap work.
Thanks to xet7 !
2018-10-23 14:15:33 +03:00
Lauri Ojansivu 96151a54fb Merge branch 'devel' into edge 2018-10-23 13:35:32 +03:00
Benjamin Tissoires ccf66905e7 Dockerfile: use set -o xtrace
This allows to see the progress of the generation of the
Docker image.
2018-10-23 11:52:24 +02:00
Lauri Ojansivu ced56ed83f - Add info about using prebuild image.
Thanks to xet7 !
2018-10-17 12:11:26 +03:00
Lauri Ojansivu 790234775f Update translations. 2018-10-17 12:00:51 +03:00
Lauri Ojansivu aac8933186 Update translations. 2018-10-17 11:59:06 +03:00
Lauri Ojansivu 73edfd90a6 v1.55.1 2018-10-16 20:01:55 +03:00
Lauri Ojansivu a168f885d9 Update translations. 2018-10-16 19:58:43 +03:00
Lauri Ojansivu 50136fe314 v1.55 2018-10-16 14:11:33 +03:00
Lauri Ojansivu 6308352f90 Update translations. 2018-10-16 14:05:47 +03:00
Lauri Ojansivu ba5ee34d83 - [Automatically close the sidebar](https://github.com/wekan/wekan/pull/1954).
- [Fix: Update broke the ability to mute notifications](https://github.com/wekan/wekan/issues/1952).

Thanks to Akuket !
2018-10-16 13:57:38 +03:00
Lauri Ojansivu 849f15ceee - Fix: Update broke the ability to mute notifications;
- Automatically close the sidebar.

Thanks to Akuket !

Closes #1952
2018-10-16 13:52:45 +03:00
Lauri Ojansivu 5979fc1d3d - [Automatically close the sidebar](https://github.com/wekan/wekan/pull/1954);
- [Fix: Update broke the ability to mute notifications](https://github.com/wekan/wekan/pull/1954).

Thanks to Akuket !
2018-10-16 13:42:58 +03:00
Lauri Ojansivu 81f98e2da1 Merge branch 'Akuket-edge' into edge 2018-10-16 13:40:17 +03:00
Akuket 50edffee47 Merge branch 'edge' into edge 2018-10-16 11:46:21 +02:00
guillaume 41330b15dc update broke ability to mute notifications 2018-10-16 11:33:16 +02:00
Lauri Ojansivu f5125b76bc v1.54 2018-10-14 00:37:00 +03:00
Lauri Ojansivu ad663d2df9 - [REST API: Get cards by swimlane id](https://github.com/wekan/wekan/pull/1944). Please [add docs](https://github.com/wekan/wekan/wiki/REST-API-Swimlanes).
Thanks to dcmcand !

Closes #1934
2018-10-14 00:19:41 +03:00
Lauri Ojansivu 9faa85a1c3 - [REST API: Get cards by swimlane id](https://github.com/wekan/wekan/pull/1944). Please [add docs](https://github.com/wekan/wekan/wiki/REST-API-Swimlanes).
Thanks to dcmcand !

Closes #1934
2018-10-14 00:18:20 +03:00
Lauri Ojansivu cb98b1326d - [Improve notifications](https://github.com/wekan/wekan/pull/1948).
Thanks to Akuket !

Closes #1304
2018-10-14 00:11:18 +03:00
Lauri Ojansivu e9f8e150e7 - [Improve notifications](https://github.com/wekan/wekan/pull/1948).
Thanks to Akuket !

Closes #1304
2018-10-14 00:09:41 +03:00
Lauri Ojansivu a90f648d5e - [Fix deleting Custom Fields, removing broken references](https://github.com/wekan/wekan/issues/1872).
Thanks to Akuket and Clement87 !

Closes #1872
2018-10-13 23:53:41 +03:00
Lauri Ojansivu 8cd5f7c185 - [Fix deleting Custom Fields, removing broken references](https://github.com/wekan/wekan/issues/1872).
Thanks to Akuket and Clement87 !
2018-10-13 23:51:54 +03:00
Lauri Ojansivu bedd3767ce Update translations. 2018-10-13 23:42:13 +03:00
Lauri Ojansivu 63ee764a9b - [Fix vertical text for swimlanes in IE11](https://github.com/wekan/wekan/issues/1798).
Thanks to tomodwyer !

Closes #1798
2018-10-13 23:37:46 +03:00
Lauri Ojansivu 3dcebe8a9e - [Fix vertical text for swimlanes in IE11](https://github.com/wekan/wekan/issues/1798).
Thanks to tomodwyer !

Closes #1798
2018-10-13 23:33:52 +03:00
Lauri Ojansivu 232685919f - Fix vertical text for swimlanes in IE11
Thanks to tomodwyer !

Closes #1798
2018-10-13 23:27:40 +03:00
Lauri Ojansivu b7f59db03c Merge pull request #1951 from tomodwyer/ie11-fix-swimlanes
Fix vertical text for swimlanes in IE11
2018-10-13 23:23:40 +03:00
Tom O'Dwyer 9e5d016017 Fix vertical text for swimlanes in IE11
https://github.com/wekan/wekan/issues/1798
2018-10-13 18:08:53 +01:00
Lauri Ojansivu 8c8f51a84b Update translations. 2018-10-12 23:28:04 +03:00
Lauri Ojansivu de146f9aaf - Fix lint errors.
Thanks to xet7 !
2018-10-12 23:22:41 +03:00
Lauri Ojansivu 25bb0bfa22 - [Fix deleting Custom Fields, removing broken references](https://github.com/wekan/wekan/issues/1872).
Thanks to Akuket and Clement87 !

Closes #1872
2018-10-12 23:09:52 +03:00
Lauri Ojansivu 00eeb86332 - Remove broken customFields references.
Thanks to Clement87 and Akuket !
2018-10-12 23:04:09 +03:00
Lauri Ojansivu 25ab20bcb4 Merge branch 'edge' of https://github.com/Akuket/wekan into edge 2018-10-12 23:03:03 +03:00
guillaume 5c588b2424 patch for customFields when deleting them 2018-10-12 11:18:11 +02:00
Lauri Ojansivu e77cda938c Merge branch 'Akuket-edge' into edge 2018-10-11 23:48:15 +03:00
Lauri Ojansivu 99793c0a12 - [Improve notifications](https://github.com/wekan/wekan/pull/1948).
Thanks to Akuket !

Closes #1304
2018-10-11 23:47:02 +03:00
Lauri Ojansivu 178beee476 - Fix lint errors.
Note: variable trackingUsers is not used anywhere, so it was removed.

Thanks to xet7 !
2018-10-11 23:41:50 +03:00
Lauri Ojansivu b4402b72ac Merge branch 'edge' of https://github.com/Akuket/wekan into Akuket-edge 2018-10-11 22:47:11 +03:00
guillaume 23a35d9707 improve notifications 2018-10-11 16:46:59 +02:00
guillaume b925b8e74d improve notifications 2018-10-11 16:44:52 +02:00
Lauri Ojansivu 6742dd0585 Update translations. 2018-10-11 15:39:40 +03:00
Lauri Ojansivu 769b1b8110 v1.53.9 2018-10-11 02:07:40 +03:00
Lauri Ojansivu f6040ab43c - Add experimental Docker edge that works.
Thanks to xet7 !
2018-10-11 01:59:47 +03:00
Lauri Ojansivu 11b7ade355 - Try some changes to snap.
Thanks to xet7 !
2018-10-11 01:58:13 +03:00
Lauri Ojansivu 7d39283aec - Try to fix Dockerfile.
Thanks to xet7 !
2018-10-10 19:40:28 +03:00
Lauri Ojansivu f21afdc5f1 - Try to fix Dockerfile
Thanks to xet7 !
2018-10-10 19:33:38 +03:00
Lauri Ojansivu a864223f4a v1.53.8 2018-10-10 19:04:01 +03:00
Lauri Ojansivu b7a74e25bc - Try to fix Docker.
Thanks to xet7 !
2018-10-10 19:02:03 +03:00
Lauri Ojansivu 219091eb5e v1.53.7 2018-10-10 18:50:41 +03:00
Lauri Ojansivu 74a89e6610 - Try MongoDB 4.0.3
Thanks to xet7 !
2018-10-10 18:48:24 +03:00
Lauri Ojansivu 371ce30462 v1.53.6 2018-10-10 17:34:45 +03:00
Lauri Ojansivu 1b65cbd3db - Try to get latest npm. 2018-10-10 17:31:52 +03:00
Lauri Ojansivu b63ba110b8 Update translations. 2018-10-10 17:28:19 +03:00
Lauri Ojansivu 5f4f447539 - [Add LDAP to Snap Help](https://github.com/wekan/wekan/commit/809c8f64f69721d51b7d963248a77585867fac53).
Thanks to GitHub user Akuket for contributions.

Related #119
2018-10-10 17:27:48 +03:00
Lauri Ojansivu 809c8f64f6 - Add LDAP to Snap Help.
Thanks to Akuket !

Related #119
2018-10-10 17:24:05 +03:00
Lauri Ojansivu beaf20d256 v1.53.5 2018-10-10 17:09:06 +03:00
Lauri Ojansivu 644376a356 - Try to fix snap.
Thanks to xet7 !
2018-10-10 17:06:11 +03:00
Lauri Ojansivu db757f20b3 Try to fix snap 2018-10-10 16:57:07 +03:00
Lauri Ojansivu 961d9dcbdb v1.53.4 2018-10-10 16:28:02 +03:00
Lauri Ojansivu 0b971b6ddb - Upgrade hoek.
Thanks to xet7 !
2018-10-10 16:25:24 +03:00
Lauri Ojansivu ffdd6ff806 v1.53.3 2018-10-10 16:01:17 +03:00
Lauri Ojansivu 2b2315032d - [Upgrade](https://github.com/wekan/wekan/issues/1522) to [Meteor](https://blog.meteor.com/meteor-1-8-erases-the-debts-of-1-7-77af4c931fe3) [1.8.1-beta.0](https://github.com/meteor/meteor/issues/10216).
with [these](https://github.com/wekan/wekan/commit/079e45eb52a0f62ddb6051bf2ea80fac8860d3d5)
  [commits](https://github.com/wekan/wekan/commit/dd47d46f4341a8c4ced05749633f783e88623e1b). So now it's possible to use MongoDB 2.6 - 4.0.

Thanks to xet7 !
2018-10-10 15:57:46 +03:00
Lauri Ojansivu dd47d46f43 - Use Meteor 1.8.1-beta.0
Thanks to xet7 !
2018-10-10 15:39:54 +03:00
Lauri Ojansivu 079e45eb52 - Trying Meteor 1.8.1-beta.0
Thanks to xet7 !
2018-10-10 14:58:52 +03:00
Lauri Ojansivu 55aea69948 - Remove whitespace.
Thanks to xet7 !
2018-10-10 01:44:56 +03:00
Lauri Ojansivu fc5c2f40ba v1.53.2 2018-10-10 01:43:18 +03:00
Lauri Ojansivu f599391419 - Add LDAP package to Docker and Snap.
Thanks to xet7 !
2018-10-10 01:38:59 +03:00
Lauri Ojansivu ab0e1b3203 v1.53.1 2018-10-10 01:16:02 +03:00
Lauri Ojansivu 1dda8bff5e Merge branch 'dcmcand-dcmcand-dev' into edge 2018-10-10 00:49:07 +03:00
Lauri Ojansivu 1db6efa9c8 - [REST API: Get cards by swimlane id](https://github.com/wekan/wekan/pull/1944). Please [add docs](https://github.com/wekan/wekan/wiki/REST-API-Swimlanes).
Thanks to dcmcand !

Closes #1934
2018-10-10 00:46:18 +03:00
Lauri Ojansivu d4774d398e - Fix lint error: tab to spaces.
Thanks to xet7 !
2018-10-10 00:40:42 +03:00
Lauri Ojansivu 04f5bda70a Merge branch 'dcmcand-dev' of https://github.com/dcmcand/wekan into dcmcand-dcmcand-dev 2018-10-10 00:36:42 +03:00
Lauri Ojansivu f11c8727d9 Update translations. 2018-10-10 00:26:11 +03:00
Lauri Ojansivu 9e120cd44b - [Add LDAP support and authentications dropdown menu on login page](https://github.com/wekan/wekan/pull/1943).
Thanks to Akuket !
2018-10-10 00:21:18 +03:00
Lauri Ojansivu bf42372eef Merge branch 'Akuket-edge' into edge 2018-10-10 00:14:51 +03:00
Lauri Ojansivu 5e9bf61d3f - Use existing translation of "Back".
Thanks to xet7 !
2018-10-10 00:11:32 +03:00
Lauri Ojansivu 3a7ae7c5f2 Fix lint errors. 2018-10-09 21:16:47 +03:00
Chuck McAndrew be42b8d4cb Add route to get cards by swimlaneid 2018-10-09 15:05:57 +00:00
Akuket 28a01862d0 Merge branch 'edge' into edge 2018-10-09 14:49:12 +02:00
guillaume 3b4f285fea add ldap support | simplify authentications 2018-10-09 14:14:39 +02:00
Lauri Ojansivu 58855ada97 - Fix lint errors and warnings.
Thanks to xet7 !
2018-10-08 00:44:02 +03:00
Lauri Ojansivu 5d0b23ee3f - [Feature rules: fixes and enhancements](https://github.com/wekan/wekan/pull/1936).
Thanks to Angtrim !
2018-10-08 00:29:36 +03:00
Lauri Ojansivu 9cd980d9e6 Merge branch 'Angtrim-feature-rules' into edge
Closes #1912
2018-10-08 00:26:25 +03:00
Lauri Ojansivu d516ecb20c Update translations. 2018-10-08 00:13:38 +03:00
Lauri Ojansivu d91e0358f3 Merge branch 'feature-rules' of https://github.com/Angtrim/wekan into Angtrim-feature-rules 2018-10-08 00:06:55 +03:00
Angelo Gallarello 6931b88e40 Prevent rules with no name 2018-10-07 18:19:51 +02:00
Angelo Gallarello d0735e1d8e Fixed rules conflicts 2018-10-07 18:10:01 +02:00
Angelo Gallarello 506b95107c Fixed uppercase rules details 2018-10-07 17:55:24 +02:00
Angelo Gallarello 02422cc8f2 Fixed language source typo 2018-10-07 17:50:08 +02:00
Angelo Gallarello f19948f993 Added back button 2018-10-07 17:47:01 +02:00
Angelo Gallarello ebd884e654 Fixed lint errors 2018-10-07 17:27:26 +02:00
Lauri Ojansivu a2866ce6f3 Update translations (pt-BR). 2018-10-06 15:06:56 +03:00
Lauri Ojansivu 4c6c6ffb16 Update translations (pt-BR). 2018-10-06 14:01:21 +03:00
Lauri Ojansivu 525a6defd9 Merge branch 'devel' of github.com:wekan/wekan into devel 2018-10-03 21:34:18 +03:00
Lauri Ojansivu 1623ef65bb v1.53 2018-10-03 21:34:00 +03:00
Lauri Ojansivu 76bff73121 - Add info about edge.
Thanks to xet7 !
2018-10-03 21:24:02 +03:00
Lauri Ojansivu 22077af137 - Add info about stable and edge.
Thanks to xet7 !
2018-10-03 19:25:11 +03:00
Lauri Ojansivu a26f9bc1e7 - [OpenShift: Drop default namespace value and duplicate WEKAN_SERVICE_NAME parameter](https://github.com/wekan/wekan/pull/1930);
Thanks to lberk and InfoSec812 !
2018-10-03 18:15:01 +03:00
Lauri Ojansivu 56c7b3d00f - [OpenShift: Drop default namespace value and duplicate WEKAN_SERVICE_NAME parameter.commit](https://github.com/wekan/wekan/commit/fcc3560df4dbcc418c63470776376238af4f6ddc).
Thanks to lberk and InfoSec812 !
2018-10-03 18:12:55 +03:00
Lauri Ojansivu fcc3560df4 - OpenShift: Drop default namespace value and duplicate WEKAN_SERVICE_NAME parameter.
Thanks to lberk and InfoSec812 !
2018-10-03 18:08:18 +03:00
Lauri Ojansivu f79f2733a0 - Add info about root-url to GitHub issue template https://github.com/wekan/wekan/commit/4c0eb7dcc19ca9ae8c5d2d0276e0d024269de236).
Thanks to xet7 !
2018-10-03 18:04:25 +03:00
Lauri Ojansivu 4c0eb7dcc1 - Add info about root-url to GitHub issue template.
Thanks to xet7 !
2018-10-03 18:01:02 +03:00
Lauri Ojansivu 35677d0c55 - Fix Card URL https://github.com/wekan/wekan/pull/1932
Thanks to schulz !
2018-10-03 17:58:03 +03:00
Lauri Ojansivu 2206c5c84c - Fix Card URL https://github.com/wekan/wekan/pull/1932/files
Thanks to schulz !
2018-10-03 17:46:00 +03:00
Lauri Ojansivu 0d22f683fe - [Add info about root-url to GitHub issue template](https://github.com/wekan/wekan/commit/001c8f2b0138fb26a8c84acab62a604d0c6e5dda).
Thanks to xet7 !
2018-10-03 17:24:38 +03:00
Lauri Ojansivu 001c8f2b01 - Add info about root-url to GitHub issue template.
Thanks to xet7 !
2018-10-03 17:20:20 +03:00
Lauri Ojansivu 463b4f2442 - Add whole packages/ directory to .gitignore
Thanks to xet7 !
2018-10-03 17:07:56 +03:00
Lauri Ojansivu f437d8370e - Add whole packages/ directory to .gitignore
Thanks to xet7 !
2018-10-03 17:05:01 +03:00
Lauri Ojansivu 29cebc8d3d - OpenShift: Drop default namespace value and duplicate WEKAN_SERVICE_NAME parameter.
Thanks to lberk !
Thanks to GitHub users lberk and schulz for their contributions.
2018-10-03 17:03:45 +03:00
Lauri Ojansivu 5704dd9f8b Merge pull request #1930 from lberk/devel
Drop default namespace value and duplicate WEKAN_SERVICE_NAME parameter
2018-10-03 17:01:07 +03:00
Lauri Ojansivu 3d150b63dd - Fix Card URL https://github.com/wekan/wekan/pull/1932
Thanks to schulz !
2018-10-03 16:46:20 +03:00
Lauri Ojansivu 7ca21d5260 Merge branch 'schulz-devel' into devel 2018-10-03 16:43:11 +03:00
Lauri Ojansivu 111e4d8478 - Fix lint error: whitespace.
Thanks to xet7 !
2018-10-03 16:39:16 +03:00
Lukas Berk 0aac9405ee Update wekan.yml 2018-10-03 09:34:51 -04:00
Schulz f8b89129a3 Card url fixed 2018-10-03 15:58:17 +03:00
Lauri Ojansivu 5b8c642d8f - Add whole packages/ directory to .gitignore.
Thanks to xet7 !
2018-10-03 14:24:39 +03:00
Lauri Ojansivu 6c1ddf58ed Fix typo. 2018-10-03 12:00:54 +03:00
Lauri Ojansivu f32b27d2e3 - [LDAP](https://github.com/wekan/wekan/commit/288800eafc91d07f859c4f59588e0b646137ccb9). In progress.
Please test and [add info about bugs](https://github.com/wekan/wekan/issues/119).

Thanks to maximest-pierre, Akuket and xet7 !

Related #119
2018-10-03 11:59:57 +03:00
Lauri Ojansivu 288800eafc - Add LDAP. In progress.
Thanks to maximest-pierre, Akuket and xet.

Related #119
2018-10-03 11:50:52 +03:00
Lukas Berk cb9c94cf9d Drop default namespace value and duplicate WEKAN_SERVICE_NAME parameter 2018-10-02 14:50:11 -04:00
Lauri Ojansivu 18a1d4c5c6 v1.52.1 2018-10-02 01:02:00 +03:00
Lauri Ojansivu ef4292b559 Add edge. 2018-10-02 00:49:26 +03:00
Lauri Ojansivu 6a5e053da1 - REST API: [Add member with role to board. Remove member from board](https://github.com/wekan/wekan/commit/33caf1809a459b136b671f7061f08eb5e8d5e920).
[Docs](https://github.com/wekan/wekan/wiki/REST-API-Role). Related to [role issue](https://github.com/wekan/wekan/issues/1861).
- OAuth2: [Revert Oidc preferred_username back to username](https://github.com/wekan/wekan/commit/33caf1809a459b136b671f7061f08eb5e8d5e920).
  This [does not fix or break anything](https://github.com/wekan/wekan/issues/1874#issuecomment-425179291),
  Oidc already works with [doorkeeper](https://github.com/doorkeeper-gem/doorkeeper-provider-app).

Thanks to xet7 !

Related #1861
2018-10-02 00:36:51 +03:00
Lauri Ojansivu 33caf1809a - REST API: Add member with role to board. Remove member from board.
Docs: https://github.com/wekan/wekan/wiki/REST-API-Role
- OAuth2: Change Oidc preferred_username back to username.

Thanks to xet7 !

Related #1861
2018-10-02 00:21:43 +03:00
Lauri Ojansivu 1d803d4b51 v1.52 2018-10-01 16:47:06 +03:00
Lauri Ojansivu 2ad318b57c - Removed CAS from Wekan stable, because it does not work correctly.
CAS developent continues at edge.

Thanks to xet7 !

Related #1925
2018-10-01 16:40:18 +03:00
Lauri Ojansivu 5923585584 - Remove CAS from Wekan stable, because it does not work correctly.
CAS developent continues at edge.

Thanks to xet7 !

Related #1925
2018-10-01 16:33:29 +03:00
Lauri Ojansivu fccdffb9cc v1.51.2 2018-09-30 02:57:35 +03:00
Lauri Ojansivu 181c988706 - [REST API: Change role of board member](https://github.com/wekan/wekan/commit/51ac6c839ecf2226b2a81b0d4f985d3b942f0938).
Docs: https://github.com/wekan/wekan/wiki/REST-API-Role

Related #1861
2018-09-30 02:48:16 +03:00
Lauri Ojansivu 51ac6c839e - REST API: Change role on board. Docs: https://github.com/wekan/wekan/wiki/REST-API-Role
Thanks to entrptaher and xet7 !
2018-09-30 02:37:16 +03:00
Lauri Ojansivu 3a3666312f Fix typo. 2018-09-28 12:25:48 +03:00
Lauri Ojansivu c433e3f80f v1.51.1 2018-09-28 11:49:09 +03:00
Lauri Ojansivu 6b86b3b6e7 v1.51 2018-09-28 11:00:26 +03:00
Lauri Ojansivu d61d9994e3 - Move Add Board button to top left, so there is no need to scroll
to bottom when there is a lot of boards.

Thanks to xet7 !
2018-09-28 10:51:01 +03:00
Lauri Ojansivu a10b6fb173 - Move Add Board button to top left, so there is no need to scroll
to bottom when there is a lot of boards.

Thanks to xet7 !
2018-09-28 10:48:30 +03:00
Lauri Ojansivu f6e8e3d107 - Move Add Board button to top left, so there is no need to scroll
to bottom when there is a lot of boards.

Thanks to xet7 !
2018-09-28 10:46:37 +03:00
Lauri Ojansivu fb46a88a0f - Move Add Board button to top left, so there is no need to scroll
to bottom when there is a lot of boards.

Thanks to xet7 !
2018-09-28 10:40:20 +03:00
Lauri Ojansivu a8f1711890 Update translations. 2018-09-28 01:03:05 +03:00
Lauri Ojansivu d671a4bb32 Update translations. 2018-09-28 01:01:59 +03:00
Lauri Ojansivu cf5b962349 Update translations. 2018-09-28 00:52:10 +03:00
Lauri Ojansivu 07f155d82e - Add CAS with attributes
Thanks to ppoulard !
2018-09-28 00:39:43 +03:00
Lauri Ojansivu c6cea2fb4e - Add CAS with attributes.
Thanks to ppoulard !
2018-09-28 00:38:17 +03:00
Lauri Ojansivu 7ee453648c Fix typo. 2018-09-28 00:27:06 +03:00
Lauri Ojansivu b0826e2d7b - Add CAS with attributes.
Thanks to ppoulard !
2018-09-28 00:26:01 +03:00
Lauri Ojansivu bd6e4a351b Add CAS with attributes.
Thanks to ppoulard !
2018-09-28 00:23:31 +03:00
Lauri Ojansivu 209da19566 Merge pull request #1913 from ppoulard/devel
Add CAS with attributes
2018-09-25 00:33:49 +03:00
ppoulard b342cfed3a Add CAS with attributes 2018-09-24 16:14:41 +02:00
Lauri Ojansivu a404612174 v1.50.3 2018-09-23 12:47:14 +03:00
Lauri Ojansivu 4dd66eed8e Update translations. 2018-09-23 12:44:49 +03:00
Lauri Ojansivu 1ccacf60b2 - Remove "Fix Cannot setup mail server via snap variables"
to see does Wekan Snap start correctly after removing it.

Thanks to xet7 !
2018-09-23 12:42:44 +03:00
Lauri Ojansivu 6d88baebc7 - Remove "Fix Cannot setup mail server via snap variables" to see
does Wekan Snap start correctly after removing it.

Thanks to xet7 !
2018-09-23 12:38:32 +03:00
Lauri Ojansivu e52cfc84b4 v1.50.2 2018-09-23 11:34:51 +03:00
Lauri Ojansivu 98003e26b1 Update translations. 2018-09-23 11:33:37 +03:00
Lauri Ojansivu 3d4352ba0f v1.50.1 2018-09-22 11:18:39 +03:00
Lauri Ojansivu c060f2322b - Try to fix OAuth2: Change oidc username to preferred_username.
Thanks to xet7 !
2018-09-22 11:05:07 +03:00
Lauri Ojansivu 734e4e5f3f - Try to fix OAuth2: Change oidc username to preferred_username.
Thanks to xet7 !
2018-09-22 11:02:29 +03:00
Lauri Ojansivu b21a0caa4f - Fix Cannot setup mail server via snap variables
Thanks to suprovsky !

Closes #1906
2018-09-22 10:56:34 +03:00
Lauri Ojansivu c55563696e Merge branch 'suprovsky-edge' into edge 2018-09-22 10:47:18 +03:00
Lauri Ojansivu b8043d2dfc Merge branch 'edge' of https://github.com/suprovsky/wekan into suprovsky-edge 2018-09-22 10:45:45 +03:00
Lauri Ojansivu 3942b584bf - Fix Feature Rules.
Thanks to Angtrim !
2018-09-22 10:43:12 +03:00
Lauri Ojansivu dce63842bb Merge branch 'Angtrim-feature-rules' into edge 2018-09-22 10:41:18 +03:00
Lauri Ojansivu 8c1630c638 Update translations. 2018-09-22 10:29:11 +03:00
Lauri Ojansivu f6db23b469 Merge branch 'feature-rules' of https://github.com/Angtrim/wekan into Angtrim-feature-rules 2018-09-22 10:21:20 +03:00
Lauri Ojansivu 8c85955e6b Update translations (pl). 2018-09-22 10:16:06 +03:00
Lauri Ojansivu 86e3df0e5f Update translations (pl). 2018-09-22 10:14:57 +03:00
Lauri Ojansivu fd805399aa - Add default Wekan Snap MongoDB bind IP 127.0.0.1
Thanks to xet7 !

Related #1908
2018-09-22 10:13:23 +03:00
Lauri Ojansivu 6ac726e198 - Add default Wekan Snap MongoDB bind IP 127.0.0.1
Thanks to xet7 !

Related #1908
2018-09-22 10:09:37 +03:00
Lauri Ojansivu 73480a3e1c v1.50 2018-09-22 01:11:31 +03:00
Lauri Ojansivu 12656ee9a1 - Add default Wekan Snap MongoDB bind IP 127.0.0.1
Related #1908
2018-09-22 00:57:25 +03:00
Radosław Serba fff11d7fc9 export syntax error in bash 2018-09-21 20:25:53 +02:00
Angelo Gallarello dba5de1882 Lint fix 2018-09-21 20:19:47 +02:00
Angelo Gallarello 6201809810 Added general move trigger 2018-09-21 17:20:45 +02:00
Angelo Gallarello 99d38f2d61 Fixed card move to top/bottom 2018-09-21 17:06:22 +02:00
Angelo Gallarello 80e06b8ffc Rules hidden from non admin 2018-09-21 17:02:43 +02:00
Angelo Gallarello 93e69c94a2 Fixed card filter 2018-09-21 15:32:38 +02:00
Angelo Gallarello 1f02321e27 Fixed rules about member and box dropdowns width 2018-09-21 14:53:04 +02:00
Angelo Gallarello 37a53e7466 Fixed some rules 2018-09-21 14:22:00 +02:00
Lauri Ojansivu 254c7fe951 Update ChangeLog.
Thanks to xet7 !
2018-09-20 20:56:27 +03:00
Lauri Ojansivu 02a35f94a7 Merge branch 'devel' of github.com:wekan/wekan into devel 2018-09-20 20:52:59 +03:00
Lauri Ojansivu 39099106c6 - Update ChangeLog.
Thanks to xet7 !
2018-09-20 20:52:35 +03:00
Lauri Ojansivu 4f54442947 - Update readme.
Thanks to xet7 !
2018-09-20 20:51:17 +03:00
Lauri Ojansivu 1c4ce56b0f - Add more required debug info to GitHub issue template.
Thanks to xet7 !
2018-09-20 20:44:33 +03:00
Lauri Ojansivu 44f4a1c3bf - Add npm-debug.log and .DS_Store to .gitignore
Thanks to xet7 !
2018-09-20 20:43:19 +03:00
Lauri Ojansivu d652eb5cee - Add .DS_Store to .gitignore
Thansk to xet7 !
2018-09-20 20:41:41 +03:00
Lauri Ojansivu f7731f4f5e - Add npm-debug.log to .gitignore
Thanks to xet7 !
2018-09-20 20:40:40 +03:00
Lauri Ojansivu 94cd2ce690 Add more debug log requirements 2018-09-20 20:38:17 +03:00
Lauri Ojansivu 156164b5fd - Fix Dockerfile Meteor install by changing tar to bsdtar.
Thanks to maurice-schleussinger and xet7 !

Closes #1900
2018-09-19 19:29:40 +03:00
Lauri Ojansivu 1bad81ca86 - Fix Dockerfile Meteor install by changing tar to bsdtar.
Thanks to maurice-schleussinger and xet7 !

Closes #1900
2018-09-19 19:18:53 +03:00
Lauri Ojansivu ff2d467d42 - Fix Dockerfile Meteor install by changing tar to bsdtar.
Thanks to maurice-schleussinger and xet7 !

Closes #1900
2018-09-19 19:17:05 +03:00
Lauri Ojansivu 352e9033b6 - Fix Dockerfile Meteor install by changing tar to bsdtar.
Thanks to maurice-schleussinger and xet7 !

Closes #1900
2018-09-19 19:13:07 +03:00
Lauri Ojansivu 60ffe5ab9b Update translations. 2018-09-18 21:58:17 +03:00
Lauri Ojansivu 51c21fe639 Update translations. 2018-09-18 21:54:10 +03:00
Lauri Ojansivu bfabd63460 - Change from Node v8.12.0 prerelease to use official Node v8.12.0.
Thanks to GitHub user xet7 for contributions.
2018-09-17 20:42:50 +03:00
Lauri Ojansivu e7a03bb187 - Use official Node v8.12.0
Thanks to xet7 !
2018-09-17 20:39:49 +03:00
Lauri Ojansivu 9083d5f88d v1.49.1 2018-09-17 19:12:54 +03:00
Lauri Ojansivu e4cf94606c v1.49-edge-1 2018-09-17 19:05:15 +03:00
Lauri Ojansivu df4498f845 Update translations. 2018-09-17 18:54:15 +03:00
Lauri Ojansivu 7ec7a5f27c - Use official Node v8.12.0
Thanks to xet7 !
2018-09-17 18:52:30 +03:00
Lauri Ojansivu 4e21004c42 v1.49 2018-09-17 16:30:30 +03:00
Lauri Ojansivu ddb8c28c38 Update translations. 2018-09-17 16:27:49 +03:00
Lauri Ojansivu eb8c1530a5 Fix lint errors. 2018-09-17 15:53:03 +03:00
Lauri Ojansivu 70623df899 v1.48 2018-09-17 13:41:20 +03:00
Lauri Ojansivu 6d11f3345f - Remove OAuth2 until it is fixed.
Thanks to xet7 !
2018-09-17 13:35:38 +03:00
Lauri Ojansivu 3941066ba5 Update translations. 2018-09-17 13:26:08 +03:00
Lauri Ojansivu 53a020a23a - Remove OAuth2, until it is fixed.
Thanks to xet7 !
2018-09-17 13:23:08 +03:00
Lauri Ojansivu 2e52ff9e9d This release removes the following new features:
- Remove IFTTT rules, until they are fixed.

Thanks to xet7 !
2018-09-17 12:53:34 +03:00
Lauri Ojansivu 5445955a77 - Revert IFTTT.
Thanks to xet7 !
2018-09-17 12:49:43 +03:00
Lauri Ojansivu 338e18870f v1.47 2018-09-16 13:46:43 +03:00
Lauri Ojansivu 6516b96ee0 Update translations. 2018-09-16 13:42:24 +03:00
Lauri Ojansivu 0c28c5b087 Fix typo. 2018-09-16 13:38:51 +03:00
Lauri Ojansivu b23cbbf925 Merge branch 'Angtrim-feature-rules' into devel 2018-09-16 03:33:45 +03:00
Lauri Ojansivu 4f299b72f7 - IFTTT Rules. Useful to automate things like [adding labels, members, moving card, archiving them, checking checklists etc.
Please test and report bugs. Later colors need to be made translatable.

Thanks to GitHub users Angtrim and xet7 for their contributions.

Related #1160
2018-09-16 03:32:18 +03:00
Lauri Ojansivu ef04c2a826 Update translations. 2018-09-16 03:00:57 +03:00
Lauri Ojansivu b42649c777 Fix translation. 2018-09-16 02:48:52 +03:00
Lauri Ojansivu 5474099916 Fix translation. 2018-09-16 02:40:24 +03:00
Lauri Ojansivu 983a56b89b Fix translation. 2018-09-16 02:39:01 +03:00
Lauri Ojansivu 6fe7f3c553 Archive => Recycle Bin 2018-09-16 02:24:33 +03:00
Lauri Ojansivu df84a2be9a Fix lint errors. 2018-09-16 01:50:36 +03:00
Lauri Ojansivu b3a752ef34 Merge rules. 2018-09-16 00:44:41 +03:00
Lauri Ojansivu 6ab5f093d5 Detele temp files. 2018-09-16 00:11:55 +03:00
Lauri Ojansivu 6673b79738 Merge branch 'feature-rules' of https://github.com/Angtrim/wekan into Angtrim-feature-rules 2018-09-16 00:10:40 +03:00
Lauri Ojansivu 053757f135 Merge branch 'entrptaher-patch-1' into devel 2018-09-16 00:01:29 +03:00
Lauri Ojansivu c17bef2cce We do have some sponsors. 2018-09-16 00:00:51 +03:00
Angelo Gallarello 36c04edb9f Removed rasd file 2018-09-15 18:12:01 +02:00
Md. Abu Taher 4f7fd3bb7b Update README.md 2018-09-15 15:37:58 +06:00
Lauri Ojansivu 1983d3422b v1.46 2018-09-15 09:17:47 +03:00
Angelo Gallarello 8cb132f492 Export/Import done for rules 2018-09-14 19:20:24 +02:00
Angelo Gallarello a57806b054 Fixed listid 2018-09-14 18:03:57 +02:00
Angelo Gallarello 25da8376ca Beautyfied 2018-09-14 17:39:37 +02:00
Angelo Gallarello 30a3daa6af Finished alpha rules 2018-09-14 17:35:14 +02:00
Angelo Gallarello fc73dc5bbc Refactoring rules description 2018-09-14 16:49:06 +02:00
Lauri Ojansivu 9b43dd4fae - Allow Announcement to be markdown.
Note: xet7 did not yet figure out how to keep announcement on one line
  when markdown was added, so now Font Awesome icons are above and below.

Thanks to xet7 !

Closes #1892
2018-09-14 16:02:20 +03:00
Lauri Ojansivu e9f449e680 - [Allow Announcement to be markdown](https://github.com/wekan/wekan/issues/1892).
Note: xet7 did not yet figure out how to keep announcement on one line
  when markdown was added, so now Font Awesome icons are above and below.

Thanks to xet7 !

Closes #1892
2018-09-14 15:57:38 +03:00
Lauri Ojansivu 2e7a31f872 Update translations. 2018-09-13 15:13:13 +03:00
Lauri Ojansivu 2d546627e9 - Partially fix: Cannot move card from one swimline to the other if moving in the same list;
- Fix: Linking cards from empty board is possible and makes current board not load anymore.

Thanks to andresmanelli !

Related #1887,
closes #1885
2018-09-13 15:06:26 +03:00
Lauri Ojansivu f0cb948046 Merge branch 'andresmanelli-devel' into devel 2018-09-13 15:03:00 +03:00
Andrés Manelli 31f73057bf Fix #1885 2018-09-12 22:27:24 +02:00
Andrés Manelli 6aa7a2abef Fix #1887 2018-09-12 18:35:56 +02:00
Angelo Gallarello e649c79bb7 Fixed board id bug in move 2018-09-12 12:19:53 +02:00
Angelo Gallarello 34b37116cf Fixed rule allows 2018-09-12 00:52:29 +02:00
Lauri Ojansivu 4e7f33b9e2 - Add source-map-support.
Thanks to HLFH and xet7 !

Closes #1889
2018-09-11 16:32:23 +03:00
Lauri Ojansivu 1e2582f043 - Add source-map-support.
Thanks to xet7 !

Closes #1889
2018-09-11 16:25:24 +03:00
Lauri Ojansivu 63d4e0489f - Turn of http/2 in Caddyfile so that Firefox Inspect Console does not show errors about wss
websocket config. Chrome web console supports http/2.
  Note: If you are already using Caddy and have modified your Caddyfile, you need to edit your Caddyfile manually.

Thanks to GitHub user xet7 for contributions.
2018-09-11 00:49:54 +03:00
Lauri Ojansivu f1ab46d517 - Turn of http/2 so that Firefox Inspect Console does not show
wss websocket config. Chrome web console supports http/2.
  Note: If you are already using Caddy and have modified your
  Caddyfile, you need to edit your Caddyfile manually.

Thanks to xet7 !

Related #934
2018-09-11 00:43:27 +03:00
Lauri Ojansivu 4608c057d5 - Upgrade to MongoDB v3.2.21
Thanks to xet7 !
2018-09-10 00:56:16 +03:00
Lauri Ojansivu 0cb3aee803 - Upgrade to MongoDB v3.2.21
Thanks to xet7 !
2018-09-10 00:54:08 +03:00
Lauri Ojansivu b39458d2ee v1.45 2018-09-09 22:18:54 +03:00
Lauri Ojansivu ca90220d18 - Fix lint error.
Thanks to xet7 !
2018-09-09 22:17:50 +03:00
Lauri Ojansivu 45c0343f45 - Fix lint error.
Thanks to xet7 !
2018-09-09 22:12:47 +03:00
Lauri Ojansivu eb166737e3 v1.44 2018-09-09 22:03:04 +03:00
Lauri Ojansivu a58ee144ac Update translations. 2018-09-09 21:53:00 +03:00
Lauri Ojansivu 54260ca325 Merge remote-tracking branch 'origin/master' into devel 2018-09-09 21:45:56 +03:00
Lauri Ojansivu cb7eebaed0 - Fix cards export and add customFields export.
Thanks to ymeramees !

Closes #1873,
related #1775
2018-09-09 21:43:45 +03:00
Lauri Ojansivu 6eeb708e4d - Fix cards export and add customFields export.
Thanks to ymeramees !

Closes #1873,
related #1775
2018-09-09 21:40:23 +03:00
Lauri Ojansivu 1c49469b33 Merge pull request #1886 from ymeramees/devel
Fix cards export and add customFields export
2018-09-09 21:17:26 +03:00
ymeramees d18cd59c05 Fixed cards export
Fixed cards export.
2018-09-09 14:23:53 +03:00
Ymeramees 960cb27eef Added customFields export. 2018-09-08 08:10:23 +03:00
Ymeramees cdab6076cc Merge remote-tracking branch 'upstream/master' into devel
Updated to upstream master 1.43
2018-09-08 07:04:55 +03:00
Lauri Ojansivu be9cf34462 - REST API: Add startAt/dueAt/endAt etc. https://github.com/wekan/wekan/wiki/REST-API-Cards
Thanks to xet7 !

Closes #1879
2018-09-07 12:36:12 +03:00
Lauri Ojansivu 1e0fdf8abc - REST API: Add startAt/dueAt/endAt etc. https://github.com/wekan/wekan/wiki/REST-API-Cards
Thanks to xet7 !

Closes #1879
2018-09-07 12:30:06 +03:00
Lauri Ojansivu 2ef8803dfd Merge branch 'devel' 2018-09-06 19:55:04 +03:00
Lauri Ojansivu 1d2896886e v1.43 2018-09-06 19:54:07 +03:00
Lauri Ojansivu e52351dcbf - Fix "No Comments" permission on Wekan and Trello import.
Thanks to xet7 !
2018-09-06 19:37:18 +03:00
Lauri Ojansivu 0a001d505d - Fix "No Comments" permission on Wekan and Trello import.
Thanks to xet7 !
2018-09-06 19:29:52 +03:00
Lauri Ojansivu 55072c529a Merge branch 'devel' 2018-09-06 12:48:03 +03:00
Lauri Ojansivu 66e22a2c87 v1.42 2018-09-06 12:46:26 +03:00
Lauri Ojansivu 07b505aa32 Update translations (fr). 2018-09-06 12:40:54 +03:00
Lauri Ojansivu 3c86cf854e - Add swimlaneId in activity. Create default swimlaneId in API.
Thanks to andresmanelli !
2018-09-06 12:33:16 +03:00
Lauri Ojansivu 334c15ff71 Merge branch 'devel' of https://github.com/andresmanelli/wekan into devel 2018-09-06 12:06:54 +03:00
Lauri Ojansivu 1aecf8da6b - REST API: [Create board options to be modifiable](https://github.com/wekan/wekan/commit/9cea76e4efaacaebcb2e9f0690dfeb4ef6d62527),
like permissions, public/private board - now private by default,
  and board background color.
  Docs at https://github.com/wekan/wekan/wiki/REST-API-Boards

Thanks to xet7 !

Related #1037
2018-09-06 12:04:09 +03:00
Lauri Ojansivu 9cea76e4ef - REST API: Create board options to be modifiable, like
permissions, public/private board - now private by default,
  and board background color.
  Docs at https://github.com/wekan/wekan/wiki/REST-API-Boards

Thanks to xet7 !

Related #1037
2018-09-06 11:56:38 +03:00
Andrés Manelli e74fb2f5b0 Add swimlaneId in activity. Create default swimlaneId in API 2018-09-06 00:23:50 +02:00
Ymeramees 6c0b6ca670 Merge remote-tracking branch 'upstream/master' into devel
Merge to update to latest upstream/master
2018-09-05 07:23:34 +03:00
Lauri Ojansivu 9492daf9bc Merge branch 'devel' 2018-09-05 02:13:10 +03:00
Lauri Ojansivu f346ce04f5 v1.41 2018-09-05 02:11:38 +03:00
Lauri Ojansivu b465500afa Update translations (de). 2018-09-05 02:06:50 +03:00
Lauri Ojansivu adf969f6ff - Try to fix Wekan Sandstorm API. https://github.com/wekan/wekan/commit/6462f855c9388416517b0e5d29e11b4ede21f78e
Thanks to ocdtrekkie and xet7 !

Related #1279
2018-09-05 02:01:13 +03:00
Lauri Ojansivu 6462f855c9 - Try to fix Wekan Sandstorm API.
Thanks to ocdtrekkie and xet7 !
2018-09-05 01:58:18 +03:00
Lauri Ojansivu 3721742327 Merge branch 'devel' 2018-09-04 20:52:45 +03:00
Lauri Ojansivu 910771708a v1.40 2018-09-04 20:51:22 +03:00
Lauri Ojansivu 7ba361e2c9 Update translations. 2018-09-04 20:24:00 +03:00
Lauri Ojansivu cc2e0a7c7c - Add permission "No comments" https://github.com/wekan/wekan/commit/77efcf71376d3da6c19ad1a4910567263e83c0ca
It is like normal user, but does not show comments and activities.

Thanks to xet7 !

Related #1861
2018-09-04 20:13:44 +03:00
Lauri Ojansivu 77efcf7137 - Add permission "No comments". It is like normal user, but does not show comments and activities.
Thanks to xet7 !
2018-09-04 20:09:36 +03:00
Lauri Erm 1298a07838 Merge remote-tracking branch 'upstream/master' into devel
Merge with upstream/master
2018-09-02 06:13:55 +03:00
Lauri Ojansivu bcbe1aaaf5 Update translations. 2018-08-31 13:54:44 +03:00
Lauri Ojansivu 0c351f4864 Merge branch 'devel' 2018-08-29 00:39:30 +03:00
Lauri Ojansivu 066237de08 v1.39 2018-08-29 00:37:21 +03:00
Lauri Ojansivu ec3902021e - Only allow ifCanModify users to add dates on cards.
Thanks to rjevnikar !
2018-08-29 00:29:43 +03:00
Lauri Ojansivu 6928fd71a9 Merge pull request #1867 from rjevnikar/commentOnlyDateFix
Only allow ifCanModify users to add dates on cards
2018-08-29 00:18:10 +03:00
Lauri Ojansivu 035334125b Merge branch 'devel' 2018-08-29 00:11:55 +03:00
Lauri Ojansivu 70f37c55fd v1.38 2018-08-29 00:10:40 +03:00
Lauri Ojansivu 670ace6a8d - Add msavin:userCache to speedup Wekan.
https://forums.meteor.com/t/introducing-a-new-approach-to-meteor-user-this-simple-trick-can-save-you-millions-of-database-requests/45336/7
  https://github.com/msavin/userCache

Thanks to msavin and xet7 !

Related #1672
2018-08-28 23:43:01 +03:00
Lauri Ojansivu ebaccbccca - Add msavin:userCache.
https://forums.meteor.com/t/introducing-a-new-approach-to-meteor-user-this-simple-trick-can-save-you-millions-of-database-requests/45336/7
  https://github.com/msavin/userCache

Thanks to msavin and xet7 !

Related #1672
2018-08-28 23:36:54 +03:00
Lauri Ojansivu 652f4e693b - Fix Delete Board.
Thanks to rjevnikar and xet7 !
2018-08-28 23:28:57 +03:00
rjevnikar 555d31cca6 Only allow ifCanModify users to add dates (received, start, end, and due). 2018-08-28 20:23:29 +00:00
Lauri Ojansivu 534b20feda - Fix Delete Board and keep confirmation popup.
Thanks to xet7 !
2018-08-28 23:23:24 +03:00
Lauri Ojansivu 24f59b1855 Merge branch 'devel' 2018-08-28 21:21:10 +03:00
Lauri Ojansivu c0df1dd4aa v1.37 2018-08-28 21:20:16 +03:00
Lauri Ojansivu ba63627ebf Fix typo. 2018-08-28 21:16:32 +03:00
Lauri Ojansivu da636ed17d - Add Missing Index on cards.parentId since Swimlane integration
to speedup Wekan;
- Update OpenShift template to add Route and parameterize;
- Fix typos in Wekan snap help.

Thanks to Clement87, InfoSec812 and xet7 !
2018-08-28 21:12:24 +03:00
Lauri Ojansivu 4e12bcc378 - Add Missing Index on cards.parentId since Swimlane integration
to speedup Wekan.

Thanks to Clement87 !

Closes #1863
2018-08-28 21:01:55 +03:00
Lauri Ojansivu 6cec3b36de Update translations. 2018-08-28 19:22:39 +03:00
Lauri Ojansivu 3e7247891d Merge pull request #1865 from InfoSec812/InfoSec812-openshift-route-parameterized
Update OpenShift template to add Route and parameterize
2018-08-28 19:22:13 +03:00
Deven Phillips 6bb2f311e2 Change MongoDB ImageStream Config
Also debugging some issues
2018-08-28 12:11:35 -04:00
Lauri Ojansivu 0c5fc6d7fd Fix typos. 2018-08-28 19:01:00 +03:00
Deven Phillips 8fae676551 Add route to template and parameterize 2018-08-28 11:58:52 -04:00
Lauri Ojansivu 379f1af89e Update translations. 2018-08-27 19:34:34 +03:00
Lauri Ojansivu 5e128583ac Merge branch 'devel' 2018-08-25 01:24:02 +03:00
Lauri Ojansivu 23c27f9e07 v1.36 2018-08-25 01:22:50 +03:00
Lauri Ojansivu c36509095a Add empty oauth2 settings to Sandstorm. 2018-08-25 01:11:18 +03:00
Lauri Ojansivu f85a05e454 - Fix typos in security documentation.
Thanks to tlevine !

Related https://github.com/wekan/wekan/pull/1857
2018-08-25 01:01:45 +03:00
Lauri Ojansivu 067e4d15f3 Merge pull request #1857 from tlevine/security-typos
Security documentation typos
2018-08-25 00:59:56 +03:00
Lauri Ojansivu 65d1330d35 Merge branch 'salleman33-devel' into devel 2018-08-25 00:51:16 +03:00
Lauri Ojansivu 39312a075e - [OAuth2 Login on Standalone Wekan](https://github.com/wekan/wekan/wiki/OAuth2). For example, Rocket.Chat can provide OAuth2 login to Wekan.
Also, if you have Rocket.Chat using LDAP/SAML/Google/etc for logging into Rocket.Chat, then same users can login to Wekan when
  Rocket.Chat is providing OAuth2 login to Wekan.

Thanks to salleman33 and xet7 !

Closes #234
2018-08-25 00:49:02 +03:00
Lauri Ojansivu 96173ad431 Merge branch 'devel' of https://github.com/salleman33/wekan into salleman33-devel 2018-08-24 19:46:42 +03:00
Thomas Levine c0957ce173 I removed the period from a non-sentence. 2018-08-24 10:09:45 +00:00
Thomas Levine fdc168a476 I corrected typos in security documentation. 2018-08-24 10:09:45 +00:00
Lauri Ojansivu 3d76b8e1c1 - Move labels back to original place at minicard.
Thanks to hever and xet7 !

Closes #1842
2018-08-23 17:01:38 +03:00
Lauri Ojansivu 1296fce72a - Move labels back to original place at minicard.
Thanks to hever and xet7 !

Closes #1842
2018-08-23 16:58:07 +03:00
Lauri Ojansivu c34b1a9ec5 Merge branch 'devel' 2018-08-23 00:07:12 +03:00
Lauri Ojansivu 13db2fd7b2 v1.35 2018-08-23 00:06:15 +03:00
Lauri Ojansivu 511d1973eb Add webhooks-attributes to Sandstorm.
Thanks to xet7 !
2018-08-23 00:02:00 +03:00
Lauri Ojansivu dfd26e4843 - Remove avatar url fix javascript version, it breaks too easily.
Same can be done with Caddy.

Thanks to xet7 !

Closes #1776,
closes #386
2018-08-22 23:58:47 +03:00
Lauri Ojansivu d2c3ecdbcd Fix typos. 2018-08-22 22:46:56 +03:00
Lauri Ojansivu 1249bef93e Fix typo. 2018-08-22 22:45:20 +03:00
Lauri Ojansivu 71b642a2ba Fix lint errors. 2018-08-22 22:42:17 +03:00
Lauri Ojansivu f170c116bb Fix typo. 2018-08-22 22:35:52 +03:00
Lauri Ojansivu 4ed2f29e30 - Make the attributes that the webhook sends configurable.
Thanks to omarsy and xet7 !
2018-08-22 22:23:39 +03:00
Lauri Ojansivu d0731a4bf4 Merge branch 'omarsy-devel' into devel 2018-08-22 22:20:14 +03:00
Lauri Ojansivu d165733242 - Add webhooks-attributes to Snap and Docker.
Thanks to xet7 !
2018-08-22 22:19:06 +03:00
Lauri Ojansivu a91f0b5c3b Merge branch 'devel' of https://github.com/omarsy/wekan into omarsy-devel 2018-08-22 22:02:04 +03:00
Lauri Ojansivu cc84bf2de3 - Remove suburl from beginning of avatar file path,
so that avatar images don't get broken when root-url changes
  to different sub-url. This does not change avatar urls
  in database, instead this fixes url on the fly after
  loading avatar url from database.

Thanks to xet7 !
2018-08-22 21:57:38 +03:00
Lauri Ojansivu 7e0bc1e33a - Remove suburl from beginning of avatar file path, so that avatar images
don't get broken when root-url changes to different sub-url.
  This does not change avatar urls in database, instead this
  fixes url on the fly after loading avatar url from database.

Thanks to xet7 !

Closes #1776,
closes #386
2018-08-22 21:42:53 +03:00
Lauri Ojansivu 1b94b919fe This release adds the following new features:
Add Caddy plugins:
- [http.filter](https://caddyserver.com/docs/http.filter)
  for changing Wekan UI on the fly, for example custom logo,
  or changing to all different CSS file to have custom theme;
- [http.ipfilter](https://caddyserver.com/docs/http.ipfilter)
  to block requests by ip address;
- [http.realip](https://caddyserver.com/docs/http.realip)
  for showing real X-Forwarded-For IP to behind proxy;
- Turn off Caddy telemetry.

Thanks to Caddy contributors and xet7 !
2018-08-22 16:56:02 +03:00
Lauri Ojansivu d68ad5af04 Add Caddy plugins:
- [http.filter](https://caddyserver.com/docs/http.filter)
  for changing Wekan UI on the fly, for example custom logo,
  or changing to all different CSS file to have custom theme;
- [http.ipfilter](https://caddyserver.com/docs/http.ipfilter)
  to block requests by ip address;
- [http.realip](https://caddyserver.com/docs/http.realip)
  for showing real X-Forwarded-For IP to behind proxy.

Thanks to Caddy contributors and xet7 !
2018-08-22 16:16:56 +03:00
Omar Sy fcbbb93bb6 change let to const 2018-08-22 15:07:46 +02:00
Omar Sy b3b8d3c086 make the attributes that the webhook sends configurable 2018-08-22 14:24:21 +02:00
Lauri Ojansivu 676140f5c8 Merge branch 'devel' 2018-08-22 11:01:06 +03:00
Lauri Ojansivu 20757efc7e v1.34 2018-08-22 11:00:45 +03:00
Lauri Ojansivu 4d615057fe Update translations. 2018-08-22 10:17:43 +03:00
Lauri Ojansivu 9bdb5aea87 - Add Favicon for pinned tab on Safari browser.
Thanks to woodyart and xet7 !

Closes #1795
2018-08-22 10:04:31 +03:00
Lauri Ojansivu d67c435132 - Add Favicon for pinned tab on Safari browser.
Thanks to woodyart and xet7 !

Closes #1795
2018-08-22 10:01:19 +03:00
Lauri Ojansivu 18de911a7f - Allow Sandstorm to serve Wekan HTTP API. This may help towards #1279
Thanks to ocdtrekkie !

Related #1279
2018-08-22 09:41:14 +03:00
Lauri Ojansivu 39b1871e4d Merge pull request #1851 from ocdtrekkie/patch-1
Allow Sandstorm to serve Wekan HTTP API
2018-08-22 09:39:21 +03:00
Lauri Ojansivu eecac0e37f - Fix and improve linked cards.
Thanks to andresmanelli !
2018-08-22 09:30:12 +03:00
Lauri Ojansivu 3e0352c586 Merge branch 'andresmanelli-devel' into devel 2018-08-22 09:09:05 +03:00
Jacob Weisz 485f6b5ac2 Allow Sandstorm to serve Wekan HTTP API
This is probably not a "whole" fix, but this may be a missing piece.
2018-08-21 22:23:32 -05:00
Andrés Manelli 3e715bbcc9 Fix and improve linked cards 2018-08-21 22:21:23 +02:00
Lauri Ojansivu b881c3b908 Update translations. 2018-08-21 00:10:15 +03:00
Lauri Ojansivu 9e29d4c815 - Move color labels on minicard to bottom of minicard.
Thanks to therampagerado and xet7 !

Closes #1842
2018-08-21 00:03:24 +03:00
Lauri Ojansivu f09d9b63de - Move color labels on minicard to bottom of minicard.
Thanks to xet7 !

Closes #1842
2018-08-20 23:59:43 +03:00
Lauri Ojansivu 0588c2f605 - Restored SMTP settings at Admin Panel, and disabled showing password.
Thanks to xet7 !

Closes #1790
2018-08-20 23:19:14 +03:00
Lauri Ojansivu b216c63c13 - Restored SMTP settings at Admin Panel, and disabled showing password.
Thanks to xet7 !

Closes #1790
2018-08-20 23:16:24 +03:00
Angelo Gallarello 1f5f429fc4 Completed rules 2018-08-19 18:53:50 +02:00
Angelo Gallarello 3b62b5ec5d Fixed triggers to use names and not id 2018-08-17 14:16:56 +02:00
Angelo Gallarello 2f24dcfc7d Progress on triggers UI 2018-08-16 23:37:29 +02:00
Angelo Gallarello fda4e954eb Completed activities log in card 2018-08-16 22:10:05 +02:00
Angelo Gallarello cc285afd59 Complete checklist activities 2018-08-16 21:49:56 +02:00
Lauri Ojansivu b186561355 Merge branch 'devel' 2018-08-16 22:23:10 +03:00
Lauri Ojansivu c9ca79aac8 Update translations. 2018-08-16 22:21:26 +03:00
Lauri Ojansivu 6b4e6d0c63 v1.33 2018-08-16 22:12:37 +03:00
Lauri Ojansivu c60ae13b5f - Change default value of label ids.
Thanks to omarsy !
2018-08-16 21:34:56 +03:00
Lauri Ojansivu 4e1fedb236 Merge pull request #1837 from omarsy/devel
Change of the default value of labelIds
2018-08-16 21:20:46 +03:00
Omar Sy 3c9aa65ca3 Change of the default value of labelIds 2018-08-16 19:10:47 +02:00
Angelo Gallarello f7446ba934 Remove attachment activity 2018-08-16 17:18:55 +02:00
Angelo Gallarello 9c6d374b95 Labels activities 2018-08-16 16:54:29 +02:00
Lauri Ojansivu 365e2e5b4b Merge branch 'devel' 2018-08-16 14:40:56 +03:00
Lauri Ojansivu 4064429047 v1.32 2018-08-16 14:39:19 +03:00
Lauri Ojansivu 62dd28d91c - Use only framing policy, not all of content policy.
- Fix Date and Time Formats are only US in every language.

Thanks to xet7 !

Closes #1833
2018-08-16 14:34:01 +03:00
Lauri Ojansivu b3005f828d - Use only framing policy, not all of content policy.
- Fix Date and Time Formats are only US in every language.

Thanks to xet7 !

Closes #1833
2018-08-16 14:29:38 +03:00
Angelo Gallarello 99e7c65907 Fixed remove 2018-08-16 00:42:14 +02:00
Angelo Gallarello 6828ccd7f1 Main flow implemented 2018-08-16 00:32:31 +02:00
Lauri Ojansivu 36447ba1c0 - Content Policy: Allow inline scripts, otherwise there is errors in browser
- Set default matomo settings to disabled
- Fix hidden system [messages](https://github.com/wekan/wekan/issues/1830)
- Fix Requested By and Assigned By fields.

Thanks to andresmanelli and xet7 !

Closes #1830
2018-08-15 23:52:32 +03:00
Lauri Ojansivu c694505885 Merge branch 'devel' of github.com:wekan/wekan into devel 2018-08-15 23:44:07 +03:00
Lauri Ojansivu 807c6ce09e - Content Policy: Allow inline scripts, otherwise there is errors in browser/inspect/console.
- Set default matomo settings to disabled.

Thanks to xet7 !
2018-08-15 23:41:01 +03:00
Lauri Ojansivu 9fc3de8502 Merge pull request #1832 from andresmanelli/devel
Fix hiddenSystemMessages
2018-08-15 23:24:11 +03:00
Andrés Manelli be00465e67 Fix hiddenSystemMessages 2018-08-15 22:17:52 +02:00
Lauri Ojansivu 5c33a85341 Merge pull request #1831 from andresmanelli/devel
Fix removed setters and getters
2018-08-15 22:08:19 +03:00
Andrés Manelli e55d7e4f72 Fix removed setters and getters 2018-08-15 20:50:51 +02:00
Angelo Gallarello 9b0eb0a9f1 Almost full circle 2018-08-15 18:47:09 +02:00
Lauri Ojansivu 53c0a52788 Remove Trello. 2018-08-14 21:22:46 +03:00
Lauri Ojansivu 89b535ac0f Merge branch 'devel' 2018-08-14 18:52:19 +03:00
Lauri Ojansivu c2eb300e21 v1.31
- Fix: Export of Board does not work on Docker.

Thanks to xet7 !

Closes #1820
2018-08-14 18:50:05 +03:00
Lauri Ojansivu eea077e57e Fix quotes. 2018-08-14 18:43:09 +03:00
Lauri Ojansivu f725291e14 Try to fix Dockerfile. 2018-08-14 18:27:37 +03:00
Lauri Ojansivu bec1256727 Try to fix Docker env variables. 2018-08-14 17:36:03 +03:00
Lauri Ojansivu 9407992312 Fix typo. 2018-08-14 17:29:53 +03:00
Lauri Ojansivu c7e02ad2ee Fix trusted url on docker-compose.yml. 2018-08-14 17:09:46 +03:00
Lauri Ojansivu ac12aa7ede Merge branch 'devel' 2018-08-14 15:19:53 +03:00
Lauri Ojansivu cec5f45459 v1.30 2018-08-14 15:18:58 +03:00
Lauri Ojansivu ab73afe17a Fix lint errors. 2018-08-14 14:43:15 +03:00
Lauri Ojansivu dc4e93ad56 - Fix Import from Trello error 400.
Thanks to xet7 !
2018-08-14 01:33:52 +03:00
Lauri Ojansivu 2f557ae3a5 - Fix Import from Trello error 400.
Thanks to xet7 !
2018-08-14 01:28:53 +03:00
Lauri Ojansivu be25e372a3 Update translations. 2018-08-13 20:10:41 +03:00
Lauri Ojansivu 3f937764cb Fix lint errors. 2018-08-13 20:01:08 +03:00
Lauri Ojansivu 0b9748dff6 - When Content Policy is enabled, allow one URL to have iframe that embeds Wekan
- Add option to turn off Content Policy
- Allow always in Wekan markdown <img src="any-image-url-here">

Thanks to xet7 !

Closes #1676
2018-08-13 19:34:42 +03:00
Lauri Ojansivu b9929dc682 - When Content Policy is enabled, allow one URL to have iframe that embeds Wekan
- Add option to turn off Content Policy
- Allow always in Wekan markdown <img src="any-image-url-here">

Thanks to xet7 !

Closes #1676
2018-08-13 19:24:07 +03:00
Lauri Ojansivu 034981cd3d Merge branch 'devel' 2018-08-12 17:36:50 +03:00
Lauri Ojansivu 79e464bf90 v1.29 2018-08-12 17:36:06 +03:00
Lauri Ojansivu b015b5b724 Revert eslint changes, because they caused breakage. 2018-08-12 17:32:53 +03:00
Lauri Ojansivu f5515cb95f Fix lint errors. 2018-08-12 14:36:37 +03:00
Lauri Ojansivu 16bbd892aa Merge branch 'devel' 2018-08-12 14:14:10 +03:00
Lauri Ojansivu 32d9a2c10b v1.27 2018-08-12 14:12:52 +03:00
Lauri Ojansivu 9967859f42 Merge branch 'andresmanelli-devel' into devel 2018-08-12 14:07:19 +03:00
Lauri Ojansivu eac0b3e7bb - Linked Cards and Linked Boards.
Thanks to andresmanelli !
2018-08-12 14:05:58 +03:00
Lauri Ojansivu 8177a1ed0a Update translations. 2018-08-12 14:03:13 +03:00
Andrés Manelli 17308dc5f3 Fix lint errors 2018-08-11 01:00:21 +02:00
Andrés Manelli 67301e07e2 Fix rebase errors 2018-08-11 00:50:20 +02:00
Andrés Manelli 315db00e83 Fix lint warning 2018-08-11 00:17:42 +02:00
Andrés Manelli 692a1bc369 Refactor imported -> linked in server and i18n 2018-08-11 00:17:42 +02:00
Andrés Manelli f76d8e47a8 Refactor imported -> linked in components 2018-08-11 00:17:42 +02:00
Andrés Manelli 6adfcb3513 Refactor imported -> linked in models 2018-08-11 00:16:31 +02:00
Andrés Manelli bce2242528 Add imported card location 2018-08-11 00:15:51 +02:00
Andrés Manelli f0597ef0c4 Indicate board or card through icons. Indicate if archived 2018-08-11 00:15:13 +02:00
Andrés Manelli 10aab8a733 Remove imported cards and boards colors 2018-08-11 00:14:13 +02:00
Andrés Manelli fb75a487fc Fix lint errors 2018-08-11 00:14:13 +02:00
Andrés Manelli 37306c8d22 Add title binding 2018-08-11 00:14:13 +02:00
Andrés Manelli 4ffa8784a2 Avoid reimport imported card 2018-08-11 00:07:29 +02:00
Andrés Manelli 74a01691e3 Add two way binding of activities, comments, and attachments 2018-08-11 00:07:29 +02:00
Andrés Manelli 49c415f023 Add two way binding of checklists 2018-08-11 00:07:29 +02:00
Andrés Manelli b2e175ba8c Avoid exporting imported cards 2018-08-11 00:07:29 +02:00
Andrés Manelli 724d26379c Add two way binding of card/board times 2018-08-11 00:07:29 +02:00
Andrés Manelli 0a62089df0 Allow description and member two way binding 2018-08-10 23:59:08 +02:00
Andrés Manelli a93de07fb9 Avoid importing imported cards or boards 2018-08-10 23:57:35 +02:00
Andrés Manelli 64367a01dd Link description 2018-08-10 23:57:35 +02:00
Andrés Manelli 5644ef66af Import card-as-card, board-as-card. Add styling. Missing details and links 2018-08-10 23:56:02 +02:00
Andrés Manelli 061a13e46e Avoid showing current board 2018-08-10 23:55:19 +02:00
Andrés Manelli dcc7b2970f Add UI for importing card-as-card and board-as-card 2018-08-10 23:55:19 +02:00
Lauri Ojansivu d509b2608f Merge branch 'devel' 2018-08-09 17:13:02 +03:00
Lauri Ojansivu 193af893ee v1.26 2018-08-09 17:11:02 +03:00
Lauri Ojansivu acd105e61b - Set Matomo blank settings on Sandstorm.
Thanks to xet7 !
2018-08-09 17:08:22 +03:00
Lauri Ojansivu a300b73d56 - Set WITH_API=true on Sandstorm, so that export works.
Thanks to xet7 !
2018-08-09 16:56:58 +03:00
Lauri Ojansivu 5168fb7717 Merge branch 'devel' 2018-08-09 13:28:39 +03:00
Lauri Ojansivu 945ffeda34 v1.25 2018-08-09 13:27:18 +03:00
Lauri Ojansivu 66adc397bf Merge pull request #1822 from Yanonix/devel
Fix showing only the cards of the current board in calendar view
2018-08-09 13:21:26 +03:00
Lauri Ojansivu 82a6b4245c Merge branch 'devel' 2018-08-09 13:16:51 +03:00
Lauri Ojansivu ae5ea46d7f v1.24 2018-08-09 13:15:53 +03:00
Lauri Ojansivu b5022529ac - Use new WITH_API and Matomo env variables at Dockerfile.
Thanks to xadagaras and xet7 !

Closes #1820
2018-08-09 12:51:28 +03:00
Lauri Ojansivu 49c471d816 Use new WITH_API and Matomo env variables at Dockerfile.
Thanks to xadagaras and xet7 !
2018-08-09 12:50:04 +03:00
Lauri Ojansivu 445aa89e4f - Use new WITH_API and Matomo env variables at Dockerfile.
Closes #1820
2018-08-09 12:46:19 +03:00
Yanonix 787941857d Fix showing only the cards of the current board in calendar view 2018-08-09 12:23:34 +03:00
Lauri Ojansivu 6a2b494713 Update translations. 2018-08-08 10:38:26 +03:00
Lauri Ojansivu 04d7c47f4c Update node to v8.12.0 prerelease build. 2018-08-04 21:47:02 +03:00
Lauri Ojansivu 9c94ea58b4 Revert snap changes. 2018-08-04 18:47:46 +03:00
Lauri Ojansivu 9f65696fcc Try to fix snap. 2018-08-04 16:47:21 +03:00
Angelo Gallarello 93cc7f0232 Triggers view 2018-08-04 15:15:04 +02:00
Angelo Gallarello 7e4bd4a0a7 Add and remove ui 2018-08-03 20:43:37 +02:00
Angelo Gallarello f63482b587 UI for rules list 2018-08-03 19:47:20 +02:00
Lauri Ojansivu 95b21943ee Fix port order, hopefully correctly.
Related #1778

Thanks to xet7 !
2018-08-02 16:47:50 +03:00
Lauri Ojansivu d1400f48c3 Merge pull request #1816 from Worteks/devel
Change Run User for Openshift compliance
2018-08-02 16:25:27 +03:00
Thibaut Demaret 53d545eeef Change Run User for Openshift compliance 2018-08-02 15:09:34 +02:00
Lauri Ojansivu afeb2de412 Merge branch 'rjevnikar-dateCSS' into devel 2018-08-02 00:55:08 +03:00
Lauri Ojansivu 83d6ef7301 - Fix the flagging of dates.
Thanks to rjevnikar and xet7 !
2018-08-02 00:54:20 +03:00
Lauri Ojansivu d2e93c4927 Fix typo. 2018-08-02 00:51:45 +03:00
Lauri Ojansivu fd67bb8e67 Merge branch 'dateCSS' of https://github.com/rjevnikar/wekan into rjevnikar-dateCSS 2018-08-02 00:50:52 +03:00
Lauri Ojansivu da6c2b5503 Add Matomo options. 2018-08-01 22:04:33 +03:00
Lauri Ojansivu 57d43f916f Optional integration with Matomo. 2018-08-01 21:45:11 +03:00
Lauri Ojansivu 10a6dbd080 Enable API by default, so that Export Board works.
Thanks to xet7 !
2018-08-01 21:38:03 +03:00
Lauri Ojansivu 0498671cd4 Update translations (ru). 2018-08-01 21:30:42 +03:00
Lauri Ojansivu b2eeff9697 Enable Wekan API by default, so that Export Board to JSON works. 2018-08-01 21:21:14 +03:00
RJevnikar a8146e61f3 Fix flagging of dates (i.e. due date only flagged when before end date) 2018-07-31 22:01:14 +00:00
Lauri Ojansivu 6a23f73d94 Reverting change, Docker container did not build. 2018-07-30 22:10:49 +03:00
Lauri Ojansivu b9bcb8f979 Try to fix glibc in Dockerfile. 2018-07-30 22:07:17 +03:00
Lauri Ojansivu 0416fbdcc4 Merge branch 'master' of github.com:wekan/wekan 2018-07-30 21:45:27 +03:00
Lauri Ojansivu 064d125a1c Merge branch 'devel' 2018-07-30 21:45:16 +03:00
Lauri Ojansivu 1cc8452752 v1.23 2018-07-30 21:44:12 +03:00
Lauri Ojansivu 5bfb6c6411 Check for existing directories when building snap. 2018-07-30 21:27:22 +03:00
Lauri Ojansivu a48f560a85 No error if existing directory, with mkdir. 2018-07-30 21:18:04 +03:00
Lauri Ojansivu 92bb646977 Merge branch 'devel' 2018-07-30 17:42:57 +03:00
Lauri Ojansivu 43c38f87a5 v1.22 2018-07-30 17:42:16 +03:00
Lauri Ojansivu 01c12d7abc Add missing packages. 2018-07-30 17:28:52 +03:00
Lauri Ojansivu 63e3f6907a Merge pull request #1806 from Akuket/devel
Integration of matomo with env vars
2018-07-27 21:22:23 +03:00
Lauri Ojansivu 2e62524d5e Update translations. 2018-07-27 21:12:35 +03:00
guillaume ec59af3777 Integration of matomo with env vars 2018-07-27 18:08:09 +02:00
Lauri Ojansivu aa080a7506 Merge pull request #1799 from Akuket/devel
enable/disable api with env var
2018-07-26 15:44:34 +03:00
Lauri Ojansivu 397dda11ce Upggrade xss to v1.0.3 2018-07-26 15:41:04 +03:00
guillaume 6173a73381 enable/disable api with env var 2018-07-24 18:09:30 +02:00
Lauri Ojansivu dafe1e39a5 Update translations (pt-BR). 2018-07-20 20:30:29 +03:00
Lauri Ojansivu b77be874e0 - Backup script now uses mongodump from snap to
do backups: https://github.com/wekan/wekan/wiki/Backup

Thanks to Akuket !
2018-07-18 17:26:05 +03:00
Lauri Ojansivu aca4bffac8 Fix typos. 2018-07-18 16:23:09 +03:00
Lauri Ojansivu 2bb80956dd Merge branch 'devel' 2018-07-18 15:15:43 +03:00
Lauri Ojansivu e5148b4571 v1.21 2018-07-18 15:14:56 +03:00
Lauri Ojansivu 6204edd76e - Add logo from Wekan website to login logo.
Thanks to xet7 !
2018-07-18 14:55:03 +03:00
Lauri Ojansivu 4eed23afe0 Add new Wekan logo. 2018-07-18 14:52:41 +03:00
Lauri Ojansivu 2b02e09b07 - Allow to resend invites.
Thanks to Akuket and xet7 !

Closes #1320
2018-07-18 14:22:59 +03:00
Lauri Ojansivu c708877dde Merge pull request #1785 from Akuket/devel
Bugfix : Resending invitation code.
2018-07-18 14:17:36 +03:00
guillaume e2ae5d6b8e remove invitation code 2018-07-18 10:07:03 +02:00
Lauri Ojansivu a798713919 Merge branch 'devel' 2018-07-18 01:24:57 +03:00
Lauri Ojansivu 19402f5850 v1.20 2018-07-18 01:24:05 +03:00
Lauri Ojansivu 2beb91ba5d Update translations. 2018-07-18 01:19:46 +03:00
Lauri Ojansivu 1c35f05224 - Add scrolling to long cards.
Thanks to jnso !

Closes #1780
2018-07-18 01:13:21 +03:00
Lauri Ojansivu 758ec48e5c Merge pull request #1782 from jnso/scroll-fix
bug fix: #1780 (adding scroll to long cards)
2018-07-18 01:10:31 +03:00
Lauri Ojansivu f8d5c91659 - Remove SMTP settings from Admin Panel, because they
are set in environment variable settings like source/snap/docker
  already, and password was exposed in plain text.
- Added info how to limit snap to root user.

Thanks to LyR33x and xet7 !

Closes #1783
2018-07-18 01:02:41 +03:00
Lauri Ojansivu a8f41f7994 Remove SMTP settings from Admin Panel, because they
are set in environment variable settings like source/snap/docker
already, and password was exposed in plain text.

Thanks to xet7 !

Closes #1783
2018-07-18 00:46:45 +03:00
Akuket bf5596b201 patch re invit 2018-07-17 16:07:46 +02:00
Jonas Olsson b0f410f82d bug fix: #1780
Cards that are longer than the screen height can now scroll on the y-axis in order to be able to see the whole card.
2018-07-17 16:22:57 +04:00
guillaume df54f15ecb patch re-invit 2018-07-16 19:20:47 +02:00
Lauri Ojansivu 6a0e4c9b21 Merge branch 'devel' 2018-07-16 15:30:02 +03:00
Lauri Ojansivu c0ddecb2ee v1.19 2018-07-16 15:27:14 +03:00
Lauri Ojansivu 1a7796f2ca Merge branch 'Akuket-devel' into devel 2018-07-16 14:48:46 +03:00
Lauri Ojansivu 7119896a3c - Fix invitation code.
Thanks to Akuket and xet7 !

Closes #1749
2018-07-16 14:47:48 +03:00
Lauri Ojansivu 1b32509496 Fix lint errors. 2018-07-16 14:46:33 +03:00
Lauri Ojansivu a0d2df0647 Merge branch 'devel' of https://github.com/Akuket/wekan into Akuket-devel 2018-07-16 14:44:50 +03:00
Lauri Ojansivu d8c62cf242 Update translations. 2018-07-16 14:16:51 +03:00
Akuket 980fd4f61e Patch Invitation Code 2018-07-16 12:51:18 +02:00
Lauri Ojansivu 0dd82fedaf Remove Greenkeeper. 2018-07-13 02:51:40 +03:00
Lauri Ojansivu 058f7e430b Update translations. 2018-07-13 02:45:13 +03:00
Lauri Ojansivu 9487406fc3 Fix typos. 2018-07-13 02:34:55 +03:00
Lauri Ojansivu bf35b09998 - Snap Caddy: set -agree flag for Let's Encrypt.
Thanks to halunk3 and xet7 !

Closes wekan/wekan-snap#54
2018-07-13 02:11:34 +03:00
Lauri Ojansivu d50e78c787 - Snap Caddy: set -agree flag for Let's Encrypt.
Thanks to halunk3 and xet7 !
2018-07-13 02:07:56 +03:00
Lauri Ojansivu 5dd43fa147 - Wekan integration with OpenShift.
Thanks to adyachok !
2018-07-13 02:05:33 +03:00
Lauri Ojansivu 5f345e851a Merge pull request #1765 from adyachok/devel
Wekan integration with OpenShift
2018-07-13 01:59:12 +03:00
Andras Gyacsok 687c7923e7 Wekan integration with OpenShift
Added OpenShift template to run WeCan in OpenShift.
Tested on OpensShift 3.7 Dedicated.
2018-07-11 18:22:21 +02:00
Lauri Ojansivu 90707aaab3 Build from source on macOS. 2018-07-09 14:35:21 +03:00
Lauri Ojansivu d5870472fb - Hotfix for mobile device.
Thanks to Haocen !
2018-07-07 08:57:37 +03:00
Lauri Ojansivu efb083aabf Merge pull request #1757 from Haocen/mobile-hotfix
Mobile hotfix
2018-07-07 08:50:19 +03:00
Haocen Xu 5c77407061 Fix missing utility function. 2018-07-06 20:15:39 -04:00
Haocen Xu 9c204d9bbe Avoid default behavior 2018-07-06 15:25:26 -04:00
Haocen Xu 616dade81c Hotfix more sortable elements 2018-07-06 14:42:36 -04:00
Haocen Xu 43d86d7d5d Hotfix for mobile device 2018-07-06 12:48:46 -04:00
Lauri Ojansivu dea9df2a3b Merge branch 'devel' 2018-07-06 16:21:54 +03:00
Lauri Ojansivu 6c7eab4456 v1.18 2018-07-06 16:20:31 +03:00
Lauri Ojansivu 35a3b0b62e - Fix Title is required by setting Checklist title during migration.
Thanks to centigrade-kdk and xet7 !
2018-07-06 16:17:09 +03:00
Lauri Ojansivu 7683f98b7b - Fix Title is required by setting Checklist title
during migration.

Thanks to centigrade-kdk and xet7 !

Closes #1576,
closes #1753
2018-07-06 16:14:07 +03:00
Lauri Ojansivu 09dbcf3bea Merge branch 'devel' 2018-07-06 15:35:14 +03:00
Lauri Ojansivu 369da1e09d v1.17 2018-07-06 15:33:34 +03:00
Lauri Ojansivu 94a1446a08 - Made Subtask Settings visible at Board menu at Sandstorm.
Thanks to xet7 !
2018-07-06 15:27:04 +03:00
Lauri Ojansivu 884cd0e6b8 - Made Subtask Settings visible at Board menu at Sandstorm.
Thanks to xet7 !
2018-07-06 15:23:29 +03:00
Lauri Ojansivu 5e17b01077 Merge branch 'devel' 2018-07-06 14:39:24 +03:00
Lauri Ojansivu 644b235bbb v1.16 2018-07-06 14:38:23 +03:00
Lauri Ojansivu 3d3096104e - Fix: Boards.forEach is not function.
Thanks to xet7 !
2018-07-06 14:35:33 +03:00
Lauri Ojansivu a41190cdf0 - Fix: Boards.forEach is not function.
Thanks to xet7 !
2018-07-06 14:32:57 +03:00
Lauri Ojansivu 1189259a55 Merge branch 'devel' 2018-07-06 13:41:34 +03:00
Lauri Ojansivu 9a053164ac v1.15 2018-07-06 13:37:44 +03:00
Lauri Ojansivu c31602da42 - Fix Title is required by making Checklist title optional.
Thanks to centigrade-kdk and xet7 !

Closes #1576,
closes #1753
2018-07-06 13:34:54 +03:00
Lauri Ojansivu 074a1218fd - Fix [Title is required](https://github.com/wekan/wekan/issues/1576)
by making [Checkist title optional](https://github.com/wekan/wekan/issues/1753).

Thanks to xet7 !

Closes #1576,
closes #1753
2018-07-06 13:29:05 +03:00
Lauri Ojansivu 5d573a7aa1 Merge branch 'devel' 2018-07-06 11:45:51 +03:00
Lauri Ojansivu c26a31f498 v1.14 2018-07-06 11:42:56 +03:00
Lauri Ojansivu 4b65c5cc33 - Fix Checklists.forEach is not a function.
Thanks to xet7 !

Closes #1753
2018-07-06 11:36:24 +03:00
Lauri Ojansivu af8bf1af2e - Fix Checklists.forEach is not a function.
Thanks to xet7 !

Closes #1753
2018-07-06 11:33:13 +03:00
Lauri Ojansivu aaae3150c4 Merge branch 'devel' 2018-07-06 01:14:53 +03:00
Lauri Ojansivu 5220111822 v1.13 2018-07-06 01:14:02 +03:00
Lauri Ojansivu 62e5e5db49 v1.12 2018-07-06 01:03:51 +03:00
Lauri Ojansivu eb6373a879 Merge branch 'ppoulard-devel' into devel 2018-07-05 23:27:07 +03:00
Lauri Ojansivu a4ca6dce25 - SSO CAS.
Thanks to ppoulard !

Closes #620
2018-07-05 23:25:13 +03:00
Lauri Ojansivu 5986f64d72 Update translations. 2018-07-05 23:23:37 +03:00
Lauri Ojansivu b1b9170afe Merge branch 'devel' of https://github.com/ppoulard/wekan into ppoulard-devel 2018-07-05 23:22:57 +03:00
Lauri Ojansivu 13e5ccb56e Fix missing space in jade file.
Thanks to xet7 !
2018-07-05 23:06:02 +03:00
Lauri Ojansivu 8d24fc4bcf Merge branch 'TNick-calendar' into devel 2018-07-05 23:04:35 +03:00
Lauri Ojansivu cc63a575ab - Calendar improvements.
Thanks to TNick !
2018-07-05 23:03:48 +03:00
Lauri Ojansivu a02c51cc3b Merge branch 'calendar' of https://github.com/TNick/wekan into TNick-calendar 2018-07-05 23:02:20 +03:00
Lauri Ojansivu ca6cadbe6d Merge branch 'TNick-nested-tasks' into devel 2018-07-05 22:54:04 +03:00
Lauri Ojansivu cc753cf4e4 - Nested tasks.
Thanks to TNick !

Closes #709
2018-07-05 22:51:10 +03:00
Lauri Ojansivu 7e4fddd932 Update translations. 2018-07-05 22:49:25 +03:00
Lauri Ojansivu 06423164fb Merge branch 'nested-tasks' of https://github.com/TNick/wekan into TNick-nested-tasks 2018-07-05 22:48:43 +03:00
Lauri Ojansivu 515c9be051 - Fix Minimize board sidebar actually just moves it over.
Thanks to dagomar !

Closes #1589
2018-07-05 21:57:17 +03:00
Nicu Tofan 243797d2e9 Merge branch 'upstream-devel' into calendar 2018-07-05 20:17:18 +03:00
Lauri Ojansivu c997786e64 - Fix lint warning: EditCardDate is assigned a value but never used no-unused-vars
Thanks to xet7 !
2018-07-04 00:01:05 +03:00
Lauri Ojansivu dd324aa581 - Fix lint warning: EditCardDate is assigned a value but never used no-unused-vars
Thanks to xet7 !
2018-07-03 23:57:05 +03:00
Lauri Ojansivu 177c00e974 - Fix warning about missing space in jade file.
Thanks to xet7 !
2018-07-03 23:40:31 +03:00
Lauri Ojansivu 067aef9de9 Fix warning about missing space in jade file.
Thanks to xet7 !
2018-07-03 23:33:28 +03:00
ppoulard 02f14d967f Fix stupid error 💥🗯💣🕳💢☠ 2018-07-03 16:21:51 +02:00
Lauri Ojansivu 122a61b333 - Revert "Fix vertical align of user avatar initials",
so that initials are again visible.

Thanks to pravdomil and xet7 !

Reverts https://github.com/wekan/wekan/pull/1714
2018-07-03 17:19:13 +03:00
ppoulard 49a89b80cf Fix QA 2018-07-03 16:08:18 +02:00
ppoulard ee81775dc8 Adding SSO CAS to Wekan 2018-07-03 15:55:19 +02:00
Lauri Ojansivu 05869792ad Revert Dockerfile changes. 2018-07-02 20:06:22 +03:00
Lauri Ojansivu 2ac7660f29 Fix typo. 2018-07-02 20:01:13 +03:00
Lauri Ojansivu abf7890941 Try to fix Dockerfile. 2018-07-02 19:59:00 +03:00
Lauri Ojansivu e139e140f4 Fix typo. 2018-07-02 19:42:04 +03:00
Lauri Ojansivu 1f7db171d9 Try to fix Dockerfile. 2018-07-02 19:38:49 +03:00
Lauri Ojansivu bf06c715fe Fix URL. 2018-07-02 19:09:57 +03:00
Lauri Ojansivu 44e20023cc Try to fix Dockerfile. 2018-07-02 19:05:39 +03:00
Lauri Ojansivu e03ee1bd2f Try to fix Dockerfile. 2018-07-02 18:51:42 +03:00
Lauri Ojansivu aea5ed7848 Try to fix Dockerfile. 2018-07-02 18:48:49 +03:00
Lauri Ojansivu bbdb6a90b2 Download node from sandstorm in Dockerfile. 2018-07-02 18:40:08 +03:00
Lauri Ojansivu f4eac833ed Merge branch 'devel' 2018-06-30 12:39:57 +03:00
Lauri Ojansivu 8fbbc104f7 v1.11 2018-06-30 12:38:40 +03:00
Lauri Ojansivu 6ba4574c67 - Less margin-bottom after minicard.
Thanks to pravdomil and xet7 !
2018-06-30 12:23:49 +03:00
Lauri Ojansivu 928d88cfe1 - More margin-bottom after minicard.
Thanks to pravdomil and xet7 !
2018-06-30 12:22:35 +03:00
Lauri Ojansivu 4f5086c5cd - Revert previous More margin-bottom after minicard.
Thanks to pravdomil and xet7 !
2018-06-30 12:03:15 +03:00
Lauri Ojansivu fe69ab9030 Merge branch 'pravdomil-patch-7' into devel 2018-06-30 11:42:47 +03:00
Lauri Ojansivu 08a1927c0c - Remove card shadow, Wekan users now prefer not to have it.
Thanks to GitHub users pravdomil and xet7 for their contributions.
2018-06-30 11:42:03 +03:00
Lauri Ojansivu f02d5e64f0 Merge branch 'patch-7' of https://github.com/pravdomil/wekan into pravdomil-patch-7 2018-06-30 11:39:51 +03:00
Lauri Ojansivu 5bca2f802b Update translations. 2018-06-30 11:34:00 +03:00
Nicu Tofan 3eba6ef285 Merge branch 'devel' into nested-tasks 2018-06-28 17:00:35 +03:00
Lauri Ojansivu 5f81b73a49 Merge branch 'devel' 2018-06-28 14:03:57 +03:00
Lauri Ojansivu ad54a8a484 v1.10 2018-06-28 14:02:57 +03:00
Lauri Ojansivu 5adce79842 Update translations (de) 2018-06-28 13:59:43 +03:00
Lauri Ojansivu 9fceb212d9 Fix migration error "TypeError: Checklists.foreach" at Snap, Docker etc.
Thanks to Jubi94, kestrelhawk and xet7 !
2018-06-28 13:56:41 +03:00
Lauri Ojansivu e044769d85 - Fix migration error "TypeError: Checklists.foreach"
Thanks to Jubi94, kestrelhawk and xet7 !

Fixes #1736,
fixes wekan/wekan-snap#51
2018-06-28 13:48:36 +03:00
Lauri Ojansivu a86a8eff2d Fix typo. 2018-06-28 00:26:37 +03:00
Lauri Ojansivu 7b9aaddb5b Merge branch 'devel' 2018-06-28 00:15:24 +03:00
Lauri Ojansivu 541dc67a02 v1.09 2018-06-28 00:14:02 +03:00
Nicu Tofan db5ff4e1e2 Changing events in calendar updates the card 2018-06-28 00:13:35 +03:00
Lauri Ojansivu d0611e1bff Update translations. 2018-06-28 00:09:52 +03:00
Lauri Ojansivu 523ebea4dd Merge branch 'TNick-calendar' into devel 2018-06-27 23:57:02 +03:00
Lauri Ojansivu bccfa320a9 - Calendar.
Thanks to TNick !
2018-06-27 23:56:15 +03:00
Lauri Ojansivu 72d0db7a59 Merge branch 'calendar' of https://github.com/TNick/wekan into TNick-calendar 2018-06-27 23:55:06 +03:00
Lauri Ojansivu ed0ef5b7d3 Merge branch 'TNick-invitation-code-setting' into devel 2018-06-27 23:38:58 +03:00
Lauri Ojansivu 5619eef620 - Restore invitation code logic. Please test and add comment
to those invitation code issues that this fixes.

Thanks to TNick !
2018-06-27 23:37:50 +03:00
Lauri Ojansivu ae2e42e1b4 Merge branch 'invitation-code-setting' of https://github.com/TNick/wekan into TNick-invitation-code-setting 2018-06-27 23:30:23 +03:00
Lauri Ojansivu 864ad3827d - To fix "title is required" fix only add-checklist-items and
revert all other migration changes.

Closes #1576,
closes #1734
2018-06-27 23:25:48 +03:00
Nicu Tofan 9cb8aab3ba Reactive change when a date is modified. 2018-06-27 23:00:14 +03:00
Nicu Tofan 374e986579 Can show card on event click 2018-06-27 22:37:32 +03:00
Nicu Tofan 3c4549fe64 Can show card on top of calendar 2018-06-27 22:23:28 +03:00
Nicu Tofan 0394a78ece Get rid of extra package
staringatlights:flow-router is another incarnation of kadira:flow-router
kadira:flow-router is not an explicit dependency but useraccounts:flow-routing depends on it.
This commit gets rid of an anoying message informing that a route has
not been found.
2018-06-27 17:39:29 +03:00
Nicu Tofan 19d239f4cf Prevent errors due to missing date fields 2018-06-27 16:25:57 +03:00
Nicu Tofan d23ac2b385 Restore invitation code logic 2018-06-27 15:30:52 +03:00
Lauri Ojansivu ae5d2b7908 Merge branch 'devel' 2018-06-27 11:07:52 +03:00
Lauri Ojansivu 766b58d91b v1.08 2018-06-27 11:06:37 +03:00
Lauri Ojansivu 663a4040f9 Add Georgian language. 2018-06-27 10:24:07 +03:00
Nicu Tofan 18467dfe40 Show cards in calendar 2018-06-26 22:11:51 +03:00
Lauri Ojansivu 2a165dccd4 Update translations (sv). 2018-06-26 21:37:21 +03:00
Lauri Ojansivu d501e5832a Fix typo. 2018-06-26 21:31:29 +03:00
Lauri Ojansivu b198a3ed99 Fix typo. 2018-06-26 21:29:38 +03:00
Nicu Tofan 226d25ca94 Introducing third board view: calendar.
A dependency to rzymek:fullcalendar has also been added.
2018-06-26 19:55:23 +03:00
Nicu Tofan b7d508e8c4 Added ability to change card's parent. 2018-06-26 17:39:31 +03:00
Nicu Tofan 439d7c3dbc Fix conflict in migrations
(Error: title is required by removing find() from all of migrations.)
2018-06-26 14:49:21 +03:00
Nicu Tofan bac490d2f3 Links for parents in card details. 2018-06-26 14:33:05 +03:00
Nicu Tofan 3a4a075dba Fix minicard parents display 2018-06-26 14:33:05 +03:00
Nicu Tofan c0ffd6c20f Show parent in card (no links, yet) 2018-06-26 14:32:51 +03:00
Nicu Tofan 94a52080cf Board level settings for subtasks 2018-06-26 14:32:51 +03:00
Nicu Tofan c9f70cf382 Check for null and undefined in board defaults 2018-06-26 14:32:51 +03:00
Nicu Tofan 04745f0c2f implement getDefaultSwimline for boards 2018-06-26 14:32:51 +03:00
Nicu Tofan aead18eb58 change all mentions of Kids => Children 2018-06-26 14:32:50 +03:00
Nicu Tofan a0c02f4a50 typo in renaming itemDetail to checklistItemDetail 2018-06-26 14:32:50 +03:00
Nicu Tofan 50f170b75d A better name for incoming subtasks 2018-06-26 14:32:50 +03:00
Nicu Tofan 989b026b33 Can now navigate to subtask 2018-06-26 14:32:50 +03:00
Nicu Tofan 4ac6a507cd Get rid of old implementation for substacks 2018-06-26 14:32:50 +03:00
Nicu Tofan cd36194477 Archive subtask instead of permanent delete 2018-06-26 14:32:49 +03:00
Nicu Tofan 6ab1cbb341 Take archived status into consideration for subtasks 2018-06-26 14:32:49 +03:00
Nicu Tofan 5a023e4315 Can add cards as subtasks 2018-06-26 14:32:49 +03:00
Nicu Tofan adb7f5b2ca Switch from subtasks to cards in model 2018-06-26 14:32:49 +03:00
Nicu Tofan fd465fbb60 Helpers for dealing with trees of cards 2018-06-26 14:32:48 +03:00
Nicu Tofan 879a84184f added ability to create a tree of cards 2018-06-26 14:32:48 +03:00
Nicu Tofan f89de026c4 Change order using drag-n-drop for subtasks 2018-06-26 14:32:48 +03:00
Nicu Tofan 5f20e56721 Remove leftovers from checklist conversion 2018-06-26 14:32:47 +03:00
Nicu Tofan d59583915c Initial implementation for subtasks 2018-06-26 14:32:47 +03:00
Nicu Tofan b627ced605 Some inspiration from checklists to subtasks 2018-06-26 14:32:47 +03:00
Nicu Tofan c3037b155f Added subtasks model and APIs for it 2018-06-26 14:32:47 +03:00
pravdomil c3e839c885 revert 6a58729 2018-06-26 10:54:22 +02:00
Lauri Ojansivu b0444ae338 Merge branch 'devel' 2018-06-26 02:37:23 +03:00
Lauri Ojansivu 43dde4a10f - Fix "Error: title is required" by removing find() from all of migrations.
Thanks to xet7 !

Closes #1576
2018-06-26 02:14:52 +03:00
Lauri Ojansivu 97922c90cb - Fix "Error: title is required" by removing find() from all of migrations.
Thanks to xet7 !

Closes #1576
2018-06-26 02:11:37 +03:00
Lauri Ojansivu c372ea02f7 Merge branch 'pravdomil-patch-6' into devel 2018-06-26 01:42:02 +03:00
Lauri Ojansivu daa95c582e - Submit inline form on click outside, fixes
"You have an unsaved description" doesn't go away after saving.

Thanks to pravdomil and xet7 !

Fixes #1287
2018-06-26 01:40:13 +03:00
Lauri Ojansivu aa2a15bf1b Fix lint errors. 2018-06-26 01:36:44 +03:00
Lauri Ojansivu f629a7b3f7 Merge branch 'patch-6' of https://github.com/pravdomil/wekan into pravdomil-patch-6 2018-06-26 01:35:09 +03:00
Lauri Ojansivu 03921a969a Merge branch 'pravdomil-patch-3' into devel 2018-06-26 01:08:18 +03:00
Lauri Ojansivu b7d51456eb - Add more card inner shadow;
- Less margin-bottom after minicard.

Thanks pravdomil and xet7 !

Related #1690
Related https://github.com/wekan/wekan/pull/1713
2018-06-26 01:06:14 +03:00
Lauri Ojansivu 6a587299b8 - Add more card inner shadow.
Thanks to pravdomil and xet7 !

Related #1690
2018-06-26 01:02:19 +03:00
Lauri Ojansivu f5aa1b795b Merge branch 'patch-3' of https://github.com/pravdomil/wekan into pravdomil-patch-3 2018-06-26 01:01:12 +03:00
Lauri Ojansivu 2efc5ab4e9 Merge branch 'pravdomil-patch-4' into devel 2018-06-26 00:46:32 +03:00
Lauri Ojansivu fde26c2183 - Fix vertical align of user avatar initials.
Thanks to pravdomil !
2018-06-26 00:45:51 +03:00
Lauri Ojansivu 8ad8f17731 Merge branch 'patch-4' of https://github.com/pravdomil/wekan into pravdomil-patch-4 2018-06-26 00:43:36 +03:00
Lauri Ojansivu e9d56b0804 Merge branch 'zypA13510-zypA13510-patch-1' into devel 2018-06-26 00:37:58 +03:00
Lauri Ojansivu 43a967b274 - Fix typo in English translation.
Thanks to zypA13510 !
2018-06-26 00:37:02 +03:00
Lauri Ojansivu c1ecaf3959 Merge branch 'zypA13510-patch-1' of https://github.com/zypA13510/wekan into zypA13510-zypA13510-patch-1 2018-06-26 00:04:05 +03:00
Lauri Ojansivu 0b5ecd24f9 Update translations. 2018-06-26 00:01:02 +03:00
Lauri Ojansivu 9a55f38d90 Change fr.md to not be executeable. 2018-06-25 23:57:53 +03:00
Lauri Ojansivu 09c8f29de8 Update translations. 2018-06-23 02:11:44 +03:00
pravdomil 620bbb3394 refactor 2018-06-19 16:43:02 +02:00
pravdomil 77ae6c17e7 submit inline form on click outside 2018-06-19 16:38:42 +02:00
pravdomil b8bbdcc4c5 fix vertical align of user avatar initials 2018-06-19 16:10:48 +02:00
pravdomil 18e936fd28 less margin-bottom after minicard 2018-06-19 14:12:17 +02:00
Yuping Zuo c94edb6bb0 Update en.i18n.json
Fixed incorrect syntax in advanced filter description.
2018-06-19 10:37:59 +08:00
Lauri Ojansivu 615f66c820 Merge branch 'devel' 2018-06-15 19:21:56 +03:00
Lauri Ojansivu 484d495259 Update translations (de). 2018-06-15 19:21:32 +03:00
Lauri Ojansivu bec0c4b4d0 Merge branch 'devel' 2018-06-14 23:56:36 +03:00
Lauri Ojansivu dfbcca2a2d Try to fix broken markdown of \ character. 2018-06-14 23:55:55 +03:00
Lauri Ojansivu 4526845fd1 Merge branch 'devel' 2018-06-14 23:33:59 +03:00
Lauri Ojansivu 73c6c07c47 v1.07 2018-06-14 23:32:30 +03:00
Lauri Ojansivu 896a149fb9 - Regex for Advanced filter.
It aims to solve search in bigger text fields, and using wildcards.
  A change to translations was made for adding info about regex and escaping characters with \

Thanks to feuerball11 and xet7 !
2018-06-14 23:29:58 +03:00
Lauri Ojansivu 0034d2d3be Merge branch 'feuerball11-feature-custom-fields' into devel 2018-06-14 23:25:39 +03:00
Lauri Ojansivu 880dcab0b1 Update translations. 2018-06-14 23:24:29 +03:00
Lauri Ojansivu 98eb4453c5 Fix typo. 2018-06-14 23:09:47 +03:00
Lauri Ojansivu 3e686e4379 Merge branch 'feature-custom-fields' of https://github.com/feuerball11/wekan into feuerball11-feature-custom-fields 2018-06-14 22:51:43 +03:00
IgnatzHome 8509dad58f changing loca to explain regex and escape character 2018-06-14 21:42:18 +02:00
Lauri Ojansivu 0f53220122 Merge branch 'devel' 2018-06-14 22:31:26 +03:00
Lauri Ojansivu 1214af04a9 v1.06 2018-06-14 22:30:36 +03:00
Lauri Ojansivu 8c0d61c4a5 v1.06 2018-06-14 22:29:54 +03:00
IgnatzHome ba2012af43 regex for advanced filter 2018-06-14 21:14:16 +02:00
IgnatzHome b5e6e6ee10 Merge branch 'devel' of https://github.com/wekan/wekan into feature-custom-fields 2018-06-14 20:38:10 +02:00
IgnatzHome 61ee6cf09f This seems to make more sense. 2018-06-14 20:26:44 +02:00
IgnatzHome 04925f7347 trying to understand hirachy 2018-06-14 20:11:29 +02:00
Lauri Ojansivu 37817fcaf8 Merge branch 'devel' 2018-06-14 20:44:43 +03:00
Lauri Ojansivu 8a7ad0df54 v1.05 2018-06-14 20:43:28 +03:00
IgnatzHome a433f7d9fe Merge branch 'feature-custom-fields' of https://github.com/feuerball11/wekan into feature-custom-fields 2018-06-14 19:42:09 +02:00
IgnatzHome 991e74bfc2 testing mobile detail view fix. 2018-06-14 19:38:57 +02:00
Lauri Ojansivu c46817f23a Fix lint errors. 2018-06-14 20:14:43 +03:00
Lauri Ojansivu 94bd63c8a7 Merge branch 'rjevnikar-fixRDate' into devel 2018-06-14 19:45:22 +03:00
Lauri Ojansivu 3e8b2620a1 Fix minicardReceivedDate typo in
1.04 regression: Socket connection error and boards not loading

Thanks to Fran-KTA and rjevnikar !

Closes #1694
2018-06-14 19:43:33 +03:00
Lauri Ojansivu ce8c78eb34 Merge branch 'fixRDate' of https://github.com/rjevnikar/wekan into rjevnikar-fixRDate 2018-06-14 19:39:27 +03:00
Lauri Ojansivu 85e02010d4 Merge branch 'feuerball11-feature-custom-fields' into devel 2018-06-14 19:38:16 +03:00
RJevnikar a912960a58 Add back language files 2018-06-14 16:31:54 +00:00
Lauri Ojansivu aeec9f6ef8 - Markdown support in Custom Fields, and view on minicard
- Fixes to Advanced Filter, you are now able to filter for Dropdown and Numbers,
  also Dropdown are now correctly displayed on minicard
- Fix Issue with custom fields shown on card
- Fix showing public board in list mode
- Fix for not able to remove Custom Field "Show on Card"

Related #807

Closes #1659,
closes #1623,
closes #1683
2018-06-14 19:28:06 +03:00
RJevnikar 718adc6c47 Fix minicardReceivedDate typo identified in #1694 2018-06-14 16:11:41 +00:00
Lauri Ojansivu 454aa05987 Another fix for checklists item migration error "title is required"
https://github.com/wekan/wekan/commit/8d5cbf1e6c2b6d467fe1c0708cd794fd11b98a2e#commitcomment-29362180

Thanks to oec !

Closes #1576
2018-06-14 19:03:44 +03:00
Lauri Ojansivu 23726136bd Merge branch 'feature-custom-fields' of https://github.com/feuerball11/wekan into feuerball11-feature-custom-fields 2018-06-14 18:58:09 +03:00
Lauri Ojansivu fa82efe7d2 Merge branch 'rjevnikar-dateColourFix' into devel
Fix data colour changes on cards.

Related https://github.com/wekan/wekan/pull/1698

Fixes #1693
2018-06-14 18:47:26 +03:00
Lauri Ojansivu 011fad6701 Update translations. 2018-06-14 18:46:28 +03:00
Ignatz fcf262cc98 testing markdown support for custom fields 2018-06-14 15:08:30 +02:00
Ignatz c5f0e87dd0 fix for not able to remove "Show on Card" 2018-06-14 14:10:30 +02:00
Ignatz 6a154ee9b0 correcting error in advanced filter 2018-06-14 12:56:29 +02:00
Ignatz 558539e21b trying to fix integer search 2018-06-14 12:49:59 +02:00
Ignatz 571f55f904 fixing search for dropdown fields, and error on loading board 2018-06-14 12:41:16 +02:00
Ignatz 259614b647 trying to fix display Issue with dropdown custom fields 2018-06-14 11:58:37 +02:00
Ignatz 8ec60879dc hotfix public board 2018-06-14 10:55:53 +02:00
RJevnikar edd2e9db3c Fix lint errors 2018-06-13 22:26:45 +00:00
RJevnikar 67454d0491 Fix data colour changes on cards.
Addressing both #1685 and #1693
2018-06-13 22:18:00 +00:00
Lauri Ojansivu 9e14733478 Merge branch 'devel' 2018-06-13 00:35:11 +03:00
Lauri Ojansivu 848d8ac95d Removed duplicate text. 2018-06-13 00:34:51 +03:00
Lauri Ojansivu 93e7c8aecf Merge branch 'devel' 2018-06-12 22:21:23 +03:00
Lauri Ojansivu a98ae8dc71 v1.04 2018-06-12 22:20:17 +03:00
Lauri Ojansivu 193ff20c23 Add SECURITY.md 2018-06-12 22:11:43 +03:00
Lauri Ojansivu 92a85a991b Merge branch 'rjevnikar-labelText' into devel 2018-06-12 21:48:46 +03:00
Lauri Ojansivu 38af71d9c9 - Change label text colour to black for specific label colours for better visibility
Thanks to rjevnikar !
2018-06-12 21:48:02 +03:00
Lauri Ojansivu 246267276a Update translations. 2018-06-12 21:46:37 +03:00
Lauri Ojansivu ea19176d3c Merge branch 'labelText' of https://github.com/rjevnikar/wekan into rjevnikar-labelText 2018-06-12 21:46:03 +03:00
Lauri Ojansivu f28889de59 - Modify card covers/mini-cards so that:
1) Received date is shown unless there is a start date
  2) Due Date is shown, unless there is an end date.

This begins to address #1668

Thanks to rjevnikar !
2018-06-12 21:42:52 +03:00
Lauri Ojansivu aa7199af2d Merge branch 'rjevnikar-cardCoverTimeBadges' into devel 2018-06-12 21:36:16 +03:00
Lauri Ojansivu fba0a52e4a Update translations. 2018-06-12 21:34:57 +03:00
Lauri Ojansivu 6d7bdad140 Merge branch 'cardCoverTimeBadges' of https://github.com/rjevnikar/wekan into rjevnikar-cardCoverTimeBadges 2018-06-12 21:21:56 +03:00
Lauri Ojansivu aef871833b - SECURITY FIX: Do not publish all of people collection.
Thanks to Adrian Genaid.
2018-06-12 21:18:38 +03:00
Lauri Ojansivu dda49d2f07 - Security Fix: Do not publish all of people collection.
Thanks to Adrian Genaid !
2018-06-12 21:13:50 +03:00
RJevnikar 199ea3d6f9 Change label text colour to black for specific label colours for better visibility 2018-06-11 16:21:35 +00:00
Lauri Ojansivu 6478dd7da8 Merge branch 'devel' 2018-06-10 19:45:33 +03:00
Lauri Ojansivu 53bd527947 - Add Khmer language.
Thanks to xet7 and translators !
2018-06-10 19:45:03 +03:00
Lauri Ojansivu 2156e45869 Add Khmer language. 2018-06-10 19:42:24 +03:00
Lauri Ojansivu 72a66c1d5b Merge branch 'devel' 2018-06-10 18:41:58 +03:00
Lauri Ojansivu 1ced919dfb Update translations. 2018-06-10 18:38:07 +03:00
Lauri Ojansivu d948e78d1e Update translations. 2018-06-10 18:02:07 +03:00
Lauri Ojansivu bd5fd77655 Fix typo. 2018-06-10 17:45:02 +03:00
RJevnikar 45cf2843a6 Adjust classes given to due date to take into account end date 2018-06-08 21:09:52 +00:00
RJevnikar ca51ace22d Modify mini cards so that received date is shown if there is no start date, and due date is shown if there is no end date. 2018-06-08 20:42:16 +00:00
Lauri Ojansivu 93a7040c77 Update translations. 2018-06-08 18:00:35 +03:00
Lauri Ojansivu d4df405862 Merge branch 'devel' 2018-06-08 14:20:40 +03:00
Lauri Ojansivu dc687848e6 v1.03 2018-06-08 14:19:45 +03:00
Lauri Ojansivu 85187817a7 Update translations. 2018-06-08 14:17:04 +03:00
Lauri Ojansivu 5f5a1b780e Merge branch 'rjevnikar-moreFieldsColours' into devel
Closes #833
2018-06-08 01:52:27 +03:00
Lauri Ojansivu e31741cd7b Update translations. 2018-06-08 01:51:58 +03:00
Lauri Ojansivu d5bfa468f7 - Additional label colors
- Assigned By and Requested By text fields on card
- Delete board from Recycle Bin

Thanks to JamesLavin and rjevnikar !
2018-06-08 01:18:41 +03:00
Lauri Ojansivu 9990f9856b Change button order at Boards Recycle Bin. 2018-06-08 00:41:39 +03:00
Lauri Ojansivu b3bb03fed4 Merge branch 'moreFieldsColours' of https://github.com/rjevnikar/wekan into rjevnikar-moreFieldsColours 2018-06-07 22:53:06 +03:00
RJevnikar 1332a57890 Fix double comma in i18n/en.i18n.json 2018-06-07 19:15:58 +00:00
Lauri Ojansivu 123d9659c1 - Update to newest Sandstorm fork of Node.js that includes
performance etc fixes.

Thanks to xet7 !
2018-06-07 22:13:39 +03:00
Lauri Ojansivu 90d55777f7 Copy latest Sandstorm Node.js fork binary from installed Sandstorm
/opt/sandstorm/sandstorm-234/bin/node to https://releases.wekan.team
download server.

Node binary is compiled by https://github.com/kentonv
when doing new release of Sandstorm.

Source code of binary is at:
https://github.com/sandstorm-io/node
2018-06-07 21:54:08 +03:00
RJevnikar ec4e1b6eff Fix spacing on cardDetails.jade to get 'Add' buttons in <a> tag for RequestedBy & AssignedBy 2018-06-07 16:26:20 +00:00
RJevnikar c72b769f82 Attempt to lineup buttons in recycle bin & get delete board popup to appear 2018-06-07 16:02:44 +00:00
Lauri Ojansivu 8471f389eb Merge branch 'rjevnikar-boardViewMigration' into devel
Fixes #1675
2018-06-06 23:12:00 +03:00
Lauri Ojansivu 23e6b4ec0a - Try to fix: Missing board-view-lists Field after DB updated to Wekan 1.02.
Thanks to rjevnikar !
2018-06-06 23:10:40 +03:00
RJevnikar 8f364281d2 Remove delete option from board hamburger menu 2018-06-06 20:05:44 +00:00
RJevnikar 1f17cee39b Remove double template for deleteCardPopup 2018-06-06 17:45:43 +00:00
RJevnikar 4787a1186b Adjust 'add-profile-view' in migrations.js in attempt to resolve 1675 2018-06-06 17:36:20 +00:00
RJevnikar 3c4b09157e Fix AssignedBy & RequestedBy fields & forms 2018-06-06 16:44:15 +00:00
RJevnikar 87ee0ca646 Fix display of card details - cardDetails.styl - remove trailing comma 2018-06-06 16:31:18 +00:00
RJevnikar de59758471 Add delete board to Recycle Bin, fix delete-board menu item on board menu 2018-06-06 15:27:05 +00:00
RJevnikar ea109cfdd7 Add migrations for requestedBy and assignedBy fields. 2018-06-06 13:19:53 +00:00
RJevnikar 9035989abf Finish adding delete board feature 2018-06-05 22:03:46 +00:00
RJevnikar aa6076e087 Fix lint error 2018-06-05 21:29:28 +00:00
RJevnikar 78b9436f38 Fix problems highlighted by Codacy/PR Quality Review 2018-06-05 21:21:14 +00:00
RJevnikar 3ce3fa74b3 Add additional label colours (from pull by JamesLavin), Add Assigned & Requested By text fields. 2018-06-05 20:23:29 +00:00
Lauri Ojansivu d6eff2a074 Update translations. 2018-06-04 00:15:22 +03:00
Lauri Ojansivu ccf1e8bc3c Merge branch 'devel' 2018-05-28 22:02:49 +03:00
Lauri Ojansivu 6d75fe4d86 Update translations. 2018-05-28 22:02:30 +03:00
Lauri Ojansivu 82a01edc54 Merge branch 'devel' 2018-05-26 09:40:43 +03:00
Lauri Ojansivu 9ff2340cdb v1.02 2018-05-26 09:39:18 +03:00
Lauri Ojansivu b727204716 Merge branch 'devel' of github.com:wekan/wekan into devel 2018-05-26 09:37:39 +03:00
Lauri Ojansivu 5b4f2f55aa Update translations.
Correction: Releasing Wekan v1.02
2018-05-26 09:36:11 +03:00
Lauri Ojansivu 60119153de Update translations. 2018-05-26 09:29:58 +03:00
Lauri Ojansivu 2b2d596da6 v1.0.2 2018-05-26 08:58:40 +03:00
Lauri Ojansivu 63c1ef9f9e Actually, without @latest it works the same. 2018-05-26 08:47:37 +03:00
Lauri Ojansivu 0cc183682e Use latest npm. 2018-05-26 08:43:20 +03:00
Lauri Ojansivu 4d193f5650 Remove bcrypt, continued. 2018-05-26 08:28:16 +03:00
Lauri Ojansivu 73c4806864 Merge branch 'xadagaras-bugfix/received_end_date_picker' into devel 2018-05-26 08:27:07 +03:00
Lauri Ojansivu b0cf60a3d9 - Fix Received Date and End Date on Cards.
Thanks to xadagaras !
2018-05-26 07:52:20 +03:00
Lauri Ojansivu 3ca3d063a7 Merge branch 'bugfix/received_end_date_picker' of https://github.com/xadagaras/wekan into xadagaras-bugfix/received_end_date_picker 2018-05-26 07:49:49 +03:00
Lauri Ojansivu 01741750f8 Merge branch 'kubiko-devel' into devel 2018-05-26 07:48:38 +03:00
Lauri Ojansivu 4377381fd3 - Snap: Filtering out swap file created at build time, adding stage package.
Thanks to kubiko !
2018-05-26 07:47:59 +03:00
Lauri Ojansivu 9cf1b62cd6 Merge branch 'devel' of https://github.com/kubiko/wekan into kubiko-devel 2018-05-26 07:45:41 +03:00
Lauri Ojansivu 5ded2e5121 - Removed binary version of bcrypt because of vulnerability that has issue that is not fixed yet. This may cause some slowdown.
Thanks to xet7 !
2018-05-26 07:44:36 +03:00
Lauri Ojansivu 7eeabf14be Remove binary version of bcrypt because of security vulnerability.
This may cause some slowdown.
2018-05-26 07:33:32 +03:00
Daniel Kreuter be507e567a Extend editCardReceivedDatePopup and editCardEndDatePopup from DatePicker to fix #1654 2018-05-25 19:44:49 +02:00
Ondrej Kubik 1117d1c2ae filtering out swap file created at build time, adding stage package
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2018-05-25 13:49:24 +00:00
Lauri Ojansivu 9eaac52b73 Merge branch 'devel' 2018-05-24 18:07:20 +03:00
Lauri Ojansivu 4b20102139 Remove bcrypt 2018-05-24 18:06:39 +03:00
Lauri Ojansivu edae64b1c7 Merge branch 'devel' 2018-05-24 14:08:44 +03:00
Lauri Ojansivu 9242bdb10b Go back to xss 0.3.8, because 1.0.0 did break snap build. 2018-05-24 14:07:57 +03:00
Lauri Ojansivu 171d0c8629 Merge branch 'devel' 2018-05-24 11:04:53 +03:00
Lauri Ojansivu a69997d31e Merge remote-tracking branch 'upstream/devel' into devel 2018-05-24 11:04:31 +03:00
Lauri Ojansivu 31e4400c66 Merge branch 'devel' 2018-05-24 10:55:39 +03:00
Lauri Ojansivu 3bcd578fcb Merge branch 'greenkeeper/xss-1.0.0' into devel 2018-05-24 10:55:12 +03:00
Lauri Ojansivu 4c5daf5d85 - Update xss to version 1.00
Thanks to xet7 !
2018-05-24 10:51:29 +03:00
greenkeeper[bot] 5b4d75a976 fix(package): update xss to version 1.0.0 2018-05-24 07:11:37 +00:00
Lauri Ojansivu 05020241aa Merge branch 'devel' 2018-05-23 22:55:29 +03:00
Lauri Ojansivu b9c63a8c8f v1.01 2018-05-23 22:54:12 +03:00
Lauri Ojansivu f75f686271 Update translations. 2018-05-23 21:56:11 +03:00
Lauri Ojansivu 505fc71665 - Possible quickfix for all customFields Import errors, please test.
Thanks to feuerball11 and xet7 !

Related #807

Closes #1652, closes #1651
2018-05-23 21:04:24 +03:00
Lauri Ojansivu 529594ef55 Fix lint errors. 2018-05-23 20:58:28 +03:00
Ignatz 3d1f004e90 lint corrections 2018-05-23 11:04:12 +02:00
Ignatz 0195044ba1 possible quickfix for all customFields Import errors 2018-05-23 11:02:23 +02:00
Lauri Ojansivu e8c24aeaf9 Merge branch 'devel' 2018-05-22 09:46:20 +03:00
Lauri Ojansivu ad8f227880 More details to issue template. 2018-05-22 09:45:59 +03:00
Lauri Ojansivu ddfcb235cc Merge branch 'devel' 2018-05-22 09:38:15 +03:00
Lauri Ojansivu c4d83c6e66 Simplify issue template 2018-05-22 09:37:46 +03:00
Lauri Ojansivu 90b589d993 Remove duplicate Contributing.md 2018-05-22 09:29:00 +03:00
Lauri Ojansivu 94fc172366 Merge branch 'devel' 2018-05-21 17:30:21 +03:00
Lauri Ojansivu d4cc337577 v1.00 2018-05-21 17:29:04 +03:00
Lauri Ojansivu 25695bdef2 Update translations. 2018-05-21 17:22:46 +03:00
Lauri Ojansivu af496839f5 Fix typo.
Thanks to yarons !

Closes #1647
2018-05-21 16:31:09 +03:00
Lauri Ojansivu a8feb8ed32 Merge branch 'devel' 2018-05-21 15:07:12 +03:00
Lauri Ojansivu 9c09d926e3 v0.99 2018-05-21 15:05:56 +03:00
Lauri Ojansivu cba480d3ae Update translations (de) 2018-05-21 15:03:26 +03:00
Lauri Ojansivu dbfdba75f9 Merge branch 'feuerball11-feature-advanced-filter' into devel 2018-05-21 02:41:48 +03:00
Lauri Ojansivu d46afc12be Advanced Filter for Custom Fields.
Thanks to feuerball11 and xet7 !
2018-05-21 02:41:02 +03:00
Lauri Ojansivu 531cea489e Update translations. 2018-05-21 02:27:15 +03:00
Lauri Ojansivu 9e4758ec9e Update translations. 2018-05-21 01:03:42 +03:00
Lauri Ojansivu e8206f2983 Merge branch 'feature-advanced-filter' of https://github.com/feuerball11/wekan into feuerball11-feature-advanced-filter 2018-05-20 22:53:36 +03:00
SpeaKeasY e5c6da5a39 Added initial DJango 2.0.5 project config with pyjade, python 3.6.5 venv. 2018-05-20 18:38:33 +00:00
IgnatzHome 2119a6568b forgot a ' 2018-05-20 14:59:32 +02:00
IgnatzHome dd7c9997a9 Removing Debug Lines, correcting behavior, caching las valide filter, and adding description 2018-05-20 14:53:00 +02:00
IgnatzHome 256ca129f0 Correcting not Filter 2018-05-20 14:03:48 +02:00
IgnatzHome 6d9ac3ae48 testing theorie: subcommands are allways 1 entry 2018-05-20 13:19:18 +02:00
IgnatzHome 59046d448f making custom-fields uneditable on minicard 2018-05-20 12:24:07 +02:00
IgnatzHome d9e291635a customFields bevore mebers on minicard 2018-05-20 12:17:25 +02:00
Lauri Ojansivu b8158fadfc Merge branch 'devel' 2018-05-20 13:13:35 +03:00
Lauri Ojansivu 1133b7a04a Update translations. 2018-05-20 13:13:15 +03:00
IgnatzHome 43fe9ef34a style correction for custom fields on minicard 2018-05-20 12:11:58 +02:00
IgnatzHome f910b66ef2 correcting indent in jade 2018-05-20 11:49:49 +02:00
IgnatzHome bfac626fa4 showOnCard test implementation 2018-05-20 11:40:32 +02:00
IgnatzHome ecbb8ef071 correcting strings not part of subcommand 2018-05-20 11:27:22 +02:00
IgnatzHome 1c0c5bde0f More conditions and logic Operators, Also Brackets. 2018-05-20 11:15:57 +02:00
IgnatzHome c3044a6b8b removing .cmd in oricessing Operators 2018-05-20 10:20:29 +02:00
IgnatzHome 778a29855f stringify console.logs becouse of asynchrone nature from chromes interpretation... WAT 2018-05-20 10:11:46 +02:00
IgnatzHome eb859dac3a More Debugging Logs 2018-05-20 09:57:40 +02:00
IgnatzHome 9ac1164440 Testing 'or' condition for advanced Filter 2018-05-20 09:47:20 +02:00
IgnatzHome 39974c9532 rewrite Filter._getMongoSelecto to not include Empty Filter. 2018-05-20 09:33:51 +02:00
IgnatzHome 4ff8989e8f More Debugging 2018-05-19 22:29:12 +02:00
IgnatzHome 2bf13a50c4 find to findOne 2018-05-19 22:17:00 +02:00
IgnatzHome 382b14ea27 debugging _fieldNameToId 2018-05-19 21:54:20 +02:00
IgnatzHome 17fcfd3697 correcting _fieldNameToId(field); 2018-05-19 21:42:11 +02:00
IgnatzHome 811ccf0f10 i was constructing the wrong and the whole time.. *sigh* 2018-05-19 21:31:43 +02:00
IgnatzHome 422424d21c fixing string detection in advanced filter 2018-05-19 21:19:10 +02:00
IgnatzHome 0bdc7efc8b another debug line 2018-05-19 21:06:53 +02:00
IgnatzHome 32058e8018 damm i got the eslint file again.... 2018-05-19 20:53:59 +02:00
IgnatzHome ba12b53e49 correct way, wrong idea 2018-05-19 20:53:25 +02:00
IgnatzHome b9ead144fb javascript is confusing sometimes 2018-05-19 20:33:49 +02:00
IgnatzHome 1d58e40133 this took me way too long 2018-05-19 20:17:52 +02:00
IgnatzHome cd749bc385 console log for debug 2018-05-19 19:59:10 +02:00
IgnatzHome 01cd2df369 correcting return type from constructed 2018-05-19 19:16:10 +02:00
IgnatzHome 1854f5c061 correcting push not part of string 2018-05-19 19:00:20 +02:00
IgnatzHome b00bd04baa first test for Advanced Filter 2018-05-19 18:38:48 +02:00
Lauri Ojansivu 8b32cf42cb Merge branch 'devel' 2018-05-19 18:45:37 +03:00
Lauri Ojansivu 3075791a93 v0.98 2018-05-19 18:43:59 +03:00
Lauri Ojansivu 38ab2b766d Merge branch 'feuerball11-feature-custom-fields-filter' into devel 2018-05-19 18:40:03 +03:00
Lauri Ojansivu 410e5aa28d - Filtering by Custom Field
- Update to NPM 6.0.1 and MongoDB 3.2.20

Thanks to feuerball11 and xet7 !
2018-05-19 18:37:02 +03:00
Lauri Ojansivu 82f7541131 Update translations. 2018-05-19 18:30:29 +03:00
Lauri Ojansivu 106b135eba Use NPM 6.0.1 2018-05-19 18:13:43 +03:00
Lauri Ojansivu 7dfec58128 Merge branch 'feature-custom-fields-filter' of https://github.com/feuerball11/wekan into feuerball11-feature-custom-fields-filter 2018-05-19 17:39:05 +03:00
IgnatzHome 977bce9eb2 correcting 'no custom fields' 2018-05-19 16:23:18 +02:00
IgnatzHome bc0aef3332 More Filter Corrections (Custom Fields) 2018-05-19 16:06:06 +02:00
Lauri Ojansivu 8101d7ade8 MongoDB v3.2.20 2018-05-19 17:05:28 +03:00
IgnatzHome f6d19d2833 Filter Sidebar Corrections 2018-05-19 15:40:51 +02:00
IgnatzHome c431af27c2 Correcting FIlter search with Multiple Custom Fields 2018-05-19 15:35:25 +02:00
IgnatzHome 973a0d93ae reverting .eslintrc (i always forget to dont commit this) 2018-05-19 15:21:48 +02:00
IgnatzHome cbdb7b4f64 Correcting constructed mongoSelector 2018-05-19 15:21:12 +02:00
Lauri Ojansivu 9c5bcd7321 Merge branch 'devel' 2018-05-19 16:10:30 +03:00
Lauri Ojansivu 8f0c3b45c0 Fix date. 2018-05-19 16:10:12 +03:00
IgnatzHome 78317ef792 Filter on custom fields presence 2018-05-19 14:51:01 +02:00
IgnatzHome 1ab4f5b913 Merge remote-tracking branch 'original/devel' into feature-custom-fields-filter 2018-05-19 14:18:40 +02:00
Lauri Ojansivu 04f09b6042 Merge branch 'devel' 2018-05-19 14:21:30 +03:00
Lauri Ojansivu f48e2fbd14 v0.97 2018-05-19 14:20:08 +03:00
Lauri Ojansivu 27f9e9e104 Update translations. 2018-05-19 14:18:20 +03:00
Lauri Ojansivu 9a509778d3 Merge branch 'devel' 2018-05-19 14:10:53 +03:00
Lauri Ojansivu 12b08b9915 v0.96 2018-05-19 14:09:33 +03:00
Lauri Ojansivu bd8a8ab90e Update translations. 2018-05-19 14:01:16 +03:00
Lauri Ojansivu 642507fb42 Merge branch 'feature-custom-fields' of https://github.com/feuerball11/wekan into devel 2018-05-19 13:06:06 +03:00
IgnatzHome 4600e4e237 Migration Test 2018-05-19 08:58:30 +02:00
Lauri Ojansivu c2e6f67689 Update translations. 2018-05-18 22:49:35 +03:00
Lauri Ojansivu 9dec10bad3 Add CLA back 2018-05-18 18:57:42 +03:00
Ignatz 3e390503fc first test for custom fields filter 2018-05-18 16:41:03 +02:00
Lauri Ojansivu a7f8614f04 Fix: checklistItems broken after upgrade.
Thanks to feuerball11 !

Closes #1636
2018-05-18 16:29:18 +03:00
Lauri Ojansivu 0be7a5d783 Merge branch 'franksiler-migration-checklistitems-fix' into devel 2018-05-18 16:26:44 +03:00
Lauri Ojansivu 41b938ea69 Merge branch 'migration-checklistitems-fix' of https://github.com/franksiler/wekan into franksiler-migration-checklistitems-fix 2018-05-18 16:25:42 +03:00
Lauri Ojansivu 12a374bec7 Changed place of greenkeeper badge. 2018-05-18 16:24:26 +03:00
Lauri Ojansivu 8dd1566316 Merge branch 'greenkeeper/initial' into devel 2018-05-18 16:23:53 +03:00
Lauri Ojansivu 50f751e0a9 Merge branch 'devel' into greenkeeper/initial 2018-05-18 16:22:53 +03:00
Lauri Ojansivu 1984a6b1c8 Merge branch 'feuerball11-feature-custom-fields' into devel 2018-05-18 16:19:48 +03:00
Lauri Ojansivu 1d904adc61 - Add: Custom Fields.
Thanks to feuerball11, papoola and xet7 !

Closes #807
2018-05-18 16:15:49 +03:00
Lauri Ojansivu 22882a0603 Update translations. 2018-05-18 16:11:32 +03:00
Lauri Ojansivu 9b465bc98b Fix lint errors back to eslint requirements. 2018-05-18 15:20:20 +03:00
Ignatz ef99e6a6b1 indend corrections 2018-05-18 11:13:01 +02:00
greenkeeper[bot] 61b240d126 docs(readme): add Greenkeeper badge 2018-05-18 09:09:23 +00:00
greenkeeper[bot] 1f3b5604c0 chore(package): update dependencies 2018-05-18 09:09:21 +00:00
Ignatz 3bf4f3ef40 Line Endings back to Unix (Was Temporarly on Windows) 2018-05-18 11:03:04 +02:00
Ignatz 838578657d template literals correction 2018-05-18 10:43:43 +02:00
Ignatz d6cfac0122 linter corrections 2018-05-18 10:24:51 +02:00
Ignatz c1d2e27c09 correcting missing loca 2018-05-18 10:02:32 +02:00
IgnatzHome b43779e408 That should do it 2018-05-17 22:15:35 +02:00
IgnatzHome f9df38d333 Style Changes 2018-05-17 22:14:41 +02:00
IgnatzHome 80088174fc More style corrections 2018-05-17 22:08:17 +02:00
IgnatzHome 0dfc62c025 Removing Doupling start / end and more style corrections 2018-05-17 21:57:54 +02:00
IgnatzHome 7186b947b2 correcting style errors 2018-05-17 21:49:14 +02:00
IgnatzHome 98df01060d removing checkbox types part 2 2018-05-17 21:17:40 +02:00
IgnatzHome 9184bf3946 removing checkbox type 2018-05-17 21:06:52 +02:00
IgnatzHome 9518a5c11e resolving merge conflicts 2018-05-17 20:21:07 +02:00
Frank Siler 9a766c0f74 ensure checklistItem titles are correct when migrating 2018-05-16 19:40:27 -05:00
Lauri Ojansivu c0c7b269a7 Update translations. 2018-05-16 12:58:31 +03:00
Lauri Ojansivu 5dafea405d Merge branch 'devel' 2018-05-10 09:53:08 +03:00
Lauri Ojansivu 77a5f8f339 Update dependencies. 2018-05-10 09:52:43 +03:00
Lauri Ojansivu be97efb791 Merge branch 'devel' 2018-05-10 02:33:01 +03:00
Lauri Ojansivu 7e34dd0c2b Update translations. 2018-05-10 02:31:22 +03:00
Lauri Ojansivu 0ecbb73419 Merge branch 'devel' 2018-05-08 11:14:26 +03:00
Lauri Ojansivu f3aa524b77 v0.95 2018-05-08 11:13:35 +03:00
Lauri Ojansivu 792f187d06 Update translation (de). 2018-05-08 10:57:31 +03:00
Lauri Ojansivu 4c18df757f Update translations. 2018-05-08 10:54:24 +03:00
Lauri Ojansivu 9d47d3e397 Admin Panel: Option to block username change.
Thanks to thiagofernando !
2018-05-08 01:33:52 +03:00
Lauri Ojansivu 0b9328a1be Merge pull request #1627 from thiagofernando/devel
Includes possibility to block username change
2018-05-08 01:31:01 +03:00
Lauri Ojansivu fc033c30e6 Add a new API route to create a new label in a given board.
Thanks to ThisNeko !
2018-05-08 01:29:10 +03:00
Lauri Ojansivu da180472c1 Merge pull request #1630 from ThisNeko/devel
Add a new API route to create a new label in a given board
2018-05-08 01:27:09 +03:00
Lauri Ojansivu cdc2b920ee Fix error: title is required.
Thanks to Shahar-Y !

Related https://github.com/wekan/wekan/commit/8d5cbf1e6c2b6d467fe1c0708cd794fd11b98a2e#commitcomment-28880774

Closes #1576
2018-05-08 01:24:24 +03:00
Lauri Ojansivu 16d75f549d Fix error: title is required.
Related https://github.com/wekan/wekan/commit/8d5cbf1e6c2b6d467fe1c0708cd794fd11b98a2e

Closes #1576
2018-05-08 01:20:56 +03:00
Thiago Fernando S. dos Santos c43508cacb send settingBody.jade 2018-05-07 13:57:23 -03:00
NET\faguet 6b2d022a93 correction 2018-05-07 14:27:07 +02:00
NET\faguet 1cb8a6e7fe Add a new API route to create a new label in a given board 2018-05-07 13:32:33 +02:00
Lauri Ojansivu 5e109de8d5 Fix link. 2018-05-06 18:21:21 +03:00
Lauri Ojansivu c4b5145db4 Fix link. 2018-05-06 18:12:51 +03:00
Lauri Ojansivu e5638e5e5a Fix link 2018-05-06 18:07:56 +03:00
Lauri Ojansivu 7e49ab5fea Tried to fix, but it did not work yet. 2018-05-06 18:00:36 +03:00
Lauri Ojansivu 682eab74d9 Fix lint error.
Related https://github.com/wekan/wekan/pull/1626
2018-05-05 00:30:34 +03:00
Lauri Ojansivu 9edbc349b9 - REST API Edit Card Labels.
Thanks to ThisNeko !
2018-05-04 23:57:40 +03:00
Thiago Fernando S. dos Santos c751f05962 revert translations files 2018-05-04 17:35:37 -03:00
Thiago Fernando S. dos Santos 2fa1b3122d Includes possibility to block username change 2018-05-04 16:44:50 -03:00
Lauri Ojansivu c48c18c4e9 Merge pull request #1626 from ThisNeko/devel
API Edit Card Labels
2018-05-04 15:50:00 +03:00
thisNeko 2da157dbb0 API Edit Card Labels 2018-05-04 14:32:36 +02:00
Lauri Ojansivu daeb06f7b7 Merge branch 'devel' 2018-05-03 09:27:29 +03:00
Lauri Ojansivu dcd5af0a76 v0.94 2018-05-03 09:26:09 +03:00
Lauri Ojansivu e576e0f9cf Merge pull request #1622 from couscous3/patch-2
POST /cards: allow setting card members
2018-05-03 09:20:01 +03:00
couscous3 83e7e4fb27 POST /cards: allow setting card members
if members isn't specified then the authorId will be the only member of the card, otherwise the provided members attribute will be used
2018-05-03 00:35:47 +02:00
Lauri Ojansivu 01804daf24 Merge branch 'devel' 2018-05-02 18:19:19 +03:00
Lauri Ojansivu d77e54fff6 v0.93 2018-05-02 18:18:16 +03:00
Lauri Ojansivu 0aa78d9847 Merge branch 'lichtamberg-devel' into devel 2018-05-02 17:18:22 +03:00
Lauri Ojansivu e5c1351e82 - Checklist items lineheight to 18px, and positioning improvements.
Thanks to lichtamberg !
2018-05-02 17:16:56 +03:00
Peter L f6656a4791 Changed px to em and added margin for add-checklist-item link 2018-05-02 15:32:53 +02:00
Peter L d2354827da Move checkbox down, so it aligns at the same height like the text 2018-05-02 15:20:54 +02:00
Peter Lampesberger 814164e53e Change checklist-item line-height to 18px. Fixes #1619 2018-05-02 14:43:47 +02:00
Lauri Ojansivu bde9cc7cea Merge branch 'devel' 2018-05-01 23:07:53 +03:00
Lauri Ojansivu 7b0cf760e9 Better text formatting. 2018-05-01 23:07:27 +03:00
Lauri Ojansivu 6a16063f7d Merge branch 'devel' 2018-05-01 20:53:02 +03:00
Lauri Ojansivu 130aa1161e v0.92 2018-05-01 20:50:21 +03:00
Lauri Ojansivu eaebe8b893 Try to fix: Users who register with an invitation code can't see lists/cards.
Please test.

Thanks to andresmanelli !

Related #1610
2018-05-01 20:03:16 +03:00
Lauri Ojansivu c4b898633e Try to fix: Users who register with an invitation code can't see lists/cards.
Please test.

Thanks to andresmanelli !

Related #1610
2018-05-01 20:00:50 +03:00
Lauri Ojansivu 88fca396d4 Merge branch 'devel' 2018-05-01 13:08:35 +03:00
Lauri Ojansivu cfa3c4bfcb v0.91 2018-05-01 13:07:45 +03:00
Lauri Ojansivu bf7520c430 Merge branch 'zebby76-devel' into devel 2018-05-01 13:06:15 +03:00
Lauri Ojansivu 166324df01 - Fix Wekan Import / Export lists not being sortable.
Thanks to zebby76 !
2018-05-01 13:05:17 +03:00
zebby76 539c1ab87a Define sort property on swimlanes and lists 2018-05-01 07:55:41 +02:00
Lauri Ojansivu e5cb190693 Merge branch 'devel' 2018-05-01 00:12:21 +03:00
Lauri Ojansivu 359d0b376f v0.90 2018-05-01 00:10:59 +03:00
Lauri Ojansivu a6cf57e988 - Remove space from between checklist items, so longer checklists can be seen at once.
Thanks to xet7 !
2018-05-01 00:07:16 +03:00
Lauri Ojansivu 1124f4120c - Remove space from between checklist items, so longer checklists can be seen at once.
Thanks to xet7 !
2018-05-01 00:05:09 +03:00
Lauri Ojansivu 6ee6dbade5 Merge branch 'devel' 2018-04-30 18:45:14 +03:00
Lauri Ojansivu f219e2151f Text to lowercase. 2018-04-30 16:45:15 +03:00
Lauri Ojansivu c5b7f30d65 Shorter text. 2018-04-30 16:43:26 +03:00
Lauri Ojansivu e3f1fbc967 Fix links. 2018-04-30 16:37:49 +03:00
Lauri Ojansivu e6df7d81cf Update readme layout. 2018-04-30 16:29:08 +03:00
Lauri Ojansivu 24ad97cddb Add badges. 2018-04-30 16:26:18 +03:00
Lauri Ojansivu b70252468a Merge branch 'devel' 2018-04-29 11:47:17 +03:00
Lauri Ojansivu f9941c0f9c v0.89 2018-04-29 11:46:23 +03:00
Lauri Ojansivu 26c8505d9e Merge branch 'devel' 2018-04-29 10:48:35 +03:00
Lauri Ojansivu e7e558e865 Merge branch 'zebby76-devel' into devel 2018-04-29 09:19:44 +03:00
Lauri Ojansivu 6167d447fd - Fix Wekan import / Export for ChecklistItems.
Thanks to zebby76 !
2018-04-29 09:11:23 +03:00
Sebastian Molle 30b17ff6c9 Fix Wekan import / Export for ChecklistItems 2018-04-28 22:17:56 +02:00
Lauri Ojansivu df91d1e632 Merge branch 'devel' 2018-04-27 18:14:36 +03:00
Lauri Ojansivu 1f42aac19f v0.88 2018-04-27 18:10:24 +03:00
Lauri Ojansivu 212440862b Fix lint errors of
https://github.com/wekan/wekan/pull/1611

Thanks to xet7 !
2018-04-27 17:49:14 +03:00
Lauri Ojansivu 21e68f3e54 Merge branch 'zebby76-devel' into devel 2018-04-27 17:00:56 +03:00
Lauri Ojansivu 116bc38136 - Fix Trello import of ChecklistItems.
Thanks to zebby76 !
2018-04-27 16:59:54 +03:00
ZeBBy e721dba1e2 Fix Trello importation for ChecklistItems 2018-04-27 15:29:31 +02:00
Lauri Ojansivu 3b6ec34bf5 Try to fix snap build 2018-04-27 15:09:57 +03:00
Lauri Ojansivu be61904a1e Merge branch 'devel' 2018-04-27 14:03:49 +03:00
Lauri Ojansivu 170acf6948 v0.87 2018-04-27 14:02:25 +03:00
Lauri Ojansivu d69f8f4cda Fix: Copy Card, Move Card and Copy Checklist Template to Many Cards - No longer works in menu in Sandstorm.
Thanks to xet7 !

Closes #1607
2018-04-27 14:00:05 +03:00
Lauri Ojansivu db80e73804 Fix: Copy Card, Move Card and Copy Checklist Template to Many Cards - No longer works in menu in Sandstorm.
Thanks to xet7 !

Closes #1607
2018-04-27 13:57:28 +03:00
Lauri Ojansivu 25668eb7c4 Try to fix snap 2018-04-27 13:23:09 +03:00
Lauri Ojansivu 11177196e3 Update translations. 2018-04-27 12:50:32 +03:00
Lauri Ojansivu 6d21ffe660 Try to fix snap. 2018-04-27 12:42:33 +03:00
Lauri Ojansivu ce79645455 Removed not-used plugins part of Caddy download URL.
Thanks to xet7 !
2018-04-20 18:42:35 +03:00
Lauri Ojansivu 7b91b341fe Removed not-used plugins part of Caddy download URL.
Thanks to xet7 !
2018-04-20 18:40:20 +03:00
Lauri Ojansivu 6856f4d95f Use override-build instead of old deprecated prepare/build/install.
https://github.com/canonical-docs/snappy-docs/blob/master/deprecation-notices/dn7.md

Thanks to kyrofa !

Closes wekan/wekan-snap#45
2018-04-20 18:39:29 +03:00
Lauri Ojansivu 075ea1c43d Use override-build instead of old deprecated prepare/build/install.
https://github.com/canonical-docs/snappy-docs/blob/master/deprecation-notices/dn7.md

Thanks to kyrofa !

Closes wekan/wekan-snap#45
2018-04-20 18:30:48 +03:00
Lauri Ojansivu b7247f8d52 Merge branch 'devel' 2018-04-20 15:37:24 +03:00
Lauri Ojansivu 87d2cee02a v0.86 2018-04-20 15:35:51 +03:00
Lauri Ojansivu fa758a73bd Update translations. 2018-04-20 15:26:51 +03:00
Lauri Ojansivu 4191ede176 Merge branch 'devel' 2018-04-18 19:16:00 +03:00
Lauri Ojansivu ded98d73d7 Merge branch 'devel' of github.com:wekan/wekan into devel 2018-04-18 19:15:05 +03:00
Lauri Ojansivu bbfacc06e3 v0.85
And:
- Use curl to download 100% CPU fibers fixed node in snap
- Remove paxctl from snap package

Thanks to xet7 !
2018-04-18 19:14:05 +03:00
Lauri Ojansivu e45b8ea48c - Use curl to download 100% CPU fibers fixed node in snap
- Remove paxctl from snap package

Thanks to xet7 !
2018-04-18 19:08:28 +03:00
Lauri Ojansivu 179ff7a124 Use curl to download 100% CPU usage fibers fixed node in snap. 2018-04-18 19:04:08 +03:00
Lauri Ojansivu fc4d7a0bde Merge branch 'devel' 2018-04-18 18:28:23 +03:00
Lauri Ojansivu 5415a7c4b9 Fix typo. 2018-04-18 18:28:06 +03:00
Lauri Ojansivu 84fd00c566 Merge branch 'devel' 2018-04-18 18:25:34 +03:00
Lauri Ojansivu f41589ba82 - Removed paxctl alpine fix #1303 , because it did not work anymore, so Docker container
and Snap did not build correctly.

Thanks to xet7 !

Closes #1594
2018-04-18 18:24:20 +03:00
Lauri Ojansivu ce65963217 Removed paxctl alpine fix #1303 , because it did not work anymore.
Thanks to xet7 !

Closes #1594
2018-04-18 18:19:22 +03:00
Lauri Ojansivu 1e0fcfd20d - Fix checklists items migration error "title is required"
Thanks to xet7 !

Closes #1576
2018-04-18 17:28:24 +03:00
Lauri Ojansivu 8d5cbf1e6c - Fix checklists items migration error "title is required"
Thanks to xet7 !

Closes #1576
2018-04-18 17:27:15 +03:00
Lauri Ojansivu 7cc930f6b9 Fix lint error in Fibers size setting 2018-04-18 16:03:49 +03:00
Lauri Ojansivu e9bb7e0041 Fix Wekan logo positioning.
Thanks to iwkse and xet7 !

Closes #1583, closes #1378
2018-04-17 21:36:15 +03:00
Lauri Ojansivu 61538ab577 Try to fix Dockerfile. 2018-04-16 22:39:52 +03:00
Lauri Ojansivu bca4f0b842 Try to fix Dockerfile 2018-04-16 22:30:48 +03:00
Lauri Ojansivu 0723a204e8 Try to fix Dockerfile 2018-04-16 22:03:51 +03:00
Lauri Ojansivu 2cd1fbf9d9 Merge branch 'andresmanelli-viewProfile' into devel 2018-04-16 21:51:10 +03:00
Lauri Ojansivu 29c3d939a7 Fix Switch List/swimlane view only working with admin privileges.
Thanks to andresmanelli !

Closes #1567
2018-04-16 21:49:23 +03:00
Lauri Ojansivu 02e8749540 Merge branch 'viewProfile' of https://github.com/andresmanelli/wekan into andresmanelli-viewProfile 2018-04-16 21:35:07 +03:00
Lauri Ojansivu e402200b87 Merge branch 'devel' 2018-04-16 21:27:24 +03:00
Lauri Ojansivu ea289c7810 v0.84 2018-04-16 21:25:54 +03:00
Lauri Ojansivu f3058133b3 Fix Node Fibers 100% CPU issue.
Thanks to kentonv !
2018-04-16 21:22:33 +03:00
Lauri Ojansivu e26a4824cf Fix Node Fibers 100% CPU issue.
Thanks to kentonv !

Related wekan/wekan-mongodb#2, related meteor/meteor#9796
2018-04-16 21:18:09 +03:00
Andrés Manelli e5995477b8 Fix #1567 2018-04-16 14:43:10 -03:00
Lauri Ojansivu c12e003fd3 Update changelog with changes from andresmanelli. 2018-04-16 19:55:03 +03:00
Lauri Ojansivu 8e11d278d3 Update translations. 2018-04-16 19:42:48 +03:00
Andrés Manelli de13705289 Fix lint errors 2018-04-16 00:25:54 -03:00
Andrés Manelli 09bc8ac44c Fix #1561 Filter checklist items 2018-04-16 00:19:03 -03:00
Andrés Manelli eae4bb2d37 Fix #1565 2018-04-16 00:19:03 -03:00
Andrés Manelli 31584e849c Fix #1570, now zero means hide cards count 2018-04-16 00:19:03 -03:00
Andrés Manelli b735817901 Fix #1577 2018-04-16 00:19:03 -03:00
Andrés Manelli 4dbe6feb8c Fix lint errors 2018-04-16 00:19:03 -03:00
Andrés Manelli 9eef5112dc Add REST API for Checklist Items (Related to #1562) 2018-04-16 00:18:55 -03:00
Andrés Manelli 4861da52a0 Fix checklists REST API (#1562) 2018-04-16 00:18:44 -03:00
Lauri Ojansivu aede4dd9c5 Merge branch 'devel' 2018-04-12 20:46:19 +03:00
Lauri Ojansivu 4505e6edc9 v0.83 2018-04-12 20:44:09 +03:00
Lauri Ojansivu 85e86136e9 Update translations. 2018-04-12 20:39:35 +03:00
Lauri Ojansivu 9b961edb36 Merge branch 'devel' 2018-04-11 15:09:27 +03:00
Lauri Ojansivu 82fc4d011f v0.82 2018-04-11 15:08:56 +03:00
Lauri Ojansivu bfe03ac89f - Restore original font and font sizes.
- Admin panel people and version texts to darker.

Thanks to apn3a and xet7 !

Closes #1582
2018-04-11 15:06:04 +03:00
Lauri Ojansivu db74c86e55 Restore original font and font sizes.
Admin panel people and version texts to darker.
2018-04-11 14:59:58 +03:00
Lauri Ojansivu b7ee0173ec Merge branch 'devel' 2018-04-10 22:21:38 +03:00
Lauri Ojansivu ce177117a0 v0.81 2018-04-10 22:19:51 +03:00
Lauri Ojansivu b05f3595f0 Update translations. 2018-04-10 22:17:00 +03:00
Allemand Sylvain 3e927b4e58 merge oidc and local account if exists 2018-04-10 11:44:54 +02:00
Allemand Sylvain 1c8a00943c authentification oauth2 2018-04-09 16:49:07 +02:00
Lauri Ojansivu f00797de5c Merge branch 'devel' 2018-04-06 17:46:42 +03:00
Lauri Ojansivu c115046a7c Update translations. 2018-04-06 17:46:23 +03:00
Lauri Ojansivu 8051f6affa Board title as markdown in board view.
Thanks to xet7 !
2018-04-06 00:14:01 +03:00
Lauri Ojansivu 973b416885 Board title as markdown in board view.
Thanks to xet7 !
2018-04-06 00:11:15 +03:00
Lauri Ojansivu b501d35b55 Merge branch 'devel' 2018-04-05 22:14:20 +03:00
Lauri Ojansivu 8fc4011bf8 Use lighter and smaller font sizes.
Thanks to xet7 !
2018-04-05 22:13:51 +03:00
Lauri Ojansivu 7b94b04701 Use lighter and smaller font sizes.
Thanks to xet7 !
2018-04-05 22:10:51 +03:00
Lauri Ojansivu 217ae207b9 Fix commit URL. 2018-04-05 16:27:53 +03:00
Lauri Ojansivu 4f1eaa6b82 - Renamed Archives to Recycle Bin
Thanks to BruceZCQ and xet7 !

Closes #1429
2018-04-05 16:25:08 +03:00
Lauri Ojansivu 49c7a6c223 Separate translations for cards in Recycle Bin and cards count. 2018-04-05 16:19:22 +03:00
Lauri Ojansivu 0e883675fc Merge branch 'devel' 2018-04-05 12:58:51 +03:00
Lauri Ojansivu 5a6be37d52 - Removed checkbox from checklist name to have more of material design look.
Thanks to quantazelle and xet7 !

Related #1568
2018-04-05 12:56:03 +03:00
Lauri Ojansivu c295e47f76 Merge branch 'devel' 2018-04-05 12:01:59 +03:00
Lauri Ojansivu 9711945e48 - Removed forcing "cards" translations to lowercase in count of cards.
- Finnish translation of cards to lowercase.

Thanks to Chartman123 and xet7 !

Closes #1571
2018-04-05 12:00:12 +03:00
Lauri Ojansivu fb87e4b1f2 Merge branch 'devel' 2018-04-04 23:27:49 +03:00
Lauri Ojansivu a320a71467 v0.80 2018-04-04 23:26:25 +03:00
Lauri Ojansivu bda6ee26d7 Added meteor packages for security:
- browser-policy
- eluck:accounts-lockout

Thanks to xet7 !
2018-04-04 23:20:19 +03:00
Lauri Ojansivu 40d438a517 Added meteor packages for security:
- browser-policy
- eluck:accounts-lockout

Thanks to xet7 !
2018-04-04 23:18:06 +03:00
Lauri Ojansivu 5d2dd66450 - Changed icon of checklist name to unchecked
Thanks to quantazelle ! Related #1568
2018-04-04 21:49:33 +03:00
Lauri Ojansivu f9539aa2a8 Changed icon of checklist name. Related #1568 2018-04-04 21:44:53 +03:00
Lauri Ojansivu 66e56849a4 Merge branch 'devel' 2018-04-04 17:36:38 +03:00
Lauri Ojansivu 75512043e8 Try to fix travis 2018-04-04 17:36:19 +03:00
Lauri Ojansivu 3631cd5026 Merge branch 'devel' 2018-04-04 17:34:17 +03:00
Lauri Ojansivu 09c59ff562 Update translations. 2018-04-04 17:33:54 +03:00
Lauri Ojansivu e3d1fbc7f4 Update all from wekan-mongodb to main wekan repo docker-compose.yml file 2018-04-04 14:22:59 +03:00
Lauri Ojansivu 05f1d197f5 Remove warnings about Docker. MongoDB to 3.2.19. 2018-04-04 13:42:45 +03:00
Lauri Ojansivu 485ccf4007 Merge branch 'devel' 2018-04-03 19:39:28 +03:00
Lauri Ojansivu fe79a3e763 Update translations. 2018-04-03 19:39:08 +03:00
Lauri Ojansivu 30a4494af2 Merge branch 'devel' 2018-03-31 21:22:33 +03:00
Lauri Ojansivu add5d22c4e v0.79 2018-03-31 21:20:46 +03:00
Lauri Ojansivu 08af6a0cf1 Update translations. 2018-03-31 20:41:11 +03:00
Lauri Ojansivu 38a8d82735 Fix lint errors. 2018-03-31 20:29:17 +03:00
Lauri Ojansivu 42a4ca3678 Merge branch 'andresmanelli-fixDragInListsView' into devel 2018-03-31 20:04:47 +03:00
Lauri Ojansivu 66c20df5ba - Fix drag in lists view
- Set fixed width for swimlane header

Thanks to andresmanelli !

Closes #1553, closes #1546
2018-03-31 20:02:16 +03:00
Lauri Ojansivu 4505495762 Merge branch 'fixDragInListsView' of https://github.com/andresmanelli/wekan into andresmanelli-fixDragInListsView 2018-03-31 19:38:33 +03:00
Andrés Manelli 679e50af64 Fix drag in lists view 2018-03-31 13:19:14 -03:00
Andrés Manelli 2e8f8924dd Set fixed width for swimlane header 2018-03-31 13:11:22 -03:00
Lauri Ojansivu 568a1a11fd Merge branch 'devel' 2018-03-29 15:04:27 +03:00
Lauri Ojansivu 5e88cb24cb Merge branch 'rjevnikar-additionalDates' into devel 2018-03-29 15:03:59 +03:00
Lauri Ojansivu 023b41b205 - Add Received Date and End Date. Between them is already existing Start and Due Date.
Thanks to rjevnikar !
2018-03-29 15:02:24 +03:00
Lauri Ojansivu cca4a3e372 Merge branch 'additionalDates' of https://github.com/rjevnikar/wekan into rjevnikar-additionalDates 2018-03-29 14:54:46 +03:00
Lauri Ojansivu caca2e34fc Update translations. 2018-03-29 12:31:37 +03:00
RJevnikar 07217d0e51 Add additional dates (received & end), default title of checklists to 'Checklist'
Remove translations

Add additional dates (received & end), default name checklists to Checklist
2018-03-26 20:51:24 +00:00
Lauri Ojansivu 75b3d51b39 Merge branch 'devel' 2018-03-21 13:48:31 +02:00
Lauri Ojansivu 80941e57d3 Update translations. 2018-03-21 13:48:10 +02:00
Lauri Ojansivu 3d0bac1f49 Merge branch 'devel' 2018-03-21 12:44:19 +02:00
Lauri Ojansivu 10f24a8a8a Use personal license for non-commercial use only for Caddy.
Related wekan/wekan-snap#39
2018-03-21 12:41:29 +02:00
Lauri Ojansivu 578bdf9e67 Merge branch 'devel' 2018-03-20 22:58:59 +02:00
Lauri Ojansivu a7855f3f58 Merge branch 'andresmanelli-checklistItems' into devel 2018-03-20 22:58:22 +02:00
Lauri Ojansivu ac19904ee8 Checklist items sort fix, and checklist sort capability.
Thanks to andresmanelli !

Closes #876, closes #1483, closes #1237
2018-03-20 22:57:52 +02:00
Lauri Ojansivu ec1630f8dd Merge branch 'checklistItems' of https://github.com/andresmanelli/wekan into andresmanelli-checklistItems 2018-03-20 22:13:18 +02:00
Lauri Ojansivu a7f88d24a1 Merge branch 'devel' 2018-03-20 21:32:21 +02:00
Lauri Ojansivu 90f3f7ba16 Added note about no new issues about Docker. 2018-03-20 21:31:24 +02:00
Andrés Manelli 5e5a5ed9be Fix class name change when clicking check box 2018-03-19 18:49:00 -03:00
Andrés Manelli 3eb6f97291 Fix lint errors 2018-03-19 17:31:53 -03:00
Andrés Manelli 06e64d24a8 Add styling 2018-03-19 17:19:46 -03:00
Andrés Manelli 243af32fc7 Add checklist ordering capability 2018-03-19 16:47:07 -03:00
Andrés Manelli ca89442f3a Clean checklists model 2018-03-19 15:31:38 -03:00
Andrés Manelli 153960742c Fix migration. Replace old checklist-item sort algorithm. 2018-03-19 15:03:44 -03:00
Andrés Manelli bf7de463f1 Add checklist items model, migration and publication 2018-03-19 01:25:33 -03:00
Lauri Ojansivu fa0fd5f21f Merge branch 'devel' 2018-03-17 09:36:51 +02:00
Lauri Ojansivu 83848dbee2 v0.78 2018-03-17 09:34:57 +02:00
Lauri Ojansivu cb099d1093 "DANGER" data loss warning to bigger text. 2018-03-17 09:20:12 +02:00
Lauri Ojansivu 89a8a6f5e3 - Fix scroll board when opening cardDetails
- Fix swimlane info not displayed in activities
- Fix sandstorm default swimlane creation
- Extend lists to bottom of frame in lists view
- Fix drag and drop issues when re-enter board

Thanks to andresmanelli !

Closes #1529, closes #1530, closes #1506, closes #1494, closes #1538, closes #1528
2018-03-17 09:18:31 +02:00
Lauri Ojansivu 22923d08af Enabled import at Sandtorm. Keep there warning about possible data loss bug. 2018-03-17 08:49:22 +02:00
Lauri Ojansivu 57ccfcde63 Update translations. 2018-03-17 08:48:55 +02:00
Lauri Ojansivu 75693d16e2 Add language: Armenian. 2018-03-17 08:48:30 +02:00
Andrés Manelli 454523dd47 Fix scroll board when opening cardDetails 2018-03-17 00:31:19 -03:00
Andrés Manelli bb37d8fa96 Fix swimlane info not displayed in activities 2018-03-16 23:31:24 -03:00
Andrés Manelli f470323ee7 Fix sandstorm default swimlane creation 2018-03-16 23:18:26 -03:00
Andrés Manelli c62a2ee11f Extend lists to bottom of frame in lists view 2018-03-16 22:37:08 -03:00
Andrés Manelli 5b0f7f8aef Fix drag and drop issues when re-enter board 2018-03-16 22:13:40 -03:00
Lauri Ojansivu 0495e61c28 Change snap to previous MongoDB version 3.2.18 because of data loss:
https://github.com/wekan/wekan-mongodb/issues/9
2018-03-15 18:54:03 +02:00
Lauri Ojansivu c1c3421006 Change to previous MongoDB version 3.2.18 because of data loss:
https://github.com/wekan/wekan-mongodb/issues/9
2018-03-15 18:53:28 +02:00
Lauri Ojansivu dfc5537107 Merge branch 'devel' 2018-03-13 02:02:21 +02:00
Lauri Ojansivu 3ce90e9766 Update translations. 2018-03-13 02:01:52 +02:00
Lauri Ojansivu 5b98f139d1 Merge branch 'devel' 2018-03-07 21:19:50 +02:00
Lauri Ojansivu 293718d90c - Fix card copy and move with swimlanes
Thanks andresmanelli ! Closes #1520
2018-03-07 21:18:08 +02:00
Andrés Manelli 4b53b0c90a Fix card copy and move with swimlanes 2018-03-07 14:11:21 -03:00
Lauri Ojansivu 862239019a Merge branch 'devel' 2018-03-07 15:35:09 +02:00
Lauri Ojansivu 98103bb2f7 Merge branch 'lumatijev-patch-1' into devel 2018-03-07 15:33:09 +02:00
Lauri Ojansivu e5b003f5ab - Fix swimlane header rotation on Google Chrome. After this change
both Firefox 58 and Google Chrome 64 have properly rotated
  swimlane header.

Thanks to lumatijev !
2018-03-07 15:31:34 +02:00
Luka Matijević 9a1b1a5bed Fix swimlane header rotation on Google Chrome
After this change both Firefox 58 and Google Chrome 64 have properly rotated swimlane header.
2018-03-07 09:42:35 +01:00
Lauri Ojansivu 983649a6cb Merge branch 'devel' 2018-03-07 09:05:31 +02:00
Lauri Ojansivu 990af4e5c2 Update translations. 2018-03-07 09:05:10 +02:00
Lauri Ojansivu 660b578ab3 Merge branch 'devel' 2018-03-07 08:17:16 +02:00
Lauri Ojansivu f7a9bafe4c - Fix scroll when dragging elements. Remove
scrollbars from swimlanes.
- Partial fix for scroll bar inside cardDetails.

Thanks to andresmanelli !

Closes #1458, closes #1484,
closes #1481, closes #1497,
closes #1521
2018-03-07 08:13:35 +02:00
Andrés Manelli ac7d44f8a8 Partial fix for scroll bar inside cardDetails 2018-03-06 22:00:13 -03:00
Andrés Manelli ed8471be9b Fix scroll when dragging elements. Remove scrollbars from swimlanes. 2018-03-06 21:36:16 -03:00
Lauri Ojansivu 65beb89944 MongoDB 3.2.19 2018-03-06 01:08:56 +02:00
Lauri Ojansivu 594daa9cf8 Merge branch 'devel' 2018-03-05 23:05:47 +02:00
Lauri Ojansivu 663d8e3c34 Fix Scrollbar near top of screen when using internet explorer on Win7.
Thanks to lunatic4ever ! Closes #1524
2018-03-05 23:05:02 +02:00
Lauri Ojansivu 128a356b92 - Fix Scrollbar near top of screen when using internet explorer on Win7
Thanks to lunatic4ever ! Closes #1524
2018-03-05 23:01:09 +02:00
Lauri Ojansivu ebb48f3ee8 Merge branch 'devel' 2018-03-05 22:44:36 +02:00
Lauri Ojansivu 2092b429db - Fix Add Card Button dissapearing when dragging
Thanks to andresmanelli ! Closes #1519
2018-03-05 22:43:02 +02:00
Andrés Manelli 58e5e9b308 Fix #1519 Add Card Btn dissapear on drag 2018-03-05 17:25:00 -03:00
Lauri Ojansivu 4a2b30d08b Merge branch 'devel' 2018-03-03 17:47:10 +02:00
Lauri Ojansivu 338fb5304d Update translations. 2018-03-03 17:46:49 +02:00
Lauri Ojansivu 0cee496270 Merge branch 'devel' 2018-03-02 12:48:01 +02:00
Lauri Ojansivu 9e62584b26 Merge branch 'GhassenRjab-feature/list-default-view' into devel 2018-03-02 12:47:17 +02:00
Lauri Ojansivu 5849ffbb53 - Lists view is the default view when creating boards.
Thanks to GhassenRjab ! Closes #1507
2018-03-02 12:45:20 +02:00
Lauri Ojansivu a58bffbb3e Merge branch 'feature/list-default-view' of https://github.com/GhassenRjab/wekan into GhassenRjab-feature/list-default-view 2018-03-02 12:39:10 +02:00
Lauri Ojansivu a8ae6adbc2 Merge branch 'GhassenRjab-hotfix/wekan-import' into devel 2018-03-02 12:38:02 +02:00
Lauri Ojansivu 946dcf0b0a - Import missing card fields: isOvertime, startAt and spentTime.
Thanks to GhassenRjab ! Closes #1516, closes #1428
2018-03-02 12:36:30 +02:00
Ghassen Rjab 1ca9e96f35 Lists view is the default view when creating boards 2018-03-02 00:06:45 +01:00
Ghassen Rjab b475127c53 Import missing card fields : isOvertime, startAt and spenTime 2018-03-01 23:34:17 +01:00
Lauri Ojansivu 2c1dadf712 Merge branch 'devel' 2018-03-01 14:38:33 +02:00
Lauri Ojansivu bbca361aeb Merge branch 'kubiko-devel' into devel 2018-03-01 14:37:31 +02:00
Lauri Ojansivu f96e21f462 Snap:
- Adding network hooks for configure hook to fix security denials
- Fixing problem when mongodb was not started at install/refresh

Thanks to kubiko ! Closes wekan/wekan-snap#36
2018-03-01 14:13:47 +02:00
Ondrej Kubik 1be8e5625f Fixing problem when mongodb was not started at install/refresh
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2018-03-01 11:53:40 +00:00
Ondrej Kubik 9084158aec Adding network hooks for configure hook to fix security denials
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2018-03-01 11:53:21 +00:00
Lauri Ojansivu 6fc89a04de Merge branch 'devel' 2018-03-01 13:01:23 +02:00
Lauri Ojansivu d454fa7dd7 - Remove list max-height 350px.
Thanks to xet7 !
Closes #1512, closes wekan/wekan-snap#35
2018-03-01 13:00:48 +02:00
Lauri Ojansivu b6d3e79548 Remove list max-height 350px. Thanks to xet7 !
Closes #1512, closes wekan/wekan-snap#35
2018-03-01 12:54:28 +02:00
Lauri Ojansivu 4994f66e9c Merge branch 'devel' 2018-03-01 01:02:46 +02:00
Lauri Ojansivu a23d93391b - Fix scrollbar inside list and outer scroll.
Thanks to andresmanelli ! Closes #1485
2018-03-01 01:02:09 +02:00
Andrés Manelli a033c35a34 Fix scrollbar inside list and outer scroll 2018-02-28 15:48:36 -03:00
Lauri Ojansivu 91bab1c274 Merge branch 'devel' 2018-02-28 16:44:58 +02:00
Lauri Ojansivu 48cd551a69 Merge remote-tracking branch 'upstream/devel' into devel 2018-02-28 16:36:46 +02:00
Lauri Ojansivu daf1a67dc2 Merge branch 'devel' 2018-02-28 16:35:56 +02:00
Andrés Manelli 8d2839f0c3 Fix order lists in lists view 2018-02-28 11:24:39 -03:00
Lauri Ojansivu 284fac043b - Allow swimlanes reordering
- Avoid swimlane title overlap

Thanks to andresmanelli !
Related #955. Closes #1487
2018-02-28 10:30:05 +02:00
Lauri Ojansivu bd239351fd Update translations. 2018-02-28 09:07:42 +02:00
Andrés Manelli 37c94622e4 Allow swimlanes reordering 2018-02-27 20:11:43 -03:00
Andrés Manelli c4fa9010f3 Avoid swimlane title overlap 2018-02-27 13:51:47 -03:00
Lauri Ojansivu e44c46bcd2 Merge branch 'devel' 2018-02-27 08:43:24 +02:00
Lauri Ojansivu 843381a36c Merge pull request #1510 from GhassenRjab/feature/fix-lint-warnings
Fix lint warnings
2018-02-27 08:41:35 +02:00
Ghassen Rjab 59ba2111e8 Fix lint warnings 2018-02-27 02:57:58 +01:00
Lauri Ojansivu 1efa66b58c Merge branch 'GhassenRjab-feature/fix-lint' into devel 2018-02-26 16:11:03 +02:00
Lauri Ojansivu dc8c9053c2 - Fix lint errors related to sandstorm
- Add Swimlanes to globals
- Fix lint errors related to trello creator
- Fix lint errors related to language names

Thanks to GhassenRjab !
2018-02-26 16:10:18 +02:00
Ghassen Rjab 0a16147470 Fix lint errors related to sandstorm 2018-02-26 03:19:59 +01:00
Ghassen Rjab 373e9782dc Add Swimlanes to globals 2018-02-26 03:19:27 +01:00
Ghassen Rjab 951a0db380 Fix lint errors related to trello creator 2018-02-26 03:18:26 +01:00
Ghassen Rjab c0d33d97f2 Fix lint errors related to language names 2018-02-26 03:17:56 +01:00
Lauri Ojansivu 57cf86a79f Merge branch 'devel' 2018-02-23 21:01:44 +02:00
Lauri Ojansivu 5bdb392258 v0.77 2018-02-23 21:00:09 +02:00
Lauri Ojansivu a48630ffcf Merge branch 'GhassenRjab-feature/search' into devel 2018-02-23 20:40:48 +02:00
Lauri Ojansivu fe1941008c Update translations. 2018-02-23 20:36:46 +02:00
Lauri Ojansivu 190aa36a51 Add Bulgarian language. 2018-02-23 19:42:13 +02:00
Lauri Ojansivu 468f4de0cf Search from card titles and descriptions on this board.
Thanks to GhassenRjab ! Closes #552
2018-02-23 19:17:52 +02:00
Lauri Ojansivu 93215be2cf Better descriptions about search. 2018-02-23 19:08:21 +02:00
Ghassen Rjab ab2884cae0 Fix lint error related to this feature 2018-02-23 01:38:12 +01:00
Ghassen Rjab 5f374b2fd2 Open search sidebar from an opened board 2018-02-23 01:10:21 +01:00
Ghassen Rjab 636e1657f6 Add search sidebar 2018-02-23 01:09:59 +01:00
Ghassen Rjab 2001c01b4d Add search cards helper to boards model 2018-02-23 01:09:25 +01:00
Lauri Ojansivu a9166d877f Snap specific updates:
- Service life cycle improvements
- Wekan help text changes and tweaks

https://github.com/wekan/wekan/pull/1495

Thanks to kubiko !
2018-02-23 00:27:55 +02:00
Lauri Ojansivu 435501fb8e Merge pull request #1500 from kubiko/devel
service life cycle improvements
2018-02-22 21:50:41 +02:00
Ondrej Kubik fd47e10e52 Tuning services life cycle
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2018-02-22 13:14:03 +00:00
Ondrej Kubik e3bd1c4d23 Adding mongodb service control to configure hook
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2018-02-22 11:48:33 +00:00
Ondrej Kubik f7b72a1a80 Fixing typo and improving help text
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2018-02-22 11:48:33 +00:00
Lauri Ojansivu 31f25bcddb Merge branch 'stefano-pogliani-card-shadow' into devel 2018-02-22 02:24:43 +02:00
Lauri Ojansivu 1ec5e90706 Fix card shadow to cover the full page.
Thanks to stefano-pogliani !
2018-02-22 02:23:34 +02:00
Lauri Ojansivu 20d6ea85d4 Merge branch 'card-shadow' of https://github.com/stefano-pogliani/wekan into stefano-pogliani-card-shadow 2018-02-22 02:19:20 +02:00
Lauri Ojansivu 7498dba32c Merge branch 'kubiko-devel' into devel 2018-02-22 02:17:52 +02:00
Lauri Ojansivu d374cd2f81 Snap updates:
- cleanup of snap helper scripts
- cleanup and snapctl settings handling
- fix for snap store auto review refusal
- adding support for automatic restart of services when setting(s) are changed.
  No need to call systemctl restart anymore.....
- fixing snap set functionality
- adding optional caddy service support ( by default caddy service is disabled),
  it can be enabled by calling: snap set wekan caddy-enabled=true

Thanks to kubiko !

Closes wekan/wekan-snap#25, closes wekan/wekan-snap#12,
closes wekan/wekan-snap#29, closes wekan/wekan-snap#33
2018-02-22 02:09:05 +02:00
Stefano Pogliani ffbd3ccc2a Fix card shadow to cover the full page. 2018-02-21 22:54:15 +00:00
Ondrej Kubik ad1a181f6d Fixing wrong port number shown in wekan.help
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2018-02-21 22:29:26 +00:00
Ondrej Kubik fcd83ea7bd Fixing automatic review fail for snap store upload
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2018-02-21 22:29:25 +00:00
Ondrej Kubik 07fc296762 Cleaning snapctl usage
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2018-02-21 22:29:25 +00:00
Ondrej Kubik 62fca18fea Updating gitignore
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2018-02-21 22:29:25 +00:00
Ondrej Kubik af82a80b2b Using upstream caddy instead of compiling from source
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2018-02-21 22:29:25 +00:00
Ondrej Kubik 9966c19f94 Fixing wrong caddy file path
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2018-02-21 22:29:24 +00:00
Ondrej Kubik ff320f7b3a enabling verbose logging from configure hook
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2018-02-21 22:29:24 +00:00
Ondrej Kubik 9c9694bcd1 Fixing snapctl start/stop to control service lifecycle
Adding disable and enable options for snapctl start/stop

Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2018-02-21 22:29:24 +00:00
Ondrej Kubik fcd7097aba Renaming caddy service for simplicity
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2018-02-21 22:29:24 +00:00
Ondrej Kubik 19089e8930 rewording helper script output
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2018-02-21 22:29:23 +00:00
Ondrej Kubik f7920da0cf fixing go build error because of go version used on build server
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2018-02-21 22:29:23 +00:00
Ondrej Kubik d7ea73ff82 adding uspport for snapctl restart
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2018-02-21 22:29:23 +00:00
Ondrej Kubik e077c85d00 Adding caddy support
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2018-02-21 22:29:23 +00:00
Ondrej Kubik 3665a9131c splitting hooks and using snapctl instead of local settings file
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2018-02-21 22:29:23 +00:00
Ondrej Kubik f7fe44fcdf removing unused variables
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2018-02-21 22:29:23 +00:00
Ondrej Kubik a533caa944 rearranging helper scripts in snap-src
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2018-02-21 22:29:23 +00:00
Lauri Ojansivu 1ef663531b Merge branch 'devel' 2018-02-21 21:05:43 +02:00
Lauri Ojansivu 26f66f3cf0 v0.76 2018-02-21 21:03:29 +02:00
Lauri Ojansivu 2e449e9e78 Update translations. 2018-02-21 20:49:33 +02:00
Lauri Ojansivu e30f6515c6 Disabled Import temporarily on Sandstorm because of data loss bug.
Thanks to xet7 !
2018-02-21 20:20:19 +02:00
Lauri Ojansivu 11e9811f82 Added path to capnp.js to make Wekan work on Sandstorm. 2018-02-21 20:15:40 +02:00
Lauri Ojansivu df5be82840 Update translations. 2018-02-20 15:09:34 +02:00
Lauri Ojansivu 599c83e0da Persian (Iran) => Persian 2018-02-20 14:43:04 +02:00
Lauri Ojansivu c0dbb79ac9 Merge branch 'couscous3-patch-1' into devel 2018-02-20 14:22:38 +02:00
Lauri Ojansivu 0375c551f3 Add swimlaneId to API. Thanks to couscous3 ! 2018-02-20 14:21:34 +02:00
couscous3 ee0f42eeb1 add swimlaneId to POST /api/boards/:boardId/lists/:listId/cards route 2018-02-19 14:55:56 +01:00
Lauri Ojansivu becdcbd5a7 Merge branch 'devel' 2018-02-16 00:23:35 +02:00
Lauri Ojansivu 7f4b382d2f Merge branch 'erikturk-copyMany' into devel
v0.75
2018-02-16 00:08:29 +02:00
Lauri Ojansivu 96d81768bc v0.75 2018-02-16 00:06:00 +02:00
Lauri Ojansivu cd012954e9 Adding Finnish changelog to Sandstorm. 2018-02-15 23:47:55 +02:00
Lauri Ojansivu 3b202c284a Update translations. 2018-02-15 23:41:04 +02:00
Lauri Ojansivu 8da1dd524d Merge branch 'copyMany' of https://github.com/erikturk/wekan into erikturk-copyMany 2018-02-15 22:40:59 +02:00
Erik Turk cfaeb43f1f changed variable names 2018-02-15 15:26:19 -05:00
Erik Turk 25e0c38ad8 change copyMany to copyChecklistToManyCards for instructions and title 2018-02-15 11:55:15 -05:00
Erik Turk 756fbd0f4c i18n fixes 2018-02-14 15:18:54 -05:00
Lauri Ojansivu d3bdc8edbc Merge branch 'devel' 2018-02-13 00:19:15 +02:00
Lauri Ojansivu 55a53e2655 Add note about Unicode Emojis. 2018-02-13 00:17:57 +02:00
Lauri Ojansivu ffc825e348 Merge branch 'devel' 2018-02-13 00:07:44 +02:00
Lauri Ojansivu 29461cb110 v0.74 2018-02-13 00:06:20 +02:00
Lauri Ojansivu a30f61d72f Remove Emoji support, so MAC addresses etc show correctly.
Thanks to xet7 ! Closes #1248, closes #323
2018-02-12 23:58:09 +02:00
Lauri Ojansivu 056843d66c Remove Emoji support, so MAC addresses etc show correctly.
Thanks to xet7 ! Closes #1248, closes #323
2018-02-12 23:52:22 +02:00
Lauri Ojansivu 69e4ad48bf Update translations. 2018-02-12 22:40:08 +02:00
Lauri Ojansivu 3588f4324c License year to 2018 2018-02-12 21:08:11 +02:00
Lauri Ojansivu 71decc370d Update screenshot. 2018-02-12 20:52:11 +02:00
Lauri Ojansivu 3171af613a Add Quay. Comment out Travis. 2018-02-12 20:49:08 +02:00
Erik Turk 11b8e12ede spaces/tabs okay - no 'git add i18n/en-GB.i18n.json' 2018-02-08 13:11:20 -05:00
Erik Turk 69aeee536d Merge branch 'devel' into copyMany 2018-02-08 13:04:43 -05:00
Erik Turk ab6a7c2dd6 Merge branch 'devel' of https://github.com/wekan/wekan into devel 2018-02-08 13:03:37 -05:00
Erik Turk 0a5af2b719 more spacing/tabs fixes 2018-02-08 10:32:09 -05:00
Erik Turk ecd77c8704 fixed spacing & indentation - changed var to const 2018-02-08 10:13:54 -05:00
Erik Turk c5019e620a remove console.log statements 2018-02-08 08:14:33 -05:00
Erik Turk 257ed56db3 finish adding[4~ copyMany 2018-02-08 08:13:31 -05:00
Lauri Ojansivu 9db64a95b6 Merge branch 'devel' 2018-02-08 13:46:22 +02:00
Lauri Ojansivu edc2459ff8 v0.73 2018-02-08 13:45:09 +02:00
Lauri Ojansivu 36a2aa355e Merge branch 'kubiko-devel-fix' into devel
Fix snap store rejection. Thanks to kubiko !
Closes wekan/wekan-snap#20,
closes wekan/wekan-snap#28,
closes wekan/wekan-snap#27,
closes wekan/wekan-snap#24
2018-02-08 13:43:01 +02:00
Lauri Ojansivu cea8101574 Fix snap store rejection. Thanks to kubiko !
Closes wekan/wekan-snap#20,
closes wekan/wekan-snap#27,
closes wekan/wekan-snap#24
2018-02-08 13:35:40 +02:00
Ondrej Kubik 3cb356eb1d Fixing snap store rejection
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2018-02-08 11:03:58 +00:00
Lauri Ojansivu c5a707a7f5 Merge branch 'devel' 2018-02-07 15:37:53 +02:00
Lauri Ojansivu b3d3158863 v0.72 2018-02-07 15:37:02 +02:00
Lauri Ojansivu f795edc640 Fix import Trello board without swimlanes. Fix swimlane move parameters.
Thanks to andresmanelli ! Closes #1442
2018-02-07 15:33:29 +02:00
Lauri Ojansivu c1ddaaa475 Merge remote-tracking branch 'upstream/devel' into devel 2018-02-07 15:24:22 +02:00
Lauri Ojansivu 2dc71e97a7 Merge branch 'ViViDboarder-fix-card-sorting' into devel 2018-02-07 15:23:33 +02:00
Lauri Ojansivu 92122f0fa2 Fix card sorting. Thanks to ViViDboarder ! Closes #1461 2018-02-07 15:21:02 +02:00
Lauri Ojansivu ce1fd00517 Update translations. 2018-02-07 15:17:40 +02:00
Andrés Manelli 5871a478e1 Fix import Trello board without swimlanes 2018-02-07 01:47:18 -03:00
Andrés Manelli fcebb2a537 Fix move parameters 2018-02-07 01:24:15 -03:00
ViViDboarder b267015d8c Fixing cards query to apply sort
Issue #1461
2018-02-06 19:35:01 -08:00
Erik Turk 842c8b83d2 missing ) 2018-02-05 15:03:21 -05:00
Erik Turk 9705118ca2 add titleList.split to copyManyCard 2018-02-05 14:47:37 -05:00
Erik Turk 326b4c5350 added copyManyCard 2018-02-05 13:27:47 -05:00
Erik Turk f3ed6ee6f6 added copyManyCardPopup to i18n 2018-02-05 13:26:26 -05:00
Erik Turk 60c6f4f5af added Popup 2018-02-05 11:11:41 -05:00
Erik Turk 3c1cd85f6f added copyManyCard 2018-02-05 11:02:01 -05:00
Erik Turk bb9d5cb694 Revert "added copyManyCard"
This reverts commit c3fe70e094.
2018-02-05 10:58:36 -05:00
Erik Turk 669c2f3861 Revert "Revert "v0.71""
This reverts commit 6a93a93d0b.
2018-02-05 10:58:13 -05:00
Erik Turk 6a93a93d0b Revert "v0.71"
This reverts commit 79ae90825e.
2018-02-05 10:57:08 -05:00
Erik Turk c3fe70e094 added copyManyCard 2018-02-05 10:49:37 -05:00
Lauri Ojansivu b2d3138220 Merge branch 'devel' 2018-02-03 12:57:15 +02:00
Lauri Ojansivu 79ae90825e v0.71 2018-02-03 12:56:09 +02:00
Lauri Ojansivu b0f0bf4a24 Fix Welcome board is not editable: Added default swimlane to Welcome board.
Fix Import Wekan board with swimlanes.
Thanks to andresmanelli ! Closes #1457, closes #1445
2018-02-03 12:49:45 +02:00
Lauri Ojansivu 9dba6ff6fd Update translations. 2018-02-03 12:11:58 +02:00
Andrés Manelli d77afe3e2e Add trailing comma 2018-02-02 23:09:42 -03:00
Andrés Manelli ec0a8449ba Fix import wekan board with swimlanes 2018-02-02 23:04:54 -03:00
Andrés Manelli 9df3e3d26b Add default swimlane to welkome board 2018-02-02 21:52:00 -03:00
Lauri Ojansivu 405514fd6b Merge branch 'devel' 2018-02-02 14:37:19 +02:00
Lauri Ojansivu 73401a5d74 v0.70 2018-02-02 14:36:07 +02:00
Lauri Ojansivu 653f2b1ac8 Update translations. 2018-02-02 14:28:42 +02:00
Lauri Ojansivu 2cd4caa76a Add missing text to changelog. 2018-02-02 14:21:48 +02:00
Lauri Ojansivu 000b267eaf Update changelog. 2018-02-02 14:06:40 +02:00
Andrés Manelli 5953fb8a44 Add popup menu and archive action 2018-02-01 14:29:49 -03:00
Andrés Manelli 3414cb84ad Add ability to edit swimlane name 2018-02-01 14:24:21 -03:00
Andrés Manelli 42bc905c16 Remove unused hack 2018-02-01 14:24:21 -03:00
Lauri Ojansivu efa2d99bf4 Merge branch 'devel' 2018-02-01 16:49:06 +02:00
Lauri Ojansivu d94f11c778 v0.69 2018-02-01 16:47:14 +02:00
Lauri Ojansivu fcd5fda751 Merge branch 'd-Rickyy-b-patch-1' into devel 2018-02-01 16:25:27 +02:00
Lauri Ojansivu 66bfb1cdc8 Fix typo. 2018-02-01 16:24:57 +02:00
Lauri Ojansivu 69dfa1033f Fix typo in issue template. Thanks to d-Rickyy-b ! 2018-02-01 16:23:51 +02:00
Lauri Ojansivu 94b8bba324 Merge branch 'patch-1' of https://github.com/d-Rickyy-b/wekan into d-Rickyy-b-patch-1 2018-02-01 16:21:41 +02:00
Lauri Ojansivu 5dd8c9829d Update translations: Hebrew. Related #884 2018-02-01 16:20:29 +02:00
Lauri Ojansivu e0e6f06a83 Fix swimlanes card details and drag bugs. Thanks to andresmanelli ! 2018-02-01 15:59:22 +02:00
Rico 8322500e47 Fix typo in issue template 2018-01-31 23:21:07 +01:00
Andrés Manelli ff9ca755f3 Fix details view in lists only mode 2018-01-31 15:46:59 -03:00
Andrés Manelli d3c110cd8f Workaround to avoid drag bug 2018-01-31 14:13:14 -03:00
Andrés Manelli f6fb05d3f4 Fix card details bug 2018-01-31 14:13:14 -03:00
Lauri Ojansivu 8102ee5b4f Add release date to changelog. 2018-01-30 15:18:27 +02:00
Lauri Ojansivu 8d816cdb0f Merge branch 'devel' 2018-01-30 15:05:18 +02:00
Lauri Ojansivu 3c60df4fcd Update translations. 2018-01-30 15:04:55 +02:00
Lauri Ojansivu 918bd0befd Merge branch 'devel' 2018-01-30 14:17:03 +02:00
Lauri Ojansivu 23cba8a43f v0.68 2018-01-29 12:10:31 +02:00
Lauri Ojansivu 65c081acc0 Fix: Trello board import fails because of missing "Swimlane id".
Thanks to xet7 ! Closes #1442
2018-01-29 12:07:42 +02:00
Lauri Ojansivu bf2a08555b Merge branch 'devel' 2018-01-28 21:22:43 +02:00
Lauri Ojansivu 735907977d v0.67 2018-01-28 21:21:07 +02:00
Lauri Ojansivu 9d7ff75d3f Fix Igbo language at menu. 2018-01-28 21:01:22 +02:00
Lauri Ojansivu 1ef5b8efe1 Remove extra file. 2018-01-28 19:19:49 +02:00
Lauri Ojansivu f3d6aa9e09 Update translations. 2018-01-28 19:15:51 +02:00
Lauri Ojansivu cf97123512 Merge branch 'devel' 2018-01-28 18:27:57 +02:00
Lauri Ojansivu fd430d3405 v0.66 2018-01-28 18:27:00 +02:00
Lauri Ojansivu 0ce4171d33 Merge branch 'soohwa-fix-dockerfile-rm' into devel
Fix Dockerfile for Debian. Thanks to soohwa !
2018-01-28 11:22:00 +02:00
Lauri Ojansivu 7df5679c0c Fix Dockerfile for Debian. Thanks to soohwa ! 2018-01-28 11:21:21 +02:00
soohwa 1616dd1b74 Fix Dockerfile 2018-01-28 10:04:10 +01:00
Lauri Ojansivu 6aca70f0d1 Merge branch 'devel' 2018-01-28 00:02:35 +02:00
Lauri Ojansivu 081c1fdf83 v0.65 2018-01-28 00:01:20 +02:00
Lauri Ojansivu 9444624f19 Rename Igbo langage code name to get it working. 2018-01-27 23:25:50 +02:00
Lauri Ojansivu abd1d322f2 Try to fix Dockerfile. 2018-01-27 21:35:40 +02:00
Lauri Ojansivu d19083bb89 Update translations. 2018-01-27 18:28:31 +02:00
Lauri Ojansivu 7ddaa12520 Update translations. 2018-01-25 09:07:43 +02:00
Lauri Ojansivu 3b8c76a32e Update versions of Node and NPM at Travis. 2018-01-25 09:00:57 +02:00
Lauri Ojansivu 7f4401f3a2 Fix lint errors. Update changelog. 2018-01-25 08:22:11 +02:00
Lauri Ojansivu 188341cf50 Merge remote-tracking branch 'upstream/devel' into devel 2018-01-25 07:31:42 +02:00
Andrés Manelli af119ff7c0 Add card on first swimlane found 2018-01-22 23:43:47 -03:00
Andrés Manelli 7b04f14e3c Allow toogle of lists and swimlanes views 2018-01-22 23:35:23 -03:00
Andrés Manelli a14f4ffee2 Add view boards field to change between views 2018-01-22 16:54:19 -03:00
Andrés Manelli 2d7d9b5d9f Fix lint errors 2018-01-22 15:31:33 -03:00
Andrés Manelli ecb8c88233 Add migration for swimlane addition 2018-01-22 15:10:26 -03:00
Lauri Ojansivu 91e738bd32 Go back using debian buster-slim Docker base image 2018-01-22 18:46:53 +02:00
Lauri Ojansivu ec0bbe9e14 Try Debian experimental with Docker, does it work or fix bugs 2018-01-22 17:54:19 +02:00
Lauri Ojansivu 6e25ef73b0 Use Debian package version of gosu 2018-01-22 17:22:16 +02:00
Lauri Ojansivu d2ce41694f Dockerfile apt => apt-get 2018-01-22 17:17:28 +02:00
Lauri Ojansivu b2c9d47b0f Removed dist-upgrade from Dockerfile, trying to fix docker build. 2018-01-22 16:59:36 +02:00
Lauri Ojansivu 52aa22f36a Try Debian 10 buster with Docker 2018-01-22 16:53:39 +02:00
Lauri Ojansivu bc6217854a Try to fix snap external symlink, that prevents uploading of snap 2018-01-22 16:41:01 +02:00
Lauri Ojansivu d79bb1a81c Try to fix Docker and Snap: add apt-utils, remove sed bson. 2018-01-22 14:37:34 +02:00
Lauri Ojansivu fb220fe918 v0.64 2018-01-22 00:43:41 +02:00
Lauri Ojansivu 89ccef84be Sandstorm fix for Meteor 1.6.0.1 2018-01-22 00:20:53 +02:00
Lauri Ojansivu 6622dbb56b Meteor 1.6.0.1, Node 8.9.3, NPM 5.5.1, fibers 2.0.0 2018-01-22 00:18:59 +02:00
Lauri Ojansivu 7963171058 Update translations. 2018-01-21 18:24:16 +02:00
Andrés Manelli ee2a43dd5b Add siwmlane button. Allow card drop between swimlanes 2018-01-19 16:00:02 -03:00
Andrés Manelli 690a5b9703 First swimlane draft, no functionality 2018-01-19 12:22:03 -03:00
Lauri Ojansivu f33be3e243 Add Mongolian and Portuguese. 2018-01-16 01:54:16 +02:00
Lauri Ojansivu 4eaf92d17e Update translations. Add Mongolian and Portuguese. 2018-01-16 01:53:11 +02:00
Lauri Ojansivu 1baa4b2fa4 spenttime => spent time 2018-01-16 00:27:14 +02:00
Lauri Ojansivu 6210c00f95 Fix double slash bug on snap. Thanks to xet7 ! 2018-01-15 23:01:00 +02:00
Lauri Ojansivu 8b6a2eade3 Update translations. 2018-01-15 19:49:30 +02:00
Lauri Ojansivu f7ef629dba Merge branch 'dpoznyak-bugfix/#476-scroll-drag-lists' into devel
Fix for dragging into scrolled-down list. Thanks to dpoznyak !
Partially addresses #476
2018-01-08 18:41:27 +02:00
Lauri Ojansivu 0f0a93cabf Fix for dragging into scrolled-down list. Thanks to dpoznyak !
Partially addresses #476
2018-01-08 18:40:03 +02:00
DPLV\dpoz e5193870fc working fix for wekan/wekan#476 in lists
working fix for wekan/wekan#476 in lists
2018-01-08 23:26:09 +08:00
Lauri Ojansivu 428465d361 Try to fix double slash on snap #962 2018-01-06 20:29:16 +02:00
Lauri Ojansivu 37b2771a9d Update translations. 2018-01-06 16:29:44 +02:00
Lauri Ojansivu ccb14beb83 Merge branch 'mmarschall-different-icons-for-start-and-due-date' into devel
Different icons for start and due date. Thanks to mmarschall !
Closes #1414
2018-01-06 15:34:31 +02:00
Lauri Ojansivu 17bb464107 Different icons for start and due date. Thanks to mmarschall !
Closes #1414
2018-01-06 15:32:18 +02:00
Matthias Marschall cd4062c9f1 different icons for start and due date 2018-01-04 18:34:39 +01:00
Lauri Ojansivu 22158b4941 Update translations. 2017-12-28 22:35:21 +02:00
Lauri Ojansivu 963e319345 Merge branch 'devel' 2017-12-20 15:20:31 +02:00
Lauri Ojansivu bdf252b6e2 v0.63 2017-12-20 15:18:45 +02:00
Lauri Ojansivu 2347fbae17 Update translations. 2017-12-20 14:45:31 +02:00
Lauri Ojansivu 9e3e63f494 Merge branch 'thuanpq-auto-setting-card-cover-with-drag-drop' into devel 2017-12-20 14:15:38 +02:00
Lauri Ojansivu ba2d9b89dc Auto update card cover with new image uploaded via drag&drop.
Thanks to thuanpq !
2017-12-20 14:14:46 +02:00
Lauri Ojansivu 62d000cd67 Merge branch 'auto-setting-card-cover-with-drag-drop' of https://github.com/thuanpq/wekan into thuanpq-auto-setting-card-cover-with-drag-drop 2017-12-20 14:12:52 +02:00
Lauri Ojansivu 0c15048bdd Use Node 4.6.7. Add paxctl fix to snap. 2017-12-20 14:11:41 +02:00
Lauri Ojansivu b21021501c Merge branch 'devel' 2017-12-19 21:38:34 +02:00
Lauri Ojansivu 74877fd10d Try to fix snap build. 2017-12-19 21:38:20 +02:00
Thuan Pham Quoc c3e67510c8 Update - auto update card cover with new image uploaded via drag&drop 2017-12-18 22:40:01 +07:00
Lauri Ojansivu 638e2d87eb Merge branch 'devel' 2017-12-13 14:28:54 +02:00
Lauri Ojansivu 4fad48e7ac Revert snap MongoDB from v3.2.18 back to v3.2.16 because of SSL cert error. Trying to fix snap build. 2017-12-13 14:28:32 +02:00
Lauri Ojansivu d94393c764 Merge branch 'devel' 2017-12-13 13:49:36 +02:00
Lauri Ojansivu 0f567a8e9c Trying to fix snap build. 2017-12-13 13:49:07 +02:00
Lauri Ojansivu faa95a0f8c Merge branch 'devel' 2017-12-12 15:37:16 +02:00
Lauri Ojansivu 0d976aaf0f v0.62 2017-12-12 15:36:02 +02:00
Lauri Ojansivu 047e22571e Merge branch 'devel' 2017-12-12 14:32:37 +02:00
Lauri Ojansivu f115e33f66 v0.61 2017-12-12 14:30:02 +02:00
Lauri Ojansivu 6e8a84eaa7 Restore Meteot 1.4 version of sandstorm.js 2017-12-12 14:18:34 +02:00
Lauri Ojansivu eb9d417a27 Add mixmax:smart-disconnect to lower CPU usage when
browser tab is not selected. Thanks mfshiu !
Related wekan/wekan-mongodb#2
2017-12-12 14:06:14 +02:00
Lauri Ojansivu 8dd6255ebf Revert back to Meteor v1.4, Node v4.8.6 and MongoDB v3.2.18 2017-12-12 13:58:46 +02:00
Lauri Ojansivu 7a943f99e3 Add mixmax:smart-disconnect to lower CPU usage when
browser tab is not selected. Thanks mfshiu !
Related wekan/wekan-mongodb#2
2017-12-12 13:51:45 +02:00
Lauri Ojansivu 415fafe7f6 Add mixmax:smart-disconnect to lower CPU usage when
browser tab is not selected. Thanks mfshiu !
Related wekan/wekan-mongodb#2
2017-12-12 13:50:19 +02:00
Lauri Ojansivu 462b8023eb Update translations. 2017-12-11 23:38:49 +02:00
Lauri Ojansivu 8f2bebeeef Merge branch 'thuanpq-make-small-add-card-at-list-top-easier-to-see' into devel 2017-12-11 22:54:58 +02:00
Lauri Ojansivu e08f9686d8 Make it easier to see the Add Card button at top of list.
Thanks to thuanpq !
2017-12-11 22:54:10 +02:00
Lauri Ojansivu bd127af916 Merge branch 'make-small-add-card-at-list-top-easier-to-see' of https://github.com/thuanpq/wekan into thuanpq-make-small-add-card-at-list-top-easier-to-see 2017-12-11 22:52:53 +02:00
Lauri Ojansivu d235a00b11 Merge branch 'thuanpq-keep-attachment-section-for-uploading-attachment-easier' into devel 2017-12-11 22:51:50 +02:00
Lauri Ojansivu 8dc9856ed8 Always display attachment section for uploading file quickly.
Thanks to thuanpq !
2017-12-11 22:51:16 +02:00
Lauri Ojansivu ca1da1adc2 Merge branch 'keep-attachment-section-for-uploading-attachment-easier' of https://github.com/thuanpq/wekan into thuanpq-keep-attachment-section-for-uploading-attachment-easier 2017-12-11 22:49:09 +02:00
Lauri Ojansivu 4c0b262c7b Merge branch 'thuanpq-fixed-bug-on-long-card-history-log' into devel 2017-12-11 22:47:45 +02:00
Lauri Ojansivu 4ac9048d80 Fixed bug on long url of attachment in card activity log.
Thanks to thuanpq !
2017-12-11 22:46:59 +02:00
Lauri Ojansivu fb83a5164d Merge branch 'fixed-bug-on-long-card-history-log' of https://github.com/thuanpq/wekan into thuanpq-fixed-bug-on-long-card-history-log 2017-12-11 22:45:56 +02:00
Lauri Ojansivu a05292bd91 Update Travis versions of Node and NPM. 2017-12-11 22:44:34 +02:00
Lauri Ojansivu f4e0d92296 Merge branch 'thuanpq-fix-bug-on-header-quick-access' into devel 2017-12-11 22:13:28 +02:00
Lauri Ojansivu 9e0142b885 Boards subscription should be placed at header for all other component
can be used. Thanks to thuanpq !
2017-12-11 22:12:49 +02:00
Lauri Ojansivu 5f30c6ecca Merge branch 'fix-bug-on-header-quick-access' of https://github.com/thuanpq/wekan into thuanpq-fix-bug-on-header-quick-access 2017-12-11 22:11:31 +02:00
Lauri Ojansivu 7214e4bb2f Merge branch 'thuanpq-auto-update-card-cover-with-latest-uploaded-image' into devel 2017-12-11 22:08:17 +02:00
Lauri Ojansivu fd7a140429 Auto update card cover with latest uploaded image attachment.
Thanks to thuanpq !
2017-12-11 22:07:47 +02:00
Lauri Ojansivu 07954c0f6d Merge branch 'auto-update-card-cover-with-latest-uploaded-image' of https://github.com/thuanpq/wekan into thuanpq-auto-update-card-cover-with-latest-uploaded-image 2017-12-11 22:06:14 +02:00
Lauri Ojansivu a282a38ecd Merge branch 'thuanpq-dont-open-swipebox-overlay-while-downloading-update-cover' into devel 2017-12-11 22:05:07 +02:00
Lauri Ojansivu 1f830cc5e3 Don't open swipebox on update card cover / download file / delete file.
Thanks to thuanpq !
2017-12-11 22:04:24 +02:00
Lauri Ojansivu 96b560eb00 Merge branch 'dont-open-swipebox-overlay-while-downloading-update-cover' of https://github.com/thuanpq/wekan into thuanpq-dont-open-swipebox-overlay-while-downloading-update-cover 2017-12-11 22:00:38 +02:00
Lauri Ojansivu 6ce5ea9ca5 Merge branch 'thuanpq-fix-bug-on-sidebar-member-avatar-not-shown' into devel 2017-12-11 21:51:39 +02:00
Lauri Ojansivu 9ed730284d Fixed bug on not able to see member avatar on sidebar activity.
Thanks to thuanpq !
2017-12-11 21:50:21 +02:00
Lauri Ojansivu 10427a9beb Merge branch 'fix-bug-on-sidebar-member-avatar-not-shown' of https://github.com/thuanpq/wekan into thuanpq-fix-bug-on-sidebar-member-avatar-not-shown 2017-12-11 21:47:15 +02:00
Lauri Ojansivu ddcdcb6e08 Use Node v6.12.2 and Meteor v1.6.0 2017-12-11 21:41:52 +02:00
Lauri Ojansivu 7afea1809f Revert Meteor 1.6.1 upgrade because it broke Wekan. So now using Meteor 1.6. 2017-12-11 21:13:30 +02:00
Lauri Ojansivu 1790b99fe0 Version updates. 2017-12-11 18:15:02 +02:00
Thuan Pham Quoc d5d661b131 Fixed - make it easier to see the Adding Card btn at top of list 2017-12-10 23:03:13 +07:00
Thuan Pham Quoc 8a28e988e9 Always display attachment section for uploading file quickly 2017-12-10 22:53:45 +07:00
Thuan Pham Quoc d1d8e0b935 Fixed - bug on long url of attachment in card activity log 2017-12-09 00:41:29 +07:00
Thuan Pham Quoc 84d60b5908 Added - auto update card cover with latest uploaded image attachment of card 2017-12-09 00:36:23 +07:00
Thuan Pham Quoc 245d262705 Fixed - don't open swipebox on update card cover - download file - delete file 2017-12-08 23:57:53 +07:00
Thuan Pham Quoc c686cadfef Fixed - boards subscription should be placed at header for all other component can be used 2017-12-06 15:39:54 +07:00
Thuan Pham Quoc 26405c011f Fixed - bug on not able to see member avatar on sidebar activity 2017-12-06 15:24:53 +07:00
Lauri Ojansivu ba9e163dd5 Remove not needed packages. Upgrade packages. Update Sandstorm capnp path.
Note: This version does not work on Sandstorm yet.
2017-12-03 18:50:22 +02:00
Lauri Ojansivu 7c403053e3 Fix lint errors. 2017-12-03 04:00:55 +02:00
Lauri Ojansivu c52233cacf Update Meteor 1.6, Node 6.12 and NPM versions to Dockerfile. 2017-12-03 02:56:56 +02:00
Lauri Ojansivu d6a5cb534d Try upgrading Wekan to Node v6.12 and Meteor 1.6, still using MongoDB 3.2.18.
Standalone Wekan seems to work, needs testing.
This does not fix crash bug of MongoDB 3.4.x.
This version does not yet work on Sandstorm.
2017-12-03 02:29:37 +02:00
Lauri Ojansivu e2f768c6a0 Update Node to 4.8.6 and MongoDB to 3.2.18 2017-12-02 23:10:59 +02:00
Lauri Ojansivu 4c5eda0ae5 Merge branch 'thuanpq-fix-bug-on-missing-admin-panel-menuoption' into devel
Fixed Bug on not being able to see Admin Panel if not having access to Board List.
Thanks to thuanpq !
2017-12-02 22:20:44 +02:00
Lauri Ojansivu 670cc99b8f Fixed Bug on not being able to see Admin Panel if not having access to Board List.
Thanks to thuanpq !
2017-12-02 22:19:19 +02:00
Lauri Ojansivu 847843e51d Merge branch 'fix-bug-on-missing-admin-panel-menuoption' of https://github.com/thuanpq/wekan into thuanpq-fix-bug-on-missing-admin-panel-menuoption 2017-12-02 22:07:56 +02:00
Lauri Ojansivu 9261371c51 Fix lint error. 2017-12-02 22:04:20 +02:00
Lauri Ojansivu 233554a3d6 Move global subscription to template subscription so that subscription
will stop when template is unused. It's very important for efficiency
espacially with large number of users. Thanks to mfshiu !
2017-12-02 22:00:42 +02:00
Lauri Ojansivu fa281e3f5f Update translations. Add Latvian language. 2017-12-02 21:41:09 +02:00
Lauri Ojansivu fcf7c02c69 Merge branch 'thuanpq-allow-changing-user-password-in-admin-panel' into devel
Change password of any user in Standalone Wekan Admin Panel. Thanks to thuanpq !
2017-12-02 21:02:21 +02:00
Lauri Ojansivu 3a391d5539 Change password of any user in Standalone Wekan Admin Panel. Thanks to thuanpq ! 2017-12-02 21:01:40 +02:00
Thuan Pham Quoc 22e369804b Allow admin to change user password in admin panel 2017-12-01 15:55:53 +07:00
Thuan Pham Quoc 3dc326db6a Move user-admin subsciption to header 2017-12-01 15:26:41 +07:00
Thuan Pham Quoc b3eab212ae Fixed - Missing trailing comma comma-dangle 2017-12-01 15:15:44 +07:00
Thuan Pham Quoc 6d9d183674 Fixed - bug on not able to see ADMIN PANEL if not access Board List 2017-12-01 15:04:35 +07:00
Lauri Ojansivu ed95542b67 Merge branch 'devel' 2017-11-29 14:19:49 +02:00
Lauri Ojansivu 54036fd7a3 v0.60 2017-11-29 14:18:51 +02:00
Lauri Ojansivu c72792e4ed Merge branch 'nztqa-conflict-resolution-458' into devel
Optimize for mobile web, show single list per page with navigate bar.
Thanks to floatinghotpot and nztqa ! Related #953
2017-11-29 12:11:02 +02:00
Lauri Ojansivu c3e2ee1db8 Optimize for mobile web, show single list per page with navigate bar.
Thanks to floatinghotpot and nztqa ! Related #953
2017-11-29 12:03:41 +02:00
Lauri Ojansivu 5d8462ca11 Merge branch 'conflict-resolution-458' of https://github.com/nztqa/wekan into nztqa-conflict-resolution-458 2017-11-29 11:29:43 +02:00
Lauri Ojansivu 7e4b42e9b3 Fix: Frequent Subscriptions problem that make Excessive CPU usage.
Thanks to mfshiu ! Closes #1096, Closes wekan/wekan-mongodb#2
2017-11-29 11:23:49 +02:00
Lauri Ojansivu c609096700 Add SMTP test email button to Admin Panel. Thanks to nztqa ! 2017-11-29 11:00:15 +02:00
Lauri Ojansivu 79fa5f89f3 Merge branch 'nztqa-improve-smtp-testing' into devel
Add SMTP test email button to Admin Panel. Thanks to nztqa !
2017-11-29 10:54:03 +02:00
Lauri Ojansivu f224934ae0 Update translations. 2017-11-29 10:53:08 +02:00
nztqa c31d7455f7 Optimize for mobile web, show single list per page with navigate bar 2017-11-29 17:06:33 +09:00
Lauri Ojansivu 596dd87862 Fix typo 2017-11-28 09:30:22 +02:00
Lauri Ojansivu c048ce89f1 Merge branch 'improve-smtp-testing' of https://github.com/nztqa/wekan into nztqa-improve-smtp-testing 2017-11-28 08:49:44 +02:00
nztqa 44559b52a6 Add smtp test email translations 2017-11-28 13:26:46 +09:00
Lauri Ojansivu 162b15c0cd Merge branch 'nztqa-issue-1349' into devel
Fix: User with comment only permissions can remove another user from a card.
Thanks to nztqa ! Closes #1349
2017-11-27 13:15:00 +02:00
Lauri Ojansivu 3756b7b0fc Fix: User with comment only permissions can remove another user from a card.
Thanks to nztqa ! Closes #1349
2017-11-27 13:12:59 +02:00
nztqa 332f12ce28 Add alert method 2017-11-27 19:24:06 +09:00
Lauri Ojansivu d31d5fd47a Merge branch 'issue-1349' of https://github.com/nztqa/wekan into nztqa-issue-1349 2017-11-27 11:37:18 +02:00
Lauri Ojansivu 83efd5b872 Merge branch 'martinlindhe-devel' into devel
Fix some typos in readne. Thanks to martinlindhe !
2017-11-27 11:32:34 +02:00
nztqa c2fd03e113 Fix permissions (isBoardMember to isNotCommentOnly) 2017-11-27 17:52:21 +09:00
nztqa dffe3d5ade Add test SMTP settings 2017-11-27 16:44:19 +09:00
Martin Lindhe d7cefc0042 fix some typos 2017-11-25 11:56:33 +01:00
Lauri Ojansivu 9c283112ed Merge branch 'devel' 2017-11-23 17:48:13 +02:00
Lauri Ojansivu 33b7622897 v0.59 2017-11-23 17:47:15 +02:00
Lauri Ojansivu eb8083097f Merge branch 'pierreozoux-fix-log' into devel 2017-11-23 17:45:03 +02:00
Lauri Ojansivu 80c0c80a6a Fix not working stdout logging by removing Winston logger. Thanks to pierreozoux ! 2017-11-23 17:44:22 +02:00
pierreozoux e28f3692ca Revert 00a357cd70 to fix logging 2017-11-23 16:31:18 +01:00
Lauri Ojansivu fbfe6590b7 Merge branch 'devel' 2017-11-23 12:12:31 +02:00
Lauri Ojansivu 6bcc1cfc62 v0.58 2017-11-23 12:11:35 +02:00
Lauri Ojansivu 990003ee0f Update translations. 2017-11-23 12:08:01 +02:00
Lauri Ojansivu 2824873511 Merge branch 'devel' 2017-11-23 11:46:47 +02:00
Lauri Ojansivu 60929fb200 v0.57 2017-11-23 11:45:44 +02:00
Lauri Ojansivu 45c78a05e2 Fix Winston logger. Thanks to pierreozoux ! 2017-11-23 11:40:03 +02:00
Lauri Ojansivu cf045e3c34 Merge branch 'pierreozoux-fix-logger' into devel
Fix logger. Thanks to pierreozoux !
2017-11-23 11:35:51 +02:00
Lauri Ojansivu 6575312e74 Merge branch 'fix-logger' of https://github.com/pierreozoux/wekan into pierreozoux-fix-logger
Conflicts:
	server/logger.js
2017-11-23 11:35:27 +02:00
pierreozoux ee22364354 Try to fix build 2017-11-23 10:30:56 +01:00
Lauri Ojansivu a64dbc4a9b Merge branch 'fix-logger' of https://github.com/pierreozoux/wekan into pierreozoux-fix-logger 2017-11-23 11:23:07 +02:00
pierreozoux ebff813f99 Try to fix build 2017-11-23 10:21:03 +01:00
Lauri Ojansivu 674d45a81c Add Gogs Integration as separate project. 2017-11-23 01:47:10 +02:00
pierreozoux b03c9b9879 Fix bug when LOGGER is enabled, but LOGGERS is empty. 2017-11-22 16:10:43 +01:00
pierreozoux 7f8f6bf3db Make logger enabled by default 2017-11-22 16:10:18 +01:00
pierreozoux 4ffe9438e0 Fix add logger bug
In case you want to have only the console, it will fail at the `Winston.add`
as it is already there.
2017-11-22 16:10:03 +01:00
Lauri Ojansivu fbf97d31a0 Maybe github does not like : at bullet point. 2017-11-21 13:28:22 +02:00
Lauri Ojansivu 0c5d6c2ade Try to fix markdown. Is there bug at GitHub? It did combine bullet points to same line. 2017-11-21 13:26:55 +02:00
Lauri Ojansivu 00737fa015 Try to fix markdown. 2017-11-21 13:24:42 +02:00
Lauri Ojansivu 0c9343ad88 Fix typo. 2017-11-21 13:22:49 +02:00
Lauri Ojansivu dc9ac5b58a Merge branch 'devel' 2017-11-21 12:42:08 +02:00
Lauri Ojansivu f31d007177 v0.56 2017-11-21 12:40:30 +02:00
Lauri Ojansivu 932a273ba0 Add bcrypt just to see if bson error goes away. 2017-11-21 12:39:26 +02:00
Lauri Ojansivu 9ea35b7188 Merge branch 'thuanpq-card-spent-time' into devel
Spent time/Overtime on card. Thanks to thuanpq ! Closes #1337
2017-11-21 11:31:04 +02:00
Lauri Ojansivu d76387aed2 Spent time/Overtime on card. Thanks to thuanpq ! Closes #1337 2017-11-21 11:30:18 +02:00
Lauri Ojansivu 77a4341621 Update translations. Added Greek language. 2017-11-21 11:25:59 +02:00
Lauri Ojansivu e162fe3c0f Merge branch 'card-spent-time' of https://github.com/thuanpq/wekan into thuanpq-card-spent-time 2017-11-21 10:03:02 +02:00
Lauri Ojansivu f3e7646cfa Merge branch 'couscous3-fix-title-editing-shift-key-firefox' into devel
Card details: fix title editing with shift key. Thanks to couscous3 !
2017-11-21 09:30:58 +02:00
Lauri Ojansivu 552fa32b87 Card details: fix title editing with shift key. Thanks to couscous3 ! 2017-11-21 09:30:31 +02:00
Lauri Ojansivu 8a4f5ed6e3 Merge branch 'fix-title-editing-shift-key-firefox' of https://github.com/couscous3/wekan into couscous3-fix-title-editing-shift-key-firefox 2017-11-21 09:28:37 +02:00
Lauri Ojansivu c8cef7551f Merge branch 'couscous3-remove-minicard-title-whitespace' into devel 2017-11-21 09:27:21 +02:00
Lauri Ojansivu 9c46c6c962 Remove erroneous minicard title whitespace. Thanks couscous3 ! 2017-11-21 09:26:50 +02:00
Lauri Ojansivu 01818a99b9 Merge branch 'remove-minicard-title-whitespace' of https://github.com/couscous3/wekan into couscous3-remove-minicard-title-whitespace 2017-11-21 09:24:44 +02:00
Lauri Ojansivu 70fb1c4650 Merge branch 'thuanpq-fix-board-list-long-desc' into devel
Fix: Board list with long-description boards not visible. Thanks thuanpq !
2017-11-21 09:22:41 +02:00
Lauri Ojansivu 5c743f12a1 Board list with long-description boards not visible. Thanks thuanpq ! 2017-11-21 09:22:23 +02:00
Lauri Ojansivu 5b9e8cce14 Merge branch 'fix-board-list-long-desc' of https://github.com/thuanpq/wekan into thuanpq-fix-board-list-long-desc 2017-11-21 09:19:06 +02:00
Lauri Ojansivu 06afa1ae35 Merge branch 'GhassenRjab-feature/copy-move-cards-x-boards' into devel
Copy/Move card to another board in Standalone Wekan.
Thanks to GhassenRjab and thuanpq ! Closes #797
2017-11-21 09:16:28 +02:00
Lauri Ojansivu a84db59898 Copy/Move card to another board in Standalone Wekan. Thanks to GhassenRjab and thuanpq ! Closes #797 2017-11-21 09:15:16 +02:00
Lauri Ojansivu 9441fb29c9 Fix Copy/Move cards. Thanks to thuanpq ! 2017-11-21 09:07:56 +02:00
couscous3 7dae37eeac card detail: fix title editing with shift key
in firefox there is no global `event` object, therefore we should use the `evt` argument from the event handler
2017-11-20 18:25:56 +01:00
couscous3 90fd3286a8 remove erroneous minicard title whitespace
introduced by the markdown viewer in commit #309c1d0 (the markdown viewer uses <p> tags which have a margin-bottom)
2017-11-20 18:07:37 +01:00
Thuan Pham Quoc 996fdc2bda Fixed issue on board list with long-desc boards 2017-11-20 23:28:46 +07:00
Thuan Pham Quoc 6dba4ccd4d Added red-green circle to board lists item for indicating board which has overtime logs or normal spent time log 2017-11-20 23:24:27 +07:00
Lauri Ojansivu b592e8ad14 Merge branch 'feature/copy-move-cards-x-boards' of https://github.com/GhassenRjab/wekan into GhassenRjab-feature/copy-move-cards-x-boards 2017-11-20 17:46:34 +02:00
Thuan Pham Quoc d38071457c Update spent time title to indicate Overtime or normal Spent time 2017-11-20 22:40:02 +07:00
Thuan Pham Quoc eec3c301bc Add card spent time to log time what can be overtime or not (will support filtering in future) 2017-11-20 22:26:31 +07:00
Lauri Ojansivu ee69eb03d4 Merge branch 'devel'
Conflicts:
	sandstorm-pkgdef.capnp
2017-11-19 19:03:36 +02:00
Lauri Ojansivu dfd0b21947 v0.55 2017-11-19 19:01:42 +02:00
Lauri Ojansivu 6d93e9ffb0 Add link to commit by xet7 to CHANGELOG invitation code fix. 2017-11-19 18:05:41 +02:00
Lauri Ojansivu 99be745f02 Fix: Invitation /sign-up page did not show input for invitation code. Thanks to xet7 ! 2017-11-19 18:04:02 +02:00
Lauri Ojansivu 62e43c0832 Fix: Error after sending invitation and joining board:
Exception while invoking method 'login' TypeError: Cannot read property 'loginDisabled' of undefined.
Thanks to nztqa ! Closes #1331
2017-11-19 17:51:26 +02:00
Lauri Ojansivu eceaac7998 Merge branch 'soohwa-add-rest-api-bettor-error-output' into devel
REST API better error output. Thanks to soohwa ! Related #1037
2017-11-19 10:45:04 +02:00
Lauri Ojansivu c01335ee29 REST API better error output. Thanks to soohwa ! Related #1037 2017-11-19 10:44:37 +02:00
Lauri Ojansivu 9353d785ea Fix: Helper to list boards for user. Thanks to milesibastos ! Closes #1326 2017-11-19 09:50:03 +02:00
Lauri Ojansivu 0ea96fca3f Merge branch 'thuanpq-devel' into devel
User Admin to Admin Panel: List users.
Change: is user admin, name, fullname, email address, is user active.
Not changing password yet. Thanks to thuanpq and xet7 ! Related #802
2017-11-19 01:45:58 +02:00
Lauri Ojansivu 75c5eeb046 Update translations. 2017-11-19 01:41:53 +02:00
Lauri Ojansivu 9f30eeae61 User Admin to Admin Panel: List users.
Change: is user admin, name, fullname, email address, is user active.
Not changing password yet. Thanks to thuanpq and xet7 ! Related #802
2017-11-19 01:25:28 +02:00
Lauri Ojansivu 6fc992e6d7 Change admin panel header order to info people version. 2017-11-19 01:05:43 +02:00
Lauri Ojansivu 622292e40e Make Admin Panel People page text translateable 2017-11-19 01:05:09 +02:00
Lauri Ojansivu 22e43e6591 Merge branch 'devel' of https://github.com/thuanpq/wekan into thuanpq-devel 2017-11-18 23:37:15 +02:00
Lauri Ojansivu 13d8e75c05 Merge branch 'brooksbecton-addMarkdownToTitle' into devel
Markdown in card/minicard/checlist titles
and checklist items. Next line: Shift+Enter. Submit: Enter. Closes #926.
Fix: Emoji detection breaks MAC addresses. Closes #1248.
Fix: Codeblocks should not be scanned for emoji. Closes #643.
Fix: Whitespace trimming breaks Markdown code block indentation. Closes #1288.
Thanks to brooksbecton !
2017-11-18 23:31:00 +02:00
Lauri Ojansivu 8ae9cb97f7 Markdown in card/minicard/checlist titles
and checklist items. Next line: Shift+Enter. Submit: Enter. Closes #926.
Fix: Emoji detection breaks MAC addresses. Closes #1248.
Fix: Codeblocks should not be scanned for emoji. Closes #643.
Fix: Whitespace trimming breaks Markdown code block indentation. Closes #1288.
Thanks to brooksbecton !
2017-11-18 23:30:20 +02:00
Thuan Pham Quoc b4c3e02b75 Fix Missing trailing comma in users.js 2017-11-16 14:14:03 +07:00
Brooks Becton ffb8b72b69 Updated comments about pressing enter on forms 2017-11-14 20:57:36 -06:00
Brooks Becton 309c1d08ff Added markdown support to card-titles, minicard-titles, checklist title, and checklist items 2017-11-14 20:41:05 -06:00
Ghassen Rjab ce4f158976 Hide list of boards in Copy|Move cards for Sandstorm users 2017-11-14 03:25:04 +01:00
Ghassen Rjab 5a37ba0d9f Move cards cross boards 2017-11-14 03:03:29 +01:00
Ghassen Rjab 59f4daf91e Copy cards cross boards 2017-11-14 03:03:08 +01:00
Thuan Pham Quoc fa1d8cd5ef Added update all user profile from admin panel 2017-11-08 11:34:37 +07:00
Thuan Pham Quoc e3b7f85cc3 Updated users methods to get user id from client on updating user data, is aimed to support admin update other user profile 2017-11-08 11:34:05 +07:00
Thuan Pham Quoc 3bead1bf78 Added pagination to people management in admin panel 2017-11-08 11:27:59 +07:00
Thuan Pham Quoc 1f6545e411 Added edit user from admin panel 2017-11-07 22:26:21 +07:00
Thuan Pham Quoc 29d54f46aa Added people list in admin panel , just raw data right now, will add more features soon 2017-11-07 14:01:27 +07:00
Thuan Pham Quoc 2d12a4f404 Add .idea to .gitignore 2017-11-06 17:34:32 +07:00
Lauri Ojansivu c040603786 Merge branch 'devel'
Conflicts:
	CHANGELOG.md
	package.json
	sandstorm-pkgdef.capnp
2017-11-02 02:17:16 +02:00
Lauri Ojansivu ba3c3f8289 v0.54 2017-11-02 02:11:27 +02:00
Lauri Ojansivu 275bb0b131 v0.53 2017-11-02 01:34:27 +02:00
Lauri Ojansivu 6eef4043ca Merge branch 'amadilsons-softwiplimit' into devel
Soft WIP Limit. Thanks to amadilsons and xet7 ! Closes #1311
2017-11-02 01:29:49 +02:00
Lauri Ojansivu 999cdb2bb9 Soft WIP Limit. Thanks to amadilsons and xet7 ! Closes #1311 2017-11-02 01:29:23 +02:00
Lauri Ojansivu cc5435c780 Update translations. 2017-11-02 01:25:09 +02:00
Lauri Ojansivu e015e4245e Make it possible to translate text Soft WIP Limit. 2017-11-02 01:03:51 +02:00
amadilsons c17f26f6ba fix: always restore archived cards if wip limit is soft 2017-10-31 21:20:53 +00:00
amadilsons fdd1aad80d added soft wip limit feature, fixed wipLimit=0 bug (??) 2017-10-31 21:10:36 +00:00
Lauri Ojansivu 8bf3f300ad v0.52 2017-10-31 07:26:32 +02:00
Lauri Ojansivu 99455b2728 Update translations. 2017-10-31 07:24:03 +02:00
Lauri Ojansivu 1a232c7bbb Add iPhone favicon for Wekan. Thanks to guillaumebriday ! Closes #1317 2017-10-31 06:54:47 +02:00
Lauri Ojansivu d3d73e9cdd Merge branch 'Tentoe-boardimportbug' into devel
Fixed Members do not get included on board import from Wekan.
Thanks to Tentoe ! Closes #1255
2017-10-31 06:48:40 +02:00
Lauri Ojansivu 0c34cb97a7 Fixed Members do not get included on board import from Wekan. Thanks to Tentoe ! Closes #1255 2017-10-31 06:48:15 +02:00
Lauri Ojansivu 0df3e7a3c0 Merge branch 'boardimportbug' of https://github.com/Tentoe/wekan into Tentoe-boardimportbug 2017-10-31 06:28:00 +02:00
Lauri Ojansivu 29a08e5568 Merge branch 'brooksbecton-attachments-improvements' into devel 2017-10-31 06:20:02 +02:00
Lauri Ojansivu 09808840cd Image attachment resize on smaller screens and swipebox. Thanks to brooksbecton ! Closes #201 2017-10-31 06:19:24 +02:00
Lauri Ojansivu c5e36d9160 Merge branch 'attachments-improvements' of https://github.com/brooksbecton/wekan into brooksbecton-attachments-improvements 2017-10-31 06:02:55 +02:00
Lauri Ojansivu aa1646ad45 Merge branch 'ocdtrekkie-patch-1' into devel
Permit editing WIP limit. Thanks to nztqa and ocdtrekkie ! Closes #1310
2017-10-31 05:59:04 +02:00
Lauri Ojansivu c2173e073e Permit editing WIP limit. Thanks to nztqa and ocdtrekkie ! Closes #1310 2017-10-31 05:58:33 +02:00
Keven Kurz PC 81d00a9471 Covered case of no admin and no self mapping.
Now importer is always admin of the imported board so that no
undeletable boards can be created.
2017-10-29 17:36:31 +01:00
Keven Kurz PC e8cfed1f7b fixed Members do not get included on board import from WeKan #1255
fixed multiple errors where constants were mistakenly overridden.(or
trying to get a property of an object after making sure it doesn't
exits)

renamed wekanBoard Parameter from createBoardAndLabels for clairity

reworked adding admin for imorter
2017-10-29 16:34:49 +01:00
Brooks Becton 28c78fdfef Merge branch 'attachments-improvements' of github.com:brooksbecton/wekan into attachments-improvements 2017-10-28 10:15:57 -05:00
Brooks Becton d48043c7ee Added swipebox package and added it to attachement images
Also removed '.js-open-viewer' and it's styling stub
2017-10-28 10:15:47 -05:00
Brooks Becton dd1a8ade5e Added media queries to resize attatchments
media queries match other break points and break from a 3 column to 2 to 1
2017-10-28 10:15:47 -05:00
Brooks Becton d9705a0ec4 Added swipebox package and added it to attachement images
Also removed '.js-open-viewer' and it's styling stub
2017-10-28 10:15:05 -05:00
Jacob Weisz 58fbe8e6f2 Permit editing the WIP limit
This is a fix for #1310 and required for Edge users to be able to edit the WIP limit. (The up/down buttons appear to be "optional" according to the HTML5 spec, and can't be assumed to be present.)

I also believe I fixed a spelling error in the same section.

This PR is **NOT TESTED**
2017-10-26 23:48:24 -05:00
Brooks Becton 5c1ace7293 Merge branch 'attachments-improvements' of github.com:brooksbecton/wekan into attachments-improvements 2017-10-25 18:34:48 -05:00
Brooks Becton 0321d9770c Added media queries to resize attatchments
media queries match other break points and break from a 3 column to 2 to 1
2017-10-25 18:34:40 -05:00
Brooks Becton 6a2b6ef3c0 Added media queries to resize attatchments
media queries match other break points and break from a 3 column to 2 to 1
2017-10-25 18:22:34 -05:00
Lauri Ojansivu 01507576b1 v0.51 2017-10-25 17:38:01 +03:00
Lauri Ojansivu 94a6d9ae2f Merge branch 'devel' of github.com:wekan/wekan into devel 2017-10-25 17:28:01 +03:00
Lauri Ojansivu 64fe808a4a Update translations. 2017-10-25 17:27:45 +03:00
Lauri Ojansivu a493c314db Add more languages to Roboto font. Thanks to chromas-cro ! Closes #1299 2017-10-23 16:53:58 +03:00
Lauri Ojansivu d1670ee4c1 Add more languages to Roboto font. Thanks to chromas-cro ! Closes #1299 2017-10-23 16:51:36 +03:00
Lauri Ojansivu 2edced5467 Fix: User with comment only permission can add cards. Thanks to xet7 ! Closes #1301 2017-10-20 17:08:54 +03:00
Lauri Ojansivu 509b640588 Fix: User with comment only permission can add cards. Thanks to xet7 ! Closes #1301 2017-10-20 17:08:21 +03:00
Lauri Ojansivu 624c5aa9b2 Update changelog. 2017-10-20 15:53:27 +03:00
Lauri Ojansivu c5540ddcbd Change invitation link from sign-in to sign-up. Thanks to xet7 ! Closes #1300 2017-10-20 15:52:19 +03:00
Lauri Ojansivu b105f0e2e7 Update translations. Add Spanish of Argentina. 2017-10-20 15:43:54 +03:00
Lauri Ojansivu 99703035d7 Use paxctl to fix segfaut on Alpine Linux. Closes #1303 2017-10-20 14:34:15 +03:00
Lauri Ojansivu b92cde23aa Merge branch 'soohwa-1285-feature-disable-user' into devel
REST API:
- Disable and enable user login.
- Take ownership boards of a user.
- List boards of user.

Thanks to soohwa ! Closes #1285, closes #1220, closes #1118
2017-10-20 14:29:32 +03:00
Lauri Ojansivu 21f76bcacc REST API: Disable and enable user login. Take ownership boards of a user.
List boards of user. Thanks to soohwa ! Closes #1285, closes #1220, closes #1118
2017-10-20 14:29:07 +03:00
Lauri Ojansivu 0d7c1501ce Merge branch '1285-feature-disable-user' of https://github.com/soohwa/wekan into soohwa-1285-feature-disable-user 2017-10-16 18:43:22 +03:00
soohwa 97a23011da Add REST API better error output 2017-10-15 07:39:48 +02:00
Lauri Ojansivu 93d8a3f88a Update translations: es 2017-10-14 23:18:33 +03:00
Pouyan Savoli 8b16955cc2 number + date fields 2017-10-14 01:38:25 +02:00
soohwa 624719974e fix lint error 2017-10-13 09:15:52 +02:00
soohwa c290d63048 fix lint error 2017-10-13 09:00:25 +02:00
soohwa b55756216e fix lint errors 2017-10-13 08:46:25 +02:00
soohwa 77d23df87f Add the ability for the admin :
- disabling a login for a user (not himself)
- enabling a login for a user
- transfering the ownership of all user's boards to himself
2017-10-13 08:15:19 +02:00
Lauri Ojansivu 3ab33ed826 v0.50 2017-10-10 18:08:21 +03:00
Lauri Ojansivu 8f1f7a1d56 Fix and update translations. Thanks to xet7 ! Closes #1286 2017-10-10 17:57:26 +03:00
Lauri Ojansivu 4eccfb6c25 v0.49 2017-10-09 20:00:47 +03:00
Lauri Ojansivu a5daf5dc29 Fix: When WIP limit in use, hide also add card + button at top of list. Thanks to xet7 ! 2017-10-09 19:46:11 +03:00
Lauri Ojansivu 6a89914873 v0.48 2017-10-09 18:30:36 +03:00
Lauri Ojansivu 5532a0071a Merge branch 'amadilsons-userSelfRemove' into devel
User can leave board on Standalone Wekan. Thanks to amadilsons !
2017-10-09 18:23:25 +03:00
Lauri Ojansivu 46d7a33575 User can leave board on Standalone Wekan. Thanks to amadilsons ! 2017-10-09 18:22:50 +03:00
Lauri Ojansivu 2f0609db64 Update translations. 2017-10-09 18:13:16 +03:00
Lauri Ojansivu f16687fa94 Merge branch 'userSelfRemove' of https://github.com/amadilsons/wekan into amadilsons-userSelfRemove 2017-10-09 16:38:43 +03:00
Lauri Ojansivu dc82582391 Merge branch 'soohwa-fix-admin-create-user' into devel
REST API: Create user despite disabling registration.
Thanks to soohwa ! Closes #1232
2017-10-09 16:36:31 +03:00
Lauri Ojansivu ff7b001b00 REST API: Create user despite disabling registration.
Thanks to soohwa ! Closes #1232
2017-10-09 16:35:56 +03:00
Lauri Ojansivu 33cea11393 Merge branch 'fix-admin-create-user' of https://github.com/soohwa/wekan into soohwa-fix-admin-create-user 2017-10-09 15:57:42 +03:00
Lauri Ojansivu 10cb2db94f Merge branch 'amadilsons-issue783' into devel
WIP Limits. Thanks to amadilsons ! Closes #783
2017-10-09 15:55:44 +03:00
Lauri Ojansivu c346743234 WIP Limits. Thanks to amadilsons ! Closes #783 2017-10-09 15:55:11 +03:00
amadilsons 6ba1fc5ba1 user can now leave the board 2017-10-09 14:49:03 +02:00
Lauri Ojansivu de2acaec68 Update translations. 2017-10-09 15:37:43 +03:00
Lauri Ojansivu fb060ed2c5 Merge branch 'issue783' of https://github.com/amadilsons/wekan into amadilsons-issue783 2017-10-09 14:49:38 +03:00
Lauri Ojansivu c84187bdad Fix: Admin announcement can be viewed without signing in.
Thanks to nztqa ! Closes #1281
2017-10-09 14:48:05 +03:00
soohwa ad607c1291 Remove trailing space 2017-10-08 18:15:11 +09:00
soohwa b9be17360f Add comment 2017-10-07 08:33:28 +09:00
Lauri Ojansivu 23ff08382a Dockerfile base image to debian:jessie-slim 2017-10-06 19:33:36 +03:00
Lauri Ojansivu b34c62bbc7 Dockerfile base image from debian:8.9 to bitnami/minideb:jessie 2017-10-06 19:15:14 +03:00
Lauri Ojansivu e85d6d6c5e MongoDB v3.2.17 2017-10-06 19:14:23 +03:00
soohwa 8daa5b4848 Change fromAdmin into createdThroughApi 2017-10-06 23:08:22 +09:00
soohwa 273784b9e4 Clear "fromAdmin". Thx to nztqa. 2017-10-06 01:21:45 +09:00
amadilsons f77da76c68 added i18n translation, minor fix 2017-10-05 17:22:03 +02:00
amadilsons 214fe6a61f feature implemented, known bugs fixed 2017-10-05 16:46:55 +02:00
Lauri Ojansivu 38d1a424d0 v0.47 2017-10-04 21:57:41 +03:00
Lauri Ojansivu e4c08f6933 Update translations. 2017-10-04 21:47:30 +03:00
Lauri Ojansivu 3bee5ad7fe Merge branch 'nztqa-improve-slider-color' into devel
Use theme color for Slider for Comments only. Thanks to nztqa! Closes #1274
2017-10-04 20:45:42 +03:00
Lauri Ojansivu 296520f9ac Use theme color for Slider for Comments only. Thanks to nztqa! Closes #1274 2017-10-04 20:45:14 +03:00
amadilsons c865bfe497 most work concluded, code needs clean up, further testing required 2017-10-04 17:48:37 +02:00
amadilsons 089dbf0cf6 on its way 2017-10-04 11:12:52 +02:00
nztqa 527c430307 Add toggle switch-style for board color change events 2017-10-04 17:18:12 +09:00
nztqa de4ae2dc74 Add check to see if permission is available (with isBoardMember) 2017-10-04 17:06:52 +09:00
Lauri Ojansivu bab02bf8fa v0.46 2017-10-03 15:24:16 +03:00
Lauri Ojansivu 23a9ba0ef6 SECURIY FIX: Meteor allow/deny. Thanks to nztqa ! Closes #1271 2017-10-03 15:20:46 +03:00
Lauri Ojansivu c3804dc0fa SECURITY FIX: Meteor allow/deny. 2017-10-03 15:17:40 +03:00
Lauri Ojansivu 08bab70dbe Merge branch 'andresmanelli-devel' into devel 2017-10-03 15:09:57 +03:00
Lauri Ojansivu ed4c749cea Webhook parameters and response order. Thanks to andresmanelli ! 2017-10-03 15:09:25 +03:00
Lauri Ojansivu d6ef4a8266 Merge branch 'devel' of https://github.com/andresmanelli/wekan into andresmanelli-devel 2017-10-03 14:03:15 +03:00
Lauri Ojansivu 1d3e2ffadd Merge branch 'nztqa-improve-comment-only' into devel
Fix: Slider for Comments only does not work correctly with over 21 activities.
Thanks to nztqa ! Closes #1269
2017-10-03 14:01:47 +03:00
Lauri Ojansivu 0074317bd3 Fix: Slider for Comments only does not work correctly with over 21 activities.
Thanks to nztqa ! Closes #1269
2017-10-03 14:01:05 +03:00
nztqa 26aa9a4ac4 Use Meteor.subscribe instead of DOM manipulation for Hide system messages 2017-10-03 10:56:28 +09:00
nztqa e587964e82 Remove console log 2017-10-03 09:59:25 +09:00
Lauri Ojansivu 61dce8e65d Fix typo. 2017-10-01 16:12:29 +03:00
Lauri Ojansivu c18ded23a3 v0.45 2017-10-01 12:06:22 +03:00
Lauri Ojansivu ff5e88fca3 Merge branch 'nztqa-improve-announcement' into devel
Site Wide Announcement. Thanks to nztqa !
2017-10-01 10:44:42 +03:00
Lauri Ojansivu 8df9e681ed Fix lint errors. 2017-10-01 10:44:06 +03:00
Lauri Ojansivu 443c3a7ac6 Update translations. 2017-10-01 10:41:57 +03:00
Lauri Ojansivu c8cbb7697d Site Wide Announcement. Thanks to nztqa ! 2017-10-01 10:18:16 +03:00
Lauri Ojansivu d213d37dab Merge branch 'improve-announcement' of https://github.com/nztqa/wekan into nztqa-improve-announcement 2017-10-01 09:59:57 +03:00
Lauri Ojansivu a003161fa7 Merge branch 'nztqa-fix-create_label' into devel
git commit CHANGELOG.md -m "Hide create label from normal users, because only board admin can create labels.
Thanks to nztqa ! Closes #1229"
2017-10-01 09:58:35 +03:00
Lauri Ojansivu 51fd053119 Hide create label from normal users, because only board admin can create labels.
Thanks to nztqa ! Related #1229
2017-10-01 09:55:33 +03:00
Lauri Ojansivu 740c705748 Merge branch 'fix-create_label' of https://github.com/nztqa/wekan into nztqa-fix-create_label 2017-10-01 09:50:49 +03:00
Lauri Ojansivu a1d0672739 Merge branch 'nztqa-improve-activities' into devel
Slider for Comments only in activity feed.
Thanks to nztqa ! Closes #1182
2017-10-01 09:48:52 +03:00
Lauri Ojansivu 7d3fed56ae Slider for Comments only in activity feed.
Thanks to nztqa ! Closes #1182
2017-10-01 09:47:53 +03:00
Lauri Ojansivu a0cccb736c Merge branch 'improve-activities' of https://github.com/nztqa/wekan into nztqa-improve-activities 2017-10-01 09:42:15 +03:00
Lauri Ojansivu 6ec14ee52b Merge branch 'nztqa-fix-copy-card' into devel
Fix Data inconsistency when copying card.
Thanks to nztqa ! Related #1218
2017-10-01 09:40:27 +03:00
Lauri Ojansivu 4b995e88ba Fix Data inconsistency when copying card.
Thanks to nztqa ! Related #1218
2017-10-01 09:39:35 +03:00
Lauri Ojansivu 2ae0dc315f Merge branch 'fix-copy-card' of https://github.com/nztqa/wekan into nztqa-fix-copy-card 2017-10-01 09:35:36 +03:00
nztqa a88ac6113e Rename notice -> announcement 2017-10-01 12:43:15 +09:00
soohwa 42ca385a36 Fix password not saved 2017-10-01 10:15:54 +09:00
Lauri Ojansivu e6a866cb9e v0.44 2017-09-30 20:29:41 +03:00
Lauri Ojansivu 8680d7727b Merge branch 'amadilsons-issue881' into devel
Confirm popup appears before Checklist Delete.
Thanks to amadilsons ! Closes #881
2017-09-30 16:55:10 +03:00
Lauri Ojansivu d8169138e5 Confirm popup appears before Checklist Delete.
Thanks to amadilsons ! Closes #881
2017-09-30 16:54:42 +03:00
Lauri Ojansivu 6bb2302f81 Update translations. 2017-09-30 16:50:38 +03:00
Lauri Ojansivu 90d904e10d Restore spacing. 2017-09-30 16:29:38 +03:00
Lauri Ojansivu 9e075fb2da Merge branch 'issue881' of https://github.com/amadilsons/wekan into amadilsons-issue881 2017-09-30 15:51:12 +03:00
Lauri Ojansivu 222c071925 Merge branch 'GhassenRjab-feature/fix-trello-import' into devel
Fix errors when importing from Trello.
Thanks to GhassenRjab ! Closes #1243, closes #1245
2017-09-30 13:18:08 +03:00
Lauri Ojansivu 0e3620c776 Fix errors when importing from Trello.
Thanks to GhassenRjab ! Closes #1243, closes #1245
2017-09-30 13:17:40 +03:00
Andrés Manelli de1ca1d12a Send result before webhook 2017-09-29 18:47:40 -03:00
Andrés Manelli 196f959f1d Add some parameters to webhook 2017-09-29 17:11:13 -03:00
amadilsons a918d36533 mostly frontend work, lists coll update with wipLimit field 2017-09-29 16:52:53 +02:00
amadilsons e03f2102de fixed linting error 2017-09-29 14:23:54 +02:00
amadilsons 4a20208d95 removed unnecessary deleteDialog helper, delete dialog now uses tap-i18n 2017-09-29 14:13:36 +02:00
nztqa 0e43a5561b Add check to see if permission 2017-09-29 15:02:35 +09:00
amadilsons c9c650664f basic frontend setup, List model updated with wipLimit field 2017-09-28 16:59:53 +02:00
nztqa aa1876f94c Add message from service administrator 2017-09-28 16:57:04 +09:00
Ghassen Rjab 109cd08151 Use a default color (black) for labels from Trello 2017-09-27 22:23:55 +01:00
amadilsons 9940d635b4 removed linting errors 2017-09-27 15:42:48 +02:00
amadilsons dcd4a2f1e3 code clean up 2017-09-27 14:50:00 +02:00
amadilsons 75f15f1be2 Merge branch 'master' of https://github.com/wekan/wekan into issue881 2017-09-27 14:42:18 +02:00
amadilsons bbe37cfad8 sugested fix for issue #881 2017-09-27 14:29:52 +02:00
Ghassen Rjab f883757552 Ignore checklists with missing cards 2017-09-26 06:58:39 +01:00
Lauri Ojansivu eb945f26a3 v0.43 2017-09-25 19:47:10 +03:00
Lauri Ojansivu a62c8eb5a0 Add emojis back, because removing them broke local dev Sandstorm.
Thanks to xet7 ! Opens #1248, opens #743, opens #643, opens #323
2017-09-25 19:40:41 +03:00
Lauri Ojansivu f0b7f34928 v0.42 2017-09-25 18:40:33 +03:00
Lauri Ojansivu c4fd729b34 Remove emoji support, because it breaks MAC addresses, urls, code etc.
Thanks to xet7 ! Closes #1248, closes #743, closes #643, closes #323
2017-09-25 18:30:26 +03:00
soohwa ee94735922 Lint error 2017-09-25 22:14:13 +09:00
soohwa deef0855d5 Fix https://github.com/wekan/wekan/issues/1249 2017-09-25 21:03:18 +09:00
nztqa 61ee107c27 Disable button when "Hide system messages" in user profile setting is valid 2017-09-25 20:27:54 +09:00
Lauri Ojansivu fb79c8786a v0.41 2017-09-25 13:16:07 +03:00
nztqa b503ba1144 Add comments only in activity feed 2017-09-25 14:52:55 +09:00
nztqa 860ae6f38d Remove cover id 2017-09-25 13:52:44 +09:00
Lauri Ojansivu 415343bbd0 v0.40 2017-09-25 01:02:00 +03:00
Lauri Ojansivu 1dd66fdac2 Merge branch 'soohwa-admin-create-user' into devel
REST API: Create user despite disabling registration.
Thanks to soohwa ! Closes #1232
2017-09-25 00:56:04 +03:00
Lauri Ojansivu d4d20d2a43 REST API: Create user despite disabling registration.
Thanks to soohwa ! Closes #1232
2017-09-25 00:49:07 +03:00
Lauri Ojansivu f7a1c4896b Fix lint errors. 2017-09-24 17:08:28 +03:00
Lauri Ojansivu cb4a679050 Merge branch 'admin-create-user' of https://github.com/soohwa/wekan into soohwa-admin-create-user 2017-09-24 17:03:41 +03:00
Lauri Ojansivu 6addc3c217 Merge branch 'mario-orlicky-devel' into devel
Added plus button to add card on top of the list.
Thanks to mario-orlicky ! Closes #1233
2017-09-24 17:01:11 +03:00
Lauri Ojansivu d0d2406186 Added plus button to add card on top of the list.
Thanks to mario-orlicky ! Closes #1233
2017-09-24 17:00:40 +03:00
Lauri Ojansivu 2c8876aa2e Merge branch 'devel' of https://github.com/mario-orlicky/wekan into mario-orlicky-devel 2017-09-24 16:47:39 +03:00
Lauri Ojansivu d974311d9b Merge branch 'GhassenRjab-feature/keep-state-checklist' into devel
Keep state of checklist items when moved to another checklist.
Thanks to GhassenRjab ! Related #876
2017-09-24 16:45:01 +03:00
Lauri Ojansivu 802dc94363 Keep state of checklist items when moved to another checklist.
Thanks to GhassenRjab ! Related #876
2017-09-24 16:44:24 +03:00
Mário Orlický 3fa969eb26 #1233 Added plus button to add card on top of the list 2017-09-24 15:17:14 +02:00
Ghassen Rjab c3cccfc66e Update Checklists client
Use new methods added in Checklist model
2017-09-24 02:15:33 +01:00
Ghassen Rjab 28eca2a11f Update Checklist model to keep checklist item state when moved
- Remove newItemIndex field (no longer needed)
- Use Underscore.js to sort checklist items
- Add helper method to generate new Items Ids so we can use it in model and in client
- Add addFullItem method to add an item from object
- Update sort when items are being added or removed
2017-09-24 02:14:23 +01:00
Ghassen Rjab 6e5d9f9bb6 Remove newItemIndex of Checklist Collection from migration script
We no longer need this field
2017-09-24 02:09:21 +01:00
none 57d6180a7a Allow admin to create user despite disabling registration throught rest api. 2017-09-23 15:20:11 +09:00
Lauri Ojansivu 5f697eac05 Merge branch 'GhassenRjab-hotfix/sort-checklists-items' into devel
Fix: Checklist items are lost when moving items to
another checklist. Thanks to GhassenRjab ! Related #876
2017-09-23 08:10:48 +03:00
Lauri Ojansivu e97c2c7bf0 Add migration script to add sort field to checklists
and their items. Thanks to GhassenRjab ! Related #876
2017-09-23 07:52:43 +03:00
Ghassen Rjab 20ba743f9b Fix lint errors 2017-09-23 01:02:44 +01:00
Ghassen Rjab 6921452a7d Add migration script to add sort field to checklists and their items 2017-09-22 22:35:07 +01:00
Pouyan Savoli 3753337d60 dropdown items 2017-09-22 22:59:32 +02:00
Pouyan Savoli caad952bc1 text custom fields are now editable using inlinedForm 2017-09-22 22:59:32 +02:00
Pouyan Savoli 6ff89b43b6 show custom fields on cards but still with dummy value 2017-09-22 22:59:32 +02:00
Pouyan Savoli 733b14dcd8 card model and card ui preparation for custom fields #2 2017-09-22 22:59:32 +02:00
Pouyan Savoli d87191f17e card model and card ui preparation for custom fields 2017-09-22 22:59:32 +02:00
Pouyan Savoli afd87e3caa many custom fields model and UI enhancements 2017-09-22 22:59:32 +02:00
Pouyan Savoli ade3c02122 Create custom fields creation UI added to Board Menu, Model in progress 2017-09-22 22:59:32 +02:00
Lauri Ojansivu 43a58c92ac Merge branch 'umbertooo-addChecklist-notification' into devel
Add translations (en/de/fi) for email notifications regarding
checklists and checklist items. Thanks to umbertooo and xet7 ! Closes #1225
2017-09-22 22:24:05 +03:00
Lauri Ojansivu b8ddef1a23 Add translations (en/de/fi) for email notifications regarding
checklists and checklist items. Thanks to umbertooo and xet7 ! Closes #1225
2017-09-22 22:23:39 +03:00
Lauri Ojansivu fdf25a274f Update translations. 2017-09-22 22:12:55 +03:00
Felix Michels 0bbfa632f7 add translation (en/de) for email notifications regarding checklists and checklist items 2017-09-22 09:50:40 +02:00
Lauri Ojansivu f98d640e1e v0.39 2017-09-17 22:42:29 +03:00
Lauri Ojansivu fcdc1637fc Update translations. 2017-09-17 22:26:39 +03:00
Lauri Ojansivu cf8e1da383 Merge branch 'GhassenRjab-feature/import-checklist-sort' into devel
Import checklist sort attributes from Wekan and Trello.
Thanks to GhassenRjab ! Related #876
2017-09-17 06:55:02 +03:00
Lauri Ojansivu eb55b978aa Import checklist sort attributes from Wekan and Trello. Thanks to GhassenRjab ! 2017-09-17 06:54:40 +03:00
Ghassen Rjab a410dc50bb Import sort attribute of checklists and its items from Trello 2017-09-16 20:01:54 +01:00
Ghassen Rjab 2f69e65dc0 Import sort attribute of checklists and its items from Wekan
If no sort was found (Old format), we use checklist or checklist item index in the array instead
2017-09-16 19:59:03 +01:00
Lauri Ojansivu 5ef24437a3 v0.38 2017-09-13 23:02:18 +03:00
Lauri Ojansivu 7a6babe878 Update translations. 2017-09-13 22:26:37 +03:00
Lauri Ojansivu f9245727a6 Merge branch 'frmwrk123-issue-1213' into devel
Card title is now pre-filled in copy card dialog.
Thanks to frmwrk123 ! Related #1213
2017-09-13 20:42:21 +03:00
Lauri Ojansivu 9bfdc1932f Card title is now pre-filled in copy card dialog.
Thanks to frmwrk123 ! Related #1213
2017-09-13 20:41:16 +03:00
Lauri Ojansivu 59a76ed144 Merge branch 'issue-1213' of https://github.com/frmwrk123/wekan into frmwrk123-issue-1213 2017-09-13 20:37:11 +03:00
Lauri Ojansivu 68897a77dc Merge branch 'frmwrk123-issue-876' into devel
Reorder checklists. Move checklist item to another checklist.
Thanks to frmwrk123 ! Related #876
2017-09-13 20:28:11 +03:00
Lauri Ojansivu b7c7b93640 Reorder checklists. Move checklist item to another checklist. Thanks to frmwrk123 ! Related #876 2017-09-13 20:16:22 +03:00
Jim Martens 1442fd637a Implemented checklist item sorting across checklists 2017-09-12 10:38:03 +02:00
Jim Martens f2ca520a69 Prepared template for sortable checklist items 2017-09-12 10:37:16 +02:00
Jim Martens f3f845dde8 Added support for sorted checklist items 2017-09-12 10:36:42 +02:00
Jim Martens a9ca17426b Existing title of card is pre-filled in copy dialog 2017-09-12 10:30:35 +02:00
Lauri Ojansivu 3bb8431827 Update translations. 2017-09-09 23:16:35 +03:00
Lauri Ojansivu fb8330353c Rename New integration to New Outgoing Webhook 2017-09-09 22:44:04 +03:00
Lauri Ojansivu 1ee11e1cfd v0.37 2017-09-09 18:12:18 +03:00
Lauri Ojansivu ce98c86fb3 Merge branch 'frmwrk123-issue-519' into devel
Copy card within one board. Thanks to frmwrk123 !
2017-09-09 01:12:15 +03:00
Lauri Ojansivu 95c11415e2 Copy card within one board. Thanks to frmwrk123 ! 2017-09-09 01:11:44 +03:00
Lauri Ojansivu 5aa3b405fa Update translations. 2017-09-09 00:39:27 +03:00
Jim Martens 3a1859eb31 Added translation for copy card popup title
Only English and German were added.
2017-09-05 13:33:12 +02:00
Jim Martens a38b4c6a83 Added copy card functionality 2017-09-05 13:30:38 +02:00
Jim Martens 7c16e07f7d Added copy card to template 2017-09-05 13:30:18 +02:00
Lauri Ojansivu 5d12423b9d v0.36 2017-09-02 17:14:24 +03:00
Lauri Ojansivu a3d4a94890 Merge branch 'GhassenRjab-feature/manual-attachments-activities' into devel
Import attachments related activities from Wekan and Trello.
Thanks to GhassenRjab ! Closes #1157
2017-09-02 16:30:43 +03:00
Lauri Ojansivu eb9b809175 Import attachments related activities from Wekan and Trello.
Thanks to GhassenRjab ! Closes #1157
2017-09-02 16:30:09 +03:00
Lauri Ojansivu 17cf8ded07 Merge branch 'feature/manual-attachments-activities' of https://github.com/GhassenRjab/wekan into GhassenRjab-feature/manual-attachments-activities 2017-09-02 16:05:14 +03:00
Ghassen Rjab 181af6f250 Fix lint errors 2017-09-02 13:42:23 +01:00
Ghassen Rjab 2e845a5134 Uncomment code about adding attachments' related activities 2017-09-02 13:19:31 +01:00
Ghassen Rjab 255df20da0 Put 'this' in 'self' variable
For some reason, TrelloCreator didn't keep 'this' reference
2017-09-02 13:18:29 +01:00
Ghassen Rjab bc4ea6fd9a Add idMemberCreator to Trello attachment
We need this field to attribute attachment to the user who uploaded it
2017-09-02 13:17:03 +01:00
Ghassen Rjab 6ff0cf91e2 Add source field to imported attachments
We use this field to prevent adding attachments' related activities automatically only. Then this field will be removed.
2017-09-02 07:17:42 +01:00
Lauri Ojansivu d4537af3b4 v0.35 2017-09-02 00:09:51 +03:00
Lauri Ojansivu e3d2d6b292 Update translations. 2017-09-01 23:40:43 +03:00
Lauri Ojansivu e041f55254 Merge branch 'andresmanelli-devel' into devel
Add more than one Outgoing Webhook. Thanks to andresmanelli !
2017-09-01 23:01:34 +03:00
Lauri Ojansivu ba9f4fa7b7 Add more than one Outgoing Webhook. Thanks to andresmanelli ! 2017-09-01 23:00:47 +03:00
Lauri Ojansivu 01bbc089da Merge branch 'devel' of https://github.com/andresmanelli/wekan into andresmanelli-devel 2017-09-01 22:11:13 +03:00
Lauri Ojansivu 491a352792 Merge branch 'GhassenRjab-hotfix/issue-1198' into devel
Fix errors caused by checklist items activities.
Thanks to GhassenRjab and nztqa ! Closes #1198
2017-09-01 22:06:17 +03:00
Lauri Ojansivu 8d37a0418a Fix errors caused by checklist items activities.
Thanks to GhassenRjab and nztqa ! Closes #1198
2017-09-01 22:04:56 +03:00
Andrés Manelli 1048718f0b Fix null userId. Fix description field name 2017-08-31 21:20:46 -03:00
Ghassen Rjab 4ad4c6ea22 Assign user to attachment before inserting 2017-08-31 22:14:57 +01:00
Ghassen Rjab ad09630d4e use beforeWrite method of CollectionFS instead of collection-hooks 2017-08-31 22:02:11 +01:00
Ghassen Rjab a579125a1f Delete all activities related to a checklist when it is deleted 2017-08-31 06:58:32 +01:00
Ghassen Rjab ee938c0423 Delete activity related to checklist item when the item is deleted 2017-08-31 06:58:02 +01:00
Andrés Manelli 5bc95511e5 Allow delete from client. List all integrations in web UI 2017-08-30 00:58:34 -03:00
Andrés Manelli f566022aa4 Add activity subscription to integrations. Add API for integrations. Allow multiple integrations per board 2017-08-30 00:56:09 -03:00
Lauri Ojansivu ddc21046b9 v0.34 2017-08-30 01:05:41 +03:00
Lauri Ojansivu 51206cb108 Merge branch 'GhassenRjab-feature/import-activities' into devel
Import Trello and Wekan board times of creation of activities.
Thanks to GhassenRjab ! Related #1157
2017-08-30 00:59:29 +03:00
Lauri Ojansivu 200d49d369 Import Trello and Wekan board times of creation of activities. Thanks to GhassenRjab ! Related #1157 2017-08-30 00:56:49 +03:00
Lauri Ojansivu 55023171af Update translations. 2017-08-30 00:55:34 +03:00
Lauri Ojansivu decb31ffa4 Merge branch 'feature/import-activities' of https://github.com/GhassenRjab/wekan into GhassenRjab-feature/import-activities 2017-08-30 00:24:49 +03:00
Lauri Ojansivu ecb4863c39 v0.33 , includes new Sandstorm version. 2017-08-29 08:10:27 +03:00
Lauri Ojansivu 31c7ada591 Merge branch 'GhassenRjab-hotfix/sandstorm-export-import' into devel
Fix Wekan Import Export on Standalone and Sandstorm.
Thanks to GhassenRjab and xet7 ! Related #799
2017-08-29 02:03:53 +03:00
Lauri Ojansivu b4ec609fe0 Fix Wekan Import Export on Standalone and Sandstorm. Thanks to GhassenRjab and xet7 ! Related #799 2017-08-29 02:02:53 +03:00
Lauri Ojansivu d55c952289 Standalone Export has modifiedAt missing, adding modifiedAt to fix it. Thanks to xet7 ! 2017-08-29 01:56:01 +03:00
Ghassen Rjab afc002d81a Make userId optional when importing Wekan boards
Sandstorm will have an activity of adding a member by default which will have an empty userId. This caused issues when importing exported Sandstorm boards.
2017-08-28 22:03:21 +01:00
Lauri Ojansivu 06644d9c71 Merge branch 'pkuhner-fix-smtp-uri-malformed' into devel
Percent-encode SMTP password to prevent URI malformed errors.
Thanks to pkuhner ! Closes #1181
2017-08-26 03:46:51 +03:00
Lauri Ojansivu a4dfdd4fd1 Percent-encode SMTP password to prevent
URI malformed errors. Thanks to pkuhner ! Closes #1181
2017-08-26 03:46:24 +03:00
Lauri Ojansivu e21b3e6bb2 Merge branch 'fix-smtp-uri-malformed' of https://github.com/pkuhner/wekan into pkuhner-fix-smtp-uri-malformed 2017-08-26 03:39:27 +03:00
Lauri Ojansivu 777b65b1f7 Merge branch 'jonasob-username-matching' into devel
Usernames can now include dots (.) Thanks to jonasob !
2017-08-26 03:36:35 +03:00
Lauri Ojansivu 80a13be3e2 Usernames can now include dots (.) Thanks to jonasob ! 2017-08-26 03:35:53 +03:00
Lauri Ojansivu 27340ec8f7 Merge branch 'username-matching' of https://github.com/jonasob/wekan into jonasob-username-matching 2017-08-26 03:24:55 +03:00
Lauri Ojansivu 84d40bd3e3 Copy card link to clipboard. Thanks to xet7 ! Closes #1188 2017-08-26 03:14:31 +03:00
Jonas Oberg fe5ea60847 Usernames should be able to include dots (.) 2017-08-25 08:22:20 +02:00
Pierre Kuhner 4d4c127b99 Fix template literals syntax 2017-08-24 17:10:50 +02:00
Pierre Kuhner c99a950979 Percent-encode SMTP password to prevent URI malformed errors
Fix URIError: URI malformed errors when sending email with SMTP password containing some special characters.
See Sections 2.1 and 3.2 of RFC 3986.
2017-08-24 15:23:49 +02:00
Ghassen Rjab a2d7e2cb74 Fix dates of activities related to comments imported from Trello 2017-08-24 01:05:53 +01:00
Lauri Ojansivu 1b40c42cab Merge branch 'danhawkes-devel' into devel
Add web manifest so Wekan can be used as Standalone App
on Desktop with Chrome or Firefox. Thanks to danhawkes ! Closes #1154
2017-08-24 00:57:53 +03:00
Lauri Ojansivu 2740f8c31e Add web manifest so Wekan can be used as Standalone App
on Desktop with Chrome or Firefox. Thanks to danhawkes ! Closes #1154
2017-08-24 00:57:01 +03:00
Lauri Ojansivu 7d52a29620 Fixed lint error by using dot notation. 2017-08-23 23:43:12 +03:00
Lauri Ojansivu 93f08eb9c7 Merge branch 'devel' of https://github.com/danhawkes/wekan into danhawkes-devel 2017-08-23 23:29:01 +03:00
Lauri Ojansivu 1cc104e07e Update translations. 2017-08-23 23:21:52 +03:00
Lauri Ojansivu 36b642be09 Merge branch 'andresmanelli-webhook-ids' into devel
Gogs integration part 1. Thanks to andresmanelli !
2017-08-23 22:24:18 +03:00
Lauri Ojansivu 0554d576d5 Gogs integration part 1. Thanks to andresmanelli ! 2017-08-23 22:23:33 +03:00
Ghassen Rjab f1488436b8 Import Trello board activities 2017-08-23 06:42:25 +01:00
Ghassen Rjab 5665c755cb Import Wekan board activities
There is a minor catch here, we can't import activities related to adding attachments for now
2017-08-20 22:45:57 +01:00
Dan Hawkes 061d91ae7c Add web manifest
Adds a basic web manifest to support progressive web-app use.
2017-08-20 17:36:37 +01:00
Andrés Manelli a96ece2c11 Add some IDs to webhook body 2017-08-16 11:09:32 -03:00
Lauri Ojansivu 1e7e9d2715 Try newer Debian on Dockerfile. 2017-08-15 00:41:13 +03:00
Lauri Ojansivu 783dfc7495 Update translations. 2017-08-14 11:34:56 +03:00
Lauri Ojansivu c31f2d6a6c Merge branch 'nztqa-fix-checkitem-css' into devel
Fix Squeezed tickbox in Card. Thanks to nztqa ! Closes #1163
2017-08-11 17:00:28 +03:00
Lauri Ojansivu 41bb5d51ab Fix Squeezed tickbox in Card. Thanks to nztqa ! Closes #1163 2017-08-11 16:58:45 +03:00
nztqa f3467dab4a Fix flex property width of first column 2017-08-10 16:19:09 +09:00
Lauri Ojansivu 4586be46f7 Merge branch 'kubiko-devel' into devel
Ubuntu snap: Use version scriptlet. Thanks to kubiko !
2017-08-09 15:21:09 +03:00
Lauri Ojansivu 1f5d806a65 Ubuntu snap: Use version scriptlet. Thanks to kubiko ! 2017-08-09 15:20:24 +03:00
Lauri Ojansivu 723d9b4eae Merge branch 'devel' of https://github.com/kubiko/wekan into kubiko-devel 2017-08-09 15:18:03 +03:00
Lauri Ojansivu 719c5404f3 Merge branch 'nztqa-improve-account' into devel
Change Email address. Thanks to nztqa ! Closes #848
2017-08-09 15:14:11 +03:00
Lauri Ojansivu cb4f3ce52c Change Email address. Thanks to nztqa ! Closes #848 2017-08-09 15:13:33 +03:00
Lauri Ojansivu 2bd971a9b1 Update translations. 2017-08-09 15:09:10 +03:00
Lauri Ojansivu 7a0467c8c5 Capitalize accounts 2017-08-09 14:58:21 +03:00
Ondrej Kubik 6f5bbaf871 use version scriptlet instead of hardcoded version
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2017-08-08 20:26:42 +00:00
nztqa 6a10257fd7 Add change email address
Set allow email change in admin panel
2017-08-07 17:40:50 +09:00
Lauri Ojansivu 57219df16a Add version info location. 2017-08-03 16:32:53 +03:00
Lauri Ojansivu 06fdfd98b0 Fix typo. 2017-08-03 16:26:54 +03:00
Lauri Ojansivu 6a7d7d04b1 Merge branch 'nztqa-improve-info' into devel
Add display Wekan version number and runtime environment.
Thanks to nztqa! Closes #963 #356
2017-08-03 15:55:39 +03:00
Lauri Ojansivu 6b99d28768 Update translations. 2017-08-03 15:54:25 +03:00
Lauri Ojansivu 6d90c03225 Add display Wekan version number and runtime environment.
Thanks to nztqa! Closes #963 #356
2017-08-03 15:30:48 +03:00
Lauri Ojansivu 800b8bb6bd Change Infos to Version 2017-08-03 15:25:42 +03:00
Lauri Ojansivu 8ad704ca0a Merge branch 'improve-info' of https://github.com/nztqa/wekan into nztqa-improve-info 2017-08-03 14:56:36 +03:00
Lauri Ojansivu dca36b59a2 Add Commercial Support. 2017-08-03 14:55:06 +03:00
nztqa e407eb9a8b Add display wekan version number and runtime environment 2017-08-03 09:24:40 +09:00
Lauri Ojansivu 3085230b13 Add bounties. 2017-08-01 22:13:23 +03:00
Lauri Ojansivu d7c8f5242f v0.32 2017-07-30 19:10:53 +03:00
Lauri Ojansivu 417bce5a01 Fix lint error. 2017-07-30 19:05:48 +03:00
Lauri Ojansivu c0f67eb99b v0.31 2017-07-30 19:00:44 +03:00
Lauri Ojansivu 7e0bcacf91 Merge branch 'GhassenRjab-fix-files-access' into devel
FIX SECURITY ISSUE Files accessible without authentication.
Thanks to GhassenRjab ! Closes #1105
2017-07-30 18:42:02 +03:00
Lauri Ojansivu d85dc181d6 FIX SECURITY ISSUE Files accessible without authentication.
Thanks to GhassenRjab ! Closes #1105
2017-07-30 18:41:39 +03:00
Lauri Ojansivu 7984890cab Update translations. 2017-07-30 18:34:18 +03:00
Lauri Ojansivu a9d4538d53 Merge branch 'fix-files-access' of https://github.com/GhassenRjab/wekan into GhassenRjab-fix-files-access 2017-07-30 18:02:12 +03:00
Lauri Ojansivu bda15daa78 Add dwrensha's Sandstorm patch to Wekan so it does not need to be maintained separately. 2017-07-30 17:59:06 +03:00
Ghassen Rjab f521b7949a Fix files access bug 2017-07-30 04:27:38 +01:00
Lauri Ojansivu f9f529e53f Merge branch 'nztqa-fix-ie11-animation' into devel
Fix showing card activity history in IE11.
Thanks to nztqa ! Closes #646
2017-07-28 14:12:47 +03:00
Lauri Ojansivu 979a2025ef Fix showing card activity history in IE11.
Thanks to nztqa ! Closes #646
2017-07-28 14:12:27 +03:00
nztqa b24212d70a Fix keyframe property
Support for IE11
https://github.com/wekan/wekan/pull/646
2017-07-28 11:07:28 +09:00
Lauri Ojansivu a56e0b6d4a Revert back to MongoDB v3.2.15 because v3.2.16 is not yet available on Docker Hub. 2017-07-28 00:17:06 +03:00
Lauri Ojansivu 7c9b194bb6 MongoDB v3.2.16 2017-07-27 23:49:21 +03:00
Lauri Ojansivu 28cce312a8 v0.30 2017-07-27 22:29:39 +03:00
Lauri Ojansivu 1a5fe93500 v0.30 2017-07-27 22:27:08 +03:00
Lauri Ojansivu 5d24d3de2a Merge branch 'GhassenRjab-log-checklist-items' into devel
Add checklist items to activity log.
Thanks to GhassenRjab ! Closes #1025
2017-07-27 15:39:42 +03:00
Lauri Ojansivu 66da6362c8 Add checklist items to activity log.
Thanks to GhassenRjab ! Closes #1025
2017-07-27 15:39:07 +03:00
Lauri Ojansivu b0487e4dbc Update translations. 2017-07-27 15:35:57 +03:00
Ghassen Rjab 2b9bc5d046 Add checklist items to activity log 2017-07-26 22:51:15 +01:00
Lauri Ojansivu 01928bfe5a Merge branch 'nztqa-issue-template' into devel
Add GitHub issue template. Thanks to nztqa !
2017-07-25 18:22:27 +03:00
Lauri Ojansivu 0b0ceb4c0e Add GitHub issue template. Thanks to nztqa ! 2017-07-25 18:21:57 +03:00
Lauri Ojansivu 5c1662a7c1 Merge branch 'issue-template' of https://github.com/nztqa/wekan into nztqa-issue-template 2017-07-25 18:18:47 +03:00
Lauri Ojansivu 96c79f78cc Merge branch 'GhassenRjab-export-import-sandstorm' into devel
Export and import boards in Sandstorm.
Thanks to GhassenRjab ! Related #1144 and #799
2017-07-25 16:52:58 +03:00
Lauri Ojansivu 82d553721c Export and import boards in Sandstorm. Related #1144 and #799. 2017-07-25 16:52:22 +03:00
Lauri Ojansivu fe2163a546 Merge branch 'export-import-sandstorm' of https://github.com/GhassenRjab/wekan into GhassenRjab-export-import-sandstorm 2017-07-25 16:26:25 +03:00
Lauri Ojansivu 7b4970a8d9 Fix double slashes on snap. Related #962 2017-07-25 16:11:45 +03:00
nztqa 74f5628622 Add issue template 2017-07-25 15:22:40 +09:00
Ghassen Rjab 1eaada0feb A Sandstorm user can restore an archived board 2017-07-25 00:30:30 +01:00
Ghassen Rjab d2b1a837e6 Import boards in Sandstorm 2017-07-24 23:56:51 +01:00
Ghassen Rjab f34ef01de9 Fix import pages URLs 2017-07-24 23:53:09 +01:00
Ghassen Rjab 567aa89bd2 Add export and import in board menu in Sandstorm 2017-07-24 23:52:37 +01:00
Lauri Ojansivu 4fdcc144d5 Try to fix double slashes on Docker #962 2017-07-24 14:49:28 +03:00
Lauri Ojansivu dc547c38d1 Fix typo. 2017-07-22 15:05:33 +03:00
Lauri Ojansivu 048f7e0566 Add more screenshots to Features page. 2017-07-22 14:43:54 +03:00
Lauri Ojansivu 0e33c44831 Update screenshot url. 2017-07-22 12:41:21 +03:00
Lauri Ojansivu b0657ae5f5 New screenshot. 2017-07-22 12:37:08 +03:00
Lauri Ojansivu f96a6b2286 New screenshot. 2017-07-22 12:19:19 +03:00
Lauri Ojansivu d2d0ef2889 Not about security issue not fixed yet. 2017-07-21 22:04:31 +03:00
Lauri Ojansivu c02988c515 v0.29 2017-07-21 19:17:17 +03:00
Lauri Ojansivu b5836ab0ff Update translations. 2017-07-21 19:09:18 +03:00
Lauri Ojansivu 698e773e3a Update translations. 2017-07-20 04:11:28 +03:00
Lauri Ojansivu 604146b294 Merge branch 'GhassenRjab-export-import-checklists' into devel
Export and import checklists. Thanks to GhassenRjab !
2017-07-20 04:04:36 +03:00
Lauri Ojansivu e48198353f Export and import checklists. Thanks to GhassenRjab ! 2017-07-20 04:03:59 +03:00
Ghassen Rjab 12ec92a0b5 Import checklists 2017-07-20 00:57:20 +01:00
Ghassen Rjab 25ce99958c Export checklists 2017-07-20 00:24:21 +01:00
Lauri Ojansivu 3140067330 Merge branch 'zarnifoulette-devel' into devel
Fix: Activity user messed up when creating a card using the REST-API.
Thanks to zarnifoulette ! Closes #1045
2017-07-19 21:35:50 +03:00
Lauri Ojansivu b0dea10a38 Fix: Activity user messed up when creating a card using the REST-API.
Thanks to zarnifoulette ! Closes #1045
2017-07-19 21:35:18 +03:00
Lauri Ojansivu 2267dd0fd7 Merge branch 'devel' of https://github.com/zarnifoulette/wekan into zarnifoulette-devel 2017-07-19 21:23:36 +03:00
Lauri Ojansivu 57f9c1df69 Merge branch 'GhassenRjab-attachment-base64' into devel
Export and import attachments as base64 encoded files. Thanks to GhassenRjab !

Update translations.
2017-07-19 21:20:40 +03:00
Lauri Ojansivu f3f15f83b0 Export and import attachments as base64 encoded files. Thanks to GhassenRjab ! 2017-07-19 21:20:13 +03:00
Lauri Ojansivu aed3e64972 Update translations. 2017-07-19 21:12:44 +03:00
zago e2ee005a5f direct hook to bypass the checking step with API request 2017-07-19 10:27:23 +02:00
Ghassen Rjab bea876efd8 Updat Wekan board format check 2017-07-19 01:05:51 +01:00
Ghassen Rjab 0b72eeaf9d Fix texts in import board page 2017-07-16 09:11:05 +01:00
Ghassen Rjab 81e0d4e382 Export and import attachents as base64 encoded files 2017-07-15 22:10:46 +01:00
Lauri Ojansivu 52619ef622 Revert Debian 9 and gcc changes, because I got more errors with gpg not found and gosu permission denied. 2017-07-15 03:13:48 +03:00
Lauri Ojansivu 6357d2fa8b Try gcc 6 on Debian 9 2017-07-15 03:04:46 +03:00
Lauri Ojansivu 67f5a1326b Test Debian 9 Docker base image, how many vulnerabilies it fixes, and does it work. 2017-07-15 02:53:46 +03:00
Lauri Ojansivu 8bd71a4cc1 Ubuntu snap edge v0.28-SNAPSHOT 2017-07-15 00:39:50 +03:00
Lauri Ojansivu 3d4a7512f1 Wekan v0.28 2017-07-15 00:36:53 +03:00
Lauri Ojansivu 2302453b36 Node.js etc updates. Thanks to johnleeming !
Fix: Adding user to board causes node.js to crash. Thanks to nztqa ! Closes #1131
2017-07-15 00:01:45 +03:00
Lauri Ojansivu 753cc2e1e2 Try to fix build errors. 2017-07-14 23:28:22 +03:00
Lauri Ojansivu 7f8a334e12 Update translations. 2017-07-14 23:21:29 +03:00
Lauri Ojansivu 9513053816 Upgrade Node.js, MongoDB and Debian on Docker and Ubuntu snap edge to get security etc updates. 2017-07-14 23:10:57 +03:00
Lauri Ojansivu 4ab2c0d815 More text to link. 2017-07-14 00:23:57 +03:00
Lauri Ojansivu e1176f1e30 Add direct link to development links. 2017-07-14 00:22:35 +03:00
Lauri Ojansivu 069ca6df5e Fix typo. 2017-07-14 00:14:01 +03:00
Lauri Ojansivu 6e4a082411 Use Wekan board as demo. Add development links. 2017-07-14 00:12:28 +03:00
Lauri Ojansivu 992f9b70fe Old Wekan roadmap is not online, removing mention of it. 2017-07-14 00:01:15 +03:00
Lauri Ojansivu 55cbf7d4de Update translations. 2017-07-12 14:46:29 +03:00
Lauri Ojansivu 769bab6582 Better message when Wekan is loading. Closes #1113 2017-07-12 14:37:22 +03:00
Lauri Ojansivu 6b5a610d01 Better message when Wekan is loading. Closes #1113 2017-07-12 14:31:56 +03:00
Lauri Ojansivu 04fb2ae52c Try to fix Dockerfile 2017-07-12 03:59:52 +03:00
Lauri Ojansivu 2778c336bf Try to fix Dockerfile 2017-07-12 03:57:52 +03:00
Lauri Ojansivu eb83a9fb62 Try to fix Dockerfile 2017-07-12 03:55:05 +03:00
Lauri Ojansivu f6a70a28cb Try to fix Dockerfile 2017-07-12 03:41:15 +03:00
Lauri Ojansivu a21892b84f Try to fix Dockerfile 2017-07-12 03:36:53 +03:00
Lauri Ojansivu 246f1dd3ac Try to fix Dockerfile 2017-07-12 03:33:36 +03:00
Lauri Ojansivu 710eb75f3e Fix double-slash bug. Clone only latest from master branches. 2017-07-12 02:47:37 +03:00
Lauri Ojansivu afa5ec360f Merge branch 'nztqa-improve-notify' into devel
Add Feature: Outgoing Webhooks. Thanks to nztqa !
2017-07-12 02:30:53 +03:00
Lauri Ojansivu c649c87d16 Update translations. 2017-07-12 02:30:07 +03:00
Lauri Ojansivu c26317eddf Add Feature: Outgoing Webhooks. Thanks to nztqa ! 2017-07-12 02:20:00 +03:00
Lauri Ojansivu 510708d0e1 Merge branch 'improve-notify' of https://github.com/nztqa/wekan into nztqa-improve-notify 2017-07-12 01:59:07 +03:00
Lauri Ojansivu 19a71c0d92 Merge branch 'jtickle-devel' into devel
Fix double slash issue. Thanks to jtickle ! Closes #1110
2017-07-12 01:53:40 +03:00
Lauri Ojansivu 6fe4f00c44 Fix double slash issue. Thanks to jtickle ! Closes #1110 2017-07-12 01:52:05 +03:00
Lauri Ojansivu 2d595da6a6 Build Dockerfile with and without of USE_EDGE=true. 2017-07-12 01:48:46 +03:00
Lauri Ojansivu 8f075ec1a2 Merge branch 'devel' of https://github.com/jtickle/wekan into jtickle-devel 2017-07-12 01:37:02 +03:00
Lauri Ojansivu 1aea465a23 Merge branch 'GhassenRjab-devel' into devel
Import Wekan board. Thanks to GhassenRjab !
2017-07-12 01:29:57 +03:00
Lauri Ojansivu b25436e1bf Import Wekan board. Thanks to GhassenRjab ! 2017-07-12 01:28:41 +03:00
Lauri Ojansivu f89c37c1fd Update translations. 2017-07-12 01:25:07 +03:00
Ghassen Rjab c7b53becf3 Use right class for options list 2017-07-09 17:40:48 +01:00
nztqa 0e6cfdbb2a Add call outgoing webhooks method 2017-07-09 15:21:40 +09:00
nztqa 0d5e829c56 Add publication to integrations 2017-07-09 15:18:35 +09:00
nztqa e66c99499f Add input form in board menu 2017-07-09 15:14:33 +09:00
nztqa 429e2f9992 Add method outgoingWebhooks 2017-07-09 15:02:17 +09:00
nztqa bcd42ad958 Add integrations model 2017-07-09 14:59:58 +09:00
nztqa 24290b66a3 Add http and integrations 2017-07-09 14:57:38 +09:00
nztqa d31b4cd2d9 Add http package 2017-07-09 14:56:40 +09:00
Ghassen Rjab 3f4c285551 Add import Wekan board feature 2017-07-08 13:23:33 +01:00
zago cbcf10a02b fixe travis 2017-07-07 11:37:35 +02:00
zago cac82e4330 checking the authorId when adding card 2017-07-07 11:11:38 +02:00
Lauri Ojansivu 61b2c91ffe Update translations. 2017-07-05 19:10:08 +03:00
Jeff Tickle d461580749 Merge branch 'devel' of github.com:jtickle/wekan into devel 2017-07-05 11:38:04 -04:00
Jeff Tickle b5197fa673 Updated Dockerfile to build successfully when USE_EDGE=true 2017-07-05 11:37:01 -04:00
Lauri Ojansivu 13d7378dc5 Merge branch 'nztqa-improve-ui' into devel
Improve UI design of checklist items. Thanks to nztqa !
2017-07-04 11:15:38 +03:00
Lauri Ojansivu e9ad9b5be2 Improve UI design of checklist items. Thanks to nztqa ! 2017-07-04 11:14:43 +03:00
nztqa c5b83c04c1 Improve UI Design (checklists item)
1. Change background color on mouseover and remove it after mouseout
2. Increase the clickable area of title
2017-07-03 16:57:20 +09:00
Lauri Ojansivu 2c94254ec3 Update translations. 2017-07-02 09:39:31 +03:00
Lauri Ojansivu 4159aa0929 Merge branch 'nztqa-fix-checklistitem-empty' into devel
Fix: Possible to add empty item to checklist.
Thanks to nztqa ! Closes #1103
2017-07-02 00:51:38 +03:00
Lauri Ojansivu 0e5a6a9e9e Fix: Possible to add empty item to checklist.
Thanks to nztqa ! Closes #1103
2017-07-02 00:51:04 +03:00
nztqa 29f65be1e0 Add check to see if input is empty 2017-07-01 23:03:54 +09:00
Lauri Ojansivu cbbdf8442d Merge branch 'nztqa-improve-checklist' into devel
When finished input of checklist item, open new checklist item.
Thanks to nztqa ! Closes #828
2017-06-30 07:35:15 +03:00
Lauri Ojansivu a26db7f3c8 When finished input of checklist item, open new checklist item.
Thanks to nztqa ! Closes #828
2017-06-30 07:33:48 +03:00
nztqa 99d6bd4415 Improve input of checklist
When finished input of checklist item title,  open new checklist item.
2017-06-30 10:10:42 +09:00
Lauri Ojansivu 9ccffe5342 Merge branch 'zarnifoulette-devel' into devel
Fix: REST API: Add PUT method to update a card.
Thanks to zarnifoulette ! Related to #1037
2017-06-29 20:33:37 +03:00
Lauri Ojansivu 6ec217a5e2 Fix: REST API: Add PUT method to update a card. Thanks to zarnifoulette ! Related to #1037 2017-06-29 20:32:24 +03:00
Lauri Ojansivu 160205f139 Merge branch 'devel' of https://github.com/zarnifoulette/wekan into zarnifoulette-devel 2017-06-29 20:27:26 +03:00
zago afc30226ac fixe error 2017-06-29 15:45:27 +02:00
Lauri Ojansivu e8a661e0ea Merge branch 'zarnifoulette-devel' into devel
REST API: Add PUT method to update a card.
Thanks to zarnifoulette ! Related to #1037
2017-06-29 15:55:11 +03:00
Lauri Ojansivu 2c1509686d REST API: Add PUT method to update a card. Thanks to zarnifoulette ! Related to #1037 2017-06-29 15:54:49 +03:00
zago 95f1772280 linebreaker fixing 2017-06-29 14:10:45 +02:00
zago 3a99eb9c9f adding a put method to update a card 2017-06-29 12:24:33 +02:00
Lauri Ojansivu 1e52523505 v0.27 2017-06-28 14:31:57 +03:00
Lauri Ojansivu 592d0d8e4e v0.27 2017-06-28 12:23:14 +03:00
Lauri Ojansivu b0367491b9 Merge branch 'nztqa-fix-checklist' into devel
Fix duplicate id generation. Thanks to nztqa ! Closes #1090
2017-06-28 11:14:04 +03:00
Lauri Ojansivu f682de9690 Fix duplicate id generation. Thanks to nztqa ! Closes #1090 2017-06-28 11:13:39 +03:00
Lauri Ojansivu 5854805bdc Merge branch 'fix-checklist' of https://github.com/nztqa/wekan into nztqa-fix-checklist 2017-06-28 10:44:45 +03:00
nztqa e03c69ab8f Fix: id generation 2017-06-28 15:19:53 +09:00
Lauri Ojansivu 1ba0f912f1 Update translations. 2017-06-27 18:05:17 +03:00
Lauri Ojansivu 0fe247070a Merge branch 'kubiko-devel' into devel
Add snapcraft build support from source. Thanks to kubiko !

This can be used together with launchpad build system for
continuous integration. Intention is to push snaps build from
devel branch to edge channel, which can be installed by calling:

$ snap install -edge wekan

device will keep automatically updating to revisions as they
are released to edge channel.
2017-06-27 17:19:04 +03:00
Lauri Ojansivu aca2692214 Add snapcraft build support from source. Thanks to kubiko ! 2017-06-27 17:18:06 +03:00
Ondrej Kubik a538c14976 Adding snapcraft build support from source
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2017-06-27 13:22:52 +00:00
Lauri Ojansivu 60495e4765 Update translations. 2017-06-27 12:36:37 +03:00
Lauri Ojansivu 0f5dba14cb Fix link to card. Thanks to nztqa ! Closes #975 2017-06-27 12:24:31 +03:00
Lauri Ojansivu 5c42394279 Merge branch 'nztqa-fix-link-card' into devel
Fix link to card. Thanks to nztqa ! Closes #975
2017-06-27 11:42:29 +03:00
Lauri Ojansivu 02a841b468 Merge branch 'fix-link-card' of https://github.com/nztqa/wekan into nztqa-fix-link-card 2017-06-27 11:21:46 +03:00
Lauri Ojansivu e7a58c764d Merge branch 'nztqa-fix-wrong-links' into devel
Fix incorrect attachment link with subfolder in the url.
Thanks to nztqa ! Closes #1015
2017-06-27 10:49:42 +03:00
Lauri Ojansivu c5381d30ed Fix incorrect attachment link with subfolder in the url. Thanks to nztqa ! Closes #1015 2017-06-27 10:49:11 +03:00
nztqa b94083e43f Fix link to card 2017-06-27 15:33:55 +09:00
nztqa ef0c729b27 Fix: incorrect attachment link with subfolder in the url 2017-06-27 11:37:16 +09:00
Lauri Ojansivu 8937f18423 Update translations. 2017-06-26 23:04:11 +03:00
765 changed files with 149557 additions and 16494 deletions

No files matched your search

+162
View File
@@ -0,0 +1,162 @@
FROM ubuntu:disco
LABEL maintainer="sgr"
ENV BUILD_DEPS="gnupg gosu bsdtar wget curl bzip2 g++ build-essential python git ca-certificates iproute2"
ENV DEBIAN_FRONTEND=noninteractive
ENV \
DEBUG=false \
NODE_VERSION=8.17.0 \
METEOR_RELEASE=1.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 \
ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE=3 \
ACCOUNTS_LOCKOUT_KNOWN_USERS_PERIOD=60 \
ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURE_WINDOW=15 \
ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE=3 \
ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60 \
ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW=15 \
RICHER_CARD_COMMENT_EDITOR=true \
MAX_IMAGE_PIXEL="" \
IMAGE_COMPRESS_RATIO="" \
BIGEVENTS_PATTERN="" \
NOTIFY_DUE_DAYS_BEFORE_AND_AFTER="" \
NOTIFY_DUE_AT_HOUR_OF_DAY="" \
EMAIL_NOTIFICATION_TIMEOUT=30000 \
MATOMO_ADDRESS="" \
MATOMO_SITE_ID="" \
MATOMO_DO_NOT_TRACK=true \
MATOMO_WITH_USERNAME=false \
BROWSER_POLICY_ENABLED=true \
TRUSTED_URL="" \
WEBHOOKS_ATTRIBUTES="" \
OAUTH2_ENABLED=false \
OAUTH2_LOGIN_STYLE=redirect \
OAUTH2_CLIENT_ID="" \
OAUTH2_SECRET="" \
OAUTH2_SERVER_URL="" \
OAUTH2_AUTH_ENDPOINT="" \
OAUTH2_USERINFO_ENDPOINT="" \
OAUTH2_TOKEN_ENDPOINT="" \
OAUTH2_ID_MAP="" \
OAUTH2_USERNAME_MAP="" \
OAUTH2_FULLNAME_MAP="" \
OAUTH2_ID_TOKEN_WHITELIST_FIELDS="" \
OAUTH2_REQUEST_PERMISSIONS='openid profile email' \
OAUTH2_EMAIL_MAP="" \
LDAP_ENABLE=false \
LDAP_PORT=389 \
LDAP_HOST="" \
LDAP_BASEDN="" \
LDAP_LOGIN_FALLBACK=false \
LDAP_RECONNECT=true \
LDAP_TIMEOUT=10000 \
LDAP_IDLE_TIMEOUT=10000 \
LDAP_CONNECT_TIMEOUT=10000 \
LDAP_AUTHENTIFICATION=false \
LDAP_AUTHENTIFICATION_USERDN="" \
LDAP_AUTHENTIFICATION_PASSWORD="" \
LDAP_LOG_ENABLED=false \
LDAP_BACKGROUND_SYNC=false \
LDAP_BACKGROUND_SYNC_INTERVAL="" \
LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false \
LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=false \
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="" \
LDAP_SEARCH_PAGE_SIZE=0 \
LDAP_SEARCH_SIZE_LIMIT=0 \
LDAP_GROUP_FILTER_ENABLE=false \
LDAP_GROUP_FILTER_OBJECTCLASS="" \
LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE="" \
LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE="" \
LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT="" \
LDAP_GROUP_FILTER_GROUP_NAME="" \
LDAP_UNIQUE_IDENTIFIER_FIELD="" \
LDAP_UTF8_NAMES_SLUGIFY=true \
LDAP_USERNAME_FIELD="" \
LDAP_FULLNAME_FIELD="" \
LDAP_MERGE_EXISTING_USERS=false \
LDAP_EMAIL_FIELD="" \
LDAP_EMAIL_MATCH_ENABLE=false \
LDAP_EMAIL_MATCH_REQUIRE=false \
LDAP_EMAIL_MATCH_VERIFIED=false \
LDAP_SYNC_USER_DATA=false \
LDAP_SYNC_USER_DATA_FIELDMAP="" \
LDAP_SYNC_GROUP_ROLES="" \
LDAP_DEFAULT_DOMAIN="" \
LDAP_SYNC_ADMIN_STATUS="" \
LDAP_SYNC_ADMIN_GROUPS="" \
HEADER_LOGIN_ID="" \
HEADER_LOGIN_FIRSTNAME="" \
HEADER_LOGIN_LASTNAME="" \
HEADER_LOGIN_EMAIL="" \
LOGOUT_WITH_TIMER=false \
LOGOUT_IN="" \
LOGOUT_ON_HOURS="" \
LOGOUT_ON_MINUTES="" \
CORS="" \
CORS_ALLOW_HEADERS="" \
CORS_EXPOSE_HEADERS="" \
DEFAULT_AUTHENTICATION_METHOD=""
# 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/v$NODE_VERSION/node-v$NODE_VERSION-$ARCHITECTURE.tar.xz" \
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
&& grep " node-v$NODE_VERSION-$ARCHITECTURE.tar.xz\$" SHASUMS256.txt.asc | sha256sum -c - \
&& tar -xJf "node-v$NODE_VERSION-$ARCHITECTURE.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
&& rm "node-v$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/
# Copy source dir
USER root
RUN echo "export PATH=$PATH" >> /etc/environment
RUN set -o xtrace \
&& mkdir /home/wekan/app
COPY ${SRC_PATH} /home/wekan/app/
RUN set -o xtrace \
&& chown -R wekan:wekan /home/wekan/app /home/wekan/.meteor
USER wekan
+12
View File
@@ -0,0 +1,12 @@
#!/bin/bash
cd /home/wekan/app
rm -rf node_modules
/home/wekan/.meteor/meteor npm install
rm -rf .build
/home/wekan/.meteor/meteor build .build --directory
cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js
cd .build/bundle/programs/server
rm -rf node_modules
/home/wekan/.meteor/meteor npm install
cd /home/wekan/app
+17
View File
@@ -0,0 +1,17 @@
// See https://aka.ms/vscode-remote/devcontainer.json for format details.
{
"dockerComposeFile": ["docker-compose.yml", "docker-compose.extend.yml"],
"service": "wekan-dev",
"workspaceFolder": "/home/wekan/app",
"extensions": [
"mutantdino.resourcemonitor",
"editorconfig.editorconfig",
"dbaeumer.vscode-eslint",
"codezombiech.gitignore",
"eamodio.gitlens",
"gruntfuggly.todo-tree",
"dotjoshjohnson.xml",
"redhat.vscode-yaml",
"vuhrmeister.vscode-meteor"
]
}
+50
View File
@@ -0,0 +1,50 @@
version: '3.7'
services:
wekandb-dev:
image: mongo:4.0.12
container_name: wekan-dev-db
restart: unless-stopped
command: mongod --smallfiles --oplogSize 128
networks:
- wekan-dev-tier
expose:
- 27017
volumes:
- wekan-dev-db:/data/db
- wekan-dev-db-dump:/dump
wekan-dev:
container_name: wekan-dev-app
restart: always
networks:
- wekan-dev-tier
build:
context: ..
dockerfile: .devcontainer/Dockerfile
ports:
- 3000:3000
- 9229:9229
environment:
- MONGO_URL=mongodb://wekandb-dev:27017/wekan
- ROOT_URL=http://localhost:3000
- WITH_API=true
- RICHER_CARD_COMMENT_EDITOR=true
- BROWSER_POLICY_ENABLED=true
depends_on:
- wekandb-dev
volumes:
- ..:/app:delegated
command:
sleep infinity
volumes:
wekan-dev-db:
driver: local
wekan-dev-db-dump:
driver: local
networks:
wekan-dev-tier:
driver: bridge
+17
View File
@@ -8,3 +8,20 @@ end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 2
[*.{js,html}]
charset = utf-8
end_of_line = lf
indent_brace_style = 1TBS
indent_size = 2
indent_style = space
insert_final_newline = true
max_line_length = 80
quote_type = auto
spaces_around_operators = true
trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false
+2
View File
@@ -0,0 +1,2 @@
packages/*
.snap-meteor-1.8/*
+48 -16
View File
@@ -1,26 +1,29 @@
{
"extends": "eslint:recommended",
"extends": [
"eslint:recommended",
"plugin:meteor/recommended",
"prettier",
"prettier/standard"
],
"env": {
"es6": true,
"node": true,
"browser": true
"browser": true,
"meteor": true
},
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module",
"ecmaFeatures": {
"experimentalObjectRestSpread": true
}
"ecmaVersion": 2018,
"sourceType": "module"
},
"rules": {
"strict": 0,
"no-undef": 2,
"no-undef": 0,
"accessor-pairs": 2,
"comma-dangle": [2, "always-multiline"],
"consistent-return": 2,
"dot-notation": 2,
"eqeqeq": 2,
"indent": [2, 2],
"indent": 0,
"no-cond-assign": 2,
"no-constant-condition": 2,
"no-eval": 2,
@@ -28,11 +31,12 @@
"no-unneeded-ternary": 2,
"radix": 2,
"semi": [2, "always"],
"camelcase": [2, {"properties": "never"}],
"camelcase": [2, { "properties": "never" }],
"comma-spacing": 2,
"comma-style": 2,
"eol-last": 2,
"linebreak-style": [2, "unix"],
"meteor/audit-argument-checks": 0,
"new-parens": 2,
"no-lonely-if": 2,
"no-multiple-empty-lines": 2,
@@ -43,7 +47,6 @@
"quotes": [2, "single"],
"semi-spacing": 2,
"space-unary-ops": 2,
"arrow-parens": 2,
"arrow-spacing": 2,
"no-class-assign": 2,
"no-dupe-class-members": 2,
@@ -52,9 +55,27 @@
"prefer-const": 2,
"prefer-spread": 2,
"prefer-template": 2,
"no-console": 0,
"no-unused-vars" : "warn"
"no-unused-vars": "warn",
"prettier/prettier": [
"error",
{
"printWidth": 80,
"tabWidth": 2,
"useTabs": false,
"singleQuote": true,
"trailingComma": "all"
}
],
"meteor/no-session": 0
},
"settings": {
"import/resolver": {
"meteor": {
"extensions": [".js", ".jsx"]
}
}
},
"plugins": ["prettier", "meteor"],
"globals": {
"Meteor": false,
"Session": false,
@@ -101,7 +122,9 @@
"Attachments": true,
"Boards": true,
"CardComments": true,
"DatePicker": true,
"Cards": true,
"CustomFields": true,
"Lists": true,
"UnsavedEditCollection": true,
"Users": true,
@@ -120,13 +143,22 @@
"allowIsBoardAdmin": true,
"allowIsBoardMember": true,
"allowIsBoardMemberByCard": true,
"allowIsBoardMemberNonComment": true,
"allowIsBoardMemberCommentOnly": true,
"allowIsBoardMemberNoComments": true,
"allowIsBoardMemberWorker": true,
"Emoji": true,
"Checklists": true,
"Settings": true,
"InvitationCodes": true,
"Winston":true,
"JsonRoutes": true,
"Authentication": true
"Authentication": true,
"Integrations": true,
"HTTP": true,
"AccountSettings": true,
"Announcements": true,
"Swimlanes": true,
"ChecklistItems": true,
"Subtasks": true,
"Npm": true
}
}
+3
View File
@@ -0,0 +1,3 @@
* text=auto eol=lf
*.{cmd,[cC][mM][dD]} text eol=crlf
*.{bat,[bB][aA][tT]} text eol=crlf
+3
View File
@@ -0,0 +1,3 @@
# These are supported funding model platforms
custom: ['https://wekan.team/commercial-support/']
+30
View File
@@ -0,0 +1,30 @@
## Issue
Add these issues to elsewhere:
- Snap: https://github.com/wekan/wekan-snap/issues
- LDAP: https://github.com/wekan/wekan-ldap/issues
- UCS: https://github.com/wekan/univention/issues
Other Wekan issues can be added here.
**Server Setup Information**:
* Note: Please anonymize info, and do not add to this public issue any of your Wekan board URLs, passwords, API tokens etc, do you understand?:
* Did you test in newest Wekan?:
* For new Wekan install, did you configure root-url correctly so Wekan cards open correctly https://github.com/wekan/wekan/wiki/Settings ?
* Wekan version:
* If this is about old version of Wekan, what upgrade problem you have?:
* Operating System:
* Deployment Method(snap/docker/sandstorm/mongodb bundle/source):
* Http frontend if any (Caddy, Nginx, Apache, see config examples from Wekan GitHub wiki first):
* Node Version:
* MongoDB Version:
* Wekan only works on newest desktop Firefox/Chromium/Chrome/Edge/Chromium Edge and mobile Chrome. What webbrowser version are you using?
**Problem description**:
- *REQUIRED: Add recorded animated gif about how it works currently, and screenshot mockups how it should work. Use peek to record animgif in Linux https://github.com/phw/peek*
- *Explain steps how to reproduce*
- *In webbrowser, what does show Right Click / Inspect / Console ? Chrome shows more detailed info than Firefox.*
- *If using Snap, what does show command `sudo snap logs wekan.wekan` ? Please anonymize logs.*
- *If using Docker, what does show command `sudo docker logs wekan-app` ? Please anonymize logs.*
- *If logs are very long, attach them in .zip file*
+17
View File
@@ -0,0 +1,17 @@
name: Docker Image CI
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Build the Docker image
run: docker build . --file Dockerfile --tag wekan:$(date +%s)
+26 -3
View File
@@ -4,8 +4,31 @@
*.sublime-workspace
tmp/
node_modules/
npm-debug.log
.vscode/
.idea/
.build/*
packages/kadira-flow-router/
packages/meteor-useraccounts-core/
package-lock.json
**/parts/
**/stage
**/prime
**/*.snap
snap/.snapcraft/
.idea
.DS_Store
.DS_Store?
.build*
*.browserify.js.cached
*.browserify.js.map
.build*
versions.json
.versions
.npm
.build*
._*
.Trashes
Thumbs.db
ehthumbs.db
.eslintcache
.meteor/local
.meteor-1.6-snap/.meteor/local
.devcontainer/docker-compose.extend.yml
+3
View File
@@ -15,3 +15,6 @@ notices-for-facebook-graph-api-2
1.4.0-remove-old-dev-bundle-link
1.4.1-add-shell-server-package
1.4.3-split-account-service-packages
1.5-add-dynamic-import-package
1.7-split-underscore-from-meteor-base
1.8.3-split-jquery-from-blaze
+43 -24
View File
@@ -3,45 +3,44 @@
# 'meteor add' and 'meteor remove' will edit this file for you,
# but you can also edit it by hand.
meteor-base@1.0.4
meteor-base@1.4.0
# Build system
ecmascript@0.7.2
stylus@2.513.9
standard-minifier-css@1.3.4
standard-minifier-js@2.0.0
ecmascript@0.14.0
standard-minifier-css@1.6.0
standard-minifier-js@2.6.0
mquandalle:jade
# Polyfills
es5-shim@4.6.15
es5-shim@4.8.0
# Collections
aldeed:collection2
cfs:gridfs
cfs:standard-packages
cottz:publish-relations
dburles:collection-helpers
idmontie:migrations
matb33:collection-hooks
matteodem:easy-search
mongo@1.1.16
mongo@1.8.0
mquandalle:collection-mutations
# Account system
accounts-password@1.3.5
kenton:accounts-sandstorm
service-configuration@1.0.11
useraccounts:unstyled
useraccounts:flow-routing
email@1.2.0
wekan-ldap
wekan-accounts-cas
wekan-accounts-oidc
# Utilities
check@1.2.5
check@1.3.1
jquery@1.11.10
random@1.0.10
reactive-dict@1.1.8
session@1.1.7
tracker@1.1.2
random@1.1.0
reactive-dict@1.3.0
session@1.2.0
tracker@1.2.0
underscore@1.0.10
3stack:presence
alethes:pages
@@ -49,14 +48,11 @@ arillo:flow-router-helpers
audit-argument-checks@1.0.7
kadira:blaze-layout
kadira:dochead
meteorhacks:fast-render
meteorhacks:picker
meteorhacks:subs-manager
mquandalle:autofocus
mquandalle:moment
ongoworks:speakingurl
raix:handlebar-helpers
tap:i18n
http@1.4.2
# UI components
blaze
@@ -66,15 +62,38 @@ mousetrap:mousetrap
mquandalle:jquery-textcomplete
mquandalle:jquery-ui-drag-drop-sort
mquandalle:mousetrap-bindglobal
mquandalle:perfect-scrollbar
peerlibrary:blaze-components@=0.15.1
perak:markdown
seriousm:emoji-continued
templates:tabs
verron:autosize
simple:json-routes
rajit:bootstrap3-datepicker
kadira:flow-router
shell-server@0.2.3
shell-server@0.4.0
simple:rest-accounts-password
useraccounts:core
email@1.2.3
horka:swipebox
dynamic-import@0.5.1
staringatlights:fast-render
accounts-password@1.5.2
cfs:gridfs
rzymek:fullcalendar
momentjs:moment@2.22.2
browser-policy-framing@1.1.0
mquandalle:moment
msavin:usercache
wekan-scrollbar
mquandalle:perfect-scrollbar
mdg:meteor-apm-agent@3.2.0-rc.0!
coagmano:stylus
lucasantoniassi:accounts-lockout
meteorhacks:subs-manager
meteorhacks:picker
lamhieu:unblock
meteorhacks:aggregate@1.3.0
wekan-markdown
konecty:mongo-counter
percolate:synced-cron
easylogic:summernote
cfs:filesystem
ostrio:cookies
+1 -1
View File
@@ -1 +1 @@
METEOR@1.4.4.1
METEOR@1.9
+113 -80
View File
@@ -1,101 +1,119 @@
3stack:presence@1.0.5
accounts-base@1.2.16
accounts-password@1.3.5
3stack:presence@1.1.2
accounts-base@1.5.0
accounts-oauth@1.1.16
accounts-password@1.5.3
aldeed:collection2@2.10.0
aldeed:collection2-core@1.2.0
aldeed:schema-deny@1.1.0
aldeed:schema-index@1.1.1
aldeed:simple-schema@1.5.3
aldeed:simple-schema@1.5.4
alethes:pages@1.8.6
allow-deny@1.0.5
allow-deny@1.1.0
arillo:flow-router-helpers@0.5.2
audit-argument-checks@1.0.7
autoupdate@1.3.12
babel-compiler@6.18.2
babel-runtime@1.0.1
base64@1.0.10
binary-heap@1.0.10
blaze@2.3.2
autoupdate@1.6.0
babel-compiler@7.5.1
babel-runtime@1.5.0
base64@1.0.12
binary-heap@1.0.11
blaze@2.3.4
blaze-tools@1.0.10
boilerplate-generator@1.0.11
caching-compiler@1.1.9
caching-html-compiler@1.1.2
callback-hook@1.0.10
boilerplate-generator@1.6.0
browser-policy-common@1.0.11
browser-policy-framing@1.1.0
caching-compiler@1.2.1
caching-html-compiler@1.1.3
callback-hook@1.3.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:gridfs@0.0.33
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.9
cfs:storage-adapter@0.2.3
cfs:tempstore@0.1.5
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.4
check@1.2.5
cfs:worker@0.1.5
check@1.3.1
chuangbo:cookie@1.1.0
coffeescript@1.12.3_1
cottz:publish-relations@2.0.7
coagmano:stylus@2.0.0
coffeescript@1.0.17
cottz:publish-relations@2.0.8
dburles:collection-helpers@1.1.0
ddp@1.2.5
ddp-client@1.3.4
ddp-common@1.2.8
ddp@1.4.0
ddp-client@2.3.3
ddp-common@1.4.0
ddp-rate-limiter@1.0.7
ddp-server@1.3.14
ddp-server@2.3.1
deps@1.0.12
diff-sequence@1.0.7
ecmascript@0.7.3
ecmascript-runtime@0.3.15
ejson@1.0.13
email@1.2.1
es5-shim@4.6.15
diff-sequence@1.1.1
dynamic-import@0.5.1
easylogic:summernote@0.8.8
ecmascript@0.14.1
ecmascript-runtime@0.7.0
ecmascript-runtime-client@0.10.0
ecmascript-runtime-server@0.9.0
ejson@1.1.1
email@1.2.3
es5-shim@4.8.0
fastclick@1.0.13
fetch@0.1.1
fortawesome:fontawesome@4.7.0
geojson-utils@1.0.10
horka:swipebox@1.0.2
hot-code-push@1.0.4
html-tools@1.0.11
htmljs@1.0.11
http@1.2.12
id-map@1.0.9
http@1.4.2
id-map@1.1.0
idmontie:migrations@1.0.3
jquery@1.11.10
inter-process-messaging@0.1.0
jquery@1.11.11
kadira:blaze-layout@2.3.0
kadira:dochead@1.5.0
kadira:flow-router@2.12.1
kenton:accounts-sandstorm@0.6.0
kenton:accounts-sandstorm@0.7.0
konecty:mongo-counter@0.0.5_3
lamhieu:meteorx@2.1.1
lamhieu:unblock@1.0.0
launch-screen@1.1.1
livedata@1.0.18
localstorage@1.0.12
logging@1.1.17
matb33:collection-hooks@0.8.4
localstorage@1.2.0
logging@1.1.20
lucasantoniassi:accounts-lockout@1.0.0
matb33:collection-hooks@0.9.1
matteodem:easy-search@1.6.4
mdg:meteor-apm-agent@3.2.5
mdg:validation-error@0.5.1
meteor@1.6.1
meteor-base@1.0.4
meteor@1.9.3
meteor-base@1.4.0
meteor-platform@1.2.6
meteorhacks:aggregate@1.3.0
meteorhacks:collection-utils@1.2.0
meteorhacks:fast-render@2.16.0
meteorhacks:inject-data@2.0.0
meteorhacks:meteorx@1.4.1
meteorhacks:picker@1.0.3
meteorhacks:subs-manager@1.6.4
meteorspark:util@0.2.0
minifier-css@1.2.16
minifier-js@2.0.0
minifier-css@1.5.0
minifier-js@2.6.0
minifiers@1.1.8-faster-rebuild.0
minimongo@1.0.21
minimongo@1.4.5
mobile-status-bar@1.0.14
modules@0.8.2
modules-runtime@0.7.10
mongo@1.1.16
mongo-id@1.0.6
modern-browsers@0.1.5
modules@0.15.0
modules-runtime@0.12.0
momentjs:moment@2.24.0
mongo@1.8.1
mongo-decimal@0.1.1
mongo-dev-server@1.1.0
mongo-id@1.0.7
mongo-livedata@1.0.12
mousetrap:mousetrap@1.4.6_1
mquandalle:autofocus@1.0.0
@@ -107,59 +125,74 @@ mquandalle:jquery-ui-drag-drop-sort@0.2.0
mquandalle:moment@1.0.1
mquandalle:mousetrap-bindglobal@0.0.1
mquandalle:perfect-scrollbar@0.6.5_2
npm-bcrypt@0.9.2
npm-mongo@2.2.24
msavin:usercache@1.8.0
npm-bcrypt@0.9.3
npm-mongo@3.3.0
oauth@1.2.8
oauth2@1.2.1
observe-sequence@1.0.16
ongoworks:speakingurl@1.1.0
ordered-dict@1.0.9
peerlibrary:assert@0.2.5
ordered-dict@1.1.0
ostrio:cookies@2.5.0
peerlibrary:assert@0.3.0
peerlibrary:base-component@0.16.0
peerlibrary:blaze-components@0.15.1
peerlibrary:computed-field@0.6.1
peerlibrary:reactive-field@0.3.0
perak:markdown@1.0.5
promise@0.8.8
peerlibrary:computed-field@0.10.0
peerlibrary:reactive-field@0.6.0
percolate:synced-cron@1.3.2
promise@0.11.2
raix:eventemitter@0.1.3
raix:handlebar-helpers@0.2.5
rajit:bootstrap3-datepicker@1.6.4
random@1.0.10
rate-limit@1.0.8
reactive-dict@1.1.8
rajit:bootstrap3-datepicker@1.7.1_1
random@1.1.0
rate-limit@1.0.9
reactive-dict@1.3.0
reactive-var@1.0.11
reload@1.1.11
retry@1.0.9
routepolicy@1.0.12
seriousm:emoji-continued@1.4.0
reload@1.3.0
retry@1.1.0
routepolicy@1.1.0
rzymek:fullcalendar@3.8.0
server-render@0.3.1
service-configuration@1.0.11
session@1.1.7
session@1.2.0
sha@1.0.9
shell-server@0.2.3
shell-server@0.4.0
simple:authenticate-user-by-token@1.0.1
simple:json-routes@2.1.0
simple:rest-accounts-password@1.1.2
simple:rest-bearer-token-parser@1.0.1
simple:rest-json-error-handler@1.0.1
softwarerero:accounts-t9n@1.3.9
socket-stream-client@0.2.3
softwarerero:accounts-t9n@1.3.11
spacebars@1.0.15
spacebars-compiler@1.1.2
srp@1.0.10
standard-minifier-css@1.3.4
standard-minifier-js@2.0.0
stylus@2.513.9
spacebars-compiler@1.1.3
srp@1.0.12
standard-minifier-css@1.6.0
standard-minifier-js@2.6.0
staringatlights:fast-render@3.2.0
staringatlights:inject-data@2.3.0
tap:i18n@1.8.2
templates:tabs@2.3.0
templating@1.3.2
templating-compiler@1.3.2
templating-compiler@1.3.3
templating-runtime@1.3.2
templating-tools@1.1.2
tracker@1.1.2
tracker@1.2.0
twbs:bootstrap@3.3.6
ui@1.0.13
underscore@1.0.10
url@1.1.0
url@1.2.0
useraccounts:core@1.14.2
useraccounts:flow-routing@1.14.2
useraccounts:unstyled@1.14.2
verron:autosize@3.0.8
webapp@1.3.15
webapp@1.8.2
webapp-hashing@1.0.9
wekan-accounts-cas@0.1.0
wekan-accounts-oidc@1.0.10
wekan-ldap@0.0.2
wekan-markdown@1.0.7
wekan-oidc@1.0.12
wekan-scrollbar@3.1.3
yasaricli:slugify@0.0.7
zimme:active-route@2.3.2
+13
View File
@@ -0,0 +1,13 @@
dependencies:
- libreadline-dev
- libssl-dev
- bsdtar
targets:
ubuntu-18.04:
ubuntu-16.04:
ubuntu-14.04:
centos-6:
centos-7:
debian-10:
sles-12:
sles-11:
+8
View File
@@ -0,0 +1,8 @@
packages/
node_modules/
.build/
.meteor/
.vscode/
.tx/
.github/
.snap-meteor-1.8/
+8
View File
@@ -0,0 +1,8 @@
{
"printWidth": 80,
"tabWidth": 2,
"useTabs": false,
"semi": true,
"singleQuote": true,
"trailingComma": "all"
}
@@ -0,0 +1,20 @@
# This file contains information which helps Meteor properly upgrade your
# app when you run 'meteor update'. You should check it into version control
# with your project.
notices-for-0.9.0
notices-for-0.9.1
0.9.4-platform-file
notices-for-facebook-graph-api-2
1.2.0-standard-minifiers-package
1.2.0-meteor-platform-split
1.2.0-cordova-changes
1.2.0-breaking-changes
1.3.0-split-minifiers-package
1.3.5-remove-old-dev-bundle-link
1.4.0-remove-old-dev-bundle-link
1.4.1-add-shell-server-package
1.4.3-split-account-service-packages
1.5-add-dynamic-import-package
1.7-split-underscore-from-meteor-base
1.8.3-split-jquery-from-blaze
+2
View File
@@ -0,0 +1,2 @@
dev_bundle
local
+7
View File
@@ -0,0 +1,7 @@
# This file contains a token that is unique to your project.
# Check it into your repository along with the rest of this directory.
# It can be used for purposes such as:
# - ensuring you don't accidentally deploy one app on top of another
# - providing package authors with aggregated statistics
dvyihgykyzec6y1dpg
Whitespace-only changes.
+99
View File
@@ -0,0 +1,99 @@
# Meteor packages used by this project, one per line.
#
# 'meteor add' and 'meteor remove' will edit this file for you,
# but you can also edit it by hand.
meteor-base@1.4.0
# Build system
ecmascript@0.13.2
standard-minifier-css@1.5.4
standard-minifier-js@2.5.2
mquandalle:jade
# Polyfills
es5-shim@4.8.0
# Collections
aldeed:collection2
cfs:standard-packages
cottz:publish-relations
dburles:collection-helpers
idmontie:migrations
matb33:collection-hooks
matteodem:easy-search
mongo@1.7.0
mquandalle:collection-mutations
# Account system
kenton:accounts-sandstorm
service-configuration@1.0.11
useraccounts:unstyled
useraccounts:flow-routing
wekan-ldap
wekan-accounts-cas
wekan-accounts-oidc
# Utilities
check@1.3.1
jquery@1.11.10
random@1.1.0
reactive-dict@1.3.0
session@1.2.0
tracker@1.2.0
underscore@1.0.10
3stack:presence
alethes:pages
arillo:flow-router-helpers
audit-argument-checks@1.0.7
kadira:blaze-layout
kadira:dochead
mquandalle:autofocus
ongoworks:speakingurl
raix:handlebar-helpers
tap:i18n
http@1.4.2
# UI components
blaze
reactive-var@1.0.11
fortawesome:fontawesome
mousetrap:mousetrap
mquandalle:jquery-textcomplete
mquandalle:jquery-ui-drag-drop-sort
mquandalle:mousetrap-bindglobal
peerlibrary:blaze-components@=0.15.1
templates:tabs
verron:autosize
simple:json-routes
rajit:bootstrap3-datepicker
shell-server@0.4.0
simple:rest-accounts-password
useraccounts:core
email@1.2.3
horka:swipebox
dynamic-import@0.5.1
staringatlights:fast-render
accounts-password@1.5.2
cfs:gridfs
rzymek:fullcalendar
momentjs:moment@2.22.2
browser-policy-framing@1.1.0
mquandalle:moment
msavin:usercache
wekan-scrollbar
mquandalle:perfect-scrollbar
mdg:meteor-apm-agent@3.2.0-rc.0!
coagmano:stylus
lucasantoniassi:accounts-lockout
meteorhacks:subs-manager
meteorhacks:picker
lamhieu:unblock
meteorhacks:aggregate@1.3.0
wekan-markdown
konecty:mongo-counter
percolate:synced-cron
easylogic:summernote
cfs:filesystem
ostrio:cookies
+2
View File
@@ -0,0 +1,2 @@
server
browser
+1
View File
@@ -0,0 +1 @@
METEOR@1.8.3
+198
View File
@@ -0,0 +1,198 @@
3stack:presence@1.1.2
accounts-base@1.4.5
accounts-oauth@1.1.16
accounts-password@1.5.2
aldeed:collection2@2.10.0
aldeed:collection2-core@1.2.0
aldeed:schema-deny@1.1.0
aldeed:schema-index@1.1.1
aldeed:simple-schema@1.5.4
alethes:pages@1.8.6
allow-deny@1.1.0
arillo:flow-router-helpers@0.5.2
audit-argument-checks@1.0.7
autoupdate@1.6.0
babel-compiler@7.4.2
babel-runtime@1.4.0
base64@1.0.12
binary-heap@1.0.11
blaze@2.3.4
blaze-tools@1.0.10
boilerplate-generator@1.6.0
browser-policy-common@1.0.11
browser-policy-framing@1.1.0
caching-compiler@1.2.1
caching-html-compiler@1.1.3
callback-hook@1.2.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
check@1.3.1
chuangbo:cookie@1.1.0
coagmano:stylus@2.0.0
coffeescript@1.0.17
cottz:publish-relations@2.0.8
dburles:collection-helpers@1.1.0
ddp@1.4.0
ddp-client@2.3.3
ddp-common@1.4.0
ddp-rate-limiter@1.0.7
ddp-server@2.3.0
deps@1.0.12
diff-sequence@1.1.1
dynamic-import@0.5.1
easylogic:summernote@0.8.8
ecmascript@0.13.2
ecmascript-runtime@0.7.0
ecmascript-runtime-client@0.9.0
ecmascript-runtime-server@0.8.0
ejson@1.1.1
email@1.2.3
es5-shim@4.8.0
fastclick@1.0.13
fetch@0.1.1
fortawesome:fontawesome@4.7.0
geojson-utils@1.0.10
horka:swipebox@1.0.2
hot-code-push@1.0.4
html-tools@1.0.11
htmljs@1.0.11
http@1.4.2
id-map@1.1.0
idmontie:migrations@1.0.3
inter-process-messaging@0.1.0
jquery@1.11.11
kadira:blaze-layout@2.3.0
kadira:dochead@1.5.0
kadira:flow-router@2.12.1
kenton:accounts-sandstorm@0.7.0
konecty:mongo-counter@0.0.5_3
lamhieu:meteorx@2.1.1
lamhieu:unblock@1.0.0
launch-screen@1.1.1
livedata@1.0.18
localstorage@1.2.0
logging@1.1.20
lucasantoniassi:accounts-lockout@1.0.0
matb33:collection-hooks@0.9.1
matteodem:easy-search@1.6.4
mdg:meteor-apm-agent@3.2.5
mdg:validation-error@0.5.1
meteor@1.9.3
meteor-base@1.4.0
meteor-platform@1.2.6
meteorhacks:aggregate@1.3.0
meteorhacks:collection-utils@1.2.0
meteorhacks:picker@1.0.3
meteorhacks:subs-manager@1.6.4
meteorspark:util@0.2.0
minifier-css@1.4.3
minifier-js@2.5.1
minifiers@1.1.8-faster-rebuild.0
minimongo@1.4.5
mobile-status-bar@1.0.14
modern-browsers@0.1.4
modules@0.14.0
modules-runtime@0.11.0
momentjs:moment@2.24.0
mongo@1.7.0
mongo-decimal@0.1.1
mongo-dev-server@1.1.0
mongo-id@1.0.7
mongo-livedata@1.0.12
mousetrap:mousetrap@1.4.6_1
mquandalle:autofocus@1.0.0
mquandalle:collection-mutations@0.1.0
mquandalle:jade@0.4.9
mquandalle:jade-compiler@0.4.5
mquandalle:jquery-textcomplete@0.8.0_1
mquandalle:jquery-ui-drag-drop-sort@0.2.0
mquandalle:moment@1.0.1
mquandalle:mousetrap-bindglobal@0.0.1
mquandalle:perfect-scrollbar@0.6.5_2
msavin:usercache@1.8.0
npm-bcrypt@0.9.3
npm-mongo@3.2.0
oauth@1.2.8
oauth2@1.2.1
observe-sequence@1.0.16
ongoworks:speakingurl@1.1.0
ordered-dict@1.1.0
ostrio:cookies@2.5.0
peerlibrary:assert@0.3.0
peerlibrary:base-component@0.16.0
peerlibrary:blaze-components@0.15.1
peerlibrary:computed-field@0.10.0
peerlibrary:reactive-field@0.6.0
percolate:synced-cron@1.3.2
promise@0.11.2
raix:eventemitter@0.1.3
raix:handlebar-helpers@0.2.5
rajit:bootstrap3-datepicker@1.7.1_1
random@1.1.0
rate-limit@1.0.9
reactive-dict@1.3.0
reactive-var@1.0.11
reload@1.3.0
retry@1.1.0
routepolicy@1.1.0
rzymek:fullcalendar@3.8.0
server-render@0.3.1
service-configuration@1.0.11
session@1.2.0
sha@1.0.9
shell-server@0.4.0
simple:authenticate-user-by-token@1.0.1
simple:json-routes@2.1.0
simple:rest-accounts-password@1.1.2
simple:rest-bearer-token-parser@1.0.1
simple:rest-json-error-handler@1.0.1
socket-stream-client@0.2.2
softwarerero:accounts-t9n@1.3.11
spacebars@1.0.15
spacebars-compiler@1.1.3
srp@1.0.12
standard-minifier-css@1.5.4
standard-minifier-js@2.5.2
staringatlights:fast-render@3.2.0
staringatlights:inject-data@2.3.0
tap:i18n@1.8.2
templates:tabs@2.3.0
templating@1.3.2
templating-compiler@1.3.3
templating-runtime@1.3.2
templating-tools@1.1.2
tracker@1.2.0
twbs:bootstrap@3.3.6
ui@1.0.13
underscore@1.0.10
url@1.2.0
useraccounts:core@1.14.2
useraccounts:flow-routing@1.14.2
useraccounts:unstyled@1.14.2
verron:autosize@3.0.8
webapp@1.7.5
webapp-hashing@1.0.9
wekan-accounts-cas@0.1.0
wekan-accounts-oidc@1.0.10
wekan-ldap@0.0.2
wekan-markdown@1.0.7
wekan-oidc@1.0.12
wekan-scrollbar@3.1.3
yasaricli:slugify@0.0.7
zimme:active-route@2.3.2
+914
View File
@@ -0,0 +1,914 @@
(function () {
/* Imports */
var Meteor = Package.meteor.Meteor;
var global = Package.meteor.global;
var meteorEnv = Package.meteor.meteorEnv;
var FS = Package['cfs:base-package'].FS;
var check = Package.check.check;
var Match = Package.check.Match;
var EJSON = Package.ejson.EJSON;
var HTTP = Package['cfs:http-methods'].HTTP;
/* Package-scope variables */
var rootUrlPathPrefix, baseUrl, getHeaders, getHeadersByCollection, _existingMountPoints, mountUrls;
(function(){
///////////////////////////////////////////////////////////////////////
// //
// packages/cfs_access-point/packages/cfs_access-point.js //
// //
///////////////////////////////////////////////////////////////////////
//
(function () {
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// packages/cfs:access-point/access-point-common.js //
// //
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
rootUrlPathPrefix = __meteor_runtime_config__.ROOT_URL_PATH_PREFIX || ""; // 1
// Adjust the rootUrlPathPrefix if necessary // 2
if (rootUrlPathPrefix.length > 0) { // 3
if (rootUrlPathPrefix.slice(0, 1) !== '/') { // 4
rootUrlPathPrefix = '/' + rootUrlPathPrefix; // 5
} // 6
if (rootUrlPathPrefix.slice(-1) === '/') { // 7
rootUrlPathPrefix = rootUrlPathPrefix.slice(0, -1); // 8
} // 9
} // 10
// 11
// prepend ROOT_URL when isCordova // 12
if (Meteor.isCordova) { // 13
rootUrlPathPrefix = Meteor.absoluteUrl(rootUrlPathPrefix.replace(/^\/+/, '')).replace(/\/+$/, ''); // 14
} // 15
// 16
baseUrl = '/cfs'; // 17
FS.HTTP = FS.HTTP || {}; // 18
// 19
// Note the upload URL so that client uploader packages know what it is // 20
FS.HTTP.uploadUrl = rootUrlPathPrefix + baseUrl + '/files'; // 21
// 22
/** // 23
* @method FS.HTTP.setBaseUrl // 24
* @public // 25
* @param {String} newBaseUrl - Change the base URL for the HTTP GET and DELETE endpoints. // 26
* @returns {undefined} // 27
*/ // 28
FS.HTTP.setBaseUrl = function setBaseUrl(newBaseUrl) { // 29
// 30
// Adjust the baseUrl if necessary // 31
if (newBaseUrl.slice(0, 1) !== '/') { // 32
newBaseUrl = '/' + newBaseUrl; // 33
} // 34
if (newBaseUrl.slice(-1) === '/') { // 35
newBaseUrl = newBaseUrl.slice(0, -1); // 36
} // 37
// 38
// Update the base URL // 39
baseUrl = newBaseUrl; // 40
// 41
// Change the upload URL so that client uploader packages know what it is // 42
FS.HTTP.uploadUrl = rootUrlPathPrefix + baseUrl + '/files'; // 43
// 44
// Remount URLs with the new baseUrl, unmounting the old, on the server only. // 45
// If existingMountPoints is empty, then we haven't run the server startup // 46
// code yet, so this new URL will be used at that point for the initial mount. // 47
if (Meteor.isServer && !FS.Utility.isEmpty(_existingMountPoints)) { // 48
mountUrls(); // 49
} // 50
}; // 51
// 52
/* // 53
* FS.File extensions // 54
*/ // 55
// 56
/** // 57
* @method FS.File.prototype.url Construct the file url // 58
* @public // 59
* @param {Object} [options] // 60
* @param {String} [options.store] Name of the store to get from. If not defined, the first store defined in `options.stores` for the collection on the client is used.
* @param {Boolean} [options.auth=null] Add authentication token to the URL query string? By default, a token for the current logged in user is added on the client. Set this to `false` to omit the token. Set this to a string to provide your own token. Set this to a number to specify an expiration time for the token in seconds.
* @param {Boolean} [options.download=false] Should headers be set to force a download? Typically this means that clicking the link with this URL will download the file to the user's Downloads folder instead of displaying the file in the browser.
* @param {Boolean} [options.brokenIsFine=false] Return the URL even if we know it's currently a broken link because the file hasn't been saved in the requested store yet.
* @param {Boolean} [options.metadata=false] Return the URL for the file metadata access point rather than the file itself.
* @param {String} [options.uploading=null] A URL to return while the file is being uploaded. // 66
* @param {String} [options.storing=null] A URL to return while the file is being stored. // 67
* @param {String} [options.filename=null] Override the filename that should appear at the end of the URL. By default it is the name of the file in the requested store.
* // 69
* Returns the HTTP URL for getting the file or its metadata. // 70
*/ // 71
FS.File.prototype.url = function(options) { // 72
var self = this; // 73
options = options || {}; // 74
options = FS.Utility.extend({ // 75
store: null, // 76
auth: null, // 77
download: false, // 78
metadata: false, // 79
brokenIsFine: false, // 80
uploading: null, // return this URL while uploading // 81
storing: null, // return this URL while storing // 82
filename: null // override the filename that is shown to the user // 83
}, options.hash || options); // check for "hash" prop if called as helper // 84
// 85
// Primarily useful for displaying a temporary image while uploading an image // 86
if (options.uploading && !self.isUploaded()) { // 87
return options.uploading; // 88
} // 89
// 90
if (self.isMounted()) { // 91
// See if we've stored in the requested store yet // 92
var storeName = options.store || self.collection.primaryStore.name; // 93
if (!self.hasStored(storeName)) { // 94
if (options.storing) { // 95
return options.storing; // 96
} else if (!options.brokenIsFine) { // 97
// We want to return null if we know the URL will be a broken // 98
// link because then we can avoid rendering broken links, broken // 99
// images, etc. // 100
return null; // 101
} // 102
} // 103
// 104
// Add filename to end of URL if we can determine one // 105
var filename = options.filename || self.name({store: storeName}); // 106
if (typeof filename === "string" && filename.length) { // 107
filename = '/' + filename; // 108
} else { // 109
filename = ''; // 110
} // 111
// 112
// TODO: Could we somehow figure out if the collection requires login? // 113
var authToken = ''; // 114
if (Meteor.isClient && typeof Accounts !== "undefined" && typeof Accounts._storedLoginToken === "function") { // 115
if (options.auth !== false) { // 116
// Add reactive deps on the user // 117
Meteor.userId(); // 118
// 119
var authObject = { // 120
authToken: Accounts._storedLoginToken() || '' // 121
}; // 122
// 123
// If it's a number, we use that as the expiration time (in seconds) // 124
if (options.auth === +options.auth) { // 125
authObject.expiration = FS.HTTP.now() + options.auth * 1000; // 126
} // 127
// 128
// Set the authToken // 129
var authString = JSON.stringify(authObject); // 130
authToken = FS.Utility.btoa(authString); // 131
} // 132
} else if (typeof options.auth === "string") { // 133
// If the user supplies auth token the user will be responsible for // 134
// updating // 135
authToken = options.auth; // 136
} // 137
// 138
// Construct query string // 139
var params = {}; // 140
if (authToken !== '') { // 141
params.token = authToken; // 142
} // 143
if (options.download) { // 144
params.download = true; // 145
} // 146
if (options.store) { // 147
// We use options.store here instead of storeName because we want to omit the queryString // 148
// whenever possible, allowing users to have "clean" URLs if they want. The server will // 149
// assume the first store defined on the server, which means that we are assuming that // 150
// the first on the client is also the first on the server. If that's not the case, the // 151
// store option should be supplied. // 152
params.store = options.store; // 153
} // 154
var queryString = FS.Utility.encodeParams(params); // 155
if (queryString.length) { // 156
queryString = '?' + queryString; // 157
} // 158
// 159
// Determine which URL to use // 160
var area; // 161
if (options.metadata) { // 162
area = '/record'; // 163
} else { // 164
area = '/files'; // 165
} // 166
// 167
// Construct and return the http method url // 168
return rootUrlPathPrefix + baseUrl + area + '/' + self.collection.name + '/' + self._id + filename + queryString; // 169
} // 170
// 171
}; // 172
// 173
// 174
// 175
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}).call(this);
(function () {
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// packages/cfs:access-point/access-point-handlers.js //
// //
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
getHeaders = []; // 1
getHeadersByCollection = {}; // 2
// 3
FS.HTTP.Handlers = {}; // 4
// 5
/** // 6
* @method FS.HTTP.Handlers.Del // 7
* @public // 8
* @returns {any} response // 9
* // 10
* HTTP DEL request handler // 11
*/ // 12
FS.HTTP.Handlers.Del = function httpDelHandler(ref) { // 13
var self = this; // 14
var opts = FS.Utility.extend({}, self.query || {}, self.params || {}); // 15
// 16
// If DELETE request, validate with 'remove' allow/deny, delete the file, and return // 17
FS.Utility.validateAction(ref.collection.files._validators['remove'], ref.file, self.userId); // 18
// 19
/* // 20
* From the DELETE spec: // 21
* A successful response SHOULD be 200 (OK) if the response includes an // 22
* entity describing the status, 202 (Accepted) if the action has not // 23
* yet been enacted, or 204 (No Content) if the action has been enacted // 24
* but the response does not include an entity. // 25
*/ // 26
self.setStatusCode(200); // 27
// 28
return { // 29
deleted: !!ref.file.remove() // 30
}; // 31
}; // 32
// 33
/** // 34
* @method FS.HTTP.Handlers.GetList // 35
* @public // 36
* @returns {Object} response // 37
* // 38
* HTTP GET file list request handler // 39
*/ // 40
FS.HTTP.Handlers.GetList = function httpGetListHandler() { // 41
// Not Yet Implemented // 42
// Need to check publications and return file list based on // 43
// what user is allowed to see // 44
}; // 45
// 46
/* // 47
requestRange will parse the range set in request header - if not possible it // 48
will throw fitting errors and autofill range for both partial and full ranges // 49
// 50
throws error or returns the object: // 51
{ // 52
start // 53
end // 54
length // 55
unit // 56
partial // 57
} // 58
*/ // 59
var requestRange = function(req, fileSize) { // 60
if (req) { // 61
if (req.headers) { // 62
var rangeString = req.headers.range; // 63
// 64
// Make sure range is a string // 65
if (rangeString === ''+rangeString) { // 66
// 67
// range will be in the format "bytes=0-32767" // 68
var parts = rangeString.split('='); // 69
var unit = parts[0]; // 70
// 71
// Make sure parts consists of two strings and range is of type "byte" // 72
if (parts.length == 2 && unit == 'bytes') { // 73
// Parse the range // 74
var range = parts[1].split('-'); // 75
var start = Number(range[0]); // 76
var end = Number(range[1]); // 77
// 78
// Fix invalid ranges? // 79
if (range[0] != start) start = 0; // 80
if (range[1] != end || !end) end = fileSize - 1; // 81
// 82
// Make sure range consists of a start and end point of numbers and start is less than end // 83
if (start < end) { // 84
// 85
var partSize = 0 - start + end + 1; // 86
// 87
// Return the parsed range // 88
return { // 89
start: start, // 90
end: end, // 91
length: partSize, // 92
size: fileSize, // 93
unit: unit, // 94
partial: (partSize < fileSize) // 95
}; // 96
// 97
} else { // 98
throw new Meteor.Error(416, "Requested Range Not Satisfiable"); // 99
} // 100
// 101
} else { // 102
// The first part should be bytes // 103
throw new Meteor.Error(416, "Requested Range Unit Not Satisfiable"); // 104
} // 105
// 106
} else { // 107
// No range found // 108
} // 109
// 110
} else { // 111
// throw new Error('No request headers set for _parseRange function'); // 112
} // 113
} else { // 114
throw new Error('No request object passed to _parseRange function'); // 115
} // 116
// 117
return { // 118
start: 0, // 119
end: fileSize - 1, // 120
length: fileSize, // 121
size: fileSize, // 122
unit: 'bytes', // 123
partial: false // 124
}; // 125
}; // 126
// 127
/** // 128
* @method FS.HTTP.Handlers.Get // 129
* @public // 130
* @returns {any} response // 131
* // 132
* HTTP GET request handler // 133
*/ // 134
FS.HTTP.Handlers.Get = function httpGetHandler(ref) { // 135
var self = this; // 136
// Once we have the file, we can test allow/deny validators // 137
// XXX: pass on the "share" query eg. ?share=342hkjh23ggj for shared url access? // 138
FS.Utility.validateAction(ref.collection._validators['download'], ref.file, self.userId /*, self.query.shareId*/); // 139
// 140
var storeName = ref.storeName; // 141
// 142
// If no storeName was specified, use the first defined storeName // 143
if (typeof storeName !== "string") { // 144
// No store handed, we default to primary store // 145
storeName = ref.collection.primaryStore.name; // 146
} // 147
// 148
// Get the storage reference // 149
var storage = ref.collection.storesLookup[storeName]; // 150
// 151
if (!storage) { // 152
throw new Meteor.Error(404, "Not Found", 'There is no store "' + storeName + '"'); // 153
} // 154
// 155
// Get the file // 156
var copyInfo = ref.file.copies[storeName]; // 157
// 158
if (!copyInfo) { // 159
throw new Meteor.Error(404, "Not Found", 'This file was not stored in the ' + storeName + ' store'); // 160
} // 161
// 162
// Set the content type for file // 163
if (typeof copyInfo.type === "string") { // 164
self.setContentType(copyInfo.type); // 165
} else { // 166
self.setContentType('application/octet-stream'); // 167
} // 168
// 169
// Add 'Content-Disposition' header if requested a download/attachment URL // 170
if (typeof ref.download !== "undefined") { // 171
var filename = ref.filename || copyInfo.name; // 172
self.addHeader('Content-Disposition', 'attachment; filename="' + filename + '"'); // 173
} else { // 174
self.addHeader('Content-Disposition', 'inline'); // 175
} // 176
// 177
// Get the contents range from request // 178
var range = requestRange(self.request, copyInfo.size); // 179
// 180
// Some browsers cope better if the content-range header is // 181
// still included even for the full file being returned. // 182
self.addHeader('Content-Range', range.unit + ' ' + range.start + '-' + range.end + '/' + range.size); // 183
// 184
// If a chunk/range was requested instead of the whole file, serve that' // 185
if (range.partial) { // 186
self.setStatusCode(206, 'Partial Content'); // 187
} else { // 188
self.setStatusCode(200, 'OK'); // 189
} // 190
// 191
// Add any other global custom headers and collection-specific custom headers // 192
FS.Utility.each(getHeaders.concat(getHeadersByCollection[ref.collection.name] || []), function(header) { // 193
self.addHeader(header[0], header[1]); // 194
}); // 195
// 196
// Inform clients about length (or chunk length in case of ranges) // 197
self.addHeader('Content-Length', range.length); // 198
// 199
// Last modified header (updatedAt from file info) // 200
self.addHeader('Last-Modified', copyInfo.updatedAt.toUTCString()); // 201
// 202
// Inform clients that we accept ranges for resumable chunked downloads // 203
self.addHeader('Accept-Ranges', range.unit); // 204
// 205
if (FS.debug) console.log('Read file "' + (ref.filename || copyInfo.name) + '" ' + range.unit + ' ' + range.start + '-' + range.end + '/' + range.size);
// 207
var readStream = storage.adapter.createReadStream(ref.file, {start: range.start, end: range.end}); // 208
// 209
readStream.on('error', function(err) { // 210
// Send proper error message on get error // 211
if (err.message && err.statusCode) { // 212
self.Error(new Meteor.Error(err.statusCode, err.message)); // 213
} else { // 214
self.Error(new Meteor.Error(503, 'Service unavailable')); // 215
} // 216
}); // 217
// 218
readStream.pipe(self.createWriteStream()); // 219
}; // 220
const originalHandler = FS.HTTP.Handlers.Get;
FS.HTTP.Handlers.Get = function (ref) {
//console.log(ref.filename);
try {
var userAgent = (this.requestHeaders['user-agent']||'').toLowerCase();
if(userAgent.indexOf('msie') >= 0 || userAgent.indexOf('trident') >= 0 || userAgent.indexOf('chrome') >= 0) {
ref.filename = encodeURIComponent(ref.filename);
} else if(userAgent.indexOf('firefox') >= 0) {
ref.filename = new Buffer(ref.filename).toString('binary');
} else {
/* safari*/
ref.filename = new Buffer(ref.filename).toString('binary');
}
} catch (ex){
ref.filename = 'tempfix';
}
return originalHandler.call(this, ref);
};
// 221
/** // 222
* @method FS.HTTP.Handlers.PutInsert // 223
* @public // 224
* @returns {Object} response object with _id property // 225
* // 226
* HTTP PUT file insert request handler // 227
*/ // 228
FS.HTTP.Handlers.PutInsert = function httpPutInsertHandler(ref) { // 229
var self = this; // 230
var opts = FS.Utility.extend({}, self.query || {}, self.params || {}); // 231
// 232
FS.debug && console.log("HTTP PUT (insert) handler"); // 233
// 234
// Create the nice FS.File // 235
var fileObj = new FS.File(); // 236
// 237
// Set its name // 238
fileObj.name(opts.filename || null); // 239
// 240
// Attach the readstream as the file's data // 241
fileObj.attachData(self.createReadStream(), {type: self.requestHeaders['content-type'] || 'application/octet-stream'});
// 243
// Validate with insert allow/deny // 244
FS.Utility.validateAction(ref.collection.files._validators['insert'], fileObj, self.userId); // 245
// 246
// Insert file into collection, triggering readStream storage // 247
ref.collection.insert(fileObj); // 248
// 249
// Send response // 250
self.setStatusCode(200); // 251
// 252
// Return the new file id // 253
return {_id: fileObj._id}; // 254
}; // 255
// 256
/** // 257
* @method FS.HTTP.Handlers.PutUpdate // 258
* @public // 259
* @returns {Object} response object with _id and chunk properties // 260
* // 261
* HTTP PUT file update chunk request handler // 262
*/ // 263
FS.HTTP.Handlers.PutUpdate = function httpPutUpdateHandler(ref) { // 264
var self = this; // 265
var opts = FS.Utility.extend({}, self.query || {}, self.params || {}); // 266
// 267
var chunk = parseInt(opts.chunk, 10); // 268
if (isNaN(chunk)) chunk = 0; // 269
// 270
FS.debug && console.log("HTTP PUT (update) handler received chunk: ", chunk); // 271
// 272
// Validate with insert allow/deny; also mounts and retrieves the file // 273
FS.Utility.validateAction(ref.collection.files._validators['insert'], ref.file, self.userId); // 274
// 275
self.createReadStream().pipe( FS.TempStore.createWriteStream(ref.file, chunk) ); // 276
// 277
// Send response // 278
self.setStatusCode(200); // 279
// 280
return { _id: ref.file._id, chunk: chunk }; // 281
}; // 282
// 283
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}).call(this);
(function () {
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// packages/cfs:access-point/access-point-server.js //
// //
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
var path = Npm.require("path"); // 1
// 2
HTTP.publishFormats({ // 3
fileRecordFormat: function (input) { // 4
// Set the method scope content type to json // 5
this.setContentType('application/json'); // 6
if (FS.Utility.isArray(input)) { // 7
return EJSON.stringify(FS.Utility.map(input, function (obj) { // 8
return FS.Utility.cloneFileRecord(obj); // 9
})); // 10
} else { // 11
return EJSON.stringify(FS.Utility.cloneFileRecord(input)); // 12
} // 13
} // 14
}); // 15
// 16
/** // 17
* @method FS.HTTP.setHeadersForGet // 18
* @public // 19
* @param {Array} headers - List of headers, where each is a two-item array in which item 1 is the header name and item 2 is the header value.
* @param {Array|String} [collections] - Which collections the headers should be added for. Omit this argument to add the header for all collections.
* @returns {undefined} // 22
*/ // 23
FS.HTTP.setHeadersForGet = function setHeadersForGet(headers, collections) { // 24
if (typeof collections === "string") { // 25
collections = [collections]; // 26
} // 27
if (collections) { // 28
FS.Utility.each(collections, function(collectionName) { // 29
getHeadersByCollection[collectionName] = headers || []; // 30
}); // 31
} else { // 32
getHeaders = headers || []; // 33
} // 34
}; // 35
// 36
/** // 37
* @method FS.HTTP.publish // 38
* @public // 39
* @param {FS.Collection} collection // 40
* @param {Function} func - Publish function that returns a cursor. // 41
* @returns {undefined} // 42
* // 43
* Publishes all documents returned by the cursor at a GET URL // 44
* with the format baseUrl/record/collectionName. The publish // 45
* function `this` is similar to normal `Meteor.publish`. // 46
*/ // 47
FS.HTTP.publish = function fsHttpPublish(collection, func) { // 48
var name = baseUrl + '/record/' + collection.name; // 49
// Mount collection listing URL using http-publish package // 50
HTTP.publish({ // 51
name: name, // 52
defaultFormat: 'fileRecordFormat', // 53
collection: collection, // 54
collectionGet: true, // 55
collectionPost: false, // 56
documentGet: true, // 57
documentPut: false, // 58
documentDelete: false // 59
}, func); // 60
// 61
FS.debug && console.log("Registered HTTP method GET URLs:\n\n" + name + '\n' + name + '/:id\n'); // 62
}; // 63
// 64
/** // 65
* @method FS.HTTP.unpublish // 66
* @public // 67
* @param {FS.Collection} collection // 68
* @returns {undefined} // 69
* // 70
* Unpublishes a restpoint created by a call to `FS.HTTP.publish` // 71
*/ // 72
FS.HTTP.unpublish = function fsHttpUnpublish(collection) { // 73
// Mount collection listing URL using http-publish package // 74
HTTP.unpublish(baseUrl + '/record/' + collection.name); // 75
}; // 76
// 77
_existingMountPoints = {}; // 78
// 79
/** // 80
* @method defaultSelectorFunction // 81
* @private // 82
* @returns { collection, file } // 83
* // 84
* This is the default selector function // 85
*/ // 86
var defaultSelectorFunction = function() { // 87
var self = this; // 88
// Selector function // 89
// // 90
// This function will have to return the collection and the // 91
// file. If file not found undefined is returned - if null is returned the // 92
// search was not possible // 93
var opts = FS.Utility.extend({}, self.query || {}, self.params || {}); // 94
// 95
// Get the collection name from the url // 96
var collectionName = opts.collectionName; // 97
// 98
// Get the id from the url // 99
var id = opts.id; // 100
// 101
// Get the collection // 102
var collection = FS._collections[collectionName]; // 103
// 104
// Get the file if possible else return null // 105
var file = (id && collection)? collection.findOne({ _id: id }): null; // 106
// 107
// Return the collection and the file // 108
return { // 109
collection: collection, // 110
file: file, // 111
storeName: opts.store, // 112
download: opts.download, // 113
filename: opts.filename // 114
}; // 115
}; // 116
// 117
/* // 118
* @method FS.HTTP.mount // 119
* @public // 120
* @param {array of string} mountPoints mount points to map rest functinality on // 121
* @param {function} selector_f [selector] function returns `{ collection, file }` for mount points to work with // 122
* // 123
*/ // 124
FS.HTTP.mount = function(mountPoints, selector_f) { // 125
// We take mount points as an array and we get a selector function // 126
var selectorFunction = selector_f || defaultSelectorFunction; // 127
// 128
var accessPoint = { // 129
'stream': true, // 130
'auth': expirationAuth, // 131
'post': function(data) { // 132
// Use the selector for finding the collection and file reference // 133
var ref = selectorFunction.call(this); // 134
// 135
// We dont support post - this would be normal insert eg. of filerecord? // 136
throw new Meteor.Error(501, "Not implemented", "Post is not supported"); // 137
}, // 138
'put': function(data) { // 139
// Use the selector for finding the collection and file reference // 140
var ref = selectorFunction.call(this); // 141
// 142
// Make sure we have a collection reference // 143
if (!ref.collection) // 144
throw new Meteor.Error(404, "Not Found", "No collection found"); // 145
// 146
// Make sure we have a file reference // 147
if (ref.file === null) { // 148
// No id supplied so we will create a new FS.File instance and // 149
// insert the supplied data. // 150
return FS.HTTP.Handlers.PutInsert.apply(this, [ref]); // 151
} else { // 152
if (ref.file) { // 153
return FS.HTTP.Handlers.PutUpdate.apply(this, [ref]); // 154
} else { // 155
throw new Meteor.Error(404, "Not Found", 'No file found'); // 156
} // 157
} // 158
}, // 159
'get': function(data) { // 160
// Use the selector for finding the collection and file reference // 161
var ref = selectorFunction.call(this); // 162
// 163
// Make sure we have a collection reference // 164
if (!ref.collection) // 165
throw new Meteor.Error(404, "Not Found", "No collection found"); // 166
// 167
// Make sure we have a file reference // 168
if (ref.file === null) { // 169
// No id supplied so we will return the published list of files ala // 170
// http.publish in json format // 171
return FS.HTTP.Handlers.GetList.apply(this, [ref]); // 172
} else { // 173
if (ref.file) { // 174
return FS.HTTP.Handlers.Get.apply(this, [ref]); // 175
} else { // 176
throw new Meteor.Error(404, "Not Found", 'No file found'); // 177
} // 178
} // 179
}, // 180
'delete': function(data) { // 181
// Use the selector for finding the collection and file reference // 182
var ref = selectorFunction.call(this); // 183
// 184
// Make sure we have a collection reference // 185
if (!ref.collection) // 186
throw new Meteor.Error(404, "Not Found", "No collection found"); // 187
// 188
// Make sure we have a file reference // 189
if (ref.file) { // 190
return FS.HTTP.Handlers.Del.apply(this, [ref]); // 191
} else { // 192
throw new Meteor.Error(404, "Not Found", 'No file found'); // 193
} // 194
} // 195
}; // 196
// 197
var accessPoints = {}; // 198
// 199
// Add debug message // 200
FS.debug && console.log('Registered HTTP method URLs:'); // 201
// 202
FS.Utility.each(mountPoints, function(mountPoint) { // 203
// Couple mountpoint and accesspoint // 204
accessPoints[mountPoint] = accessPoint; // 205
// Remember our mountpoints // 206
_existingMountPoints[mountPoint] = mountPoint; // 207
// Add debug message // 208
FS.debug && console.log(mountPoint); // 209
}); // 210
// 211
// XXX: HTTP:methods should unmount existing mounts in case of overwriting? // 212
HTTP.methods(accessPoints); // 213
// 214
}; // 215
// 216
/** // 217
* @method FS.HTTP.unmount // 218
* @public // 219
* @param {string | array of string} [mountPoints] Optional, if not specified all mountpoints are unmounted // 220
* // 221
*/ // 222
FS.HTTP.unmount = function(mountPoints) { // 223
// The mountPoints is optional, can be string or array if undefined then // 224
// _existingMountPoints will be used // 225
var unmountList; // 226
// Container for the mount points to unmount // 227
var unmountPoints = {}; // 228
// 229
if (typeof mountPoints === 'undefined') { // 230
// Use existing mount points - unmount all // 231
unmountList = _existingMountPoints; // 232
} else if (mountPoints === ''+mountPoints) { // 233
// Got a string // 234
unmountList = [mountPoints]; // 235
} else if (mountPoints.length) { // 236
// Got an array // 237
unmountList = mountPoints; // 238
} // 239
// 240
// If we have a list to unmount // 241
if (unmountList) { // 242
// Iterate over each item // 243
FS.Utility.each(unmountList, function(mountPoint) { // 244
// Check _existingMountPoints to make sure the mount point exists in our // 245
// context / was created by the FS.HTTP.mount // 246
if (_existingMountPoints[mountPoint]) { // 247
// Mark as unmount // 248
unmountPoints[mountPoint] = false; // 249
// Release // 250
delete _existingMountPoints[mountPoint]; // 251
} // 252
}); // 253
FS.debug && console.log('FS.HTTP.unmount:'); // 254
FS.debug && console.log(unmountPoints); // 255
// Complete unmount // 256
HTTP.methods(unmountPoints); // 257
} // 258
}; // 259
// 260
// ### FS.Collection maps on HTTP pr. default on the following restpoints: // 261
// * // 262
// baseUrl + '/files/:collectionName/:id/:filename', // 263
// baseUrl + '/files/:collectionName/:id', // 264
// baseUrl + '/files/:collectionName' // 265
// // 266
// Change/ replace the existing mount point by: // 267
// ```js // 268
// // unmount all existing // 269
// FS.HTTP.unmount(); // 270
// // Create new mount point // 271
// FS.HTTP.mount([ // 272
// '/cfs/files/:collectionName/:id/:filename', // 273
// '/cfs/files/:collectionName/:id', // 274
// '/cfs/files/:collectionName' // 275
// ]); // 276
// ``` // 277
// // 278
mountUrls = function mountUrls() { // 279
// We unmount first in case we are calling this a second time // 280
FS.HTTP.unmount(); // 281
// 282
FS.HTTP.mount([ // 283
baseUrl + '/files/:collectionName/:id/:filename', // 284
baseUrl + '/files/:collectionName/:id', // 285
baseUrl + '/files/:collectionName' // 286
]); // 287
}; // 288
// 289
// Returns the userId from URL token // 290
var expirationAuth = function expirationAuth() { // 291
var self = this; // 292
// 293
// Read the token from '/hello?token=base64' // 294
var encodedToken = self.query.token; // 295
// 296
FS.debug && console.log("token: "+encodedToken); // 297
// 298
if (!encodedToken || !Meteor.users) return false; // 299
// 300
// Check the userToken before adding it to the db query // 301
// Set the this.userId // 302
var tokenString = FS.Utility.atob(encodedToken); // 303
// 304
var tokenObject; // 305
try { // 306
tokenObject = JSON.parse(tokenString); // 307
} catch(err) { // 308
throw new Meteor.Error(400, 'Bad Request'); // 309
} // 310
// 311
// XXX: Do some check here of the object // 312
var userToken = tokenObject.authToken; // 313
if (userToken !== ''+userToken) { // 314
throw new Meteor.Error(400, 'Bad Request'); // 315
} // 316
// 317
// If we have an expiration token we should check that it's still valid // 318
if (tokenObject.expiration != null) { // 319
// check if its too old // 320
var now = Date.now(); // 321
if (tokenObject.expiration < now) { // 322
FS.debug && console.log('Expired token: ' + tokenObject.expiration + ' is less than ' + now); // 323
throw new Meteor.Error(500, 'Expired token'); // 324
} // 325
} // 326
// 327
// We are not on a secure line - so we have to look up the user... // 328
var user = Meteor.users.findOne({ // 329
$or: [ // 330
{'services.resume.loginTokens.hashedToken': Accounts._hashLoginToken(userToken)}, // 331
{'services.resume.loginTokens.token': userToken} // 332
] // 333
}); // 334
// 335
// Set the userId in the scope // 336
return user && user._id; // 337
}; // 338
// 339
HTTP.methods( // 340
{'/cfs/servertime': { // 341
get: function(data) { // 342
return Date.now().toString(); // 343
} // 344
} // 345
}); // 346
// 347
// Unify client / server api // 348
FS.HTTP.now = function() { // 349
return Date.now(); // 350
}; // 351
// 352
// Start up the basic mount points // 353
Meteor.startup(function () { // 354
mountUrls(); // 355
}); // 356
// 357
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}).call(this);
///////////////////////////////////////////////////////////////////////
}).call(this);
/* Exports */
if (typeof Package === 'undefined') Package = {};
Package['cfs:access-point'] = {};
})();
+238
View File
@@ -0,0 +1,238 @@
/* global JsonRoutes */
if (Meteor.isServer) {
// todo XXX once we have a real API in place, move that route there
// todo XXX also share the route definition between the client and the server
// so that we could use something like
// `ApiRoutes.path('boards/export', boardId)``
// on the client instead of copy/pasting the route path manually between the
// client and the server.
/**
* @operation export
* @tag Boards
*
* @summary This route is used to export the board.
*
* @description If user is already logged-in, pass loginToken as param
* "authToken": '/api/boards/:boardId/export?authToken=:token'
*
* See https://blog.kayla.com.au/server-side-route-authentication-in-meteor/
* for detailed explanations
*
* @param {string} boardId the ID of the board we are exporting
* @param {string} authToken the loginToken
*/
JsonRoutes.add('get', '/api/boards/:boardId/export', function(req, res) {
const boardId = req.params.boardId;
let user = null;
const loginToken = req.query.authToken;
if (loginToken) {
const hashToken = Accounts._hashLoginToken(loginToken);
user = Meteor.users.findOne({
'services.resume.loginTokens.hashedToken': hashToken,
});
} else if (!Meteor.settings.public.sandstorm) {
Authentication.checkUserId(req.userId);
user = Users.findOne({ _id: req.userId, isAdmin: true });
}
const exporter = new Exporter(boardId);
if (exporter.canExport(user)) {
JsonRoutes.sendResult(res, {
code: 200,
data: exporter.build(),
});
} else {
// we could send an explicit error message, but on the other hand the only
// way to get there is by hacking the UI so let's keep it raw.
JsonRoutes.sendResult(res, 403);
}
});
}
// exporter maybe is broken since Gridfs introduced, add fs and path
export class Exporter {
constructor(boardId) {
this._boardId = boardId;
}
build() {
const fs = Npm.require('fs');
const os = Npm.require('os');
const path = Npm.require('path');
const byBoard = { boardId: this._boardId };
const byBoardNoLinked = {
boardId: this._boardId,
linkedId: { $in: ['', null] },
};
// we do not want to retrieve boardId in related elements
const noBoardId = {
fields: {
boardId: 0,
},
};
const result = {
_format: 'wekan-board-1.0.0',
};
_.extend(
result,
Boards.findOne(this._boardId, {
fields: {
stars: 0,
},
}),
);
result.lists = Lists.find(byBoard, noBoardId).fetch();
result.cards = Cards.find(byBoardNoLinked, noBoardId).fetch();
result.swimlanes = Swimlanes.find(byBoard, noBoardId).fetch();
result.customFields = CustomFields.find(
{ boardIds: { $in: [this.boardId] } },
{ fields: { boardId: 0 } },
).fetch();
result.comments = CardComments.find(byBoard, noBoardId).fetch();
result.activities = Activities.find(byBoard, noBoardId).fetch();
result.rules = Rules.find(byBoard, noBoardId).fetch();
result.checklists = [];
result.checklistItems = [];
result.subtaskItems = [];
result.triggers = [];
result.actions = [];
result.cards.forEach(card => {
result.checklists.push(
...Checklists.find({
cardId: card._id,
}).fetch(),
);
result.checklistItems.push(
...ChecklistItems.find({
cardId: card._id,
}).fetch(),
);
result.subtaskItems.push(
...Cards.find({
parentId: card._id,
}).fetch(),
);
});
result.rules.forEach(rule => {
result.triggers.push(
...Triggers.find(
{
_id: rule.triggerId,
},
noBoardId,
).fetch(),
);
result.actions.push(
...Actions.find(
{
_id: rule.actionId,
},
noBoardId,
).fetch(),
);
});
// [Old] for attachments we only export IDs and absolute url to original doc
// [New] Encode attachment to base64
const getBase64Data = function(doc, callback) {
let buffer = new Buffer(0);
// callback has the form function (err, res) {}
const tmpFile = path.join(
os.tmpdir(),
`tmpexport${process.pid}${Math.random()}`,
);
const tmpWriteable = fs.createWriteStream(tmpFile);
const readStream = doc.createReadStream();
readStream.on('data', function(chunk) {
buffer = Buffer.concat([buffer, chunk]);
});
readStream.on('error', function(err) {
callback(err, null);
});
readStream.on('end', function() {
// done
fs.unlink(tmpFile, () => {
//ignored
});
callback(null, buffer.toString('base64'));
});
readStream.pipe(tmpWriteable);
};
const getBase64DataSync = Meteor.wrapAsync(getBase64Data);
result.attachments = Attachments.find(byBoard)
.fetch()
.map(attachment => {
return {
_id: attachment._id,
cardId: attachment.cardId,
// url: FlowRouter.url(attachment.url()),
file: getBase64DataSync(attachment),
name: attachment.original.name,
type: attachment.original.type,
};
});
// we also have to export some user data - as the other elements only
// include id but we have to be careful:
// 1- only exports users that are linked somehow to that board
// 2- do not export any sensitive information
const users = {};
result.members.forEach(member => {
users[member.userId] = true;
});
result.lists.forEach(list => {
users[list.userId] = true;
});
result.cards.forEach(card => {
users[card.userId] = true;
if (card.members) {
card.members.forEach(memberId => {
users[memberId] = true;
});
}
});
result.comments.forEach(comment => {
users[comment.userId] = true;
});
result.activities.forEach(activity => {
users[activity.userId] = true;
});
result.checklists.forEach(checklist => {
users[checklist.userId] = true;
});
const byUserIds = {
_id: {
$in: Object.getOwnPropertyNames(users),
},
};
// we use whitelist to be sure we do not expose inadvertently
// some secret fields that gets added to User later.
const userFields = {
fields: {
_id: 1,
username: 1,
'profile.fullname': 1,
'profile.initials': 1,
'profile.avatarUrl': 1,
},
};
result.users = Users.find(byUserIds, userFields)
.fetch()
.map(user => {
// user avatar is stored as a relative url, we export absolute
if ((user.profile || {}).avatarUrl) {
user.profile.avatarUrl = FlowRouter.url(user.profile.avatarUrl);
}
return user;
});
return result;
}
canExport(user) {
const board = Boards.findOne(this._boardId);
return board && board.isVisibleBy(user);
}
}
+155
View File
@@ -0,0 +1,155 @@
name: wekan
version: git
summary: The open-source kanban
description: |
Wekan is an open-source and collaborative kanban board application.
Whether you’re maintaining a personal todo list, planning your holidays with some friends, or working in a team on your next revolutionary idea, Kanban boards are an unbeatable tool to keep your things organized. They give you a visual overview of the current state of your project, and make you productive by allowing you to focus on the few items that matter the most.
Depending on target environment, some configuration settings might need to be adjusted.
For full list of configuration options call:
$ wekan.help
confinement: strict
grade: stable
base: core18
architectures:
- amd64
plugs:
mongodb-plug:
interface: content
target: $SNAP_DATA/shared
hooks:
configure:
plugs:
- network
- network-bind
slots:
mongodb-slot:
interface: content
write:
- $SNAP_DATA/share
apps:
wekan:
command: wekan-control
daemon: simple
plugs: [network, network-bind]
mongodb:
command: mongodb-control
daemon: simple
plugs: [network, network-bind]
caddy:
command: caddy-control
daemon: simple
plugs: [network, network-bind]
help:
command: wekan-help
database-backup:
command: mongodb-backup
plugs: [network, network-bind]
database-list-backups:
command: ls -al $SNAP_COMMON/db-backups/
database-restore:
command: mongodb-restore
plugs: [network, network-bind]
parts:
mongodb:
source: https://repo.mongodb.org/apt/ubuntu/dists/xenial/mongodb-org/4.2/multiverse/binary-amd64/mongodb-org-server_4.2.2_amd64.deb
#https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.14.tgz
#https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.2.22.tgz
plugin: dump
stage-packages: [libssl1.0.0, libcurl3]
filesets:
mongo:
- usr
- bin
- lib
stage:
- $mongo
prime:
- $mongo
wekan:
source: .
plugin: nodejs
node-engine: 12.14.1
node-packages:
- node-gyp
- node-pre-gyp
- fibers
build-packages:
- ca-certificates
- apt-utils
- build-essential
- python
- python3
- g++
- capnproto
- curl
- libcurl3
- execstack
- nodejs
- npm
stage-packages:
- libfontconfig1
override-build: |
echo "Cleaning environment first"
rm -rf ~/.meteor ~/.npm /usr/local/lib/node_modules
rm -rf .build
echo "Installing meteor"
curl https://install.meteor.com/ -o install_meteor.sh
chmod +x install_meteor.sh
sh install_meteor.sh
rm install_meteor.sh
rm -rf .build
meteor add standard-minifier-js --allow-superuser
meteor npm install --allow-superuser
meteor npm install --allow-superuser --save babel-runtime
meteor build .build --directory --allow-superuser
cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js
cd .build/bundle/programs/server
npm install
npm install --allow-superuser --save babel-runtime
# Change back to Wekan source directory
cd ../../../..
cp -r .build/bundle/* $SNAPCRAFT_PART_INSTALL/
cp .build/bundle/.node_version.txt $SNAPCRAFT_PART_INSTALL/
rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/wekan
rm -f $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/meteor/rajit_bootstrap3-datepicker/lib/bootstrap-datepicker/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs
rm -f $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/tar/lib/.mkdir.js.swp
rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/node-pre-gyp/node_modules/tar/lib/.mkdir.js.swp
rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/node-gyp/node_modules/tar/lib/.mkdir.js.swp
rm -f $SNAPCRAFT_PART_INSTALL/programs/server/node_modules/node-pre-gyp/node_modules/tar/lib/.mkdir.js.swp
organize:
README: README.wekan
prime:
- -lib/node_modules/node-pre-gyp/node_modules/tar/lib/.unpack.js.swp
helpers:
source: snap-src
plugin: dump
caddy:
plugin: dump
source: https://caddyserver.com/download/linux/amd64?license=personal&telemetry=off
source-type: tar
organize:
caddy: bin/caddy
CHANGES.txt: CADDY_CHANGES.txt
EULA.txt: CADDY_EULA.txt
LICENSES.txt: CADDY_LICENSES.txt
README.txt: CADDY_README.txt
stage:
- -init
+584
View File
@@ -0,0 +1,584 @@
import ldapjs from 'ldapjs';
import util from 'util';
import Bunyan from 'bunyan';
import {log_debug, log_info, log_warn, log_error} from './logger';
export default class LDAP {
constructor() {
this.ldapjs = ldapjs;
this.connected = false;
this.options = {
host : this.constructor.settings_get('LDAP_HOST'),
port : this.constructor.settings_get('LDAP_PORT'),
Reconnect : this.constructor.settings_get('LDAP_RECONNECT'),
timeout : this.constructor.settings_get('LDAP_TIMEOUT'),
connect_timeout : this.constructor.settings_get('LDAP_CONNECT_TIMEOUT'),
idle_timeout : this.constructor.settings_get('LDAP_IDLE_TIMEOUT'),
encryption : this.constructor.settings_get('LDAP_ENCRYPTION'),
ca_cert : this.constructor.settings_get('LDAP_CA_CERT'),
reject_unauthorized : this.constructor.settings_get('LDAP_REJECT_UNAUTHORIZED') || false,
Authentication : this.constructor.settings_get('LDAP_AUTHENTIFICATION'),
Authentication_UserDN : this.constructor.settings_get('LDAP_AUTHENTIFICATION_USERDN'),
Authentication_Password : this.constructor.settings_get('LDAP_AUTHENTIFICATION_PASSWORD'),
Authentication_Fallback : this.constructor.settings_get('LDAP_LOGIN_FALLBACK'),
BaseDN : this.constructor.settings_get('LDAP_BASEDN'),
Internal_Log_Level : this.constructor.settings_get('INTERNAL_LOG_LEVEL'),
User_Authentication : this.constructor.settings_get('LDAP_USER_AUTHENTICATION'),
User_Authentication_Field : this.constructor.settings_get('LDAP_USER_AUTHENTICATION_FIELD'),
User_Attributes : this.constructor.settings_get('LDAP_USER_ATTRIBUTES'),
User_Search_Filter : this.constructor.settings_get('LDAP_USER_SEARCH_FILTER'),
User_Search_Scope : this.constructor.settings_get('LDAP_USER_SEARCH_SCOPE'),
User_Search_Field : this.constructor.settings_get('LDAP_USER_SEARCH_FIELD'),
Search_Page_Size : this.constructor.settings_get('LDAP_SEARCH_PAGE_SIZE'),
Search_Size_Limit : this.constructor.settings_get('LDAP_SEARCH_SIZE_LIMIT'),
group_filter_enabled : this.constructor.settings_get('LDAP_GROUP_FILTER_ENABLE'),
group_filter_object_class : this.constructor.settings_get('LDAP_GROUP_FILTER_OBJECTCLASS'),
group_filter_group_id_attribute : this.constructor.settings_get('LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE'),
group_filter_group_member_attribute: this.constructor.settings_get('LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE'),
group_filter_group_member_format : this.constructor.settings_get('LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT'),
group_filter_group_name : this.constructor.settings_get('LDAP_GROUP_FILTER_GROUP_NAME'),
};
}
static settings_get(name, ...args) {
let value = process.env[name];
if (value !== undefined) {
if (value === 'true' || value === 'false') {
value = JSON.parse(value);
} else if (value !== '' && !isNaN(value)) {
value = Number(value);
}
return value;
} else {
log_warn(`Lookup for unset variable: ${name}`);
}
}
connectSync(...args) {
if (!this._connectSync) {
this._connectSync = Meteor.wrapAsync(this.connectAsync, this);
}
return this._connectSync(...args);
}
searchAllSync(...args) {
if (!this._searchAllSync) {
this._searchAllSync = Meteor.wrapAsync(this.searchAllAsync, this);
}
return this._searchAllSync(...args);
}
connectAsync(callback) {
log_info('Init setup');
let replied = false;
const connectionOptions = {
url : `${this.options.host}:${this.options.port}`,
timeout : this.options.timeout,
connectTimeout: this.options.connect_timeout,
idleTimeout : this.options.idle_timeout,
reconnect : this.options.Reconnect,
};
if (this.options.Internal_Log_Level !== 'disabled') {
connectionOptions.log = new Bunyan({
name : 'ldapjs',
component: 'client',
stream : process.stderr,
level : this.options.Internal_Log_Level,
});
}
const tlsOptions = {
rejectUnauthorized: this.options.reject_unauthorized,
};
if (this.options.ca_cert && this.options.ca_cert !== '') {
// Split CA cert into array of strings
const chainLines = this.constructor.settings_get('LDAP_CA_CERT').split('\n');
let cert = [];
const ca = [];
chainLines.forEach((line) => {
cert.push(line);
if (line.match(/-END CERTIFICATE-/)) {
ca.push(cert.join('\n'));
cert = [];
}
});
tlsOptions.ca = ca;
}
if (this.options.encryption === 'ssl') {
connectionOptions.url = `ldaps://${connectionOptions.url}`;
connectionOptions.tlsOptions = tlsOptions;
} else {
connectionOptions.url = `ldap://${connectionOptions.url}`;
}
log_info('Connecting', connectionOptions.url);
log_debug(`connectionOptions${util.inspect(connectionOptions)}`);
this.client = ldapjs.createClient(connectionOptions);
this.bindSync = Meteor.wrapAsync(this.client.bind, this.client);
this.client.on('error', (error) => {
log_error('connection', error);
if (replied === false) {
replied = true;
callback(error, null);
}
});
this.client.on('idle', () => {
log_info('Idle');
this.disconnect();
});
this.client.on('close', () => {
log_info('Closed');
});
if (this.options.encryption === 'tls') {
// Set host parameter for tls.connect which is used by ldapjs starttls. This shouldn't be needed in newer nodejs versions (e.g v5.6.0).
// https://github.com/RocketChat/Rocket.Chat/issues/2035
// https://github.com/mcavage/node-ldapjs/issues/349
tlsOptions.host = this.options.host;
log_info('Starting TLS');
log_debug('tlsOptions', tlsOptions);
this.client.starttls(tlsOptions, null, (error, response) => {
if (error) {
log_error('TLS connection', error);
if (replied === false) {
replied = true;
callback(error, null);
}
return;
}
log_info('TLS connected');
this.connected = true;
if (replied === false) {
replied = true;
callback(null, response);
}
});
} else {
this.client.on('connect', (response) => {
log_info('LDAP connected');
this.connected = true;
if (replied === false) {
replied = true;
callback(null, response);
}
});
}
setTimeout(() => {
if (replied === false) {
log_error('connection time out', connectionOptions.connectTimeout);
replied = true;
callback(new Error('Timeout'));
}
}, connectionOptions.connectTimeout);
}
getUserFilter(username) {
const filter = [];
if (this.options.User_Search_Filter !== '') {
if (this.options.User_Search_Filter[0] === '(') {
filter.push(`${this.options.User_Search_Filter}`);
} else {
filter.push(`(${this.options.User_Search_Filter})`);
}
}
const usernameFilter = this.options.User_Search_Field.split(',').map((item) => `(${item}=${username})`);
if (usernameFilter.length === 0) {
log_error('LDAP_LDAP_User_Search_Field not defined');
} else if (usernameFilter.length === 1) {
filter.push(`${usernameFilter[0]}`);
} else {
filter.push(`(|${usernameFilter.join('')})`);
}
return `(&${filter.join('')})`;
}
bindUserIfNecessary(username, password) {
if (this.domainBinded === true) {
return;
}
if (!this.options.User_Authentication) {
return;
}
if (!this.options.BaseDN) throw new Error('BaseDN is not provided');
const userDn = `${this.options.User_Authentication_Field}=${username},${this.options.BaseDN}`;
this.bindSync(userDn, password);
this.domainBinded = true;
}
bindIfNecessary() {
if (this.domainBinded === true) {
return;
}
if (this.options.Authentication !== true) {
return;
}
log_info('Binding UserDN', this.options.Authentication_UserDN);
this.bindSync(this.options.Authentication_UserDN, this.options.Authentication_Password);
this.domainBinded = true;
}
searchUsersSync(username, page) {
this.bindIfNecessary();
const searchOptions = {
filter : this.getUserFilter(username),
scope : this.options.User_Search_Scope || 'sub',
sizeLimit: this.options.Search_Size_Limit,
};
if (!!this.options.User_Attributes) searchOptions.attributes = this.options.User_Attributes.split(',');
if (this.options.Search_Page_Size > 0) {
searchOptions.paged = {
pageSize : this.options.Search_Page_Size,
pagePause: !!page,
};
}
log_info('Searching user', username);
log_debug('searchOptions', searchOptions);
log_debug('BaseDN', this.options.BaseDN);
if (page) {
return this.searchAllPaged(this.options.BaseDN, searchOptions, page);
}
return this.searchAllSync(this.options.BaseDN, searchOptions);
}
getUserByIdSync(id, attribute) {
this.bindIfNecessary();
const Unique_Identifier_Field = this.constructor.settings_get('LDAP_UNIQUE_IDENTIFIER_FIELD').split(',');
let filter;
if (attribute) {
filter = new this.ldapjs.filters.EqualityFilter({
attribute,
value: new Buffer(id, 'hex'),
});
} else {
const filters = [];
Unique_Identifier_Field.forEach((item) => {
filters.push(new this.ldapjs.filters.EqualityFilter({
attribute: item,
value : new Buffer(id, 'hex'),
}));
});
filter = new this.ldapjs.filters.OrFilter({ filters });
}
const searchOptions = {
filter,
scope: 'sub',
};
log_info('Searching by id', id);
log_debug('search filter', searchOptions.filter.toString());
log_debug('BaseDN', this.options.BaseDN);
const result = this.searchAllSync(this.options.BaseDN, searchOptions);
if (!Array.isArray(result) || result.length === 0) {
return;
}
if (result.length > 1) {
log_error('Search by id', id, 'returned', result.length, 'records');
}
return result[0];
}
getUserByUsernameSync(username) {
this.bindIfNecessary();
const searchOptions = {
filter: this.getUserFilter(username),
scope : this.options.User_Search_Scope || 'sub',
};
log_info('Searching user', username);
log_debug('searchOptions', searchOptions);
log_debug('BaseDN', this.options.BaseDN);
const result = this.searchAllSync(this.options.BaseDN, searchOptions);
if (!Array.isArray(result) || result.length === 0) {
return;
}
if (result.length > 1) {
log_error('Search by username', username, 'returned', result.length, 'records');
}
return result[0];
}
getUserGroups(username, ldapUser) {
if (!this.options.group_filter_enabled) {
return true;
}
const filter = ['(&'];
if (this.options.group_filter_object_class !== '') {
filter.push(`(objectclass=${this.options.group_filter_object_class})`);
}
if (this.options.group_filter_group_member_attribute !== '') {
const format_value = ldapUser[this.options.group_filter_group_member_format];
if (format_value) {
filter.push(`(${this.options.group_filter_group_member_attribute}=${format_value})`);
}
}
filter.push(')');
const searchOptions = {
filter: filter.join('').replace(/#{username}/g, username),
scope : 'sub',
};
log_debug('Group list filter LDAP:', searchOptions.filter);
const result = this.searchAllSync(this.options.BaseDN, searchOptions);
if (!Array.isArray(result) || result.length === 0) {
return [];
}
const grp_identifier = this.options.group_filter_group_id_attribute || 'cn';
const groups = [];
result.map((item) => {
groups.push(item[grp_identifier]);
});
log_debug(`Groups: ${groups.join(', ')}`);
return groups;
}
isUserInGroup(username, ldapUser) {
if (!this.options.group_filter_enabled) {
return true;
}
const grps = this.getUserGroups(username, ldapUser);
const filter = ['(&'];
if (this.options.group_filter_object_class !== '') {
filter.push(`(objectclass=${this.options.group_filter_object_class})`);
}
if (this.options.group_filter_group_member_attribute !== '') {
const format_value = ldapUser[this.options.group_filter_group_member_format];
if (format_value) {
filter.push(`(${this.options.group_filter_group_member_attribute}=${format_value})`);
}
}
if (this.options.group_filter_group_id_attribute !== '') {
filter.push(`(${this.options.group_filter_group_id_attribute}=${this.options.group_filter_group_name})`);
}
filter.push(')');
const searchOptions = {
filter: filter.join('').replace(/#{username}/g, username),
scope : 'sub',
};
log_debug('Group filter LDAP:', searchOptions.filter);
const result = this.searchAllSync(this.options.BaseDN, searchOptions);
if (!Array.isArray(result) || result.length === 0) {
return false;
}
return true;
}
extractLdapEntryData(entry) {
const values = {
_raw: entry.raw,
};
Object.keys(values._raw).forEach((key) => {
const value = values._raw[key];
if (!['thumbnailPhoto', 'jpegPhoto'].includes(key)) {
if (value instanceof Buffer) {
values[key] = value.toString();
} else {
values[key] = value;
}
}
});
return values;
}
searchAllPaged(BaseDN, options, page) {
this.bindIfNecessary();
const processPage = ({ entries, title, end, next }) => {
log_info(title);
// Force LDAP idle to wait the record processing
this.client._updateIdle(true);
page(null, entries, {
end, next: () => {
// Reset idle timer
this.client._updateIdle();
next && next();
}
});
};
this.client.search(BaseDN, options, (error, res) => {
if (error) {
log_error(error);
page(error);
return;
}
res.on('error', (error) => {
log_error(error);
page(error);
return;
});
let entries = [];
const internalPageSize = options.paged && options.paged.pageSize > 0 ? options.paged.pageSize * 2 : 500;
res.on('searchEntry', (entry) => {
entries.push(this.extractLdapEntryData(entry));
if (entries.length >= internalPageSize) {
processPage({
entries,
title: 'Internal Page',
end : false,
});
entries = [];
}
});
res.on('page', (result, next) => {
if (!next) {
this.client._updateIdle(true);
processPage({
entries,
title: 'Final Page',
end : true,
});
} else if (entries.length) {
log_info('Page');
processPage({
entries,
title: 'Page',
end : false,
next,
});
entries = [];
}
});
res.on('end', () => {
if (entries.length) {
processPage({
entries,
title: 'Final Page',
end : true,
});
entries = [];
}
});
});
}
searchAllAsync(BaseDN, options, callback) {
this.bindIfNecessary();
this.client.search(BaseDN, options, (error, res) => {
if (error) {
log_error(error);
callback(error);
return;
}
res.on('error', (error) => {
log_error(error);
callback(error);
return;
});
const entries = [];
res.on('searchEntry', (entry) => {
entries.push(this.extractLdapEntryData(entry));
});
res.on('end', () => {
log_info('Search result count', entries.length);
callback(null, entries);
});
});
}
authSync(dn, password) {
log_info('Authenticating', dn);
try {
if (password === '') {
throw new Error('Password is not provided');
}
this.bindSync(dn, password);
log_info('Authenticated', dn);
return true;
} catch (error) {
log_info('Not authenticated', dn);
log_debug('error', error);
return false;
}
}
disconnect() {
this.connected = false;
this.domainBinded = false;
log_info('Disconecting');
this.client.unbind();
}
}
+149
View File
@@ -0,0 +1,149 @@
Oidc = {};
OAuth.registerService('oidc', 2, null, function (query) {
var debug = process.env.DEBUG || false;
var token = getToken(query);
if (debug) console.log('XXX: register token:', token);
var accessToken = token.access_token || token.id_token;
var expiresAt = (+new Date) + (1000 * parseInt(token.expires_in, 10));
var userinfo = getUserInfo(accessToken);
if (debug) console.log('XXX: userinfo:', userinfo);
var serviceData = {};
serviceData.id = userinfo[process.env.OAUTH2_ID_MAP]; // || userinfo["id"];
serviceData.username = userinfo[process.env.OAUTH2_USERNAME_MAP]; // || userinfo["uid"];
serviceData.fullname = userinfo[process.env.OAUTH2_FULLNAME_MAP]; // || userinfo["displayName"];
serviceData.accessToken = accessToken;
serviceData.expiresAt = expiresAt;
serviceData.email = userinfo[process.env.OAUTH2_EMAIL_MAP]; // || userinfo["email"];
if (accessToken) {
var tokenContent = getTokenContent(accessToken);
var fields = _.pick(tokenContent, getConfiguration().idTokenWhitelistFields);
_.extend(serviceData, fields);
}
if (token.refresh_token)
serviceData.refreshToken = token.refresh_token;
if (debug) console.log('XXX: serviceData:', serviceData);
var profile = {};
profile.name = userinfo[process.env.OAUTH2_FULLNAME_MAP]; // || userinfo["displayName"];
profile.email = userinfo[process.env.OAUTH2_EMAIL_MAP]; // || userinfo["email"];
if (debug) console.log('XXX: profile:', profile);
return {
serviceData: serviceData,
options: { profile: profile }
};
});
var userAgent = "Meteor";
if (Meteor.release) {
userAgent += "/" + Meteor.release;
}
var getToken = function (query) {
var debug = process.env.DEBUG || false;
var config = getConfiguration();
if(config.tokenEndpoint.includes('https://')){
var serverTokenEndpoint = config.tokenEndpoint;
}else{
var serverTokenEndpoint = config.serverUrl + config.tokenEndpoint;
}
var requestPermissions = config.requestPermissions;
var response;
try {
response = HTTP.post(
serverTokenEndpoint,
{
headers: {
Accept: 'application/json',
"User-Agent": userAgent
},
params: {
code: query.code,
client_id: config.clientId,
client_secret: OAuth.openSecret(config.secret),
redirect_uri: OAuth._redirectUri('oidc', config),
grant_type: 'authorization_code',
scope: requestPermissions,
state: query.state
}
}
);
} catch (err) {
throw _.extend(new Error("Failed to get token from OIDC " + serverTokenEndpoint + ": " + err.message),
{ response: err.response });
}
if (response.data.error) {
// if the http response was a json object with an error attribute
throw new Error("Failed to complete handshake with OIDC " + serverTokenEndpoint + ": " + response.data.error);
} else {
if (debug) console.log('XXX: getToken response: ', response.data);
return response.data;
}
};
var getUserInfo = function (accessToken) {
var debug = process.env.DEBUG || false;
var config = getConfiguration();
// Some userinfo endpoints use a different base URL than the authorization or token endpoints.
// This logic allows the end user to override the setting by providing the full URL to userinfo in their config.
if (config.userinfoEndpoint.includes("https://")) {
var serverUserinfoEndpoint = config.userinfoEndpoint;
} else {
var serverUserinfoEndpoint = config.serverUrl + config.userinfoEndpoint;
}
var response;
try {
response = HTTP.get(
serverUserinfoEndpoint,
{
headers: {
"User-Agent": userAgent,
"Authorization": "Bearer " + accessToken
}
}
);
} catch (err) {
throw _.extend(new Error("Failed to fetch userinfo from OIDC " + serverUserinfoEndpoint + ": " + err.message),
{response: err.response});
}
if (debug) console.log('XXX: getUserInfo response: ', response.data);
return response.data;
};
var getConfiguration = function () {
var config = ServiceConfiguration.configurations.findOne({ service: 'oidc' });
if (!config) {
throw new ServiceConfiguration.ConfigError('Service oidc not configured.');
}
return config;
};
var getTokenContent = function (token) {
var content = null;
if (token) {
try {
var parts = token.split('.');
var header = JSON.parse(new Buffer(parts[0], 'base64').toString());
content = JSON.parse(new Buffer(parts[1], 'base64').toString());
var signature = new Buffer(parts[2], 'base64');
var signed = parts[0] + '.' + parts[1];
} catch (err) {
this.content = {
exp: 0
};
}
}
return content;
}
Oidc.retrieveCredential = function (credentialToken, credentialSecret) {
return OAuth.retrieveCredential(credentialToken, credentialSecret);
};
+5184
View File
File diff suppressed because it is too large. Load diff
+73
View File
@@ -0,0 +1,73 @@
{
"name": "wekan",
"version": "v3.78.0",
"description": "Open-Source kanban",
"private": true,
"scripts": {
"lint": "eslint --cache --ext .js --ignore-path .eslintignore .",
"lint:eslint:fix": "eslint --ext .js --ignore-path .eslintignore --fix .",
"lint:staged": "lint-staged",
"prettify": "prettier --write '**/*.js' '**/*.jsx'",
"test": "npm run lint"
},
"lint-staged": {
"*.js": [
"meteor npm run prettify",
"meteor npm run lint:eslint:fix",
"git add --force"
],
"*.jsx": [
"meteor npm run prettify",
"meteor npm run lint:eslint:fix",
"git add --force"
],
"*.json": [
"prettier --write",
"git add --force"
]
},
"pre-commit": "lint:staged",
"eslintConfig": {
"extends": "@meteorjs/eslint-config-meteor"
},
"repository": {
"type": "git",
"url": "git+https://github.com/wekan/wekan.git"
},
"license": "MIT",
"bugs": {
"url": "https://github.com/wekan/wekan/issues"
},
"homepage": "https://wekan.github.io",
"devDependencies": {
"eslint": "^5.16.0",
"eslint-config-meteor": "0.0.9",
"eslint-config-prettier": "^3.6.0",
"eslint-import-resolver-meteor": "^0.4.0",
"eslint-plugin-import": "^2.18.0",
"eslint-plugin-meteor": "^5.1.0",
"eslint-plugin-prettier": "^3.1.0",
"lint-staged": "^7.3.0",
"pre-commit": "^1.2.2",
"prettier": "^1.18.2",
"prettier-eslint": "^8.8.2"
},
"dependencies": {
"@babel/runtime": "^7.6.2",
"ajv": "^5.0.0",
"babel-runtime": "^6.26.0",
"bcrypt": "^3.0.2",
"bson": "^4.0.0",
"bunyan": "^1.8.12",
"es6-promise": "^4.2.4",
"gridfs-stream": "^0.5.3",
"ldapjs": "^1.0.2",
"meteor-node-stubs": "^0.4.1",
"mongodb": "^3.3.3",
"os": "^0.1.1",
"page": "^1.8.6",
"qs": "^6.8.0",
"source-map-support": "^0.5.12",
"xss": "^1.0.6"
}
}
+244
View File
@@ -0,0 +1,244 @@
name: wekan
version: 0
version-script: git describe --tags | cut -c 2-
summary: The open-source kanban
description: |
Wekan is an open-source and collaborative kanban board application.
Whether you’re maintaining a personal todo list, planning your holidays with some friends, or working in a team on your next revolutionary idea, Kanban boards are an unbeatable tool to keep your things organized. They give you a visual overview of the current state of your project, and make you productive by allowing you to focus on the few items that matter the most.
Depending on target environment, some configuration settings might need to be adjusted.
For full list of configuration options call:
$ wekan.help
confinement: strict
grade: stable
architectures:
- amd64
plugs:
mongodb-plug:
interface: content
target: $SNAP_DATA/shared
hooks:
configure:
plugs:
- network
- network-bind
slots:
mongodb-slot:
interface: content
write:
- $SNAP_DATA/share
apps:
wekan:
command: wekan-control
daemon: simple
plugs: [network, network-bind]
mongodb:
command: mongodb-control
daemon: simple
plugs: [network, network-bind]
caddy:
command: caddy-control
daemon: simple
plugs: [network, network-bind]
help:
command: wekan-help
database-backup:
command: mongodb-backup
plugs: [network, network-bind]
database-list-backups:
command: ls -al $SNAP_COMMON/db-backups/
database-restore:
command: mongodb-restore
plugs: [network, network-bind]
parts:
mongodb:
source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.2.22.tgz
plugin: dump
stage-packages: [libssl1.0.0]
filesets:
mongo:
- usr
- bin
- lib
stage:
- $mongo
prime:
- $mongo
wekan:
source: .
plugin: nodejs
node-engine: 8.17.0
node-packages:
- node-gyp
- node-pre-gyp
- fibers@2.0.0
build-packages:
- ca-certificates
- apt-utils
- python
# - python3
- g++
- capnproto
- curl
- execstack
- nodejs
- npm
stage-packages:
- libfontconfig1
override-build: |
echo "Cleaning environment first"
rm -rf ~/.meteor ~/.npm /usr/local/lib/node_modules
# Create the OpenAPI specification
rm -rf .build
#mkdir -p .build/python
#cd .build/python
#git clone --depth 1 -b master https://github.com/Kronuz/esprima-python
#cd esprima-python
#python3 setup.py install
#cd ../../..
#mkdir -p ./public/api
#python3 ./openapi/generate_openapi.py --release $(git describe --tags --abbrev=0) > ./public/api/wekan.yml
# we temporary need api2html and mkdirp
#npm install -g api2html@0.3.0
#npm install -g mkdirp
#api2html -c ./public/logo-header.png -o ./public/api/wekan.html ./public/api/wekan.yml
#npm uninstall -g mkdirp
#npm uninstall -g api2html
# Node Fibers 100% CPU usage issue:
# https://github.com/wekan/wekan-mongodb/issues/2#issuecomment-381453161
# https://github.com/meteor/meteor/issues/9796#issuecomment-381676326
# https://github.com/sandstorm-io/sandstorm/blob/0f1fec013fe7208ed0fd97eb88b31b77e3c61f42/shell/server/00-startup.js#L99-L129
# Also see beginning of wekan/server/authentication.js
# import Fiber from "fibers";
# Fiber.poolSize = 1e9;
# OLD: Download node version 8.12.0 prerelease build => Official node 8.12.0 has been released
# Description at https://releases.wekan.team/node.txt
##echo "375bd8db50b9c692c0bbba6e96d4114cd29bee3770f901c1ff2249d1038f1348 node" >> node-SHASUMS256.txt.asc
##curl https://releases.wekan.team/node -o node
# Verify Fibers patched node authenticity
##echo "Fibers 100% CPU issue patched node authenticity:"
##grep node node-SHASUMS256.txt.asc | shasum -a 256 -c -
##rm -f node-SHASUMS256.txt.asc
##chmod +x node
##mv node `which node`
# DOES NOT WORK: paxctl fix.
# Removed from build-packages: - paxctl
#echo "Applying paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303"
#paxctl -mC `which node`
#echo "Installing npm"
#curl -L https://www.npmjs.com/install.sh | sh
echo "Installing meteor"
curl https://install.meteor.com/ -o install_meteor.sh
#sed -i "s|RELEASE=.*|RELEASE=\"1.8.1-beta.0\"|g" install_meteor.sh
chmod +x install_meteor.sh
sh install_meteor.sh
rm install_meteor.sh
# REPOS BELOW ARE INCLUDED TO WEKAN REPO
#if [ ! -d "packages" ]; then
# mkdir packages
#fi
#if [ ! -d "packages/kadira-flow-router" ]; then
# cd packages
# git clone --depth 1 -b master https://github.com/wekan/flow-router.git kadira-flow-router
# cd ..
#fi
#if [ ! -d "packages/meteor-useraccounts-core" ]; then
# cd packages
# git clone --depth 1 -b master https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core
# sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' meteor-useraccounts-core/package.js
# cd ..
#fi
#if [ ! -d "packages/meteor-accounts-cas" ]; then
# cd packages
# git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-cas.git meteor-accounts-cas
# cd ..
#fi
#if [ ! -d "packages/wekan-ldap" ]; then
# cd packages
# git clone --depth 1 -b master https://github.com/wekan/wekan-ldap.git
# cd ..
#fi
#if [ ! -d "packages/wekan-scrollbar" ]; then
# cd packages
# git clone --depth 1 -b master https://github.com/wekan/wekan-scrollbar.git
# cd ..
#fi
#if [ ! -d "packages/wekan_accounts-oidc" ]; then
# cd packages
# git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-oidc.git
# mv meteor-accounts-oidc/packages/switch_accounts-oidc wekan-accounts-oidc
# mv meteor-accounts-oidc/packages/switch_oidc wekan-oidc
# rm -rf meteor-accounts-oidc
# cd ..
#fi
#if [ ! -d "packages/markdown" ]; then
# cd packages
# git clone --depth 1 -b master --recurse-submodules https://github.com/wekan/markdown.git
# cd ..
#fi
rm -rf .build
meteor add standard-minifier-js --allow-superuser
meteor npm install --allow-superuser
meteor npm install --allow-superuser --save babel-runtime
meteor build .build --directory --allow-superuser
cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js
#Removed binary version of bcrypt because of security vulnerability that is not fixed yet.
#https://github.com/wekan/wekan/commit/4b2010213907c61b0e0482ab55abb06f6a668eac
#https://github.com/wekan/wekan/commit/7eeabf14be3c63fae2226e561ef8a0c1390c8d3c
#cd .build/bundle/programs/server/npm/node_modules/meteor/npm-bcrypt
#rm -rf node_modules/bcrypt
#meteor npm install --save bcrypt
# Change from npm-bcrypt directory back to .build/bundle/programs/server directory.
#cd ../../../../
# Change to directory .build/bundle/programs/server
cd .build/bundle/programs/server
npm install
npm install --allow-superuser --save babel-runtime
#meteor npm install --save bcrypt
# Change back to Wekan source directory
cd ../../../..
cp -r .build/bundle/* $SNAPCRAFT_PART_INSTALL/
cp .build/bundle/.node_version.txt $SNAPCRAFT_PART_INSTALL/
rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/wekan
rm -f $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/meteor/rajit_bootstrap3-datepicker/lib/bootstrap-datepicker/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs
rm -f $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/tar/lib/.mkdir.js.swp
rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/node-pre-gyp/node_modules/tar/lib/.mkdir.js.swp
rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/node-gyp/node_modules/tar/lib/.mkdir.js.swp
# Meteor 1.8.x additional .swp remove
rm -f $SNAPCRAFT_PART_INSTALL/programs/server/node_modules/node-pre-gyp/node_modules/tar/lib/.mkdir.js.swp
organize:
README: README.wekan
prime:
- -lib/node_modules/node-pre-gyp/node_modules/tar/lib/.unpack.js.swp
helpers:
source: snap-src
plugin: dump
caddy:
plugin: dump
source: https://caddyserver.com/download/linux/amd64?license=personal&telemetry=off
source-type: tar
organize:
caddy: bin/caddy
CHANGES.txt: CADDY_CHANGES.txt
EULA.txt: CADDY_EULA.txt
LICENSES.txt: CADDY_LICENSES.txt
README.txt: CADDY_README.txt
stage:
- -init
+853
View File
@@ -0,0 +1,853 @@
const DateString = Match.Where(function(dateAsString) {
check(dateAsString, String);
return moment(dateAsString, moment.ISO_8601).isValid();
});
export class WekanCreator {
constructor(data) {
// we log current date, to use the same timestamp for all our actions.
// this helps to retrieve all elements performed by the same import.
this._nowDate = new Date();
// The object creation dates, indexed by Wekan id
// (so we only parse actions once!)
this.createdAt = {
board: null,
cards: {},
lists: {},
swimlanes: {},
};
// The object creator Wekan Id, indexed by the object Wekan id
// (so we only parse actions once!)
this.createdBy = {
cards: {}, // only cards have a field for that
};
// Map of labels Wekan ID => Wekan ID
this.labels = {};
// Map of swimlanes Wekan ID => Wekan ID
this.swimlanes = {};
// Map of lists Wekan ID => Wekan ID
this.lists = {};
// Map of cards Wekan ID => Wekan ID
this.cards = {};
// Map of comments Wekan ID => Wekan ID
this.commentIds = {};
// Map of attachments Wekan ID => Wekan ID
this.attachmentIds = {};
// Map of checklists Wekan ID => Wekan ID
this.checklists = {};
// Map of checklistItems Wekan ID => Wekan ID
this.checklistItems = {};
// The comments, indexed by Wekan card id (to map when importing cards)
this.comments = {};
// Map of rules Wekan ID => Wekan ID
this.rules = {};
// the members, indexed by Wekan member id => Wekan user ID
this.members = data.membersMapping ? data.membersMapping : {};
// Map of triggers Wekan ID => Wekan ID
this.triggers = {};
// Map of actions Wekan ID => Wekan ID
this.actions = {};
// maps a wekanCardId to an array of wekanAttachments
this.attachments = {};
}
/**
* If dateString is provided,
* return the Date it represents.
* If not, will return the date when it was first called.
* This is useful for us, as we want all import operations to
* have the exact same date for easier later retrieval.
*
* @param {String} dateString a properly formatted Date
*/
_now(dateString) {
if (dateString) {
return new Date(dateString);
}
if (!this._nowDate) {
this._nowDate = new Date();
}
return this._nowDate;
}
/**
* if wekanUserId is provided and we have a mapping,
* return it.
* Otherwise return current logged user.
* @param wekanUserId
* @private
*/
_user(wekanUserId) {
if (wekanUserId && this.members[wekanUserId]) {
return this.members[wekanUserId];
}
return Meteor.userId();
}
checkActivities(wekanActivities) {
check(wekanActivities, [
Match.ObjectIncluding({
activityType: String,
createdAt: DateString,
}),
]);
// XXX we could perform more thorough checks based on action type
}
checkBoard(wekanBoard) {
check(
wekanBoard,
Match.ObjectIncluding({
archived: Boolean,
title: String,
// XXX refine control by validating 'color' against a list of
// allowed values (is it worth the maintenance?)
color: String,
permission: Match.Where(value => {
return ['private', 'public'].indexOf(value) >= 0;
}),
}),
);
}
checkCards(wekanCards) {
check(wekanCards, [
Match.ObjectIncluding({
archived: Boolean,
dateLastActivity: DateString,
labelIds: [String],
title: String,
sort: Number,
}),
]);
}
checkLabels(wekanLabels) {
check(wekanLabels, [
Match.ObjectIncluding({
// XXX refine control by validating 'color' against a list of allowed
// values (is it worth the maintenance?)
color: String,
}),
]);
}
checkLists(wekanLists) {
check(wekanLists, [
Match.ObjectIncluding({
archived: Boolean,
title: String,
}),
]);
}
checkSwimlanes(wekanSwimlanes) {
check(wekanSwimlanes, [
Match.ObjectIncluding({
archived: Boolean,
title: String,
}),
]);
}
checkChecklists(wekanChecklists) {
check(wekanChecklists, [
Match.ObjectIncluding({
cardId: String,
title: String,
}),
]);
}
checkChecklistItems(wekanChecklistItems) {
check(wekanChecklistItems, [
Match.ObjectIncluding({
cardId: String,
title: String,
}),
]);
}
checkRules(wekanRules) {
check(wekanRules, [
Match.ObjectIncluding({
triggerId: String,
actionId: String,
title: String,
}),
]);
}
checkTriggers(wekanTriggers) {
// XXX More check based on trigger type
check(wekanTriggers, [
Match.ObjectIncluding({
activityType: String,
desc: String,
}),
]);
}
getMembersToMap(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
// imported member
const membersToMap = data.members;
const users = data.users;
// auto-map based on username
membersToMap.forEach(importedMember => {
importedMember.id = importedMember.userId;
delete importedMember.userId;
const user = users.filter(user => {
return user._id === importedMember.id;
})[0];
if (user.profile && user.profile.fullname) {
importedMember.fullName = user.profile.fullname;
}
importedMember.username = user.username;
const wekanUser = Users.findOne({ username: importedMember.username });
if (wekanUser) {
importedMember.wekanId = wekanUser._id;
}
});
return membersToMap;
}
checkActions(wekanActions) {
// XXX More check based on action type
check(wekanActions, [
Match.ObjectIncluding({
actionType: String,
desc: String,
}),
]);
}
// You must call parseActions before calling this one.
createBoardAndLabels(boardToImport) {
const boardToCreate = {
archived: boardToImport.archived,
color: boardToImport.color,
// very old boards won't have a creation activity so no creation date
createdAt: this._now(boardToImport.createdAt),
labels: [],
members: [
{
userId: Meteor.userId(),
wekanId: Meteor.userId(),
isActive: true,
isAdmin: true,
isNoComments: false,
isCommentOnly: false,
swimlaneId: false,
},
],
// Standalone Export has modifiedAt missing, adding modifiedAt to fix it
modifiedAt: this._now(boardToImport.modifiedAt),
permission: boardToImport.permission,
slug: getSlug(boardToImport.title) || 'board',
stars: 0,
title: boardToImport.title,
};
// now add other members
if (boardToImport.members) {
boardToImport.members.forEach(wekanMember => {
// do we already have it in our list?
if (
!boardToCreate.members.some(
member => member.wekanId === wekanMember.wekanId,
)
)
boardToCreate.members.push({
...wekanMember,
userId: wekanMember.wekanId,
});
});
}
boardToImport.labels.forEach(label => {
const labelToCreate = {
_id: Random.id(6),
color: label.color,
name: label.name,
};
// We need to remember them by Wekan ID, as this is the only ref we have
// when importing cards.
this.labels[label._id] = labelToCreate._id;
boardToCreate.labels.push(labelToCreate);
});
const boardId = Boards.direct.insert(boardToCreate);
Boards.direct.update(boardId, {
$set: {
modifiedAt: this._now(),
},
});
// log activity
Activities.direct.insert({
activityType: 'importBoard',
boardId,
createdAt: this._now(),
source: {
id: boardToImport.id,
system: 'Wekan',
},
// We attribute the import to current user,
// not the author from the original object.
userId: this._user(),
});
return boardId;
}
/**
* Create the Wekan cards corresponding to the supplied Wekan cards,
* as well as all linked data: activities, comments, and attachments
* @param wekanCards
* @param boardId
* @returns {Array}
*/
createCards(wekanCards, boardId) {
const result = [];
wekanCards.forEach(card => {
const cardToCreate = {
archived: card.archived,
boardId,
// very old boards won't have a creation activity so no creation date
createdAt: this._now(this.createdAt.cards[card._id]),
dateLastActivity: this._now(),
description: card.description,
listId: this.lists[card.listId],
swimlaneId: this.swimlanes[card.swimlaneId],
sort: card.sort,
title: card.title,
// we attribute the card to its creator if available
userId: this._user(this.createdBy.cards[card._id]),
isOvertime: card.isOvertime || false,
startAt: card.startAt ? this._now(card.startAt) : null,
dueAt: card.dueAt ? this._now(card.dueAt) : null,
spentTime: card.spentTime || null,
};
// add labels
if (card.labelIds) {
cardToCreate.labelIds = card.labelIds.map(wekanId => {
return this.labels[wekanId];
});
}
// add members {
if (card.members) {
const wekanMembers = [];
// we can't just map, as some members may not have been mapped
card.members.forEach(sourceMemberId => {
if (this.members[sourceMemberId]) {
const wekanId = this.members[sourceMemberId];
// we may map multiple Wekan members to the same wekan user
// in which case we risk adding the same user multiple times
if (!wekanMembers.find(wId => wId === wekanId)) {
wekanMembers.push(wekanId);
}
}
return true;
});
if (wekanMembers.length > 0) {
cardToCreate.members = wekanMembers;
}
}
// set color
if (card.color) {
cardToCreate.color = card.color;
}
// insert card
const cardId = Cards.direct.insert(cardToCreate);
// keep track of Wekan id => Wekan id
this.cards[card._id] = cardId;
// // log activity
// Activities.direct.insert({
// activityType: 'importCard',
// boardId,
// cardId,
// createdAt: this._now(),
// listId: cardToCreate.listId,
// source: {
// id: card._id,
// system: 'Wekan',
// },
// // we attribute the import to current user,
// // not the author of the original card
// userId: this._user(),
// });
// add comments
const comments = this.comments[card._id];
if (comments) {
comments.forEach(comment => {
const commentToCreate = {
boardId,
cardId,
createdAt: this._now(comment.createdAt),
text: comment.text,
// we attribute the comment to the original author, default to current user
userId: this._user(comment.userId),
};
// dateLastActivity will be set from activity insert, no need to
// update it ourselves
const commentId = CardComments.direct.insert(commentToCreate);
this.commentIds[comment._id] = commentId;
// Activities.direct.insert({
// activityType: 'addComment',
// boardId: commentToCreate.boardId,
// cardId: commentToCreate.cardId,
// commentId,
// createdAt: this._now(commentToCreate.createdAt),
// // we attribute the addComment (not the import)
// // to the original author - it is needed by some UI elements.
// userId: commentToCreate.userId,
// });
});
}
const attachments = this.attachments[card._id];
const wekanCoverId = card.coverId;
if (attachments) {
attachments.forEach(att => {
const file = new FS.File();
// Simulating file.attachData on the client generates multiple errors
// - HEAD returns null, which causes exception down the line
// - the template then tries to display the url to the attachment which causes other errors
// so we make it server only, and let UI catch up once it is done, forget about latency comp.
const self = this;
if (Meteor.isServer) {
if (att.url) {
file.attachData(att.url, function(error) {
file.boardId = boardId;
file.cardId = cardId;
file.userId = self._user(att.userId);
// The field source will only be used to prevent adding
// attachments' related activities automatically
file.source = 'import';
if (error) {
throw error;
} else {
const wekanAtt = Attachments.insert(file, () => {
// we do nothing
});
self.attachmentIds[att._id] = wekanAtt._id;
//
if (wekanCoverId === att._id) {
Cards.direct.update(cardId, {
$set: {
coverId: wekanAtt._id,
},
});
}
}
});
} else if (att.file) {
file.attachData(
new Buffer(att.file, 'base64'),
{
type: att.type,
},
error => {
file.name(att.name);
file.boardId = boardId;
file.cardId = cardId;
file.userId = self._user(att.userId);
// The field source will only be used to prevent adding
// attachments' related activities automatically
file.source = 'import';
if (error) {
throw error;
} else {
const wekanAtt = Attachments.insert(file, () => {
// we do nothing
});
this.attachmentIds[att._id] = wekanAtt._id;
//
if (wekanCoverId === att._id) {
Cards.direct.update(cardId, {
$set: {
coverId: wekanAtt._id,
},
});
}
}
},
);
}
}
// todo XXX set cover - if need be
});
}
result.push(cardId);
});
return result;
}
// Create labels if they do not exist and load this.labels.
createLabels(wekanLabels, board) {
wekanLabels.forEach(label => {
const color = label.color;
const name = label.name;
const existingLabel = board.getLabel(name, color);
if (existingLabel) {
this.labels[label.id] = existingLabel._id;
} else {
const idLabelCreated = board.pushLabel(name, color);
this.labels[label.id] = idLabelCreated;
}
});
}
createLists(wekanLists, boardId) {
wekanLists.forEach((list, listIndex) => {
const listToCreate = {
archived: list.archived,
boardId,
// We are being defensing here by providing a default date (now) if the
// creation date wasn't found on the action log. This happen on old
// Wekan boards (eg from 2013) that didn't log the 'createList' action
// we require.
createdAt: this._now(this.createdAt.lists[list.id]),
title: list.title,
sort: list.sort ? list.sort : listIndex,
};
const listId = Lists.direct.insert(listToCreate);
Lists.direct.update(listId, {
$set: {
updatedAt: this._now(),
},
});
this.lists[list._id] = listId;
// // log activity
// Activities.direct.insert({
// activityType: 'importList',
// boardId,
// createdAt: this._now(),
// listId,
// source: {
// id: list._id,
// system: 'Wekan',
// },
// // We attribute the import to current user,
// // not the creator of the original object
// userId: this._user(),
// });
});
}
createSwimlanes(wekanSwimlanes, boardId) {
wekanSwimlanes.forEach((swimlane, swimlaneIndex) => {
const swimlaneToCreate = {
archived: swimlane.archived,
boardId,
// We are being defensing here by providing a default date (now) if the
// creation date wasn't found on the action log. This happen on old
// Wekan boards (eg from 2013) that didn't log the 'createList' action
// we require.
createdAt: this._now(this.createdAt.swimlanes[swimlane._id]),
title: swimlane.title,
sort: swimlane.sort ? swimlane.sort : swimlaneIndex,
};
// set color
if (swimlane.color) {
swimlaneToCreate.color = swimlane.color;
}
const swimlaneId = Swimlanes.direct.insert(swimlaneToCreate);
Swimlanes.direct.update(swimlaneId, {
$set: {
updatedAt: this._now(),
},
});
this.swimlanes[swimlane._id] = swimlaneId;
});
}
createChecklists(wekanChecklists) {
const result = [];
wekanChecklists.forEach((checklist, checklistIndex) => {
// Create the checklist
const checklistToCreate = {
cardId: this.cards[checklist.cardId],
title: checklist.title,
createdAt: checklist.createdAt,
sort: checklist.sort ? checklist.sort : checklistIndex,
};
const checklistId = Checklists.direct.insert(checklistToCreate);
this.checklists[checklist._id] = checklistId;
result.push(checklistId);
});
return result;
}
createTriggers(wekanTriggers, boardId) {
wekanTriggers.forEach(trigger => {
if (trigger.hasOwnProperty('labelId')) {
trigger.labelId = this.labels[trigger.labelId];
}
if (trigger.hasOwnProperty('memberId')) {
trigger.memberId = this.members[trigger.memberId];
}
trigger.boardId = boardId;
const oldId = trigger._id;
delete trigger._id;
this.triggers[oldId] = Triggers.direct.insert(trigger);
});
}
createActions(wekanActions, boardId) {
wekanActions.forEach(action => {
if (action.hasOwnProperty('labelId')) {
action.labelId = this.labels[action.labelId];
}
if (action.hasOwnProperty('memberId')) {
action.memberId = this.members[action.memberId];
}
action.boardId = boardId;
const oldId = action._id;
delete action._id;
this.actions[oldId] = Actions.direct.insert(action);
});
}
createRules(wekanRules, boardId) {
wekanRules.forEach(rule => {
// Create the rule
rule.boardId = boardId;
rule.triggerId = this.triggers[rule.triggerId];
rule.actionId = this.actions[rule.actionId];
delete rule._id;
Rules.direct.insert(rule);
});
}
createChecklistItems(wekanChecklistItems) {
wekanChecklistItems.forEach((checklistitem, checklistitemIndex) => {
// Create the checklistItem
const checklistItemTocreate = {
title: checklistitem.title,
checklistId: this.checklists[checklistitem.checklistId],
cardId: this.cards[checklistitem.cardId],
sort: checklistitem.sort ? checklistitem.sort : checklistitemIndex,
isFinished: checklistitem.isFinished,
};
const checklistItemId = ChecklistItems.direct.insert(
checklistItemTocreate,
);
this.checklistItems[checklistitem._id] = checklistItemId;
});
}
parseActivities(wekanBoard) {
wekanBoard.activities.forEach(activity => {
switch (activity.activityType) {
case 'addAttachment': {
// We have to be cautious, because the attachment could have been removed later.
// In that case Wekan still reports its addition, but removes its 'url' field.
// So we test for that
const wekanAttachment = wekanBoard.attachments.filter(attachment => {
return attachment._id === activity.attachmentId;
})[0];
if (typeof wekanAttachment !== 'undefined' && wekanAttachment) {
if (wekanAttachment.url || wekanAttachment.file) {
// we cannot actually create the Wekan attachment, because we don't yet
// have the cards to attach it to, so we store it in the instance variable.
const wekanCardId = activity.cardId;
if (!this.attachments[wekanCardId]) {
this.attachments[wekanCardId] = [];
}
this.attachments[wekanCardId].push(wekanAttachment);
}
}
break;
}
case 'addComment': {
const wekanComment = wekanBoard.comments.filter(comment => {
return comment._id === activity.commentId;
})[0];
const id = activity.cardId;
if (!this.comments[id]) {
this.comments[id] = [];
}
this.comments[id].push(wekanComment);
break;
}
case 'createBoard': {
this.createdAt.board = activity.createdAt;
break;
}
case 'createCard': {
const cardId = activity.cardId;
this.createdAt.cards[cardId] = activity.createdAt;
this.createdBy.cards[cardId] = activity.userId;
break;
}
case 'createList': {
const listId = activity.listId;
this.createdAt.lists[listId] = activity.createdAt;
break;
}
case 'createSwimlane': {
const swimlaneId = activity.swimlaneId;
this.createdAt.swimlanes[swimlaneId] = activity.createdAt;
break;
}
}
});
}
importActivities(activities, boardId) {
activities.forEach(activity => {
switch (activity.activityType) {
// Board related activities
// TODO: addBoardMember, removeBoardMember
case 'createBoard': {
Activities.direct.insert({
userId: this._user(activity.userId),
type: 'board',
activityTypeId: boardId,
activityType: activity.activityType,
boardId,
createdAt: this._now(activity.createdAt),
});
break;
}
// List related activities
// TODO: removeList, archivedList
case 'createList': {
Activities.direct.insert({
userId: this._user(activity.userId),
type: 'list',
activityType: activity.activityType,
listId: this.lists[activity.listId],
boardId,
createdAt: this._now(activity.createdAt),
});
break;
}
// Card related activities
// TODO: archivedCard, restoredCard, joinMember, unjoinMember
case 'createCard': {
Activities.direct.insert({
userId: this._user(activity.userId),
activityType: activity.activityType,
listId: this.lists[activity.listId],
cardId: this.cards[activity.cardId],
boardId,
createdAt: this._now(activity.createdAt),
});
break;
}
case 'moveCard': {
Activities.direct.insert({
userId: this._user(activity.userId),
oldListId: this.lists[activity.oldListId],
activityType: activity.activityType,
listId: this.lists[activity.listId],
cardId: this.cards[activity.cardId],
boardId,
createdAt: this._now(activity.createdAt),
});
break;
}
// Comment related activities
case 'addComment': {
Activities.direct.insert({
userId: this._user(activity.userId),
activityType: activity.activityType,
cardId: this.cards[activity.cardId],
commentId: this.commentIds[activity.commentId],
boardId,
createdAt: this._now(activity.createdAt),
});
break;
}
// Attachment related activities
case 'addAttachment': {
Activities.direct.insert({
userId: this._user(activity.userId),
type: 'card',
activityType: activity.activityType,
attachmentId: this.attachmentIds[activity.attachmentId],
cardId: this.cards[activity.cardId],
boardId,
createdAt: this._now(activity.createdAt),
});
break;
}
// Checklist related activities
case 'addChecklist': {
Activities.direct.insert({
userId: this._user(activity.userId),
activityType: activity.activityType,
cardId: this.cards[activity.cardId],
checklistId: this.checklists[activity.checklistId],
boardId,
createdAt: this._now(activity.createdAt),
});
break;
}
case 'addChecklistItem': {
Activities.direct.insert({
userId: this._user(activity.userId),
activityType: activity.activityType,
cardId: this.cards[activity.cardId],
checklistId: this.checklists[activity.checklistId],
checklistItemId: activity.checklistItemId.replace(
activity.checklistId,
this.checklists[activity.checklistId],
),
boardId,
createdAt: this._now(activity.createdAt),
});
break;
}
}
});
}
//check(board) {
check() {
//try {
// check(data, {
// membersMapping: Match.Optional(Object),
// });
// this.checkActivities(board.activities);
// this.checkBoard(board);
// this.checkLabels(board.labels);
// this.checkLists(board.lists);
// this.checkSwimlanes(board.swimlanes);
// this.checkCards(board.cards);
//this.checkChecklists(board.checklists);
// this.checkRules(board.rules);
// this.checkActions(board.actions);
//this.checkTriggers(board.triggers);
//this.checkChecklistItems(board.checklistItems);
//} catch (e) {
// throw new Meteor.Error('error-json-schema');
// }
}
create(board, currentBoardId) {
// TODO : Make isSandstorm variable global
const isSandstorm =
Meteor.settings &&
Meteor.settings.public &&
Meteor.settings.public.sandstorm;
if (isSandstorm && currentBoardId) {
const currentBoard = Boards.findOne(currentBoardId);
currentBoard.archive();
}
this.parseActivities(board);
const boardId = this.createBoardAndLabels(board);
this.createLists(board.lists, boardId);
this.createSwimlanes(board.swimlanes, boardId);
this.createCards(board.cards, boardId);
this.createChecklists(board.checklists);
this.createChecklistItems(board.checklistItems);
this.importActivities(board.activities, boardId);
this.createTriggers(board.triggers, boardId);
this.createActions(board.actions, boardId);
this.createRules(board.rules, boardId);
// XXX add members
return boardId;
}
}
+4 -4
View File
@@ -1,10 +1,10 @@
dist: trusty
dist: eoan
sudo: required
env:
TRAVIS_DOCKER_COMPOSE_VERSION: 1.12.0
TRAVIS_NODE_VERSION: 4.8.1
TRAVIS_NPM_VERSION: 4.4.4
TRAVIS_DOCKER_COMPOSE_VERSION: 1.24.0
TRAVIS_NODE_VERSION: 12.15.0
TRAVIS_NPM_VERSION: latest
before_install:
- sudo apt-get update -y
+1 -1
View File
@@ -39,7 +39,7 @@ 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 = en_GB:en-GB, fa_IR:fa, fi_FI:fi, hu_HU:hu, id_ID:id, no:nb, pt_BR:pt-BR, ro_RO:ro, zh_CN:zh-CN, zh_TW:zh-TW
lang_map = bg_BG:bg, en_GB:en-GB, es_AR:es-AR, el_GR:el, fi_FI:fi, hu_HU:hu, id_ID:id, mn_MN:mn, no:nb, lv_LV:lv, pt_BR:pt-BR, ro_RO:ro, sl_SI:sl, zh_CN:zh-CN, zh_TW:zh-TW, zh_HK:zh-HK
[wekan.application]
file_filter = i18n/<lang>.i18n.json
+28
View File
@@ -0,0 +1,28 @@
{
"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": "/home/wekan/.meteor/meteor",
"runtimeArgs": ["run", "--inspect-brk=9229"],
"outputCapture": "std",
"port": 9229,
"timeout": 60000
}
],
"compounds": [
{
"name": "Meteor: All",
"configurations": ["Meteor: Node", "Meteor: Chrome"]
}
]
}
+4552 -4
View File
File diff suppressed because it is too large. Load diff
+4
View File
@@ -0,0 +1,4 @@
To get started, [please sign the Contributor License Agreement](https://www.clahub.com/agreements/wekan/wekan).
[Then, please read documentation at wiki](https://github.com/wekan/wekan/wiki).
-5
View File
@@ -1,5 +0,0 @@
# Contributing
Please see wiki for all documentation:
<https://github.com/wekan/wekan/wiki>
+236 -78
View File
@@ -1,75 +1,176 @@
FROM debian:8.7
MAINTAINER wekan
# Declare Arguments
ARG NODE_VERSION
ARG METEOR_RELEASE
ARG METEOR_EDGE
ARG USE_EDGE
ARG NPM_VERSION
ARG FIBERS_VERSION
ARG ARCHITECTURE
ARG SRC_PATH
FROM ubuntu:rolling
LABEL maintainer="wekan"
# Set the environment variables (defaults where required)
ENV BUILD_DEPS="wget curl bzip2 build-essential python git ca-certificates gcc-4.9"
ENV GOSU_VERSION=1.10
ENV NODE_VERSION ${NODE_VERSION:-v4.8.1}
ENV METEOR_RELEASE ${METEOR_RELEASE:-1.4.4.1}
ENV USE_EDGE ${USE_EDGE:-false}
ENV METEOR_EDGE ${METEOR_EDGE:-1.5-beta.17}
ENV NPM_VERSION ${NPM_VERSION:-4.6.1}
ENV FIBERS_VERSION ${FIBERS_VERSION:-1.0.15}
ENV ARCHITECTURE ${ARCHITECTURE:-linux-x64}
ENV SRC_PATH ${SRC_PATH:-./}
# DOES NOT WORK: paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303
# ENV BUILD_DEPS="paxctl"
ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-essential git ca-certificates python3" \
DEBUG=false \
NODE_VERSION=v12.15.0 \
METEOR_RELEASE=1.9.0 \
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 \
ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE=3 \
ACCOUNTS_LOCKOUT_KNOWN_USERS_PERIOD=60 \
ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURE_WINDOW=15 \
ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE=3 \
ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60 \
ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW=15 \
RICHER_CARD_COMMENT_EDITOR=false \
CARD_OPENED_WEBHOOK_ENABLED=false \
ATTACHMENTS_STORE_PATH="" \
MAX_IMAGE_PIXEL="" \
IMAGE_COMPRESS_RATIO="" \
BIGEVENTS_PATTERN=NONE \
NOTIFY_DUE_DAYS_BEFORE_AND_AFTER="" \
NOTIFY_DUE_AT_HOUR_OF_DAY="" \
EMAIL_NOTIFICATION_TIMEOUT=30000 \
MATOMO_ADDRESS="" \
MATOMO_SITE_ID="" \
MATOMO_DO_NOT_TRACK=true \
MATOMO_WITH_USERNAME=false \
BROWSER_POLICY_ENABLED=true \
TRUSTED_URL="" \
WEBHOOKS_ATTRIBUTES="" \
OAUTH2_ENABLED=false \
OAUTH2_LOGIN_STYLE=redirect \
OAUTH2_CLIENT_ID="" \
OAUTH2_SECRET="" \
OAUTH2_SERVER_URL="" \
OAUTH2_AUTH_ENDPOINT="" \
OAUTH2_USERINFO_ENDPOINT="" \
OAUTH2_TOKEN_ENDPOINT="" \
OAUTH2_ID_MAP="" \
OAUTH2_USERNAME_MAP="" \
OAUTH2_FULLNAME_MAP="" \
OAUTH2_ID_TOKEN_WHITELIST_FIELDS="" \
OAUTH2_REQUEST_PERMISSIONS='openid profile email' \
OAUTH2_EMAIL_MAP="" \
LDAP_ENABLE=false \
LDAP_PORT=389 \
LDAP_HOST="" \
LDAP_BASEDN="" \
LDAP_LOGIN_FALLBACK=false \
LDAP_RECONNECT=true \
LDAP_TIMEOUT=10000 \
LDAP_IDLE_TIMEOUT=10000 \
LDAP_CONNECT_TIMEOUT=10000 \
LDAP_AUTHENTIFICATION=false \
LDAP_AUTHENTIFICATION_USERDN="" \
LDAP_AUTHENTIFICATION_PASSWORD="" \
LDAP_LOG_ENABLED=false \
LDAP_BACKGROUND_SYNC=false \
LDAP_BACKGROUND_SYNC_INTERVAL="" \
LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false \
LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=false \
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="" \
LDAP_SEARCH_PAGE_SIZE=0 \
LDAP_SEARCH_SIZE_LIMIT=0 \
LDAP_GROUP_FILTER_ENABLE=false \
LDAP_GROUP_FILTER_OBJECTCLASS="" \
LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE="" \
LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE="" \
LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT="" \
LDAP_GROUP_FILTER_GROUP_NAME="" \
LDAP_UNIQUE_IDENTIFIER_FIELD="" \
LDAP_UTF8_NAMES_SLUGIFY=true \
LDAP_USERNAME_FIELD="" \
LDAP_FULLNAME_FIELD="" \
LDAP_MERGE_EXISTING_USERS=false \
LDAP_EMAIL_FIELD="" \
LDAP_EMAIL_MATCH_ENABLE=false \
LDAP_EMAIL_MATCH_REQUIRE=false \
LDAP_EMAIL_MATCH_VERIFIED=false \
LDAP_SYNC_USER_DATA=false \
LDAP_SYNC_USER_DATA_FIELDMAP="" \
LDAP_SYNC_GROUP_ROLES="" \
LDAP_DEFAULT_DOMAIN="" \
LDAP_SYNC_ADMIN_STATUS="" \
LDAP_SYNC_ADMIN_GROUPS="" \
HEADER_LOGIN_ID="" \
HEADER_LOGIN_FIRSTNAME="" \
HEADER_LOGIN_LASTNAME="" \
HEADER_LOGIN_EMAIL="" \
LOGOUT_WITH_TIMER=false \
LOGOUT_IN="" \
LOGOUT_ON_HOURS="" \
LOGOUT_ON_MINUTES="" \
CORS="" \
CORS_ALLOW_HEADERS="" \
CORS_EXPOSE_HEADERS="" \
DEFAULT_AUTHENTICATION_METHOD=""
# 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 dist-upgrade -y && apt-get install -y --no-install-recommends ${BUILD_DEPS} && \
apt-get update -y && apt-get install -y --no-install-recommends ${BUILD_DEPS} && \
#pip3 install -U pip setuptools wheel && \
\
# Gosu installation
GOSU_ARCHITECTURE="$(dpkg --print-architecture | awk -F- '{ print $NF }')" && \
wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-${GOSU_ARCHITECTURE}" && \
wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-${GOSU_ARCHITECTURE}.asc" && \
export GNUPGHOME="$(mktemp -d)" && \
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 && \
gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu && \
rm -R "$GNUPGHOME" /usr/local/bin/gosu.asc && \
chmod +x /usr/local/bin/gosu && \
# 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 && \
#---------------------------------------------------------------------------------------------
# Node Fibers 100% CPU usage issue:
# https://github.com/wekan/wekan-mongodb/issues/2#issuecomment-381453161
# https://github.com/meteor/meteor/issues/9796#issuecomment-381676326
# https://github.com/sandstorm-io/sandstorm/blob/0f1fec013fe7208ed0fd97eb88b31b77e3c61f42/shell/server/00-startup.js#L99-L129
# Also see beginning of wekan/server/authentication.js
# import Fiber from "fibers";
# Fiber.poolSize = 1e9;
# OLD: Download node version 8.12.0 prerelease that has fix included, => Official 8.12.0 has been released
# Description at https://releases.wekan.team/node.txt
#wget https://releases.wekan.team/node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz && \
#echo "1ed54adb8497ad8967075a0b5d03dd5d0a502be43d4a4d84e5af489c613d7795 node-v8.12.0-linux-x64.tar.gz" >> SHASUMS256.txt.asc && \
\
# Verify nodejs authenticity
grep ${NODE_VERSION}-${ARCHITECTURE}.tar.gz SHASUMS256.txt.asc | shasum -a 256 -c - && \
export GNUPGHOME="$(mktemp -d)" && \
#export GNUPGHOME="$(mktemp -d)" && \
#\
# Try other key servers if ha.pool.sks-keyservers.net is unreachable
# Code from https://github.com/chorrell/docker-node/commit/2b673e17547c34f17f24553db02beefbac98d23c
# gpg keys listed at https://github.com/nodejs/node#release-team
# and keys listed here from previous version of this Dockerfile
for key in \
9554F04D7259F04124DE6B476D5A82AC7E37093B \
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
FD3A5288F042B6850C66B31F09FE44734EB7990E \
71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \
DD8F2338BAE7501E3DD5AC78C273792F7D83545D \
C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
B9AE9905FFD7803F25714661B63B535A4C206CA9 \
; do \
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \
gpg --keyserver pgp.mit.edu --recv-keys "$key" || \
gpg --keyserver keyserver.pgp.com --recv-keys "$key" ; \
done && \
gpg --verify SHASUMS256.txt.asc && \
rm -R "$GNUPGHOME" SHASUMS256.txt.asc && \
#for key in \
#9554F04D7259F04124DE6B476D5A82AC7E37093B \
#94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
#FD3A5288F042B6850C66B31F09FE44734EB7990E \
#71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \
#DD8F2338BAE7501E3DD5AC78C273792F7D83545D \
#C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
#B9AE9905FFD7803F25714661B63B535A4C206CA9 \
#; do \
#gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \
#gpg --keyserver pgp.mit.edu --recv-keys "$key" || \
#gpg --keyserver keyserver.pgp.com --recv-keys "$key" ; \
#done && \
#gpg --verify SHASUMS256.txt.asc && \
# Ignore socket files then delete files then delete directories
#find "$GNUPGHOME" -type f | xargs rm -f && \
#find "$GNUPGHOME" -type d | xargs rm -fR && \
rm -f SHASUMS256.txt.asc && \
\
# Install Node
tar xvzf node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz && \
@@ -77,57 +178,114 @@ RUN \
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/8.16.1 /home/wekan/.config && \
chown wekan --recursive /home/wekan/.config && \
\
# Install Node dependencies
#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} && \
npm install -g node-gyp && \
npm install -g fibers@${FIBERS_VERSION} && \
#npm config set python python2.7 && \
#npm install -g node-gyp && \
#npm install -g fibers@${FIBERS_VERSION} && \
\
# Change user to wekan and install meteor
cd /home/wekan/ && \
chown wekan:wekan --recursive /home/wekan && \
curl https://install.meteor.com -o ./install_meteor.sh && \
sed -i "s|RELEASE=.*|RELEASE=${METEOR_RELEASE}\"\"|g" ./install_meteor.sh && \
chown wekan --recursive /home/wekan && \
#curl "https://install.meteor.com" -o /home/wekan/install_meteor.sh && \
#curl "https://install.meteor.com/?release=${METEOR_RELEASE}" -o /home/wekan/install_meteor.sh && \
# OLD: sed -i "s|RELEASE=.*|RELEASE=${METEOR_RELEASE}\"\"|g" ./install_meteor.sh && \
# Install Meteor forcing its progress
#sed -i 's/VERBOSITY="--silent"/VERBOSITY="--progress-bar"/' ./install_meteor.sh && \
echo "Starting meteor ${METEOR_RELEASE} installation... \n" && \
chown wekan:wekan ./install_meteor.sh && \
gosu wekan:wekan curl https://install.meteor.com/ | /bin/sh && \
mv /root/.meteor /home/wekan/ && \
chown wekan --recursive /home/wekan/.meteor && \
\
# Check if opting for a release candidate instead of major release
if [ "$USE_EDGE" = false ]; then \
gosu wekan:wekan sh ./install_meteor.sh; \
else \
gosu wekan:wekan git clone --recursive --depth 1 -b release/METEOR@${METEOR_EDGE} git://github.com/meteor/meteor.git /home/wekan/.meteor && \
cd /home/wekan/packages && \
gosu wekan:wekan git clone --depth 1 -b master git://github.com/wekan/flow-router.git kadira-flow-router && \
gosu wekan:wekan git clone --depth 1 -b master git://github.com/meteor-useraccounts/core.git meteor-useraccounts-core && \
cd /home/wekan/.meteor && \
gosu wekan /home/wekan/.meteor/meteor -- help; \
fi && \
#if [ "$USE_EDGE" = false ]; then \
#gosu wekan:wekan sh /home/wekan/install_meteor.sh; \
# gosu wekan:wekan curl https://install.meteor.com/ | sh; \
#else \
# gosu wekan:wekan git clone --recursive --depth 1 -b release/METEOR@${METEOR_EDGE} https://github.com/meteor/meteor.git /home/wekan/.meteor; \
#fi; \
#\
# Get additional packages
#mkdir -p /home/wekan/app/packages && \
#chown wekan:wekan --recursive /home/wekan && \
# REPOS BELOW ARE INCLUDED TO WEKAN REPO
#cd /home/wekan/app/packages && \
#gosu wekan:wekan git clone --depth 1 -b master https://github.com/wekan/flow-router.git kadira-flow-router && \
#gosu wekan:wekan git clone --depth 1 -b master https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core && \
#gosu wekan:wekan git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-cas.git && \
#gosu wekan:wekan git clone --depth 1 -b master https://github.com/wekan/wekan-ldap.git && \
#gosu wekan:wekan git clone --depth 1 -b master https://github.com/wekan/wekan-scrollbar.git && \
#gosu wekan:wekan git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-oidc.git && \
#gosu wekan:wekan git clone --depth 1 -b master --recurse-submodules https://github.com/wekan/markdown.git && \
#gosu wekan:wekan mv meteor-accounts-oidc/packages/switch_accounts-oidc wekan-accounts-oidc && \
#gosu wekan:wekan mv meteor-accounts-oidc/packages/switch_oidc wekan-oidc && \
#gosu wekan:wekan rm -rf meteor-accounts-oidc && \
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; \
\
# extract the OpenAPI specification
#npm install -g api2html@0.3.3 && \
#mkdir -p /home/wekan/python && \
#chown wekan --recursive /home/wekan/python && \
#cd /home/wekan/python && \
#gosu wekan:wekan git clone --depth 1 -b master https://github.com/Kronuz/esprima-python && \
#cd /home/wekan/python/esprima-python && \
#python3 setup.py install --record files.txt && \
#cd /home/wekan/app && \
#mkdir -p /home/wekan/app/public/api && \
#chown wekan --recursive /home/wekan/app && \
#gosu wekan:wekan python3 ./openapi/generate_openapi.py --release $(git describe --tags --abbrev=0) > ./public/api/wekan.yml && \
#gosu wekan:wekan /opt/nodejs/bin/api2html -c ./public/logo-header.png -o ./public/api/wekan.html ./public/api/wekan.yml; \
# Build app
cd /home/wekan/app && \
gosu wekan /home/wekan/.meteor/meteor add standard-minifier-js && \
gosu wekan /home/wekan/.meteor/meteor npm install && \
gosu wekan /home/wekan/.meteor/meteor build --directory /home/wekan/app_build && \
mkdir -p /home/wekan/.npm && \
chown wekan --recursive /home/wekan/.npm /home/wekan/.config /home/wekan/.meteor && \
#gosu wekan:wekan /home/wekan/.meteor/meteor add standard-minifier-js && \
gosu wekan:wekan npm install && \
gosu wekan:wekan /home/wekan/.meteor/meteor build --directory /home/wekan/app_build && \
cp /home/wekan/app/fix-download-unicode/cfs_access-point.txt /home/wekan/app_build/bundle/programs/server/packages/cfs_access-point.js && \
chown wekan:wekan /home/wekan/app_build/bundle/programs/server/packages/cfs_access-point.js && \
gosu wekan sed -i "s|build\/Release\/bson|browser_build\/bson|g" /home/wekan/app_build/bundle/programs/server/npm/node_modules/meteor/cfs_gridfs/node_modules/mongodb/node_modules/bson/ext/index.js && \
cd /home/wekan/app_build/bundle/programs/server/npm/node_modules/meteor/npm-bcrypt && \
gosu wekan rm -rf node_modules/bcrypt && \
gosu wekan npm install bcrypt && \
#rm /home/wekan/app_build/bundle/programs/server/npm/node_modules/meteor/rajit_bootstrap3-datepicker/lib/bootstrap-datepicker/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs && \
chown wekan /home/wekan/app_build/bundle/programs/server/packages/cfs_access-point.js && \
#Removed binary version of bcrypt because of security vulnerability that is not fixed yet.
#https://github.com/wekan/wekan/commit/4b2010213907c61b0e0482ab55abb06f6a668eac
#https://github.com/wekan/wekan/commit/7eeabf14be3c63fae2226e561ef8a0c1390c8d3c
#cd /home/wekan/app_build/bundle/programs/server/npm/node_modules/meteor/npm-bcrypt && \
#gosu wekan:wekan rm -rf node_modules/bcrypt && \
#gosu wekan:wekan npm install bcrypt && \
#
# Delete phantomjs
#cd /home/wekan/app_build/bundle && \
#find . -name "*phantomjs*" | xargs rm -rf && \
#
cd /home/wekan/app_build/bundle/programs/server/ && \
gosu wekan npm install && \
gosu wekan:wekan npm install && \
#gosu wekan:wekan npm install bcrypt && \
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 /var/lib/apt/lists/* && \
rm -R /home/wekan/.meteor && \
rm -R /home/wekan/app && \
rm -R /home/wekan/app_build && \
rm /home/wekan/install_meteor.sh
rm -R /home/wekan/app_build
#cat /home/wekan/python/esprima-python/files.txt | xargs rm -R && \
#rm -R /home/wekan/python
#rm /home/wekan/install_meteor.sh
ENV PORT=80
ENV PORT=8080
EXPOSE $PORT
USER wekan
CMD ["node", "/build/main.js"]
+1 -1
View File
@@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2014-2016 The Wekan Team
Copyright (c) 2014-2019 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
+86 -61
View File
@@ -1,73 +1,98 @@
# 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)
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fwekan%2Fwekan.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fwekan%2Fwekan?ref=badge_shield)
Freenode IRC #wekan
## [Translate Wekan at Transifex](https://transifex.com/wekan/wekan)
[![Wekan chat][vanila_badge]][vanila_chat]
Translations to non-English languages are accepted only at [Transifex](https://transifex.com/wekan/wekan) using webbrowser.
New English strings of new features can be added as PRs to edge branch file wekan/i18n/en.i18n.json .
[Translate Wekan at Transifex][translate_wekan]
## [Wekan feature requests and bugs](https://github.com/wekan/wekan/issues)
[Open Hub analysis of Wekan code](https://www.openhub.net/p/wekan)
Please add most of your questions as GitHub issue: [Wekan feature requests and bugs](https://github.com/wekan/wekan/issues).
It's better than at chat where details get lost when chat scrolls up.
Please read [FAQ](https://github.com/wekan/wekan/wiki/FAQ).
Please don't feed the trolls and spammers that are mentioned in the FAQ :)
## Chat
[![Wekan Chat][vanila_badge]][wekan_chat] - Most Wekan community and developers are here. Works on webbrowser
and PWA app that can be added as icon on Android and bookmark on iOS, used like native app.
[Wekan IRC FAQ](https://github.com/wekan/wekan/wiki/IRC-FAQ)
## FAQ
**NOTE**:
- Please read the [FAQ](https://github.com/wekan/wekan/wiki/FAQ) first
- Please don't feed the trolls and spammers that are mentioned in the FAQ :)
## About Wekan
Wekan is an completely [Open Source][open_source] and [Free software][free_software]
collaborative kanban board application with MIT license.
Whether you’re maintaining a personal todo list, planning your holidays with
some friends, or working in a team on your next revolutionary idea, Kanban
boards are an unbeatable tool to keep your things organized. They give you a
visual overview of the current state of your project, and make you productive by
allowing you to focus on the few items that matter the most.
Wekan has real-time user interface. Not all features are implemented.
[Features][features]
Wekan supports many [Platforms][platforms], and plan is to add more.
[Integrations][integrations]
[Team](https://github.com/wekan/wekan/wiki/Team)
You don’t have to trust us with your data and can install Wekan on your own
computer or server. In fact we encourage you to do that by providing
one-click installation on various platforms.
## Roadmap
Upcoming Wekan App Development Platform will make possible
many use cases. If you don't find your feature or integration in
GitHub issues and [Features][features] or [Integrations][integrations]
page at wiki, please add them.
We are very welcoming to new developers and teams to submit new pull
requests to devel branch to make this Wekan App Development Platform possible
faster. Please see [Developer Documentation][dev_docs] to get started.
We also welcome sponsors for features, although we don't have any yet.
By working directly with Wekan you get the benefit of active maintenance
and new features added by growing Wekan developer community.
[Roadmap is self-hosted on Wekan][roadmap_wefork]
Roadmaps is not currently up-to-date. You can find more up-to-date
info from [Features][features] and [Integrations][integrations] pages,
where is links to [Wekan GitHub issues][wekan_issues] where actual
work happens.
## Screenshot
[![Screenshot of Wekan][screenshot_wefork]][roadmap_wefork]
Content is being copied from [old Wekan roadmap][roadmap_wekan] to
new one in process of merging Wefork back to Wekan.
Whether you’re maintaining a personal todo list, planning your holidays with some friends,
or working in a team on your next revolutionary idea, Kanban boards are an unbeatable tool
to keep your things organized. They give you a visual overview of the current state of your project,
and make you productive by allowing you to focus on the few items that matter the most.
Since Wekan is a free software, you don’t have to trust us with your data and can
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 13k users using Wekan in their company.
- Wekan has been [translated](https://transifex.com/wekan/wekan) to about 50 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.
## Requirements
- 64bit: Linux [Snap](https://github.com/wekan/wekan-snap/wiki/Install) or [Sandstorm](https://sandstorm.io) /
[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/devel/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/devel/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.
## Roadmap and Demo
[Roadmap][roadmap_wekan] - Public read-only board at Wekan demo.
[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/devel/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/).
We also welcome sponsors for features and bugfixes.
By working directly with Wekan you get the benefit of active maintenance and new features added by growing Wekan developer community.
## Screenshot
[More screenshots at Features page](https://github.com/wekan/wekan/wiki/Features)
[![Screenshot of Wekan][screenshot_wekan]][roadmap_wekan]
## License
Wekan is released under the very permissive [MIT license](LICENSE), and made
@@ -75,14 +100,11 @@ 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]: http://i.imgur.com/cI4jW2h.png
[screenshot_wefork]: http://i.imgur.com/lzvpeS9.png
[screenshot_wekan]: https://wekan.github.io/wekan-markdown.png
[features]: https://github.com/wekan/wekan/wiki/Features
[integrations]: https://github.com/wekan/wekan/wiki/Integrations
[roadmap_wekan]: http://try.wekan.io/b/MeSsFJaSqeuo9M6bs/wekan-roadmap
[roadmap_wefork]: https://wekan.indie.host/b/t2YaGmyXgNkppcFBq/wekan-fork-roadmap
[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
[wefork_issues]: https://github.com/wefork/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
@@ -91,4 +113,7 @@ with [Meteor](https://www.meteor.com).
[open_source]: https://en.wikipedia.org/wiki/Open-source_software
[free_software]: https://en.wikipedia.org/wiki/Free_software
[vanila_badge]: https://vanila.io/img/join-chat-button2.png
[vanila_chat]: https://chat.vanila.io/channel/wekan
[wekan_chat]: https://community.vanila.io/wekan
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fwekan%2Fwekan.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fwekan%2Fwekan?ref=badge_large)
+129
View File
@@ -0,0 +1,129 @@
Security is very important to us. If you discover any issue regarding security, please disclose
the information responsibly by sending an email to security (at) 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
at https://wekan.github.io/hall-of-fame . Others have just posted public GitHub issue,
so they are not at that hall-of-fame page.
## How should reports be formatted?
```
Name: %name
Twitter: %twitter
Bug type: %bugtype
Domain: %domain
Severity: %severity
URL: %url
PoC: %poc
CVSS (optional): %cvss
CWSS (optional): %cwss
```
## Who can participate in the program
Anyone who reports a unique security issue in scope and does not disclose it to
a third party before we have patched and updated may be upon their approval
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
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.
You can [Install Wekan](https://github.com/wekan/wekan/releases) to your own computer
and scan it's vulnerabilities there.
## About Wekan versions
There are only 2 versions of Wekan: Standalone Wekan, and Sandstorm Wekan.
### Standalone Wekan Security
Standalone Wekan includes all non-Sandstorm platforms. Some Standalone Wekan platforms
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 uses xss package for input fields like cards, as you can see from
[package.json](https://github.com/wekan/wekan/blob/devel/package.json). Other used versions can be seen from
[Meteor versions file](https://github.com/wekan/wekan/blob/devel/.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 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.
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/devel/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/).
[All Wekan Platforms](https://github.com/wekan/wekan/wiki/Platforms)
### Sandstorm Wekan Security
On Sandstorm platform using environment variable Standalone Wekan features like Admin Panel etc are
turned off, because Sandstorm platform provides SSO for all apps running on Sandstorm.
[Sandstorm](https://sandstorm.io) is separate Open Source platform that has been
[security audited](https://sandstorm.io/news/2017-03-02-security-review) and found bugs fixed.
Sandstorm also has passwordless login, LDAP, SAML, Google etc auth options already.
At Sandstorm code is read-only and signed by app maintainers, only grain content can be modified.
Wekan at Sandstorm runs in sandboxed grain, it does not have access elsewhere without user-visible
PowerBox request or opening randomly-generated API key URL.
Also read [Sandstorm Security Practices](https://docs.sandstorm.io/en/latest/using/security-practices/) and
[Sandstorm Security non-events](https://docs.sandstorm.io/en/latest/using/security-non-events/).
For Sandstorm specific security issues you can contact [kentonv](https://github.com/kentonv) by email.
## What Wekan bugs are eligible?
Any typical web security bugs. If any of the previously mentioned is somehow problematic and
a security issue, we'd like to know about it, and also how to fix it:
- Cross-site Scripting
- Open redirect
- Cross-site request forgery
- File inclusion
- Authentication bypass
- Server-side code execution
## What Wekan bugs are NOT eligible?
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/devel/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
- Social engineering
- Denial of service
- SSL BEAST/CRIME/etc. Wekan does not have SSL built-in, it uses Caddy/Nginx/Apache etc at front.
Integrated Caddy support is updated often.
- 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 .
## Bonus Points
If your Responsible Security Disclosure includes code for fixing security issue,
you get bonus points, as seen on [Hall of Fame](https://wekan.github.io/hall-of-fame).
+9
View File
@@ -0,0 +1,9 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v3.78.0"
files:
userUploads:
- README.md
userScripts:
build: stacksmith/user-scripts/build.sh
boot: stacksmith/user-scripts/boot.sh
run: stacksmith/user-scripts/run.sh
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "Wekan",
"description": "The open-source Trello-like kanban",
"description": "The open-source kanban",
"repository": "https://github.com/wekan/wekan",
"logo": "https://raw.githubusercontent.com/wekan/wekan/master/meta/icons/wekan-150.png",
"keywords": ["productivity", "tool", "team", "kanban"],
+103 -1
View File
@@ -14,6 +14,9 @@ template(name="boardActivities")
p.activity-desc
+memberName(user=user)
if($eq activityType 'deleteAttachment')
| {{{_ 'activity-delete-attach' cardLink}}}.
if($eq activityType 'addAttachment')
| {{{_ 'activity-attached' attachmentLink cardLink}}}.
@@ -31,6 +34,28 @@ template(name="boardActivities")
.activity-checklist(href="{{ card.absoluteUrl }}")
+viewer
= checklist.title
if($eq activityType 'removeChecklist')
| {{{_ 'activity-checklist-removed' cardLink}}}.
if($eq activityType 'checkedItem')
| {{{_ 'activity-checked-item' checkItem checklist.title cardLink}}}.
if($eq activityType 'uncheckedItem')
| {{{_ 'activity-unchecked-item' checkItem checklist.title cardLink}}}.
if($eq activityType 'checklistCompleted')
| {{{_ 'activity-checklist-completed' checklist.title cardLink}}}.
if($eq activityType 'checklistUncompleted')
| {{{_ 'activity-checklist-uncompleted' checklist.title cardLink}}}.
if($eq activityType 'addChecklistItem')
| {{{_ 'activity-checklist-item-added' checklist.title cardLink}}}.
.activity-checklist(href="{{ card.absoluteUrl }}")
+viewer
= checklistItem.title
if($eq activityType 'removedChecklistItem')
| {{{_ 'activity-checklist-item-removed' checklist.title cardLink}}}.
if($eq activityType 'archivedCard')
| {{{_ 'activity-archived' cardLink}}}.
@@ -38,15 +63,24 @@ template(name="boardActivities")
if($eq activityType 'archivedList')
| {{_ 'activity-archived' list.title}}.
if($eq activityType 'archivedSwimlane')
| {{_ 'activity-archived' swimlane.title}}.
if($eq activityType 'createBoard')
| {{_ 'activity-created' boardLabel}}.
if($eq activityType 'createCard')
| {{{_ 'activity-added' cardLink boardLabel}}}.
if($eq activityType 'createCustomField')
| {{_ 'activity-customfield-created' customField}}.
if($eq activityType 'createList')
| {{_ 'activity-added' list.title boardLabel}}.
if($eq activityType 'createSwimlane')
| {{_ 'activity-added' swimlane.title boardLabel}}.
if($eq activityType 'removeList')
| {{_ 'activity-removed' title boardLabel}}.
@@ -65,6 +99,9 @@ template(name="boardActivities")
else
| {{{_ 'activity-added' memberLink cardLink}}}.
if($eq activityType 'moveCardBoard')
| {{{_ 'activity-moved' cardLink oldBoardName boardName}}}.
if($eq activityType 'moveCard')
| {{{_ 'activity-moved' cardLink oldList.title list.title}}}.
@@ -74,6 +111,18 @@ template(name="boardActivities")
if($eq activityType 'restoredCard')
| {{{_ 'activity-sent' cardLink boardLabel}}}.
if($eq activityType 'addedLabel')
| {{{_ 'activity-added-label' lastLabel cardLink}}}.
if($eq activityType 'removedLabel')
| {{{_ 'activity-removed-label' lastLabel cardLink}}}.
if($eq activityType 'setCustomField')
| {{{_ 'activity-set-customfield' lastCustomField lastCustomFieldValue cardLink}}}.
if($eq activityType 'unsetCustomField')
| {{{_ 'activity-unset-customfield' lastCustomField cardLink}}}.
if($eq activityType 'unjoinMember')
if($eq user._id member._id)
| {{{_ 'activity-unjoined' cardLink}}}.
@@ -89,7 +138,7 @@ template(name="cardActivities")
p.activity-desc
+memberName(user=user)
if($eq activityType 'createCard')
| {{_ 'activity-added' cardLabel list.title}}.
| {{_ 'activity-added' cardLabel listName}}.
if($eq activityType 'importCard')
| {{{_ 'activity-imported' cardLabel list.title sourceLink}}}.
if($eq activityType 'joinMember')
@@ -104,20 +153,73 @@ template(name="cardActivities")
| {{{_ 'activity-removed' cardLabel memberLink}}}.
if($eq activityType 'archivedCard')
| {{_ 'activity-archived' cardLabel}}.
if($eq activityType 'addedLabel')
| {{{_ 'activity-added-label-card' lastLabel }}}.
if($eq activityType 'removedLabel')
| {{{_ 'activity-removed-label-card' lastLabel }}}.
if($eq activityType 'removeChecklist')
| {{{_ 'activity-checklist-removed' cardLabel}}}.
if($eq activityType 'checkedItem')
| {{{_ 'activity-checked-item-card' checkItem checklist.title }}}.
if($eq activityType 'uncheckedItem')
| {{{_ 'activity-unchecked-item-card' checkItem checklist.title }}}.
if($eq activityType 'checklistCompleted')
| {{{_ 'activity-checklist-completed-card' checklist.title }}}.
if($eq activityType 'checklistUncompleted')
| {{{_ 'activity-checklist-uncompleted-card' checklist.title }}}.
if($eq activityType 'restoredCard')
| {{_ 'activity-sent' cardLabel boardLabel}}.
if($eq activityType 'moveCard')
| {{_ 'activity-moved' cardLabel oldList.title list.title}}.
if($eq activityType 'moveCardBoard')
| {{{_ 'activity-moved' cardLink oldBoardName boardName}}}.
if($eq activityType 'addAttachment')
| {{{_ 'activity-attached' attachmentLink cardLabel}}}.
if attachment.isImage
img.attachment-image-preview(src=attachment.url)
if($eq activityType 'deleteAttachment')
| {{{_ 'activity-delete-attach' cardLabel}}}.
if($eq activityType 'removedChecklist')
| {{{_ 'activity-checklist-removed' cardLabel}}}.
if($eq activityType 'addChecklist')
| {{{_ 'activity-checklist-added' cardLabel}}}.
.activity-checklist
+viewer
= checklist.title
if($eq activityType 'addChecklistItem')
| {{{_ 'activity-checklist-item-added' checklist.title cardLink}}}.
.activity-checklist(href="{{ card.absoluteUrl }}")
+viewer
= checklistItem.title
if(currentData.timeKey)
| {{{_ activityType }}}
= ' '
i(title=currentData.timeValue).activity-meta {{ moment currentData.timeValue 'LLL' }}
if (currentData.timeOldValue)
= ' '
| {{{_ "previous_as" }}}
= ' '
i(title=currentData.timeOldValue).activity-meta {{ moment currentData.timeOldValue 'LLL' }}
= ' @'
else if(currentData.timeValue)
| {{{_ activityType currentData.timeValue}}}
if($eq activityType 'deleteComment')
| {{{_ 'activity-deleteComment' currentData.commentId}}}.
if($eq activityType 'editComment')
| {{{_ 'activity-editComment' currentData.commentId}}}.
if($eq activityType 'addComment')
+inlinedForm(classNames='js-edit-comment')
+editor(autofocus=true)
+123 -36
View File
@@ -8,16 +8,23 @@ BlazeComponent.extendComponent({
const sidebar = this.parentComponent(); // XXX for some reason not working
sidebar.callFirstWith(null, 'resetNextPeak');
this.autorun(() => {
const mode = this.data().mode;
let mode = this.data().mode;
const capitalizedMode = Utils.capitalize(mode);
const id = Session.get(`current${capitalizedMode}`);
let thisId, searchId;
if (mode === 'linkedcard' || mode === 'linkedboard') {
thisId = Session.get('currentCard');
searchId = Cards.findOne({ _id: thisId }).linkedId;
mode = mode.replace('linked', '');
} else {
thisId = Session.get(`current${capitalizedMode}`);
searchId = thisId;
}
const limit = this.page.get() * activitiesPerPage;
const user = Meteor.user();
const hideSystem = user ? user.hasHiddenSystemMessages() : false;
if (id === null)
return;
if (searchId === null) return;
this.subscribe('activities', mode, id, limit, hideSystem, () => {
this.subscribe('activities', mode, searchId, limit, hideSystem, () => {
this.loadNextPageLocked = false;
// If the sibear peak hasn't increased, that mean that there are no more
@@ -42,6 +49,12 @@ BlazeComponent.extendComponent({
}
},
checkItem() {
const checkItemId = this.currentData().checklistItemId;
const checkItem = ChecklistItems.findOne({ _id: checkItemId });
return checkItem.title;
},
boardLabel() {
return TAPi18n.__('this-board');
},
@@ -52,10 +65,60 @@ BlazeComponent.extendComponent({
cardLink() {
const card = this.currentData().card();
return card && Blaze.toHTML(HTML.A({
href: card.absoluteUrl(),
'class': 'action-card',
}, card.title));
return (
card &&
Blaze.toHTML(
HTML.A(
{
href: card.absoluteUrl(),
class: 'action-card',
},
card.title,
),
)
);
},
lastLabel() {
const lastLabelId = this.currentData().labelId;
if (!lastLabelId) return null;
const lastLabel = Boards.findOne(Session.get('currentBoard')).getLabelById(
lastLabelId,
);
if (lastLabel && (lastLabel.name === undefined || lastLabel.name === '')) {
return lastLabel.color;
} else {
return lastLabel.name;
}
},
lastCustomField() {
const lastCustomField = CustomFields.findOne(
this.currentData().customFieldId,
);
if (!lastCustomField) return null;
return lastCustomField.name;
},
lastCustomFieldValue() {
const lastCustomField = CustomFields.findOne(
this.currentData().customFieldId,
);
if (!lastCustomField) return null;
const value = this.currentData().value;
if (
lastCustomField.settings.dropdownItems &&
lastCustomField.settings.dropdownItems.length > 0
) {
const dropDownValue = _.find(
lastCustomField.settings.dropdownItems,
item => {
return item._id === value;
},
);
if (dropDownValue) return dropDownValue.name;
}
return value;
},
listLabel() {
@@ -64,11 +127,16 @@ BlazeComponent.extendComponent({
sourceLink() {
const source = this.currentData().source;
if(source) {
if(source.url) {
return Blaze.toHTML(HTML.A({
href: source.url,
}, source.system));
if (source) {
if (source.url) {
return Blaze.toHTML(
HTML.A(
{
href: source.url,
},
source.system,
),
);
} else {
return source.system;
}
@@ -85,31 +153,50 @@ BlazeComponent.extendComponent({
attachmentLink() {
const attachment = this.currentData().attachment();
// trying to display url before file is stored generates js errors
return attachment && attachment.url({ download: true }) && Blaze.toHTML(HTML.A({
href: FlowRouter.path(attachment.url({ download: true })),
target: '_blank',
}, attachment.name()));
return (
attachment &&
attachment.url({ download: true }) &&
Blaze.toHTML(
HTML.A(
{
href: attachment.url({ download: true }),
target: '_blank',
},
attachment.name(),
),
)
);
},
customField() {
const customField = this.currentData().customField();
if (!customField) return null;
return customField.name;
},
events() {
return [{
// XXX We should use Popup.afterConfirmation here
'click .js-delete-comment'() {
const commentId = this.currentData().commentId;
CardComments.remove(commentId);
return [
{
// XXX We should use Popup.afterConfirmation here
'click .js-delete-comment'() {
const commentId = this.currentData().commentId;
CardComments.remove(commentId);
},
'submit .js-edit-comment'(evt) {
evt.preventDefault();
const commentText = this.currentComponent()
.getValue()
.trim();
const commentId = Template.parentData().commentId;
if (commentText) {
CardComments.update(commentId, {
$set: {
text: commentText,
},
});
}
},
},
'submit .js-edit-comment'(evt) {
evt.preventDefault();
const commentText = this.currentComponent().getValue().trim();
const commentId = Template.parentData().commentId;
if (commentText) {
CardComments.update(commentId, {
$set: {
text: commentText,
},
});
}
},
}];
];
},
}).register('activities');
+10 -1
View File
@@ -1,10 +1,15 @@
@import 'nib'
.activity-title
margin: 0 0.5em 0.8em
display: flex
justify-content:space-between
.activities
clear: both
.activity
margin: 10px 0
margin: 0.5px 0
display: flex
.member
@@ -12,10 +17,14 @@
height: @width
.activity-desc
word-wrap: break-word
overflow: hidden
flex: 1
align-self: center
margin: 0
margin-left: 3px
overflow: hidden;
word-break: break-word;
.activity-comment
display: block
+40 -29
View File
@@ -14,38 +14,45 @@ BlazeComponent.extendComponent({
},
events() {
return [{
'click .js-new-comment:not(.focus)'() {
commentFormIsOpen.set(true);
return [
{
'submit .js-new-comment-form'(evt) {
const input = this.getInput();
const text = input.val().trim();
const card = this.currentData();
let boardId = card.boardId;
let cardId = card._id;
if (card.isLinkedCard()) {
boardId = Cards.findOne(card.linkedId).boardId;
cardId = card.linkedId;
}
if (text) {
CardComments.insert({
text,
boardId,
cardId,
});
resetCommentInput(input);
Tracker.flush();
autosize.update(input);
input.trigger('submitted');
}
evt.preventDefault();
},
// Pressing Ctrl+Enter should submit the form
'keydown form textarea'(evt) {
if (evt.keyCode === 13 && (evt.metaKey || evt.ctrlKey)) {
this.find('button[type=submit]').click();
}
},
},
'submit .js-new-comment-form'(evt) {
const input = this.getInput();
const text = input.val().trim();
if (text) {
CardComments.insert({
text,
boardId: this.currentData().boardId,
cardId: this.currentData()._id,
});
resetCommentInput(input);
Tracker.flush();
autosize.update(input);
}
evt.preventDefault();
},
// Pressing Ctrl+Enter should submit the form
'keydown form textarea'(evt) {
if (evt.keyCode === 13 && (evt.metaKey || evt.ctrlKey)) {
this.find('button[type=submit]').click();
}
},
}];
];
},
}).register('commentForm');
// XXX This should be a static method of the `commentForm` component
function resetCommentInput(input) {
input.val('');
input.val(''); // without manually trigger, input event won't be fired
input.blur();
commentFormIsOpen.set(false);
}
@@ -62,7 +69,8 @@ Tracker.autorun(() => {
});
});
EscapeActions.register('inlinedForm',
EscapeActions.register(
'inlinedForm',
() => {
const draftKey = {
fieldName: 'cardComment',
@@ -77,7 +85,10 @@ EscapeActions.register('inlinedForm',
}
resetCommentInput(commentInput);
},
() => { return commentFormIsOpen.get(); }, {
() => {
return commentFormIsOpen.get();
},
{
noClickEscapeOn: '.js-new-comment',
}
},
);
@@ -46,3 +46,23 @@
&:is-open
cursor: auto
.comment-item
background-color: #fff
border: 0
box-shadow: 0 1px 2px rgba(0, 0, 0, .23)
color: #8c8c8c
height: 36px
margin: 4px 4px 6px 0
width: 92%
&:hover
background: darken(white, 12%)
&.add-comment
display: flex
margin: 5px
a
display: block
margin: auto
+13 -5
View File
@@ -6,9 +6,17 @@ template(name="archivedBoards")
ul.archived-lists
each archivedBoards
li.archived-lists-item
button.js-restore-board
i.fa.fa-undo
| {{_ 'restore-board'}}
= title
div.board-header-btns
button.board-header-btn.js-delete-board
i.fa.fa-trash-o
| {{_ 'delete-board'}}
button.board-header-btn.js-restore-board
i.fa.fa-undo
| {{_ 'restore-board'}}
= title
else
li.no-items-message {{_ 'no-archived-board'}}
li.no-items-message {{_ 'no-archived-boards'}}
template(name="boardDeletePopup")
p {{_ 'delete-board-confirm-popup'}}
button.js-confirm.negate.full(type="submit") {{_ 'delete'}}
+36 -15
View File
@@ -1,27 +1,48 @@
Template.boardListHeaderBar.events({
'click .js-open-archived-board'() {
Modal.open('archivedBoards');
},
});
BlazeComponent.extendComponent({
onCreated() {
this.subscribe('archivedBoards');
},
archivedBoards() {
return Boards.find({ archived: true }, {
sort: ['title'],
});
return Boards.find(
{ archived: true },
{
sort: ['title'],
},
);
},
events() {
return [{
'click .js-restore-board'() {
const board = this.currentData();
board.restore();
Utils.goBoardId(board._id);
return [
{
'click .js-restore-board'() {
// TODO : Make isSandstorm variable global
const isSandstorm =
Meteor.settings &&
Meteor.settings.public &&
Meteor.settings.public.sandstorm;
if (isSandstorm && Session.get('currentBoard')) {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
currentBoard.archive();
}
const board = this.currentData();
board.restore();
Utils.goBoardId(board._id);
},
'click .js-delete-board': Popup.afterConfirm('boardDelete', function() {
Popup.close();
const isSandstorm =
Meteor.settings &&
Meteor.settings.public &&
Meteor.settings.public.sandstorm;
if (isSandstorm && Session.get('currentBoard')) {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
Boards.remove(currentBoard._id);
}
Boards.remove(this._id);
FlowRouter.go('home');
}),
},
}];
];
},
}).register('archivedBoards');
+21 -22
View File
@@ -6,38 +6,37 @@ template(name="board")
else
+boardBody
else
//- XXX We need a better error message in case the board has been archived
//-- XXX We need a better error message in case the board has been archived
+message(label="board-not-found")
//-- | {{goHome}}
else
+spinner
template(name="boardBody")
.board-wrapper(class=currentBoard.colorClass)
+sidebar
.board-canvas(
.board-canvas.js-swimlanes.js-perfect-scrollbar(
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}}")
if showOverlay.get
.board-overlay
.lists.js-lists
each currentBoard.lists
+list(this)
if currentCardIsInThisList
+cardDetails(currentCard)
if canSeeAddList
+addListForm
template(name="addListForm")
.list.js-list.list-composer.js-list-composer
.list-header
+inlinedForm(autoclose=false)
input.list-name-input.full-line(type="text" placeholder="{{_ 'add-list'}}"
autocomplete="off" autofocus)
.edit-controls.clearfix
button.primary.confirm(type="submit") {{_ 'save'}}
a.fa.fa-times-thin.js-close-inlined-form
if currentBoard.isTemplatesBoard
each currentBoard.swimlanes
+swimlane(this)
else if isViewSwimlanes
each currentBoard.swimlanes
+swimlane(this)
else if isViewLists
+listsGroup(currentBoard)
else if isViewCalendar
+calendarView
else
a.open-list-composer.js-open-inlined-form
i.fa.fa-plus
| {{_ 'add-list'}}
+listsGroup(currentBoard)
template(name="calendarView")
if isViewCalendar
.calendar-view.swimlane
if currentCard
+cardDetails(currentCard)
+fullcalendar(calendarOptions)
+380 -165
View File
@@ -1,9 +1,11 @@
import { Cookies } from 'meteor/ostrio:cookies';
const cookies = new Cookies();
const subManager = new SubsManager();
const { calculateIndex, enableClickOnTouch } = Utils;
const swimlaneWhileSortingHeight = 150;
BlazeComponent.extendComponent({
onCreated() {
this.draggingActive = new ReactiveVar(false);
this.showOverlay = new ReactiveVar(false);
this.isBoardReady = new ReactiveVar(false);
// The pattern we use to manually handle data loading is described here:
@@ -12,25 +14,278 @@ BlazeComponent.extendComponent({
// unfortunatly, Blaze doesn't have this notion.
this.autorun(() => {
const currentBoardId = Session.get('currentBoard');
if (!currentBoardId)
return;
const handle = subManager.subscribe('board', currentBoardId);
if (!currentBoardId) return;
const handle = subManager.subscribe('board', currentBoardId, false);
Tracker.nonreactive(() => {
Tracker.autorun(() => {
this.isBoardReady.set(handle.ready());
});
});
});
},
onlyShowCurrentCard() {
return Utils.isMiniScreen() && Session.get('currentCard');
},
goHome() {
FlowRouter.go('home');
},
}).register('board');
BlazeComponent.extendComponent({
onCreated() {
this.showOverlay = new ReactiveVar(false);
this.draggingActive = new ReactiveVar(false);
this._isDragging = false;
this._lastDragPositionX = 0;
// Used to set the overlay
this.mouseHasEnterCardDetails = false;
// fix swimlanes sort field if there are null values
const currentBoardData = Boards.findOne(Session.get('currentBoard'));
const nullSortSwimlanes = currentBoardData.nullSortSwimlanes();
if (nullSortSwimlanes.count() > 0) {
const swimlanes = currentBoardData.swimlanes();
let count = 0;
swimlanes.forEach(s => {
Swimlanes.update(s._id, {
$set: {
sort: count,
},
});
count += 1;
});
}
// fix lists sort field if there are null values
const nullSortLists = currentBoardData.nullSortLists();
if (nullSortLists.count() > 0) {
const lists = currentBoardData.lists();
let count = 0;
lists.forEach(l => {
Lists.update(l._id, {
$set: {
sort: count,
},
});
count += 1;
});
}
},
onRendered() {
const boardComponent = this;
const $swimlanesDom = boardComponent.$('.js-swimlanes');
$swimlanesDom.sortable({
tolerance: 'pointer',
appendTo: '.board-canvas',
helper(evt, item) {
const helper = $(`<div class="swimlane"
style="flex-direction: column;
height: ${swimlaneWhileSortingHeight}px;
width: $(boardComponent.width)px;
overflow: hidden;"/>`);
helper.append(item.clone());
// Also grab the list of lists of cards
const list = item.next();
helper.append(list.clone());
return helper;
},
items: '.swimlane:not(.placeholder)',
placeholder: 'swimlane placeholder',
distance: 7,
start(evt, ui) {
const listDom = ui.placeholder.next('.js-swimlane');
const parentOffset = ui.item.parent().offset();
ui.placeholder.height(ui.helper.height());
EscapeActions.executeUpTo('popup-close');
listDom.addClass('moving-swimlane');
boardComponent.setIsDragging(true);
ui.placeholder.insertAfter(ui.placeholder.next());
boardComponent.origPlaceholderIndex = ui.placeholder.index();
// resize all swimlanes + headers to be a total of 150 px per row
// this could be achieved by setIsDragging(true) but we want immediate
// result
ui.item
.siblings('.js-swimlane')
.css('height', `${swimlaneWhileSortingHeight - 26}px`);
// set the new scroll height after the resize and insertion of
// the placeholder. We want the element under the cursor to stay
// at the same place on the screen
ui.item.parent().get(0).scrollTop =
ui.placeholder.get(0).offsetTop + parentOffset.top - evt.pageY;
},
beforeStop(evt, ui) {
const parentOffset = ui.item.parent().offset();
const siblings = ui.item.siblings('.js-swimlane');
siblings.css('height', '');
// compute the new scroll height after the resize and removal of
// the placeholder
const scrollTop =
ui.placeholder.get(0).offsetTop + parentOffset.top - evt.pageY;
// then reset the original view of the swimlane
siblings.removeClass('moving-swimlane');
// and apply the computed scrollheight
ui.item.parent().get(0).scrollTop = scrollTop;
},
stop(evt, ui) {
// To attribute the new index number, we need to get the DOM element
// of the previous and the following card -- if any.
const prevSwimlaneDom = ui.item.prevAll('.js-swimlane').get(0);
const nextSwimlaneDom = ui.item.nextAll('.js-swimlane').get(0);
const sortIndex = calculateIndex(prevSwimlaneDom, nextSwimlaneDom, 1);
$swimlanesDom.sortable('cancel');
const swimlaneDomElement = ui.item.get(0);
const swimlane = Blaze.getData(swimlaneDomElement);
Swimlanes.update(swimlane._id, {
$set: {
sort: sortIndex.base,
},
});
boardComponent.setIsDragging(false);
},
sort(evt, ui) {
// get the mouse position in the sortable
const parentOffset = ui.item.parent().offset();
const cursorY =
evt.pageY - parentOffset.top + ui.item.parent().scrollTop();
// compute the intended index of the placeholder (we need to skip the
// slots between the headers and the list of cards)
const newplaceholderIndex = Math.floor(
cursorY / swimlaneWhileSortingHeight,
);
let destPlaceholderIndex = (newplaceholderIndex + 1) * 2;
// if we are scrolling far away from the bottom of the list
if (destPlaceholderIndex >= ui.item.parent().get(0).childElementCount) {
destPlaceholderIndex = ui.item.parent().get(0).childElementCount - 1;
}
// update the placeholder position in the DOM tree
if (destPlaceholderIndex !== ui.placeholder.index()) {
if (destPlaceholderIndex < boardComponent.origPlaceholderIndex) {
ui.placeholder.insertBefore(
ui.placeholder
.siblings()
.slice(destPlaceholderIndex - 2, destPlaceholderIndex - 1),
);
} else {
ui.placeholder.insertAfter(
ui.placeholder
.siblings()
.slice(destPlaceholderIndex - 1, destPlaceholderIndex),
);
}
}
},
});
// ugly touch event hotfix
enableClickOnTouch('.js-swimlane:not(.placeholder)');
this.autorun(() => {
let showDesktopDragHandles = false;
currentUser = Meteor.user();
if (currentUser) {
showDesktopDragHandles = (currentUser.profile || {})
.showDesktopDragHandles;
} else if (cookies.has('showDesktopDragHandles')) {
showDesktopDragHandles = true;
} else {
showDesktopDragHandles = false;
}
if (!Utils.isMiniScreen() && showDesktopDragHandles) {
$swimlanesDom.sortable({
handle: '.js-swimlane-header-handle',
});
} else if (!Utils.isMiniScreen() && !showDesktopDragHandles) {
$swimlanesDom.sortable({
handle: '.swimlane-header',
});
}
// Disable drag-dropping if the current user is not a board member or is miniscreen
$swimlanesDom.sortable('option', 'disabled', !userIsMember());
$swimlanesDom.sortable('option', 'disabled', Utils.isMiniScreen());
});
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) {
boardComponent.openNewListForm();
}
},
isViewSwimlanes() {
currentUser = Meteor.user();
if (currentUser) {
return (currentUser.profile || {}).boardView === 'board-view-swimlanes';
} else {
return cookies.get('boardView') === 'board-view-swimlanes';
}
},
isViewLists() {
currentUser = Meteor.user();
if (currentUser) {
return (currentUser.profile || {}).boardView === 'board-view-lists';
} else {
return cookies.get('boardView') === 'board-view-lists';
}
},
isViewCalendar() {
currentUser = Meteor.user();
if (currentUser) {
return (currentUser.profile || {}).boardView === 'board-view-cal';
} else {
return cookies.get('boardView') === 'board-view-cal';
}
},
openNewListForm() {
this.childComponents('addListForm')[0].open();
if (this.isViewSwimlanes()) {
this.childComponents('swimlane')[0]
.childComponents('addListAndSwimlaneForm')[0]
.open();
} else if (this.isViewLists()) {
this.childComponents('listsGroup')[0]
.childComponents('addListForm')[0]
.open();
}
},
events() {
return [
{
// XXX The board-overlay div should probably be moved to the parent
// component.
mouseup() {
if (this._isDragging) {
this._isDragging = false;
}
},
},
];
},
// XXX Flow components allow us to avoid creating these two setter methods by
@@ -41,172 +296,132 @@ BlazeComponent.extendComponent({
},
scrollLeft(position = 0) {
const lists = this.$('.js-lists');
lists && lists.animate({
scrollLeft: position,
});
},
currentCardIsInThisList() {
const currentCard = Cards.findOne(Session.get('currentCard'));
const listId = this.currentData()._id;
return currentCard && currentCard.listId === listId;
},
onlyShowCurrentCard() {
return Utils.isMiniScreen() && Session.get('currentCard');
},
events() {
return [{
// XXX The board-overlay div should probably be moved to the parent
// component.
'mouseenter .board-overlay'() {
if (this.mouseHasEnterCardDetails) {
this.showOverlay.set(false);
}
},
// Click-and-drag action
'mousedown .board-canvas'(evt) {
// Translating the board canvas using the click-and-drag action can
// conflict with the build-in browser mechanism to select text. We
// define a list of elements in which we disable the dragging because
// the user will legitimately expect to be able to select some text with
// his mouse.
const noDragInside = ['a', 'input', 'textarea', 'p', '.js-list-header'];
if ($(evt.target).closest(noDragInside.join(',')).length === 0 && $('.lists').prop('clientHeight') > evt.offsetY) {
this._isDragging = true;
this._lastDragPositionX = evt.clientX;
}
},
'mouseup'() {
if (this._isDragging) {
this._isDragging = false;
}
},
'mousemove'(evt) {
if (this._isDragging) {
// Update the canvas position
this.listsDom.scrollLeft -= evt.clientX - this._lastDragPositionX;
this._lastDragPositionX = evt.clientX;
// Disable browser text selection while dragging
evt.stopPropagation();
evt.preventDefault();
// Don't close opened card or inlined form at the end of the
// click-and-drag.
EscapeActions.executeUpTo('popup-close');
EscapeActions.preventNextClick();
}
},
}];
},
}).register('board');
Template.boardBody.onRendered(function() {
const self = BlazeComponent.getComponentForElement(this.firstNode);
self.listsDom = this.find('.js-lists');
if (!Session.get('currentCard')) {
self.scrollLeft();
}
// We want to animate the card details window closing. We rely on CSS
// transition for the actual animation.
self.listsDom._uihooks = {
removeElement(node) {
const removeNode = _.once(() => {
node.parentNode.removeChild(node);
const swimlanes = this.$('.js-swimlanes');
swimlanes &&
swimlanes.animate({
scrollLeft: position,
});
if ($(node).hasClass('js-card-details')) {
$(node).css({
flexBasis: 0,
padding: 0,
});
$(self.listsDom).one(CSSEvents.transitionend, removeNode);
} else {
removeNode();
}
},
};
},
$(self.listsDom).sortable({
tolerance: 'pointer',
helper: 'clone',
handle: '.js-list-header',
items: '.js-list:not(.js-list-composer)',
placeholder: 'list placeholder',
distance: 7,
start(evt, ui) {
ui.placeholder.height(ui.helper.height());
Popup.close();
},
stop() {
$(self.listsDom).find('.js-list:not(.js-list-composer)').each(
(i, list) => {
const data = Blaze.getData(list);
Lists.update(data._id, {
$set: {
sort: i,
},
});
}
);
},
});
function userIsMember() {
return Meteor.user() && Meteor.user().isBoardMember();
}
// Disable drag-dropping while in multi-selection mode, or if the current user
// is not a board member
self.autorun(() => {
const $listDom = $(self.listsDom);
if ($listDom.data('sortable')) {
$(self.listsDom).sortable('option', 'disabled',
MultiSelection.isActive() || !userIsMember());
}
});
// 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) {
self.openNewListForm();
}
});
scrollTop(position = 0) {
const swimlanes = this.$('.js-swimlanes');
swimlanes &&
swimlanes.animate({
scrollTop: position,
});
},
}).register('boardBody');
BlazeComponent.extendComponent({
// Proxy
open() {
this.childComponents('inlinedForm')[0].open();
onRendered() {
this.autorun(function() {
$('#calendar-view').fullCalendar('refetchEvents');
});
},
events() {
return [{
submit(evt) {
evt.preventDefault();
const titleInput = this.find('.list-name-input');
const title = titleInput.value.trim();
if (title) {
Lists.insert({
calendarOptions() {
return {
id: 'calendar-view',
defaultView: 'agendaDay',
editable: true,
timezone: 'local',
header: {
left: 'title today prev,next',
center:
'agendaDay,listDay,timelineDay agendaWeek,listWeek,timelineWeek month,timelineMonth timelineYear',
right: '',
},
// height: 'parent', nope, doesn't work as the parent might be small
height: 'auto',
/* TODO: lists as resources: https://fullcalendar.io/docs/vertical-resource-view */
navLinks: true,
nowIndicator: true,
businessHours: {
// days of week. an array of zero-based day of week integers (0=Sunday)
dow: [1, 2, 3, 4, 5], // Monday - Friday
start: '8:00',
end: '18:00',
},
locale: TAPi18n.getLanguage(),
events(start, end, timezone, callback) {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
const events = [];
const pushEvent = function(card, title, start, end, extraCls) {
start = start || card.startAt;
end = end || card.endAt;
title = title || card.title;
const className =
(extraCls ? `${extraCls} ` : '') +
(card.color ? `calendar-event-${card.color}` : '');
events.push({
id: card._id,
title,
boardId: Session.get('currentBoard'),
sort: $('.list').length,
start,
end: end || card.endAt,
allDay:
Math.abs(end.getTime() - start.getTime()) / 1000 === 24 * 3600,
url: FlowRouter.url('card', {
boardId: currentBoard._id,
slug: currentBoard.slug,
cardId: card._id,
}),
className,
});
};
currentBoard
.cardsInInterval(start.toDate(), end.toDate())
.forEach(function(card) {
pushEvent(card);
});
currentBoard
.cardsDueInBetween(start.toDate(), end.toDate())
.forEach(function(card) {
pushEvent(
card,
`${card.title} ${TAPi18n.__('card-due')}`,
card.dueAt,
new Date(card.dueAt.getTime() + 36e5),
);
});
events.sort(function(first, second) {
return first.id > second.id ? 1 : -1;
});
callback(events);
},
eventResize(event, delta, revertFunc) {
let isOk = false;
const card = Cards.findOne(event.id);
titleInput.value = '';
titleInput.focus();
if (card) {
card.setEnd(event.end.toDate());
isOk = true;
}
if (!isOk) {
revertFunc();
}
},
}];
eventDrop(event, delta, revertFunc) {
let isOk = false;
const card = Cards.findOne(event.id);
if (card) {
// TODO: add a flag for allDay events
if (!event.allDay) {
card.setStart(event.start.toDate());
card.setEnd(event.end.toDate());
isOk = true;
}
}
if (!isOk) {
revertFunc();
}
},
};
},
}).register('addListForm');
Template.boardBody.helpers({
canSeeAddList() {
return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly();
isViewCalendar() {
currentUser = Meteor.user();
if (currentUser) {
return (currentUser.profile || {}).boardView === 'board-view-cal';
} else {
return cookies.get('boardView') === 'board-view-cal';
}
},
});
}).register('calendarView');
+101 -13
View File
@@ -1,8 +1,11 @@
@import 'nib'
position()
if arguments[0] == cover
position: absolute
if arguments[0] == cover || arguments[0] == fixed-cover
if arguments[0] == cover
position: absolute
else
position: fixed
left: 0
right: 0
top: 0
@@ -12,26 +15,19 @@ position()
.board-wrapper
position: cover
overflow-x: hidden
overflow-y: hidden
.board-canvas
position: cover
transition: margin .1s
overflow-y: auto
&.is-sibling-sidebar-open
margin-right: 248px
.lists
align-items: flex-start
display: flex
flex-direction: row
margin: 0 0 10px
padding: 0 40px 5px 0
overflow-x: auto
overflow-y: hidden
position: cover
.board-overlay
position: cover
position: fixed-cover
top: -100px
right: -400px
background: black
@@ -43,3 +39,95 @@ position()
.open-minicard-composer,
.minicard-wrapper.is-checked
display: none
@media screen and (max-width: 800px)
.board-wrapper
.board-canvas
.swimlane
border-bottom: 1px solid #CCC
display: flex
flex-direction: column
margin: 0
padding: 0 0px 0px 0
overflow-x: hidden
overflow-y: auto
calendar-event-color(background, borderColor, color...)
background: background !important
border-color: borderColor
if color
color: color !important //overwrite text for better visibility
.calendar-event-green
calendar-event-color(#3cb500, #2a8000, #ffffff) //White text for better visibility
.calendar-event-yellow
calendar-event-color(#fad900, #c7ac00, #000) //Black text for better visibility
.calendar-event-orange
calendar-event-color(#ff9f19, #cc7c14, #000) //Black text for better visibility
.calendar-event-red
calendar-event-color(#eb4646, #b83737, #ffffff) //White text for better visibility
.calendar-event-purple
calendar-event-color(#a632db, #7d26a6, #ffffff) //White text for better visibility
.calendar-event-blue
calendar-event-color(#0079bf, #005a8a, #ffffff) //White text for better visibility
.calendar-event-pink
calendar-event-color(#ff78cb, #cc62a3, #000) //Black text for better visibility
.calendar-event-sky
calendar-event-color(#00c2e0, #0094ab, #ffffff) //White text for better visibility
.calendar-event-black
calendar-event-color(#4d4d4d, #1a1a1a, #ffffff) //White text for better visibility
.calendar-event-lime
calendar-event-color(#51e898, #3eb375, #000) //Black text for better visibility
.calendar-event-silver
calendar-event-color(#c0c0c0, #8c8c8c, #000) //Black text for better visibility
.calendar-event-peachpuff
calendar-event-color(#ffdab9, #ccaf95, #000) //Black text for better visibility
.calendar-event-crimson
calendar-event-color(#dc143c, #a8112f, #ffffff) //White text for better visibility
.calendar-event-plum
calendar-event-color(#dda0dd, #a87ba8, #000) //Black text for better visibility
.calendar-event-darkgreen
calendar-event-color(#006400, #003000, #ffffff) //White text for better visibility
.calendar-event-slateblue
calendar-event-color(#6a5acd, #4f4399, #ffffff) //White text for better visibility
.calendar-event-magenta
calendar-event-color(#ff00ff, #cc00cc, #ffffff) //White text for better visibility
.calendar-event-gold
calendar-event-color(#ffd700, #ccaa00, #000) //Black text for better visibility
.calendar-event-navy
calendar-event-color(#000080, #000033, #ffffff) //White text for better visibility
.calendar-event-gray
calendar-event-color(#808080, #333333, #ffffff) //White text for better visibility
.calendar-event-saddlebrown
calendar-event-color(#8b4513, #572b0c, #ffffff) //White text for better visibility
.calendar-event-paleturquoise
calendar-event-color(#afeeee, #8ababa, #000) //Black text for better visibility
.calendar-event-mistyrose
calendar-event-color(#ffe4e1, #ccb8b6, #000) //Black text for better visibility
.calendar-event-indigo
calendar-event-color(#4b0082, #2b004d, #ffffff) //White text for better visibility
+220
View File
@@ -51,11 +51,25 @@ setBoardColor(color)
&:not(.is-checked) + .minicard:hover:not(.minicard-composer)
background: lighten(color, 97%)
.toggle-label
&:after
background-color: darken(color, 20%)
.toggle-switch:checked ~ .toggle-label
background-color: lighten(color, 20%)
&:after
background-color: darken(color, 20%)
@media screen and (max-width: 800px)
&.pop-over .header
background: color
color: white
&#header ul li.current, &#header-quick-access ul li.current
border-bottom: 4px solid lighten(color, 20%)
.board-color-nephritis
setBoardColor(#27AE60)
@@ -73,3 +87,209 @@ setBoardColor(color)
.board-color-pumpkin
setBoardColor(#E67E22)
.board-color-moderatepink
setBoardColor(#CD5A91)
.board-color-strongcyan
setBoardColor(#00AECC)
.board-color-limegreen
setBoardColor(#4BBF6B)
.board-color-dark
setBoardColor(#2C3E51)
/* Not hidden in dark mode.
card fields: received, start, due, end, members, requested, assigned
.card-details-item.card-details-item-received,
.card-details-item.card-details-item-start,
.card-details-item.card-details-item-due,
.card-details-item.card-details-item-end,
.card-details-item.card-details-item-members,
.card-details-item.card-details-item-name { display:none; }
.card-details-items:empty { display:none; }
*/
// DARK MODE, when dark background mode selected.
// Modified version from https://github.com/wekan/wekan/wiki/Custom-CSS-themes#dark-theme
// In progress, please send pull requests to fix remaining visibility issues.
.ui-sortable,
.swimlane,
.swimlane >.swimlane-header-wrap,
.swimlane >.list.js-list,
.swimlane >.list-composer.js-list-composer,
.list-body,
.list,
.list-composer,
.sidebar-content,
.card-details
background-color:#2C3E50
.card-details h3,
.card-details-items,
.card-checklist-items .ui-sortable,
.card-subtasks-items,
.activities,
.material-toggle-switch
color:#bbbbbb
.list-header
background-color: #888888
.board-widget,
.board-widget-labels,
.board-widget-members
color: #aaaaaa
/* popup menu titles (boards, swimlanes, lists, cards, labels) */
.pop-over >.header
display:none;
/* HIDE UNTIL HOVER -------------------------------------------------- */
/* header "+" button */
#header-quick-access .fa-plus
display:none
#header-quick-access:hover .fa-plus
display:inherit
/* "add card" links (use visibility rather than display so items don't jump) */
.open-minicard-composer
visibility:hidden
.list.js-list:hover .open-minicard-composer
visibility:visible
.list-header-menu
visibility:hidden
.list.js-list:hover .list-header-menu
visibility:visible
/* "add list/swimlane" links (use visibility rather than display so items don't jump) */
.list.js-list-composer >.list-header
visibility:hidden
.list.js-list-composer:hover >.list-header
visibility:visible
/* headers */
#header-quick-access, #header
background-color:rgba(0,0,0,.75) !important
#header .board-header-btn:hover
background-color:rgba(255,255,255,0.3) !important
/* foregrounds: swimlanes, lists */
.list >.list-header, .swimlane-header
color:rgba(255,255,255,.7)
/* minicards */
.minicard
background-color:rgba(255,255,255,.4)
.minicard-wrapper.is-selected .minicard,
.minicard:hover,
.minicard-composer.js-composer,
.open-minicard-composer:hover
background-color:rgba(255,255,255,.8) !important
color:#000
.minicard, .minicard .badge
color:#fff
.minicard:hover .badge, .minicard-wrapper.is-selected .badge
color:#000
/* cards */
.card-details .card-details-header
background-color:#ccc
/* sidebar */
.sidebar-tongue, .sidebar-shadow
background-color:#666 !important
.sidebar-content h3, .sidebar-content h2, .sidebar-content
color:rgba(255,255,255,.7) !important
.board-color-relax
setBoardColor(#27AE61)
// RELAX MODE: light green background, with green background color,
// to help this theme users to relax.
// Colors and emphasis are specific to this Wekan theme contributor's company.
.ui-sortable
background-color:#a7e366
.list-header
background-color:#a7e366
border-bottom: 6px solid #a7e366
.list-body
background-color:#a7e366
.list
border-left: 1px dotted #000000
// Card details text emphasis: black border and white background
// to make it details text field easier to find for RELAX MODE users,
// and focus attention.
.card-details .card-details-items
& ~ .js-open-inlined-form
.viewer
background-color #ffffff !important
padding 15px !important
border 1px solid #000000 !important
word-wrap: break-word
// When card has comment, emphasis on minicard:
// bigger red comment icon and number of comments,
// to make it easier notice card comments and focus attention.
.minicard .badges .badge
.badge-icon,
.badge-text
&.badge-comment
display: block
border-radius: 4px
padding: 1px 3px
margin-bottom: 0.3rem
color: #ff0000
background-color: #ffffff
font-weight: bold
font-size: 11pt
.board-color-corteza
setBoardColor(#568BA2)
/*
Wekan for Corteza https://cortezaproject.org
Theme to match Corteza colors from:
https://github.com/cortezaproject/corteza-webapp-messaging/blob/master/src/assets/sass/variables.scss
// Paths
$fonts_dir : './assets/fonts/';
$icomoon-font-path: $fonts_dir + 'icomoon' !default;
$icomoon-font-family: "icomoon" !default;
// Typography
$regular: 'nunito_sansregular';
$bold: 'nunito_sansbold';
$semibold: 'nunito_sanssemibold';
// Color system
$white: #fff !default;
$black: #000 !default;
$primary: #568ba2;
$secondary: #90A3B1;
$success: #719430;
$warning: #F5D380;
$danger: #E85568;
$light: #F3F3F5;
$dark: #1e2224;
$currentmymessagebgcolor : #a7d0e3;
*/
//.header-quick-access
// backgroud-color: #568ba2
+140 -86
View File
@@ -2,75 +2,85 @@ template(name="boardHeaderBar")
h1.header-board-menu
with currentBoard
a(class="{{#if currentUser.isBoardAdmin}}js-edit-board-title{{else}}is-disabled{{/if}}")
= title
+viewer
= title
.board-header-btns.left
unless isMiniScreen
unless isSandstorm
if currentBoard
if currentUser
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'}}")
i.fa(class="fa-star{{#unless isStarred}}-o{{/unless}}")
if showStarCounter
span
= currentBoard.stars
if currentBoard
if currentUser
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'}}")
i.fa(class="fa-star{{#unless isStarred}}-o{{/unless}}")
if showStarCounter
span
= currentBoard.stars
a.board-header-btn(
class="{{#if currentUser.isBoardAdmin}}js-change-visibility{{else}}is-disabled{{/if}}"
title="{{_ currentBoard.permission}}")
i.fa(class="{{#if currentBoard.isPublic}}fa-globe{{else}}fa-lock{{/if}}")
span {{_ currentBoard.permission}}
a.board-header-btn(
class="{{#if currentUser.isBoardAdmin}}js-change-visibility{{else}}is-disabled{{/if}}"
title="{{_ currentBoard.permission}}")
i.fa(class="{{#if currentBoard.isPublic}}fa-globe{{else}}fa-lock{{/if}}")
span {{_ currentBoard.permission}}
a.board-header-btn.js-watch-board(
title="{{_ watchLevel }}")
if $eq watchLevel "watching"
i.fa.fa-eye
if $eq watchLevel "tracking"
i.fa.fa-bell
if $eq watchLevel "muted"
i.fa.fa-bell-slash
span {{_ watchLevel}}
a.board-header-btn.js-watch-board(
title="{{_ watchLevel }}")
if $eq watchLevel "watching"
i.fa.fa-eye
if $eq watchLevel "tracking"
i.fa.fa-bell
if $eq watchLevel "muted"
i.fa.fa-bell-slash
span {{_ watchLevel}}
else
a.board-header-btn.js-log-in(
title="{{_ 'log-in'}}")
i.fa.fa-sign-in
span {{_ 'log-in'}}
else
a.board-header-btn.js-log-in(
title="{{_ 'log-in'}}")
i.fa.fa-sign-in
span {{_ 'log-in'}}
.board-header-btns.right
if currentBoard
if isMiniScreen
unless isSandstorm
if currentUser
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'}}")
i.fa(class="fa-star{{#unless isStarred}}-o{{/unless}}")
if showStarCounter
span
= currentBoard.stars
if currentUser
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'}}")
i.fa(class="fa-star{{#unless isStarred}}-o{{/unless}}")
if showStarCounter
span
= currentBoard.stars
a.board-header-btn(
class="{{#if currentUser.isBoardAdmin}}js-change-visibility{{else}}is-disabled{{/if}}"
title="{{_ currentBoard.permission}}")
i.fa(class="{{#if currentBoard.isPublic}}fa-globe{{else}}fa-lock{{/if}}")
span {{_ currentBoard.permission}}
a.board-header-btn(
class="{{#if currentUser.isBoardAdmin}}js-change-visibility{{else}}is-disabled{{/if}}"
title="{{_ currentBoard.permission}}")
i.fa(class="{{#if currentBoard.isPublic}}fa-globe{{else}}fa-lock{{/if}}")
span {{_ currentBoard.permission}}
a.board-header-btn.js-watch-board(
title="{{_ watchLevel }}")
if $eq watchLevel "watching"
i.fa.fa-eye
if $eq watchLevel "tracking"
i.fa.fa-bell
if $eq watchLevel "muted"
i.fa.fa-bell-slash
span {{_ watchLevel}}
a.board-header-btn.js-watch-board(
title="{{_ watchLevel }}")
if $eq watchLevel "watching"
i.fa.fa-eye
if $eq watchLevel "tracking"
i.fa.fa-bell
if $eq watchLevel "muted"
i.fa.fa-bell-slash
span {{_ watchLevel}}
else
a.board-header-btn.js-log-in(
title="{{_ 'log-in'}}")
i.fa.fa-sign-in
span {{_ 'log-in'}}
else
a.board-header-btn.js-log-in(
title="{{_ 'log-in'}}")
i.fa.fa-sign-in
span {{_ 'log-in'}}
if isSandstorm
if currentUser
a.board-header-btn.js-open-archived-board
i.fa.fa-archive
span {{_ 'archives'}}
//if showSort
// a.board-header-btn.js-open-sort-view(title="{{_ 'sort-desc'}}")
// i.fa(class="{{directionClass}}")
// span {{_ 'sort'}}{{_ listSortShortDesc}}
a.board-header-btn.js-open-filter-view(
title="{{#if Filter.isActive}}{{_ 'filter-on-desc'}}{{else}}{{_ 'filter'}}{{/if}}"
@@ -81,6 +91,22 @@ template(name="boardHeaderBar")
a.board-header-btn-close.js-filter-reset(title="{{_ 'filter-clear'}}")
i.fa.fa-times-thin
a.board-header-btn.js-open-search-view(title="{{_ 'search'}}")
i.fa.fa-search
span {{_ 'search'}}
unless currentBoard.isTemplatesBoard
a.board-header-btn.js-toggle-board-view(
title="{{_ 'board-view'}}")
i.fa.fa-caret-down
if $eq boardView 'board-view-lists'
i.fa.fa-trello
if $eq boardView 'board-view-swimlanes'
i.fa.fa-th-large
if $eq boardView 'board-view-cal'
i.fa.fa-calendar
span {{#if boardView}}{{_ boardView}}{{else}}{{_ 'board-view-lists'}}{{/if}}
if canModifyBoard
a.board-header-btn.js-multiselection-activate(
title="{{#if MultiSelection.isActive}}{{_ 'multi-selection-on'}}{{else}}{{_ 'multi-selection'}}{{/if}}"
@@ -92,26 +118,8 @@ template(name="boardHeaderBar")
i.fa.fa-times-thin
.separator
a.board-header-btn.js-open-board-menu(title="{{_ 'boardMenuPopup-title'}}")
i.board-header-btn-icon.fa.fa-navicon
template(name="boardMenuPopup")
ul.pop-over-list
li: a.js-open-archives {{_ 'archived-items'}}
if currentUser.isBoardAdmin
li: a.js-change-board-color {{_ 'board-change-color'}}
//-
XXX Language should be handled by sandstorm, but for now display a
language selection link in the board menu. This link is normally present
in the header bar that is not displayed on sandstorm.
if isSandstorm
li: a.js-change-language {{_ 'language'}}
unless isSandstorm
if currentUser.isBoardAdmin
hr
ul.pop-over-list
li: a(href="{{exportUrl}}", download="{{exportFilename}}") {{_ 'export-board'}}
li: a.js-archive-board {{_ 'archive-board'}}
a.board-header-btn.js-toggle-sidebar
i.fa.fa-navicon
template(name="boardVisibilityList")
ul.pop-over-list
@@ -162,13 +170,43 @@ template(name="boardChangeWatchPopup")
i.fa.fa-check
span.sub-name {{_ 'muted-info'}}
template(name="boardChangeColorPopup")
.board-backgrounds-list.clearfix
each backgroundColors
.board-background-select.js-select-background
span.background-box(class="board-color-{{this}}")
if isSelected
template(name="boardChangeViewPopup")
ul.pop-over-list
li
with "board-view-lists"
a.js-open-lists-view
i.fa.fa-trello.colorful
| {{_ 'board-view-lists'}}
if $eq Utils.boardView "board-view-lists"
i.fa.fa-check
li
with "board-view-swimlanes"
a.js-open-swimlanes-view
i.fa.fa-th-large.colorful
| {{_ 'board-view-swimlanes'}}
if $eq Utils.boardView "board-view-swimlanes"
i.fa.fa-check
li
with "board-view-cal"
a.js-open-cal-view
i.fa.fa-calendar.colorful
| {{_ 'board-view-cal'}}
if $eq Utils.boardView "board-view-cal"
i.fa.fa-check
if currentUser.isAdmin
hr
li
with "board-view-rules"
a.js-open-rules-view(title="{{_ 'rules'}}")
i.fa.fa-magic
| {{_ 'rules'}}
else if currentUser.isBoardAdmin
hr
li
with "board-view-rules"
a.js-open-rules-view(title="{{_ 'rules'}}")
i.fa.fa-magic
| {{_ 'rules'}}
template(name="createBoard")
form
@@ -191,19 +229,35 @@ template(name="createBoard")
input.primary.wide(type="submit" value="{{_ 'create'}}")
span.quiet
| {{_ 'or'}}
a(href="{{pathFor 'import'}}") {{_ 'import-board'}}
a.js-import-board {{_ 'import'}}
span.quiet
| /
a.js-board-template {{_ 'template'}}
//template(name="listsortPopup")
// h2
// | {{_ 'list-sort-by'}}
// hr
// ul.pop-over-list
// each value in allowedSortValues
// li
// a.js-sort-by(name="{{value.name}}")
// if $eq sortby value.name
// i(class="fa {{Direction}}")
// | {{_ value.label }}{{_ value.shortLabel}}
// if $eq sortby value.name
// i(class="fa fa-check")
template(name="boardChangeTitlePopup")
form
label
| {{_ 'title'}}
input.js-board-name(type="text" value=title autofocus)
input.js-board-name(type="text" value=title autofocus dir="auto")
label
| {{_ 'description'}}
textarea.js-board-desc= description
textarea.js-board-desc(dir="auto")= description
input.primary.wide(type="submit" value="{{_ 'rename'}}")
template(name="archiveBoardPopup")
template(name="boardCreateRulePopup")
p {{_ 'close-board-pop'}}
button.js-confirm.negate.full(type="submit") {{_ 'archive'}}
+245 -84
View File
@@ -1,5 +1,13 @@
/*
const DOWNCLS = 'fa-sort-down';
const UPCLS = 'fa-sort-up';
*/
Template.boardMenuPopup.events({
'click .js-rename-board': Popup.open('boardChangeTitle'),
'click .js-custom-fields'() {
Sidebar.setView('customFields');
Popup.close();
},
'click .js-open-archives'() {
Sidebar.setView('archives');
Popup.close();
@@ -13,6 +21,16 @@ Template.boardMenuPopup.events({
// 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.close();
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'),
});
Template.boardMenuPopup.helpers({
@@ -32,15 +50,21 @@ Template.boardMenuPopup.helpers({
});
Template.boardChangeTitlePopup.events({
submit(evt, tpl) {
const newTitle = tpl.$('.js-board-name').val().trim();
const newDesc = tpl.$('.js-board-desc').val().trim();
submit(event, templateInstance) {
const newTitle = templateInstance
.$('.js-board-name')
.val()
.trim();
const newDesc = templateInstance
.$('.js-board-desc')
.val()
.trim();
if (newTitle) {
this.rename(newTitle);
this.setDescription(newDesc);
Popup.close();
}
evt.preventDefault();
event.preventDefault();
},
});
@@ -56,78 +80,122 @@ BlazeComponent.extendComponent({
return user && user.hasStarred(boardId);
},
isMiniScreen() {
return Utils.isMiniScreen();
},
// Only show the star counter if the number of star is greater than 2
showStarCounter() {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
return currentBoard && currentBoard.stars >= 2;
},
/*
showSort() {
return Meteor.user().hasSortBy();
},
directionClass() {
return this.currentDirection() === -1 ? DOWNCLS : UPCLS;
},
changeDirection() {
const direction = 0 - this.currentDirection() === -1 ? '-' : '';
Meteor.call('setListSortBy', direction + this.currentListSortBy());
},
currentDirection() {
return Meteor.user().getListSortByDirection();
},
currentListSortBy() {
return Meteor.user().getListSortBy();
},
listSortShortDesc() {
return `list-label-short-${this.currentListSortBy()}`;
},
*/
events() {
return [{
'click .js-edit-board-title': Popup.open('boardChangeTitle'),
'click .js-star-board'() {
Meteor.user().toggleBoardStar(Session.get('currentBoard'));
return [
{
'click .js-edit-board-title': Popup.open('boardChangeTitle'),
'click .js-star-board'() {
Meteor.user().toggleBoardStar(Session.get('currentBoard'));
},
'click .js-open-board-menu': Popup.open('boardMenu'),
'click .js-change-visibility': Popup.open('boardChangeVisibility'),
'click .js-watch-board': Popup.open('boardChangeWatch'),
'click .js-open-archived-board'() {
Modal.open('archivedBoards');
},
'click .js-toggle-board-view': Popup.open('boardChangeView'),
'click .js-toggle-sidebar'() {
Sidebar.toggle();
},
'click .js-open-filter-view'() {
Sidebar.setView('filter');
},
/*
'click .js-open-sort-view'(evt) {
const target = evt.target;
if (target.tagName === 'I') {
// click on the text, popup choices
this.changeDirection();
} else {
// change the sort order
Popup.open('listsort')(evt);
}
},
*/
'click .js-filter-reset'(event) {
event.stopPropagation();
Sidebar.setView();
Filter.reset();
},
'click .js-open-search-view'() {
Sidebar.setView('search');
},
'click .js-multiselection-activate'() {
const currentCard = Session.get('currentCard');
MultiSelection.activate();
if (currentCard) {
MultiSelection.add(currentCard);
}
},
'click .js-multiselection-reset'(event) {
event.stopPropagation();
MultiSelection.disable();
},
'click .js-log-in'() {
FlowRouter.go('atSignIn');
},
},
'click .js-open-board-menu': Popup.open('boardMenu'),
'click .js-change-visibility': Popup.open('boardChangeVisibility'),
'click .js-watch-board': Popup.open('boardChangeWatch'),
'click .js-open-filter-view'() {
Sidebar.setView('filter');
},
'click .js-filter-reset'(evt) {
evt.stopPropagation();
Sidebar.setView();
Filter.reset();
},
'click .js-multiselection-activate'() {
const currentCard = Session.get('currentCard');
MultiSelection.activate();
if (currentCard) {
MultiSelection.add(currentCard);
}
},
'click .js-multiselection-reset'(evt) {
evt.stopPropagation();
MultiSelection.disable();
},
'click .js-log-in'() {
FlowRouter.go('atSignIn');
},
}];
];
},
}).register('boardHeaderBar');
Template.boardHeaderBar.helpers({
canModifyBoard() {
return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly();
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly()
);
},
boardView() {
return Utils.boardView();
},
});
BlazeComponent.extendComponent({
backgroundColors() {
return Boards.simpleSchema()._schema.color.allowedValues;
Template.boardChangeViewPopup.events({
'click .js-open-lists-view'() {
Utils.setBoardView('board-view-lists');
Popup.close();
},
isSelected() {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
return currentBoard.color === this.currentData().toString();
'click .js-open-swimlanes-view'() {
Utils.setBoardView('board-view-swimlanes');
Popup.close();
},
events() {
return [{
'click .js-select-background'(evt) {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
const newColor = this.currentData().toString();
currentBoard.setColor(newColor);
evt.preventDefault();
},
}];
'click .js-open-cal-view'() {
Utils.setBoardView('board-view-cal');
Popup.close();
},
}).register('boardChangeColorPopup');
'click .js-open-rules-view'() {
Modal.openWide('rulesMain');
Popup.close();
},
});
const CreateBoard = BlazeComponent.extendComponent({
template() {
@@ -153,38 +221,49 @@ const CreateBoard = BlazeComponent.extendComponent({
this.visibilityMenuIsOpen.set(!this.visibilityMenuIsOpen.get());
},
onSubmit(evt) {
evt.preventDefault();
onSubmit(event) {
event.preventDefault();
const title = this.find('.js-new-board-title').value;
const visibility = this.visibility.get();
this.boardId.set(Boards.insert({
title,
permission: visibility,
}));
this.boardId.set(
Boards.insert({
title,
permission: visibility,
}),
);
Swimlanes.insert({
title: 'Default',
boardId: this.boardId.get(),
});
Utils.goBoardId(this.boardId.get());
},
events() {
return [{
'click .js-select-visibility'() {
this.setVisibility(this.currentData());
return [
{
'click .js-select-visibility'() {
this.setVisibility(this.currentData());
},
'click .js-change-visibility': this.toggleVisibilityMenu,
'click .js-import': Popup.open('boardImportBoard'),
submit: this.onSubmit,
'click .js-import-board': Popup.open('chooseBoardSource'),
'click .js-board-template': Popup.open('searchElement'),
},
'click .js-change-visibility': this.toggleVisibilityMenu,
'click .js-import': Popup.open('boardImportBoard'),
submit: this.onSubmit,
}];
];
},
}).register('createBoardPopup');
(class HeaderBarCreateBoard extends CreateBoard {
onSubmit(evt) {
super.onSubmit(evt);
onSubmit(event) {
super.onSubmit(event);
// Immediately star boards crated with the headerbar popup.
Meteor.user().toggleBoardStar(this.boardId.get());
}
}).register('headerBarCreateBoardPopup');
}.register('headerBarCreateBoardPopup'));
BlazeComponent.extendComponent({
visibilityCheck() {
@@ -200,9 +279,11 @@ BlazeComponent.extendComponent({
},
events() {
return [{
'click .js-select-visibility': this.selectBoardVisibility,
}];
return [
{
'click .js-select-visibility': this.selectBoardVisibility,
},
];
},
}).register('boardChangeVisibilityPopup');
@@ -217,13 +298,93 @@ BlazeComponent.extendComponent({
},
events() {
return [{
'click .js-select-watch'() {
const level = this.currentData();
Meteor.call('watch', 'board', Session.get('currentBoard'), level, (err, ret) => {
if (!err && ret) Popup.close();
});
return [
{
'click .js-select-watch'() {
const level = this.currentData();
Meteor.call(
'watch',
'board',
Session.get('currentBoard'),
level,
(err, ret) => {
if (!err && ret) Popup.close();
},
);
},
},
}];
];
},
}).register('boardChangeWatchPopup');
/*
BlazeComponent.extendComponent({
onCreated() {
//this.sortBy = new ReactiveVar();
////this.sortDirection = new ReactiveVar();
//this.setSortBy();
this.downClass = DOWNCLS;
this.upClass = UPCLS;
},
allowedSortValues() {
const types = [];
const pushed = {};
Meteor.user()
.getListSortTypes()
.forEach(type => {
const key = type.replace(/^-/, '');
if (pushed[key] === undefined) {
types.push({
name: key,
label: `list-label-${key}`,
shortLabel: `list-label-short-${key}`,
});
pushed[key] = 1;
}
});
return types;
},
Direction() {
return Meteor.user().getListSortByDirection() === -1
? this.downClass
: this.upClass;
},
sortby() {
return Meteor.user().getListSortBy();
},
setSortBy(type = null) {
const user = Meteor.user();
if (type === null) {
type = user._getListSortBy();
} else {
let value = '';
if (type.map) {
// is an array
value = (type[1] === -1 ? '-' : '') + type[0];
}
Meteor.call('setListSortBy', value);
}
//this.sortBy.set(type[0]);
//this.sortDirection.set(type[1]);
},
events() {
return [
{
'click .js-sort-by'(evt) {
evt.preventDefault();
const target = evt.target;
const sortby = target.getAttribute('name');
const down = !!target.querySelector(`.${this.upClass}`);
const direction = down ? -1 : 1;
this.setSortBy([sortby, direction]);
if (Utils.isMiniScreen) {
Popup.close();
}
},
},
];
},
}).register('listsortPopup');
*/
+22
View File
@@ -0,0 +1,22 @@
.integration-form
padding: 5px
border-bottom: 1px solid #ccc
.flex
display: -webkit-box
display: -moz-box
display: -webkit-flex
display: -moz-flex
display: -ms-flexbox
display: flex
.option
@extends .flex
-webkit-border-radius: 3px;
border-radius: 3px;
background: #fff;
text-decoration: none;
-webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.2);
box-shadow: 0 1px 2px rgba(0,0,0,0.2);
margin-top: 5px;
padding: 5px;
+37 -5
View File
@@ -1,6 +1,8 @@
template(name="boardList")
.wrapper
ul.board-list.clearfix
li.js-add-board
a.board-list-item.label {{_ 'add-board'}}
each boards
li(class="{{#if isStarred}}starred{{/if}}" class=colorClass)
if isInvited
@@ -16,14 +18,41 @@ template(name="boardList")
else
a.js-open-board.board-list-item(href="{{pathFor 'board' id=_id slug=slug}}")
span.details
span.board-list-item-name= title
span.board-list-item-name
+viewer
= title
i.fa.js-star-board(
class="fa-star{{#if isStarred}} is-star-active{{else}}-o{{/if}}"
title="{{_ 'star-board-title'}}")
p.board-list-item-desc= description
li.js-add-board
a.board-list-item.label {{_ 'add-board'}}
p.board-list-item-desc
+viewer
= description
if hasSpentTimeCards
i.fa.js-has-spenttime-cards(
class="fa-circle{{#if hasOvertimeCards}} has-overtime-card-active{{else}} no-overtime-card-active{{/if}}"
title="{{#if hasOvertimeCards}}{{_ 'has-overtime-cards'}}{{else}}{{_ 'has-spenttime-cards'}}{{/if}}")
unless isMiniScreen
if isSandstorm
i.fa.js-clone-board(
class="fa-clone"
title="{{_ 'duplicate-board'}}")
i.fa.js-archive-board(
class="fa-archive"
title="{{_ 'archive-board'}}")
else if currentUser.isBoardAdmin
i.fa.js-clone-board(
class="fa-clone"
title="{{_ 'duplicate-board'}}")
i.fa.js-archive-board(
class="fa-archive"
title="{{_ 'archive-board'}}")
else if currentUser.isAdmin
i.fa.js-clone-board(
class="fa-clone"
title="{{_ 'duplicate-board'}}")
i.fa.js-archive-board(
class="fa-archive"
title="{{_ 'archive-board'}}")
template(name="boardListHeaderBar")
h1 {{_ 'my-boards'}}
@@ -31,3 +60,6 @@ template(name="boardListHeaderBar")
a.board-header-btn.js-open-archived-board
i.fa.fa-archive
span {{_ 'archives'}}
a.board-header-btn(href="{{pathFor 'board' id=templatesBoardId slug=templatesBoardSlug}}")
i.fa.fa-clone
span {{_ 'templates'}}
+82 -27
View File
@@ -1,44 +1,99 @@
const subManager = new SubsManager();
Template.boardListHeaderBar.events({
'click .js-open-archived-board'() {
Modal.open('archivedBoards');
},
});
Template.boardListHeaderBar.helpers({
templatesBoardId() {
return Meteor.user() && Meteor.user().getTemplatesBoardId();
},
templatesBoardSlug() {
return Meteor.user() && Meteor.user().getTemplatesBoardSlug();
},
});
BlazeComponent.extendComponent({
boards() {
return Boards.find({
archived: false,
'members.userId': Meteor.userId(),
}, {
sort: ['title'],
});
onCreated() {
Meteor.subscribe('setting');
},
boards() {
return Boards.find(
{
archived: false,
'members.userId': Meteor.userId(),
type: 'board',
},
{ sort: ['title'] },
);
},
isStarred() {
const user = Meteor.user();
return user && user.hasStarred(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();
return user && user.isInvitedTo(this.currentData()._id);
},
events() {
return [{
'click .js-add-board': Popup.open('createBoard'),
'click .js-star-board'(evt) {
const boardId = this.currentData()._id;
Meteor.user().toggleBoardStar(boardId);
evt.preventDefault();
return [
{
'click .js-add-board': Popup.open('createBoard'),
'click .js-star-board'(evt) {
const boardId = this.currentData()._id;
Meteor.user().toggleBoardStar(boardId);
evt.preventDefault();
},
'click .js-clone-board'(evt) {
Meteor.call(
'cloneBoard',
this.currentData()._id,
Session.get('fromBoard'),
(err, res) => {
if (err) {
this.setError(err.error);
} else {
Session.set('fromBoard', null);
Utils.goBoardId(res);
}
},
);
evt.preventDefault();
},
'click .js-archive-board'(evt) {
const boardId = this.currentData()._id;
Meteor.call('archiveBoard', boardId);
evt.preventDefault();
},
'click .js-accept-invite'() {
const boardId = this.currentData()._id;
Meteor.call('acceptInvite', boardId);
},
'click .js-decline-invite'() {
const boardId = this.currentData()._id;
Meteor.call('quitBoard', boardId, (err, ret) => {
if (!err && ret) {
Meteor.call('acceptInvite', boardId);
FlowRouter.go('home');
}
});
},
},
'click .js-accept-invite'() {
const boardId = this.currentData()._id;
Meteor.user().removeInvite(boardId);
},
'click .js-decline-invite'() {
const boardId = this.currentData()._id;
Meteor.call('quitBoard', boardId, (err, ret) => {
if (!err && ret) {
Meteor.user().removeInvite(boardId);
FlowRouter.go('home');
}
});
},
}];
];
},
}).register('boardList');
+52 -4
View File
@@ -17,6 +17,7 @@ $spaceBetweenTiles = 16px
opacity: 1
.board-list-item
overflow: hidden;
background-color: #999
color: #f6f6f6
height: 90px
@@ -43,9 +44,9 @@ $spaceBetweenTiles = 16px
line-height: 22px
.board-list-item-desc
color: rgba(255, 255, 255, .5)
color: #fff
display: block
font-size: 10px
font-size: 14px
font-weight: 400
line-height: 18px
@@ -73,16 +74,61 @@ $spaceBetweenTiles = 16px
transition-duration: .15s
transition-property: color, font-size, background
.fa-circle
bottom: 0;
font-size: 10px;
height: 10px;
line-height: 10px;
padding: 9px 9px;
position: absolute;
right: 0;
transition-duration: .15s
transition-property: color, font-size, background
.has-overtime-card-active
color: #eb4646 !important
.no-overtime-card-active
color: #3cb500 !important
.is-star-active
color: white
.fa-clone
position: absolute;
bottom: 0
font-size: 14px
height: 18px
line-height: 18px
opacity: 0
right: 0
padding: 9px 9px
transition-duration: .15s
transition-property: color, font-size, background
.fa-archive
position: absolute;
bottom: 0
font-size: 14px
height: 18px
line-height: 18px
opacity: 0
left: 0
padding: 9px 9px
transition-duration: .15s
transition-property: color, font-size, background
li:hover a
&:hover
.fa-star,
.fa-clone,
.fa-archive,
.fa-star-o
color: white
.fa-star,
.fa-clone,
.fa-archive,
.fa-star-o
color: white
opacity: .75
@@ -115,6 +161,7 @@ $spaceBetweenTiles = 16px
padding-right: 6px
.background-box
color: white
border-radius: 3px
background-size: cover
display: block
@@ -136,10 +183,11 @@ $spaceBetweenTiles = 16px
overflow: scroll
li
width: 33.3%
width: 50%
.board-list-item
overflow: hidden
height: 8rem
.board-list-item-sub-name
position: relative
@@ -148,4 +196,4 @@ $spaceBetweenTiles = 16px
@media screen and (max-width: 360px)
li
width: 50%
width: 100%
+8
View File
@@ -0,0 +1,8 @@
template(name="miniboard")
.minicard(
class="minicard-{{colorClass}}")
.minicard-title
.handle
.fa.fa-arrows
+viewer
= title
+22 -16
View File
@@ -12,7 +12,7 @@ template(name="previewClipboardImagePopup")
button.primary.js-upload-pasted-image {{_ 'upload'}}
template(name="previewAttachedImagePopup")
img.preview-large-image.js-large-image-clicked(src="{{pathFor url}}")
img.preview-large-image.js-large-image-clicked(src="{{url}}")
template(name="attachmentDeletePopup")
p {{_ "attachment-delete-pop"}}
@@ -21,11 +21,11 @@ template(name="attachmentDeletePopup")
template(name="attachmentsGalery")
.attachments-galery
each attachments
a.attachment-item.js-open-viewer(title="{{_ 'added'}} {{ moment uploadedAt }}")
.attachment-thumbnail
.attachment-item
a.attachment-thumbnail.swipebox(href="{{url}}" title="{{name}}")
if isUploaded
if isImage
img.attachment-thumbnail-img.js-preview-image(src="{{pathFor url}}")
img.attachment-thumbnail-img(src="{{url}}")
else
span.attachment-thumbnail-ext= extension
else
@@ -37,17 +37,23 @@ template(name="attachmentsGalery")
i.fa.fa-download
| {{_ 'download'}}
if currentUser.isBoardMember
if isImage
a(class="{{#if $eq ../coverId _id}}js-remove-cover{{else}}js-add-cover{{/if}}")
i.fa.fa-thumb-tack
if($eq ../coverId _id)
| {{_ 'remove-cover'}}
else
| {{_ 'add-cover'}}
a.js-confirm-delete
i.fa.fa-close
| {{_ 'delete'}}
unless currentUser.isCommentOnly
unless currentUser.isWorker
if isImage
a(class="{{#if $eq ../coverId _id}}js-remove-cover{{else}}js-add-cover{{/if}}")
i.fa.fa-thumb-tack
if($eq ../coverId _id)
| {{_ 'remove-cover'}}
else
| {{_ 'add-cover'}}
a.js-confirm-delete
i.fa.fa-close
| {{_ 'delete'}}
if currentUser.isBoardMember
li.attachment-item.add-attachment
a.js-add-attachment {{_ 'add-attachment' }}
unless currentUser.isCommentOnly
unless currentUser.isWorker
//li.attachment-item.add-attachment
a.js-add-attachment
i.fa.fa-paperclip
| {{_ 'add-attachment' }}
+93 -37
View File
@@ -1,27 +1,25 @@
Template.attachmentsGalery.events({
'click .js-add-attachment': Popup.open('cardAttachments'),
'click .js-confirm-delete': Popup.afterConfirm('attachmentDelete',
'click .js-confirm-delete': Popup.afterConfirm(
'attachmentDelete',
function() {
Attachments.remove(this._id);
Popup.close();
}
},
),
// If we let this event bubble, FlowRouter will handle it and empty the page
// content, see #101.
'click .js-download'(event) {
event.stopPropagation();
},
'click .js-open-viewer'() {
// XXX Not implemented!
},
'click .js-add-cover'() {
Cards.findOne(this.cardId).setCover(this._id);
},
'click .js-remove-cover'() {
Cards.findOne(this.cardId).unsetCover();
},
'click .js-preview-image'(evt) {
Popup.open('previewAttachedImage').call(this, evt);
'click .js-preview-image'(event) {
Popup.open('previewAttachedImage').call(this, event);
// when multiple thumbnails, if click one then another very fast,
// we might get a wrong width from previous img.
// when popup reused, onRendered() won't be called, so we cannot get there.
@@ -34,70 +32,122 @@ Template.attachmentsGalery.events({
// if the image is too large, we resize & center the popup.
if (w > 300) {
$('div.pop-over').css({
width: (w + 20),
width: w + 20,
position: 'absolute',
left: (window.innerWidth - w)/2,
top: (window.innerHeight - h)/2,
left: (window.innerWidth - w) / 2,
top: (window.innerHeight - h) / 2,
});
}
};
const url = $(evt.currentTarget).attr('src');
if (img.src === url && img.complete)
rePosPopup();
else
img.onload = rePosPopup;
const url = $(event.currentTarget).attr('src');
if (img.src === url && img.complete) rePosPopup();
else img.onload = rePosPopup;
},
});
Template.previewAttachedImagePopup.events({
'click .js-large-image-clicked'(){
'click .js-large-image-clicked'() {
Popup.close();
},
});
Template.cardAttachmentsPopup.events({
'change .js-attach-file'(evt) {
'change .js-attach-file'(event) {
const card = this;
FS.Utility.eachFile(evt, (f) => {
const file = new FS.File(f);
file.boardId = card.boardId;
file.cardId = card._id;
const processFile = f => {
Utils.processUploadedAttachment(card, f, attachment => {
if (attachment && attachment._id && attachment.isImage()) {
card.setCover(attachment._id);
}
Popup.close();
});
};
Attachments.insert(file);
Popup.close();
FS.Utility.eachFile(event, f => {
if (
MAX_IMAGE_PIXEL > 0 &&
typeof f.type === 'string' &&
f.type.match(/^image/)
) {
// is image
const reader = new FileReader();
reader.onload = function(e) {
const dataurl = e && e.target && e.target.result;
if (dataurl !== undefined) {
Utils.shrinkImage({
dataurl,
maxSize: MAX_IMAGE_PIXEL,
ratio: COMPRESS_RATIO,
toBlob: true,
callback(blob) {
if (blob === false) {
processFile(f);
} else {
blob.name = f.name;
processFile(blob);
}
},
});
} else {
// couldn't process it let other function handle it?
processFile(f);
}
};
reader.readAsDataURL(f);
} else {
processFile(f);
}
});
},
'click .js-computer-upload'(evt, tpl) {
tpl.find('.js-attach-file').click();
evt.preventDefault();
'click .js-computer-upload'(event, templateInstance) {
templateInstance.find('.js-attach-file').click();
event.preventDefault();
},
'click .js-upload-clipboard-image': Popup.open('previewClipboardImage'),
});
const MAX_IMAGE_PIXEL = Utils.MAX_IMAGE_PIXEL;
const COMPRESS_RATIO = Utils.IMAGE_COMPRESS_RATIO;
let pastedResults = null;
Template.previewClipboardImagePopup.onRendered(() => {
// we can paste image from clipboard
$(document.body).pasteImageReader((results) => {
const handle = results => {
if (results.dataURL.startsWith('data:image/')) {
$('img.preview-clipboard-image').attr('src', results.dataURL);
pastedResults = results;
const direct = results => {
$('img.preview-clipboard-image').attr('src', results.dataURL);
pastedResults = results;
};
if (MAX_IMAGE_PIXEL) {
// if has size limitation on image we shrink it before uploading
Utils.shrinkImage({
dataurl: results.dataURL,
maxSize: MAX_IMAGE_PIXEL,
ratio: COMPRESS_RATIO,
callback(changed) {
if (changed !== false && !!changed) {
results.dataURL = changed;
}
direct(results);
},
});
} else {
direct(results);
}
}
});
};
$(document.body).pasteImageReader(handle);
// we can also drag & drop image file to it
$(document.body).dropImageReader((results) => {
if (results.dataURL.startsWith('data:image/')) {
$('img.preview-clipboard-image').attr('src', results.dataURL);
pastedResults = results;
}
});
$(document.body).dropImageReader(handle);
});
Template.previewClipboardImagePopup.events({
'click .js-upload-pasted-image'() {
const results = pastedResults;
if (results && results.file) {
window.oPasted = pastedResults;
const card = this;
const file = new FS.File(results.file);
if (!results.name) {
@@ -109,7 +159,13 @@ Template.previewClipboardImagePopup.events({
file.updatedAt(new Date());
file.boardId = card.boardId;
file.cardId = card._id;
Attachments.insert(file);
file.userId = Meteor.userId();
const attachment = Attachments.insert(file);
if (attachment && attachment._id && attachment.isImage()) {
card.setCover(attachment._id);
}
pastedResults = null;
$(document.body).pasteImageReader(() => {});
Popup.close();
+21
View File
@@ -58,7 +58,28 @@
.preview-clipboard-image
width: 280px
max-width: 100%;
height: 200px
display: block
border: 1px solid black
box-shadow: 0 1px 2px rgba(0,0,0,.2)
@media screen and (max-width: 800px)
.attachments-galery
flex-direction
row
.attachment-item
width: 50% - 2%
.attachment-thumbnail
height: 130px
.attachment-details
font-size: 1.1em
@media screen and (max-width: 360px)
.attachments-galery
.attachment-item
width: 100%
.attachment-thumbnail
height: 200px
@@ -0,0 +1,97 @@
template(name="cardCustomFieldsPopup")
ul.pop-over-list
each board.customFields
li.item(class="")
a.name.js-select-field(href="#")
span.full-name
+viewer
= name
if hasCustomField
i.fa.fa-check
hr
a.quiet-button.full.js-settings
i.fa.fa-cog
span {{_ 'settings'}}
template(name="cardCustomField")
+Template.dynamic(template=getTemplate)
template(name="cardCustomField-text")
if canModifyCard
+inlinedForm(classNames="js-card-customfield-text")
+editor(autofocus=true)
= value
.edit-controls.clearfix
button.primary(type="submit") {{_ 'save'}}
a.fa.fa-times-thin.js-close-inlined-form
else
a.js-open-inlined-form
if value
+viewer
= value
else
| {{_ 'edit'}}
else
+viewer
= value
template(name="cardCustomField-number")
if canModifyCard
+inlinedForm(classNames="js-card-customfield-number")
input(type="number" value=data.value)
.edit-controls.clearfix
button.primary(type="submit") {{_ 'save'}}
a.fa.fa-times-thin.js-close-inlined-form
else
a.js-open-inlined-form
if value
= value
else
| {{_ 'edit'}}
else
if value
= value
template(name="cardCustomField-date")
if canModifyCard
a.js-edit-date(title="{{showTitle}}" class="{{classes}}")
if value
div.card-date
time(datetime="{{showISODate}}")
| {{showDate}}
else
| {{_ 'edit'}}
else
if value
div.card-date
time(datetime="{{showISODate}}")
| {{showDate}}
template(name="cardCustomField-dropdown")
if canModifyCard
+inlinedForm(classNames="js-card-customfield-dropdown")
select.inline
each items
if($eq data.value this._id)
option(value=_id selected="selected")
+viewer
= name
else
option(value=_id)
+viewer
= name
.edit-controls.clearfix
button.primary(type="submit") {{_ 'save'}}
a.fa.fa-times-thin.js-close-inlined-form
else
a.js-open-inlined-form
if value
+viewer
= selectedItem
else
| {{_ 'edit'}}
else
if value
+viewer
= selectedItem
+186
View File
@@ -0,0 +1,186 @@
Template.cardCustomFieldsPopup.helpers({
hasCustomField() {
const card = Cards.findOne(Session.get('currentCard'));
const customFieldId = this._id;
return card.customFieldIndex(customFieldId) > -1;
},
});
Template.cardCustomFieldsPopup.events({
'click .js-select-field'(event) {
const card = Cards.findOne(Session.get('currentCard'));
const customFieldId = this._id;
card.toggleCustomField(customFieldId);
event.preventDefault();
},
'click .js-settings'(event) {
EscapeActions.executeUpTo('detailsPane');
Sidebar.setView('customFields');
event.preventDefault();
},
});
// cardCustomField
const CardCustomField = BlazeComponent.extendComponent({
getTemplate() {
return `cardCustomField-${this.data().definition.type}`;
},
onCreated() {
const self = this;
self.card = Cards.findOne(Session.get('currentCard'));
self.customFieldId = this.data()._id;
},
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly()
);
},
});
CardCustomField.register('cardCustomField');
// cardCustomField-text
(class extends CardCustomField {
onCreated() {
super.onCreated();
}
events() {
return [
{
'submit .js-card-customfield-text'(event) {
event.preventDefault();
const value = this.currentComponent().getValue();
this.card.setCustomField(this.customFieldId, value);
},
},
];
}
}.register('cardCustomField-text'));
// cardCustomField-number
(class extends CardCustomField {
onCreated() {
super.onCreated();
}
events() {
return [
{
'submit .js-card-customfield-number'(event) {
event.preventDefault();
const value = parseInt(this.find('input').value, 10);
this.card.setCustomField(this.customFieldId, value);
},
},
];
}
}.register('cardCustomField-number'));
// cardCustomField-date
(class extends CardCustomField {
onCreated() {
super.onCreated();
const self = this;
self.date = ReactiveVar();
self.now = ReactiveVar(moment());
window.setInterval(() => {
self.now.set(moment());
}, 60000);
self.autorun(() => {
self.date.set(moment(self.data().value));
});
}
showDate() {
// this will start working once mquandalle:moment
// is updated to at least moment.js 2.10.5
// until then, the date is displayed in the "L" format
return this.date.get().calendar(null, {
sameElse: 'llll',
});
}
showISODate() {
return this.date.get().toISOString();
}
classes() {
if (
this.date.get().isBefore(this.now.get(), 'minute') &&
this.now.get().isBefore(this.data().value)
) {
return 'current';
}
return '';
}
showTitle() {
return `${TAPi18n.__('card-start-on')} ${this.date.get().format('LLLL')}`;
}
events() {
return [
{
'click .js-edit-date': Popup.open('cardCustomField-date'),
},
];
}
}.register('cardCustomField-date'));
// cardCustomField-datePopup
(class extends DatePicker {
onCreated() {
super.onCreated();
const self = this;
self.card = Cards.findOne(Session.get('currentCard'));
self.customFieldId = this.data()._id;
this.data().value && this.date.set(moment(this.data().value));
}
_storeDate(date) {
this.card.setCustomField(this.customFieldId, date);
}
_deleteDate() {
this.card.setCustomField(this.customFieldId, '');
}
}.register('cardCustomField-datePopup'));
// cardCustomField-dropdown
(class extends CardCustomField {
onCreated() {
super.onCreated();
this._items = this.data().definition.settings.dropdownItems;
this.items = this._items.slice(0);
this.items.unshift({
_id: '',
name: TAPi18n.__('custom-field-dropdown-none'),
});
}
selectedItem() {
const selected = this._items.find(item => {
return item._id === this.data().value;
});
return selected
? selected.name
: TAPi18n.__('custom-field-dropdown-unknown');
}
events() {
return [
{
'submit .js-card-customfield-dropdown'(event) {
event.preventDefault();
const value = this.find('select').value;
this.card.setCustomField(this.customFieldId, value);
},
},
];
}
}.register('cardCustomField-dropdown'));
-16
View File
@@ -1,19 +1,3 @@
template(name="editCardDate")
.edit-card-date
form.edit-date
.fields
.left
label(for="date") {{_ 'date'}}
input.js-date-field#date(type="text" name="date" value=showDate placeholder=dateFormat autofocus)
.right
label(for="time") {{_ 'time'}}
input.js-time-field#time(type="text" name="time" value=showTime placeholder=timeFormat)
.js-datepicker
if error.get
.warning {{_ error.get}}
button.primary.wide.left.js-submit-date(type="submit") {{_ 'save'}}
button.js-delete-date.negate.wide.right.js-delete-date {{_ 'delete'}}
template(name="dateBadge")
if canModifyCard
a.js-edit-date.card-date(title="{{showTitle}}" class="{{classes}}")
+235 -81
View File
@@ -1,5 +1,5 @@
// Edit start & due dates
const EditCardDate = BlazeComponent.extendComponent({
// Edit received, start, due & end dates
BlazeComponent.extendComponent({
template() {
return 'editCardDate';
},
@@ -11,15 +11,20 @@ const EditCardDate = BlazeComponent.extendComponent({
},
onRendered() {
const $picker = this.$('.js-datepicker').datepicker({
todayHighlight: true,
todayBtn: 'linked',
language: TAPi18n.getLanguage(),
}).on('changeDate', function(evt) {
this.find('#date').value = moment(evt.date).format('L');
this.error.set('');
this.find('#time').focus();
}.bind(this));
const $picker = this.$('.js-datepicker')
.datepicker({
todayHighlight: true,
todayBtn: 'linked',
language: TAPi18n.getLanguage(),
})
.on(
'changeDate',
function(evt) {
this.find('#date').value = moment(evt.date).format('L');
this.error.set('');
this.find('#time').focus();
}.bind(this),
);
if (this.date.get().isValid()) {
$picker.datepicker('update', this.date.get().toDate());
@@ -27,13 +32,11 @@ const EditCardDate = BlazeComponent.extendComponent({
},
showDate() {
if (this.date.get().isValid())
return this.date.get().format('L');
if (this.date.get().isValid()) return this.date.get().format('L');
return '';
},
showTime() {
if (this.date.get().isValid())
return this.date.get().format('LT');
if (this.date.get().isValid()) return this.date.get().format('LT');
return '';
},
dateFormat() {
@@ -44,59 +47,94 @@ const EditCardDate = BlazeComponent.extendComponent({
},
events() {
return [{
'keyup .js-date-field'() {
// parse for localized date format in strict mode
const dateMoment = moment(this.find('#date').value, 'L', true);
if (dateMoment.isValid()) {
this.error.set('');
this.$('.js-datepicker').datepicker('update', dateMoment.toDate());
}
},
'keyup .js-time-field'() {
// parse for localized time format in strict mode
const dateMoment = moment(this.find('#time').value, 'LT', true);
if (dateMoment.isValid()) {
this.error.set('');
}
},
'submit .edit-date'(evt) {
evt.preventDefault();
return [
{
'keyup .js-date-field'() {
// parse for localized date format in strict mode
const dateMoment = moment(this.find('#date').value, 'L', true);
if (dateMoment.isValid()) {
this.error.set('');
this.$('.js-datepicker').datepicker('update', dateMoment.toDate());
}
},
'keyup .js-time-field'() {
// parse for localized time format in strict mode
const dateMoment = moment(this.find('#time').value, 'LT', true);
if (dateMoment.isValid()) {
this.error.set('');
}
},
'submit .edit-date'(evt) {
evt.preventDefault();
// if no time was given, init with 12:00
const time = evt.target.time.value || moment(new Date().setHours(12, 0, 0)).format('LT');
// if no time was given, init with 12:00
const time =
evt.target.time.value ||
moment(new Date().setHours(12, 0, 0)).format('LT');
const dateString = `${evt.target.date.value} ${time}`;
const newDate = moment(dateString, 'L LT', true);
if (newDate.isValid()) {
this._storeDate(newDate.toDate());
const dateString = `${evt.target.date.value} ${time}`;
const newDate = moment(dateString, 'L LT', true);
if (newDate.isValid()) {
this._storeDate(newDate.toDate());
Popup.close();
} else {
this.error.set('invalid-date');
evt.target.date.focus();
}
},
'click .js-delete-date'(evt) {
evt.preventDefault();
this._deleteDate();
Popup.close();
}
else {
this.error.set('invalid-date');
evt.target.date.focus();
}
},
},
'click .js-delete-date'(evt) {
evt.preventDefault();
this._deleteDate();
Popup.close();
},
}];
];
},
});
Template.dateBadge.helpers({
canModifyCard() {
return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly();
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
});
// editCardStartDatePopup
(class extends EditCardDate {
// editCardReceivedDatePopup
(class extends DatePicker {
onCreated() {
super.onCreated();
this.data().startAt && this.date.set(moment(this.data().startAt));
super.onCreated(moment().format('YYYY-MM-DD HH:mm'));
this.data().getReceived() &&
this.date.set(moment(this.data().getReceived()));
}
_storeDate(date) {
this.card.setReceived(date);
}
_deleteDate() {
this.card.setReceived(null);
}
}.register('editCardReceivedDatePopup'));
// editCardStartDatePopup
(class extends DatePicker {
onCreated() {
super.onCreated(moment().format('YYYY-MM-DD HH:mm'));
this.data().getStart() && this.date.set(moment(this.data().getStart()));
}
onRendered() {
super.onRendered();
if (moment.isDate(this.card.getReceived())) {
this.$('.js-datepicker').datepicker(
'setStartDate',
this.card.getReceived(),
);
}
}
_storeDate(date) {
@@ -104,21 +142,21 @@ Template.dateBadge.helpers({
}
_deleteDate() {
this.card.unsetStart();
this.card.setStart(null);
}
}).register('editCardStartDatePopup');
}.register('editCardStartDatePopup'));
// editCardDueDatePopup
(class extends EditCardDate {
(class extends DatePicker {
onCreated() {
super.onCreated();
this.data().dueAt && this.date.set(moment(this.data().dueAt));
super.onCreated('1970-01-01 17:00:00');
this.data().getDue() && this.date.set(moment(this.data().getDue()));
}
onRendered() {
super.onRendered();
if (moment.isDate(this.card.startAt)) {
this.$('.js-datepicker').datepicker('setStartDate', this.card.startAt);
if (moment.isDate(this.card.getStart())) {
this.$('.js-datepicker').datepicker('setStartDate', this.card.getStart());
}
}
@@ -127,12 +165,34 @@ Template.dateBadge.helpers({
}
_deleteDate() {
this.card.unsetDue();
this.card.setDue(null);
}
}).register('editCardDueDatePopup');
}.register('editCardDueDatePopup'));
// editCardEndDatePopup
(class extends DatePicker {
onCreated() {
super.onCreated(moment().format('YYYY-MM-DD HH:mm'));
this.data().getEnd() && this.date.set(moment(this.data().getEnd()));
}
// Display start & due dates
onRendered() {
super.onRendered();
if (moment.isDate(this.card.getStart())) {
this.$('.js-datepicker').datepicker('setStartDate', this.card.getStart());
}
}
_storeDate(date) {
this.card.setEnd(date);
}
_deleteDate() {
this.card.setEnd(null);
}
}.register('editCardEndDatePopup'));
// Display received, start, due & end dates
const CardDate = BlazeComponent.extendComponent({
template() {
return 'dateBadge';
@@ -161,21 +221,67 @@ const CardDate = BlazeComponent.extendComponent({
},
});
class CardReceivedDate extends CardDate {
onCreated() {
super.onCreated();
const self = this;
self.autorun(() => {
self.date.set(moment(self.data().getReceived()));
});
}
classes() {
let classes = 'received-date ';
const dueAt = this.data().getDue();
const endAt = this.data().getEnd();
const startAt = this.data().getStart();
const theDate = this.date.get();
// if dueAt, endAt and startAt exist & are > receivedAt, receivedAt doesn't need to be flagged
if (
(startAt && theDate.isAfter(startAt)) ||
(endAt && theDate.isAfter(endAt)) ||
(dueAt && theDate.isAfter(dueAt))
)
classes += 'long-overdue';
else classes += 'current';
return classes;
}
showTitle() {
return `${TAPi18n.__('card-received-on')} ${this.date
.get()
.format('LLLL')}`;
}
events() {
return super.events().concat({
'click .js-edit-date': Popup.open('editCardReceivedDate'),
});
}
}
CardReceivedDate.register('cardReceivedDate');
class CardStartDate extends CardDate {
onCreated() {
super.onCreated();
const self = this;
self.autorun(() => {
self.date.set(moment(self.data().startAt));
self.date.set(moment(self.data().getStart()));
});
}
classes() {
if (this.date.get().isBefore(this.now.get(), 'minute') &&
this.now.get().isBefore(this.data().dueAt)) {
return 'current';
}
return '';
let classes = 'start-date' + ' ';
const dueAt = this.data().getDue();
const endAt = this.data().getEnd();
const theDate = this.date.get();
const now = this.now.get();
// if dueAt or endAt exist & are > startAt, startAt doesn't need to be flagged
if ((endAt && theDate.isAfter(endAt)) || (dueAt && theDate.isAfter(dueAt)))
classes += 'long-overdue';
else if (theDate.isBefore(now, 'minute')) classes += 'almost-due';
else classes += 'current';
return classes;
}
showTitle() {
@@ -195,18 +301,23 @@ class CardDueDate extends CardDate {
super.onCreated();
const self = this;
self.autorun(() => {
self.date.set(moment(self.data().dueAt));
self.date.set(moment(self.data().getDue()));
});
}
classes() {
if (this.now.get().diff(this.date.get(), 'days') >= 2)
return 'long-overdue';
else if (this.now.get().diff(this.date.get(), 'minute') >= 0)
return 'due';
else if (this.now.get().diff(this.date.get(), 'days') >= -1)
return 'almost-due';
return '';
let classes = 'due-date' + ' ';
const endAt = this.data().getEnd();
const theDate = this.date.get();
const now = this.now.get();
// if the due date is after the end date, green - done early
if (endAt && theDate.isAfter(endAt)) classes += 'current';
// if there is an end date, don't need to flag the due date
else if (endAt) classes += '';
else if (now.diff(theDate, 'days') >= 2) classes += 'long-overdue';
else if (now.diff(theDate, 'minute') >= 0) classes += 'due';
else if (now.diff(theDate, 'days') >= -1) classes += 'almost-due';
return classes;
}
showTitle() {
@@ -221,14 +332,57 @@ class CardDueDate extends CardDate {
}
CardDueDate.register('cardDueDate');
class CardEndDate extends CardDate {
onCreated() {
super.onCreated();
const self = this;
self.autorun(() => {
self.date.set(moment(self.data().getEnd()));
});
}
classes() {
let classes = 'end-date' + ' ';
const dueAt = this.data().getDue();
const theDate = this.date.get();
if (!dueAt) classes += '';
else if (theDate.isBefore(dueAt)) classes += 'current';
else if (theDate.isAfter(dueAt)) classes += 'due';
return classes;
}
showTitle() {
return `${TAPi18n.__('card-end-on')} ${this.date.get().format('LLLL')}`;
}
events() {
return super.events().concat({
'click .js-edit-date': Popup.open('editCardEndDate'),
});
}
}
CardEndDate.register('cardEndDate');
(class extends CardReceivedDate {
showDate() {
return this.date.get().format('l');
}
}.register('minicardReceivedDate'));
(class extends CardStartDate {
showDate() {
return this.date.get().format('l');
}
}).register('minicardStartDate');
}.register('minicardStartDate'));
(class extends CardDueDate {
showDate() {
return this.date.get().format('l');
}
}).register('minicardDueDate');
}.register('minicardDueDate'));
(class extends CardEndDate {
showDate() {
return this.date.get().format('l');
}
}.register('minicardEndDate'));
+22 -21
View File
@@ -1,22 +1,3 @@
.edit-card-date
.fields
.left
width: 56%
.right
width: 38%
.datepicker
width: 100%
table
width: 100%
border: none
border-spacing: 0
border-collapse: collapse
thead
background: none
td, th
box-sizing: border-box
.card-date
display: block
border-radius: 4px
@@ -49,10 +30,30 @@
&:hover, &.is-active
background-color: darken(#fd5d47, 7)
&.end-date
time
&::before
content: "\f253" // symbol: fa-hourglass-end
&.due-date
time
&::before
content: "\f090" // symbol: fa-sign-in
&.start-date
time
&::before
content: "\f251" // symbol: fa-hourglass-start
&.received-date
time
&::before
content: "\f08b" // symbol: fa-sign-out
time
&::before
font: normal normal normal 14px/1 FontAwesome
font-size: inherit
-webkit-font-smoothing: antialiased
content: "\f017" // clock symbol
margin-right: 0.3em
margin-right: 0.3em
+474 -90
View File
@@ -1,127 +1,412 @@
template(name="cardDetails")
section.card-details.js-card-details.js-perfect-scrollbar: .card-details-canvas
.card-details-header
.card-details-header(class='{{#if colorClass}}card-details-{{colorClass}}{{/if}}')
+inlinedForm(classNames="js-card-details-title")
+editCardTitleForm
else
a.fa.fa-times-thin.close-card-details.js-close-card-details
if currentUser.isBoardMember
a.fa.fa-navicon.card-details-menu.js-open-card-details-menu
unless isMiniScreen
a.fa.fa-times-thin.close-card-details.js-close-card-details
if currentUser.isBoardMember
a.fa.fa-navicon.card-details-menu.js-open-card-details-menu
input.inline-input(type="text" id="cardURL_copy" value="{{ absoluteUrl }}")
a.fa.fa-link.card-copy-button.js-copy-link(
class="fa-link"
title="{{_ 'copy-card-link-to-clipboard'}}"
value="{{ absoluteUrl }}"
)
if isMiniScreen
a.fa.fa-times-thin.close-card-details-mobile-web.js-close-card-details
if currentUser.isBoardMember
a.fa.fa-navicon.card-details-menu-mobile-web.js-open-card-details-menu
a.fa.fa-link.card-copy-mobile-button
h2.card-details-title.js-card-title(
class="{{#if canModifyCard}}js-open-inlined-form is-editable{{/if}}")
= title
+viewer
= getTitle
if isWatching
i.fa.fa-eye.card-details-watch
i.card-details-watch.fa.fa-eye
.card-details-path
each parentList
| &nbsp; &gt; &nbsp;
a.js-parent-card(href=linkForCard) {{title}}
// else
{{_ 'top-level-card'}}
if isLinkedCard
h3.linked-card-location
+viewer
| {{getBoardTitle}} > {{getTitle}}
if archived
p.warning {{_ 'card-archived'}}
if getArchived
if isLinkedBoard
p.warning {{_ 'board-archived'}}
else
p.warning {{_ 'card-archived'}}
.card-details-items
.card-details-item.card-details-item-members
h3.card-details-item-title {{_ 'members'}}
each members
+userAvatar(userId=this cardId=../_id)
| {{! XXX Hack to hide syntaxic coloration /// }}
if canModifyCard
a.member.add-member.card-details-item-add-button.js-add-members(title="{{_ 'card-members-title'}}")
i.fa.fa-plus
if currentBoard.allowsReceivedDate
.card-details-item.card-details-item-received
h3
i.fa.fa-sign-out
card-details-item-title {{_ 'card-received'}}
if getReceived
+cardReceivedDate
else
if canModifyCard
unless currentUser.isWorker
a.card-label.add-label.js-received-date
i.fa.fa-plus
.card-details-item.card-details-item-labels
h3.card-details-item-title {{_ 'labels'}}
a(class="{{#if canModifyCard}}js-add-labels{{else}}is-disabled{{/if}}" title="{{_ 'card-labels-title'}}")
each labels
span.card-label(class="card-label-{{color}}" title=name)= name
if canModifyCard
a.card-label.add-label.js-add-labels(title="{{_ 'card-labels-title'}}")
i.fa.fa-plus
if startAt
if currentBoard.allowsStartDate
.card-details-item.card-details-item-start
h3.card-details-item-title {{_ 'card-start'}}
+cardStartDate
h3
i.fa.fa-hourglass-start
card-details-item-title {{_ 'card-start'}}
if getStart
+cardStartDate
else
if canModifyCard
unless currentUser.isWorker
a.card-label.add-label.js-start-date
i.fa.fa-plus
if dueAt
if currentBoard.allowsDueDate
.card-details-item.card-details-item-due
h3.card-details-item-title {{_ 'card-due'}}
+cardDueDate
h3
i.fa.fa-sign-in
card-details-item-title {{_ 'card-due'}}
if getDue
+cardDueDate
else
if canModifyCard
unless currentUser.isWorker
a.card-label.add-label.js-due-date
i.fa.fa-plus
if currentBoard.allowsEndDate
.card-details-item.card-details-item-end
h3
i.fa.fa-hourglass-end
card-details-item-title {{_ 'card-end'}}
if getEnd
+cardEndDate
else
if canModifyCard
unless currentUser.isWorker
a.card-label.add-label.js-end-date
i.fa.fa-plus
//.card-details-items
if currentBoard.allowsMembers
.card-details-item.card-details-item-members
h3
i.fa.fa-users
card-details-item-title {{_ 'members'}}
each getMembers
+userAvatar(userId=this cardId=../_id)
| {{! XXX Hack to hide syntaxic coloration /// }}
if canModifyCard
unless currentUser.isWorker
a.member.add-member.card-details-item-add-button.js-add-members(title="{{_ 'card-members-title'}}")
i.fa.fa-plus
//if assigneeSelected
if currentBoard.allowsAssignee
.card-details-item.card-details-item-assignees
h3
i.fa.fa-user
card-details-item-title {{_ 'assignee'}}
each getAssignees
+userAvatarAssignee(userId=this cardId=../_id)
| {{! XXX Hack to hide syntaxic coloration /// }}
if canModifyCard
a.assignee.add-assignee.card-details-item-add-button.js-add-assignees(title="{{_ 'assignee'}}")
i.fa.fa-plus
if currentUser.isWorker
unless assigneeSelected
a.assignee.add-assignee.card-details-item-add-button.js-add-assignees(title="{{_ 'assignee'}}")
i.fa.fa-plus
if currentBoard.allowsLabels
.card-details-item.card-details-item-labels
h3
i.fa.fa-tags
card-details-item-title {{_ 'labels'}}
a(class="{{#if canModifyCard}}js-add-labels{{else}}is-disabled{{/if}}" title="{{_ 'card-labels-title'}}")
each labels
span.card-label(class="card-label-{{color}}" title=name)
+viewer
= name
if canModifyCard
unless currentUser.isWorker
a.card-label.add-label.js-add-labels(title="{{_ 'card-labels-title'}}")
i.fa.fa-plus
//.card-details-items
each customFieldsWD
.card-details-item.card-details-item-customfield
h3.card-details-item-title
+viewer
= definition.name
+cardCustomField
//.card-details-items
if getSpentTime
.card-details-item.card-details-item-spent
if getIsOvertime
h3.card-details-item-title {{_ 'overtime-hours'}}
else
h3.card-details-item-title {{_ 'spent-time-hours'}}
+cardSpentTime
//.card-details-items
if currentBoard.allowsRequestedBy
.card-details-item.card-details-item-name
h3
i.fa.fa-shopping-cart
card-details-item-title {{_ 'requested-by'}}
if canModifyCard
unless currentUser.isWorker
+inlinedForm(classNames="js-card-details-requester")
+editCardRequesterForm
else
a.js-open-inlined-form
if getRequestedBy
+viewer
= getRequestedBy
else
| {{_ 'add'}}
else if getRequestedBy
+viewer
= getRequestedBy
if currentBoard.allowsAssignedBy
.card-details-item.card-details-item-name
h3
i.fa.fa-user-plus
card-details-item-title {{_ 'assigned-by'}}
if canModifyCard
unless currentUser.isWorker
+inlinedForm(classNames="js-card-details-assigner")
+editCardAssignerForm
else
a.js-open-inlined-form
if getAssignedBy
+viewer
= getAssignedBy
else
| {{_ 'add'}}
else if getRequestedBy
+viewer
= getAssignedBy
//- XXX We should use "editable" to avoid repetiting ourselves
if canModifyCard
h3.card-details-item-title {{_ 'description'}}
+inlinedCardDescription(classNames="card-description js-card-description")
+editor(autofocus=true)
| {{getUnsavedValue 'cardDescription' _id description}}
.edit-controls.clearfix
button.primary(type="submit") {{_ 'save'}}
a.fa.fa-times-thin.js-close-inlined-form
else
a.js-open-inlined-form
if description
+viewer
= description
unless currentUser.isWorker
if currentBoard.allowsDescriptionTitle
h3
i.fa.fa-align-left
card-details-item-title {{_ 'description'}}
if currentBoard.allowsDescriptionText
+inlinedCardDescription(classNames="card-description js-card-description")
+editor(autofocus=true)
| {{getUnsavedValue 'cardDescription' _id getDescription}}
.edit-controls.clearfix
button.primary(type="submit") {{_ 'save'}}
a.fa.fa-times-thin.js-close-inlined-form
else
| {{_ 'edit'}}
if (hasUnsavedValue 'cardDescription' _id)
p.quiet
| {{_ 'unsaved-description'}}
a.js-open-inlined-form {{_ 'view-it'}}
= ' - '
a.js-close-inlined-form {{_ 'discard'}}
else if description
h3.card-details-item-title {{_ 'description'}}
+viewer
= description
if currentBoard.allowsDescriptionText
a.js-open-inlined-form
if getDescription
+viewer
= getDescription
else
| {{_ 'edit'}}
if (hasUnsavedValue 'cardDescription' _id)
p.quiet
| {{_ 'unsaved-description'}}
a.js-open-inlined-form {{_ 'view-it'}}
= ' - '
a.js-close-inlined-form {{_ 'discard'}}
else if getDescription
if currentBoard.allowsDescriptionTitle
h3.card-details-item-title {{_ 'description'}}
if currentBoard.allowsDescriptionText
+viewer
= getDescription
.card-checklist-attachmentGalerys
.card-checklist-attachmentGalery.card-checklists
if currentBoard.allowsChecklists
+checklists(cardId = _id)
if currentBoard.allowsSubtasks
hr
+subtasks(cardId = _id)
if currentBoard.allowsAttachments
//- hr
//- h3
//- i.fa.fa-paperclip
//- | {{_ 'attachments'}}
.card-checklist-attachmentGalery.card-attachmentGalery
+attachmentsGalery
hr
+checklists(cardId = _id)
if attachments.count
hr
h2
i.fa.fa-paperclip
| {{_ 'attachments'}}
+attachmentsGalery
hr
h2 {{ _ 'activity'}}
if currentUser.isBoardMember
+commentForm
if isLoaded.get
+activities(card=this mode="card")
unless currentUser.isNoComments
.activity-title
h3
i.fa.fa-history
| {{ _ 'activity'}}
if currentUser.isBoardMember
.material-toggle-switch
span.toggle-switch-title {{_ 'hide-system-messages'}}
if hiddenSystemMessages
input.toggle-switch(type="checkbox" id="toggleButton" 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
unless currentUser.isNoComments
if isLoaded.get
if isLinkedCard
+activities(card=this mode="linkedcard")
else if isLinkedBoard
+activities(card=this mode="linkedboard")
else
+activities(card=this mode="card")
template(name="editCardTitleForm")
textarea.js-edit-card-title(rows='1' autofocus)
= title
textarea.js-edit-card-title(rows='1' autofocus dir="auto")
= getTitle
.edit-controls.clearfix
button.primary.confirm.js-submit-edit-card-title-form(type="submit") {{_ 'save'}}
a.fa.fa-times-thin.js-close-inlined-form
template(name="editCardRequesterForm")
input.js-edit-card-requester(type='text' autofocus value=getRequestedBy dir="auto")
.edit-controls.clearfix
button.primary.confirm.js-submit-edit-card-requester-form(type="submit") {{_ 'save'}}
a.fa.fa-times-thin.js-close-inlined-form
template(name="editCardAssignerForm")
input.js-edit-card-assigner(type='text' autofocus value=getAssignedBy dir="auto")
.edit-controls.clearfix
button.primary.confirm.js-submit-edit-card-assigner-form(type="submit") {{_ 'save'}}
a.fa.fa-times-thin.js-close-inlined-form
template(name="cardDetailsActionsPopup")
ul.pop-over-list
li: a.js-toggle-watch-card {{#if isWatching}}{{_ 'unwatch'}}{{else}}{{_ 'watch'}}{{/if}}
li
a.js-toggle-watch-card
if isWatching
i.fa.fa-eye
| {{_ 'unwatch'}}
else
i.fa.fa-eye-slash
| {{_ 'watch'}}
if canModifyCard
hr
unless currentUser.isWorker
hr
ul.pop-over-list
//li: a.js-members {{_ 'card-edit-members'}}
//li: a.js-labels {{_ 'card-edit-labels'}}
//li: a.js-attachments {{_ 'card-edit-attachments'}}
li
a.js-custom-fields
i.fa.fa-list-alt
| {{_ 'card-edit-custom-fields'}}
//li: a.js-received-date {{_ 'editCardReceivedDatePopup-title'}}
//li: a.js-start-date {{_ 'editCardStartDatePopup-title'}}
//li: a.js-due-date {{_ 'editCardDueDatePopup-title'}}
//li: a.js-end-date {{_ 'editCardEndDatePopup-title'}}
li
a.js-spent-time
i.fa.fa-clock-o
| {{_ 'editCardSpentTimePopup-title'}}
li
a.js-set-card-color
i.fa.fa-paint-brush
| {{_ 'setCardColorPopup-title'}}
hr
ul.pop-over-list
li: a.js-members {{_ 'card-edit-members'}}
li: a.js-labels {{_ 'card-edit-labels'}}
li: a.js-attachments {{_ 'card-edit-attachments'}}
li: a.js-start-date {{_ 'editCardStartDatePopup-title'}}
li: a.js-due-date {{_ 'editCardDueDatePopup-title'}}
hr
ul.pop-over-list
li: a.js-move-card-to-top {{_ 'moveCardToTop-title'}}
li: a.js-move-card-to-bottom {{_ 'moveCardToBottom-title'}}
hr
ul.pop-over-list
li: a.js-move-card {{_ 'moveCardPopup-title'}}
li
a.js-move-card-to-top
i.fa.fa-arrow-up
| {{_ 'moveCardToTop-title'}}
li
a.js-move-card-to-bottom
i.fa.fa-arrow-down
| {{_ 'moveCardToBottom-title'}}
unless currentUser.isWorker
hr
ul.pop-over-list
li
a.js-move-card
i.fa.fa-arrow-right
| {{_ 'moveCardPopup-title'}}
li
a.js-copy-card
i.fa.fa-copy
| {{_ 'copyCardPopup-title'}}
hr
ul.pop-over-list
li
a.js-copy-checklist-cards
i.fa.fa-list
i.fa.fa-copy
| {{_ 'copyChecklistToManyCardsPopup-title'}}
unless archived
li: a.js-archive {{_ 'archive-card'}}
li: a.js-more {{_ 'cardMorePopup-title'}}
hr
ul.pop-over-list
li
a.js-archive
i.fa.fa-arrow-right
i.fa.fa-archive
| {{_ 'archive-card'}}
hr
ul.pop-over-list
li
a.js-more
i.fa.fa-link
| {{_ 'cardMorePopup-title'}}
template(name="moveCardPopup")
+boardLists
+boardsAndLists
template(name="copyCardPopup")
label(for='copy-card-title') {{_ 'title'}}:
textarea#copy-card-title.minicard-composer-textarea.js-card-title(autofocus)
= getTitle
+boardsAndLists
template(name="copyChecklistToManyCardsPopup")
label(for='copy-checklist-cards-title') {{_ 'copyChecklistToManyCardsPopup-instructions'}}:
textarea#copy-card-title.minicard-composer-textarea.js-card-title(autofocus)
| {{_ 'copyChecklistToManyCardsPopup-format'}}
+boardsAndLists
template(name="boardsAndLists")
label {{_ 'boards'}}:
select.js-select-boards(autofocus)
each boards
if $eq _id currentBoard._id
option(value="{{_id}}" selected) {{_ 'current'}}
else
option(value="{{_id}}") {{title}}
label {{_ 'swimlanes'}}:
select.js-select-swimlanes
each swimlanes
option(value="{{_id}}") {{title}}
label {{_ 'lists'}}:
select.js-select-lists
each aBoardLists
option(value="{{_id}}") {{title}}
.edit-controls.clearfix
button.primary.confirm.js-done {{_ 'done'}}
template(name="cardMembersPopup")
ul.pop-over-list.js-card-member-list
@@ -135,17 +420,116 @@ template(name="cardMembersPopup")
if isCardMember
i.fa.fa-check
template(name="cardAssigneesPopup")
unless currentUser.isWorker
ul.pop-over-list.js-card-assignee-list
each board.activeMembers
li.item(class="{{#if isCardAssignee}}active{{/if}}")
a.name.js-select-assignee(href="#")
+userAvatar(userId=user._id)
span.full-name
= user.profile.fullname
| (<span class="username">{{ user.username }}</span>)
if isCardAssignee
i.fa.fa-check
if currentUser.isWorker
ul.pop-over-list.js-card-assignee-list
li.item(class="{{#if currentUser.isCardAssignee}}active{{/if}}")
a.name.js-select-assignee(href="#")
+userAvatar(userId=currentUser._id)
span.full-name
= currentUser.profile.fullname
| (<span class="username">{{ currentUser.username }}</span>)
if currentUser.isCardAssignee
i.fa.fa-check
template(name="userAvatarAssignee")
a.assignee.js-assignee(title="{{userData.profile.fullname}} ({{userData.username}})")
if userData.profile.avatarUrl
img.avatar.avatar-image(src="{{userData.profile.avatarUrl}}")
else
+userAvatarAssigneeInitials(userId=userData._id)
if showStatus
span.assignee-presence-status(class=presenceStatusClassName)
span.member-type(class=memberType)
unless isSandstorm
if showEdit
if $eq currentUser._id userData._id
a.edit-avatar.js-change-avatar
i.fa.fa-pencil
template(name="cardAssigneePopup")
.board-assignee-menu
.mini-profile-info
+userAvatar(userId=user._id showEdit=true)
.info
h3= user.profile.fullname
p.quiet @{{ user.username }}
ul.pop-over-list
if currentUser.isNotCommentOnly
unless currentUser.isWorker
li: a.js-remove-assignee {{_ 'remove-member-from-card'}}
unless currentUser.isWorker
if $eq currentUser._id user._id
with currentUser
li: a.js-edit-profile {{_ 'edit-profile'}}
template(name="userAvatarAssigneeInitials")
svg.avatar.avatar-assignee-initials(viewBox="0 0 {{viewPortWidth}} 15")
text(x="50%" y="13" text-anchor="middle")= initials
template(name="cardMorePopup")
p.quiet
span.clearfix
span {{_ 'link-card'}}
= ' '
i.fa.colorful(class="{{#if board.isPublic}}fa-globe{{else}}fa-lock{{/if}}")
input.inline-input(type="text" readonly value="{{ rootUrl }}")
input.inline-input(type="text" id="cardURL" readonly value="{{ absoluteUrl }}" autofocus="autofocus")
button.js-copy-card-link-to-clipboard(class="btn") {{_ 'copy-card-link-to-clipboard'}}
span.clearfix
br
h2 {{_ 'change-card-parent'}}
label {{_ 'source-board'}}:
select.js-field-parent-board
if isTopLevel
option(value="none" selected) {{_ 'custom-field-dropdown-none'}}
else
option(value="none") {{_ 'custom-field-dropdown-none'}}
each boards
if isParentBoard
option(value="{{_id}}" selected) {{title}}
else
option(value="{{_id}}") {{title}}
label {{_ 'parent-card'}}:
select.js-field-parent-card
if isTopLevel
option(value="none" selected) {{_ 'custom-field-dropdown-none'}}
else
option(value="none") {{_ 'custom-field-dropdown-none'}}
each cards
if isParentCard
option(value="{{_id}}" selected) {{title}}
else
option(value="{{_id}}") {{title}}
br
| {{_ 'added'}}
span.date(title=card.createdAt) {{ moment createdAt 'LLL' }}
a.js-delete(title="{{_ 'card-delete-notice'}}") {{_ 'delete'}}
template(name="setCardColorPopup")
form.edit-label
.palette-colors: each colors
unless $eq color 'white'
span.card-label.palette-color.js-palette-color(class="card-details-{{color}}")
if(isSelected color)
i.fa.fa-check
button.primary.confirm.js-submit {{_ 'save'}}
button.js-remove-color.negate.wide.right {{_ 'unset-color'}}
template(name="cardDeletePopup")
p {{_ "card-delete-pop"}}
unless archived
File diff suppressed because it is too large. Load diff
+220 -11
View File
@@ -1,12 +1,93 @@
@import 'nib'
// Assignee, code copied from wekan/client/users/userAvatar.styl
avatar-radius = 50%
#cardURL_copy
// Have clipboard text not visible by moving it to far left
position: absolute
left: -2000px
top: 0px
.assignee
border-radius: 3px
display: block
position: relative
float: left
height: 30px
width: @height
margin: 0 4px 4px 0
cursor: pointer
user-select: none
z-index: 1
text-decoration: none
border-radius: avatar-radius
.avatar
overflow: hidden
border-radius: avatar-radius
&.avatar-assignee-initials
height: 70%
width: @height
padding: 15%
background-color: #dbdbdb
color: #444444
position: absolute
&.avatar-image
height: 100%
width: @height
.assignee-presence-status
background-color: #b3b3b3
border: 1px solid #fff
border-radius: 50%
height: 7px
width: @height
position: absolute
right: -1px
bottom: -1px
border: 1px solid white
z-index: 15
&.active
background: #64c464
border-color: #daf1da
&.idle
background: #e4e467
border-color: #f7f7d4
&.disconnected
background: #bdbdbd
border-color: #ededed
&.pending
background: #e44242
border-color: #f1dada
&.add-assignee
display: flex
align-items: center
justify-content: center
box-shadow: 0 0 0 2px darken(white, 25%) inset
&:hover, &.is-active
box-shadow: 0 0 0 2px darken(white, 60%) inset
// Other card details
.card-details
padding: 0 20px
height: 100%
padding: 0
flex-shrink: 0
flex-basis: 470px
flex-basis: 510px
will-change: flex-basis
overflow: hidden
overflow-y: scroll
overflow-x: hidden
background: darken(white, 3%)
border-radius: bottom 3px
z-index: 20 !important
@@ -14,8 +95,16 @@
box-shadow: 0 0 7px 0 darken(white, 30%)
transition: flex-basis 0.1s
.mCustomScrollBox
padding-left: 0
.ps-scrollbar-y-rail
pointer-event: all
position: absolute;
.card-details-canvas
width: 470px
padding-left: 20px;
.card-details-header
margin: 0 -20px 5px
@@ -24,7 +113,11 @@
border-bottom: 1px solid darken(white, 14%)
.close-card-details,
.card-details-menu
.card-details-menu,
.card-copy-button,
.card-copy-mobile-button,
.close-card-details-mobile-web,
.card-details-menu-mobile-web
float: right
.close-card-details
@@ -32,10 +125,30 @@
padding: 5px
margin-right: -8px
.close-card-details-mobile-web
font-size: 24px
padding: 5px
margin-right: 40px
.card-copy-button
font-size: 17px
padding: 10px
margin-right: 10px
.card-copy-mobile-button
font-size: 17px
padding: 10px
margin-right: 10px
.card-details-menu
font-size: 17px
padding: 10px
.card-details-menu-mobile-web
font-size: 17px
padding: 10px
margin-right: 30px
.card-details-watch
font-size: 17px
padding-left: 7px
@@ -47,6 +160,12 @@
margin: 7px 0 0
padding: 0
.linked-card-location
font-style: italic
font-size: 1em
margin-bottom: 0
& p
margin-bottom: 0
form.inlined-form
margin-top: 5px
@@ -70,6 +189,7 @@
.card-details-items
display: flex
flex-wrap: wrap
margin: 15px 0
.card-details-item
@@ -78,14 +198,21 @@
margin-right: 0
&.card-details-item-labels,
&.card-details-item-members,
&.card-details-item-assignees,
&.card-details-item-received,
&.card-details-item-start,
&.card-details-item-due
width: 50%
flex-shrink: 1
&.card-details-item-due,
&.card-details-item-end,
&.card-details-item-customfield,
&.card-details-item-name
display: block
word-wrap: break-word
max-width: 48%
flex-grow: 1
.card-details-item-title
font-size: 14px
color: darken(white, 45%)
font-size: 16px
color: #000
.card-label
padding-top: 5px
@@ -107,13 +234,14 @@ input[type="submit"].attachment-add-link-submit
@media screen and (max-width: 800px)
.card-details
width: calc(100% - 40px)
width: calc(100% - 1px)
padding: 0px 20px 0px 20px
margin: 0px
transition: none
.card-details-canvas
width: 100%
padding-left: 0px;
.card-details-header
.close-card-details
@@ -121,3 +249,84 @@ input[type="submit"].attachment-add-link-submit
.card-details-menu
margin-right: 10px
card-details-color(background, color...)
background: background !important
if color
color: color !important //overwrite text for better visibility
.card-details-white
card-details-color(unset, #000) //Black text for better visibility
border: 1px solid #eee
.card-details-green
card-details-color(#3cb500, #ffffff) //White text for better visibility
.card-details-yellow
card-details-color(#fad900, #000) //Black text for better visibility
.card-details-orange
card-details-color(#ff9f19, #000) //Black text for better visibility
.card-details-red
card-details-color(#eb4646, #ffffff) //White text for better visibility
.card-details-purple
card-details-color(#a632db, #ffffff) //White text for better visibility
.card-details-blue
card-details-color(#0079bf, #ffffff) //White text for better visibility
.card-details-pink
card-details-color(#ff78cb, #000) //Black text for better visibility
.card-details-sky
card-details-color(#00c2e0, #ffffff) //White text for better visibility
.card-details-black
card-details-color(#4d4d4d, #ffffff) //White text for better visibility
.card-details-lime
card-details-color(#51e898, #000) //Black text for better visibility
.card-details-silver
card-details-color(#c0c0c0, #000) //Black text for better visibility
.card-details-peachpuff
card-details-color(#ffdab9, #000) //Black text for better visibility
.card-details-crimson
card-details-color(#dc143c, #ffffff) //White text for better visibility
.card-details-plum
card-details-color(#dda0dd, #000) //Black text for better visibility
.card-details-darkgreen
card-details-color(#006400, #ffffff) //White text for better visibility
.card-details-slateblue
card-details-color(#6a5acd, #ffffff) //White text for better visibility
.card-details-magenta
card-details-color(#ff00ff, #ffffff) //White text for better visibility
.card-details-gold
card-details-color(#ffd700, #000) //Black text for better visibility
.card-details-navy
card-details-color(#000080, #ffffff) //White text for better visibility
.card-details-gray
card-details-color(#808080, #ffffff) //White text for better visibility
.card-details-saddlebrown
card-details-color(#8b4513, #ffffff) //White text for better visibility
.card-details-paleturquoise
card-details-color(#afeeee, #000) //Black text for better visibility
.card-details-mistyrose
card-details-color(#ffe4e1, #000) //Black text for better visibility
.card-details-indigo
card-details-color(#4b0082, #ffffff) //White text for better visibility
+22
View File
@@ -0,0 +1,22 @@
template(name="editCardSpentTime")
.edit-card-time
form.edit-time
.fields
label(for="time") {{_ 'time'}}
input.js-time-field#time(type="number" step="0.01" name="time" value="{{card.getSpentTime}}" placeholder=timeFormat autofocus)
label(for="overtime") {{_ 'overtime'}}
a.js-toggle-overtime
.materialCheckBox#overtime(class="{{#if getIsOvertime}}is-checked{{/if}}" name="overtime")
if error.get
.warning {{_ error.get}}
button.primary.wide.left.js-submit-time(type="submit") {{_ 'save'}}
button.js-delete-time.negate.wide.right {{_ 'delete'}}
template(name="timeBadge")
if canModifyCard
a.js-edit-time.card-time(title="{{showTitle}}" class="{{#if getIsOvertime}}card-label-red{{else}}card-label-green{{/if}}")
| {{showTime}}
else
a.card-time(title="{{showTitle}}" class="{{#if getIsOvertime}}card-label-red{{else}}card-label-green{{/if}}")
| {{showTime}}
+90
View File
@@ -0,0 +1,90 @@
BlazeComponent.extendComponent({
template() {
return 'editCardSpentTime';
},
onCreated() {
this.error = new ReactiveVar('');
this.card = this.data();
},
toggleOvertime() {
this.card.setIsOvertime(!this.card.getIsOvertime());
$('#overtime .materialCheckBox').toggleClass('is-checked');
$('#overtime').toggleClass('is-checked');
},
storeTime(spentTime, isOvertime) {
this.card.setSpentTime(spentTime);
this.card.setIsOvertime(isOvertime);
},
deleteTime() {
this.card.setSpentTime(null);
},
events() {
return [
{
//TODO : need checking this portion
'submit .edit-time'(evt) {
evt.preventDefault();
const spentTime = parseFloat(evt.target.time.value);
const isOvertime = this.card.getIsOvertime();
if (spentTime >= 0) {
this.storeTime(spentTime, isOvertime);
Popup.close();
} else {
this.error.set('invalid-time');
evt.target.time.focus();
}
},
'click .js-delete-time'(evt) {
evt.preventDefault();
this.deleteTime();
Popup.close();
},
'click a.js-toggle-overtime': this.toggleOvertime,
},
];
},
}).register('editCardSpentTimePopup');
BlazeComponent.extendComponent({
template() {
return 'timeBadge';
},
onCreated() {
const self = this;
self.time = ReactiveVar();
},
showTitle() {
if (this.data().getIsOvertime()) {
return `${TAPi18n.__(
'overtime',
)} ${this.data().getSpentTime()} ${TAPi18n.__('hours')}`;
} else {
return `${TAPi18n.__(
'card-spent',
)} ${this.data().getSpentTime()} ${TAPi18n.__('hours')}`;
}
},
showTime() {
return this.data().getSpentTime();
},
events() {
return [
{
'click .js-edit-time': Popup.open('editCardSpentTime'),
},
];
},
}).register('cardSpentTime');
Template.timeBadge.helpers({
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly()
);
},
});
+17
View File
@@ -0,0 +1,17 @@
.card-time
display: block
border-radius: 4px
padding: 1px 3px
color: #fff
background-color: #dbdbdb
&:hover, &.is-active
background-color: #b3b3b3
time
&::before
font: normal normal normal 14px/1 FontAwesome
font-size: inherit
-webkit-font-smoothing: antialiased
content: "\f017" // clock symbol
margin-right: 0.3em
+52 -24
View File
@@ -1,10 +1,18 @@
template(name="checklists")
h2 {{_ 'checklists'}}
h3
i.fa.fa-check
| {{_ 'checklists'}}
if toggleDeleteDialog.get
.board-overlay#card-details-overlay
+checklistDeleteDialog(checklist = checklistToDelete)
.card-checklist-items
each checklist in currentCard.checklists
+checklistDetail(checklist = checklist)
if canModifyCard
+inlinedForm(classNames="js-add-checklist" cardId = cardId)
+inlinedForm(autoclose=false classNames="js-add-checklist" cardId = cardId)
+addChecklistItemForm
else
a.js-open-inlined-form
@@ -12,19 +20,36 @@ template(name="checklists")
| {{_ 'add-checklist'}}...
template(name="checklistDetail")
+inlinedForm(classNames="js-edit-checklist-title" checklist = checklist)
+editChecklistItemForm(checklist = checklist)
else
.checklist-title
.checkbox.fa.fa-check-square-o
if canModifyCard
a.js-delete-checklist {{_ "delete"}}...
span.checklist-stat(class="{{#if checklist.isFinished}}is-finished{{/if}}") {{checklist.finishedCount}}/{{checklist.itemCount}}
if canModifyCard
h2.title.js-open-inlined-form.is-editable {{checklist.title}}
else
h2.title {{checklist.title}}
+checklistItems(checklist = checklist)
.js-checklist.checklist
+inlinedForm(classNames="js-edit-checklist-title" checklist = checklist)
+editChecklistItemForm(checklist = checklist)
else
.checklist-title
span
if canModifyCard
a.js-delete-checklist.toggle-delete-checklist-dialog {{_ "delete"}}...
if canModifyCard
h2.title.js-open-inlined-form.is-editable
+viewer
= checklist.title
else
h2.title
+viewer
= checklist.title
+checklistItems(checklist = checklist)
template(name="checklistDeleteDialog")
.js-confirm-checklist-delete
p
i(class="fa fa-exclamation-triangle" aria-hidden="true")
p
| {{_ 'confirm-checklist-delete-dialog'}}
span {{checklist.title}}
| ?
.js-checklist-delete-buttons
button.confirm-checklist-delete(type="button") {{_ 'delete'}}
button.toggle-delete-checklist-dialog(type="button") {{_ 'cancel'}}
template(name="addChecklistItemForm")
textarea.js-add-checklist-item(rows='1' autofocus)
@@ -33,7 +58,7 @@ template(name="addChecklistItemForm")
a.fa.fa-times-thin.js-close-inlined-form
template(name="editChecklistItemForm")
textarea.js-edit-checklist-item(rows='1' autofocus)
textarea.js-edit-checklist-item(rows='1' autofocus dir="auto")
if $eq type 'item'
= item.title
else
@@ -46,26 +71,29 @@ template(name="editChecklistItemForm")
a.js-delete-checklist-item {{_ "delete"}}...
template(name="checklistItems")
.checklist-items
.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
+itemDetail(item = item checklist = checklist)
+checklistItemDetail(item = item checklist = checklist)
if canModifyCard
+inlinedForm(classNames="js-add-checklist-item" checklist = checklist)
+inlinedForm(autoclose=false classNames="js-add-checklist-item" checklist = checklist)
+addChecklistItemForm
else
a.add-checklist-item.js-open-inlined-form
i.fa.fa-plus
| {{_ 'add-checklist-item'}}...
template(name='itemDetail')
.item
template(name='checklistItemDetail')
.js-checklist-item.checklist-item
if canModifyCard
.check-box.materialCheckBox(class="{{#if item.isFinished }}is-checked{{/if}}")
.item-title.js-open-inlined-form.is-editable(class="{{#if item.isFinished }}is-checked{{/if}}") {{item.title}}
.item-title.js-open-inlined-form.is-editable(class="{{#if item.isFinished }}is-checked{{/if}}")
+viewer
= item.title
else
.materialCheckBox(class="{{#if item.isFinished }}is-checked{{/if}}")
.item-title(class="{{#if item.isFinished }}is-checked{{/if}}") {{item.title}}
.item-title(class="{{#if item.isFinished }}is-checked{{/if}}")
+viewer
= item.title
+201 -43
View File
@@ -1,13 +1,104 @@
const { calculateIndexData, enableClickOnTouch } = Utils;
function initSorting(items) {
items.sortable({
tolerance: 'pointer',
helper: 'clone',
items: '.js-checklist-item:not(.placeholder)',
connectWith: '.js-checklist-items',
appendTo: '.board-canvas',
distance: 7,
placeholder: 'checklist-item placeholder',
scroll: false,
start(evt, ui) {
ui.placeholder.height(ui.helper.height());
EscapeActions.executeUpTo('popup-close');
},
stop(evt, ui) {
const parent = ui.item.parents('.js-checklist-items');
const checklistId = Blaze.getData(parent.get(0)).checklist._id;
let prevItem = ui.item.prev('.js-checklist-item').get(0);
if (prevItem) {
prevItem = Blaze.getData(prevItem).item;
}
let nextItem = ui.item.next('.js-checklist-item').get(0);
if (nextItem) {
nextItem = Blaze.getData(nextItem).item;
}
const nItems = 1;
const sortIndex = calculateIndexData(prevItem, nextItem, nItems);
const checklistDomElement = ui.item.get(0);
const checklistData = Blaze.getData(checklistDomElement);
const checklistItem = checklistData.item;
items.sortable('cancel');
checklistItem.move(checklistId, sortIndex.base);
},
});
// ugly touch event hotfix
enableClickOnTouch('.js-checklist-item:not(.placeholder)');
}
BlazeComponent.extendComponent({
onRendered() {
const self = this;
self.itemsDom = this.$('.js-checklist-items');
initSorting(self.itemsDom);
self.itemsDom.mousedown(function(evt) {
evt.stopPropagation();
});
function userIsMember() {
return Meteor.user() && Meteor.user().isBoardMember();
}
// Disable sorting if the current user is not a board member
self.autorun(() => {
const $itemsDom = $(self.itemsDom);
if ($itemsDom.data('sortable')) {
$(self.itemsDom).sortable('option', 'disabled', !userIsMember());
}
if ($itemsDom.data('sortable')) {
$(self.itemsDom).sortable('option', 'disabled', Utils.isMiniScreen());
}
});
},
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
}).register('checklistDetail');
BlazeComponent.extendComponent({
addChecklist(event) {
event.preventDefault();
const textarea = this.find('textarea.js-add-checklist-item');
const title = textarea.value.trim();
const cardId = this.currentData().cardId;
Checklists.insert({
cardId,
title,
});
let cardId = this.currentData().cardId;
const card = Cards.findOne(cardId);
if (card.isLinked()) cardId = card.linkedId;
if (title) {
Checklists.insert({
cardId,
title,
sort: card.checklists().count(),
});
setTimeout(() => {
this.$('.add-checklist-item')
.last()
.click();
}, 100);
}
textarea.value = '';
textarea.focus();
},
addChecklistItem(event) {
@@ -15,7 +106,43 @@ BlazeComponent.extendComponent({
const textarea = this.find('textarea.js-add-checklist-item');
const title = textarea.value.trim();
const checklist = this.currentData().checklist;
checklist.addItem(title);
if (title) {
ChecklistItems.insert({
title,
checklistId: checklist._id,
cardId: checklist.cardId,
sort: checklist.itemCount(),
});
}
// We keep the form opened, empty it.
textarea.value = '';
textarea.focus();
},
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
deleteChecklist() {
const checklist = this.currentData().checklist;
if (checklist && checklist._id) {
Checklists.remove(checklist._id);
this.toggleDeleteDialog.set(false);
}
},
deleteItem() {
const checklist = this.currentData().checklist;
const item = this.currentData().item;
if (checklist && item && item._id) {
ChecklistItems.remove(item._id);
}
},
editChecklist(event) {
@@ -26,38 +153,24 @@ BlazeComponent.extendComponent({
checklist.setTitle(title);
},
canModifyCard() {
return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly();
},
editChecklistItem(event) {
event.preventDefault();
const textarea = this.find('textarea.js-edit-checklist-item');
const title = textarea.value.trim();
const itemId = this.currentData().item._id;
const checklist = this.currentData().checklist;
checklist.editItem(itemId, title);
},
deleteItem() {
const checklist = this.currentData().checklist;
const item = this.currentData().item;
if (checklist && item && item._id) {
checklist.removeItem(item._id);
}
item.setTitle(title);
},
deleteChecklist() {
const checklist = this.currentData().checklist;
if (checklist && checklist._id) {
Checklists.remove(checklist._id);
}
onCreated() {
this.toggleDeleteDialog = new ReactiveVar(false);
this.checklistToDelete = null; //Store data context to pass to checklistDeleteDialog template
},
pressKey(event) {
//If user press enter key inside a form, submit it, so user doesn't have to leave keyboard to submit a form.
if (event.keyCode === 13) {
//If user press enter key inside a form, submit it
//Unless the user is also holding down the 'shift' key
if (event.keyCode === 13 && !event.shiftKey) {
event.preventDefault();
const $form = $(event.currentTarget).closest('form');
$form.find('button[type=submit]').click();
@@ -65,21 +178,64 @@ BlazeComponent.extendComponent({
},
events() {
return [{
'submit .js-add-checklist': this.addChecklist,
'submit .js-edit-checklist-title': this.editChecklist,
'submit .js-add-checklist-item': this.addChecklistItem,
'submit .js-edit-checklist-item': this.editChecklistItem,
'click .js-delete-checklist-item': this.deleteItem,
'click .js-delete-checklist': this.deleteChecklist,
keydown: this.pressKey,
}];
const events = {
'click .toggle-delete-checklist-dialog'(event) {
if ($(event.target).hasClass('js-delete-checklist')) {
this.checklistToDelete = this.currentData().checklist; //Store data context
}
this.toggleDeleteDialog.set(!this.toggleDeleteDialog.get());
},
};
return [
{
...events,
'submit .js-add-checklist': this.addChecklist,
'submit .js-edit-checklist-title': this.editChecklist,
'submit .js-add-checklist-item': this.addChecklistItem,
'submit .js-edit-checklist-item': this.editChecklistItem,
'click .js-delete-checklist-item': this.deleteItem,
'click .confirm-checklist-delete': this.deleteChecklist,
keydown: this.pressKey,
},
];
},
}).register('checklists');
Template.itemDetail.helpers({
Template.checklistDeleteDialog.onCreated(() => {
const $cardDetails = this.$('.card-details');
this.scrollState = {
position: $cardDetails.scrollTop(), //save current scroll position
top: false, //required for smooth scroll animation
};
//Callback's purpose is to only prevent scrolling after animation is complete
$cardDetails.animate({ scrollTop: 0 }, 500, () => {
this.scrollState.top = true;
});
//Prevent scrolling while dialog is open
$cardDetails.on('scroll', () => {
if (this.scrollState.top) {
//If it's already in position, keep it there. Otherwise let animation scroll
$cardDetails.scrollTop(0);
}
});
});
Template.checklistDeleteDialog.onDestroyed(() => {
const $cardDetails = this.$('.card-details');
$cardDetails.off('scroll'); //Reactivate scrolling
$cardDetails.animate({ scrollTop: this.scrollState.position });
});
Template.checklistItemDetail.helpers({
canModifyCard() {
return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly();
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
});
@@ -88,12 +244,14 @@ BlazeComponent.extendComponent({
const checklist = this.currentData().checklist;
const item = this.currentData().item;
if (checklist && item && item._id) {
checklist.toggleItem(item._id);
item.toggleItem();
}
},
events() {
return [{
'click .item .check-box': this.toggleItem,
}];
return [
{
'click .js-checklist-item .check-box': this.toggleItem,
},
];
},
}).register('itemDetail');
}).register('checklistItemDetail');
+101 -27
View File
@@ -26,7 +26,7 @@ textarea.js-add-checklist-item, textarea.js-edit-checklist-item
.title
font-size: 18px
line-height: 30px
line-height: 25px
.checklist-stat
margin: 0 0.5em
@@ -38,31 +38,105 @@ textarea.js-add-checklist-item, textarea.js-edit-checklist-item
.js-delete-checklist
@extends .delete-text
.checklist-items
.js-confirm-checklist-delete
background-color: darken(white, 3%)
position: absolute
float: left;
width: 60%
margin-top: 0
margin-left: 13%
padding-bottom: 2%
padding-left: 3%
padding-right: 3%
z-index: 17
border-radius: 3px
p
position: relative
margin-top: 3%
width: 100%
text-align: center
span
font-weight: bold
i
font-size: 2em
.js-checklist-delete-buttons
position: relative
padding: left 2% right 2%
.confirm-checklist-delete
margin-left: 12%
float: left
.toggle-delete-checklist-dialog
margin-right: 12%
float: right
#card-details-overlay
top: 0
bottom: -600px
right: 0
.checklist
background: darken(white, 3%)
&.placeholder
background: darken(white, 20%)
border-radius: 2px
&.ui-sortable-helper
box-shadow: -2px 2px 8px rgba(0, 0, 0, .3),
0 0 1px rgba(0, 0, 0, .5)
transform: rotate(4deg)
cursor: grabbing
.checklist-item
margin: 0 0 0 0.1em
line-height: 18px
font-size: 1.1em
margin-top: 3px
display: flex
background: darken(white, 3%)
&.placeholder
background: darken(white, 20%)
border-radius: 2px
&.ui-sortable-helper
box-shadow: -2px 2px 8px rgba(0, 0, 0, .3),
0 0 1px rgba(0, 0, 0, .5)
transform: rotate(4deg)
cursor: grabbing
&:hover
background-color: darken(white, 8%)
.check-box
margin: 0.1em 0 0 0;
&.is-checked
border-bottom: 2px solid #3cb500
border-right: 2px solid #3cb500
.item-title
flex: 1
padding-left: 10px;
&.is-checked
color: #8c8c8c
font-style: italic
& .viewer
p
margin-bottom: 2px
display: block
word-wrap: break-word
max-width: 420px
.js-delete-checklist-item
margin: 0 0 0.5em 1.33em
@extends .delete-text
padding: 12px 0 0 0
.item
line-height: 25px
font-size: 1.1em
margin-top: 3px
display: flex
.check-box
margin-top: 5px
&.is-checked
border-bottom: 2px solid #3cb500
border-right: 2px solid #3cb500
.item-title
padding-left: 10px;
&.is-checked
color: #8c8c8c
font-style: italic
.js-delete-checklist-item
@extends .delete-text
padding: 12px 0 0 0
.add-checklist-item
padding-top: 0.5em
display: inline-block
.add-checklist-item
margin: 0.2em 0 0.5em 1.33em
display: inline-block
+4 -2
View File
@@ -31,7 +31,9 @@ template(name="cardLabelsPopup")
a.card-label-edit-button.fa.fa-pencil.js-edit-label
span.card-label.card-label-selectable.js-select-label(class="card-label-{{color}}"
class="{{# if isLabelSelected ../_id }}active{{/if}}")
= name
+viewer
= name
if(isLabelSelected ../_id)
i.card-label-selectable-icon.fa.fa-check
a.quiet-button.full.js-add-label {{_ 'label-create'}}
if currentUser.isBoardAdmin
a.quiet-button.full.js-add-label {{_ 'label-create'}}
+25 -17
View File
@@ -9,7 +9,7 @@ BlazeComponent.extendComponent({
},
labels() {
return labelColors.map((color) => ({ color, name: '' }));
return labelColors.map(color => ({ color, name: '' }));
},
isSelected(color) {
@@ -17,11 +17,13 @@ BlazeComponent.extendComponent({
},
events() {
return [{
'click .js-palette-color'() {
this.currentColor.set(this.currentData().color);
return [
{
'click .js-palette-color'() {
this.currentColor.set(this.currentData().color);
},
},
}];
];
},
}).register('formLabel');
@@ -38,19 +40,19 @@ Template.createLabelPopup.helpers({
});
Template.cardLabelsPopup.events({
'click .js-select-label'(evt) {
'click .js-select-label'(event) {
const card = Cards.findOne(Session.get('currentCard'));
const labelId = this._id;
card.toggleLabel(labelId);
evt.preventDefault();
event.preventDefault();
},
'click .js-edit-label': Popup.open('editLabel'),
'click .js-add-label': Popup.open('createLabel'),
});
Template.formLabel.events({
'click .js-palette-color'(evt) {
const $this = $(evt.currentTarget);
'click .js-palette-color'(event) {
const $this = $(event.currentTarget);
// hide selected ll colors
$('.js-palette-select').addClass('hide');
@@ -62,11 +64,14 @@ Template.formLabel.events({
Template.createLabelPopup.events({
// Create the new label
'submit .create-label'(evt, tpl) {
evt.preventDefault();
'submit .create-label'(event, templateInstance) {
event.preventDefault();
const board = Boards.findOne(Session.get('currentBoard'));
const name = tpl.$('#labelName').val().trim();
const color = Blaze.getData(tpl.find('.fa-check')).color;
const name = templateInstance
.$('#labelName')
.val()
.trim();
const color = Blaze.getData(templateInstance.find('.fa-check')).color;
board.addLabel(name, color);
Popup.back();
},
@@ -78,11 +83,14 @@ Template.editLabelPopup.events({
board.removeLabel(this._id);
Popup.back(2);
}),
'submit .edit-label'(evt, tpl) {
evt.preventDefault();
'submit .edit-label'(event, templateInstance) {
event.preventDefault();
const board = Boards.findOne(Session.get('currentBoard'));
const name = tpl.$('#labelName').val().trim();
const color = Blaze.getData(tpl.find('.fa-check')).color;
const name = templateInstance
.$('#labelName')
.val()
.trim();
const color = Blaze.getData(templateInstance.find('.fa-check')).color;
board.editLabel(this._id, name, color);
Popup.back();
},
+55 -2
View File
@@ -3,16 +3,17 @@
// XXX Use .board-widget-labels as a flexbox container
.card-label
border-radius: 4px
color: white
color: white //Default white text, in select cases, changed to black to improve contrast between label colour and text
display: inline-block
font-weight: 700
font-size: 13px
margin-right: 4px
margin-bottom: 5px
padding: 3px 8px
max-width: 100%
max-width: 210px
min-width: 8px
overflow: ellipsis
word-wrap: break-word
height: 18px
vertical-align: bottom
@@ -48,9 +49,11 @@
.card-label-yellow
background-color: #fad900
color: #000000 //Black text for better visibility
.card-label-orange
background-color: #ff9f19
color: #000000 //Black text for better visibility
.card-label-red
background-color: #eb4646
@@ -63,6 +66,7 @@
.card-label-pink
background-color: #ff78cb
color: #000000 //Black text for better visibility
.card-label-sky
background-color: #00c2e0
@@ -72,6 +76,55 @@
.card-label-lime
background-color: #51e898
color: #000000 //Black text for better visibility
.card-label-silver
background-color: #c0c0c0
color: #000000 //Black text for better visibility
.card-label-peachpuff
background-color: #ffdab9
color: #000000 //Black text for better visibility
.card-label-crimson
background-color: #dc143c
.card-label-plum
background-color: #dda0dd
color: #000000 //Black text for better visibility
.card-label-darkgreen
background-color: #006400
.card-label-slateblue
background-color: #6a5acd
.card-label-magenta
background-color: #ff00ff
.card-label-gold
background-color: #ffd700
color: #000000 //Black text for better visibility
.card-label-navy
background-color: #000080
.card-label-gray
background-color: #808080
.card-label-saddlebrown
background-color: #8b4513
.card-label-paleturquoise
background-color: #afeeee
color: #000000 //Black text for better visibility
.card-label-mistyrose
background-color: #ffe4e1
color: #000000 //Black text for better visibility
.card-label-indigo
background-color: #4b0082
.edit-label,
.create-label
+93 -19
View File
@@ -1,30 +1,104 @@
template(name="minicard")
.minicard
.minicard(
class="{{#if isLinkedCard}}linked-card{{/if}}"
class="{{#if isLinkedBoard}}linked-board{{/if}}"
class="minicard-{{colorClass}}")
if isMiniScreen
//.handle
// .fa.fa-arrows
unless isMiniScreen
if showDesktopDragHandles
.handle
.fa.fa-arrows
if cover
.minicard-cover(style="background-image: url('{{pathFor cover.url}}');")
.minicard-cover(style="background-image: url('{{cover.url}}');")
if labels
.minicard-labels
each labels
.minicard-label(class="card-label-{{color}}" title="{{name}}")
.minicard-title= title
unless hiddenMinicardLabelText
span.card-label(class="card-label-{{color}}" title=name)
+viewer
= name
if hiddenMinicardLabelText
.minicard-label(class="card-label-{{color}}" title="{{name}}")
.minicard-title
if $eq 'prefix-with-full-path' currentBoard.presentParentTask
.parent-prefix
| {{ parentString ' > ' }}
if $eq 'prefix-with-parent' currentBoard.presentParentTask
.parent-prefix
| {{ parentCardName }}
if isLinkedBoard
a.js-linked-link
span.linked-icon.fa.fa-folder
else if isLinkedCard
a.js-linked-link
span.linked-icon.fa.fa-id-card
if getArchived
span.linked-icon.linked-archived.fa.fa-archive
+viewer
= getTitle
if $eq 'subtext-with-full-path' currentBoard.presentParentTask
.parent-subtext
| {{ parentString ' > ' }}
if $eq 'subtext-with-parent' currentBoard.presentParentTask
.parent-subtext
| {{ parentCardName }}
.dates
if startAt
.date
+minicardStartDate
if dueAt
.date
+minicardDueDate
if members
.minicard-members.js-minicard-members
each members
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
.minicard-custom-fields
each customFieldsWD
if definition.showOnCard
if trueValue
.minicard-custom-field
if definition.showLabelOnMiniCard
.minicard-custom-field-item
+viewer
= definition.name
.minicard-custom-field-item
+viewer
= trueValue
if getAssignees
.minicard-assignees.js-minicard-assignees
each getAssignees
+userAvatar(userId=this)
hr
if getMembers
.minicard-members.js-minicard-members
each getMembers
+userAvatar(userId=this)
.badges
if comments.count
.badge(title="{{_ 'card-comments-title' comments.count }}")
span.badge-icon.fa.fa-comment-o.badge-comment
span.badge-text= comments.count
if description
.badge.badge-state-image-only(title=description)
unless currentUser.isNoComments
if comments.count
.badge(title="{{_ 'card-comments-title' comments.count }}")
span.badge-icon.fa.fa-comment-o.badge-comment
= ' '
= comments.count
//span.badge-comment.badge-text
//| {{_ 'comment'}}
if getDescription
.badge.badge-state-image-only(title=getDescription)
span.badge-icon.fa.fa-align-left
if attachments.count
.badge
+46
View File
@@ -1,3 +1,5 @@
import { Cookies } from 'meteor/ostrio:cookies';
const cookies = new Cookies();
// Template.cards.events({
// 'click .member': Popup.open('cardMember')
// });
@@ -6,4 +8,48 @@ BlazeComponent.extendComponent({
template() {
return 'minicard';
},
events() {
return [
{
'click .js-linked-link'() {
if (this.data().isLinkedCard()) Utils.goCardId(this.data().linkedId);
else if (this.data().isLinkedBoard())
Utils.goBoardId(this.data().linkedId);
},
},
{
'click .js-toggle-minicard-label-text'() {
if (cookies.has('hiddenMinicardLabelText')) {
cookies.remove('hiddenMinicardLabelText'); //true
} else {
cookies.set('hiddenMinicardLabelText', 'true'); //true
}
},
},
];
},
}).register('minicard');
Template.minicard.helpers({
showDesktopDragHandles() {
currentUser = Meteor.user();
if (currentUser) {
return (currentUser.profile || {}).showDesktopDragHandles;
} else if (cookies.has('showDesktopDragHandles')) {
return true;
} else {
return false;
}
},
hiddenMinicardLabelText() {
currentUser = Meteor.user();
if (currentUser) {
return (currentUser.profile || {}).hiddenMinicardLabelText;
} else if (cookies.has('hiddenMinicardLabelText')) {
return true;
} else {
return false;
}
},
});
+144 -5
View File
@@ -9,7 +9,7 @@
&.placeholder
background: darken(white, 20%)
border-radius: 2px
border-radius: 9px
&.ui-sortable-helper
cursor: grabbing
@@ -44,6 +44,16 @@
transition: transform 0.2s,
border-radius 0.2s
&.linked-board
&.linked-card
.linked-icon
display: inline-block
margin-right: 11px
vertical-align: baseline
font-size: 0.9em
.linked-archived
color: #937760
.is-selected &
transform: translateX(11px)
border-bottom-right-radius: 0
@@ -71,12 +81,43 @@
.minicard-labels
float: right
display: flex
flex-wrap: wrap
.minicard-label
width: 11px
height: @width
border-radius: 2px
margin-left: 3px
.minicard-custom-fields
display:block;
.minicard-custom-field
display:flex;
.minicard-custom-field-item
flex-grow: 1
display: block
word-wrap: break-word
max-width: 100px
margin-right: 4px
.handle
width: 20px;
height: 20px;
position: absolute;
right: 5px;
top: 5px;
display:none;
@media only screen {
display:block;
}
.fa-arrows
font-size:20px;
color: #ccc;
.minicard-title
p:last-child
margin-bottom: 0
.viewer
display: block
word-wrap: break-word
max-width: 230px
.dates
display: flex;
flex-direction: row;
@@ -109,7 +150,7 @@
.badge-text
vertical-align: middle
&.badge-comment
margin-bottom: 0.1rem
margin-bottom: 0.1rem
.badge-text
font-size: 0.9em
@@ -119,9 +160,10 @@
padding-left: 0px
line-height: 12px
.minicard-members
.minicard-members,
.minicard-assignees
float: right
margin: 2px -8px -2px 0
margin: 2px -8px 12px 0
.member
float: right
@@ -129,10 +171,17 @@
height: 28px
width: @height
.assignee
float: right
border-radius: 50%
height: 28px
width: @height
+ .badges
margin-top: 10px
.minicard-members:empty
.minicard-members:empty,
.minicard-assignees:empty
display: none
&.minicard-composer
@@ -152,6 +201,13 @@
margin-bottom: 20px
overflow-y: auto
.parent-prefix
color: darken(white, 30%)
font-size: 0.9em
.parent-subtext
color: darken(white, 30%)
font-size: 0.9em
@media screen and (max-width: 800px)
.minicard
.is-selected &
@@ -160,3 +216,86 @@
border-top-right-radius: 0
z-index: 15
box-shadow: 0 1px 2px rgba(0,0,0,.15)
minicard-color(background, color...)
background-color: background
if color
color: color //overwrite text for better visibility
&:hover:not(.minicard-composer),
.is-selected &,
.draggable-hover-card &
background: darken(background, 3%)
.draggable-hover-card &
background: darken(background, 7%)
.minicard-green
minicard-color(#3cb500, #ffffff) //White text for better visibility
.minicard-yellow
minicard-color(#fad900)
.minicard-orange
minicard-color(#ff9f19)
.minicard-red
minicard-color(#eb4646, #ffffff) //White text for better visibility
.minicard-purple
minicard-color(#a632db, #ffffff) //White text for better visibility
.minicard-blue
minicard-color(#0079bf, #ffffff) //White text for better visibility
.minicard-pink
minicard-color(#ff78cb)
.minicard-sky
minicard-color(#00c2e0, #ffffff) //White text for better visibility
.minicard-black
minicard-color(#4d4d4d, #ffffff) //White text for better visibility
.minicard-lime
minicard-color(#51e898)
.minicard-silver
minicard-color(#c0c0c0)
.minicard-peachpuff
minicard-color(#ffdab9)
.minicard-crimson
minicard-color(#dc143c, #ffffff) //White text for better visibility
.minicard-plum
minicard-color(#dda0dd)
.minicard-darkgreen
minicard-color(#006400, #ffffff) //White text for better visibility
.minicard-slateblue
minicard-color(#6a5acd, #ffffff) //White text for better visibility
.minicard-magenta
minicard-color(#ff00ff, #ffffff) //White text for better visibility
.minicard-gold
minicard-color(#ffd700)
.minicard-navy
minicard-color(#000080, #ffffff) //White text for better visibility
.minicard-gray
minicard-color(#808080, #ffffff) //White text for better visibility
.minicard-saddlebrown
minicard-color(#8b4513, #ffffff) //White text for better visibility
.minicard-paleturquoise
minicard-color(#afeeee)
.minicard-mistyrose
minicard-color(#ffe4e1)
.minicard-indigo
minicard-color(#4b0082, #ffffff) //White text for better visibility
+99
View File
@@ -0,0 +1,99 @@
template(name="subtasks")
h3
i.fa.fa-sitemap
| {{_ 'subtasks'}}
if toggleDeleteDialog.get
.board-overlay#card-details-overlay
+subtaskDeleteDialog(subtask = subtaskToDelete)
.card-subtasks-items
each subtask in currentCard.subtasks
+subtaskDetail(subtask = subtask)
if canModifyCard
+inlinedForm(autoclose=false classNames="js-add-subtask" cardId = cardId)
+addSubtaskItemForm
else
a.js-open-inlined-form
i.fa.fa-plus
| {{_ 'add-subtask'}}...
template(name="subtaskDetail")
.js-subtasks.subtask
+inlinedForm(classNames="js-edit-subtask-title" subtask = subtask)
+editSubtaskItemForm(subtask = subtask)
else
.subtask-title
span
a.js-view-subtask(title="{{ subtask.title }}") {{_ "view-it"}}
if canModifyCard
a.js-delete-subtask.toggle-delete-subtask-dialog {{_ "delete"}}...
if canModifyCard
h2.title.js-open-inlined-form.is-editable
+viewer
= subtask.title
else
h2.title
+viewer
= subtask.title
template(name="subtaskDeleteDialog")
.js-confirm-subtask-delete
p
i(class="fa fa-exclamation-triangle" aria-hidden="true")
p
| {{_ 'confirm-subtask-delete-dialog'}}
span {{subtask.title}}
| ?
.js-subtask-delete-buttons
button.confirm-subtask-delete(type="button") {{_ 'delete'}}
button.toggle-delete-subtask-dialog(type="button") {{_ 'cancel'}}
template(name="addSubtaskItemForm")
textarea.js-add-subtask-item(rows='1' autofocus dir="auto")
.edit-controls.clearfix
button.primary.confirm.js-submit-add-subtask-item-form(type="submit") {{_ 'save'}}
a.fa.fa-times-thin.js-close-inlined-form
template(name="editSubtaskItemForm")
textarea.js-edit-subtask-item(rows='1' autofocus dir="auto")
if $eq type 'item'
= item.title
else
= subtask.title
.edit-controls.clearfix
button.primary.confirm.js-submit-edit-subtask-item-form(type="submit") {{_ 'save'}}
a.fa.fa-times-thin.js-close-inlined-form
span(title=createdAt) {{ moment createdAt }}
if canModifyCard
a.js-delete-subtask-item {{_ "delete"}}...
template(name="subtasksItems")
.subtasks-items.js-subtasks-items
each item in subtasks.items
+inlinedForm(classNames="js-edit-subtask-item" item = item subtasks = subtasks)
+editSubtaskItemForm(type = 'item' item = item subtasks = subtasks)
else
+subtaskItemDetail(item = item subtasks = subtasks)
if canModifyCard
+inlinedForm(autoclose=false classNames="js-add-subtask-item" subtasks = subtasks dir="auto")
+addSubtaskItemForm
else
a.add-subtask-item.js-open-inlined-form
i.fa.fa-plus
| {{_ 'add-subtask-item'}}...
template(name='subtaskItemDetail')
.js-subtasks-item.subtasks-item
if canModifyCard
.check-box.materialCheckBox(class="{{#if item.isFinished }}is-checked{{/if}}")
.item-title.js-open-inlined-form.is-editable(class="{{#if item.isFinished }}is-checked{{/if}}")
+viewer
= item.title
else
.materialCheckBox(class="{{#if item.isFinished }}is-checked{{/if}}")
.item-title(class="{{#if item.isFinished }}is-checked{{/if}}")
+viewer
= item.title
+167
View File
@@ -0,0 +1,167 @@
BlazeComponent.extendComponent({
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
}).register('subtaskDetail');
BlazeComponent.extendComponent({
addSubtask(event) {
event.preventDefault();
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 sortIndex = -1;
const crtBoard = Boards.findOne(card.boardId);
const targetBoard = crtBoard.getDefaultSubtasksBoard();
const listId = targetBoard.getDefaultSubtasksListId();
const swimlaneId = targetBoard.getDefaultSwimline()._id;
if (title) {
const _id = Cards.insert({
title,
parentId: cardId,
members: [],
labelIds: [],
customFields: [],
listId,
boardId: targetBoard._id,
sort: sortIndex,
swimlaneId,
type: 'cardType-card',
});
// In case the filter is active we need to add the newly inserted card in
// the list of exceptions -- cards that are not filtered. Otherwise the
// card will disappear instantly.
// See https://github.com/wekan/wekan/issues/80
Filter.addException(_id);
setTimeout(() => {
this.$('.add-subtask-item')
.last()
.click();
}, 100);
}
textarea.value = '';
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) {
subtask.archive();
this.toggleDeleteDialog.set(false);
}
},
editSubtask(event) {
event.preventDefault();
const textarea = this.find('textarea.js-edit-subtask-item');
const title = textarea.value.trim();
const subtask = this.currentData().subtask;
subtask.setTitle(title);
},
onCreated() {
this.toggleDeleteDialog = new ReactiveVar(false);
this.subtaskToDelete = null; //Store data context to pass to subtaskDeleteDialog template
},
pressKey(event) {
//If user press enter key inside a form, submit it
//Unless the user is also holding down the 'shift' key
if (event.keyCode === 13 && !event.shiftKey) {
event.preventDefault();
const $form = $(event.currentTarget).closest('form');
$form.find('button[type=submit]').click();
}
},
events() {
const events = {
'click .toggle-delete-subtask-dialog'(event) {
if ($(event.target).hasClass('js-delete-subtask')) {
this.subtaskToDelete = this.currentData().subtask; //Store data context
}
this.toggleDeleteDialog.set(!this.toggleDeleteDialog.get());
},
'click .js-view-subtask'(event) {
if ($(event.target).hasClass('js-view-subtask')) {
const subtask = this.currentData().subtask;
const board = subtask.board();
FlowRouter.go('card', {
boardId: board._id,
slug: board.slug,
cardId: subtask._id,
});
}
},
};
return [
{
...events,
'submit .js-add-subtask': this.addSubtask,
'submit .js-edit-subtask-title': this.editSubtask,
'click .confirm-subtask-delete': this.deleteSubtask,
keydown: this.pressKey,
},
];
},
}).register('subtasks');
Template.subtaskDeleteDialog.onCreated(() => {
const $cardDetails = this.$('.card-details');
this.scrollState = {
position: $cardDetails.scrollTop(), //save current scroll position
top: false, //required for smooth scroll animation
};
//Callback's purpose is to only prevent scrolling after animation is complete
$cardDetails.animate({ scrollTop: 0 }, 500, () => {
this.scrollState.top = true;
});
//Prevent scrolling while dialog is open
$cardDetails.on('scroll', () => {
if (this.scrollState.top) {
//If it's already in position, keep it there. Otherwise let animation scroll
$cardDetails.scrollTop(0);
}
});
});
Template.subtaskDeleteDialog.onDestroyed(() => {
const $cardDetails = this.$('.card-details');
$cardDetails.off('scroll'); //Reactivate scrolling
$cardDetails.animate({ scrollTop: this.scrollState.position });
});
Template.subtaskItemDetail.helpers({
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
});
BlazeComponent.extendComponent({
// ...
}).register('subtaskItemDetail');
+142
View File
@@ -0,0 +1,142 @@
.js-add-subtask
color: #8c8c8c
textarea.js-add-subtask-item, textarea.js-edit-subtask-item
overflow: hidden
word-wrap: break-word
resize: none
height: 34px
.delete-text
color: #8c8c8c
text-decoration: underline
word-wrap: break-word
float: right
padding-top: 6px
&:hover
color: inherit
.subtask-title
.checkbox
float: left
width: 30px
height 30px
font-size: 18px
line-height: 30px
.title
font-size: 18px
line-height: 25px
.subtasks-stat
margin: 0 0.5em
float: right
padding-top: 6px
&.is-finished
color: #3cb500
.js-delete-subtask
@extends .delete-text
margin: 0 0.5em
.js-view-subtask
@extends .delete-text
.js-confirm-subtask-delete
background-color: darken(white, 3%)
position: absolute
float: left;
width: 60%
margin-top: 0
margin-left: 13%
padding-bottom: 2%
padding-left: 3%
padding-right: 3%
z-index: 17
border-radius: 3px
p
position: relative
margin-top: 3%
width: 100%
text-align: center
span
font-weight: bold
i
font-size: 2em
.js-subtask-delete-buttons
position: relative
padding: left 2% right 2%
.confirm-subtask-delete
margin-left: 12%
float: left
.toggle-delete-subtask-dialog
margin-right: 12%
float: right
#card-details-overlay
top: 0
bottom: -600px
right: 0
.subtasks
background: darken(white, 3%)
&.placeholder
background: darken(white, 20%)
border-radius: 2px
&.ui-sortable-helper
box-shadow: -2px 2px 8px rgba(0, 0, 0, .3),
0 0 1px rgba(0, 0, 0, .5)
transform: rotate(4deg)
cursor: grabbing
.subtasks-item
margin: 0 0 0 0.1em
line-height: 18px
font-size: 1.1em
margin-top: 3px
display: flex
background: darken(white, 3%)
&.placeholder
background: darken(white, 20%)
border-radius: 2px
&.ui-sortable-helper
box-shadow: -2px 2px 8px rgba(0, 0, 0, .3),
0 0 1px rgba(0, 0, 0, .5)
transform: rotate(4deg)
cursor: grabbing
&:hover
background-color: darken(white, 8%)
.check-box
margin: 0.1em 0 0 0;
&.is-checked
border-bottom: 2px solid #3cb500
border-right: 2px solid #3cb500
.item-title
flex: 1
padding-left: 10px;
&.is-checked
color: #8c8c8c
font-style: italic
& .viewer
p
margin-bottom: 2px
.js-delete-subtask-item
margin: 0 0 0.5em 1.33em
@extends .delete-text
padding: 12px 0 0 0
.add-subtask-item
margin: 0.2em 0 0.5em 1.33em
display: inline-block
+15
View File
@@ -0,0 +1,15 @@
template(name="datepicker")
.datepicker-container
form.edit-date
.fields
.left
label(for="date") {{_ 'date'}}
input.js-date-field#date(type="text" name="date" value=showDate placeholder=dateFormat autofocus)
.right
label(for="time") {{_ 'time'}}
input.js-time-field#time(type="text" name="time" value=showTime placeholder=timeFormat)
.js-datepicker
if error.get
.warning {{_ error.get}}
button.primary.wide.left.js-submit-date(type="submit") {{_ 'save'}}
button.js-delete-date.negate.wide.right.js-delete-date {{_ 'delete'}}
+17
View File
@@ -0,0 +1,17 @@
.datepicker-container
.fields
.left
width: 56%
.right
width: 38%
.datepicker
width: 100%
table
width: 100%
border: none
border-spacing: 0
border-collapse: collapse
thead
background: none
td, th
box-sizing: border-box
+60 -1
View File
@@ -1,10 +1,10 @@
@import 'nib'
select,
textarea,
input:not([type=file]),
button
box-sizing: border-box
-webkit-appearance: none
background-color: #ebebeb
border: 1px solid #ccc
border-radius: 3px
@@ -85,6 +85,9 @@ select
width: 256px
margin-bottom: 8px
&.inline
width: 100%
option[disabled]
color: #8c8c8c
@@ -222,9 +225,12 @@ textarea
.edit-controls,
.add-controls
display: flex
align-items: baseline
margin-top: 0
button[type=submit]
input[type=button]
float: left
height: 32px
margin-top: -2px
@@ -630,6 +636,59 @@ button
a, .quiet
color: white
// Material Design Toggle Switch
.material-toggle-switch
display: flex
.toggle-label
position: relative
display: block
height: 20px
width: 44px
background-color: #a6a6a6
border-radius: 100px
cursor: pointer
transition: all 0.3s ease
&:after
position: absolute
left: -2px
top: -3px
display: block
width: 26px
height: 26px
border-radius: 100px
background-color: #fff
box-shadow: 0px 3px 3px rgba(0,0,0,0.05)
content: ''
transition: all 0.3s ease
&:active
&:after
transform: scale(1.15, 0.85)
.toggle-switch:checked ~ .toggle-label
background-color: #6fbeb5
&:after
left: 20px
background-color: #179588
.toggle-switch:checked:disabled ~ .toggle-label
background-color: #d5d5d5
pointer-events: none
&:after
background-color: #bcbdbc
.toggle-switch
display: none
.toggle-switch-title
margin: 0 0.5em
display: flex
@media screen and (max-width: 800px)
.edit-controls,
.add-controls
+5 -2
View File
@@ -2,7 +2,7 @@ template(name="importHeaderBar")
h1
a.back-btn(href="{{pathFor 'home'}}")
i.fa.fa-chevron-left
| {{_ 'import-board-title'}}
| {{_ title}}
template(name="import")
.wrapper
@@ -12,9 +12,12 @@ template(name="import")
template(name="importTextarea")
form
p: label(for='import-textarea') {{_ 'import-board-trello-instruction'}}
p: label(for='import-textarea') {{_ instruction}} {{_ 'import-board-instruction-about-errors'}}
textarea.js-import-json(placeholder="{{_ 'import-json-placeholder'}}" autofocus)
| {{jsonText}}
if isSandstorm
h1.warning {{_ 'import-sandstorm-backup-warning'}}
p.warning {{_ 'import-sandstorm-warning'}}
input.primary.wide(type="submit" value="{{_ 'import'}}")
template(name="importMapMembers")
+82 -57
View File
@@ -1,3 +1,12 @@
import trelloMembersMapper from './trelloMembersMapper';
import wekanMembersMapper from './wekanMembersMapper';
BlazeComponent.extendComponent({
title() {
return `import-board-title-${Session.get('importSource')}`;
},
}).register('importHeaderBar');
BlazeComponent.extendComponent({
onCreated() {
this.error = new ReactiveVar('');
@@ -5,6 +14,7 @@ BlazeComponent.extendComponent({
this._currentStepIndex = new ReactiveVar(0);
this.importedData = new ReactiveVar();
this.membersToMap = new ReactiveVar([]);
this.importSource = Session.get('importSource');
},
currentTemplate() {
@@ -27,7 +37,10 @@ BlazeComponent.extendComponent({
const dataObject = JSON.parse(dataJson);
this.setError('');
this.importedData.set(dataObject);
this._prepareAdditionalData(dataObject);
const membersToMap = this._prepareAdditionalData(dataObject);
// store members data and mapping in Session
// (we go deep and 2-way, so storing in data context is not a viable option)
this.membersToMap.set(membersToMap);
this.nextStep();
} catch (e) {
this.setError('error-json-malformed');
@@ -43,7 +56,7 @@ BlazeComponent.extendComponent({
const membersMapping = this.membersToMap.get();
if (membersMapping) {
const mappingById = {};
membersMapping.forEach((member) => {
membersMapping.forEach(member => {
if (member.wekanId) {
mappingById[member.id] = member.wekanId;
}
@@ -51,32 +64,34 @@ BlazeComponent.extendComponent({
additionalData.membersMapping = mappingById;
}
this.membersToMap.set([]);
Meteor.call('importTrelloBoard', this.importedData.get(), additionalData,
Meteor.call(
'importBoard',
this.importedData.get(),
additionalData,
this.importSource,
Session.get('fromBoard'),
(err, res) => {
if (err) {
this.setError(err.error);
} else {
Session.set('fromBoard', null);
Utils.goBoardId(res);
}
}
},
);
},
_prepareAdditionalData(dataObject) {
// 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
// imported member
const membersToMap = dataObject.members;
// auto-map based on username
membersToMap.forEach((importedMember) => {
const wekanUser = Users.findOne({ username: importedMember.username });
if (wekanUser) {
importedMember.wekanId = wekanUser._id;
}
});
// store members data and mapping in Session
// (we go deep and 2-way, so storing in data context is not a viable option)
this.membersToMap.set(membersToMap);
const importSource = Session.get('importSource');
let membersToMap;
switch (importSource) {
case 'trello':
membersToMap = trelloMembersMapper.getMembersToMap(dataObject);
break;
case 'wekan':
membersToMap = wekanMembersMapper.getMembersToMap(dataObject);
break;
}
return membersToMap;
},
@@ -90,23 +105,31 @@ BlazeComponent.extendComponent({
return 'importTextarea';
},
instruction() {
return `import-board-instruction-${Session.get('importSource')}`;
},
events() {
return [{
submit(evt) {
return this.parentComponent().importData(evt);
return [
{
submit(evt) {
return this.parentComponent().importData(evt);
},
},
}];
];
},
}).register('importTextarea');
BlazeComponent.extendComponent({
onCreated() {
this.autorun(() => {
this.parentComponent().membersToMap.get().forEach(({ wekanId }) => {
if (wekanId) {
this.subscribe('user-miniprofile', wekanId);
}
});
this.parentComponent()
.membersToMap.get()
.forEach(({ wekanId }) => {
if (wekanId) {
this.subscribe('user-miniprofile', wekanId);
}
});
});
},
@@ -131,23 +154,23 @@ BlazeComponent.extendComponent({
_setPropertyForMember(property, value, memberId, unset = false) {
const listOfMembers = this.members();
let finder = null;
if(memberId) {
finder = (member) => member.id === memberId;
if (memberId) {
finder = member => member.id === memberId;
} else {
finder = (member) => member.selected;
finder = member => member.selected;
}
listOfMembers.forEach((member) => {
if(finder(member)) {
if(value !== null) {
listOfMembers.forEach(member => {
if (finder(member)) {
if (value !== null) {
member[property] = value;
} else {
delete member[property];
}
if(!unset) {
if (!unset) {
// we shortcut if we don't care about unsetting the others
return false;
}
} else if(unset) {
} else if (unset) {
delete member[property];
}
return true;
@@ -168,9 +191,9 @@ BlazeComponent.extendComponent({
const allMembers = this.members();
let finder = null;
if (memberId) {
finder = (user) => user.id === memberId;
finder = user => user.id === memberId;
} else {
finder = (user) => user.selected;
finder = user => user.selected;
}
return allMembers.find(finder);
},
@@ -179,7 +202,7 @@ BlazeComponent.extendComponent({
return this._setPropertyForMember('wekanId', wekanId, null);
},
unmapMember(memberId){
unmapMember(memberId) {
return this._setPropertyForMember('wekanId', null, memberId);
},
@@ -188,22 +211,22 @@ BlazeComponent.extendComponent({
this.parentComponent().nextStep();
},
onMapMember(evt) {
const memberToMap = this.currentData();
if(memberToMap.wekan) {
// todo xxx ask for confirmation?
this.unmapMember(memberToMap.id);
} else {
this.setSelectedMember(memberToMap.id);
Popup.open('importMapMembersAdd')(evt);
}
},
events() {
return [{
'submit': this.onSubmit,
'click .js-select-member': this.onMapMember,
}];
return [
{
submit: this.onSubmit,
'click .js-select-member'(evt) {
const memberToMap = this.currentData();
if (memberToMap.wekan) {
// todo xxx ask for confirmation?
this.unmapMember(memberToMap.id);
} else {
this.setSelectedMember(memberToMap.id);
Popup.open('importMapMembersAdd')(evt);
}
},
},
];
},
}).register('importMapMembers');
@@ -212,14 +235,16 @@ BlazeComponent.extendComponent({
this.find('.js-map-member input').focus();
},
onSelectUser(){
onSelectUser() {
Popup.getOpenerComponent().mapSelectedMember(this.currentData()._id);
Popup.back();
},
events() {
return [{
'click .js-select-import': this.onSelectUser,
}];
return [
{
'click .js-select-import': this.onSelectUser,
},
];
},
}).register('importMapMembersAddPopup');
@@ -0,0 +1,14 @@
export function getMembersToMap(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
// imported member
const membersToMap = data.members;
// auto-map based on username
membersToMap.forEach(importedMember => {
const wekanUser = Users.findOne({ username: importedMember.username });
if (wekanUser) {
importedMember.wekanId = wekanUser._id;
}
});
return membersToMap;
}
@@ -0,0 +1,24 @@
export function getMembersToMap(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
// imported member
const membersToMap = data.members;
const users = data.users;
// auto-map based on username
membersToMap.forEach(importedMember => {
importedMember.id = importedMember.userId;
delete importedMember.userId;
const user = users.filter(user => {
return user._id === importedMember.id;
})[0];
if (user.profile && user.profile.fullname) {
importedMember.fullName = user.profile.fullname;
}
importedMember.username = user.username;
const wekanUser = Users.findOne({ username: importedMember.username });
if (wekanUser) {
importedMember.wekanId = wekanUser._id;
}
});
return membersToMap;
}
+4
View File
@@ -2,3 +2,7 @@ template(name='list')
.list.js-list(id="js-list-{{_id}}")
+listHeader
+listBody
template(name='miniList')
a.mini-list.js-select-list.js-list(id="js-list-{{_id}}")
+listHeader
Loaded 100 of 765 files, more files were not shown because too many files have changed in this diff. Show more