Compare commits

...
126 Commits
Author SHA1 Message Date
Lauri Ojansivu 01fea212ec v4.53 2020-11-15 00:34:07 +02:00
Lauri Ojansivu 81ff3ec5b1 Update translations. 2020-11-15 00:26:12 +02:00
Lauri Ojansivu 393464f2d8 Update ChangeLog. 2020-11-15 00:23:59 +02:00
Lauri Ojansivu 17867159ea Merge pull request #3351 from danger89/patch-1
Missing bottom padding on lists
2020-11-15 00:21:27 +02:00
Lauri Ojansivu 7b064ce448 Update ChangeLog. 2020-11-15 00:20:49 +02:00
Lauri Ojansivu bf403cacf8 Merge pull request #3348 from jghaanstra/master
Minor improvements to Modern Dark theme
2020-11-15 00:19:10 +02:00
Melroy van den Berg a08bc8bb81 Missing bottom padding on lists
Add some padding to the bottom of the list, much better!
2020-11-14 20:32:52 +01:00
jghaanstra 554e01a172 Minor improvements to Modern Dark theme 2020-11-14 08:35:08 +01:00
Lauri Ojansivu ed4260dd38 Removed not working fix-download-unicode/cfs_access-point.txt from build script.
Thanks to xet7 !
2020-11-13 03:22:28 +02:00
Lauri Ojansivu 9e56cd5ea3 Update ChangeLog. 2020-11-12 20:33:01 +02:00
Lauri Ojansivu 8db8766a48 Merge branch 'master' of github.com:wekan/wekan 2020-11-12 20:23:43 +02:00
Lauri Ojansivu 222fca3ad7 Update markdown-it and markdown-it-emoji dependencies.
Thanks to developers of markdown-it and markdown-it-emoji !
2020-11-12 20:22:54 +02:00
jghaanstra efc50aec07 Minor improvements to Modern Dark theme 2020-11-12 19:17:34 +01:00
Lauri Ojansivu 21aebe845f Uncomment chown. 2020-11-12 16:47:12 +02:00
Lauri Ojansivu 345e2357c8 Install npm. 2020-11-12 16:45:58 +02:00
Lauri Ojansivu 8250cbcf6e Use latest MongoDB on Docker. 2020-11-12 15:57:53 +02:00
Lauri Ojansivu d0040754ea Update Docker upgrade info. 2020-11-12 15:51:23 +02:00
Lauri Ojansivu 22501749da Note: Docker Hub buils are broken. Only Quay works. 2020-11-12 15:43:21 +02:00
Lauri Ojansivu c30bc77eea v4.52 2020-11-12 01:10:38 +02:00
Lauri Ojansivu f74bac4f6b Update ChangeLog. 2020-11-12 00:54:27 +02:00
Lauri Ojansivu f54036225d Merge pull request #3346 from jghaanstra/master
Some more small improvements to Modern Dark theme
2020-11-12 00:52:47 +02:00
jghaanstra f1b680119f Some more small improvements to Modern Dark theme 2020-11-11 23:47:11 +01:00
Lauri Ojansivu 9ffdb83004 v4.51 2020-11-11 14:34:58 +02:00
Lauri Ojansivu 7080a0ce7d Merge branch 'master' of github.com:wekan/wekan 2020-11-11 13:44:20 +02:00
Lauri Ojansivu de4f1aa8c4 Update ChangeLog. 2020-11-11 13:44:04 +02:00
Lauri Ojansivu fa6182b979 Merge pull request #3344 from jghaanstra/master
Improvements Modern Dark Theme
2020-11-11 13:42:49 +02:00
Lauri Ojansivu a457e337ac Update ChangeLog. 2020-11-11 13:41:54 +02:00
Lauri Ojansivu ba2c280d56 Merge pull request #3341 from mfilser/drag_handle_checklist
Drag handles for checklist #3240
2020-11-11 13:39:18 +02:00
Lauri Ojansivu c8ed4947e1 Update ChangeLog. 2020-11-11 13:38:30 +02:00
Lauri Ojansivu 5b700a30d9 Merge branch 'brian-j-master' 2020-11-11 13:36:37 +02:00
Lauri Ojansivu d62f9a716e Merge branch 'master' of https://github.com/brian-j/wekan into brian-j-master 2020-11-11 13:32:29 +02:00
Lauri Ojansivu 949f22acf0 Update ChangeLog. 2020-11-11 13:31:08 +02:00
Lauri Ojansivu 358c411255 Merge pull request #3340 from mfilser/admin_modify_comments
board admin can edit and delete comments as well #3201
2020-11-11 13:27:50 +02:00
jghaanstra cfec612704 Improvements Modern Dark Theme 2020-11-11 12:19:36 +01:00
brian-j 1741808e53 Replace tabs with spaces 2020-11-10 22:01:04 -03:00
Martin Filser fd41e8ba45 Drag handles for checklist #3240 2020-11-11 00:13:26 +01:00
Martin Filser 01285ba10d board admin can edit and delete comments as well #3201 2020-11-10 23:36:30 +01:00
brian-j 0180196d7e Alter call to sanitizeXss
Addressing feature: Custom URL Schemes autolinked #3218

Create a custom SafeAttrValue function which can allow non-standard protocols such as thunderlink: cbthunderlink: and aodroplink: to operate correctly without getting the value stripped away. Any other protocols and code remain to be processed by the default safeAttrValue routine.
2020-11-10 18:03:17 -03:00
Lauri Ojansivu 167d9d34eb v4.50 2020-11-10 13:57:27 +02:00
Lauri Ojansivu ab288f1593 Update translations. 2020-11-10 08:04:11 +02:00
Lauri Ojansivu 5813ad95cf Update ChangeLog. 2020-11-10 07:34:09 +02:00
Lauri Ojansivu 6801c960b1 Fix typo. 2020-11-10 07:23:59 +02:00
Lauri Ojansivu 76d1148a98 Merge pull request #3335 from helioguardabaxo/master
Add 'Modern Dark' theme
2020-11-10 07:22:46 +02:00
Lauri Ojansivu f63ed78f5b Update ChangeLog. 2020-11-10 07:20:21 +02:00
Lauri Ojansivu 0ef248574c Fix edit description to require only one click.
Thanks to uusijani and xet7 !

Fixes #3338
2020-11-10 07:16:14 +02:00
helioguardabaxo 415fac8a25 Add 'Modern Dark' theme 2020-11-08 16:45:15 -03:00
Lauri Ojansivu 6cbb77b591 v4.49 2020-11-04 19:40:11 +02:00
Lauri Ojansivu 65ea8edea7 Update translations. 2020-11-04 19:34:27 +02:00
Lauri Ojansivu c87fbfd3f8 Update ChangeLog. 2020-11-04 17:54:03 +02:00
Lauri Ojansivu faad739f97 Fix Trello import.
Thanks to elct9620 and xet7 !

Fixes #3330
2020-11-04 17:51:17 +02:00
Lauri Ojansivu 38bcb8a724 Update translations. 2020-11-04 17:27:37 +02:00
Lauri Ojansivu 82237f2e79 Update ChangeLog. 2020-11-04 17:20:09 +02:00
Lauri Ojansivu fd363c69cc Translate some part of Gantt chart of Wekan Gantt GPL version.
This only adds translations to all Wekan versions,
not any GPL code to MIT version.

Thanks to xet7 !
2020-11-04 17:15:55 +02:00
Lauri Ojansivu e7769ce467 Update ChangeLog. 2020-11-04 16:32:34 +02:00
Lauri Ojansivu 76273300e7 Changed board icons bigger at All Boards page.
Thanks to xet7 !
2020-11-04 16:28:51 +02:00
Lauri Ojansivu cb6d74d7d9 Update ChangeLog. 2020-11-04 16:21:56 +02:00
Lauri Ojansivu cfe78471aa Merge pull request #3329 from cloudron-io/ldap_sync_email
ldap: sync email address
2020-11-04 16:19:42 +02:00
Girish Ramakrishnan e79e0cfb66 ldap: sync email address 2020-11-03 14:25:42 -08:00
Lauri Ojansivu a74bc81ff8 v4.48 2020-11-02 23:47:50 +02:00
Lauri Ojansivu b10b7a713e Update translations. 2020-11-02 22:13:30 +02:00
Lauri Ojansivu c9a2120c54 Update ChangeLog. 2020-11-02 22:03:56 +02:00
Lauri Ojansivu 4e2d337620 When RICHER_CARD_COMMENT_EDITOR=true, use richer editor
also when editing card description.

Thanks to xet7 !
2020-11-02 21:58:13 +02:00
Lauri Ojansivu ec33cdcb29 Update ChangeLog. 2020-11-02 17:55:28 +02:00
Lauri Ojansivu 4cfddf1d8d Admin Panel / Settings / Layout / Custom Top Left Corner Logo Height.
Thanks to xet7 !
2020-11-02 17:53:01 +02:00
Lauri Ojansivu 3f9b86d8e7 Update ChangeLog. 2020-11-02 16:28:43 +02:00
Lauri Ojansivu f4fdb94a3f Fix Clone Board.
Thanks to e-gaulue and xet7 !

Fixes #3326
2020-11-02 16:25:01 +02:00
Lauri Ojansivu 02856877a6 Update ChangeLog. 2020-11-02 15:53:27 +02:00
Lauri Ojansivu 0a5f9307d2 Smaller board icons to All Boards Page, and use full page width, so more board icons fit visible at once.
Removed variable height, because different heights made it look a little unbalanced.

Thanks to xet7 !
2020-11-02 15:47:00 +02:00
Lauri Ojansivu 579968143c Update ChangeLog. 2020-11-02 15:46:29 +02:00
Lauri Ojansivu aa454a5542 Removed hot-module-replacement and mdg:meteor-apm-agent.
Thanks to xet7 !
2020-11-02 15:43:52 +02:00
Lauri Ojansivu ce563085b5 v4.47 2020-11-01 23:24:24 +02:00
Lauri Ojansivu 6f99b22dc6 Update translations. 2020-11-01 23:22:09 +02:00
Lauri Ojansivu b08f228191 Update ChangeLog. 2020-11-01 23:20:02 +02:00
Lauri Ojansivu 55252300c6 Add settings for OAUTH2_CA_CERT that is
Optional OAuth2 CA Cert, see https://github.com/wekan/wekan/issues/3299

Thanks to xet7 !

Related #3299 ,
related https://github.com/wekan/wekan/pull/3325
2020-11-01 23:14:20 +02:00
Lauri Ojansivu f99934b994 Update ChangeLog. 2020-11-01 23:02:17 +02:00
Lauri Ojansivu cd16fa43a0 Merge pull request #3325 from faust64/oidc-custom-ca
fix(oidc): wekan/wekan#3299
2020-11-01 22:53:43 +02:00
Samuel MARTIN MORO ae9d82430a fix(oidc): wekan/wekan#3299 2020-11-01 20:48:50 +01:00
Lauri Ojansivu d75ca0c8f0 Added Thanks. 2020-10-31 00:20:36 +02:00
Lauri Ojansivu 66a4b1c2df v4.46 2020-10-30 22:53:06 +02:00
Lauri Ojansivu 6fe39d99ac Update translations. 2020-10-30 22:42:44 +02:00
Lauri Ojansivu 388c249212 Update ChangeLog. 2020-10-30 22:39:37 +02:00
Lauri Ojansivu af583145ed Upgrade to Meteor 2.0-beta.4 .
Thanks to Meteor developers!
2020-10-30 22:37:11 +02:00
Lauri Ojansivu 9c8b7b324f Update ChangeLog. 2020-10-30 22:34:57 +02:00
Lauri Ojansivu a3f5ef1a54 Merge pull request #3323 from jtbairdsr/master
fix: use current boardId when a worker moves a card
2020-10-30 22:32:53 +02:00
Jonathan Baird 305658da3a fix: use current boardId when a worker moves a card 2020-10-30 13:20:29 -06:00
Lauri Ojansivu 2b24ebf539 v4.45 2020-10-30 13:16:18 +02:00
Lauri Ojansivu 13d5015fc3 Update translations. 2020-10-30 13:02:55 +02:00
Lauri Ojansivu 13cf1a687e Update ChangeLog. 2020-10-30 13:00:35 +02:00
Lauri Ojansivu d2f434879c Fix can not upload and download files, by changing back to Node.js 12.19.0 and adding fast-render.
Current file storing to MongoDB code was not yet compatible with newer Node.js.

Thanks to eskogito and xet7 !

Fixes #3320
2020-10-30 12:53:41 +02:00
Lauri Ojansivu c3ffaa7ce2 v4.44 2020-10-28 18:53:31 +02:00
Lauri Ojansivu 2955c167c2 Update ChangeLog. 2020-10-28 18:49:35 +02:00
Lauri Ojansivu 81d1bf6d27 Merge branch 'jtbairdsr-master' 2020-10-28 18:46:08 +02:00
Lauri Ojansivu 46ce345203 Merge branch 'master' of https://github.com/jtbairdsr/wekan into jtbairdsr-master 2020-10-28 18:02:14 +02:00
Jonathan Baird 363e69f01c fix: expose moving cards on mobile to workers
this fix also hides the move to another board functionality in the
submenu (only from the worker) so that the worker is still constrained
to a single board.
2020-10-28 09:38:41 -06:00
Lauri Ojansivu 9b0875169b Update ChangeLog. 2020-10-28 16:34:58 +02:00
Lauri Ojansivu e616247254 For development, add Meteor 2.0 Hot Module Replacement
https://forums.meteor.com/t/meteor-2-0-beta-with-hot-module-replacement-hmr/54313/8

Thanks to zodern!
2020-10-28 16:31:59 +02:00
Lauri Ojansivu cc5f22df79 Update ChangeLog. 2020-10-28 16:18:48 +02:00
Lauri Ojansivu 3448467953 Merge pull request #3312 from helioguardabaxo/master
Fix Modern theme board canvas background
2020-10-28 16:16:19 +02:00
Lauri Ojansivu 74dbb96d85 Update translations. 2020-10-28 16:15:16 +02:00
Lauri Ojansivu d2cfe76a28 Update ChangeLog. 2020-10-28 16:06:27 +02:00
Lauri Ojansivu 045e9db7b8 Upgrade to Node.js 14.15.0
Thanks to Node.js and Meteor.js developers!
2020-10-28 15:57:38 +02:00
Lauri Ojansivu 460b1d3a66 Changed public board changing Swimlanes/Lists/Calendar view
and changing Hide minicard label text
from using cookies to using browser localStorage.

Thanks to xet7 !
2020-10-28 15:45:37 +02:00
Lauri Ojansivu a463f2a855 Upgrade to Meteor 2.0-beta.3. Removed fast-render and ostrio:cookies.
Thanks to xet7 !
2020-10-28 15:44:47 +02:00
helioguardabaxo 8b3399b8f6 Fix Moder theme board canvas background 2020-10-26 19:58:51 -03:00
Lauri Ojansivu ef59d6dcb9 Update ChangeLog. 2020-10-21 19:30:38 +03:00
Lauri Ojansivu 1b429b3f99 Fixed: With ORACLE_OIM_ENABLED, allow setting OAUTH2_REQUEST_PERMISSIONS with environment variable.
Thanks to xet7 !
2020-10-21 19:20:48 +03:00
Lauri Ojansivu 5098f7dee1 v4.43 2020-10-20 19:11:48 +03:00
Lauri Ojansivu c509aaf246 Update translations. 2020-10-20 19:04:18 +03:00
Lauri Ojansivu d7333dec84 Fixed CSV/TSV export. Please test.
Thanks to xet7 !

Related #3173
2020-10-20 18:59:41 +03:00
Lauri Ojansivu 9d97494cfc Update ChangeLog. 2020-10-16 23:58:54 +03:00
Lauri Ojansivu acf9e7caea Allow more than one assignee.
Thanks to xet7 !

Fixes #3302
2020-10-16 23:56:20 +03:00
Lauri Ojansivu f6d000b26a Update translations. 2020-10-16 23:42:12 +03:00
Lauri Ojansivu ba5b35d0cc v4.42 2020-10-14 21:51:51 +03:00
Lauri Ojansivu 1eae8222c4 Update translations. 2020-10-14 21:40:32 +03:00
Lauri Ojansivu 9b5a519bc7 Update ChangeLog. 2020-10-12 16:42:26 +03:00
Lauri Ojansivu b8a209249e Updagrade to Node.js 12.19.0.
Thanks to Node.js developers !
2020-10-12 16:39:47 +03:00
Lauri Ojansivu ecc1b69f5c Update translations. 2020-10-12 16:19:25 +03:00
Lauri Ojansivu 6253bc6c14 Merge branch 'master' of github.com:wekan/wekan 2020-10-11 01:50:44 +03:00
Lauri Ojansivu 7768a4c1ba Reverted systemd changes that caused Snap to fail building.
Thanks to xet7 !
2020-10-11 01:50:24 +03:00
Lauri Ojansivu cd1bc7a695 Reverted systemd changed that caused Snap to fail building. 2020-10-11 01:49:55 +03:00
Lauri Ojansivu 42f45f9a83 Update translations. 2020-10-10 20:13:45 +03:00
Lauri Ojansivu d081eb0a2e Update dependencies. 2020-10-10 20:10:08 +03:00
Lauri Ojansivu 504533991b Update translations. 2020-10-04 23:25:23 +03:00
Lauri Ojansivu 44a5976b85 Update ChangeLog. 2020-10-03 23:51:54 +03:00
Lauri Ojansivu ac65b93b43 Added restart on failure delay of 10 seconds to Snap.
Thanks to xet7 !

Related #3293
2020-10-03 23:48:11 +03:00
Lauri Ojansivu e9d27c521e Update translations. 2020-10-03 23:23:26 +03:00
124 changed files with 43564 additions and 42484 deletions

No files matched your search

+2 -1
View File
@@ -6,7 +6,7 @@ ENV DEBIAN_FRONTEND=noninteractive
ENV \
DEBUG=false \
NODE_VERSION=v12.18.4 \
NODE_VERSION=v12.19.0 \
METEOR_RELEASE=1.10.2 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
@@ -39,6 +39,7 @@ ENV \
TRUSTED_URL="" \
WEBHOOKS_ATTRIBUTES="" \
OAUTH2_ENABLED=false \
OAUTH2_CA_CERT="" \
OAUTH2_ADFS_ENABLED=false \
OAUTH2_LOGIN_STYLE=redirect \
OAUTH2_CLIENT_ID="" \
+1 -1
View File
@@ -81,7 +81,7 @@ parts:
wekan:
source: .
plugin: nodejs
node-engine: 12.18.4
node-engine: 12.19.0
node-packages:
- node-gyp
- node-pre-gyp
+1 -1
View File
@@ -83,7 +83,7 @@ parts:
wekan:
source: .
plugin: nodejs
node-engine: 12.18.4
node-engine: 12.19.0
node-packages:
- node-gyp
- node-pre-gyp
+5 -6
View File
@@ -6,8 +6,8 @@
meteor-base@1.4.0
# Build system
ecmascript@0.14.3
standard-minifier-css@1.6.1
ecmascript@0.15.0-beta200.4
standard-minifier-css@1.7.0-beta200.4
standard-minifier-js@2.6.0
mquandalle:jade
coffeescript@2.4.1!
@@ -72,8 +72,7 @@ simple:rest-accounts-password
useraccounts:core
email@2.0.0
horka:swipebox
dynamic-import@0.5.2
staringatlights:fast-render
dynamic-import@0.6.0-beta200.4
accounts-password@1.6.2
cfs:gridfs
@@ -82,7 +81,6 @@ momentjs:moment@2.22.2
browser-policy-framing@1.1.0
mquandalle:moment
msavin:usercache
mdg:meteor-apm-agent@3.2.0-rc.0!
# Keep stylus in 1.1.0, because building v2 takes extra 52 minutes.
coagmano:stylus@1.1.0!
lucasantoniassi:accounts-lockout
@@ -95,7 +93,6 @@ konecty:mongo-counter
percolate:synced-cron
easylogic:summernote
cfs:filesystem
ostrio:cookies
tmeasday:check-npm-versions
steffo:meteor-accounts-saml
rajit:bootstrap3-datepicker-fi
@@ -146,3 +143,5 @@ rajit:bootstrap3-datepicker-uk
rajit:bootstrap3-datepicker-vi
rajit:bootstrap3-datepicker-zh-cn
rajit:bootstrap3-datepicker-zh-tw
staringatlights:fast-render
spacebars
+1 -1
View File
@@ -1 +1 @@
METEOR@1.11.1
METEOR@2.0-beta.4
+10 -12
View File
@@ -10,8 +10,8 @@ aldeed:simple-schema@1.5.4
allow-deny@1.1.0
arillo:flow-router-helpers@0.5.2
audit-argument-checks@1.0.7
autoupdate@1.6.0
babel-compiler@7.5.3
autoupdate@1.7.0-beta200.4
babel-compiler@7.6.0-beta200.4
babel-runtime@1.5.0
base64@1.0.12
binary-heap@1.0.11
@@ -49,15 +49,15 @@ coffeescript-compiler@2.4.1
cottz:publish-relations@2.0.8
dburles:collection-helpers@1.1.0
ddp@1.4.0
ddp-client@2.3.3
ddp-client@2.4.0-beta200.4
ddp-common@1.4.0
ddp-rate-limiter@1.0.9
ddp-server@2.3.2
deps@1.0.12
diff-sequence@1.1.1
dynamic-import@0.5.3
dynamic-import@0.6.0-beta200.4
easylogic:summernote@0.8.8
ecmascript@0.14.3
ecmascript@0.15.0-beta200.4
ecmascript-runtime@0.7.0
ecmascript-runtime-client@0.11.0
ecmascript-runtime-server@0.10.0
@@ -91,7 +91,6 @@ logging@1.1.20
lucasantoniassi:accounts-lockout@1.0.0
matb33:collection-hooks@0.9.1
matteodem:easy-search@1.6.4
mdg:meteor-apm-agent@3.3.0
mdg:validation-error@0.5.1
meteor@1.9.3
meteor-base@1.4.0
@@ -107,9 +106,9 @@ minifiers@1.1.8-faster-rebuild.0
minimongo@1.6.0
mobile-status-bar@1.1.0
modern-browsers@0.1.5
modules@0.15.0
modules@0.16.0-beta200.4
modules-runtime@0.12.0
momentjs:moment@2.29.0
momentjs:moment@2.29.1
mongo@1.10.0
mongo-decimal@0.1.1
mongo-dev-server@1.1.0
@@ -132,7 +131,6 @@ oauth2@1.3.0
observe-sequence@1.0.16
ongoworks:speakingurl@1.1.0
ordered-dict@1.1.0
ostrio:cookies@2.6.0
peerlibrary:assert@0.3.0
peerlibrary:base-component@0.16.0
peerlibrary:blaze-components@0.15.1
@@ -214,7 +212,7 @@ softwarerero:accounts-t9n@1.3.11
spacebars@1.0.15
spacebars-compiler@1.1.3
srp@1.1.0
standard-minifier-css@1.6.1
standard-minifier-css@1.7.0-beta200.4
standard-minifier-js@2.6.0
staringatlights:fast-render@3.3.0
staringatlights:inject-data@2.3.0
@@ -235,8 +233,8 @@ useraccounts:core@1.14.2
useraccounts:flow-routing@1.14.2
useraccounts:unstyled@1.14.2
verron:autosize@3.0.8
webapp@1.9.1
webapp-hashing@1.0.9
webapp@1.10.0-beta200.4
webapp-hashing@1.1.0-beta200.4
wekan-accounts-cas@0.1.0
wekan-accounts-oidc@1.0.10
wekan-ldap@0.0.2
+1 -1
View File
@@ -3,7 +3,7 @@ sudo: required
env:
TRAVIS_DOCKER_COMPOSE_VERSION: 1.24.0
TRAVIS_NODE_VERSION: 12.18.4
TRAVIS_NODE_VERSION: 12.19.0
TRAVIS_NPM_VERSION: latest
before_install:
+208
View File
@@ -1,3 +1,211 @@
# v4.53 2020-11-15 Wekan release
This release adds the following updates:
- [Use Quay for Docker builds, because Docker Hub builds show ENOMEM error](https://github.com/wekan/wekan/commit/22501749da708a51b89ef9ff0aee4ac6ba529ed9).
Thanks to xet7.
- [Update Docker upgrade info](https://github.com/wekan/wekan/commit/d0040754ea75a26926a187ce47dbe529a15e0926).
Thanks to xet7.
- [Use latest MongoDB on Docker](https://github.com/wekan/wekan/commit/8250cbcf6e417d21ffdc4f14495792768b0bc9ef).
Thanks to xet7.
- [In rebuild-wekan.sh install dependencies, Install npm](https://github.com/wekan/wekan/commit/345e2357c8fd030e943f9729f790db980d3a727c).
Thanks to xet7.
- [In rebuild-wekan.sh install dependencies, uncomment chown](https://github.com/wekan/wekan/commit/21aebe845f3f4911d9bb824f0f33bdb19a3a9af6).
Thanks to xet7.
- [Update markdown-it and markdown-it-emoji dependencies](https://github.com/wekan/wekan/commit/222fca3ad7aa2b67329dca64e84eb72899fd8137).
Thanks to developers of markdown-it and markdown-it-emoji.
and adds the following improvements:
- [Minor improvements to Modern Dark theme](https://github.com/wekan/wekan/pull/3348).
Thanks to jghaanstra.
- [Added missing bottom padding to lists](https://github.com/wekan/wekan/pull/3351).
Thanks to danger89.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.52 2020-11-12 Wekan release
This release adds the following improvements:
- [Some more small improvements to Modern Dark theme](https://github.com/wekan/wekan/pull/3346).
Thanks to jghaanstra.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.51 2020-11-11 Wekan release
This release adds the following new features:
- [Board admin can edit and delete comments as well](https://github.com/wekan/wekan/pull/3340).
Thanks to mfilser.
- [Drag handles for checklist](https://github.com/wekan/wekan/pull/3341).
Thanks to mfilser.
- [Custom URL Schemes autolinked](https://github.com/wekan/wekan/pull/3339).
Thanks to brian-j.
and adds the following improvements:
- [Improvements to Modern Dark Theme](https://github.com/wekan/wekan/pull/3344).
Thanks to jghaanstra.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.50 2020-11-10 Wekan release
This release adds the following new features:
- Add 'Modern Dark' theme [Part1](https://github.com/wekan/wekan/pulls/3335)
and [Part2](https://github.com/wekan/wekan/commit/6801c960b115be4265bf18ba05c444ac79aef887).
Thanks to jghaanstra, helioguardabaxo and xet7.
and fixes the following bugs:
- [Fix edit description to require only one click](https://github.com/wekan/wekan/commit/0ef248574c2751be1245c5748a9cbbe5ba2969b5).
Thanks to uusijani and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.49 2020-11-04 Wekan release
This release adds the following new features:
- [LDAP: Sync email address](https://github.com/wekan/wekan/pull/3329).
Thanks to gramakri.
and adds the following changes:
- [Changed board icons bigger at All Boards page](https://github.com/wekan/wekan/commit/76273300e749ebe3b1d711dee84336d03b31ed49).
Thanks to xet7.
and adds the following translations:
- [Translate some part of Gantt chart of Wekan Gantt GPL version](https://github.com/wekan/wekan/commit/fd363c69cc6e1cf3a283e3dbcc323edb1eae896e).
This only adds translations to all Wekan versions, not any GPL code to MIT version.
Thanks to xet7.
and fixes the following bugs:
- [Fix Trello import](https://github.com/wekan/wekan/commit/faad739f974a0392ca73e4db03e5267edcc5dec7).
Thanks to elct9620 and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.48 2020-11-02 Wekan release
This release adds the following new features:
- [Smaller board icons to All Boards Page, and use full page width, so more board icons fit visible at once.
Removed variable height, because different heights made it look a little unbalanced](https://github.com/wekan/wekan/commit/0a5f9307d27a4b77aa7ff005701fea8ce0d50ec8).
Thanks to xet7.
- [Admin Panel / Settings / Layout / Custom Top Left Corner Logo Height](https://github.com/wekan/wekan/commit/4cfddf1d8d37bdbbb58c050333ee6ea2afc3e6f9).
Thanks to xet7.
- [When RICHER_CARD_COMMENT_EDITOR=true, use richer editor also when editing card description](https://github.com/wekan/wekan/commit/4e2d337620ac490b8e99ee968e6f92477e09b900).
Thanks to xet7.
and removes the following dependencies:
- [Removed hot-module-replacement and mdg:meteor-apm-agent](https://github.com/wekan/wekan/commit/aa454a5542e5ab1d581eef50cdb5c96ac2ada940).
Thanks to xet7.
and fixes the following bugs:
- [Fix Clone Board](https://github.com/wekan/wekan/commit/f4fdb94a3fcd63432ef7ded4df970b3491700020).
Thanks to e-gaulue and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.47 2020-11-01 Wekan release
This release fixes the following bugs:
- [Fix: OAuth2 fails with self-signed server certificate](https://github.com/wekan/wekan/pull/3325) and
[Added related settings for OAUTH2_CA_CERT that is optional OAuth2 CA Cert](https://github.com/wekan/wekan/commit/55252300c601ea40dc8adad1887397b31ceb0bb2).
Thanks to faust64 and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.46 2020-10-30 Wekan release
This release adds the following updates:
- [Upgrade to Meteor 2.0-beta.4](https://github.com/wekan/wekan/commit/af583145ed2b36af8e6c72765fd35d70a292fad6).
Thanks to Meteor developers.
and fixes the following bugs:
- [Fix: Use current boardId when a worker moves a card](https://github.com/wekan/wekan/pull/3323).
Thanks to jtbairdsr.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.45 2020-10-30 Wekan release
This release fixes the following bugs:
- [Fix can not upload and download files, by changing back to Node.js 12.19.0 and adding
fast-render](https://github.com/wekan/wekan/commit/d2f434879caa20d69651f23fa2124074f55c9893).
Current file storing to MongoDB code was not yet compatible with newer Node.js.
Thanks to eskogito and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.44 2020-10-28 Wekan release
This release adds the following new features:
- For development, [add Meteor 2.0 Hot Module Replacement](https://github.com/wekan/wekan/commit/e6162472548d9dff497dd76e82d23044f779f757).
More info at https://forums.meteor.com/t/meteor-2-0-beta-with-hot-module-replacement-hmr/54313/8 .
Thanks to zodern.
and adds the following updates:
- [Upgrade to Node.js 14.15.0](https://github.com/wekan/wekan/commit/045e9db7b8f0de852ef4486cb1ad200d6ca7296d).
Thanks to Node.js and Meteor.js developers.
- [Upgrade to Meteor 2.0-beta.3. Removed fast-render and ostrio:cookies](https://github.com/wekan/wekan/commit/a463f2a855498935db5b66e5fad446ce465adab1).
Thanks to Meteor.js developers and xet7.
and fixes the following bugs:
- [Fixed: With ORACLE_OIM_ENABLED, allow setting OAUTH2_REQUEST_PERMISSIONS with environment variable](https://github.com/wekan/wekan/commit/1b429b3f99c32840ebb0ff9a29015aa8c28ec644).
Thanks to xet7.
- [Changed public board changing Swimlanes/Lists/Calendar view and changing Hide minicard label text
from using cookies to using browser localStorage](https://github.com/wekan/wekan/commit/460b1d3a664b648bc03c40422b9d175401e229c1),
to remove some errors from browser inspect console.
Thanks to xet7.
- [Fix Modern theme board canvas background](https://github.com/wekan/wekan/pull/3312).
Thanks to helioguardabaxo.
- [Fix: 1) Expose moving cards on mobile to workers. 2) Hide the move to another board functionality
in the submenu (only from the worker) so that the worker is still constrained to a single
board](https://github.com/wekan/wekan/pull/3315).
Thanks to jtbairdsr.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.43 2020-10-20 Wekan release
This release adds the following new features:
- [Allow more than one assignee](https://github.com/wekan/wekan/commit/acf9e7caeaf59e1030ae1014c0cb2fb7dae27147).
Thanks to xet7.
and fixes the following bugs:
- [Fixed CSV/TSV export](https://github.com/wekan/wekan/commit/d7333dec84328ca191f430d96aaf9e550840631a).
Please test and report any problems [at issue #3173](https://github.com/wekan/wekan/issues/3173).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.42 2020-10-14 Wekan release
This release adds the following updates:
- [Upgrade to Node.js 12.19.0](https://github.com/wekan/wekan/commit/b8a209249e968b90917af319adf24fedf2157396).
Thanks to Node.js developers.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.41 2020-10-03 Wekan release
This release adds the following new features:
+2 -1
View File
@@ -8,7 +8,7 @@ ARG DEBIAN_FRONTEND=noninteractive
ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-essential git ca-certificates python3" \
DEBUG=false \
NODE_VERSION=v12.18.4 \
NODE_VERSION=v12.19.0 \
METEOR_RELEASE=1.10.2 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
@@ -41,6 +41,7 @@ ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-
TRUSTED_URL="" \
WEBHOOKS_ATTRIBUTES="" \
OAUTH2_ENABLED=false \
OAUTH2_CA_CERT="" \
OAUTH2_ADFS_ENABLED=false \
OAUTH2_LOGIN_STYLE=redirect \
OAUTH2_CLIENT_ID="" \
+2 -2
View File
@@ -4,7 +4,7 @@ FROM amd64/alpine:3.7 AS builder
ENV QEMU_VERSION=v4.2.0-6 \
QEMU_ARCHITECTURE=aarch64 \
NODE_ARCHITECTURE=linux-arm64 \
NODE_VERSION=v12.18.4 \
NODE_VERSION=v12.19.0 \
WEKAN_VERSION=3.96 \
WEKAN_ARCHITECTURE=arm64
@@ -40,7 +40,7 @@ LABEL maintainer="wekan"
# Set the environment variables (defaults where required)
ENV QEMU_ARCHITECTURE=aarch64 \
NODE_ARCHITECTURE=linux-arm64 \
NODE_VERSION=v12.18.4 \
NODE_VERSION=v12.19.0 \
NODE_ENV=production \
NPM_VERSION=latest \
WITH_API=true \
+6 -2
View File
@@ -4,8 +4,6 @@
[![Contributors](https://img.shields.io/github/contributors/wekan/wekan.svg "Contributors")](https://github.com/wekan/wekan/graphs/contributors)
[![Docker Repository on Quay](https://quay.io/repository/wekan/wekan/status "Docker Repository on Quay")](https://quay.io/repository/wekan/wekan)
[![Docker Hub container status](https://img.shields.io/docker/build/wekanteam/wekan.svg "Docker Hub container status")](https://hub.docker.com/r/wekanteam/wekan)
[![Docker Hub pulls](https://img.shields.io/docker/pulls/wekanteam/wekan.svg "Docker Hub Pulls")](https://hub.docker.com/r/wekanteam/wekan)
[![Wekan Build Status][travis_badge]][travis_status]
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/02137ecec4e34c5aa303f57637196a93 "Codacy Badge")](https://www.codacy.com/app/xet7/wekan?utm_source=github.com&utm_medium=referral&utm_content=wekan/wekan&utm_campaign=Badge_Grade)
[![Code Climate](https://codeclimate.com/github/wekan/wekan/badges/gpa.svg "Code Climate")](https://codeclimate.com/github/wekan/wekan)
@@ -13,6 +11,12 @@
[![Code analysis at Open Hub](https://img.shields.io/badge/code%20analysis-at%20Open%20Hub-brightgreen.svg "Code analysis at Open Hub")](https://www.openhub.net/p/wekan)
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fwekan%2Fwekan.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fwekan%2Fwekan?ref=badge_shield)
NOTE: Docker Hub builds are broken with error ENOMEM. Only Quay works, see docker-compose.yml .
<!--
[![Docker Hub container status](https://img.shields.io/docker/build/wekanteam/wekan.svg "Docker Hub container sta>
[![Docker Hub pulls](https://img.shields.io/docker/pulls/wekanteam/wekan.svg "Docker Hub Pulls")](https://hub.doc>
-->
## [Translate Wekan at Transifex](https://transifex.com/wekan/wekan)
Translations to non-English languages are accepted only at [Transifex](https://transifex.com/wekan/wekan) using webbrowser.
+1 -1
View File
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v4.41.0"
appVersion: "v4.53.0"
files:
userUploads:
- README.md
+10 -5
View File
@@ -15,6 +15,12 @@ template(name="cardActivities")
each activityData in currentCard.activities
+activity(activity=activityData card=card mode=mode)
template(name="editOrDeleteComment")
= ' - '
a.js-open-inlined-form {{_ "edit"}}
= ' - '
a.js-delete-comment {{_ "delete"}}
template(name="activity")
.activity
+userAvatar(userId=activity.user._id)
@@ -118,11 +124,10 @@ template(name="activity")
+viewer
= activity.comment.text
span(title=activity.createdAt).activity-meta {{ moment activity.createdAt }}
if ($eq currentUser._id activity.comment.userId)
= ' - '
a.js-open-inlined-form {{_ "edit"}}
= ' - '
a.js-delete-comment {{_ "delete"}}
if($eq currentUser._id activity.comment.userId)
+editOrDeleteComment
else if currentUser.isBoardAdmin
+editOrDeleteComment
if($eq activity.activityType 'deleteComment')
| {{{_ 'activity-deleteComment' currentData.commentId}}}.
+7 -7
View File
@@ -1,5 +1,3 @@
import { Cookies } from 'meteor/ostrio:cookies';
const cookies = new Cookies();
const subManager = new SubsManager();
const { calculateIndex } = Utils;
const swimlaneWhileSortingHeight = 150;
@@ -197,7 +195,7 @@ BlazeComponent.extendComponent({
if (currentUser) {
showDesktopDragHandles = (currentUser.profile || {})
.showDesktopDragHandles;
} else if (cookies.has('showDesktopDragHandles')) {
} else if (window.localStorage.getItem('showDesktopDragHandles')) {
showDesktopDragHandles = true;
} else {
showDesktopDragHandles = false;
@@ -237,7 +235,9 @@ BlazeComponent.extendComponent({
if (currentUser) {
return (currentUser.profile || {}).boardView === 'board-view-swimlanes';
} else {
return cookies.get('boardView') === 'board-view-swimlanes';
return (
window.localStorage.getItem('boardView') === 'board-view-swimlanes'
);
}
},
@@ -246,7 +246,7 @@ BlazeComponent.extendComponent({
if (currentUser) {
return (currentUser.profile || {}).boardView === 'board-view-lists';
} else {
return cookies.get('boardView') === 'board-view-lists';
return window.localStorage.getItem('boardView') === 'board-view-lists';
}
},
@@ -255,7 +255,7 @@ BlazeComponent.extendComponent({
if (currentUser) {
return (currentUser.profile || {}).boardView === 'board-view-cal';
} else {
return cookies.get('boardView') === 'board-view-cal';
return window.localStorage.getItem('boardView') === 'board-view-cal';
}
},
@@ -417,7 +417,7 @@ BlazeComponent.extendComponent({
if (currentUser) {
return (currentUser.profile || {}).boardView === 'board-view-cal';
} else {
return cookies.get('boardView') === 'board-view-cal';
return window.localStorage.getItem('boardView') === 'board-view-cal';
}
},
}).register('calendarView');
+278 -4
View File
@@ -589,22 +589,25 @@ setBoardClear(color1,color2)
position relative
&#header-quick-access #header-user-bar .header-user-bar-name
margin: 5px 3px 0 0;
margin: 5px 3px 0 0
section#notifications-drawer
top: 46px;
top: 46px
box-shadow: 0 4px 20px rgba(0,0,0,.1)
max-width: 100%
section#notifications-drawer .header
top: 46px;
top: 46px
border-radius: 0 3px
height: 21px
background: #f7f7f7
.board-canvas
background: #f5f5f5
/* Swimlane */
.swimlane
background: #f5f5f5
background: none
.swimlane .swimlane-header-wrap .swimlane-header
font-family: Poppins
@@ -739,3 +742,274 @@ setBoardClear(color1,color2)
section#notifications-drawer .header .toggle-read
top: 18px
/*
Alternate "Modern Dark" Styling
*/
.board-color-moderndark
setBoardColor(#2a2a2a)
/* General */
body
background: #2a2a2a
/* Forms */
button[type=submit].primary, .board-color-modern input[type=submit].primary
background-color: #819C5D
.toggle-switch:checked~.toggle-label
background-color: #D2E9B4
.toggle-label:after, .board-color-modern .toggle-switch:checked~.toggle-label:after
background-color: #819C5D !important
/* Headers */
&#header-quick-access, .background-box, #header
background-color: #333333
&#header-quick-access
padding: 4px
font-size: 14px
&#header #header-main-bar
height: 30px
padding-top: 3px
padding-bottom: 3px
&#header
box-shadow: 0 6px 6px -6px rgba(0,0,0,0.8)
&#header-quick-access ul
overflow: visible
&#header-quick-access ul li.current
border: 0 !important
font-weight: bold
&#header-quick-access ul li.separator
display: none
&#header-quick-access ul li:nth-child(3)
margin-right: 10px
&#header-quick-access ul li a
padding: 5px 10px
border-radius: 2px
&#header-quick-access ul li.current a
border-radius: 2px
background: rgba(255,255,255,.2)
&#header #header-main-bar h1
font-family: Poppins
font-weight: bold
line-height: 0.8em
padding-top: 10px
/* Content */
.board-canvas
background: #2a2a2a
padding: 10px 10px 0
/* Swimlanes */
.swimlane .swimlane-header-wrap
background-color: #666666
color: #cccccc
padding: 4px 0
margin-bottom: 10px
.swimlane .swimlane-header-wrap .swimlane-header
font-family: Poppins
.swimlane
background: #2a2a2a
line-height: 15px
max-height: 100%
/* Lists */
.swimlane .list
background: #666666
border-radius: 0
border: 0px solid #666666
flex: 0 0 265px;
.swimlane .list:nth-child(even)
background: #5f5f5f
.list-header
background: #333333
padding-top: 10px
border-bottom: 6px solid #333333
.list-header .viewer
padding-left: 10px
.list-header .list-header-name
line-height: 14px
color: #eeeeee
.list-header .list-header-menu
padding-top: 17px
.list-body
scrollbar-width: thin
scrollbar-color: #343434 #999999
.list-body::-webkit-scrollbar
width: 10px
.list-body::-webkit-scrollbar-track
background: #343434
border-radius: 3px
margin: 4px 0
.list-body::-webkit-scrollbar-thumb
background-color: #999999
border-radius: 6px
border: 3px solid #343434
.list-body .open-minicard-composer:hover
background: none
box-shadow: none
border-bottom: 0
.list-body a.open-minicard-composer, .list-body a.open-minicard-composer i, .list .list-composer .open-list-composer i
color: #bbbbbb
.list-body a.open-minicard-composer:hover, .list-body a.open-minicard-composer:hover i, .list .list-composer .open-list-composer:hover i
color: #ffffff
/* Mini Card */
.minicard
background-color: #444444
color: #cccccc
border-radius: 2px
font-size: 0.9em
padding: 10px
box-shadow: 0 4px 3px -3px rgba(0,0,0,0.8)
border-bottom: 1px solid #666666
.minicard:hover
background-color: #555555 !important
.minicard .card-label
font-size: 11px
font-weight: 400
padding: 2px 6px 0
.minicard .badges
color: #bbbbbb
.minicard .date
margin-top: 7px
font-size: 11px
.card-date
color: #555555
.card-date.almost-due
color: #666666
.minicard.minicard-composer textarea.minicard-composer-textarea:focus
background-color: #eeeeee
color: #333333
padding: 6px
.is-selected .minicard
background-color: #666666
/* Card Details */
.card-details
background-color: #454545
color: #cccccc
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19)
border: 1px solid #111111
.card-details
scrollbar-width: thin
scrollbar-color: #343434 #999999
.card-details::-webkit-scrollbar
width: 16px
.card-details::-webkit-scrollbar-track
background: #343434
.card-details::-webkit-scrollbar-thumb
background-color: #999999
border-radius: 6px
border: 4px solid #343434
.card-details .card-details-header
background: #333333
color: #cccccc
border-bottom: 2px solid #2d2d2d
.card-details hr
background: #2d2d2d
.card-details .card-details-item-title
color: #ffffff
.card-details .new-description textarea, .card-details .new-comment textarea
background-color: #dddddd
color: #111111
.card-details .checklist
background-color: transparent
margin-bottom: 10px
.card-details .checklist-item
background-color: rgba(255,255,255,0.1)
padding: 2px 8px
border-radius: 3px
font-size: 13px
margin-top: 5px
.card-details .check-box.materialCheckBox
border-color: #ffffff
.card-details .check-box.materialCheckBox.is-checked
border-bottom: 2px solid #819C5D
border-right: 2px solid #819C5D
border-top: 0
border-left: 0
.card-details .js-add-checklist-item
margin-top: 4px
.checklist-items .add-checklist-item
margin-top: .7em
.card-details .activities .activity .activity-desc .activity-comment
background-color: #cccccc
color: #222222
/* Sidebar */
.sidebar .sidebar-shadow
background-color: #222222
box-shadow: -10px 0 5px -10px #444444
border-left: 1px solid #333333
color: #cccccc
.activities .activity .activity-desc .activity-comment
background-color: #cccccc
color: #222222
/* Pop-Ups for "Modern Dark" */
.pop-over.board-color-moderndark
background-color: #454545
color: #cccccc
border: 1px solid #111111
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19)
.pop-over.board-color-moderndark .header
background-color: #333333
.pop-over.board-color-moderndark .header-title
font-family: Poppins
font-size: 16px
color: #cccccc
.pop-over.board-color-moderndark .pop-over-list li:hover > a
background-color: #819C5D !important
+2 -2
View File
@@ -7,7 +7,7 @@ $spaceBetweenTiles = 16px
li
float: left
width: 25%
width: 20%
box-sizing: border-box
position: relative
@@ -33,7 +33,7 @@ $spaceBetweenTiles = 16px
overflow: hidden;
background-color: #999
color: #f6f6f6
height: auto
height: 80px
font-size: 16px
line-height: 22px
border-radius: 3px
@@ -0,0 +1,7 @@
template(name="descriptionForm")
.new-description.js-new-description(
class="{{#if descriptionFormIsOpen}}is-open{{/if}}")
form.js-new-description-form
+editor(class="js-new-description-input" data-meteor-emoji-large="true" autofocus="autofocus")
| {{getUnsavedValue 'cardDescription' _id getDescription}}
@@ -0,0 +1,33 @@
const descriptionFormIsOpen = new ReactiveVar(false);
BlazeComponent.extendComponent({
onDestroyed() {
descriptionFormIsOpen.set(false);
},
descriptionFormIsOpen() {
return descriptionFormIsOpen.get();
},
getInput() {
return this.$('.js-new-description-input');
},
events() {
return [
{
'submit .js-card-description'(event) {
event.preventDefault();
const description = this.currentComponent().getValue();
this.data().setDescription(description);
},
// Pressing Ctrl+Enter should submit the form
'keydown form textarea'(evt) {
if (evt.keyCode === 13 && (evt.metaKey || evt.ctrlKey)) {
this.find('button[type=submit]').click();
}
},
},
];
},
}).register('descriptionForm');
@@ -0,0 +1,60 @@
@import 'nib'
.new-description
position: relative
margin: 0 0 20px 0
&.is-open
.helper
display: inline-block
textarea
min-height: 100px
color: #4d4d4d
cursor: auto
overflow: hidden
word-wrap: break-word
.too-long
margin-top: 8px
textarea
background-color: #fff
border: 0
box-shadow: 0 1px 2px rgba(0, 0, 0, .23)
color: #8c8c8c
height: 36px
margin: 4px 4px 6px 0
padding: 9px 11px
width: 100%
&:hover,
&:is-open
background-color: #fff
box-shadow: 0 1px 3px rgba(0, 0, 0, .33)
border: 0
cursor: pointer
&:is-open
cursor: auto
.description-item
background-color: #fff
border: 0
box-shadow: 0 1px 2px rgba(0, 0, 0, .23)
color: #8c8c8c
height: 36px
margin: 4px 4px 6px 0
width: 92%
&:hover
background: darken(white, 12%)
&.add-description
display: flex
margin: 5px
a
display: block
margin: auto
+19 -18
View File
@@ -42,12 +42,12 @@ template(name="cardDetails")
else
p.warning {{_ 'card-archived'}}
.card-details-items
.card-details-items
if currentBoard.allowsLabels
.card-details-item.card-details-item-labels
h3.card-details-item-title
i.fa.fa-tags
| {{_ 'labels'}}
| {{_ 'labels'}}
a(class="{{#if canModifyCard}}js-add-labels{{else}}is-disabled{{/if}}" title="{{_ 'card-labels-title'}}")
each labels
span.card-label(class="card-label-{{color}}" title=name)
@@ -57,7 +57,7 @@ template(name="cardDetails")
unless currentUser.isWorker
a.card-label.add-label.js-add-labels(title="{{_ 'card-labels-title'}}")
i.fa.fa-plus
if currentBoard.allowsReceivedDate
hr
.card-details-item.card-details-item-received
@@ -245,8 +245,7 @@ template(name="cardDetails")
| {{_ 'description'}}
if currentBoard.allowsDescriptionText
+inlinedCardDescription(classNames="card-description js-card-description")
+editor(autofocus=true)
| {{getUnsavedValue 'cardDescription' _id getDescription}}
+descriptionForm
.edit-controls.clearfix
button.primary(type="submit") {{_ 'save'}}
a.fa.fa-times-thin.js-close-inlined-form
@@ -381,17 +380,18 @@ template(name="cardDetailsActionsPopup")
a.js-move-card-to-bottom
i.fa.fa-arrow-down
| {{_ 'moveCardToBottom-title'}}
unless currentUser.isWorker
hr
ul.pop-over-list
li
a.js-move-card
i.fa.fa-arrow-right
| {{_ 'moveCardPopup-title'}}
ul.pop-over-list
li
a.js-move-card
i.fa.fa-arrow-right
| {{_ 'moveCardPopup-title'}}
unless currentUser.isWorker
li
a.js-copy-card
i.fa.fa-copy
| {{_ 'copyCardPopup-title'}}
unless currentUser.isWorker
hr
ul.pop-over-list
li
@@ -430,13 +430,14 @@ template(name="copyChecklistToManyCardsPopup")
+boardsAndLists
template(name="boardsAndLists")
label {{_ 'boards'}}:
select.js-select-boards(autofocus)
each boards
if $eq _id currentBoard._id
option(value="{{_id}}" selected) {{_ 'current'}}
else
option(value="{{_id}}") {{title}}
unless currentUser.isWorker
label {{_ 'boards'}}:
select.js-select-boards(autofocus)
each boards
if $eq _id currentBoard._id
option(value="{{_id}}" selected) {{_ 'current'}}
else
option(value="{{_id}}") {{title}}
label {{_ 'swimlanes'}}:
select.js-select-swimlanes
+9 -2
View File
@@ -250,12 +250,15 @@ BlazeComponent.extendComponent({
// Disable sorting if the current user is not a board member
this.autorun(() => {
const disabled = !userIsMember() || Utils.isMiniScreen();
const disabled = !userIsMember();
if (
$checklistsDom.data('uiSortable') ||
$checklistsDom.data('sortable')
) {
$checklistsDom.sortable('option', 'disabled', disabled);
if (Utils.isMiniScreenOrShowDesktopDragHandles()) {
$checklistsDom.sortable({ handle: '.checklist-handle'});
}
}
if ($subtasksDom.data('uiSortable') || $subtasksDom.data('sortable')) {
$subtasksDom.sortable('option', 'disabled', disabled);
@@ -668,7 +671,11 @@ Template.moveCardPopup.events({
// instead from a “component” state.
const card = Cards.findOne(Session.get('currentCard'));
const bSelect = $('.js-select-boards')[0];
const boardId = bSelect.options[bSelect.selectedIndex].value;
let boardId;
// if we are a worker, we won't have a board select so we just use the
// current boardId of the card.
if (bSelect) boardId = bSelect.options[bSelect.selectedIndex].value;
else boardId = card.boardId;
const lSelect = $('.js-select-lists')[0];
const listId = lSelect.options[lSelect.selectedIndex].value;
const slSelect = $('.js-select-swimlanes')[0];
+2
View File
@@ -41,6 +41,8 @@ template(name="checklistDetail")
if canModifyCard
h2.title.js-open-inlined-form.is-editable
if isMiniScreenOrShowDesktopDragHandles
span.fa.checklist-handle(class="fa-arrows" title="{{_ 'dragChecklist'}}")
+viewer
= checklist.title
else
+5
View File
@@ -42,6 +42,11 @@ textarea.js-add-checklist-item, textarea.js-edit-checklist-item
.js-delete-checklist
@extends .delete-text
span.fa.checklist-handle
padding-right: 20px
padding-top: 6px
float: right
.js-confirm-checklist-delete
background-color: darken(white, 3%)
+5 -7
View File
@@ -1,5 +1,3 @@
import { Cookies } from 'meteor/ostrio:cookies';
const cookies = new Cookies();
// Template.cards.events({
// 'click .member': Popup.open('cardMember')
// });
@@ -34,10 +32,10 @@ BlazeComponent.extendComponent({
},
{
'click .js-toggle-minicard-label-text'() {
if (cookies.has('hiddenMinicardLabelText')) {
cookies.remove('hiddenMinicardLabelText'); //true
if (window.localStorage.getItem('hiddenMinicardLabelText')) {
window.localStorage.removeItem('hiddenMinicardLabelText'); //true
} else {
cookies.set('hiddenMinicardLabelText', 'true'); //true
window.localStorage.setItem('hiddenMinicardLabelText', 'true'); //true
}
},
},
@@ -50,7 +48,7 @@ Template.minicard.helpers({
currentUser = Meteor.user();
if (currentUser) {
return (currentUser.profile || {}).showDesktopDragHandles;
} else if (cookies.has('showDesktopDragHandles')) {
} else if (window.localStorage.getItem('showDesktopDragHandles')) {
return true;
} else {
return false;
@@ -60,7 +58,7 @@ Template.minicard.helpers({
currentUser = Meteor.user();
if (currentUser) {
return (currentUser.profile || {}).hiddenMinicardLabelText;
} else if (cookies.has('hiddenMinicardLabelText')) {
} else if (window.localStorage.getItem('hiddenMinicardLabelText')) {
return true;
} else {
return false;
+1 -1
View File
@@ -1,4 +1,4 @@
export function getMembersToMap(data) {
export function csvGetMembersToMap(data) {
// we will work on the list itself (an ordered array of objects) when a
// mapping is done, we add a 'wekan' field to the object representing the
// imported member
+6 -6
View File
@@ -1,6 +1,6 @@
import trelloMembersMapper from './trelloMembersMapper';
import wekanMembersMapper from './wekanMembersMapper';
import csvMembersMapper from './csvMembersMapper';
import { trelloGetMembersToMap } from './trelloMembersMapper';
import { wekanGetMembersToMap } from './wekanMembersMapper';
import { csvGetMembersToMap } from './csvMembersMapper';
const Papa = require('papaparse');
@@ -99,13 +99,13 @@ BlazeComponent.extendComponent({
let membersToMap;
switch (importSource) {
case 'trello':
membersToMap = trelloMembersMapper.getMembersToMap(dataObject);
membersToMap = trelloGetMembersToMap(dataObject);
break;
case 'wekan':
membersToMap = wekanMembersMapper.getMembersToMap(dataObject);
membersToMap = wekanGetMembersToMap(dataObject);
break;
case 'csv':
membersToMap = csvMembersMapper.getMembersToMap(dataObject);
membersToMap = csvGetMembersToMap(dataObject);
break;
}
return membersToMap;
@@ -1,4 +1,4 @@
export function getMembersToMap(data) {
export function trelloGetMembersToMap(data) {
// we will work on the list itself (an ordered array of objects) when a
// mapping is done, we add a 'wekan' field to the object representing the
// imported member
@@ -1,4 +1,4 @@
export function getMembersToMap(data) {
export function wekanGetMembersToMap(data) {
// we will work on the list itself (an ordered array of objects) when a
// mapping is done, we add a 'wekan' field to the object representing the
// imported member
+2 -4
View File
@@ -1,5 +1,3 @@
import { Cookies } from 'meteor/ostrio:cookies';
const cookies = new Cookies();
const { calculateIndex } = Utils;
BlazeComponent.extendComponent({
@@ -124,7 +122,7 @@ BlazeComponent.extendComponent({
if (currentUser) {
showDesktopDragHandles = (currentUser.profile || {})
.showDesktopDragHandles;
} else if (cookies.has('showDesktopDragHandles')) {
} else if (window.localStorage.getItem('showDesktopDragHandles')) {
showDesktopDragHandles = true;
} else {
showDesktopDragHandles = false;
@@ -185,7 +183,7 @@ Template.list.helpers({
currentUser = Meteor.user();
if (currentUser) {
return (currentUser.profile || {}).showDesktopDragHandles;
} else if (cookies.has('showDesktopDragHandles')) {
} else if (window.localStorage.getItem('showDesktopDragHandles')) {
return true;
} else {
return false;
+1 -3
View File
@@ -1,5 +1,3 @@
import { Cookies } from 'meteor/ostrio:cookies';
const cookies = new Cookies();
let listsColors;
Meteor.startup(() => {
listsColors = Lists.simpleSchema()._schema.color.allowedValues;
@@ -110,7 +108,7 @@ Template.listHeader.helpers({
currentUser = Meteor.user();
if (currentUser) {
return (currentUser.profile || {}).showDesktopDragHandles;
} else if (cookies.has('showDesktopDragHandles')) {
} else if (window.localStorage.getItem('showDesktopDragHandles')) {
return true;
} else {
return false;
+23 -2
View File
@@ -91,6 +91,7 @@ Template.editor.onRendered(() => {
};
const editor = '.editor';
const selectors = [
`.js-new-description-form ${editor}`,
`.js-new-comment-form ${editor}`,
`.js-edit-comment ${editor}`,
].join(','); // only new comment and edit comment
@@ -264,6 +265,26 @@ Template.editor.onRendered(() => {
import sanitizeXss from 'xss';
// Additional safeAttrValue function to allow for other specific protocols
// See https://github.com/leizongmin/js-xss/issues/52#issuecomment-241354114
function mySafeAttrValue(tag, name, value, cssFilter) {
// only when the tag is 'a' and attribute is 'href'
// then use your custom function
if (tag === 'a' && name === 'href') {
// only filter the value if starts with 'cbthunderlink:' or 'aodroplink'
if (/^thunderlink:/ig.test(value) || /^cbthunderlink:/ig.test(value) || /^aodroplink:/ig.test(value)) {
return value;
}
else {
// use the default safeAttrValue function to process all non cbthunderlinks
return sanitizeXss.safeAttrValue(tag, name, value, cssFilter);
}
} else {
// use the default safeAttrValue function to process it
return sanitizeXss.safeAttrValue(tag, name, value, cssFilter);
}
};
// 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
@@ -277,7 +298,7 @@ Blaze.Template.registerHelper(
const view = this;
let content = Blaze.toHTML(view.templateContentBlock);
const currentBoard = Boards.findOne(Session.get('currentBoard'));
if (!currentBoard) return HTML.Raw(sanitizeXss(content));
if (!currentBoard) return HTML.Raw(sanitizeXss(content, { safeAttrValue: mySafeAttrValue }));
const knowedUsers = currentBoard.members.map(member => {
const u = Users.findOne(member.userId);
if (u) {
@@ -321,7 +342,7 @@ Blaze.Template.registerHelper(
content = content.replace(fullMention, Blaze.toHTML(link));
}
return HTML.Raw(sanitizeXss(content));
return HTML.Raw(sanitizeXss(content, { safeAttrValue: mySafeAttrValue }));
}),
);
+2 -2
View File
@@ -27,9 +27,9 @@ template(name="header")
if currentSetting.customTopLeftCornerLogoImageUrl
if currentSetting.customTopLeftCornerLogoLinkUrl
a(href="{{currentSetting.customTopLeftCornerLogoLinkUrl}}")
img(src="{{currentSetting.customTopLeftCornerLogoImageUrl}}" height="27" width="auto" margin="0" padding="0")
img(src="{{currentSetting.customTopLeftCornerLogoImageUrl}}" height="{{#if currentSetting.customTopLeftCornerLogoHeight}}#{currentSetting.customTopLeftCornerLogoHeight}{{else}}27{{/if}}" width="auto" margin="0" padding="0")
unless currentSetting.customTopLeftCornerLogoLinkUrl
img(src="{{currentSetting.customTopLeftCornerLogoImageUrl}}" height="27" width="auto" margin="0" padding="0")
img(src="{{currentSetting.customTopLeftCornerLogoImageUrl}}" height="{{#if currentSetting.customTopLeftCornerLogoHeight}}#{currentSetting.customTopLeftCornerLogoHeight}{{else}}27{{/if}}" width="auto" margin="0" padding="0")
unless currentSetting.customTopLeftCornerLogoImageUrl
img(src="{{pathFor '/logo-header.png'}}" alt="")
ul
+3 -1
View File
@@ -276,7 +276,7 @@ kbd
padding-bottom: 0
.wrapper
max-width: 1200px
width: calc(100% - 20px)
margin: 0 auto
.relative
@@ -388,10 +388,12 @@ a
ol
list-style-type: decimal
padding-left: 20px
padding-bottom: 10px
ul
list-style-type: initial
padding-left: 20px
padding-bottom: 10px
em
font-style : italic
@@ -204,6 +204,10 @@ template(name='layoutSettings')
.title {{_ 'custom-top-left-corner-logo-link-url'}}
.form-group
input.wekan-form-control#custom-top-left-corner-logo-link-url(type="text", placeholder="" value="{{currentSetting.customTopLeftCornerLogoLinkUrl}}")
li.layout-form
.title {{_ 'custom-top-left-corner-logo-height'}}
.form-group
input.wekan-form-control#custom-top-left-corner-logo-height(type="text", placeholder="" value="{{currentSetting.customTopLeftCornerLogoHeight}}")
li
button.js-save-layout.primary {{_ 'save'}}
@@ -186,6 +186,11 @@ BlazeComponent.extendComponent({
)
.val()
.trim();
const customTopLeftCornerLogoHeight = $(
'#custom-top-left-corner-logo-height',
)
.val()
.trim();
const hideLogoChange = $('input[name=hideLogo]:checked').val() === 'true';
const displayAuthenticationMethod =
$('input[name=displayAuthenticationMethod]:checked').val() === 'true';
@@ -201,6 +206,7 @@ BlazeComponent.extendComponent({
textBelowCustomLoginLogo,
customTopLeftCornerLogoImageUrl,
customTopLeftCornerLogoLinkUrl,
customTopLeftCornerLogoHeight,
displayAuthenticationMethod,
defaultAuthenticationMethod,
},
+8 -8
View File
@@ -366,14 +366,14 @@ template(name="exportBoard")
a.download-json-link(href="{{exportUrl}}", download="{{exportJsonFilename}}")
i.fa.fa-share-alt
| {{_ 'export-board-json'}}
//li
// a(href="{{exportCsvUrl}}", download="{{exportCsvFilename}}")
// i.fa.fa-share-alt
// | {{_ 'export-board-csv'}}
//li
// a(href="{{exportTsvUrl}}", download="{{exportTsvFilename}}")
// i.fa.fa-share-alt
// | {{_ 'export-board-tsv'}}
li
a(href="{{exportCsvUrl}}", download="{{exportCsvFilename}}")
i.fa.fa-share-alt
| {{_ 'export-board-csv'}}
li
a(href="{{exportTsvUrl}}", download="{{exportTsvFilename}}")
i.fa.fa-share-alt
| {{_ 'export-board-tsv'}}
li
a.html-export-board
i.fa.fa-archive
+6 -6
View File
@@ -1,5 +1,3 @@
import { Cookies } from 'meteor/ostrio:cookies';
const cookies = new Cookies();
Sidebar = null;
const defaultView = 'home';
@@ -112,10 +110,12 @@ BlazeComponent.extendComponent({
currentUser = Meteor.user();
if (currentUser) {
Meteor.call('toggleMinicardLabelText');
} else if (cookies.has('hiddenMinicardLabelText')) {
cookies.remove('hiddenMinicardLabelText');
} else if (window.localStorage.getItem('hiddenMinicardLabelText')) {
window.localStorage.removeItem('hiddenMinicardLabelText');
location.reload();
} else {
cookies.set('hiddenMinicardLabelText', 'true');
window.localStorage.setItem('hiddenMinicardLabelText', 'true');
location.reload();
}
},
'click .js-shortcuts'() {
@@ -133,7 +133,7 @@ Template.homeSidebar.helpers({
currentUser = Meteor.user();
if (currentUser) {
return (currentUser.profile || {}).hiddenMinicardLabelText;
} else if (cookies.has('hiddenMinicardLabelText')) {
} else if (window.localStorage.getItem('hiddenMinicardLabelText')) {
return true;
} else {
return false;
@@ -1,5 +1,3 @@
import { Cookies } from 'meteor/ostrio:cookies';
const cookies = new Cookies();
const { calculateIndexData } = Utils;
let swimlaneColors;
@@ -35,7 +33,7 @@ Template.swimlaneHeader.helpers({
currentUser = Meteor.user();
if (currentUser) {
return (currentUser.profile || {}).showDesktopDragHandles;
} else if (cookies.has('showDesktopDragHandles')) {
} else if (window.localStorage.getItem('showDesktopDragHandles')) {
return true;
} else {
return false;
+3 -5
View File
@@ -1,5 +1,3 @@
import { Cookies } from 'meteor/ostrio:cookies';
const cookies = new Cookies();
const { calculateIndex } = Utils;
function currentListIsInThisSwimlane(swimlaneId) {
@@ -102,7 +100,7 @@ function initSortable(boardComponent, $listsDom) {
if (currentUser) {
showDesktopDragHandles = (currentUser.profile || {})
.showDesktopDragHandles;
} else if (cookies.has('showDesktopDragHandles')) {
} else if (window.localStorage.getItem('showDesktopDragHandles')) {
showDesktopDragHandles = true;
} else {
showDesktopDragHandles = false;
@@ -178,7 +176,7 @@ BlazeComponent.extendComponent({
if (currentUser) {
showDesktopDragHandles = (currentUser.profile || {})
.showDesktopDragHandles;
} else if (cookies.has('showDesktopDragHandles')) {
} else if (window.localStorage.getItem('showDesktopDragHandles')) {
showDesktopDragHandles = true;
} else {
showDesktopDragHandles = false;
@@ -269,7 +267,7 @@ Template.swimlane.helpers({
currentUser = Meteor.user();
if (currentUser) {
return (currentUser.profile || {}).showDesktopDragHandles;
} else if (cookies.has('showDesktopDragHandles')) {
} else if (window.localStorage.getItem('showDesktopDragHandles')) {
return true;
} else {
return false;
+12 -15
View File
@@ -1,6 +1,3 @@
import { Cookies } from 'meteor/ostrio:cookies';
const cookies = new Cookies();
Template.headerUserBar.events({
'click .js-open-header-member-menu': Popup.open('memberMenu'),
'click .js-change-avatar': Popup.open('changeAvatar'),
@@ -200,7 +197,7 @@ Template.changeSettingsPopup.helpers({
currentUser = Meteor.user();
if (currentUser) {
return (currentUser.profile || {}).showDesktopDragHandles;
} else if (cookies.has('showDesktopDragHandles')) {
} else if (window.localStorage.getItem('showDesktopDragHandles')) {
return true;
} else {
return false;
@@ -210,7 +207,7 @@ Template.changeSettingsPopup.helpers({
currentUser = Meteor.user();
if (currentUser) {
return (currentUser.profile || {}).hasHiddenSystemMessages;
} else if (cookies.has('hasHiddenSystemMessages')) {
} else if (window.localStorage.getItem('hasHiddenSystemMessages')) {
return true;
} else {
return false;
@@ -221,7 +218,7 @@ Template.changeSettingsPopup.helpers({
if (currentUser) {
return Meteor.user().getLimitToShowCardsCount();
} else {
return cookies.get('limitToShowCardsCount');
return window.localStorage.getItem('limitToShowCardsCount');
}
},
weekDays(startDay) {
@@ -242,7 +239,7 @@ Template.changeSettingsPopup.helpers({
if (currentUser) {
return currentUser.getStartDayOfWeek();
} else {
return cookies.get('startDayOfWeek');
return window.localStorage.getItem('startDayOfWeek');
}
},
});
@@ -252,20 +249,20 @@ Template.changeSettingsPopup.events({
currentUser = Meteor.user();
if (currentUser) {
Meteor.call('toggleDesktopDragHandles');
} else if (cookies.has('showDesktopDragHandles')) {
cookies.remove('showDesktopDragHandles');
} else if (window.localStorage.getItem('showDesktopDragHandles')) {
window.localStorage.removeItem('showDesktopDragHandles');
} else {
cookies.set('showDesktopDragHandles', 'true');
window.localStorage.setItem('showDesktopDragHandles', 'true');
}
},
'click .js-toggle-system-messages'() {
currentUser = Meteor.user();
if (currentUser) {
Meteor.call('toggleSystemMessages');
} else if (cookies.has('hasHiddenSystemMessages')) {
cookies.remove('hasHiddenSystemMessages');
} else if (window.localStorage.getItem('hasHiddenSystemMessages')) {
window.localStorage.removeItem('hasHiddenSystemMessages');
} else {
cookies.set('hasHiddenSystemMessages', 'true');
window.localStorage.setItem('hasHiddenSystemMessages', 'true');
}
},
'click .js-apply-user-settings'(event, templateInstance) {
@@ -283,14 +280,14 @@ Template.changeSettingsPopup.events({
if (currentUser) {
Meteor.call('changeLimitToShowCardsCount', minLimit);
} else {
cookies.set('limitToShowCardsCount', minLimit);
window.localStorage.setItem('limitToShowCardsCount', minLimit);
}
}
if (!isNaN(startDay)) {
if (currentUser) {
Meteor.call('changeStartDayOfWeek', startDay);
} else {
cookies.set('startDayOfWeek', startDay);
window.localStorage.setItem('startDayOfWeek', startDay);
}
}
Popup.back();
+4
View File
@@ -30,3 +30,7 @@ Blaze.registerHelper('getUser', userId => Users.findOne(userId));
Blaze.registerHelper('concat', (...args) => args.slice(0, -1).join(''));
Blaze.registerHelper('isMiniScreen', () => Utils.isMiniScreen());
Blaze.registerHelper('isShowDesktopDragHandles', () => Utils.isShowDesktopDragHandles());
Blaze.registerHelper('isMiniScreenOrShowDesktopDragHandles', () => Utils.isMiniScreenOrShowDesktopDragHandles());
+31 -13
View File
@@ -1,43 +1,44 @@
import { Cookies } from 'meteor/ostrio:cookies';
const cookies = new Cookies();
Utils = {
setBoardView(view) {
currentUser = Meteor.user();
if (currentUser) {
Meteor.user().setBoardView(view);
} else if (view === 'board-view-swimlanes') {
cookies.set('boardView', 'board-view-swimlanes'); //true
window.localStorage.setItem('boardView', 'board-view-swimlanes'); //true
location.reload();
} else if (view === 'board-view-lists') {
cookies.set('boardView', 'board-view-lists'); //true
window.localStorage.setItem('boardView', 'board-view-lists'); //true
location.reload();
} else if (view === 'board-view-cal') {
cookies.set('boardView', 'board-view-cal'); //true
window.localStorage.setItem('boardView', 'board-view-cal'); //true
location.reload();
} else {
cookies.set('boardView', 'board-view-swimlanes'); //true
window.localStorage.setItem('boardView', 'board-view-swimlanes'); //true
location.reload();
}
},
unsetBoardView() {
cookies.remove('boardView');
cookies.remove('collapseSwimlane');
window.localStorage.removeItem('boardView');
window.localStorage.removeItem('collapseSwimlane');
},
boardView() {
currentUser = Meteor.user();
if (currentUser) {
return (currentUser.profile || {}).boardView;
} else if (cookies.get('boardView') === 'board-view-swimlanes') {
} else if (
window.localStorage.getItem('boardView') === 'board-view-swimlanes'
) {
return 'board-view-swimlanes';
} else if (cookies.get('boardView') === 'board-view-lists') {
} else if (
window.localStorage.getItem('boardView') === 'board-view-lists'
) {
return 'board-view-lists';
} else if (cookies.get('boardView') === 'board-view-cal') {
} else if (window.localStorage.getItem('boardView') === 'board-view-cal') {
return 'board-view-cal';
} else {
cookies.set('boardView', 'board-view-swimlanes'); //true
window.localStorage.setItem('boardView', 'board-view-swimlanes'); //true
location.reload();
return 'board-view-swimlanes';
}
@@ -189,6 +190,23 @@ Utils = {
//return false;
},
// returns if desktop drag handles are enabled
isShowDesktopDragHandles() {
let currentUser = Meteor.user();
if (currentUser) {
return (currentUser.profile || {}).showDesktopDragHandles;
} else if (cookies.has('showDesktopDragHandles')) {
return true;
} else {
return false;
}
},
// returns if mini screen or desktop drag handles
isMiniScreenOrShowDesktopDragHandles() {
return this.isMiniScreen() || this.isShowDesktopDragHandles()
},
calculateIndexData(prevData, nextData, nItems = 1) {
let base, increment;
// If we drop the card to an empty column
+15 -22
View File
@@ -13,13 +13,12 @@ version: '2'
# see https://github.com/wekan/wekan/wiki/Backup
# 1) Stop Wekan:
# docker-compose stop
# 2) Download new version:
# docker-compose pull wekan
# 3) If you have more networks for VPN etc as described at bottom of
# this config, download for them too:
# docker-compose pull wekan2
# 2) Remove old Wekan app (wekan-app only, not that wekan-db container that has all your data)
# docker rm wekan-app
# 3) Get newest docker-compose.yml from https://github.com/wekan/wekan to have correct image,
# for example: "image: quay.io/wekan/wekan" or version tag "image: quay.io/wekan/wekan:v4.52"
# 4) Start Wekan:
# docker-compose start
# docker-compose up -d
#----------------------------------------------------------------------------------
# ==== OPTIONAL: DEDICATED DOCKER USER ====
# 1) Optionally create a dedicated user for Wekan, for example:
@@ -92,13 +91,8 @@ services:
wekandb:
#-------------------------------------------------------------------------------------
# ==== MONGODB AND METEOR VERSION ====
# a) For Wekan Meteor 1.8.x version at master branch, use mongo 4.x
# DOES NOT WORK: mongo 4.4, see https://github.com/wekan/wekan/issues/3247
# WORKS: mongo 3.x and 4.2
image: mongo:4.2
# 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
# a) mongodb latest, like 3.2 - 4.4 or newer https://hub.docker.com/_/mongo?tab=description
image: mongo:latest
#-------------------------------------------------------------------------------------
container_name: wekan-db
restart: always
@@ -114,15 +108,12 @@ services:
wekan:
#-------------------------------------------------------------------------------------
# ==== MONGODB AND METEOR VERSION ====
# 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
# 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
# image: wekanteam/wekan:v2.99
# a) Quay automatic builds do work, https://quay.io/wekan7wekan
image: quay.io/wekan/wekan
# b) Using specific version tag:
# image: quay.io/wekan/wekan:v4.52
# c) Docker Hub builds are broken with error ENOMEM https://hub.docker.com/r/wekanteam/wekan
# image: wekanteam/wekan
#-------------------------------------------------------------------------------------
container_name: wekan-app
restart: always
@@ -333,6 +324,8 @@ services:
# 2) Configure the environment variables. This differs slightly
# by installation type, but make sure you have the following:
#- OAUTH2_ENABLED=true
# Optional OAuth2 CA Cert, see https://github.com/wekan/wekan/issues/3299
#- OAUTH2_CA_CERT=ABCD1234
# Use OAuth2 ADFS additional changes. Also needs OAUTH2_ENABLED=true setting.
#- OAUTH2_ADFS_ENABLED=false
# OAuth2 login style: popup or redirect.
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+7 -1
View File
@@ -138,6 +138,7 @@
"board-view-cal": "Calendar",
"board-view-swimlanes": "Swimlanes",
"board-view-collapse": "Collapse",
"board-view-gantt": "Gantt",
"board-view-lists": "Lists",
"bucket-example": "Like “Bucket List” for example",
"cancel": "Cancel",
@@ -476,6 +477,7 @@
"search-cards": "Search from card/list titles, descriptions and custom fields on this board",
"search-example": "Write text you search and press Enter",
"select-color": "Select Color",
"select-board": "Select Board",
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
"setWipLimitPopup-title": "Set WIP Limit",
"shortcut-assign-self": "Assign yourself to current card",
@@ -516,6 +518,7 @@
"uploaded-avatar": "Uploaded an avatar",
"custom-top-left-corner-logo-image-url": "Custom Top Left Corner Logo Image URL",
"custom-top-left-corner-logo-link-url": "Custom Top Left Corner Logo Link URL",
"custom-top-left-corner-logo-height": "Custom Top Left Corner Logo Height. Default: 27",
"custom-login-logo-image-url": "Custom Login Logo Image URL",
"custom-login-logo-link-url": "Custom Login Logo Link URL",
"text-below-custom-login-logo": "Text below Custom Login Logo",
@@ -825,5 +828,8 @@
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
"hide-checked-items": "Hide checked items",
"task": "Task",
"create-task": "Create Task",
"ok": "OK"
}
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+8 -2
View File
@@ -138,6 +138,7 @@
"board-view-cal": "カレンダー",
"board-view-swimlanes": "スイムレーン",
"board-view-collapse": "折りたたむ",
"board-view-gantt": "Gantt",
"board-view-lists": "リスト",
"bucket-example": "例:バケットリスト",
"cancel": "キャンセル",
@@ -476,6 +477,7 @@
"search-cards": "このボード上のカード/リストタイトル、詳細、カスタムフィールドから検索",
"search-example": "検索文字列を入力してエンターを押してください",
"select-color": "色を選択",
"select-board": "Select Board",
"set-wip-limit-value": "このリスト中のタスクの最大数を設定",
"setWipLimitPopup-title": "仕掛中制限設定",
"shortcut-assign-self": "自分をこのカードに割り当てる",
@@ -516,9 +518,10 @@
"uploaded-avatar": "アップロードされたアバター",
"custom-top-left-corner-logo-image-url": "カスタムの左上ロゴイメージのURL",
"custom-top-left-corner-logo-link-url": "カスタムの左上ロゴイメージのリンクURL",
"custom-top-left-corner-logo-height": "カスタムの左上ロゴイメージの高さ。デフォルト:27",
"custom-login-logo-image-url": "カスタムのログインロゴイメージのURL",
"custom-login-logo-link-url": "カスタムのログインロゴイメージのリンクURL",
"text-below-custom-login-logo": "Text below Custom Login Logo",
"text-below-custom-login-logo": "カスタムログインロゴイメージの下のテキスト",
"username": "ユーザー名",
"view-it": "見る",
"warn-list-archived": "警告:このカードはアーカイブされたリスト内にあります",
@@ -825,5 +828,8 @@
"archived": "アーカイブ",
"delete-linked-card-before-this-card": "カード内にある、リンクされているカードを削除しなければ、このカードは削除できません",
"delete-linked-cards-before-this-list": "リスト内にある、他のカードを参照しているカードを削除しなければ、このリストは削除できません",
"hide-checked-items": "チェックした項目を隠す"
"hide-checked-items": "チェックした項目を隠す",
"task": "Task",
"create-task": "Create Task",
"ok": "OK"
}
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+10 -4
View File
@@ -80,7 +80,7 @@
"add-card": "Kaart Toevoegen",
"add-swimlane": "Swimlane Toevoegen",
"add-subtask": "Subtaak Toevoegen",
"add-checklist": "Checkcklist Toevoegen",
"add-checklist": "Checklist toevoegen",
"add-checklist-item": "Voeg item toe aan checklist",
"add-cover": "Cover Toevoegen",
"add-label": "Label Toevoegen",
@@ -138,6 +138,7 @@
"board-view-cal": "Kalender",
"board-view-swimlanes": "Swimlanes",
"board-view-collapse": "Klap in",
"board-view-gantt": "Gantt",
"board-view-lists": "Lijsten",
"bucket-example": "Zoals bijvoorbeeld een \"Bucket List\"",
"cancel": "Annuleren",
@@ -476,6 +477,7 @@
"search-cards": "Zoek in kaart/lijst, titels, beschrijvingen en maatwerkvelden op dit bord",
"search-example": "Schijf je zoektekst en toets Enter",
"select-color": "Selecteer kleur",
"select-board": "Selecteer Bord",
"set-wip-limit-value": "Zet een limiet voor het maximaal aantal taken in deze lijst",
"setWipLimitPopup-title": "Zet een WIP limiet",
"shortcut-assign-self": "Voeg jezelf toe aan huidige kaart",
@@ -516,9 +518,10 @@
"uploaded-avatar": "Avatar is geüpload",
"custom-top-left-corner-logo-image-url": "URL Voor Maatwerk Logo Afbeelding In Linker Bovenhoek ",
"custom-top-left-corner-logo-link-url": "URL Voor Maatwerk Logo Link In Linker Bovenhoek",
"custom-top-left-corner-logo-height": "Hoogte Van Maatwerk Logo In Linker Bovenhoek. Default: 27",
"custom-login-logo-image-url": "URL Voor Maatwerk Login Logo Afbeelding",
"custom-login-logo-link-url": "URL Voor Maatwerk Login Logo Link",
"text-below-custom-login-logo": "Text below Custom Login Logo",
"text-below-custom-login-logo": "Tekst onder Maatwerk Login Logo",
"username": "Gebruikersnaam",
"view-it": "Bekijk het",
"warn-list-archived": "Let op: deze kaart zit in gearchiveerde lijst",
@@ -570,7 +573,7 @@
"boardCardTitlePopup-title": "Kaarttitel Filter",
"disable-webhook": "Schakel deze Webhook uit",
"global-webhook": "Globale Webhooks",
"new-outgoing-webhook": "Nieuwe webhook",
"new-outgoing-webhook": "Nieuwe uitgaande webhook",
"no-name": "(Onbekend)",
"Node_version": "Node versie",
"Meteor_version": "Meteor versie",
@@ -825,5 +828,8 @@
"archived": "Gearchiveerd",
"delete-linked-card-before-this-card": "Je kunt deze kaart niet verwijderen voordat de gekoppelde kaart is verwijderd ",
"delete-linked-cards-before-this-list": "Je kunt deze lijst niet verwijderen voordat de gekoppelde kaarten verwijderd zijn die verwijzen naar kaarten in deze lijst",
"hide-checked-items": "Verberg aangevinkte items"
"hide-checked-items": "Verberg aangevinkte items",
"task": "Taak",
"create-task": "Taak aanmaken",
"ok": "OK"
}
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+834 -828
View File
File diff suppressed because it is too large. Load diff
+1
View File
@@ -254,6 +254,7 @@ Boards.attachSchema(
'clearblue',
'natural',
'modern',
'moderndark',
],
// eslint-disable-next-line consistent-return
autoValue() {
+12 -3
View File
@@ -1412,15 +1412,24 @@ Cards.mutations({
assignAssignee(assigneeId) {
// If there is not any assignee, allow one assignee, not more.
/*
if (this.getAssignees().length === 0) {
return {
$addToSet: {
assignees: assigneeId,
},
};
} else {
return false;
}
*/
// Allow more that one assignee:
// https://github.com/wekan/wekan/issues/3302
return {
$addToSet: {
assignees: assigneeId,
},
};
//} else {
// return false,
//}
},
unassignMember(memberId) {
+39 -22
View File
@@ -1,4 +1,4 @@
//const stringify = require('csv-stringify');
const Papa = require('papaparse');
// exporter maybe is broken since Gridfs introduced, add fs and path
export class Exporter {
@@ -192,6 +192,40 @@ export class Exporter {
const result = this.build();
const columnHeaders = [];
const cardRows = [];
const papaconfig = {
delimiter, // get parameter (was: auto-detect)
worker: true,
};
/*
newline: "", // auto-detect
quoteChar: '"',
escapeChar: '"',
header: true,
transformHeader: undefined,
dynamicTyping: false,
preview: 0,
encoding: "",
comments: false,
step: undefined,
complete: undefined,
error: undefined,
download: false,
downloadRequestHeaders: undefined,
downloadRequestBody: undefined,
skipEmptyLines: false,
chunk: undefined,
chunkSize: undefined,
fastMode: undefined,
beforeFirstChunk: undefined,
withCredentials: undefined,
transform: undefined
};
*/
//delimitersToGuess: [',', '\t', '|', ';', Papa.RECORD_SEP, Papa.UNIT_SEP]
columnHeaders.push(
'Title',
'Description',
@@ -240,6 +274,7 @@ export class Exporter {
}
i++;
});
cardRows.push([[columnHeaders]]);
/* TODO: Try to get translations working.
These currently only bring English translations.
TAPi18n.__('title'),
@@ -264,24 +299,6 @@ export class Exporter {
TAPi18n.__('archived'),
*/
const stringifier = stringify({
header: true,
delimiter,
columns: columnHeaders,
});
stringifier.on('readable', function() {
let row;
while ((row = stringifier.read())) {
cardRows.push(row);
}
});
stringifier.on('error', function(err) {
// eslint-disable-next-line no-console
console.error(err.message);
});
result.cards.forEach(card => {
const currentRow = [];
currentRow.push(card.title);
@@ -385,10 +402,10 @@ export class Exporter {
currentRow.push(customFieldValuesToPush[valueIndex]);
}
}
stringifier.write(currentRow);
cardRows.push([[currentRow]]);
});
stringifier.end();
return cardRows[0];
return Papa.unparse(cardRows, papaconfig);
}
canExport(user) {
Loaded 100 of 124 files, more files were not shown because too many files have changed in this diff. Show more