summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLauri Ojansivu <x@xet7.org>2019-07-10 13:45:37 -0400
committerLauri Ojansivu <x@xet7.org>2019-07-10 13:45:37 -0400
commit5084cddf37ba16ce0855f8575c39f5e62d1b7f67 (patch)
tree0eaace648c97c2425a6121b0c0c332c1abeea065
parenta3201f4d289ea50e9679e35d0c4644f0a6345052 (diff)
downloadwekan-5084cddf37ba16ce0855f8575c39f5e62d1b7f67.tar.gz
wekan-5084cddf37ba16ce0855f8575c39f5e62d1b7f67.tar.bz2
wekan-5084cddf37ba16ce0855f8575c39f5e62d1b7f67.zip
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 !
-rw-r--r--Dockerfile2
-rw-r--r--docker-compose.yml13
-rw-r--r--models/cards.js9
-rwxr-xr-xreleases/virtualbox/start-wekan.sh19
-rwxr-xr-xsnap-src/bin/config10
-rwxr-xr-xsnap-src/bin/wekan-help18
-rwxr-xr-xstart-wekan.bat15
-rwxr-xr-xstart-wekan.sh19
8 files changed, 98 insertions, 7 deletions
diff --git a/Dockerfile b/Dockerfile
index bcf6dd19..207813c2 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -21,6 +21,8 @@ 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 \
+ NOTIFY_DUE_DAYS_BEFORE_AND_AFTER="" \
+ NOTIFY_DUE_AT_HOUR_OF_DAY="" \
EMAIL_NOTIFICATION_TIMEOUT=30000 \
MATOMO_ADDRESS="" \
MATOMO_SITE_ID="" \
diff --git a/docker-compose.yml b/docker-compose.yml
index a927d6e7..fb8bd1d2 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -232,6 +232,19 @@ services:
#- ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60
#- ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW=15
#---------------------------------------------------------------
+ # ==== 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
diff --git a/models/cards.js b/models/cards.js
index 115bed7c..b354511d 100644
--- a/models/cards.js
+++ b/models/cards.js
@@ -1582,12 +1582,13 @@ const findDueCards = days => {
};
const addCronJob = _.debounce(
Meteor.bindEnvironment(function findDueCardsDebounced() {
- const notifydays = parseInt(process.env.NOTIFY_DUE_DAYS, 10) || 2; // default as 2 days b4 and after
+ const notifydays =
+ parseInt(process.env.NOTIFY_DUE_DAYS_BEFORE_AND_AFTER, 10) || 2; // default as 2 days before and after
if (!(notifydays > 0 && notifydays < 15)) {
// notifying due is disabled
return;
}
- const notifyitvl = process.env.NOTIFY_DUE_ITVL; //passed in the itvl has to be a number standing for the hour of current time
+ const notifyitvl = process.env.NOTIFY_DUE_AT_HOUR_OF_DAY; //passed in the itvl has to be a number standing for the hour of current time
const defaultitvl = 8; // default every morning at 8am, if the passed env variable has parsing error use default
const itvl = parseInt(notifyitvl, 10) || defaultitvl;
const scheduler = (job => () => {
@@ -1619,8 +1620,8 @@ if (Meteor.isServer) {
// With a huge database, this result in a very slow app and high CPU on the mongodb side.
// To correct it, add Index to parentId:
Cards._collection._ensureIndex({ parentId: 1 });
- /*let notifydays = parseInt(process.env.NOTIFY_DUE_DAYS) || 2; // default as 2 days b4 and after
- let notifyitvl = parseInt(process.env.NOTIFY_DUE_ITVL) || 3600 * 24 * 1e3; // default interval as one day
+ /*let notifydays = parseInt(process.env.NOTIFY_DUE_DAYS_BEFORE_AND_AFTER) || 2; // default as 2 days b4 and after
+ let notifyitvl = parseInt(process.env.NOTIFY_DUE_AT_HOUR_OF_DAY) || 3600 * 24 * 1e3; // default interval as one day
Meteor.call("findDueCards",notifydays,notifyitvl);*/
Meteor.defer(() => {
addCronJob();
diff --git a/releases/virtualbox/start-wekan.sh b/releases/virtualbox/start-wekan.sh
index 4d03182c..74cadb6f 100755
--- a/releases/virtualbox/start-wekan.sh
+++ b/releases/virtualbox/start-wekan.sh
@@ -35,7 +35,24 @@
#export ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE=3
#export ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60
#export ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW=15
- #---------------------------------------------
+ #---------------------------------------------------------------
+ # ==== 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
+ #export 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.
+ #export NOTIFY_DUE_AT_HOUR_OF_DAY=8
+ #-----------------------------------------------------------------
+ # ==== EMAIL NOTIFICATION TIMEOUT, ms =====
+ # Defaut: 30000 ms = 30s
+ #export EMAIL_NOTIFICATION_TIMEOUT=30000
+ #-----------------------------------------------------------------
# CORS: Set Access-Control-Allow-Origin header. Example: *
#export CORS=*
# To enable the Set Access-Control-Allow-Headers header. "Authorization,Content-Type" is required for cross-origin use of the API.
diff --git a/snap-src/bin/config b/snap-src/bin/config
index 257576c3..93e66725 100755
--- a/snap-src/bin/config
+++ b/snap-src/bin/config
@@ -3,7 +3,7 @@
# All supported keys are defined here together with descriptions and default values
# list of supported keys
-keys="DEBUG MONGODB_BIND_UNIX_SOCKET MONGODB_BIND_IP MONGODB_PORT MAIL_URL MAIL_FROM ROOT_URL PORT DISABLE_MONGODB CADDY_ENABLED CADDY_BIND_PORT WITH_API ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE ACCOUNTS_LOCKOUT_KNOWN_USERS_PERIOD ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURE_WINDOW ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW EMAIL_NOTIFICATION_TIMEOUT CORS CORS_ALLOW_HEADERS CORS_EXPOSE_HEADERS MATOMO_ADDRESS MATOMO_SITE_ID MATOMO_DO_NOT_TRACK MATOMO_WITH_USERNAME BROWSER_POLICY_ENABLED TRUSTED_URL WEBHOOKS_ATTRIBUTES OAUTH2_ENABLED OAUTH2_LOGIN_STYLE 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_EMAIL_MAP OAUTH2_REQUEST_PERMISSIONS LDAP_ENABLE LDAP_PORT LDAP_HOST LDAP_BASEDN LDAP_LOGIN_FALLBACK LDAP_RECONNECT LDAP_TIMEOUT LDAP_IDLE_TIMEOUT LDAP_CONNECT_TIMEOUT LDAP_AUTHENTIFICATION LDAP_AUTHENTIFICATION_USERDN LDAP_AUTHENTIFICATION_PASSWORD LDAP_LOG_ENABLED LDAP_BACKGROUND_SYNC LDAP_BACKGROUND_SYNC_INTERVAL LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS LDAP_ENCRYPTION LDAP_CA_CERT LDAP_REJECT_UNAUTHORIZED LDAP_USER_AUTHENTICATION LDAP_USER_SEARCH_FILTER LDAP_USER_SEARCH_SCOPE LDAP_USER_SEARCH_FIELD LDAP_SEARCH_PAGE_SIZE LDAP_SEARCH_SIZE_LIMIT LDAP_GROUP_FILTER_ENABLE 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 LDAP_USERNAME_FIELD LDAP_FULLNAME_FIELD LDAP_MERGE_EXISTING_USERS LDAP_SYNC_USER_DATA LDAP_SYNC_USER_DATA_FIELDMAP LDAP_SYNC_GROUP_ROLES LDAP_DEFAULT_DOMAIN LDAP_EMAIL_MATCH_ENABLE LDAP_EMAIL_MATCH_REQUIRE LDAP_EMAIL_MATCH_VERIFIED LDAP_EMAIL_FIELD LDAP_SYNC_ADMIN_STATUS LDAP_SYNC_ADMIN_GROUPS HEADER_LOGIN_ID HEADER_LOGIN_FIRSTNAME HEADER_LOGIN_LASTNAME HEADER_LOGIN_EMAIL LOGOUT_WITH_TIMER LOGOUT_IN LOGOUT_ON_HOURS LOGOUT_ON_MINUTES DEFAULT_AUTHENTICATION_METHOD"
+keys="DEBUG MONGODB_BIND_UNIX_SOCKET MONGODB_BIND_IP MONGODB_PORT MAIL_URL MAIL_FROM ROOT_URL PORT DISABLE_MONGODB CADDY_ENABLED CADDY_BIND_PORT WITH_API ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE ACCOUNTS_LOCKOUT_KNOWN_USERS_PERIOD ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURE_WINDOW ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW NOTIFY_DUE_DAYS_BEFORE_AND_AFTER NOTIFY_DUE_AT_HOUR_OF_DAY EMAIL_NOTIFICATION_TIMEOUT CORS CORS_ALLOW_HEADERS CORS_EXPOSE_HEADERS MATOMO_ADDRESS MATOMO_SITE_ID MATOMO_DO_NOT_TRACK MATOMO_WITH_USERNAME BROWSER_POLICY_ENABLED TRUSTED_URL WEBHOOKS_ATTRIBUTES OAUTH2_ENABLED OAUTH2_LOGIN_STYLE 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_EMAIL_MAP OAUTH2_REQUEST_PERMISSIONS LDAP_ENABLE LDAP_PORT LDAP_HOST LDAP_BASEDN LDAP_LOGIN_FALLBACK LDAP_RECONNECT LDAP_TIMEOUT LDAP_IDLE_TIMEOUT LDAP_CONNECT_TIMEOUT LDAP_AUTHENTIFICATION LDAP_AUTHENTIFICATION_USERDN LDAP_AUTHENTIFICATION_PASSWORD LDAP_LOG_ENABLED LDAP_BACKGROUND_SYNC LDAP_BACKGROUND_SYNC_INTERVAL LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS LDAP_ENCRYPTION LDAP_CA_CERT LDAP_REJECT_UNAUTHORIZED LDAP_USER_AUTHENTICATION LDAP_USER_SEARCH_FILTER LDAP_USER_SEARCH_SCOPE LDAP_USER_SEARCH_FIELD LDAP_SEARCH_PAGE_SIZE LDAP_SEARCH_SIZE_LIMIT LDAP_GROUP_FILTER_ENABLE 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 LDAP_USERNAME_FIELD LDAP_FULLNAME_FIELD LDAP_MERGE_EXISTING_USERS LDAP_SYNC_USER_DATA LDAP_SYNC_USER_DATA_FIELDMAP LDAP_SYNC_GROUP_ROLES LDAP_DEFAULT_DOMAIN LDAP_EMAIL_MATCH_ENABLE LDAP_EMAIL_MATCH_REQUIRE LDAP_EMAIL_MATCH_VERIFIED LDAP_EMAIL_FIELD LDAP_SYNC_ADMIN_STATUS LDAP_SYNC_ADMIN_GROUPS HEADER_LOGIN_ID HEADER_LOGIN_FIRSTNAME HEADER_LOGIN_LASTNAME HEADER_LOGIN_EMAIL LOGOUT_WITH_TIMER LOGOUT_IN LOGOUT_ON_HOURS LOGOUT_ON_MINUTES DEFAULT_AUTHENTICATION_METHOD"
# default values
DESCRIPTION_DEBUG="Debug OIDC OAuth2 etc. Example: sudo snap set wekan debug='true'"
@@ -80,6 +80,14 @@ DESCRIPTION_ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW="Accounts lockout unkn
DEFAULT_ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW="15"
KEY_ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW="accounts-lockout-unknown-users-failure-window"
+DESCRIPTION_NOTIFY_DUE_DAYS_BEFORE_AND_AFTER="Notify due days, default 2 days before and after. 0 = due notifications disabled. Default: 2"
+DEFAULT_NOTIFY_DUE_DAYS_BEFORE_AND_AFTER=""
+KEY_NOTIFY_DUE_DAYS_BEFORE_AND_AFTER="notify-due-days-before-and-after"
+
+DESCRIPTION_NOTIFY_DUE_AT_HOUR_OF_DAY="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. Default: 0"
+DEFAULT_NOTIFY_DUE_AT_HOUR_OF_DAY=""
+KEY_NOTIFY_DUE_AT_HOUR_OF_DAY="notify-due-at-hour-of-day"
+
DESCRIPTION_EMAIL_NOTIFICATION_TIMEOUT="Email notification timeout, ms. Default: 30000 (=30s)."
DEFAULT_EMAIL_NOTIFICATION_TIMEOUT="30000"
KEY_EMAIL_NOTIFICATION_TIMEOUT="email-notification-timeout"
diff --git a/snap-src/bin/wekan-help b/snap-src/bin/wekan-help
index 546399b6..452f0d21 100755
--- a/snap-src/bin/wekan-help
+++ b/snap-src/bin/wekan-help
@@ -58,6 +58,24 @@ echo -e "\n"
echo -e "Accounts lockout unknown users failure window, in seconds. Default: 15"
echo -e "\t$ snap set $SNAP_NAME accounts-lockout-unknown-users-failure-window='15'"
echo -e "\n"
+echo -e "EMAIL DUE DATE NOTIFICATION https://github.com/wekan/wekan/pull/2536"
+echo -e "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."
+echo -e "Notify due days, default 2 days before and after. 0 = due notifications disabled. Default: 2"
+echo -e "To enable different Notify Due Days Before And After than default 2:"
+echo -e "\t$ snap set $SNAP_NAME notify-due-days-before-and-after='4'"
+echo -e "\t-Disable Notifying for Due Days:"
+echo -e "\t$ snap set $SNAP_NAME notify-due-days-before-and-after='0'"
+echo -e "\n"
+echo -e "\t-To set back to default 2:"
+echo -e "\t$ snap set $SNAP_NAME notify-due-days-before-and-after=''"
+echo -e "\n"
+echo -e "Notify due at hour of day. Default every morning at 8am. Can be 0-23."
+echo -e "If env variable has parsing error, use default. Notification sent to watchers."
+echo -e "To enable different Notify Due At Hour Of Day than default 8:"
+echo -e "\t$ snap set $SNAP_NAME notify-due-at-hour-of-day='10'"
+echo -e "\t-To set back default 8 of Notify Due at Hour of Day:"
+echo -e "\t$ snap set $SNAP_NAME notify-due-at-hour-of-day=''"
+echo -e "\n"
echo -e "To enable the Email Notification Timeout of wekan in ms, default 30000 (=30s):"
echo -e "\t$ snap set $SNAP_NAME email-notification-timeout='10000'"
echo -e "\t-Disable the Email Notification Timeout of Wekan:"
diff --git a/start-wekan.bat b/start-wekan.bat
index 1c52b8f7..bc67df0c 100755
--- a/start-wekan.bat
+++ b/start-wekan.bat
@@ -31,6 +31,21 @@ REM SET ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE=3
REM SET ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60
REM SET ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW=15
+REM # ==== EMAIL DUE DATE NOTIFICATION =====
+REM # https://github.com/wekan/wekan/pull/2536
+REM # System timelines will be showing any user modification for
+REM # dueat startat endat receivedat, also notification to
+REM # the watchers and if any card is due, about due or past due.
+REM # Notify due days, default 2 days before and after. 0 = due notifications disabled. Default: 2
+REM SET NOTIFY_DUE_DAYS_BEFORE_AND_AFTER=2
+REM # Notify due at hour of day. Default every morning at 8am. Can be 0-23.
+REM # If env variable has parsing error, use default. Notification sent to watchers.
+REM SET NOTIFY_DUE_AT_HOUR_OF_DAY=8
+
+REM # ==== EMAIL NOTIFICATION TIMEOUT, ms =====
+REM # Defaut: 30000 ms = 30s
+REM SET EMAIL_NOTIFICATION_TIMEOUT=30000
+
REM # CORS: Set Access-Control-Allow-Origin header. Example: *
REM SET CORS=*
REM # To enable the Set Access-Control-Allow-Headers header. "Authorization,Content-Type" is required for cross-origin use of the API.
diff --git a/start-wekan.sh b/start-wekan.sh
index 304c1006..a68ff7e8 100755
--- a/start-wekan.sh
+++ b/start-wekan.sh
@@ -36,7 +36,24 @@
#export ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE=3
#export ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60
#export ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW=15
- #---------------------------------------------
+ #---------------------------------------------------------------
+ # ==== 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
+ #export 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.
+ #export NOTIFY_DUE_AT_HOUR_OF_DAY=8
+ #-----------------------------------------------------------------
+ # ==== EMAIL NOTIFICATION TIMEOUT, ms =====
+ # Defaut: 30000 ms = 30s
+ #export EMAIL_NOTIFICATION_TIMEOUT=30000
+ #-----------------------------------------------------------------
# CORS: Set Access-Control-Allow-Origin header. Example: *
#export CORS=*
# To enable the Set Access-Control-Allow-Headers header. "Authorization,Content-Type" is required for cross-origin use of the API.