Compare commits

...
461 Commits
Author SHA1 Message Date
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 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
178 changed files with 60114 additions and 31138 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.16.1 \
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
+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/']
+5 -4
View File
@@ -7,8 +7,9 @@ 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 https://github.com/wekan/wekan/wiki/Settings ?
* 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:
@@ -16,12 +17,12 @@ Other Wekan issues can be added here.
* Http frontend if any (Caddy, Nginx, Apache, see config examples from Wekan GitHub wiki first):
* Node Version:
* MongoDB Version:
* ROOT_URL environment variable http(s)://(subdomain).example.com(/suburl):
* 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` ?*
- *If using Docker, what does show command `sudo docker logs wekan-app` ?*
- *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*
+4 -1
View File
@@ -8,7 +8,6 @@ npm-debug.log
.vscode/
.idea/
.build/*
package-lock.json
**/parts/
**/stage
**/prime
@@ -29,3 +28,7 @@ versions.json
.Trashes
Thumbs.db
ehthumbs.db
.eslintcache
.meteor/local
.meteor-1.6-snap/.meteor/local
.devcontainer/docker-compose.extend.yml
+4 -1
View File
@@ -75,7 +75,6 @@ horka:swipebox
dynamic-import@0.5.1
staringatlights:fast-render
mixmax:smart-disconnect
accounts-password@1.5.1
cfs:gridfs
rzymek:fullcalendar
@@ -93,3 +92,7 @@ meteorhacks:picker
lamhieu:unblock
meteorhacks:aggregate@1.3.0
wekan-markdown
konecty:mongo-counter
percolate:synced-cron
easylogic:summernote
cfs:filesystem
+7 -3
View File
@@ -14,7 +14,7 @@ audit-argument-checks@1.0.7
autoupdate@1.6.0
babel-compiler@7.3.4
babel-runtime@1.3.0
base64@1.0.11
base64@1.0.12
binary-heap@1.0.11
blaze@2.3.3
blaze-tools@1.0.10
@@ -30,6 +30,7 @@ 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
@@ -55,6 +56,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.12.7
ecmascript-runtime@0.7.0
ecmascript-runtime-client@0.8.0
@@ -79,6 +81,7 @@ 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.0.1
lamhieu:unblock@1.0.0
launch-screen@1.1.1
@@ -102,13 +105,12 @@ minifier-css@1.4.2
minifier-js@2.4.1
minifiers@1.1.8-faster-rebuild.0
minimongo@1.4.5
mixmax:smart-disconnect@0.0.4
mobile-status-bar@1.0.14
modern-browsers@0.1.4
modules@0.13.0
modules-runtime@0.10.3
momentjs:moment@2.24.0
mongo@1.6.2
mongo@1.6.3
mongo-decimal@0.1.1
mongo-dev-server@1.1.0
mongo-id@1.0.7
@@ -136,6 +138,7 @@ peerlibrary:base-component@0.16.0
peerlibrary:blaze-components@0.15.1
peerlibrary:computed-field@0.9.0
peerlibrary:reactive-field@0.5.0
percolate:synced-cron@1.3.2
promise@0.11.2
raix:eventemitter@0.1.3
raix:handlebar-helpers@0.2.5
@@ -174,6 +177,7 @@ 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
+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:
+4 -4
View File
@@ -1,10 +1,10 @@
dist: trusty
dist: disco
sudo: required
env:
TRAVIS_DOCKER_COMPOSE_VERSION: 1.17.0
TRAVIS_NODE_VERSION: 8.9.3
TRAVIS_NPM_VERSION: 5.5.1
TRAVIS_DOCKER_COMPOSE_VERSION: 1.24.0
TRAVIS_NODE_VERSION: 8.16.1
TRAVIS_NPM_VERSION: 6.4.1
before_install:
- sudo apt-get update -y
+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"]
}
]
}
+671
View File
@@ -1,3 +1,674 @@
# v3.43 2019-09-17 Wekan release
This release fixes the following bugs:
- [In richer editor, @user might not get pickup correctly, if it's formated](https://github.com/wekan/wekan/pull/2715).
Thanks to whowillcare.
- [Table content should have word-wrap](https://github.com/wekan/wekan/pull/2715).
Thanks to whowillcare.
- [Two-way hooks locking mechanism will fail sometime, therefore, change all comment insert or update to direct, which means it won't invoke any hook](https://github.com/wekan/wekan/pull/2715).
Thanks to whowillcare.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.42 2019-09-14 Wekan release
This release removed the following new features:
- [Revert drag handle changes of Wekan v3.41](https://github.com/wekan/wekan/commit/57119868bbb49f47c7d0b51b9952df9bd83d46f5).
Thanks to Keelan.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.41 2019-09-13 Wekan release
This release adds the following new features:
- [More Mobile and Desktop drag handles for Swimlanes/Lists/Cards. Part 1](https://github.com/wekan/wekan/commit/ff550e91103115e7b731dd80c4588b93b2d4c64f).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.40 2019-09-11 Wekan release
This release fixes the following bugs:
- [Fix subcard selector](https://github.com/wekan/wekan/pull/2697).
Thanks to justinr1234.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.39 2019-09-11 Wekan release
This release fixes the following bugs:
- [To load all boards, revert Wekan v3.37 Fix Linked cards make load all cards of database](https://github.com/wekan/wekan/commit/6ce8eeee6c477cd39b684c47bf122b5872818ada).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.38 2019-09-11 Wekan release
- Update translations. Thanks to translators.
# v3.37 2019-09-07 Wekan release
This release fixes the following bugs:
- LDAP: [Fix USERDN example, when parameters contain spaces](https://github.com/wekan/wekan/commit/6cbd4cabc716c755e547abb798f657fe5476ed04).
LDAP_AUTHENTIFICATION_USERDN="CN=ldap admin,CN=users,DC=domainmatter,DC=lan" .
Thanks to compumatter.
- [Fix: Linked cards make load all cards of database](https://github.com/wekan/wekan/commit/a56988c487745b2879cebe1943e7a987016e8bef).
Thanks to Akuket.
- [Fix Unable to drag select text without closing card details](https://github.com/wekan/wekan/pull/2690).
Thanks to justinr1234.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.36 2019-09-05 Wekan release
This release adds the following new features:
- [Complete the original author's webhook functions and add two-way webhook type](https://github.com/wekan/wekan/pull/2665):
1. Make webhook function more complete by allowing user to specify name and token of
a webhook to increase security.
1. Allow wekan admin to sepcify a global webhook.
3. Add new type of two-way webhook that can act on the JSON webhook return payload:
3.1. If the payload data contains cardId, boardId, and comment key words,
3.2. If it has commentId, an existing comment will be modified
3.3. If it doesn't have commentId, then a new comment will be added, otherwise, does nothing.
Thanks to whowillcare.
- [Patch admin search feature to Search in all users, not just "loaded" users
in the client](https://github.com/wekan/wekan/pull/2667).
Thanks to Akuket.
- [Devcontainer: Moved MAIL-Vars to not-committed file, and added PATH with meteor to
Environment](https://github.com/wekan/wekan/pull/2672).
Thanks to road42.
and fixes the following bugs:
- [Fix incorrect date types for created and updated, so now newest card comments are at top](https://github.com/wekan/wekan/pull/2679).
Thanks to justinr1234.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.35 2019-08-29 Wekan release
This release fixes the following bugs:
- [Try to fix Snap](https://github.com/wekan/wekan/commit/71d32c6bc8e6affd345026797ff31e94a0a10d77).
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.34 2019-08-29 Wekan release
This release fixes the following bugs:
- [Snap: Delete all .swp files](https://github.com/wekan/wekan/commit/d5403bbfc53390aeaaf68eb452bc24d88f1e0942).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.33 2019-08-29 Wekan release
This release adds the following new features:
- [Add card color to calendar event. The color of the calendar event will match the card
color](https://github.com/wekan/wekan/pull/2664).
Thanks to grmpfhmbl.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.32 2019-08-29 Wekan release
This release fixes the following bugs:
- [Fix Snap adopt-info](https://github.com/wekan/wekan/commit/79d4cd83b1fa83bb814230683b7449ed7f3e1ede).
Thanks to [popey at Snapcraft forum](https://forum.snapcraft.io/t/dirty-snap-release/12975/12).
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.31 2019-08-29 Wekan release
This release fixes the following bugs:
- [Try](https://github.com/wekan/wekan/commit/be5f435bc5f500b24bc838ac1dc8bf3bb9a33a22) to
[fix adopt-info](https://forum.snapcraft.io/t/dirty-snap-release/12975/8).
Thanks to ogra at Snapcraft forum.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.30 2019-08-29 Wekan release
This release fixes the following bugs:
- Snap: [Change version-script to adopt-info](https://github.com/wekan/wekan/commit/0ff5ce8fde6cc9a05a3c8b93e18ebce7282d3a67)
to [fix dirty](https://forum.snapcraft.io/t/dirty-snap-release/12975/4).
Thanks to popey and daniel at Snapcraft forum.
- [Delete another phantomjs binary from Snap](https://github.com/wekan/wekan/commit/5084102e6e17fa2cb3bc8c1180745e15379fab5f).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.29 2019-08-29 Wekan release
This release fixes the following bugs:
- [Fix Snap](https://github.com/wekan/wekan/commit/7761a22bb4e88ad9a5a39ed84e1ff244015c3a58).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.28 2019-08-29 Wekan release
This release fixes the following bugs:
- Fix broken Sandstorm release by reverting upgrading MongoDB.
Thanks to xet7
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.27 2019-08-29 Wekan release
This release adds the following upgrades:
- [Upgrade Node, Mongo, fibers and qs](https://github.com/wekan/wekan/commit/e21c47d3cfe0f228ce5ab394142c6ec6ee090d65).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.26 2019-08-28 Wekan release
This release adds the following new features:
- [Add devcontainer](https://github.com/wekan/wekan/pull/2659) and some [related fixes](https://github.com/wekan/wekan/pull/2660).
Thanks to road42.
and fixes the following bugs:
- [Add missing modules](https://github.com/wekan/wekan/pull/2653).
Thanks to GhassenRjab.
- [Add package-lock.json](https://github.com/wekan/wekan/commit/ad01526124216abcc8b3c8230599c4eda331a86d).
Thanks to GhassenRjab and xet7.
- [Fix last label undefined](https://github.com/wekan/wekan/pull/2657).
Thanks to justinr1234.
- [Default to BIGEVENTS_PATTERN=NONE so that Wekan sends less email notifications](https://github.com/wekan/wekan/commit/0083215ea3955a950d345d44a8663e5b05e8f00f).
Thanks to rinnaz and xet7.
- [Fix app hang when Meteor.user() is null and list spinner is loaded bug](https://github.com/wekan/wekan/pull/2654).
Thanks to urakagi.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.25 2019-08-23 Wekan release
This release adds the following new features:
- [Limit card width to fixed size](https://github.com/wekan/wekan/commit/0dd3ff29f2b558bc912b330f178347035dcc46c7).
Thanks to xet7.
and fixes the following bugs:
- [Fix](https://github.com/wekan/wekan/pull/2645) [selecting user accounts when importing from Trello](https://github.com/wekan/wekan/issues/2638).
Thanks to justrinr1234.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.24 2019-08-22 Wekan release
This release fixes the following bugs:
- [Snap: Delete old MongoDB log, and log to syslog instead, because syslog usually already has
log rotation](https://github.com/wekan/wekan/commit/cc792ddd57691bb54972c73b9c861c768fce8c34).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.23 2019-08-20 Wekan release
This release fixes the following bugs:
- [Fix login did not work](https://github.com/wekan/wekan/commit/b2deab544bfeea49017bec27f92f1269b0b7ec43).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.22 2019-08-20 Wekan release
This release adds the following new features:
- [Wrap minicard text labels to multiple rows](https://github.com/wekan/wekan/commit/af830812dbbf7d766a754d937308b11373c66e5a).
Thanks to xet7.
and fixes the following bugs:
- [Fix: Some users cannot switch views or languages](https://github.com/wekan/wekan/issues/2630).
Thanks to xet7 and justinr1234.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.21 2019-08-16 Wekan release
This release adds the following new features:
- [In the filter menu, 1) Turning on "show archive" will request archived lists and show them on the ListView.
2) Turning on "hide empty lists" will hide empty lists on the ListView](https://github.com/wekan/wekan/pull/2632).
Thanks to urakagi.
and fixes the following bugs:
- [Fix mismatched queries](https://github.com/wekan/wekan/pull/2628).
Thanks to justinr1234.
- [Fix Summernote too wide when in mobile screen](https://github.com/wekan/wekan/issues/2621).
Thanks to whowillcare.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.20 2019-08-15 Wekan release
This release fixes the following security issues:
- [Revert permission change](https://github.com/wekan/wekan/commit/d302d6f857657ada229f78d9fcd32f63753d9779),
related [#2590](https://github.com/wekan/wekan/issues/2590) and
[these comments](https://github.com/wekan/wekan/commit/9f6d615ee5bbdb7552e6bdcae75a76a7f74fef7a#commitcomment-34636513).
Thanks to road42, justinr1234 and xet7.
and adds the following new features:
- On board, BoardAdmin and normal user can now [invite new user directly
with email address](https://github.com/wekan/wekan/issues/2060),
[without using Admin Panel or registering
at /sign-up](https://github.com/wekan/wekan/commit/5c696e5a3c70d31a7af6e47cbcf691f6c18eb384).
Thanks to xet7.
and fixes the following bugs:
- [Fix bug: When on board, clicking Admin Panel redirects to All Boards page, so it did require
to click Admin Panel again](https://github.com/wekan/wekan/commit/d302d6f857657ada229f78d9fcd32f63753d9779).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.18 2019-08-15 Wekan release
This release adds the following new features:
- [Send webhook message](https://github.com/wekan/wekan/issues/2518) when
[cardDetails is rendered](https://github.com/wekan/wekan/pull/2620).
Thanks to jymcheong.
- Related to [above new feature](https://github.com/wekan/wekan/issues/2518),
Add [setting CARD_OPENED_WEBHOOK_ENABLED=false as
default](https://github.com/wekan/wekan/commit/b8c527d52bec7272c890385f11e26acec65822ae).
Thanks to xet7.
and adds the following updates:
- [Update base64 dependency](https://github.com/wekan/wekan/commit/c87001fa9f8d1fa13640ae604b1ba46556c7813c).
Thanks to xet7.
and fixes the following bugs:
- [Time line is missing delete/edit comments, add English i18n for these two activities,
For html email msg needs](https://github.com/wekan/wekan/pull/2615).
Thanks to whowillcare.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.17 2019-08-13 Wekan release
This release fixes the following bugs:
- [Fix ReferenceError: cardAssignees is not defined](https://github.com/wekan/wekan/issues/2612).
Reverted In-Progress Assignee field, moving it to feature branch.
Thanks to saschafoerster and to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.16 2019-08-13 Wekan release
This release adds the following new features:
- [Make Admin Panel text like version etc selectable](https://github.com/wekan/wekan/commit/5aa090e91184764afeac8b7c7bf4b4cb947c8f17).
Thanks to xet7.
- [Add to Admin Panel / Version: Meteor version, MongoDB version, MongoDB storage engine, MongoDB Oplog
enabled](https://github.com/wekan/wekan/commit/20294d833a2bf0bd1720444f4ffe018b025dacca).
Thanks to RocketChat developers for MongoDB detection code and xet7 for other code.
- [Use Meteor 1.8.1 and MongoDB 3.2.22 in Snap](https://github.com/wekan/wekan/commit/39ffe1d80dad5759b338d4ed2d6c576717af2a07).
Removed Meteor 1.6.x files.
Thanks to xet7.
- [Enable HTML email content for richer comment](https://github.com/wekan/wekan/pull/2611).
Thanks to whowillcare.
and fixes the following bugs:
- [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.
- [Fixed a few issues related summernote enabled: 1) @ user couldn't send out email sometime, due to html format.
2) @ user link wasn't able to show user info by clicking](https://github.com/wekan/wekan/pull/2611).
Thanks to whowillcare.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.15 2019-08-11 Wekan release
This release fixes the following bugs:
- [Try to fix Snap](https://github.com/wekan/wekan/commit/a1d883b22f73f4bef6d547f94dcb900f475fcb41).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.14 2019-08-11 Wekan release
This release adds the following new features:
- [On wekan master specifying ATTACHMENTS_STORE_PATH, it will try its best keeping original attachments, only newer
attachments will be stored into specified path](https://github.com/wekan/wekan/pull/2607).
Thanks to whowillcare.
- [Made image upload in summernote as attachment to wekan board instead of base64 string,
which would make the comments use less bytes and be able to take advantage of using local file system feature
as attachment](https://github.com/wekan/wekan/pull/2608).
Thanks to whowillcare.
and fixes the following bugs:
- [Fix bug: Unable to disable richer comment editor](https://github.com/wekan/wekan/pull/2607).
Thanks to whowillcare.
- [Changed rm to rm -f in wekan snap build, and add packages that somehow didn't get install during snapcraft
build](https://github.com/wekan/wekan/pull/2608).
Thanks to whowillcare.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.13 2019-08-09 Wekan release
Update translations. Thanks to translators.
# v3.12 2019-08-09 Wekan release
This release adds the following new features:
- [Allowing wekan server admin to specify the attachments to be uploaded to server
file system instead of mongodb by specifying a system
env var: ATTACHMENTS_STORE_PATH](https://github.com/wekan/wekan/pull/2603).
The only caveat for this is if it's not a brand new wekan, if the wekan
server admin switchs to this setting, their old attachments won't be available
anymore, unless someone make a script to export them out to the filesystem.
Thanks to whowillcare.
- [Allowing user to insert video, link and image, or paste in html with sanitization.
In user comments display area, images can be clicked and shown as
swipebox](https://github.com/wekan/wekan/pull/2593).
Thanks to whowillcare.
and fixes the following bugs:
- [Fix comment-editor marking issue](https://github.com/wekan/wekan/issues/2575).
Thanks to whowillcare.
- [Bugfix: style kbd font color became white after introduced summernote editor
to card comments](https://github.com/wekan/wekan/pull/2600).
Thanks to whowillcare.
- [Show All Boards / Clone Board and Archive Board only to BoardAdmin/Admin/Sandstorm users
on desktop webbrowser view, so that it's not possible for normal users to make accidental
clicks to those](https://github.com/wekan/wekan/issues/2599).
Thanks to derbolle and xet7.
- [Fix bug on editing users informations, switching to other view, staring
a board](https://github.com/wekan/wekan/issues/2590).
Thanks to road42.
- [Fix null access with board body](https://github.com/wekan/wekan/pull/2602).
Thanks to justinr1234.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.11 2019-08-07 Wekan release
This release fixes the following bugs:
- [Remove non-existing file from snapcraft.yaml to get Snap to build](https://github.com/wekan/wekan/commit/ad82a900e8ec636a72c6e74bb8489559ce2a8bf0).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.10 2019-08-07 Wekan release
This release fixes the following bugs:
- [Add missing dependencies back and revert deleting phantomjs](https://github.com/wekan/wekan/commit/32e9aa0ddaf1b015825b8c62ad17ed74b449e4b1).
Thanks to whowillcare and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.09 2019-08-07 Wekan release
This release adds the following features:
- [Hide minicard label text: per user checkbox setting at sidebar](https://github.com/wekan/wekan/commit/f7e0b837d394d55d66d451c34f43fa8afd357e5b).
Thanks to xet7.
and fixes the following bugs:
- [Make Save button visible again at Admin Panel People Edit](https://github.com/wekan/wekan/commit/716fc32968e7dd51b64a11c6c33e59aee849c982).
Thanks to sclerc-chss and xet7.
- [Fix checking if API is enabled](https://github.com/wekan/wekan/pull/2588).
Thanks to justinr1234.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.08 2019-08-07 Wekan release
This release fixes the following bugs:
- [Removed removing phantomjs from snap, because snap build did stop to error
no phantomjs could be removed](https://github.com/wekan/wekan/commit/7d8f1dee62f285a4587fb40e7331d0f500b2e5fb).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.07 2019-08-07 Wekan release
This release fixes the following bugs:
- [Try to make release sizes smaller by deleting phantomjs](https://github.com/wekan/wekan/commit/1fc3a1db2e663f149287b6e14053d536fb1a8a81).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.06 2019-08-07 Wekan release
This release fixes the following bugs:
- [Fix board query](https://github.com/wekan/wekan/pull/2587).
Thanks to justinr1234.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.05 2019-08-07 Wekan release
This release fixes the following bugs:
- [Fixed LDAP group filtering bug on Snap settings](https://github.com/wekan/wekan/pull/2584).
Thanks to KuenzelIT.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.04 2019-08-06 Wekan release
This release fixes the following bugs:
- [Fixed Snap: Use Meteor 1.6.0.1 dependencies on Snap on master branch](https://github.com/wekan/wekan/commit/74a4b28313e9cfedcb927e4496c0dd3800b1e6f9).
Thanks to xet7.
- [Hide Admin Panel user delete button until someone has time to fix it](https://github.com/wekan/wekan/commit/b9a25ecfaca067d0392c83d97a0deb65e6e296dd).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.03 2019-08-04 Wekan release
This release adds the following new features:
- [Add RICHER_CARD_COMMENT_EDITOR=true to docker-compose.yml](https://github.com/wekan/wekan/commit/268f9de23c8167dca9499587ee31fb74edb6b83e).
Thanks to xet7.
- [Add popup to confirm deleting one account](https://github.com/wekan/wekan/pull/2573).
Thanks to Akuket.
- [Add admin setting to prevent users to self deleting their account](https://github.com/wekan/wekan/pull/2573).
Thanks to Akuket.
- [Add Packager.io DEB/RPM Wekan packages for Debian/Ubuntu/CentOS/SLES](https://packager.io/gh/wekan/wekan).
Does not work yet, [debugging in progress here](https://github.com/wekan/wekan/issues/2582).
Thanks to xet7 and sfahrenholz.
- [Add setting field LDAP_USER_AUTHENTICATION_FIELD=uid](https://github.com/wekan/wekan/pull/2581).
Thanks to Trekky12.
and adds the following upgrades:
- [Upgrade MongoDB to 4.0.11](https://github.com/wekan/wekan/commit/ec35c544b780e563a973fd887c5190f429431bfb).
Thanks to xet7.
and fixes the following bugs:
- [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 tabs keeps active. This can
increase server CPU usage](https://github.com/wekan/wekan/commit/669cd76018cbbfbd3ee58610a35959fa8a84ea36).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.02 2019-07-26 Wekan release
This release adds the following updates:
- [Updated Wekan on OpenShift](https://github.com/wekan/wekan/commit/85ca2b1363ed0bad8639ba7ed65c55e445816947).
Thanks to xet7.
and fixes the following bugs:
- [Set LDAP_BACKGROUND_SYNC_INTERVAL='' (empty string) so it works](https://github.com/wekan/wekan/commit/fff144a8279ac36ce83e6b975f17f6dbc35f39d6)
and [does not crash](https://github.com/wekan/wekan/issues/2354#issuecomment-515305722).
Also updated wekan-postgresql docker-compose.yml to use devel branch docker image, because ToroDB requires MongoDB 3.2,
it's not tested yet could newest master branch docker image work with MongoDB 3.2.
Thanks to benh57 and xet7.
and tries to fix following bugs:
- [Try to fix Snap](https://github.com/wekan/wekan/commit/7cf6850cdf77ef51808784e3d275c5be86ff6c92).
This [will be tested soon, does this work](https://github.com/wekan/wekan/issues/2533#issuecomment-515329490).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.01 2019-07-26 Wekan release
This release adds the following new features:
- [Rich text editor at card comments, based on
Summernote](https://github.com/wekan/wekan/pull/2560).
Thanks to whowillcare.
- [Add setting RICHER_CARD_COMMENT_EDITOR=true to
Source/Snap/Docker/Sandstorm](https://github.com/wekan/wekan/commit/4aba290358455433c0fc676e8c9cf1bd627eddde).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.00 2019-07-25 Wekan release
This release:
- works with source, and docker-compose.yml at master branch.
- Docker release uses Meteor 1.8.1 and MongoDB 4.0.10, so you need to backup your old MongoDB database and
restore with --noIndexRestore as described at https://github.com/wekan/wekan/wiki/Backup
- Snap and Sandstorm builds are not fixed yet, see progress at https://github.com/wekan/wekan/issues/2533
This release adds the following new features:
- [Added label text to labels on minicard](https://github.com/wekan/wekan/commit/c48d5a73cab04db1a1e113e4367dc88573110438).
Thanks to xet7.
- [Allow to shrink attached/pasted image](https://github.com/wekan/wekan/pull/2544).
Thanks to whowillcare.
and fixes the following bugs:
- [Fix invites](https://github.com/wekan/wekan/pull/2549).
Thanks to justinr1234.
- [Makes LDAP background sync work. If the sync interval is unspecified, falls back to a hourly default](https://github.com/wekan/wekan/pull/2555).
Thanks to pshunter.
- [Prevent isCommentOnly user adding attachments, editing list names, moving lists,
and seeing board settings menu. Show non-editable Custom Fields to isCommentOnly user](https://github.com/wekan/wekan/commit/a68c928896a94c377134f29a7183aa0b5a423720).
Thanks to xet7.
- [Many](https://github.com/wekan/wekan/pull/2546) [Snap](https://github.com/wekan/wekan/pull/2552) [fixes](https://github.com/wekan/wekan/pull/2553).
In Progress. Thanks to justrinr1234.
- [Fixed Dockerfile](https://github.com/wekan/wekan/commit/7df6f305c5cf41ac213623aeffaa7e48c981e0b6) and
[docker-compose.yml](https://github.com/wekan/wekan/commit/95698911f92ca728dbaab69406fd09bcbf81339d).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v2.99 2019-07-17 Wekan release
This release adds the following new features:
- [Add Corteza theme. In progress](https://github.com/wekan/wekan/commit/289e78dbd29cca9d97d3b5787c3368583d43b40f).
Thanks to xet7.
- [Notify Due Days: System timelines will be showing any user modification for duat startat endat receivedat,
also notification to the watchers and if any card is due, about due or past due](https://github.com/wekan/wekan/pull/2536).
ENV variables: NOTIFY_DUE_DAYS_BEFORE_AND_AFTER (default is 2, if 0, will turn off notification for and dued cards),
NOTIFY_DUE_AT_HOUR_OF_DAY (any number between 0 - 23, standing for at what hour of a day that the notification will
be sent to the watchers). Also [bug fix for this, timeOldValue needs to set to "" in params when it's
not set](https://github.com/wekan/wekan/pull/2541).
Thanks to whowillcare.
- [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](https://github.com/wekan/wekan/commit/5084cddf37ba16ce0855f8575c39f5e62d1b7f67).
Thanks to xet7.
- [BIGEVENTS_PATTERN: When user being @ in comment, as long as it's not himself, a notification will be
sent out no matter this user is watching the board or not](https://github.com/wekan/wekan/pull/2541).
Introduced a system env var BIGEVENTS_PATTERN default as "due", so any activityType matches the pattern,
system will send out notifications to all board members no matter they are watching or tracking
the board or not. Owner of the Wekan server can disable the feature by setting this variable to "NONE"
or change the pattern to any valid regex. i.e. '|' delimited activityType names.
Thanks to whowillcare.
- [Add BIGEVENTS_PATTERN to Source/Snap/Docker](https://github.com/wekan/wekan/commit/d7c09df7d2649bf2d2b61772c251f81793a6ed77).
Thanks to xet7.
and adds the following updates:
- [Update Meteor mongo package version](https://github.com/wekan/wekan/commit/96065d11a543852c1069cbab528bd08508b4a27c).
Thanks to xet7.
- [Update dependencies](https://github.com/wekan/wekan/commit/d82c72f1c1df908e92045e5034fa12b33fc7f70c).
Thanks to xet7.
and fixes the following bugs:
- RELAX THEME: Use [only in this theme](https://github.com/wekan/wekan/commit/3ad6e554dceea822dee7390872260e872a792dcd)
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.
- [Try to fix docker-compose.yml to use correct master branch that has
meteor 1.8.1](https://github.com/wekan/wekan/commit/202cc5a797b6269ec422c6f2e532a49f09d4e30a).
Thanks to xet7.
- [Outgoing Webhooks setCustomField: Add board name, card name, custom field name to be
visible](https://github.com/wekan/wekan/commit/2003d90467debeadf51b69630c80ee6040524f52).
Still missing: custom field value, list name, swimlane name.
Thanks to xet7.
- [Don't remove boardoverlay when mouse leaves carddetails](https://github.com/wekan/wekan/pull/2540).
This reduces Wekan board flashiness.
Thanks to newhinton.
- [Limit the board list to 2 or 1 for mobile clients](https://github.com/wekan/wekan/pull/2542).
As a mobile user, the board size of in the home page too small, so the user is easily to
click on archive or copy button by accident. Increase the board size to 50% for pixel
greater than 360 and lesser than 800 and height to 8rem, 100% for any screen is even smaller.
This will reduce the accident much more.
Thanks to whowillcare.
- [Add check for board member isActive](https://github.com/wekan/wekan/commit fe42eb1d014c06dfed8114a00b29eac9b08baec6).
Thanks to xet7.
and has the following features in progress, not anything visible yet:
- [Teams/Organizations: Add beginnings of database structure](https://github.com/wekan/wekan/issues/802#issuecomment-505986270).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v2.98 2019-07-02 Wekan release
This release adds the following new features, thanks to xet7:
+56 -33
View File
@@ -4,9 +4,9 @@ LABEL maintainer="wekan"
# Set the environment variables (defaults where required)
# DOES NOT WORK: paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303
# ENV BUILD_DEPS="paxctl"
ENV BUILD_DEPS="apt-utils bsdtar gnupg gosu wget curl bzip2 build-essential python3 python3-pip git ca-certificates gcc-8" \
ENV BUILD_DEPS="apt-utils bsdtar gnupg gosu wget curl bzip2 g++ build-essential git ca-certificates" \
DEBUG=false \
NODE_VERSION=v8.16.0 \
NODE_VERSION=v8.16.1 \
METEOR_RELEASE=1.8.1 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
@@ -21,6 +21,14 @@ ENV BUILD_DEPS="apt-utils bsdtar gnupg gosu wget curl bzip2 build-essential pyth
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 \
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="" \
@@ -57,13 +65,14 @@ ENV BUILD_DEPS="apt-utils bsdtar gnupg gosu wget curl bzip2 build-essential pyth
LDAP_AUTHENTIFICATION_PASSWORD="" \
LDAP_LOG_ENABLED=false \
LDAP_BACKGROUND_SYNC=false \
LDAP_BACKGROUND_SYNC_INTERVAL=100 \
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="" \
@@ -113,7 +122,7 @@ RUN \
\
# OS dependencies
apt-get update -y && apt-get install -y --no-install-recommends ${BUILD_DEPS} && \
pip3 install -U pip setuptools wheel && \
#pip3 install -U pip setuptools wheel && \
\
# Meteor installer doesn't work with the default tar binary, so using bsdtar while installing.
# https://github.com/coreos/bugs/issues/1095#issuecomment-350574389
@@ -169,33 +178,39 @@ 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 && \
\
#DOES NOT WORK: paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303
#paxctl -mC `which node` && \
\
# Install Node dependencies
# 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 --recursive /home/wekan && \
curl "https://install.meteor.com" -o /home/wekan/install_meteor.sh && \
#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 && \
#sed -i 's/VERBOSITY="--silent"/VERBOSITY="--progress-bar"/' ./install_meteor.sh && \
echo "Starting meteor ${METEOR_RELEASE} installation... \n" && \
chown wekan /home/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 /home/wekan/install_meteor.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; \
\
#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 && \
@@ -216,21 +231,24 @@ RUN \
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 &&\
gosu wekan:wekan mkdir -p ./public/api && \
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; \
#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:wekan /home/wekan/.meteor/meteor add standard-minifier-js && \
gosu wekan:wekan /home/wekan/.meteor/meteor npm install && \
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 && \
#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 && \
@@ -241,6 +259,11 @@ RUN \
#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:wekan npm install && \
#gosu wekan:wekan npm install bcrypt && \
@@ -256,10 +279,10 @@ RUN \
rm -R /var/lib/apt/lists/* && \
rm -R /home/wekan/.meteor && \
rm -R /home/wekan/app && \
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
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=8080
EXPOSE $PORT
+8 -28
View File
@@ -54,13 +54,12 @@ that by providing one-click installation on various platforms.
- [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.
- [Integrations][integrations]: Current possible integrations and future plans.
## 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). [ARM progress](https://github.com/wekan/wekan/issues/1053#issuecomment-410919264).
[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.
@@ -74,41 +73,25 @@ that by providing one-click installation on various platforms.
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
## Roadmap and Demo
[Roadmap Milestones](https://github.com/wekan/wekan/milestones)
[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).
- [Bounties](https://wekan.team/bounties/index.html).
- [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.
## Demo
[Wekan demo][roadmap_wefork]
## Screenshot
[More screenshots at Features page](https://github.com/wekan/wekan/wiki/Features)
[![Screenshot of Wekan][screenshot_wefork]][roadmap_wefork]
## Stable
- master+devel branch. At release, devel is merged to master.
- Receives fixes and features that have been tested at edge that they work.
- If you want automatic updates, [use Snap](https://github.com/wekan/wekan-snap/wiki/Install).
- If you want to test before update, [use Docker quay.io release tags](https://github.com/wekan/wekan/wiki/Docker).
## Edge
- edge branch. All new fixes and features are added to here first. [Testing Edge](https://github.com/wekan/wekan-snap/wiki/Snap-Developer-Docs).
[![Screenshot of Wekan][screenshot_wekan]][roadmap_wekan]
## License
@@ -117,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]: https://wekan.github.io/wekan-markdown.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
+1 -1
View File
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v2.98.0"
appVersion: "v3.43.0"
files:
userUploads:
- README.md
@@ -201,7 +201,25 @@ template(name="cardActivities")
.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)
+1 -1
View File
@@ -85,7 +85,7 @@ BlazeComponent.extendComponent({
const lastLabel = Boards.findOne(Session.get('currentBoard')).getLabelById(
lastLabelId,
);
if (lastLabel.name === undefined || lastLabel.name === '') {
if (lastLabel && (lastLabel.name === undefined || lastLabel.name === '')) {
return lastLabel.color;
} else {
return lastLabel.name;
+2 -1
View File
@@ -38,6 +38,7 @@ BlazeComponent.extendComponent({
resetCommentInput(input);
Tracker.flush();
autosize.update(input);
input.trigger('submitted');
}
evt.preventDefault();
},
@@ -54,7 +55,7 @@ BlazeComponent.extendComponent({
// 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);
}
+3 -3
View File
@@ -6,9 +6,9 @@ template(name="board")
else
+boardBody
else
//- XXX We need a better error message in case the board has been archived
//+message(label="board-not-found")
{{goHome}}
//-- XXX We need a better error message in case the board has been archived
+message(label="board-not-found")
//-- | {{goHome}}
else
+spinner
+1 -5
View File
@@ -243,11 +243,6 @@ BlazeComponent.extendComponent({
{
// XXX The board-overlay div should probably be moved to the parent
// component.
'mouseenter .board-overlay'() {
if (this.mouseHasEnterCardDetails) {
this.showOverlay.set(false);
}
},
mouseup() {
if (this._isDragging) {
this._isDragging = false;
@@ -331,6 +326,7 @@ BlazeComponent.extendComponent({
slug: currentBoard.slug,
cardId: card._id,
}),
className: card.color ? `calendar-event-${card.color}` : null,
});
});
callback(events);
+78
View File
@@ -53,3 +53,81 @@ position()
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
+65 -1
View File
@@ -216,7 +216,9 @@ setBoardColor(color)
.board-color-relax
setBoardColor(#27AE61)
// RELAX MODE: light green backgroud, when green background color selected.
// 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
@@ -229,3 +231,65 @@ setBoardColor(color)
.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
+22 -6
View File
@@ -31,12 +31,28 @@ template(name="boardList")
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}}")
i.fa.js-clone-board(
class="fa-clone"
title="{{_ 'duplicate-board'}}")
i.fa.js-archive-board(
class="fa-archive"
title="{{_ 'archive-board'}}")
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'}}
+4 -4
View File
@@ -8,10 +8,10 @@ Template.boardListHeaderBar.events({
Template.boardListHeaderBar.helpers({
templatesBoardId() {
return Meteor.user().getTemplatesBoardId();
return Meteor.user() && Meteor.user().getTemplatesBoardId();
},
templatesBoardSlug() {
return Meteor.user().getTemplatesBoardSlug();
return Meteor.user() && Meteor.user().getTemplatesBoardSlug();
},
});
@@ -82,13 +82,13 @@ BlazeComponent.extendComponent({
},
'click .js-accept-invite'() {
const boardId = this.currentData()._id;
Meteor.user().removeInvite(boardId);
Meteor.call('acceptInvite', boardId);
},
'click .js-decline-invite'() {
const boardId = this.currentData()._id;
Meteor.call('quitBoard', boardId, (err, ret) => {
if (!err && ret) {
Meteor.user().removeInvite(boardId);
Meteor.call('acceptInvite', boardId);
FlowRouter.go('home');
}
});
+3 -2
View File
@@ -183,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
@@ -195,4 +196,4 @@ $spaceBetweenTiles = 16px
@media screen and (max-width: 360px)
li
width: 50%
width: 100%
+14 -12
View File
@@ -37,17 +37,19 @@ 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
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
li.attachment-item.add-attachment
a.js-add-attachment {{_ 'add-attachment' }}
+66 -27
View File
@@ -54,26 +54,49 @@ Template.previewAttachedImagePopup.events({
Template.cardAttachmentsPopup.events({
'change .js-attach-file'(event) {
const card = this;
const processFile = f => {
Utils.processUploadedAttachment(card, f, attachment => {
if (attachment && attachment._id && attachment.isImage()) {
card.setCover(attachment._id);
}
Popup.close();
});
};
FS.Utility.eachFile(event, f => {
const file = new FS.File(f);
if (card.isLinkedCard()) {
file.boardId = Cards.findOne(card.linkedId).boardId;
file.cardId = card.linkedId;
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 {
file.boardId = card.boardId;
file.swimlaneId = card.swimlaneId;
file.listId = card.listId;
file.cardId = card._id;
processFile(f);
}
file.userId = Meteor.userId();
const attachment = Attachments.insert(file);
if (attachment && attachment._id && attachment.isImage()) {
card.setCover(attachment._id);
}
Popup.close();
});
},
'click .js-computer-upload'(event, templateInstance) {
@@ -83,30 +106,46 @@ Template.cardAttachmentsPopup.events({
'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);
},
});
}
}
});
};
$(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) {
@@ -31,6 +31,10 @@ template(name="cardCustomField-text")
= value
else
| {{_ 'edit'}}
else
+viewer
= value
template(name="cardCustomField-number")
if canModifyCard
@@ -45,6 +49,9 @@ template(name="cardCustomField-number")
= value
else
| {{_ 'edit'}}
else
if value
= value
template(name="cardCustomField-date")
if canModifyCard
@@ -55,6 +62,11 @@ template(name="cardCustomField-date")
| {{showDate}}
else
| {{_ 'edit'}}
else
if value
div.card-date
time(datetime="{{showISODate}}")
| {{showDate}}
template(name="cardCustomField-dropdown")
if canModifyCard
@@ -79,3 +91,7 @@ template(name="cardCustomField-dropdown")
= selectedItem
else
| {{_ 'edit'}}
else
if value
+viewer
= selectedItem
+52 -1
View File
@@ -117,6 +117,37 @@ BlazeComponent.extendComponent({
},
onRendered() {
if (Meteor.settings.public.CARD_OPENED_WEBHOOK_ENABLED) {
// Send Webhook but not create Activities records ---
const card = this.currentData();
const userId = Meteor.userId();
//console.log(`userId: ${userId}`);
//console.log(`cardId: ${card._id}`);
//console.log(`boardId: ${card.boardId}`);
//console.log(`listId: ${card.listId}`);
//console.log(`swimlaneId: ${card.swimlaneId}`);
const params = {
userId,
cardId: card._id,
boardId: card.boardId,
listId: card.listId,
user: Meteor.user().username,
url: '',
};
//console.log('looking for integrations...');
const integrations = Integrations.find({
boardId: card.boardId,
type: 'outgoing-webhooks',
enabled: true,
activities: { $in: ['CardDetailsRendered', 'all'] },
}).fetch();
//console.log(`Investigation length: ${integrations.length}`);
if (integrations.length > 0) {
Meteor.call('outgoingWebhooks', integrations, 'CardSelected', params);
}
//-------------
}
if (!Utils.isMiniScreen()) {
Meteor.setTimeout(() => {
$('.card-details').mCustomScrollbar({
@@ -290,6 +321,19 @@ BlazeComponent.extendComponent({
parentComponent.showOverlay.set(true);
parentComponent.mouseHasEnterCardDetails = true;
},
'mousedown .js-card-details'() {
Session.set('cardDetailsIsDragging', false);
Session.set('cardDetailsIsMouseDown', true);
},
'mousemove .js-card-details'() {
if (Session.get('cardDetailsIsMouseDown')) {
Session.set('cardDetailsIsDragging', true);
}
},
'mouseup .js-card-details'() {
Session.set('cardDetailsIsDragging', false);
Session.set('cardDetailsIsMouseDown', false);
},
'click #toggleButton'() {
Meteor.call('toggleSystemMessages');
},
@@ -746,7 +790,14 @@ BlazeComponent.extendComponent({
EscapeActions.register(
'detailsPane',
() => {
Utils.goBoardId(Session.get('currentBoard'));
if (Session.get('cardDetailsIsDragging')) {
// Reset dragging status as the mouse landed outside the cardDetails template area and this will prevent a mousedown event from firing
Session.set('cardDetailsIsDragging', false);
Session.set('cardDetailsIsMouseDown', false);
} else {
// Prevent close card when the user is selecting text and moves the mouse cursor outside the card detail area
Utils.goBoardId(Session.get('currentBoard'));
}
},
() => {
return !Session.equals('currentCard', null);
+4 -7
View File
@@ -86,11 +86,6 @@
display: flex
flex-wrap: wrap
margin: 15px 0
& ~ .js-open-inlined-form
.viewer
background-color #ffffff !important
padding 15px !important
border 1px solid #000000 !important
.card-details-item
margin-right: 0.5em
@@ -104,7 +99,9 @@
&.card-details-item-end,
&.card-details-item-customfield,
&.card-details-item-name
max-width: 50%
display: block
word-wrap: break-word
max-width: 48%
flex-grow: 1
.card-details-item-title
@@ -131,7 +128,7 @@ 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
+3
View File
@@ -128,6 +128,9 @@ textarea.js-add-checklist-item, textarea.js-edit-checklist-item
& .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
+2 -1
View File
@@ -10,9 +10,10 @@
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
+6 -1
View File
@@ -8,7 +8,12 @@ template(name="minicard")
if labels
.minicard-labels
each labels
.minicard-label(class="card-label-{{color}}" title="{{name}}")
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
.handle
.fa.fa-arrows
+11
View File
@@ -16,6 +16,17 @@ BlazeComponent.extendComponent({
Utils.goBoardId(this.data().linkedId);
},
},
{
'click .js-toggle-minicard-label-text'() {
Meteor.call('toggleMinicardLabelText');
},
},
];
},
}).register('minicard');
Template.minicard.helpers({
hiddenMinicardLabelText() {
return Meteor.user().hasHiddenMinicardLabelText();
},
});
+10 -11
View File
@@ -81,6 +81,7 @@
.minicard-labels
float: right
display: flex
flex-wrap: wrap
.minicard-label
width: 11px
@@ -92,8 +93,11 @@
.minicard-custom-field
display:flex;
.minicard-custom-field-item
max-width:50%;
flex-grow:1;
flex-grow: 1
display: block
word-wrap: break-word
max-width: 100px
margin-right: 4px
.handle
width: 20px;
height: 20px;
@@ -111,7 +115,9 @@
p:last-child
margin-bottom: 0
.viewer
display: inline-block
display: block
word-wrap: break-word
max-width: 230px
.dates
display: flex;
flex-direction: row;
@@ -144,14 +150,7 @@
.badge-text
vertical-align: middle
&.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
margin-bottom: 0.1rem
.badge-text
font-size: 0.9em
+10 -12
View File
@@ -211,22 +211,20 @@ 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,
'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);
}
},
},
];
},
+25 -6
View File
@@ -701,12 +701,31 @@ BlazeComponent.extendComponent({
this.listId = this.parentComponent().data()._id;
this.swimlaneId = '';
const boardView = (Meteor.user().profile || {}).boardView;
if (boardView === 'board-view-swimlanes')
this.swimlaneId = this.parentComponent()
.parentComponent()
.parentComponent()
.data()._id;
const isSandstorm =
Meteor.settings &&
Meteor.settings.public &&
Meteor.settings.public.sandstorm;
if (isSandstorm) {
const user = Meteor.user();
if (user) {
const boardView = (Meteor.user().profile || {}).boardView;
if (boardView === 'board-view-swimlanes') {
this.swimlaneId = this.parentComponent()
.parentComponent()
.parentComponent()
.data()._id;
}
}
} else {
const boardView = (Meteor.user().profile || {}).boardView;
if (boardView === 'board-view-swimlanes') {
this.swimlaneId = this.parentComponent()
.parentComponent()
.parentComponent()
.data()._id;
}
}
},
onRendered() {
+1 -1
View File
@@ -9,7 +9,7 @@ template(name="listHeader")
if currentList
a.list-header-left-icon.fa.fa-angle-left.js-unselect-list
h2.list-header-name(
class="{{#if currentUser.isBoardMember}}js-open-inlined-form is-editable{{/if}}")
class="{{#if currentUser.isBoardMember}}{{#unless currentUser.isCommentOnly}}js-open-inlined-form is-editable{{/unless}}{{/if}}")
+viewer
= title
if wipLimit.enabled
+295 -19
View File
@@ -1,9 +1,90 @@
import _sanitizeXss from 'xss';
const ASIS = 'asis';
const sanitizeXss = (input, options) => {
const defaultAllowedIframeSrc = /^(https:){0,1}\/\/.*?(youtube|vimeo|dailymotion|youku)/i;
const allowedIframeSrcRegex = (function() {
let reg = defaultAllowedIframeSrc;
const SAFE_IFRAME_SRC_PATTERN =
Meteor.settings.public.SAFE_IFRAME_SRC_PATTERN;
try {
if (SAFE_IFRAME_SRC_PATTERN !== undefined) {
reg = new RegExp(SAFE_IFRAME_SRC_PATTERN, 'i');
}
} catch (e) {
/*eslint no-console: ["error", { allow: ["warn", "error"] }] */
console.error('Wrong pattern specified', SAFE_IFRAM_SRC_PATTERN, e);
}
return reg;
})();
const targetWindow = '_blank';
const getHtmlDOM = html => {
const i = document.createElement('i');
i.innerHTML = html;
return i.firstChild;
};
options = {
onTag(tag, html, options) {
const htmlDOM = getHtmlDOM(html);
const getAttr = attr => {
return htmlDOM && attr && htmlDOM.getAttribute(attr);
};
if (tag === 'iframe') {
const clipCls = 'note-vide-clip';
if (!options.isClosing) {
const iframeCls = getAttr('class');
let safe = iframeCls.indexOf(clipCls) > -1;
const src = getAttr('src');
if (allowedIframeSrcRegex.exec(src)) {
safe = true;
}
if (safe)
return `<iframe src='${src}' class="${clipCls}" width=100% height=auto allowfullscreen></iframe>`;
} else {
// remove </iframe> tag
return '';
}
} else if (tag === 'a') {
if (!options.isClosing) {
if (getAttr(ASIS) === 'true') {
// if has a ASIS attribute, don't do anything, it's a member id
return html;
} else {
const href = getAttr('href');
if (href.match(/^((http(s){0,1}:){0,1}\/\/|\/)/)) {
// a valid url
return `<a href=${href} target=${targetWindow}>`;
}
}
}
} else if (tag === 'img') {
if (!options.isClosing) {
const src = getAttr('src');
if (src) {
return `<a href='${src}' class='swipebox'><img src='${src}' class="attachment-image-preview mCS_img_loaded"></a>`;
}
}
}
return undefined;
},
onTagAttr(tag, name, value) {
if (tag === 'img' && name === 'src') {
if (value && value.substr(0, 5) === 'data:') {
// allow image with dataURI src
return `${name}='${value}'`;
}
} else if (tag === 'a' && name === 'target') {
return `${name}='${targetWindow}'`; // always change a href target to a new window
}
return undefined;
},
...options,
};
return _sanitizeXss(input, options);
};
Template.editor.onRendered(() => {
const $textarea = this.$('textarea');
autosize($textarea);
$textarea.escapeableTextComplete([
const textareaSelector = 'textarea';
const mentions = [
// User mentions
{
match: /\B@([\w.]*)$/,
@@ -27,11 +108,202 @@ Template.editor.onRendered(() => {
},
index: 1,
},
]);
];
const enableTextarea = function() {
const $textarea = this.$(textareaSelector);
autosize($textarea);
$textarea.escapeableTextComplete(mentions);
};
if (Meteor.settings.public.RICHER_CARD_COMMENT_EDITOR !== false) {
const isSmall = Utils.isMiniScreen();
const toolbar = isSmall
? [
['view', ['fullscreen']],
['table', ['table']],
['font', ['bold', 'underline']],
//['fontsize', ['fontsize']],
['color', ['color']],
]
: [
['style', ['style']],
['font', ['bold', 'underline', 'clear']],
['fontsize', ['fontsize']],
['fontname', ['fontname']],
['color', ['color']],
['para', ['ul', 'ol', 'paragraph']],
['table', ['table']],
['insert', ['link', 'picture', 'video']], // iframe tag will be sanitized TODO if iframe[class=note-video-clip] can be added into safe list, insert video can be enabled
//['insert', ['link', 'picture']], // modal popup has issue somehow :(
['view', ['fullscreen', 'help']],
];
const cleanPastedHTML = sanitizeXss;
const editor = '.editor';
const selectors = [
`.js-new-comment-form ${editor}`,
`.js-edit-comment ${editor}`,
].join(','); // only new comment and edit comment
const inputs = $(selectors);
if (inputs.length === 0) {
// only enable richereditor to new comment or edit comment no others
enableTextarea();
} else {
const placeholder = inputs.attr('placeholder') || '';
const mSummernotes = [];
const getSummernote = function(input) {
const idx = inputs.index(input);
if (idx > -1) {
return mSummernotes[idx];
}
return undefined;
};
inputs.each(function(idx, input) {
mSummernotes[idx] = $(input).summernote({
placeholder,
callbacks: {
onInit(object) {
const originalInput = this;
$(originalInput).on('submitted', function() {
// resetCommentInput has been called
if (!this.value) {
const sn = getSummernote(this);
sn && sn.summernote('reset');
object && object.editingArea.find('.note-placeholder').show();
}
});
const jEditor = object && object.editable;
const toolbar = object && object.toolbar;
if (jEditor !== undefined) {
jEditor.escapeableTextComplete(mentions);
}
if (toolbar !== undefined) {
const fBtn = toolbar.find('.btn-fullscreen');
fBtn.on('click', function() {
const $this = $(this),
isActive = $this.hasClass('active');
$('.minicards,#header-quick-access').toggle(!isActive); // mini card is still showing when editor is in fullscreen mode, we hide here manually
});
}
},
onImageUpload(files) {
const $summernote = getSummernote(this);
if (files && files.length > 0) {
const image = files[0];
const currentCard = Cards.findOne(Session.get('currentCard'));
const MAX_IMAGE_PIXEL = Utils.MAX_IMAGE_PIXEL;
const COMPRESS_RATIO = Utils.IMAGE_COMPRESS_RATIO;
const insertImage = src => {
const img = document.createElement('img');
img.src = src;
img.setAttribute('width', '100%');
$summernote.summernote('insertNode', img);
};
const processData = function(fileObj) {
Utils.processUploadedAttachment(
currentCard,
fileObj,
attachment => {
if (
attachment &&
attachment._id &&
attachment.isImage()
) {
attachment.one('uploaded', function() {
const maxTry = 3;
const checkItvl = 500;
let retry = 0;
const checkUrl = function() {
// even though uploaded event fired, attachment.url() is still null somehow //TODO
const url = attachment.url();
if (url) {
insertImage(
`${location.protocol}//${location.host}${url}`,
);
} else {
retry++;
if (retry < maxTry) {
setTimeout(checkUrl, checkItvl);
}
}
};
checkUrl();
});
}
},
);
};
if (MAX_IMAGE_PIXEL) {
const reader = new FileReader();
reader.onload = function(e) {
const dataurl = e && e.target && e.target.result;
if (dataurl !== undefined) {
// need to shrink image
Utils.shrinkImage({
dataurl,
maxSize: MAX_IMAGE_PIXEL,
ratio: COMPRESS_RATIO,
toBlob: true,
callback(blob) {
if (blob !== false) {
blob.name = image.name;
processData(blob);
}
},
});
}
};
reader.readAsDataURL(image);
} else {
processData(image);
}
}
},
onPaste() {
// clear up unwanted tag info when user pasted in text
const thisNote = this;
const updatePastedText = function(object) {
const someNote = getSummernote(object);
const original = someNote.summernote('code');
const cleaned = cleanPastedHTML(original); //this is where to call whatever clean function you want. I have mine in a different file, called CleanPastedHTML.
someNote.summernote('reset'); //clear original
someNote.summernote('pasteHTML', cleaned); //this sets the displayed content editor to the cleaned pasted code.
};
setTimeout(function() {
//this kinda sucks, but if you don't do a setTimeout,
//the function is called before the text is really pasted.
updatePastedText(thisNote);
}, 10);
},
},
dialogsInBody: true,
disableDragAndDrop: true,
toolbar,
popover: {
image: [
[
'image',
['resizeFull', 'resizeHalf', 'resizeQuarter', 'resizeNone'],
],
['float', ['floatLeft', 'floatRight', 'floatNone']],
['remove', ['removeMedia']],
],
table: [
['add', ['addRowDown', 'addRowUp', 'addColLeft', 'addColRight']],
['delete', ['deleteRow', 'deleteCol', 'deleteTable']],
],
air: [
['color', ['color']],
['font', ['bold', 'underline', 'clear']],
],
},
height: 200,
});
});
}
} else {
enableTextarea();
}
});
import sanitizeXss from 'xss';
// XXX I believe we should compute a HTML rendered field on the server that
// would handle markdown and user mentions. We can simply have two
// fields, one source, and one compiled version (in HTML) and send only the
@@ -76,38 +348,42 @@ Blaze.Template.registerHelper(
// `userId` to the popup as usual, and we need to store it in the DOM
// using a data attribute.
'data-userId': knowedUser.userId,
[ASIS]: 'true',
},
linkValue,
);
content = content.replace(fullMention, Blaze.toHTML(link));
}
return HTML.Raw(sanitizeXss(content));
}),
);
Template.viewer.events({
// Viewer sometimes have click-able wrapper around them (for instance to edit
// the corresponding text). Clicking a link shouldn't fire these actions, stop
// we stop these event at the viewer component level.
'click a'(event, templateInstance) {
event.stopPropagation();
// XXX We hijack the build-in browser action because we currently don't have
// `_blank` attributes in viewer links, and the transformer function is
// handled by a third party package that we can't configure easily. Fix that
// by using directly `_blank` attribute in the rendered HTML.
event.preventDefault();
let prevent = true;
const userId = event.currentTarget.dataset.userid;
if (userId) {
Popup.open('member').call({ userId }, event, templateInstance);
} else {
const href = event.currentTarget.href;
if (href) {
const child = event.currentTarget.firstElementChild;
if (child && child.tagName === 'IMG') {
prevent = false;
} else if (href) {
window.open(href, '_blank');
}
}
if (prevent) {
event.stopPropagation();
// XXX We hijack the build-in browser action because we currently don't have
// `_blank` attributes in viewer links, and the transformer function is
// handled by a third party package that we can't configure easily. Fix that
// by using directly `_blank` attribute in the rendered HTML.
event.preventDefault();
}
},
});
+39
View File
@@ -2,6 +2,35 @@
global-reset()
*
-webkit-box-sizing: unset
box-sizing: unset
.note-popover .popover-content .note-color-palette div .note-color-btn, .panel-heading.note-toolbar .note-color-palette div .note-color-btn
background: none
a:focus
outline: unset
outline-offset: unset
a:hover,a:focus
color: unset
text-decoration: unset
.badge
display: unset
min-width: unset
padding: unset
font-size: unset
font-weight: unset
line-height: unset
color: unset
text-align: unset
white-space: unset
vertical-align: unset
background-color: unset
border-radius: unset
html, body, input, select, textarea, button
font: 14px Roboto, "Helvetica Neue", Arial, Helvetica, sans-serif
line-height: 18px
@@ -203,6 +232,7 @@ kbd
background: darken(white, 2%)
border-radius: 3px
border: 1px solid darken(white, 10%)
color: unset
box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.15)
.clear
@@ -348,6 +378,12 @@ a
.viewer
min-height: 18px
display: block
word-wrap: break-word
table
word-wrap: normal
word-break: normal
ol
list-style-type: decimal
@@ -395,6 +431,9 @@ a
height: 100%
margin: 0px
.panel-default
width: 83vw
.inline-input
height: 37px
margin: 8px 10px 0 0
@@ -19,9 +19,21 @@ template(name='statistics')
tr
th Wekan {{_ 'info'}}
td {{statistics.version}}
tr
th {{_ 'Meteor_version'}}
td {{statistics.meteor.meteorVersion}}
tr
th {{_ 'Node_version'}}
td {{statistics.process.nodeVersion}}
tr
th {{_ 'MongoDB_version'}}
td {{statistics.mongo.mongoVersion}}
tr
th {{_ 'MongoDB_storage_engine'}}
td {{statistics.mongo.mongoStorageEngine}}
tr
th {{_ 'MongoDB_Oplog_enabled'}}
td {{statistics.mongo.mongoOplogEnabled}}
tr
th {{_ 'OS_Type'}}
td {{statistics.os.type}}
+2 -2
View File
@@ -109,6 +109,6 @@ template(name="editUserPopup")
input.js-profile-password(type="password")
div.buttonsContainer
input.primary.wide(type="submit" value="{{_ 'save'}}")
div
input#deleteButton.primary.wide(type="button" value="{{_ 'delete'}}")
// div
// input#deleteButton.primary.wide(type="button" value="{{_ 'delete'}}")
+4 -4
View File
@@ -17,7 +17,7 @@ BlazeComponent.extendComponent({
this.autorun(() => {
const limit = this.page.get() * usersPerPage;
this.subscribe('people', limit, () => {
this.subscribe('people', this.findUsersOptions.get(), limit, () => {
this.loadNextPageLocked = false;
const nextPeakBefore = this.callFirstWith(null, 'getNextPeak');
this.calculateNextPeak();
@@ -85,7 +85,7 @@ BlazeComponent.extendComponent({
const users = Users.find(this.findUsersOptions.get(), {
fields: { _id: true },
});
this.number.set(users.count());
this.number.set(users.count(false));
return users;
},
peopleNumber() {
@@ -243,8 +243,8 @@ Template.editUserPopup.events({
} else Popup.close();
},
'click #deleteButton'() {
'click #deleteButton': Popup.afterConfirm('userDelete', function() {
Users.remove(this.userId);
Popup.close();
},
}),
});
+34 -18
View File
@@ -18,6 +18,8 @@ template(name="setting")
a.js-setting-menu(data-id="announcement-setting") {{_ 'admin-announcement'}}
li
a.js-setting-menu(data-id="layout-setting") {{_ 'layout'}}
li
a.js-setting-menu(data-id="webhook-setting") {{_ 'global-webhook'}}
.main-body
if loading.get
+spinner
@@ -31,6 +33,12 @@ template(name="setting")
+announcementSettings
else if layoutSetting.get
+layoutSettings
else if webhookSetting.get
+webhookSettings
template(name="webhookSettings")
span
+outgoingWebhooksPopup
template(name="general")
ul#registration-setting.setting-detail
@@ -44,7 +52,7 @@ template(name="general")
ul
li
.title {{_ 'invite-people'}}
textarea#email-to-invite.form-control(rows='5', placeholder="{{_ 'email-addresses'}}")
textarea#email-to-invite.wekan-form-control(rows='5', placeholder="{{_ 'email-addresses'}}")
li
.title {{_ 'to-boards'}}
.bg-white
@@ -63,20 +71,20 @@ template(name='email')
.title {{_ 'smtp-host'}}
.description {{_ 'smtp-host-description'}}
.form-group
input.form-control#mail-server-host(type="text", placeholder="smtp.domain.com" value="{{currentSetting.mailServer.host}}")
input.wekan-form-control#mail-server-host(type="text", placeholder="smtp.domain.com" value="{{currentSetting.mailServer.host}}")
li.smtp-form
.title {{_ 'smtp-port'}}
.description {{_ 'smtp-port-description'}}
.form-group
input.form-control#mail-server-port(type="text", placeholder="25" value="{{currentSetting.mailServer.port}}")
input.wekan-form-control#mail-server-port(type="text", placeholder="25" value="{{currentSetting.mailServer.port}}")
li.smtp-form
.title {{_ 'smtp-username'}}
.form-group
input.form-control#mail-server-username(type="text", placeholder="{{_ 'username'}}" value="{{currentSetting.mailServer.username}}")
input.wekan-form-control#mail-server-username(type="text", placeholder="{{_ 'username'}}" value="{{currentSetting.mailServer.username}}")
li.smtp-form
.title {{_ 'smtp-password'}}
.form-group
input.form-control#mail-server-password(type="password", placeholder="{{_ 'password'}}" value="{{currentSetting.mailServer.password}}")
input.wekan-form-control#mail-server-password(type="password", placeholder="{{_ 'password'}}" value="{{currentSetting.mailServer.password}}")
li.smtp-form
.title {{_ 'smtp-tls'}}
.form-group
@@ -88,7 +96,7 @@ template(name='email')
li.smtp-form
.title {{_ 'send-from'}}
.form-group
input.form-control#mail-server-from(type="email", placeholder="no-reply@domain.com" value="{{currentSetting.mailServer.from}}")
input.wekan-form-control#mail-server-from(type="email", placeholder="no-reply@domain.com" value="{{currentSetting.mailServer.from}}")
li
button.js-save.primary {{_ 'save'}}
@@ -101,17 +109,25 @@ template(name='accountSettings')
li.accounts-form
.title {{_ 'accounts-allowEmailChange'}}
.form-group.flex
input.form-control#accounts-allowEmailChange(type="radio" name="allowEmailChange" value="true" checked="{{#if allowEmailChange}}checked{{/if}}")
input.wekan-form-control#accounts-allowEmailChange(type="radio" name="allowEmailChange" value="true" checked="{{#if allowEmailChange}}checked{{/if}}")
span {{_ 'yes'}}
input.form-control#accounts-allowEmailChange(type="radio" name="allowEmailChange" value="false" checked="{{#unless allowEmailChange}}checked{{/unless}}")
input.wekan-form-control#accounts-allowEmailChange(type="radio" name="allowEmailChange" value="false" checked="{{#unless allowEmailChange}}checked{{/unless}}")
span {{_ 'no'}}
li
li.accounts-form
.title {{_ 'accounts-allowUserNameChange'}}
.form-group.flex
input.form-control#accounts-allowUserNameChange(type="radio" name="allowUserNameChange" value="true" checked="{{#if allowUserNameChange}}checked{{/if}}")
input.wekan-form-control#accounts-allowUserNameChange(type="radio" name="allowUserNameChange" value="true" checked="{{#if allowUserNameChange}}checked{{/if}}")
span {{_ 'yes'}}
input.form-control#accounts-allowUserNameChange(type="radio" name="allowUserNameChange" value="false" checked="{{#unless allowUserNameChange}}checked{{/unless}}")
input.wekan-form-control#accounts-allowUserNameChange(type="radio" name="allowUserNameChange" value="false" checked="{{#unless allowUserNameChange}}checked{{/unless}}")
span {{_ 'no'}}
li
li.accounts-form
.title {{_ 'accounts-allowUserDelete'}}
.form-group.flex
input.wekan-form-control#accounts-allowUserDelete(type="radio" name="allowUserDelete" value="true" checked="{{#if allowUserDelete}}checked{{/if}}")
span {{_ 'yes'}}
input.wekan-form-control#accounts-allowUserDelete(type="radio" name="allowUserDelete" value="false" checked="{{#unless allowUserDelete}}checked{{/unless}}")
span {{_ 'no'}}
li
button.js-accounts-save.primary {{_ 'save'}}
@@ -128,7 +144,7 @@ template(name='announcementSettings')
ul
li
.title {{_ 'admin-announcement-title'}}
textarea#admin-announcement.form-control= currentSetting.body
textarea#admin-announcement.wekan-form-control= currentSetting.body
li
button.js-announcement-save.primary {{_ 'save'}}
@@ -137,16 +153,16 @@ template(name='layoutSettings')
//li.layout-form
.title {{_ 'hide-logo'}}
.form-group.flex
input.form-control#hide-logo(type="radio" name="hideLogo" value="true" checked="{{#if currentSetting.hideLogo}}checked{{/if}}")
input.wekan-form-control#hide-logo(type="radio" name="hideLogo" value="true" checked="{{#if currentSetting.hideLogo}}checked{{/if}}")
span {{_ 'yes'}}
input.form-control#hide-logo(type="radio" name="hideLogo" value="false" checked="{{#unless currentSetting.hideLogo}}checked{{/unless}}")
input.wekan-form-control#hide-logo(type="radio" name="hideLogo" value="false" checked="{{#unless currentSetting.hideLogo}}checked{{/unless}}")
span {{_ 'no'}}
li.layout-form
.title {{_ 'display-authentication-method'}}
.form-group.flex
input.form-control#display-authentication-method(type="radio" name="displayAuthenticationMethod" value="true" checked="{{#if currentSetting.displayAuthenticationMethod}}checked{{/if}}")
input.wekan-form-control#display-authentication-method(type="radio" name="displayAuthenticationMethod" value="true" checked="{{#if currentSetting.displayAuthenticationMethod}}checked{{/if}}")
span {{_ 'yes'}}
input.form-control#display-authentication-method(type="radio" name="displayAuthenticationMethod" value="false" checked="{{#unless currentSetting.displayAuthenticationMethod}}checked{{/unless}}")
input.wekan-form-control#display-authentication-method(type="radio" name="displayAuthenticationMethod" value="false" checked="{{#unless currentSetting.displayAuthenticationMethod}}checked{{/unless}}")
span {{_ 'no'}}
li.layout-form
.title {{_ 'default-authentication-method'}}
@@ -154,13 +170,13 @@ template(name='layoutSettings')
li.layout-form
.title {{_ 'custom-product-name'}}
.form-group
input.form-control#product-name(type="text", placeholder="" value="{{currentSetting.productName}}")
input.wekan-form-control#product-name(type="text", placeholder="" value="{{currentSetting.productName}}")
li.layout-form
.title {{_ 'add-custom-html-after-body-start'}}
textarea#customHTMLafterBodyStart.form-control= currentSetting.customHTMLafterBodyStart
textarea#customHTMLafterBodyStart.wekan-form-control= currentSetting.customHTMLafterBodyStart
li.layout-form
.title {{_ 'add-custom-html-before-body-end'}}
textarea#customHTMLbeforeBodyEnd.form-control= currentSetting.customHTMLbeforeBodyEnd
textarea#customHTMLbeforeBodyEnd.wekan-form-control= currentSetting.customHTMLbeforeBodyEnd
li
button.js-save-layout.primary {{_ 'save'}}
+11
View File
@@ -7,11 +7,13 @@ BlazeComponent.extendComponent({
this.accountSetting = new ReactiveVar(false);
this.announcementSetting = new ReactiveVar(false);
this.layoutSetting = new ReactiveVar(false);
this.webhookSetting = new ReactiveVar(false);
Meteor.subscribe('setting');
Meteor.subscribe('mailServer');
Meteor.subscribe('accountSettings');
Meteor.subscribe('announcements');
Meteor.subscribe('globalwebhooks');
},
setError(error) {
@@ -83,6 +85,7 @@ BlazeComponent.extendComponent({
this.accountSetting.set('account-setting' === targetID);
this.announcementSetting.set('announcement-setting' === targetID);
this.layoutSetting.set('layout-setting' === targetID);
this.webhookSetting.set('webhook-setting' === targetID);
}
},
@@ -233,12 +236,17 @@ BlazeComponent.extendComponent({
$('input[name=allowEmailChange]:checked').val() === 'true';
const allowUserNameChange =
$('input[name=allowUserNameChange]:checked').val() === 'true';
const allowUserDelete =
$('input[name=allowUserDelete]:checked').val() === 'true';
AccountSettings.update('accounts-allowEmailChange', {
$set: { booleanValue: allowEmailChange },
});
AccountSettings.update('accounts-allowUserNameChange', {
$set: { booleanValue: allowUserNameChange },
});
AccountSettings.update('accounts-allowUserDelete', {
$set: { booleanValue: allowUserDelete },
});
},
allowEmailChange() {
@@ -247,6 +255,9 @@ BlazeComponent.extendComponent({
allowUserNameChange() {
return AccountSettings.findOne('accounts-allowUserNameChange').booleanValue;
},
allowUserDelete() {
return AccountSettings.findOne('accounts-allowUserDelete').booleanValue;
},
events() {
return [
+6 -6
View File
@@ -52,10 +52,10 @@
.main-body
padding: 0.1em 1em
-webkit-user-select: auto // Safari 3.1+
-moz-user-select: auto // Firefox 2+
-ms-user-select: auto // IE 10+
user-select: auto // Standard syntax
-webkit-user-select: text // Safari 3.1+
-moz-user-select: text // Firefox 2+
-ms-user-select: text // IE 10+
user-select: text // Standard syntax
ul
li
@@ -105,14 +105,14 @@
.bg-white
background #f9fbfc;
.form-control.has-error
.wekan-form-control.has-error
border-color: #a94442;
box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
li.has-error
color #a94442
.form-group
.form-control
.wekan-form-control
border-color: #a94442;
box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
+30 -16
View File
@@ -22,6 +22,11 @@ template(name='homeSidebar')
+membersWidget
hr
+labelsWidget
ul#cards.label-text-hidden
a.flex.js-toggle-minicard-label-text
span {{_ 'hide-minicard-label-text'}}
b &nbsp;
.materialCheckBox(class="{{#if hiddenMinicardLabelText}}is-checked{{/if}}")
hr
unless currentUser.isNoComments
h3
@@ -34,8 +39,9 @@ template(name="membersWidget")
h3
i.fa.fa-user
| {{_ 'members'}}
a.board-header-btn.js-open-board-menu(title="{{_ 'boardMenuPopup-title'}}").right
i.board-header-btn-icon.fa.fa-cog
unless currentUser.isCommentOnly
a.board-header-btn.js-open-board-menu(title="{{_ 'boardMenuPopup-title'}}").right
i.board-header-btn-icon.fa.fa-cog
.board-widget-content
each currentBoard.activeMembers
@@ -129,22 +135,30 @@ template(name="archiveBoardPopup")
template(name="outgoingWebhooksPopup")
each integrations
form.integration-form
if title
h4 {{title}}
else
h4 {{_ 'no-name'}}
label
| URL
input.js-outgoing-webhooks-url(type="text" name="url" value=url)
input(type="hidden" value=_id name="id")
a.flex
span {{_ 'disable-webhook'}}
b &nbsp;
.materialCheckBox(class="{{#unless enabled}}is-checked{{/unless}}")
input.js-outgoing-webhooks-title(placeholder="{{_ 'webhook-title'}}" type="text" name="title" value=title)
input.js-outgoing-webhooks-url(type="text" name="url" value=url autofocus)
input.js-outgoing-webhooks-token(placeholder="{{_ 'webhook-token' }}" type="text" value=token name="token")
select.js-outgoing-webhooks-type(name="type")
each _type in types
if($eq _type this.type)
option(value=_type selected="selected") {{_ _type}}
else
option(value=_type) {{_ _type}}
input(type="hidden" value=this.type name="_type")
input(type="hidden" value=_id name="id")
input.primary.wide(type="submit" value="{{_ 'save'}}")
form.integration-form
h4
| {{_ 'new-outgoing-webhook'}}
label
| URL
input.js-outgoing-webhooks-url(type="text" name="url" autofocus)
input.primary.wide(type="submit" value="{{_ 'save'}}")
input.js-outgoing-webhooks-title(placeholder="{{_ 'webhook-title'}}" type="text" name="title" autofocus)
input.js-outgoing-webhooks-url(placeholder="{{_ 'URL' }}" type="text" name="url")
input.js-outgoing-webhooks-token(placeholder="{{_ 'webhook-token' }}" type="text" name="token")
select.js-outgoing-webhooks-type(name="type")
each _type in types
option(value=_type) {{_ _type}}
input.primary.wide(type="submit" value="{{_ 'create'}}")
template(name="boardMenuPopup")
ul.pop-over-list
+70 -32
View File
@@ -1,6 +1,8 @@
Sidebar = null;
const defaultView = 'home';
const MCB = '.materialCheckBox';
const CKCLS = 'is-checked';
const viewTitles = {
filter: 'filter-cards',
@@ -47,8 +49,11 @@ BlazeComponent.extendComponent({
},
calculateNextPeak() {
const altitude = this.find('.js-board-sidebar-content').scrollHeight;
this.callFirstWith(this, 'setNextPeak', altitude);
const sidebarElement = this.find('.js-board-sidebar-content');
if (sidebarElement) {
const altitude = sidebarElement.scrollHeight;
this.callFirstWith(this, 'setNextPeak', altitude);
}
},
reachNextPeak() {
@@ -101,6 +106,9 @@ BlazeComponent.extendComponent({
'click .js-hide-sidebar': this.hide,
'click .js-toggle-sidebar': this.toggle,
'click .js-back-home': this.setView,
'click .js-toggle-minicard-label-text'() {
Meteor.call('toggleMinicardLabelText');
},
'click .js-shortcuts'() {
FlowRouter.go('shortcuts');
},
@@ -111,6 +119,12 @@ BlazeComponent.extendComponent({
Blaze.registerHelper('Sidebar', () => Sidebar);
Template.homeSidebar.helpers({
hiddenMinicardLabelText() {
return Meteor.user().hasHiddenMinicardLabelText();
},
});
EscapeActions.register(
'sidebarView',
() => {
@@ -268,44 +282,71 @@ Template.membersWidget.events({
});
BlazeComponent.extendComponent({
boardId() {
return Session.get('currentBoard') || Integrations.Const.GLOBAL_WEBHOOK_ID;
},
integrations() {
const boardId = Session.get('currentBoard');
const boardId = this.boardId();
return Integrations.find({ boardId: `${boardId}` }).fetch();
},
integration(id) {
const boardId = Session.get('currentBoard');
return Integrations.findOne({ _id: id, boardId: `${boardId}` });
types() {
return Integrations.Const.WEBHOOK_TYPES;
},
integration(cond) {
const boardId = this.boardId();
const condition = { boardId, ...cond };
for (const k in condition) {
if (!condition[k]) delete condition[k];
}
return Integrations.findOne(condition);
},
onCreated() {
this.disabled = new ReactiveVar(false);
},
events() {
return [
{
'click a.flex'(evt) {
this.disabled.set(!this.disabled.get());
$(evt.target).toggleClass(CKCLS, this.disabled.get());
},
submit(evt) {
evt.preventDefault();
const url = evt.target.url.value;
const boardId = Session.get('currentBoard');
const boardId = this.boardId();
let id = null;
let integration = null;
const title = evt.target.title.value;
const token = evt.target.token.value;
const type = evt.target.type.value;
const enabled = !this.disabled.get();
let remove = false;
const values = {
url,
type,
token,
title,
enabled,
};
if (evt.target.id) {
id = evt.target.id.value;
integration = this.integration(id);
if (url) {
Integrations.update(integration._id, {
$set: {
url: `${url}`,
},
});
} else {
Integrations.remove(integration._id);
}
integration = this.integration({ _id: id });
remove = !url;
} else if (url) {
integration = this.integration({ url, token });
}
if (remove) {
Integrations.remove(integration._id);
} else if (integration && integration._id) {
Integrations.update(integration._id, {
$set: values,
});
} else if (url) {
Integrations.insert({
...values,
userId: Meteor.userId(),
enabled: true,
type: 'outgoing-webhooks',
url: `${url}`,
boardId: `${boardId}`,
boardId,
activities: ['all'],
});
}
@@ -462,12 +503,12 @@ BlazeComponent.extendComponent({
evt.preventDefault();
this.currentBoard.allowsSubtasks = !this.currentBoard.allowsSubtasks;
this.currentBoard.setAllowsSubtasks(this.currentBoard.allowsSubtasks);
$('.js-field-has-subtasks .materialCheckBox').toggleClass(
'is-checked',
$(`.js-field-has-subtasks ${MCB}`).toggleClass(
CKCLS,
this.currentBoard.allowsSubtasks,
);
$('.js-field-has-subtasks').toggleClass(
'is-checked',
CKCLS,
this.currentBoard.allowsSubtasks,
);
$('.js-field-deposit-board').prop(
@@ -503,15 +544,12 @@ BlazeComponent.extendComponent({
];
options.forEach(function(element) {
if (element !== value) {
$(`#${element} .materialCheckBox`).toggleClass(
'is-checked',
false,
);
$(`#${element}`).toggleClass('is-checked', false);
$(`#${element} ${MCB}`).toggleClass(CKCLS, false);
$(`#${element}`).toggleClass(CKCLS, false);
}
});
$(`#${value} .materialCheckBox`).toggleClass('is-checked', true);
$(`#${value}`).toggleClass('is-checked', true);
$(`#${value} ${MCB}`).toggleClass(CKCLS, true);
$(`#${value}`).toggleClass(CKCLS, true);
this.currentBoard.setPresentParentTask(value);
evt.preventDefault();
},
@@ -1,3 +1,4 @@
archivedRequested = false;
const subManager = new SubsManager();
BlazeComponent.extendComponent({
@@ -12,6 +13,7 @@ BlazeComponent.extendComponent({
const currentBoardId = Session.get('currentBoard');
if (!currentBoardId) return;
const handle = subManager.subscribe('board', currentBoardId, true);
archivedRequested = true;
Tracker.nonreactive(() => {
Tracker.autorun(() => {
this.isArchiveReady.set(handle.ready());
@@ -56,6 +56,22 @@ template(name="filterSidebar")
if Filter.customFields.isSelected _id
i.fa.fa-check
hr
ul.sidebar-list
li(class="{{#if Filter.archive.isSelected _id}}active{{/if}}")
a.name.js-toggle-archive-filter
span.sidebar-list-item-description
| {{_ 'filter-show-archive'}}
if Filter.archive.isSelected _id
i.fa.fa-check
hr
ul.sidebar-list
li(class="{{#if Filter.hideEmpty.isSelected _id}}active{{/if}}")
a.name.js-toggle-hideEmpty-filter
span.sidebar-list-item-description
| {{_ 'filter-hide-empty'}}
if Filter.hideEmpty.isSelected _id
i.fa.fa-check
hr
span {{_ 'advanced-filter-label'}}
input.js-field-advanced-filter(type="text")
span {{_ 'advanced-filter-description'}}
@@ -1,3 +1,5 @@
const subManager = new SubsManager();
BlazeComponent.extendComponent({
events() {
return [
@@ -12,6 +14,23 @@ BlazeComponent.extendComponent({
Filter.members.toggle(this.currentData()._id);
Filter.resetExceptions();
},
'click .js-toggle-archive-filter'(evt) {
evt.preventDefault();
Filter.archive.toggle(this.currentData()._id);
Filter.resetExceptions();
const currentBoardId = Session.get('currentBoard');
if (!currentBoardId) return;
subManager.subscribe(
'board',
currentBoardId,
Filter.archive.isSelected(),
);
},
'click .js-toggle-hideEmpty-filter'(evt) {
evt.preventDefault();
Filter.hideEmpty.toggle(this.currentData()._id);
Filter.resetExceptions();
},
'click .js-toggle-custom-fields-filter'(evt) {
evt.preventDefault();
Filter.customFields.toggle(this.currentData()._id);
+10 -5
View File
@@ -9,14 +9,16 @@ template(name="swimlane")
each lists
+miniList(this)
if currentUser.isBoardMember
+addListForm
unless currentUser.isCommentOnly
+addListForm
else
each lists
+list(this)
if currentCardIsInThisList _id ../_id
+cardDetails(currentCard)
if currentUser.isBoardMember
+addListForm
unless currentUser.isCommentOnly
+addListForm
template(name="listsGroup")
.swimlane.list-group.js-lists
@@ -27,14 +29,17 @@ template(name="listsGroup")
each lists
+miniList(this)
if currentUser.isBoardMember
+addListForm
unless currentUser.isCommentOnly
+addListForm
else
each lists
+list(this)
if visible this
+list(this)
if currentCardIsInThisList _id null
+cardDetails(currentCard)
if currentUser.isBoardMember
+addListForm
unless currentUser.isCommentOnly
+addListForm
template(name="addListForm")
.list.list-composer.js-list-composer
+18
View File
@@ -246,6 +246,24 @@ BlazeComponent.extendComponent({
currentCardIsInThisList(listId, swimlaneId) {
return currentCardIsInThisList(listId, swimlaneId);
},
visible(list) {
if (list.archived) {
// Show archived list only when filter archive is on or archive is selected
if (!(Filter.archive.isSelected() || archivedRequested)) {
return false;
}
}
if (Filter.hideEmpty.isSelected()) {
const swimlaneId = this.parentComponent()
.parentComponent()
.data()._id;
const cards = list.cards(swimlaneId);
if (cards.count() === 0) {
return false;
}
}
return true;
},
onRendered() {
const boardComponent = this.parentComponent();
const $listsDom = this.$('.js-lists');
+8 -2
View File
@@ -55,8 +55,9 @@ template(name="editProfilePopup")
input.js-profile-email(type="email" value="{{emails.[0].address}}" readonly)
div.buttonsContainer
input.primary.wide(type="submit" value="{{_ 'save'}}")
div
input#deleteButton.primary.wide(type="button" value="{{_ 'delete'}}")
if allowUserDelete
div
input#deleteButton.primary.wide(type="button" value="{{_ 'delete'}}")
template(name="changePasswordPopup")
+atForm(state='changePwd')
@@ -82,3 +83,8 @@ template(name="changeSettingsPopup")
| {{_ 'show-cards-minimum-count'}}
input#show-cards-count-at.inline-input.left(type="number" value="#{showCardsCountAt}" min="0" max="99" onkeydown="return false")
input.js-apply-show-cards-at.left(type="submit" value="{{_ 'apply'}}")
template(name="userDeletePopup")
p {{_ 'delete-user-confirm-popup'}}
button.js-confirm.negate.full(type="submit") {{_ 'delete'}}
+6 -3
View File
@@ -35,6 +35,9 @@ Template.editProfilePopup.helpers({
allowUserNameChange() {
return AccountSettings.findOne('accounts-allowUserNameChange').booleanValue;
},
allowUserDelete() {
return AccountSettings.findOne('accounts-allowUserDelete').booleanValue;
},
});
Template.editProfilePopup.events({
@@ -104,11 +107,11 @@ Template.editProfilePopup.events({
});
} else Popup.back();
},
'click #deleteButton'() {
Users.remove(Meteor.userId());
'click #deleteButton': Popup.afterConfirm('userDelete', function() {
Popup.close();
Users.remove(Meteor.userId());
AccountsTemplates.logout();
},
}),
});
// XXX For some reason the useraccounts autofocus isnt working in this case.
+3 -1
View File
@@ -451,10 +451,12 @@ Filter = {
// before changing the schema.
labelIds: new SetFilter(),
members: new SetFilter(),
archive: new SetFilter(),
hideEmpty: new SetFilter(),
customFields: new SetFilter('_id'),
advanced: new AdvancedFilter(),
_fields: ['labelIds', 'members', 'customFields'],
_fields: ['labelIds', 'members', 'archive', 'hideEmpty', 'customFields'],
// We don't filter cards that have been added after the last filter change. To
// implement this we keep the id of these cards in this `_exceptions` fields
+1 -1
View File
@@ -67,7 +67,7 @@ window.Popup = new (class {
title: self._getTitle(popupName),
depth: self._stack.length,
offset: self._getOffset(openerElement),
dataContext: (this.currentData && this.currentData()) || this,
dataContext: (this && this.currentData && this.currentData()) || this,
});
// If there are no popup currently opened we use the Blaze API to render
+77 -1
View File
@@ -23,7 +23,83 @@ Utils = {
})
);
},
MAX_IMAGE_PIXEL: Meteor.settings.public.MAX_IMAGE_PIXEL,
COMPRESS_RATIO: Meteor.settings.public.IMAGE_COMPRESS_RATIO,
processUploadedAttachment(card, fileObj, callback) {
const next = attachment => {
if (typeof callback === 'function') {
callback(attachment);
}
};
if (!card) {
return next();
}
const file = new FS.File(fileObj);
if (card.isLinkedCard()) {
file.boardId = Cards.findOne(card.linkedId).boardId;
file.cardId = card.linkedId;
} else {
file.boardId = card.boardId;
file.swimlaneId = card.swimlaneId;
file.listId = card.listId;
file.cardId = card._id;
}
file.userId = Meteor.userId();
if (file.original) {
file.original.name = fileObj.name;
}
return next(Attachments.insert(file));
},
shrinkImage(options) {
// shrink image to certain size
const dataurl = options.dataurl,
callback = options.callback,
toBlob = options.toBlob;
let canvas = document.createElement('canvas'),
image = document.createElement('img');
const maxSize = options.maxSize || 1024;
const ratio = options.ratio || 1.0;
const next = function(result) {
image = null;
canvas = null;
if (typeof callback === 'function') {
callback(result);
}
};
image.onload = function() {
let width = this.width,
height = this.height;
let changed = false;
if (width > height) {
if (width > maxSize) {
height *= maxSize / width;
width = maxSize;
changed = true;
}
} else if (height > maxSize) {
width *= maxSize / height;
height = maxSize;
changed = true;
}
canvas.width = width;
canvas.height = height;
canvas.getContext('2d').drawImage(this, 0, 0, width, height);
if (changed === true) {
const type = 'image/jpeg';
if (toBlob) {
canvas.toBlob(next, type, ratio);
} else {
next(canvas.toDataURL(type, ratio));
}
} else {
next(changed);
}
};
image.onerror = function() {
next(false);
};
image.src = dataurl;
},
capitalize(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
},
+68 -15
View File
@@ -9,6 +9,8 @@ version: '2'
# https://github.com/wekan/wekan/wiki/Forgot-Password
#---------------------------------------------------------------------------------------------------------
# ==== Upgrading Wekan to new version =====
# NOTE: MongoDB has changed from 3.x to 4.x, in that case you need backup/restore with --noIndexRestore
# see https://github.com/wekan/wekan/wiki/Backup
# 1) Stop Wekan:
# docker-compose stop
# 2) Download new version:
@@ -90,9 +92,9 @@ services:
wekandb:
#-------------------------------------------------------------------------------------
# ==== MONGODB AND METEOR VERSION ====
# a) For Wekan Meteor 1.8.x version at meteor-1.8 branch, use mongo 4.x
image: mongo:4.0.10
# b) For Wekan Meteor 1.6.x version at master/devel/edge branches.
# a) For Wekan Meteor 1.8.x version at master branch, use mongo 4.x
image: mongo:4.0.12
# b) For Wekan Meteor 1.6.x version at devel branch.
# Only for Snap and Sandstorm while they are not upgraded yet to Meteor 1.8.x
#image: mongo:3.2.21
#-------------------------------------------------------------------------------------
@@ -110,17 +112,15 @@ services:
wekan:
#-------------------------------------------------------------------------------------
# ==== MONGODB AND METEOR VERSION ====
# a) For Wekan Meteor 1.8.x version at meteor-1.8 branch,
# NOTE: Quay is currently not updated, use Docker Hub image below c)
# a) For Wekan Meteor 1.8.x version at master branch,
# using https://quay.io/wekan/wekan automatic builds
#image: quay.io/wekan/wekan:meteor-1.8
# b) For Wekan Meteor 1.6.x version at master/devel/edge branches.
# Only for Snap and Sandstorm while they are not upgraded yet to Meteor 1.8.x
image: quay.io/wekan/wekan:meteor-1.8
# c) Using specific Meteor 1.6.x version tag:
image: quay.io/wekan/wekan
# b) Using specific Meteor 1.6.x version tag:
# image: quay.io/wekan/wekan:v1.95
# c) Using Docker Hub automatic builds https://hub.docker.com/r/wekanteam/wekan
# image: wekanteam/wekan:meteor-1.8
# image: wekanteam/wekan:v1.95
#image: wekanteam/wekan
# image: wekanteam/wekan:v2.99
#-------------------------------------------------------------------------------------
container_name: wekan-app
restart: always
@@ -232,6 +232,52 @@ services:
#- ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60
#- ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW=15
#---------------------------------------------------------------
# ==== STORE ATTACHMENT ON SERVER FILESYSTEM INSTEAD OF MONGODB ====
# https://github.com/wekan/wekan/pull/2603
#- ATTACHMENTS_STORE_PATH = <pathname> # pathname can be relative or fullpath
#---------------------------------------------------------------
# ==== RICH TEXT EDITOR IN CARD COMMENTS ====
# https://github.com/wekan/wekan/pull/2560
- RICHER_CARD_COMMENT_EDITOR=true
#---------------------------------------------------------------
# ==== CARD OPENED, SEND WEBHOOK MESSAGE ====
# https://github.com/wekan/wekan/issues/2518
- CARD_OPENED_WEBHOOK_ENABLED=false
#---------------------------------------------------------------
# ==== Allow to shrink attached/pasted image ====
# https://github.com/wekan/wekan/pull/2544
#-MAX_IMAGE_PIXEL=1024
#-IMAGE_COMPRESS_RATIO=80
#---------------------------------------------------------------
# ==== BIGEVENTS DUE ETC NOTIFICATIONS =====
# https://github.com/wekan/wekan/pull/2541
# Introduced a system env var BIGEVENTS_PATTERN default as "NONE",
# so any activityType matches the pattern, system will send out
# notifications to all board members no matter they are watching
# or tracking the board or not. Owner of the wekan server can
# disable the feature by setting this variable to "NONE" or
# change the pattern to any valid regex. i.e. '|' delimited
# activityType names.
# a) Example
#- BIGEVENTS_PATTERN=due
# b) All
#- BIGEVENTS_PATTERN=received|start|due|end
# c) Disabled
- BIGEVENTS_PATTERN=NONE
#---------------------------------------------------------------
# ==== EMAIL DUE DATE NOTIFICATION =====
# https://github.com/wekan/wekan/pull/2536
# System timelines will be showing any user modification for
# dueat startat endat receivedat, also notification to
# the watchers and if any card is due, about due or past due.
#
# Notify due days, default 2 days before and after. 0 = due notifications disabled. Default: 2
#- NOTIFY_DUE_DAYS_BEFORE_AND_AFTER=2
#
# Notify due at hour of day. Default every morning at 8am. Can be 0-23.
# If env variable has parsing error, use default. Notification sent to watchers.
#- NOTIFY_DUE_AT_HOUR_OF_DAY=8
#-----------------------------------------------------------------
# ==== EMAIL NOTIFICATION TIMEOUT, ms =====
# Defaut: 30000 ms = 30s
#- EMAIL_NOTIFICATION_TIMEOUT=30000
@@ -380,8 +426,10 @@ services:
# If the LDAP needs a user account to search
#- LDAP_AUTHENTIFICATION=true
#
# The search user DN
#- LDAP_AUTHENTIFICATION_USERDN=cn=wekan_adm,ou=serviceaccounts,ou=admin,ou=prod,dc=mydomain,dc=com
# The search user DN - You need quotes when you have spaces in parameters
# 2 examples:
#- LDAP_AUTHENTIFICATION_USERDN="CN=ldap admin,CN=users,DC=domainmatter,DC=lan"
#- LDAP_AUTHENTIFICATION_USERDN="CN=wekan_adm,OU=serviceaccounts,OU=admin,OU=prod,DC=mydomain,DC=com"
#
# The password for the search user
#- LDAP_AUTHENTIFICATION_PASSWORD=pwd
@@ -392,8 +440,10 @@ services:
# If the sync of the users should be done in the background
#- LDAP_BACKGROUND_SYNC=false
#
# At which interval does the background task sync in milliseconds
#- LDAP_BACKGROUND_SYNC_INTERVAL=100
# At which interval does the background task sync in milliseconds.
# Leave this unset, so it uses default, and does not crash.
# https://github.com/wekan/wekan/issues/2354#issuecomment-515305722
- LDAP_BACKGROUND_SYNC_INTERVAL=''
#
#- LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false
#
@@ -411,6 +461,9 @@ services:
# 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).
#- LDAP_USER_AUTHENTICATION="true"
#
# Which field is used to find the user for the user authentication. Default: uid.
#- LDAP_USER_AUTHENTICATION_FIELD="uid"
#
# Optional extra LDAP filters. Don't forget the outmost enclosing parentheses if needed
#- LDAP_USER_SEARCH_FILTER=
#
+739 -705
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
+36 -2
View File
@@ -73,6 +73,8 @@
"activity-unchecked-item-card": "hat %s in Checkliste %s abgewählt",
"activity-checklist-completed-card": "hat Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ vervollständigt",
"activity-checklist-uncompleted-card": "unvervollständigte die Checkliste %s",
"activity-editComment": "editierte Kommentar",
"activity-deleteComment": "löschte Kommentar",
"add-attachment": "Datei anhängen",
"add-board": "neues Board",
"add-card": "Karte hinzufügen",
@@ -304,6 +306,8 @@
"filter-no-label": "Kein Label",
"filter-no-member": "Kein Mitglied",
"filter-no-custom-fields": "Keine benutzerdefinierten Felder",
"filter-show-archive": "Archivierte Listen anzeigen",
"filter-hide-empty": "Leere Listen verstecken",
"filter-on": "Filter ist aktiv",
"filter-on-desc": "Sie filtern die Karten in diesem Board. Klicken Sie, um den Filter zu bearbeiten.",
"filter-to-selection": "Ergebnisse auswählen",
@@ -506,12 +510,21 @@
"email-smtp-test-text": "Sie haben erfolgreich eine E-Mail versandt",
"error-invitation-code-not-exist": "Ungültiger Einladungscode",
"error-notAuthorized": "Sie sind nicht berechtigt diese Seite zu sehen.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional für Authentifizierung)",
"outgoing-webhooks": "Ausgehende Webhooks",
"bidirectional-webhooks": "Zwei-Wege Webhooks",
"outgoingWebhooksPopup-title": "Ausgehende Webhooks",
"boardCardTitlePopup-title": "Kartentitelfilter",
"disable-webhook": "Diesen Webhook deaktivieren",
"global-webhook": "Globale Webhooks",
"new-outgoing-webhook": "Neuer ausgehender Webhook",
"no-name": "(Unbekannt)",
"Node_version": "Node-Version",
"Meteor_version": "Meteor-Version",
"MongoDB_version": "MongoDB-Version",
"MongoDB_storage_engine": "MongoDB-Speicher-Engine",
"MongoDB_Oplog_enabled": "MongoDB-Oplog aktiviert",
"OS_Arch": "Betriebssystem-Architektur",
"OS_Cpus": "Anzahl Prozessoren",
"OS_Freemem": "Freier Arbeitsspeicher",
@@ -699,8 +712,29 @@
"duplicate-board": "Board duplizieren",
"people-number": "Anzahl der Personen:",
"swimlaneDeletePopup-title": "Swimlane löschen?",
"swimlane-delete-pop": "Alle Aktionen werden aus dem Aktivitätenfeed entfernt und die Swimlane kann nicht wiederhergestellt werden. Es gibt kein Rückgängig!",
"swimlane-delete-pop": "Alle Aktionen werden aus dem Aktivitätenfeed entfernt und die Swimlane kann nicht wiederhergestellt werden. Die Aktion kann nicht rückgängig gemacht werden.",
"restore-all": "Alles wiederherstellen",
"delete-all": "Alles löschen",
"loading": "Laden, bitte warten."
"loading": "Laden, bitte warten.",
"previous_as": "letzter Zeitpunkt war",
"act-a-dueAt": "hat Fälligkeit geändert auf\nWann: __timeValue__\nWo: __card__\nvorheriger Fälligkeitszeitpunkt war __timeOldValue__",
"act-a-endAt": "hat Ende auf __timeValue__ von (__timeOldValue__) geändert",
"act-a-startAt": "hat Start auf __timeValue__ von (__timeOldValue__) geändert",
"act-a-receivedAt": "hat Empfangszeit auf __timeValue__ von (__timeOldValue__) geändert",
"a-dueAt": "hat Fälligkeit geändert auf",
"a-endAt": "hat Ende geändert auf",
"a-startAt": "hat Startzeit geändert auf",
"a-receivedAt": "hat Empfangszeit geändert auf",
"almostdue": "aktuelles Fälligkeitsdatum %s bevorstehend",
"pastdue": "aktuelles Fälligkeitsdatum %s überschritten",
"duenow": "aktuelles Fälligkeitsdatum %s heute",
"act-withDue": "__card__ fällige Erinnerungen [__board__]",
"act-almostdue": "erinnernd an das aktuelle Fälligkeitszeitpunkt (__timeValue__) von __card__ ist bevorstehend",
"act-pastdue": "erinnernd an das aktuelle Fälligkeitszeitpunkt (__timeValue__) von __card__ ist vorbei",
"act-duenow": "erinnernd an das aktuelle Fälligkeitszeitpunkt (__timeValue__) von __card__ ist jetzt",
"act-atUserComment": "Du wurdest erwähnt in [__board__] __card__",
"delete-user-confirm-popup": "Sind Sie sicher, dass Sie diesen Account löschen wollen? Die Aktion kann nicht rückgängig gemacht werden.",
"accounts-allowUserDelete": "Erlaube Benutzern ihren eigenen Account zu löschen",
"hide-minicard-label-text": "Labeltext auf Minikarte ausblenden",
"show-desktop-drag-handles": "Desktop-Ziehpunkte anzeigen"
}
+739 -705
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
+741 -707
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
+47 -13
View File
@@ -73,6 +73,8 @@
"activity-unchecked-item-card": "desmarcado %s en la lista de verificación %s",
"activity-checklist-completed-card": "completada la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
"activity-checklist-uncompleted-card": "no completó la lista de verificación %s",
"activity-editComment": "comentario editado",
"activity-deleteComment": "comentario eliminado",
"add-attachment": "Añadir adjunto",
"add-board": "Añadir tablero",
"add-card": "Añadir una tarjeta",
@@ -105,7 +107,7 @@
"archive-selection": "Archivar esta selección",
"archiveBoardPopup-title": "¿Archivar este tablero?",
"archived-items": "Archivo",
"archived-boards": "Tableros en Archivo",
"archived-boards": "Tableros en el Archivo",
"restore-board": "Restaurar el tablero",
"no-archived-boards": "No hay Tableros en el Archivo",
"archives": "Archivo",
@@ -285,7 +287,7 @@
"email-sent": "Correo enviado",
"email-verifyEmail-subject": "Verifica tu dirección de correo en __siteName__",
"email-verifyEmail-text": "Hola __user__,\n\nPara verificar tu cuenta de correo electrónico, haz clic en el siguiente enlace.\n\n__url__\n\nGracias.",
"enable-wip-limit": "Activar el límite del trabajo en proceso",
"enable-wip-limit": "Habilitar el límite del trabajo en proceso",
"error-board-doesNotExist": "El tablero no existe",
"error-board-notAdmin": "Es necesario ser administrador de este tablero para hacer eso",
"error-board-notAMember": "Es necesario ser miembro de este tablero para hacer eso",
@@ -304,6 +306,8 @@
"filter-no-label": "Sin etiqueta",
"filter-no-member": "Sin miembro",
"filter-no-custom-fields": "Sin campos personalizados",
"filter-show-archive": "Mostrar las listas archivadas",
"filter-hide-empty": "Ocultar las listas vacías",
"filter-on": "Filtrado activado",
"filter-on-desc": "Estás filtrando tarjetas en este tablero. Haz clic aquí para editar el filtro.",
"filter-to-selection": "Filtrar la selección",
@@ -476,7 +480,7 @@
"card-templates-swimlane": "Plantilla de tarjeta",
"list-templates-swimlane": "Listar plantillas",
"board-templates-swimlane": "Plantilla de tablero",
"what-to-do": "¿Qué deseas hacer?",
"what-to-do": "¿Qué quieres hacer?",
"wipLimitErrorPopup-title": "El límite del trabajo en proceso no es válido.",
"wipLimitErrorPopup-dialog-pt1": "El número de tareas en esta lista es mayor que el límite del trabajo en proceso que has definido.",
"wipLimitErrorPopup-dialog-pt2": "Por favor, mueve algunas tareas fuera de esta lista, o fija un límite del trabajo en proceso más alto.",
@@ -506,12 +510,21 @@
"email-smtp-test-text": "El correo se ha enviado correctamente",
"error-invitation-code-not-exist": "El código de invitación no existe",
"error-notAuthorized": "No estás autorizado a ver esta página.",
"webhook-title": "Nombre del Webhook",
"webhook-token": "Token (opcional para la autenticación)",
"outgoing-webhooks": "Webhooks salientes",
"bidirectional-webhooks": "Webhooks de doble sentido",
"outgoingWebhooksPopup-title": "Webhooks salientes",
"boardCardTitlePopup-title": "Filtro de títulos de tarjeta",
"disable-webhook": "Deshabilitar este Webhook",
"global-webhook": "Webhooks globales",
"new-outgoing-webhook": "Nuevo webhook saliente",
"no-name": "(Desconocido)",
"Node_version": "Versión de Node",
"Meteor_version": "Versión de Meteor",
"MongoDB_version": "Versión de MongoDB",
"MongoDB_storage_engine": "Motor de almacenamiento de MongoDB",
"MongoDB_Oplog_enabled": "Oplog de MongoDB habilitado",
"OS_Arch": "Arquitectura del sistema",
"OS_Cpus": "Número de CPUs del sistema",
"OS_Freemem": "Memoria libre del sistema",
@@ -589,10 +602,10 @@
"r-when-a-card": "Cuando una tarjeta",
"r-is": "es",
"r-is-moved": "es movida",
"r-added-to": "es agregada a",
"r-removed-from": "Eliminado de",
"r-added-to": "agregada a",
"r-removed-from": "eliminado de",
"r-the-board": "el tablero",
"r-list": "lista",
"r-list": "la lista",
"set-filter": "Filtrar",
"r-moved-to": "Movido a",
"r-moved-from": "Movido desde",
@@ -614,13 +627,13 @@
"r-when-the-item": "Cuando el elemento de la lista de verificación es",
"r-checked": "Marcado",
"r-unchecked": "Desmarcado",
"r-move-card-to": "Mover la tarjeta a",
"r-move-card-to": "Mover la tarjeta",
"r-top-of": "Arriba de",
"r-bottom-of": "Abajo de",
"r-its-list": "su lista",
"r-archive": "Archivar",
"r-unarchive": "Restaurar del Archivo",
"r-card": "tarjeta",
"r-card": "la tarjeta",
"r-add": "Añadir",
"r-remove": "Eliminar",
"r-label": "etiqueta",
@@ -651,9 +664,9 @@
"r-d-unarchive": "Restaurar tarjeta del Archivo",
"r-d-add-label": "Añadir etiqueta",
"r-d-remove-label": "Eliminar etiqueta",
"r-create-card": "Crear nueva tarjeta",
"r-create-card": "Crear una nueva tarjeta",
"r-in-list": "en la lista",
"r-in-swimlane": "en carril",
"r-in-swimlane": "en el carril",
"r-d-add-member": "Añadir miembro",
"r-d-remove-member": "Eliminar miembro",
"r-d-remove-all-member": "Eliminar todos los miembros",
@@ -668,7 +681,7 @@
"r-add-checklist": "Añadir una lista de verificación",
"r-with-items": "con items",
"r-items-list": "item1,item2,item3",
"r-add-swimlane": "Agregar carril",
"r-add-swimlane": "Agregar el carril",
"r-swimlane-name": "nombre del carril",
"r-board-note": "Nota: deje un campo vacío para que coincida con todos los valores posibles",
"r-checklist-note": "Nota: los ítems de la lista tienen que escribirse como valores separados por coma.",
@@ -689,7 +702,7 @@
"authentication-type": "Tipo de autenticación",
"custom-product-name": "Nombre de producto personalizado",
"layout": "Diseño",
"hide-logo": "Ocultar logo",
"hide-logo": "Ocultar el logo",
"add-custom-html-after-body-start": "Añade HTML personalizado después de <body>",
"add-custom-html-before-body-end": "Añade HTML personalizado después de </body>",
"error-undefined": "Algo no está bien",
@@ -702,5 +715,26 @@
"swimlane-delete-pop": "Todas las acciones serán eliminadas del historial de actividades y no se podrá recuperar el carril de flujo. Esta acción no puede deshacerse.",
"restore-all": "Restaurar todas",
"delete-all": "Borrar todas",
"loading": "Cargando. Por favor, espere."
"loading": "Cargando. Por favor, espere.",
"previous_as": "el último tiempo fue",
"act-a-dueAt": "cambiada la hora de vencimiento a \nCuándo: __timeValue__\nDónde: __card__\n el vencimiento anterior fue __timeOldValue__",
"act-a-endAt": "cambiada la hora de finalización a __timeValue__ Fecha anterior: (__timeOldValue__)",
"act-a-startAt": "cambiada la hora de comienzo a __timeValue__ Fecha anterior: (__timeOldValue__)",
"act-a-receivedAt": "cambiada la fecha de recepción a __timeValue__ Fecha anterior: (__timeOldValue__)",
"a-dueAt": "cambiada la hora de vencimiento a",
"a-endAt": "cambiada la hora de finalización a",
"a-startAt": "cambiada la hora de comienzo a",
"a-receivedAt": "cambiada la hora de recepción a",
"almostdue": "está próxima la hora de vencimiento actual %s",
"pastdue": "se sobrepasó la hora de vencimiento actual%s",
"duenow": "la hora de vencimiento actual %s es hoy",
"act-withDue": "__card__ notificaciones de vencimiento [__board__]",
"act-almostdue": "se ha notificado que el vencimiento actual (__timeValue__) de __card__ está próximo",
"act-pastdue": "se ha notificado que el vencimiento actual (__timeValue__) de __card__ se sobrepasó",
"act-duenow": "se ha notificado que el vencimiento actual (__timeValue__) de __card__ es ahora",
"act-atUserComment": "Te mencionaron en [__board__] __card__",
"delete-user-confirm-popup": "¿Seguro que quieres eliminar esta cuenta? Esta acción no puede deshacerse.",
"accounts-allowUserDelete": "Permitir a los usuarios eliminar su cuenta",
"hide-minicard-label-text": "Ocultar el texto de la etiqueta de la minitarjeta",
"show-desktop-drag-handles": "Show desktop drag handles"
}
+739 -705
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
+39 -5
View File
@@ -73,6 +73,8 @@
"activity-unchecked-item-card": "a décoché %s dans la checklist %s",
"activity-checklist-completed-card": "a complété la checklist __checklist__ de la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__",
"activity-checklist-uncompleted-card": "a rendu incomplète la checklist %s",
"activity-editComment": "commentaire modifié %s",
"activity-deleteComment": "commentaire supprimé %s",
"add-attachment": "Ajouter une pièce jointe",
"add-board": "Ajouter un tableau",
"add-card": "Ajouter une carte",
@@ -104,11 +106,11 @@
"archive-swimlane": "Archiver le couloir",
"archive-selection": "Archiver la sélection",
"archiveBoardPopup-title": "Archiver le tableau ?",
"archived-items": "Archiver",
"archived-items": "Archives",
"archived-boards": "Tableaux archivés",
"restore-board": "Restaurer le tableau",
"no-archived-boards": "Aucun tableau archivé.",
"archives": "Archiver",
"archives": "Archives",
"template": "Modèle",
"templates": "Modèles",
"assign-member": "Affecter un participant",
@@ -304,6 +306,8 @@
"filter-no-label": "Aucune étiquette",
"filter-no-member": "Aucun participant",
"filter-no-custom-fields": "Pas de champs personnalisés",
"filter-show-archive": "Montrer les listes archivées",
"filter-hide-empty": "Cacher les listes vides",
"filter-on": "Le filtre est actif",
"filter-on-desc": "Vous êtes en train de filtrer les cartes sur ce tableau. Cliquez ici pour modifier les filtres.",
"filter-to-selection": "Filtre vers la sélection",
@@ -506,12 +510,21 @@
"email-smtp-test-text": "Vous avez envoyé un mail avec succès",
"error-invitation-code-not-exist": "Ce code d'invitation n'existe pas.",
"error-notAuthorized": "Vous n'êtes pas autorisé à accéder à cette page.",
"webhook-title": "Nom du webhook",
"webhook-token": "Jeton (optionnel pour l'authentification)",
"outgoing-webhooks": "Webhooks sortants",
"bidirectional-webhooks": "Webhooks bidirectionnels",
"outgoingWebhooksPopup-title": "Webhooks sortants",
"boardCardTitlePopup-title": "Filtre par titre de carte",
"disable-webhook": "Désactiver ce webhook",
"global-webhook": "Webhooks globaux",
"new-outgoing-webhook": "Nouveau webhook sortant",
"no-name": "(Inconnu)",
"Node_version": "Version de Node",
"Meteor_version": "Version de Meteor",
"MongoDB_version": "Version de MongoDB",
"MongoDB_storage_engine": "Moteur de stockage MongoDB",
"MongoDB_Oplog_enabled": "MongoDB Oplog activé",
"OS_Arch": "OS Architecture",
"OS_Cpus": "OS Nombre CPU",
"OS_Freemem": "OS Mémoire libre",
@@ -700,7 +713,28 @@
"people-number": "Le nombre d'utilisateurs est de :",
"swimlaneDeletePopup-title": "Supprimer le couloir ?",
"swimlane-delete-pop": "Toutes les actions vont être supprimées du suivi d'activités et vous ne pourrez plus utiliser ce couloir. Cette action est irréversible.",
"restore-all": "Tout supprimer",
"delete-all": "Tout restaurer",
"loading": "Chargement, merci de patienter."
"restore-all": "Tout restaurer",
"delete-all": "Tout supprimer",
"loading": "Chargement, merci de patienter.",
"previous_as": "dernière heure était",
"act-a-dueAt": "Echéance modifiée à\nQuand: __timeValue__\nOù: __card__\n L'échéance précédente était __timeOldValue__",
"act-a-endAt": "Modification de la date de fin de __timeOldValue__ à __timeValue__",
"act-a-startAt": "Modification de la date de début de __timeOldValue__ à __timeValue__",
"act-a-receivedAt": "Modification de la date de réception de __timeOldValue__ à __timeValue__",
"a-dueAt": "Echéance modifiée à ",
"a-endAt": "Date de fin modifiée à",
"a-startAt": "Date de début modifiée à",
"a-receivedAt": "Date de réception modifiée à",
"almostdue": "La date d'échéance %s approche",
"pastdue": "La date d'échéance %s est passée",
"duenow": "La date d'échéance %s est aujourd'hui",
"act-withDue": "__card__ rappel d'échéance [__board__]",
"act-almostdue": "rappelle que l'échéance (__timeValue__) de __card__ approche",
"act-pastdue": "rappelle que l'échéance (__timeValue__) de __card__ est passée",
"act-duenow": "rappelle que l'échéance (__timeValue__) de __card__ est maintenant",
"act-atUserComment": "Vous avez été mentionné dans [__board__] __card__",
"delete-user-confirm-popup": "Êtes-vous sûr de vouloir supprimer ce compte ? Cette opération ne peut pas être annulée. ",
"accounts-allowUserDelete": "Autoriser les utilisateurs à supprimer leur compte",
"hide-minicard-label-text": "Cacher le label de la minicarte",
"show-desktop-drag-handles": "Voir les poignées de déplacement du bureau"
}
+739 -705
View File
File diff suppressed because it is too large. Load diff
+35 -1
View File
@@ -73,6 +73,8 @@
"activity-unchecked-item-card": "הסימון של %s בוטל ברשימת המשימות %s",
"activity-checklist-completed-card": "רשימת המטלות __checklist__ בכרטיס __card__ שברשימה __list__ תחת המסלול __swimlane__ בלוח __board__ הושלמה",
"activity-checklist-uncompleted-card": "רשימת המשימות %s סומנה כבלתי מושלמת",
"activity-editComment": "התגובה %s נערכה",
"activity-deleteComment": "התגובה %s נמחקה",
"add-attachment": "הוספת קובץ מצורף",
"add-board": "הוספת לוח",
"add-card": "הוספת כרטיס",
@@ -304,6 +306,8 @@
"filter-no-label": "אין תווית",
"filter-no-member": "אין חבר כזה",
"filter-no-custom-fields": "אין שדות מותאמים אישית",
"filter-show-archive": "הצגת רשימות שהועברו לארכיון",
"filter-hide-empty": "הסתרת רשימות ריקות",
"filter-on": "המסנן פועל",
"filter-on-desc": "מסנן כרטיסים פעיל בלוח זה. יש ללחוץ כאן לעריכת המסנן.",
"filter-to-selection": "סינון לבחירה",
@@ -506,12 +510,21 @@
"email-smtp-test-text": "שלחת הודעת דוא״ל בהצלחה",
"error-invitation-code-not-exist": "קוד ההזמנה אינו קיים",
"error-notAuthorized": "אין לך הרשאה לצפות בעמוד זה.",
"webhook-title": "שם ההתלייה",
"webhook-token": "אסימון (כרשות לצורך אימות)",
"outgoing-webhooks": "קרסי רשת יוצאים",
"bidirectional-webhooks": "התליות דו־כיווניות",
"outgoingWebhooksPopup-title": "קרסי רשת יוצאים",
"boardCardTitlePopup-title": "מסנן כותרת כרטיס",
"disable-webhook": "השבתת ההתלייה הזאת",
"global-webhook": "התליות גלובליות",
"new-outgoing-webhook": "קרסי רשת יוצאים חדשים",
"no-name": "(לא ידוע)",
"Node_version": "גרסת Node",
"Meteor_version": "גרסת Meteor",
"MongoDB_version": "גרסת MongoDB",
"MongoDB_storage_engine": "מנוע אחסון MongoDB",
"MongoDB_Oplog_enabled": "יומן הפעילות (Oplog) של MongoDB פעיל",
"OS_Arch": "ארכיטקטורת מערכת הפעלה",
"OS_Cpus": "מספר מעבדים",
"OS_Freemem": "זיכרון (RAM) פנוי",
@@ -702,5 +715,26 @@
"swimlane-delete-pop": "כל הפעולות יוסרו מהזנת הפעילות ולא תהיה לך אפשרות לשחזר את המסלול. אי אפשר לחזור אחורה.",
"restore-all": "לשחזר הכול",
"delete-all": "למחוק הכול",
"loading": "העמוד בטעינה, אנא המתינו."
"loading": "העמוד בטעינה, אנא המתינו.",
"previous_as": "הזמן הקודם היה",
"act-a-dueAt": "זמן יעד שונה ל: \n__timeValue__\nבכרטיס: __card__\n זמן היעד הקודם היה __timeOldValue__",
"act-a-endAt": "מועד הסיום השתנה לכדי __timeValue__ לעומת (__timeOldValue__)",
"act-a-startAt": "מועד ההתחלה השתנה לכדי __timeValue__ לעומת (__timeOldValue__)",
"act-a-receivedAt": "מועד הקבלה השתנה לכדי __timeValue__ לעומת (__timeOldValue__)",
"a-dueAt": "מועד היעד השתנה לכדי",
"a-endAt": "מועד הסיום השתנה לכדי",
"a-startAt": "מועד ההתחלה השתנה לכדי",
"a-receivedAt": "מועד הקבלה השתנה לכדי",
"almostdue": "מועד היעד הנוכחי %s מתקרב",
"pastdue": "מועד היעד הנוכחי %s חלף",
"duenow": "מועד היעד הנוכחי %s הוא היום",
"act-withDue": "__card__ תזכורות למועדי יעד [__board__]",
"act-almostdue": "הזכירה שמועד היעד הנוכחי (__timeValue__) של __card__ מתקרב",
"act-pastdue": "הזכירה שמועד היעד הנוכחי (__timeValue__) של __card__ חלף",
"act-duenow": "הזכירה שמועד היעד הנוכחי (__timeValue__) של __card__ הוא עכשיו",
"act-atUserComment": "אוזכרת תחת [__board__] ‏__card__",
"delete-user-confirm-popup": "למחוק את החשבון הזה? אי אפשר לבטל.",
"accounts-allowUserDelete": "לאפשר למשתמשים למחוק את החשבונות של עצמם",
"hide-minicard-label-text": "הסתרת טקסט התווית של מיני כרטיס",
"show-desktop-drag-handles": "הצגת ידיות גרירה של שולחן העבודה"
}
+739 -705
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
+99 -65
View File
@@ -1,45 +1,45 @@
{
"accept": "Akceptuj",
"act-activity-notify": "Powiadomienia aktywności",
"act-addAttachment": "Dodano załącznik __attachment__ do karty __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__",
"act-deleteAttachment": "Usunięto załącznik __attachment__ na karcie __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__",
"act-addSubtask": "Dodane podzadanie __subtask__ na karcie __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__",
"act-addLabel": "Dodano etykietę __label__ do karty __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__",
"act-addedLabel": "Dodano etykietę __label__ do karty __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__",
"act-removeLabel": "Usunięto etykietę __label__ z karty __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__",
"act-removedLabel": "Usunięto etykietę __label__ z karty __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__",
"act-addChecklist": "Dodano listę zadań __checklist__ do karty __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__",
"act-addChecklistItem": "Dodano element listy zadań __checklistItem__ do listy zadań __checklist__ na karcie __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-removeChecklist": "Usunięto listę zadań __checklist__ z karty __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-removeChecklistItem": "Usunięto element listy zadań __checklistItem__ z listy zadań __checkList__ na karcie __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-checkedItem": "Zaznaczono __checklistItem__ na liście zadań __checklist__ na karcie __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-uncheckedItem": "Odznaczono __checklistItem__ na liście __checklist__ na karcie __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-completeChecklist": "Wykonano wszystkie zadania z listy __checklist__ na karcie __card__ na liście __list__ na diagramie czynności__ na tablicy __board__",
"act-uncompleteChecklist": "Wycofano ukończenie wykonania listy __checklist__ na karcie __card__ na liście __list__ na diagramie czynności__ na tablicy __board__",
"act-addComment": "Dodano komentarz na karcie __card__: __comment__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-editComment": "edytowano komentarz na karcie __card__: __comment__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-deleteComment": "usunięto komentarz na karcie __card__: __comment__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-createBoard": "Utworzono tablicę __board__",
"act-createSwimlane": "utworzono diagram czynności __swimlane__ na tablicy __board__",
"act-createCard": "Utworzono kartę __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-createCustomField": "utworzono niestandardowe pole __customField__ na tablicy __board__",
"act-deleteCustomField": "usunięto niestandardowe pole __customField__ na tablicy __board__",
"act-setCustomField": "zmodyfikowano niestandardowe pole __customField__: __customFieldValue__ na karcie __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-createList": "Dodano listę __list__ do tablicy __board__",
"act-addBoardMember": "Dodano użytykownika __member__ do tablicy __board__",
"act-addAttachment": "dodał(a) załącznik __attachment__ do karty __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__",
"act-deleteAttachment": "usunął/usunęła załącznik __attachment__ na karcie __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__",
"act-addSubtask": "dodał(a) podzadanie __subtask__ na karcie __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__",
"act-addLabel": "dodał(a) etykietę __label__ do karty __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__",
"act-addedLabel": "dodał(a) etykietę __label__ do karty __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__",
"act-removeLabel": "usunął/usunęła etykietę __label__ z karty __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__",
"act-removedLabel": "usunął/usunęła etykietę __label__ z karty __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__",
"act-addChecklist": "dodał(a) listę zadań __checklist__ do karty __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__",
"act-addChecklistItem": "dodał(a) element listy zadań __checklistItem__ do listy zadań __checklist__ na karcie __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-removeChecklist": "usunął/usunęła listę zadań __checklist__ z karty __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-removeChecklistItem": "usunął/usunęła element listy zadań __checklistItem__ z listy zadań __checkList__ na karcie __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-checkedItem": "zaznaczył(a) __checklistItem__ na liście zadań __checklist__ na karcie __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-uncheckedItem": "odznaczył(a) __checklistItem__ na liście __checklist__ na karcie __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-completeChecklist": "wykonał(a) wszystkie zadania z listy __checklist__ na karcie __card__ na liście __list__ na diagramie czynności__ na tablicy __board__",
"act-uncompleteChecklist": "wycofał(a) ukończenie wykonania listy __checklist__ na karcie __card__ na liście __list__ na diagramie czynności__ na tablicy __board__",
"act-addComment": "dodał(a) komentarz na karcie __card__: __comment__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-editComment": "edytował(a) komentarz na karcie __card__: __comment__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-deleteComment": "usunął/usunęła komentarz na karcie __card__: __comment__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-createBoard": "utworzył(a) tablicę __board__",
"act-createSwimlane": "utworzył(a) diagram czynności __swimlane__ na tablicy __board__",
"act-createCard": "utworzył(a) kartę __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-createCustomField": "utworzył(a) niestandardowe pole __customField__ na tablicy __board__",
"act-deleteCustomField": "usunął/usunęła niestandardowe pole __customField__ na tablicy __board__",
"act-setCustomField": "zmienił(a) niestandardowe pole __customField__: __customFieldValue__ na karcie __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-createList": "dodał(a) listę __list__ do tablicy __board__",
"act-addBoardMember": "dodał(a) użytykownika __member__ do tablicy __board__",
"act-archivedBoard": "Tablica __board__ została przeniesiona do Archiwum",
"act-archivedCard": "Karta __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__ została przeniesiona do Archiwum",
"act-archivedList": "Lista __list__ na diagramie czynności __swimlane__ na tablicy __board__ została przeniesiona do Archiwum",
"act-archivedSwimlane": "Diagram czynności __swimlane__ na tablicy __board__ został przeniesiony do Archiwum",
"act-importBoard": "Zaimportowano tablicę __board__",
"act-importCard": "Zaimportowano kartę __card__ do listy __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-importList": "Zaimportowano listę __list__ na diagram czynności __swimlane__ do tablicy __board__",
"act-joinMember": "Dodano użytkownika __member__ do karty __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-archivedCard": "przeniósł/przeniosła kartę __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__ do Archiwum",
"act-archivedList": "przeniósł/przeniosła listę __list__ na diagramie czynności __swimlane__ na tablicy __board__ do Archiwum",
"act-archivedSwimlane": "przeniósł/przeniosła diagram czynności __swimlane__ na tablicy __board__ do Archiwum",
"act-importBoard": "zaimportował(a) tablicę __board__",
"act-importCard": "zaimportował(a) kartę __card__ do listy __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-importList": "zaimportował(a) listę __list__ na diagram czynności __swimlane__ do tablicy __board__",
"act-joinMember": "dodał(a) użytkownika __member__ do karty __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-moveCard": "przeniósł/a kartę __card__ na tablicy __board__ z listy __oldList__ na diagramie czynności __oldSwimlane__ na listę __list__ na diagramie czynności __swimlane__",
"act-moveCardToOtherBoard": "przeniósł/a kartę __card__ z listy __oldList__ na diagramie czynności __oldSwimlane__ na tablicy __oldBoard__ do listy __listy__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-removeBoardMember": "Usunięto użytkownika __member__ z tablicy __board__",
"act-restoredCard": "Przywrócono kartę __card__ na listę __list__ na diagram czynności__ na tablicy __board__",
"act-unjoinMember": "Usunięto użytkownika __member__ z karty __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-removeBoardMember": "usunął/usunęła użytkownika __member__ z tablicy __board__",
"act-restoredCard": "przywrócił(a) kartę __card__ na listę __list__ na diagram czynności__ na tablicy __board__",
"act-unjoinMember": "usunął/usunęła użytkownika __member__ z karty __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-withBoardTitle": "__board__",
"act-withCardTitle": "[__board__] __card__",
"actions": "Akcje",
@@ -48,36 +48,38 @@
"activity-added": "dodał(a) %s z %s",
"activity-archived": "%s została przeniesiona do Archiwum",
"activity-attached": "załączono %s z %s",
"activity-created": "utworzono %s",
"activity-customfield-created": "utworzono niestandardowe pole %s",
"activity-created": "utworzył(a) %s",
"activity-customfield-created": "utworzył(a) niestandardowe pole %s",
"activity-excluded": "wyłączono %s z %s",
"activity-imported": "zaimportowano %s to %s z %s",
"activity-imported-board": "zaimportowano %s z %s",
"activity-joined": "dołączono %s",
"activity-moved": "przeniósł/przeniosła % z %s to %s",
"activity-moved": "przeniesiono % z %s to %s",
"activity-on": "w %s",
"activity-removed": "usunięto %s z %s",
"activity-sent": "wysłano %s z %s",
"activity-unjoined": "odłączono %s",
"activity-subtask-added": "dodał(a) podzadanie do %s",
"activity-subtask-added": "dodano podzadanie do %s",
"activity-checked-item": "zaznaczono %s w liście zadań%s z %s",
"activity-unchecked-item": "odznaczono %s w liście zadań %s z %s",
"activity-checklist-added": "dodał(a) listę zadań do %s",
"activity-checklist-removed": "usunięto listę zadań z %s",
"activity-checklist-completed": "Wykonano wszystkie zadania z listy __checklist__ na karcie __card__ na liście __list__ na diagramie czynności__ na tablicy __board__",
"activity-checklist-removed": "usunął/usunęła listę zadań z %s",
"activity-checklist-completed": "wykonał(a) wszystkie zadania z listy __checklist__ na karcie __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"activity-checklist-uncompleted": "nieukończono listy zadań %s z %s",
"activity-checklist-item-added": "dodał(a) zadanie '%s' do %s",
"activity-checklist-item-removed": "usunięto element z listy zadań '%s' w %s",
"activity-checklist-item-removed": "usunął/usunęła element z listy zadań '%s' w %s",
"add": "Dodaj",
"activity-checked-item-card": "zaznaczono %s w liście zadań %s",
"activity-unchecked-item-card": "odznaczono %s w liście zadań %s",
"activity-checklist-completed-card": "Wykonano wszystkie zadania z listy __checklist__ na karcie __card__ na liście __list__ na diagramie czynności__ na tablicy __board__",
"activity-checklist-uncompleted-card": "nieukończono listy zadań %s",
"activity-checklist-completed-card": "wykonał(a) wszystkie zadania z listy __checklist__ na karcie __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"activity-checklist-uncompleted-card": "wycofano ukończenie listy zadań %s",
"activity-editComment": "edytował(a) komentarz %s",
"activity-deleteComment": "usunął/ęła komentarz %s",
"add-attachment": "Dodaj załącznik",
"add-board": "Dodaj tablicę",
"add-card": "Dodaj kartę",
"add-swimlane": "Dodaj diagram czynności",
"add-subtask": "Dodano podzadanie",
"add-subtask": "Dodaj podzadanie",
"add-checklist": "Dodaj listę kontrolną",
"add-checklist-item": "Dodaj element do listy kontrolnej",
"add-cover": "Dodaj okładkę",
@@ -104,11 +106,11 @@
"archive-swimlane": "Przenieś diagram czynności do Archiwum",
"archive-selection": "Przenieś zaznaczone do Archiwum",
"archiveBoardPopup-title": "Przenieść tablicę do Archiwum?",
"archived-items": "Zarchiwizuj",
"archived-items": "Archiwum",
"archived-boards": "Tablice w Archiwum",
"restore-board": "Przywróć tablicę",
"no-archived-boards": "Brak tablic w Archiwum.",
"archives": "Zarchiwizuj",
"archives": "Archiwum",
"template": "Szablon",
"templates": "Szablony",
"assign-member": "Dodaj członka",
@@ -118,7 +120,7 @@
"attachmentDeletePopup-title": "Usunąć załącznik?",
"attachments": "Załączniki",
"auto-watch": "Automatycznie obserwuj tablice gdy zostaną stworzone",
"avatar-too-big": "Awatar jest za duży (maksymalnie 70Kb)",
"avatar-too-big": "Awatar jest za duży (maksymalnie 70KB)",
"back": "Wstecz",
"board-change-color": "Zmień kolor",
"board-nb-stars": "%s odznaczeń",
@@ -128,7 +130,7 @@
"boardChangeColorPopup-title": "Zmień tło tablicy",
"boardChangeTitlePopup-title": "Zmień nazwę tablicy",
"boardChangeVisibilityPopup-title": "Zmień widoczność tablicy",
"boardChangeWatchPopup-title": "Zmień sposób powiadamiania",
"boardChangeWatchPopup-title": "Zmień sposób wysyłania powiadomień",
"boardMenuPopup-title": "Ustawienia tablicy",
"boards": "Tablice",
"board-view": "Widok tablicy",
@@ -154,7 +156,7 @@
"card-members-title": "Dodaj lub usuń członków tablicy z karty.",
"card-start": "Rozpoczęcie",
"card-start-on": "Zaczyna się o",
"cardAttachmentsPopup-title": "Załącz z",
"cardAttachmentsPopup-title": "Dodaj załącznik z",
"cardCustomField-datePopup-title": "Zmień datę",
"cardCustomFieldsPopup-title": "Edytuj niestandardowe pola",
"cardDeletePopup-title": "Usunąć kartę?",
@@ -183,7 +185,7 @@
"checklists": "Listy zadań",
"click-to-star": "Kliknij by odznaczyć tę tablicę.",
"click-to-unstar": "Kliknij by usunąć odznaczenie tej tablicy.",
"clipboard": "Schowek lub przeciągnij & upuść",
"clipboard": "Schowka lub poprzez przeciągnij & upuść",
"close": "Zamknij",
"close-board": "Zamknij tablicę",
"close-board-pop": "Będziesz w stanie przywrócić tablicę poprzez kliknięcie przycisku \"Archiwizuj\" w nagłówku strony domowej.",
@@ -219,7 +221,7 @@
"comment-only-desc": "Może tylko komentować w kartach.",
"no-comments": "Bez komentarzy",
"no-comments-desc": "Nie widzi komentarzy i aktywności.",
"computer": "Komputer",
"computer": "Komputera",
"confirm-subtask-delete-dialog": "Czy jesteś pewien, że chcesz usunąć to podzadanie?",
"confirm-checklist-delete-dialog": "Czy jesteś pewien, że chcesz usunąć listę zadań?",
"copy-card-link-to-clipboard": "Skopiuj łącze karty do schowka",
@@ -304,6 +306,8 @@
"filter-no-label": "Brak etykiety",
"filter-no-member": "Brak członków",
"filter-no-custom-fields": "Brak niestandardowych pól",
"filter-show-archive": "Pokaż zarchiwizowane listy",
"filter-hide-empty": "Ukryj puste listy",
"filter-on": "Filtr jest włączony",
"filter-on-desc": "Filtrujesz karty na tej tablicy. Kliknij tutaj by edytować filtr.",
"filter-to-selection": "Odfiltruj zaznaczenie",
@@ -337,9 +341,9 @@
"initials": "Inicjały",
"invalid-date": "Błędna data",
"invalid-time": "Błędny czas",
"invalid-user": "Zła nazwa użytkownika",
"invalid-user": "Niepoprawna nazwa użytkownika",
"joined": "dołączył",
"just-invited": "Właśnie zostałeś zaproszony do tej tablicy",
"just-invited": "Zostałeś zaproszony do tej tablicy",
"keyboard-shortcuts": "Skróty klawiaturowe",
"label-create": "Utwórz etykietę",
"label-default": "'%s' etykieta (domyślna)",
@@ -380,7 +384,7 @@
"multi-selection": "Wielokrotne zaznaczenie",
"multi-selection-on": "Wielokrotne zaznaczenie jest włączone",
"muted": "Wycisz",
"muted-info": "Nie zostaniesz powiadomiony o zmianach w tej tablicy",
"muted-info": "Nie dostaniesz powiadomienia o zmianach w tej tablicy.",
"my-boards": "Moje tablice",
"name": "Nazwa",
"no-archived-cards": "Brak kart w Archiwum.",
@@ -455,7 +459,7 @@
"time": "Czas",
"title": "Tytuł",
"tracking": "Śledzenie",
"tracking-info": "Zostaniesz poinformowany o zmianach kart, w których bierzesz udział jako twórca lub członek.",
"tracking-info": "Dostaniesz powiadomienie o zmianach kart, w których bierzesz udział jako twórca lub członek.",
"type": "Typ",
"unassign-member": "Nieprzypisany członek",
"unsaved-description": "Masz niezapisany opis.",
@@ -468,7 +472,7 @@
"warn-list-archived": "Ostrzeżenie: ta karta jest na liście będącej w Archiwum",
"watch": "Obserwuj",
"watching": "Obserwujesz",
"watching-info": "Będziesz poinformowany o każdej zmianie na tej tablicy",
"watching-info": "Dostaniesz powiadomienie o każdej zmianie na tej tablicy.",
"welcome-board": "Tablica powitalna",
"welcome-swimlane": "Kamień milowy 1",
"welcome-list1": "Podstawy",
@@ -506,12 +510,21 @@
"email-smtp-test-text": "Wiadomość testowa została wysłana z powodzeniem.",
"error-invitation-code-not-exist": "Kod zaproszenia nie istnieje",
"error-notAuthorized": "Nie jesteś uprawniony do przeglądania tej strony.",
"webhook-title": "Nazwa webhooka",
"webhook-token": "Token (opcjonalny do autoryzacji)",
"outgoing-webhooks": "Wychodzące webhooki",
"bidirectional-webhooks": "Dwustronne webhooki",
"outgoingWebhooksPopup-title": "Wychodzące webhooki",
"boardCardTitlePopup-title": "Filtruj poprzez nazwę karty",
"disable-webhook": "Wyłącz tego webhooka",
"global-webhook": "Globalne webhooki",
"new-outgoing-webhook": "Nowy wychodzący webhook",
"no-name": "(nieznany)",
"Node_version": "Wersja Node",
"Meteor_version": "Wersja Meteor",
"MongoDB_version": "Wersja MongoDB",
"MongoDB_storage_engine": "Silnik MongoDB",
"MongoDB_Oplog_enabled": "MongoDB - włączony Oplog",
"OS_Arch": "Architektura systemu",
"OS_Cpus": "Ilość rdzeni systemu",
"OS_Freemem": "Wolna pamięć RAM",
@@ -570,11 +583,11 @@
"source-board": "Tablica źródłowa",
"no-parent": "Nie pokazuj rodzica",
"activity-added-label": "dodał(a) etykietę '%s' z '%s'",
"activity-removed-label": "usunięto etykietę '%s' z '%s'",
"activity-delete-attach": "usunięto załącznik z %s",
"activity-removed-label": "usunął/usunęła etykietę '%s' z '%s'",
"activity-delete-attach": "usunął/usunęła załącznik z %s",
"activity-added-label-card": "dodał(a) etykietę '%s'",
"activity-removed-label-card": "usunięto etykietę '%s'",
"activity-delete-attach-card": "usunięto załącznik",
"activity-removed-label-card": "usunął/usunęła etykietę '%s'",
"activity-delete-attach-card": "usunął/usunęła załącznik",
"activity-set-customfield": "ustawiono niestandardowe pole '%s' do '%s' na '%s'",
"activity-unset-customfield": "wyczyszczono niestandardowe pole '%s' na '%s'",
"r-rule": "Reguła",
@@ -590,7 +603,7 @@
"r-is": "jest",
"r-is-moved": "jest przenoszona",
"r-added-to": "dodana do",
"r-removed-from": "Usunięto z",
"r-removed-from": "usunął/usunęła z",
"r-the-board": "tablicy",
"r-list": "lista",
"set-filter": "Ustaw filtr",
@@ -681,7 +694,7 @@
"r-df-end-at": "zakończenie",
"r-df-received-at": "odebrano",
"r-to-current-datetime": "o aktualnej dacie/godzinie",
"r-remove-value-from": "Usunięto wartość z",
"r-remove-value-from": "usunął/usunęła wartość z",
"ldap": "LDAP",
"oauth2": "OAuth2",
"cas": "CAS",
@@ -702,5 +715,26 @@
"swimlane-delete-pop": "Wszystkie akcje będą usunięte z widoku aktywności, nie można będzie przywrócić diagramu czynności. Usunięcie jest nieodwracalne.",
"restore-all": "Przywróć wszystkie",
"delete-all": "Usuń wszystkie",
"loading": "Ładowanie, proszę czekać."
"loading": "Ładowanie, proszę czekać.",
"previous_as": "ostatni czas był",
"act-a-dueAt": "zmienił(a) czas zakończenia na: __timeValue__ w karcie __card__, poprzedni czas: __timeOldValue__",
"act-a-endAt": "zmienił(a) czas zakończenia na __timeValue__ z __timeOldValue__",
"act-a-startAt": "zmienił(a) czas rozpoczęcia na __timeValue__ z __timeOldValue__",
"act-a-receivedAt": "zmienił(a) czas odebrania zadania na __timeValue__ z __timeOldValue__",
"a-dueAt": "zmieniono czas zakończenia na",
"a-endAt": "zmieniono czas zakończenia na",
"a-startAt": "zmieniono czas startu na",
"a-receivedAt": "zmieniono czas odebrania zadania na",
"almostdue": "aktualny termin ukończenia %s dobiega końca",
"pastdue": "aktualny termin ukończenia %s jest w przeszłości",
"duenow": "aktualny termin ukończenia %s jest dzisiaj",
"act-withDue": "__card__ przypomina o zakończeniu terminu [__board__]",
"act-almostdue": "przypomina o zbliżającej się dacie ukończenia (__timeValue__) karty __card__",
"act-pastdue": "przypomina o ubiegłej dacie ukończenia (__timeValue__) karty __card__",
"act-duenow": "przypomina o ubiegającej teraz dacie ukończenia (__timeValue__) karty __card__",
"act-atUserComment": "Zostałeś wspomniany na __board__ (__card__)",
"delete-user-confirm-popup": "Czy jesteś pewien, że chcesz usunąć te konto? Nie można tego wycofać.",
"accounts-allowUserDelete": "Pozwól użytkownikom na usuwanie własnych kont",
"hide-minicard-label-text": "Ukryj opisy etykiet minikart",
"show-desktop-drag-handles": "Show desktop drag handles"
}
+44 -10
View File
@@ -73,6 +73,8 @@
"activity-unchecked-item-card": "desmarcado %s na lista de verificação %s",
"activity-checklist-completed-card": "completada a lista de verificação __checklist__ no cartão __card__ na lista __list__ em raia __swimlane__ no quadro __board__",
"activity-checklist-uncompleted-card": "não-completada a lista de verificação %s",
"activity-editComment": "comentário editado %s",
"activity-deleteComment": "comentário excluído %s",
"add-attachment": "Adicionar Anexos",
"add-board": "Adicionar Quadro",
"add-card": "Adicionar Cartão",
@@ -143,8 +145,8 @@
"card-delete-notice": "A exclusão será permanente. Você perderá todas as ações associadas a este cartão.",
"card-delete-pop": "Todas as ações serão excluidas da lista de Atividades e vocês não poderá re-abrir o cartão. Não há como desfazer.",
"card-delete-suggest-archive": "Você pode mover um cartão para o Arquivo-morto para removê-lo do quadro e preservar a atividade.",
"card-due": "Data fim",
"card-due-on": "Finaliza em",
"card-due": "Prazo final",
"card-due-on": "Prazo final em",
"card-spent": "Tempo Gasto",
"card-edit-attachments": "Editar anexos",
"card-edit-custom-fields": "Editar campos customizados",
@@ -265,7 +267,7 @@
"edit-wip-limit": "Editar Limite WIP",
"soft-wip-limit": "Limite de WIP",
"editCardStartDatePopup-title": "Altera data de início",
"editCardDueDatePopup-title": "Altera data fim",
"editCardDueDatePopup-title": "Altera prazo final",
"editCustomFieldPopup-title": "Editar campo",
"editCardSpentTimePopup-title": "Editar tempo gasto",
"editLabelPopup-title": "Alterar Etiqueta",
@@ -304,6 +306,8 @@
"filter-no-label": "Sem etiquetas",
"filter-no-member": "Sem membros",
"filter-no-custom-fields": "Não há campos customizados",
"filter-show-archive": "Mostrar listas arquivadas",
"filter-hide-empty": "Esconder listas vazias",
"filter-on": "Filtro está ativo",
"filter-on-desc": "Você está filtrando cartões neste quadro. Clique aqui para editar o filtro.",
"filter-to-selection": "Filtrar esta seleção",
@@ -311,7 +315,7 @@
"advanced-filter-description": "Filtros avançados permitem escrever uma \"string\" contendo os seguintes operadores: == != <= >= && || (). Um espaco é utilizado como separador entre os operadores. Você pode filtrar para todos os campos personalizados escrevendo os nomes e valores. Exemplo: Campo1 == Valor1. Nota^Se o campo ou valor tiver espaços você precisa encapsular eles em citações sozinhas. Exemplo: Campo1 == Eu\\sou. Também você pode combinar múltiplas condições. Exemplo: C1 == V1 || C1 == V2. Normalmente todos os operadores são interpretados da esquerda para direita. Você pode alterar a ordem colocando parênteses - como ma expressão matemática. Exemplo: C1 == V1 && (C2 == V2 || C2 == V3). Você tamb~em pode pesquisar campos de texto usando regex: C1 == /Tes.*/i",
"fullname": "Nome Completo",
"header-logo-title": "Voltar para a lista de quadros.",
"hide-system-messages": "Esconde mensagens de sistema",
"hide-system-messages": "Esconder mensagens de sistema",
"headerBarCreateBoardPopup-title": "Criar Quadro",
"home": "Início",
"import": "Importar",
@@ -506,12 +510,21 @@
"email-smtp-test-text": "Você enviou um e-mail com sucesso",
"error-invitation-code-not-exist": "O código do convite não existe",
"error-notAuthorized": "Você não está autorizado à ver esta página.",
"webhook-title": "Nome do Webhook",
"webhook-token": "Token (Opcional para autenticação)",
"outgoing-webhooks": "Webhook de saída",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Webhook de saída",
"boardCardTitlePopup-title": "Filtro do Título do Cartão",
"disable-webhook": "Desabilitar este Webhook",
"global-webhook": "Webhooks globais",
"new-outgoing-webhook": "Novo Webhook de saída",
"no-name": "(Desconhecido)",
"Node_version": "Versão do Node",
"Meteor_version": "Versão do Meteor",
"MongoDB_version": "Versão do MongoDB",
"MongoDB_storage_engine": "Motor de armazenamento do MongoDB",
"MongoDB_Oplog_enabled": "MongoDB Oplog habilitado",
"OS_Arch": "Arquitetura do SO",
"OS_Cpus": "Quantidade de CPUS do SO",
"OS_Freemem": "Memória Disponível do SO",
@@ -538,10 +551,10 @@
"active": "Ativo",
"card-received": "Recebido",
"card-received-on": "Recebido em",
"card-end": "Fim",
"card-end-on": "Termina em",
"card-end": "Concluído",
"card-end-on": "Concluído em",
"editCardReceivedDatePopup-title": "Modificar data de recebimento",
"editCardEndDatePopup-title": "Mudar data de fim",
"editCardEndDatePopup-title": "Mudar data de conclusão",
"setCardColorPopup-title": "Definir cor",
"setCardActionsColorPopup-title": "Escolha uma cor",
"setSwimlaneColorPopup-title": "Escolha uma cor",
@@ -677,8 +690,8 @@
"r-update": "Atualizar",
"r-datefield": "campo data",
"r-df-start-at": "início",
"r-df-due-at": "data fim",
"r-df-end-at": "fim",
"r-df-due-at": "prazo final",
"r-df-end-at": "concluído",
"r-df-received-at": "recebido",
"r-to-current-datetime": "para data/hora atuais",
"r-remove-value-from": "Remover valores do",
@@ -702,5 +715,26 @@
"swimlane-delete-pop": "Todas as ações serão excluídas da lista de atividades e você não poderá recuperar a raia. Não há como desfazer.",
"restore-all": "Restaurar tudo",
"delete-all": "Excluir tudo",
"loading": "Carregando, aguarde por favor."
"loading": "Carregando, aguarde por favor.",
"previous_as": "ultima vez foi",
"act-a-dueAt": "prazo final modificado para \nQuando: __timeValue__\nOnde: __card__\n prazo final anterior era __timeOldValue__",
"act-a-endAt": "hora de conclusão modificada de (__timeOldValue__) para __timeValue__ ",
"act-a-startAt": "hora de início modificada de (__timeOldValue__) para __timeValue__ ",
"act-a-receivedAt": "hora de recebido modificada de (__timeOldValue__) para __timeValue__ ",
"a-dueAt": "prazo final modificado para",
"a-endAt": "hora de conclusão modificada para",
"a-startAt": "hora de início modificada para",
"a-receivedAt": "hora de recebido modificada para",
"almostdue": "prazo final atual %s está próximo",
"pastdue": "prazo final atual %s venceu",
"duenow": "prazo final atual %s é hoje",
"act-withDue": "__card__ lembrete de prazos finais [__board__]",
"act-almostdue": "está lembrando que o prazo final atual (__timeValue__) do __card__ está próximo",
"act-pastdue": "está lembrando que o prazo final atual (__timeValue__) do __card__ venceu",
"act-duenow": "está lembrando que o prazo final (__timeValue__) do __card__ é agora",
"act-atUserComment": "Você foi mencionado no [__board__] __card__",
"delete-user-confirm-popup": "Você realmente quer apagar esta conta? Não há como desfazer.",
"accounts-allowUserDelete": "Permitir que usuários apaguem a própria conta",
"hide-minicard-label-text": "Esconder rótulo da etiqueta do mini cartão",
"show-desktop-drag-handles": "Show desktop drag handles"
}
+739 -705
View File
File diff suppressed because it is too large. Load diff
+739 -705
View File
File diff suppressed because it is too large. Load diff
Loaded 100 of 178 files, more files were not shown because too many files have changed in this diff. Show more