mirror of
https://github.com/wekan/wekan.git
synced 2026-03-07 22:22:33 +01:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
f2a0ae0a2c
64 changed files with 29872 additions and 28950 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -29,3 +29,4 @@ versions.json
|
||||||
.Trashes
|
.Trashes
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
ehthumbs.db
|
ehthumbs.db
|
||||||
|
.eslintcache
|
||||||
|
|
|
||||||
15
CHANGELOG.md
15
CHANGELOG.md
|
|
@ -4,12 +4,21 @@ This release adds the following new features:
|
||||||
|
|
||||||
- [Add Corteza theme. In progress](https://github.com/wekan/wekan/commit/289e78dbd29cca9d97d3b5787c3368583d43b40f).
|
- [Add Corteza theme. In progress](https://github.com/wekan/wekan/commit/289e78dbd29cca9d97d3b5787c3368583d43b40f).
|
||||||
Thanks to xet7.
|
Thanks to xet7.
|
||||||
|
- [Notify Due Days: System timelines will be showing any user modification for duat startat endat receivedat, also notification
|
||||||
|
to the watchers and if any card is due, about due or past due](https://github.com/wekan/wekan/pull/2536).
|
||||||
|
ENV variables: NOTIFY_DUE_DAYS_BEFORE_AND_AFTER (default is 2, if 0, will turn off notification for and dued cards),
|
||||||
|
NOTIFY_DUE_AT_HOUR_OF_DAY (any number between 0 - 23, standing for at what hour of a day that the notification will
|
||||||
|
be sent to the watchers).
|
||||||
|
Thanks to whowillcare.
|
||||||
|
- [Notify Due Days: Add settings to Snap/Docker/Source. Rename env variables to NOTIFY_DUE_DAYS_BEFORE_AND_AFTER and
|
||||||
|
NOTIFY_DUE_AT_HOUR_OF_DAY](https://github.com/wekan/wekan/commit/5084cddf37ba16ce0855f8575c39f5e62d1b7f67).
|
||||||
|
Thanks to xet7.
|
||||||
|
|
||||||
and adds the following updates:
|
and adds the following updates:
|
||||||
|
|
||||||
- [Update Meteor mongo package version](https://github.com/wekan/wekan/commit/96065d11a543852c1069cbab528bd08508b4a27c).
|
- [Update Meteor mongo package version](https://github.com/wekan/wekan/commit/96065d11a543852c1069cbab528bd08508b4a27c).
|
||||||
Thanks to xet7.
|
Thanks to xet7.
|
||||||
- Update dependencies](https://github.com/wekan/wekan/commit/d82c72f1c1df908e92045e5034fa12b33fc7f70c).
|
- [Update dependencies](https://github.com/wekan/wekan/commit/d82c72f1c1df908e92045e5034fa12b33fc7f70c).
|
||||||
Thanks to xet7.
|
Thanks to xet7.
|
||||||
|
|
||||||
and fixes the following bugs:
|
and fixes the following bugs:
|
||||||
|
|
@ -21,6 +30,10 @@ and fixes the following bugs:
|
||||||
- [Try to fix docker-compose.yml to use correct master branch that has
|
- [Try to fix docker-compose.yml to use correct master branch that has
|
||||||
meteor 1.8.1](https://github.com/wekan/wekan/commit/202cc5a797b6269ec422c6f2e532a49f09d4e30a).
|
meteor 1.8.1](https://github.com/wekan/wekan/commit/202cc5a797b6269ec422c6f2e532a49f09d4e30a).
|
||||||
Thanks to xet7.
|
Thanks to xet7.
|
||||||
|
- [Outgoing Webhooks setCustomField: Add board name, card name, custom field name to be
|
||||||
|
visible](https://github.com/wekan/wekan/commit/2003d90467debeadf51b69630c80ee6040524f52).
|
||||||
|
Still missing: custom field value, list name, swimlane name.
|
||||||
|
Thanks to xet7.
|
||||||
|
|
||||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||||
|
|
||||||
|
|
|
||||||
47
Dockerfile
47
Dockerfile
|
|
@ -4,7 +4,7 @@ LABEL maintainer="wekan"
|
||||||
# Set the environment variables (defaults where required)
|
# Set the environment variables (defaults where required)
|
||||||
# DOES NOT WORK: paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303
|
# DOES NOT WORK: paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303
|
||||||
# ENV BUILD_DEPS="paxctl"
|
# ENV BUILD_DEPS="paxctl"
|
||||||
ENV BUILD_DEPS="apt-utils bsdtar gnupg gosu wget curl bzip2 build-essential python3 python3-pip git ca-certificates gcc-8" \
|
ENV BUILD_DEPS="apt-utils bsdtar gnupg gosu wget curl bzip2 g++ build-essential python python3 python3-pip git ca-certificates" \
|
||||||
DEBUG=false \
|
DEBUG=false \
|
||||||
NODE_VERSION=v8.16.0 \
|
NODE_VERSION=v8.16.0 \
|
||||||
METEOR_RELEASE=1.8.1 \
|
METEOR_RELEASE=1.8.1 \
|
||||||
|
|
@ -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_FAILURES_BERORE=3 \
|
||||||
ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60 \
|
ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60 \
|
||||||
ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW=15 \
|
ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW=15 \
|
||||||
|
NOTIFY_DUE_DAYS_BEFORE_AND_AFTER="" \
|
||||||
|
NOTIFY_DUE_AT_HOUR_OF_DAY="" \
|
||||||
EMAIL_NOTIFICATION_TIMEOUT=30000 \
|
EMAIL_NOTIFICATION_TIMEOUT=30000 \
|
||||||
MATOMO_ADDRESS="" \
|
MATOMO_ADDRESS="" \
|
||||||
MATOMO_SITE_ID="" \
|
MATOMO_SITE_ID="" \
|
||||||
|
|
@ -169,33 +171,39 @@ RUN \
|
||||||
mv node-${NODE_VERSION}-${ARCHITECTURE} /opt/nodejs && \
|
mv node-${NODE_VERSION}-${ARCHITECTURE} /opt/nodejs && \
|
||||||
ln -s /opt/nodejs/bin/node /usr/bin/node && \
|
ln -s /opt/nodejs/bin/node /usr/bin/node && \
|
||||||
ln -s /opt/nodejs/bin/npm /usr/bin/npm && \
|
ln -s /opt/nodejs/bin/npm /usr/bin/npm && \
|
||||||
|
mkdir -p /opt/nodejs/lib/node_modules/fibers/.node-gyp /root/.node-gyp/8.16.0 /home/wekan/.config && \
|
||||||
|
chown wekan --recursive /home/wekan/.config && \
|
||||||
\
|
\
|
||||||
#DOES NOT WORK: paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303
|
#DOES NOT WORK: paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303
|
||||||
#paxctl -mC `which node` && \
|
#paxctl -mC `which node` && \
|
||||||
\
|
\
|
||||||
# Install Node dependencies
|
# Install Node dependencies. Python path for node-gyp.
|
||||||
npm install -g npm@${NPM_VERSION} && \
|
npm install -g npm@${NPM_VERSION} && \
|
||||||
|
npm config set python python2.7 && \
|
||||||
npm install -g node-gyp && \
|
npm install -g node-gyp && \
|
||||||
npm install -g fibers@${FIBERS_VERSION} && \
|
npm install -g fibers@${FIBERS_VERSION} && \
|
||||||
\
|
\
|
||||||
# Change user to wekan and install meteor
|
# Change user to wekan and install meteor
|
||||||
cd /home/wekan/ && \
|
cd /home/wekan/ && \
|
||||||
chown wekan --recursive /home/wekan && \
|
chown wekan --recursive /home/wekan && \
|
||||||
curl "https://install.meteor.com" -o /home/wekan/install_meteor.sh && \
|
#curl "https://install.meteor.com" -o /home/wekan/install_meteor.sh && \
|
||||||
#curl "https://install.meteor.com/?release=${METEOR_RELEASE}" -o /home/wekan/install_meteor.sh && \
|
#curl "https://install.meteor.com/?release=${METEOR_RELEASE}" -o /home/wekan/install_meteor.sh && \
|
||||||
# OLD: sed -i "s|RELEASE=.*|RELEASE=${METEOR_RELEASE}\"\"|g" ./install_meteor.sh && \
|
# OLD: sed -i "s|RELEASE=.*|RELEASE=${METEOR_RELEASE}\"\"|g" ./install_meteor.sh && \
|
||||||
# Install Meteor forcing its progress
|
# Install Meteor forcing its progress
|
||||||
sed -i 's/VERBOSITY="--silent"/VERBOSITY="--progress-bar"/' ./install_meteor.sh && \
|
#sed -i 's/VERBOSITY="--silent"/VERBOSITY="--progress-bar"/' ./install_meteor.sh && \
|
||||||
echo "Starting meteor ${METEOR_RELEASE} installation... \n" && \
|
echo "Starting meteor ${METEOR_RELEASE} installation... \n" && \
|
||||||
chown wekan /home/wekan/install_meteor.sh && \
|
gosu wekan:wekan curl https://install.meteor.com/ | /bin/sh && \
|
||||||
|
#chown wekan /home/wekan/install_meteor.sh && \
|
||||||
|
#gosu wekan:wekan sh /home/wekan/install_meteor.sh; \
|
||||||
\
|
\
|
||||||
# Check if opting for a release candidate instead of major release
|
# Check if opting for a release candidate instead of major release
|
||||||
if [ "$USE_EDGE" = false ]; then \
|
#if [ "$USE_EDGE" = false ]; then \
|
||||||
gosu wekan:wekan sh /home/wekan/install_meteor.sh; \
|
#gosu wekan:wekan sh /home/wekan/install_meteor.sh; \
|
||||||
else \
|
# gosu wekan:wekan curl https://install.meteor.com/ | sh; \
|
||||||
gosu wekan:wekan git clone --recursive --depth 1 -b release/METEOR@${METEOR_EDGE} https://github.com/meteor/meteor.git /home/wekan/.meteor; \
|
#else \
|
||||||
fi; \
|
# gosu wekan:wekan git clone --recursive --depth 1 -b release/METEOR@${METEOR_EDGE} https://github.com/meteor/meteor.git /home/wekan/.meteor; \
|
||||||
\
|
#fi; \
|
||||||
|
#\
|
||||||
# Get additional packages
|
# Get additional packages
|
||||||
#mkdir -p /home/wekan/app/packages && \
|
#mkdir -p /home/wekan/app/packages && \
|
||||||
#chown wekan:wekan --recursive /home/wekan && \
|
#chown wekan:wekan --recursive /home/wekan && \
|
||||||
|
|
@ -223,15 +231,18 @@ RUN \
|
||||||
gosu wekan:wekan git clone --depth 1 -b master https://github.com/Kronuz/esprima-python && \
|
gosu wekan:wekan git clone --depth 1 -b master https://github.com/Kronuz/esprima-python && \
|
||||||
cd /home/wekan/python/esprima-python && \
|
cd /home/wekan/python/esprima-python && \
|
||||||
python3 setup.py install --record files.txt && \
|
python3 setup.py install --record files.txt && \
|
||||||
cd /home/wekan/app &&\
|
cd /home/wekan/app && \
|
||||||
gosu wekan:wekan mkdir -p ./public/api && \
|
mkdir -p /home/wekan/app/public/api && \
|
||||||
|
chown wekan --recursive /home/wekan/app && \
|
||||||
gosu wekan:wekan python3 ./openapi/generate_openapi.py --release $(git describe --tags --abbrev=0) > ./public/api/wekan.yml && \
|
gosu wekan:wekan python3 ./openapi/generate_openapi.py --release $(git describe --tags --abbrev=0) > ./public/api/wekan.yml && \
|
||||||
gosu wekan:wekan /opt/nodejs/bin/api2html -c ./public/logo-header.png -o ./public/api/wekan.html ./public/api/wekan.yml; \
|
gosu wekan:wekan /opt/nodejs/bin/api2html -c ./public/logo-header.png -o ./public/api/wekan.html ./public/api/wekan.yml; \
|
||||||
# Build app
|
# Build app
|
||||||
cd /home/wekan/app && \
|
cd /home/wekan/app && \
|
||||||
gosu wekan:wekan /home/wekan/.meteor/meteor add standard-minifier-js && \
|
mkdir -p /home/wekan/.npm && \
|
||||||
gosu wekan:wekan /home/wekan/.meteor/meteor npm install && \
|
chown wekan --recursive /home/wekan/.npm /home/wekan/.config && \
|
||||||
gosu wekan:wekan /home/wekan/.meteor/meteor build --directory /home/wekan/app_build && \
|
#gosu wekan:wekan /home/wekan/.meteor/meteor add standard-minifier-js && \
|
||||||
|
gosu wekan:wekan npm install && \
|
||||||
|
gosu wekan:wekan meteor build --directory /home/wekan/app_build && \
|
||||||
cp /home/wekan/app/fix-download-unicode/cfs_access-point.txt /home/wekan/app_build/bundle/programs/server/packages/cfs_access-point.js && \
|
cp /home/wekan/app/fix-download-unicode/cfs_access-point.txt /home/wekan/app_build/bundle/programs/server/packages/cfs_access-point.js && \
|
||||||
#rm /home/wekan/app_build/bundle/programs/server/npm/node_modules/meteor/rajit_bootstrap3-datepicker/lib/bootstrap-datepicker/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs && \
|
#rm /home/wekan/app_build/bundle/programs/server/npm/node_modules/meteor/rajit_bootstrap3-datepicker/lib/bootstrap-datepicker/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs && \
|
||||||
chown wekan /home/wekan/app_build/bundle/programs/server/packages/cfs_access-point.js && \
|
chown wekan /home/wekan/app_build/bundle/programs/server/packages/cfs_access-point.js && \
|
||||||
|
|
@ -258,8 +269,8 @@ RUN \
|
||||||
rm -R /home/wekan/app && \
|
rm -R /home/wekan/app && \
|
||||||
rm -R /home/wekan/app_build && \
|
rm -R /home/wekan/app_build && \
|
||||||
cat /home/wekan/python/esprima-python/files.txt | xargs rm -R && \
|
cat /home/wekan/python/esprima-python/files.txt | xargs rm -R && \
|
||||||
rm -R /home/wekan/python && \
|
rm -R /home/wekan/python
|
||||||
rm /home/wekan/install_meteor.sh
|
#rm /home/wekan/install_meteor.sh
|
||||||
|
|
||||||
ENV PORT=8080
|
ENV PORT=8080
|
||||||
EXPOSE $PORT
|
EXPOSE $PORT
|
||||||
|
|
|
||||||
|
|
@ -232,6 +232,19 @@ services:
|
||||||
#- ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60
|
#- ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60
|
||||||
#- ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW=15
|
#- 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 =====
|
# ==== EMAIL NOTIFICATION TIMEOUT, ms =====
|
||||||
# Defaut: 30000 ms = 30s
|
# Defaut: 30000 ms = 30s
|
||||||
#- EMAIL_NOTIFICATION_TIMEOUT=30000
|
#- EMAIL_NOTIFICATION_TIMEOUT=30000
|
||||||
|
|
|
||||||
1424
i18n/ar.i18n.json
1424
i18n/ar.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/bg.i18n.json
1424
i18n/bg.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/br.i18n.json
1424
i18n/br.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/ca.i18n.json
1424
i18n/ca.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/cs.i18n.json
1424
i18n/cs.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/da.i18n.json
1424
i18n/da.i18n.json
File diff suppressed because it is too large
Load diff
|
|
@ -702,5 +702,21 @@
|
||||||
"swimlane-delete-pop": "Alle Aktionen werden aus dem Aktivitätenfeed entfernt und die Swimlane kann nicht wiederhergestellt werden. Es gibt kein Rückgängig!",
|
"swimlane-delete-pop": "Alle Aktionen werden aus dem Aktivitätenfeed entfernt und die Swimlane kann nicht wiederhergestellt werden. Es gibt kein Rückgängig!",
|
||||||
"restore-all": "Alles wiederherstellen",
|
"restore-all": "Alles wiederherstellen",
|
||||||
"delete-all": "Alles löschen",
|
"delete-all": "Alles löschen",
|
||||||
"loading": "Laden, bitte warten."
|
"loading": "Laden, bitte warten.",
|
||||||
|
"previous_as": "last time was",
|
||||||
|
"act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__",
|
||||||
|
"act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"act-a-receivedAt": "modified received time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"a-dueAt": "modified due time to be",
|
||||||
|
"a-endAt": "modified ending time to be",
|
||||||
|
"a-startAt": "modified starting time to be",
|
||||||
|
"a-receivedAt": "modified received time to be",
|
||||||
|
"almostdue": "current due time %s is approaching",
|
||||||
|
"pastdue": "current due time %s is past",
|
||||||
|
"duenow": "current due time %s is today",
|
||||||
|
"act-withDue": "__card__ due reminders [__board__]",
|
||||||
|
"act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching",
|
||||||
|
"act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past",
|
||||||
|
"act-duenow": "was reminding the current due (__timeValue__) of __card__ is now"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
1424
i18n/el.i18n.json
1424
i18n/el.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/en-GB.i18n.json
1424
i18n/en-GB.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/eo.i18n.json
1424
i18n/eo.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/es-AR.i18n.json
1424
i18n/es-AR.i18n.json
File diff suppressed because it is too large
Load diff
|
|
@ -702,5 +702,21 @@
|
||||||
"swimlane-delete-pop": "Todas las acciones serán eliminadas del historial de actividades y no se podrá recuperar el carril de flujo. Esta acción no puede deshacerse.",
|
"swimlane-delete-pop": "Todas las acciones serán eliminadas del historial de actividades y no se podrá recuperar el carril de flujo. Esta acción no puede deshacerse.",
|
||||||
"restore-all": "Restaurar todas",
|
"restore-all": "Restaurar todas",
|
||||||
"delete-all": "Borrar todas",
|
"delete-all": "Borrar todas",
|
||||||
"loading": "Cargando. Por favor, espere."
|
"loading": "Cargando. Por favor, espere.",
|
||||||
|
"previous_as": "last time was",
|
||||||
|
"act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__",
|
||||||
|
"act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"act-a-receivedAt": "modified received time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"a-dueAt": "modified due time to be",
|
||||||
|
"a-endAt": "modified ending time to be",
|
||||||
|
"a-startAt": "modified starting time to be",
|
||||||
|
"a-receivedAt": "modified received time to be",
|
||||||
|
"almostdue": "current due time %s is approaching",
|
||||||
|
"pastdue": "current due time %s is past",
|
||||||
|
"duenow": "current due time %s is today",
|
||||||
|
"act-withDue": "__card__ due reminders [__board__]",
|
||||||
|
"act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching",
|
||||||
|
"act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past",
|
||||||
|
"act-duenow": "was reminding the current due (__timeValue__) of __card__ is now"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
1424
i18n/eu.i18n.json
1424
i18n/eu.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/fa.i18n.json
1424
i18n/fa.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/fi.i18n.json
1424
i18n/fi.i18n.json
File diff suppressed because it is too large
Load diff
|
|
@ -702,5 +702,21 @@
|
||||||
"swimlane-delete-pop": "Toutes les actions vont être supprimées du suivi d'activités et vous ne pourrez plus utiliser ce couloir. Cette action est irréversible.",
|
"swimlane-delete-pop": "Toutes les actions vont être supprimées du suivi d'activités et vous ne pourrez plus utiliser ce couloir. Cette action est irréversible.",
|
||||||
"restore-all": "Tout supprimer",
|
"restore-all": "Tout supprimer",
|
||||||
"delete-all": "Tout restaurer",
|
"delete-all": "Tout restaurer",
|
||||||
"loading": "Chargement, merci de patienter."
|
"loading": "Chargement, merci de patienter.",
|
||||||
|
"previous_as": "last time was",
|
||||||
|
"act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__",
|
||||||
|
"act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"act-a-receivedAt": "modified received time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"a-dueAt": "modified due time to be",
|
||||||
|
"a-endAt": "modified ending time to be",
|
||||||
|
"a-startAt": "modified starting time to be",
|
||||||
|
"a-receivedAt": "modified received time to be",
|
||||||
|
"almostdue": "current due time %s is approaching",
|
||||||
|
"pastdue": "current due time %s is past",
|
||||||
|
"duenow": "current due time %s is today",
|
||||||
|
"act-withDue": "__card__ due reminders [__board__]",
|
||||||
|
"act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching",
|
||||||
|
"act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past",
|
||||||
|
"act-duenow": "was reminding the current due (__timeValue__) of __card__ is now"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
1424
i18n/gl.i18n.json
1424
i18n/gl.i18n.json
File diff suppressed because it is too large
Load diff
|
|
@ -702,5 +702,21 @@
|
||||||
"swimlane-delete-pop": "כל הפעולות יוסרו מהזנת הפעילות ולא תהיה לך אפשרות לשחזר את המסלול. אי אפשר לחזור אחורה.",
|
"swimlane-delete-pop": "כל הפעולות יוסרו מהזנת הפעילות ולא תהיה לך אפשרות לשחזר את המסלול. אי אפשר לחזור אחורה.",
|
||||||
"restore-all": "לשחזר הכול",
|
"restore-all": "לשחזר הכול",
|
||||||
"delete-all": "למחוק הכול",
|
"delete-all": "למחוק הכול",
|
||||||
"loading": "העמוד בטעינה, אנא המתינו."
|
"loading": "העמוד בטעינה, אנא המתינו.",
|
||||||
|
"previous_as": "הזמן הקודם היה",
|
||||||
|
"act-a-dueAt": "זמן יעד שונה ל: \n__timeValue__\nבכרטיס: __card__\n זמן היעד הקודם היה __timeOldValue__",
|
||||||
|
"act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"act-a-receivedAt": "modified received time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"a-dueAt": "modified due time to be",
|
||||||
|
"a-endAt": "modified ending time to be",
|
||||||
|
"a-startAt": "modified starting time to be",
|
||||||
|
"a-receivedAt": "modified received time to be",
|
||||||
|
"almostdue": "current due time %s is approaching",
|
||||||
|
"pastdue": "current due time %s is past",
|
||||||
|
"duenow": "current due time %s is today",
|
||||||
|
"act-withDue": "__card__ due reminders [__board__]",
|
||||||
|
"act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching",
|
||||||
|
"act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past",
|
||||||
|
"act-duenow": "was reminding the current due (__timeValue__) of __card__ is now"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
1424
i18n/hi.i18n.json
1424
i18n/hi.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/hu.i18n.json
1424
i18n/hu.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/hy.i18n.json
1424
i18n/hy.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/id.i18n.json
1424
i18n/id.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/ig.i18n.json
1424
i18n/ig.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/it.i18n.json
1424
i18n/it.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/ja.i18n.json
1424
i18n/ja.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/ka.i18n.json
1424
i18n/ka.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/km.i18n.json
1424
i18n/km.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/ko.i18n.json
1424
i18n/ko.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/lv.i18n.json
1424
i18n/lv.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/mk.i18n.json
1424
i18n/mk.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/mn.i18n.json
1424
i18n/mn.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/nb.i18n.json
1424
i18n/nb.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/nl.i18n.json
1424
i18n/nl.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/oc.i18n.json
1424
i18n/oc.i18n.json
File diff suppressed because it is too large
Load diff
|
|
@ -702,5 +702,21 @@
|
||||||
"swimlane-delete-pop": "Wszystkie akcje będą usunięte z widoku aktywności, nie można będzie przywrócić diagramu czynności. Usunięcie jest nieodwracalne.",
|
"swimlane-delete-pop": "Wszystkie akcje będą usunięte z widoku aktywności, nie można będzie przywrócić diagramu czynności. Usunięcie jest nieodwracalne.",
|
||||||
"restore-all": "Przywróć wszystkie",
|
"restore-all": "Przywróć wszystkie",
|
||||||
"delete-all": "Usuń wszystkie",
|
"delete-all": "Usuń wszystkie",
|
||||||
"loading": "Ładowanie, proszę czekać."
|
"loading": "Ładowanie, proszę czekać.",
|
||||||
|
"previous_as": "last time was",
|
||||||
|
"act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__",
|
||||||
|
"act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"act-a-receivedAt": "modified received time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"a-dueAt": "modified due time to be",
|
||||||
|
"a-endAt": "modified ending time to be",
|
||||||
|
"a-startAt": "modified starting time to be",
|
||||||
|
"a-receivedAt": "modified received time to be",
|
||||||
|
"almostdue": "current due time %s is approaching",
|
||||||
|
"pastdue": "current due time %s is past",
|
||||||
|
"duenow": "current due time %s is today",
|
||||||
|
"act-withDue": "__card__ due reminders [__board__]",
|
||||||
|
"act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching",
|
||||||
|
"act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past",
|
||||||
|
"act-duenow": "was reminding the current due (__timeValue__) of __card__ is now"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -702,5 +702,21 @@
|
||||||
"swimlane-delete-pop": "Todas as ações serão excluídas da lista de atividades e você não poderá recuperar a raia. Não há como desfazer.",
|
"swimlane-delete-pop": "Todas as ações serão excluídas da lista de atividades e você não poderá recuperar a raia. Não há como desfazer.",
|
||||||
"restore-all": "Restaurar tudo",
|
"restore-all": "Restaurar tudo",
|
||||||
"delete-all": "Excluir tudo",
|
"delete-all": "Excluir tudo",
|
||||||
"loading": "Carregando, aguarde por favor."
|
"loading": "Carregando, aguarde por favor.",
|
||||||
|
"previous_as": "last time was",
|
||||||
|
"act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__",
|
||||||
|
"act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"act-a-receivedAt": "modified received time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"a-dueAt": "modified due time to be",
|
||||||
|
"a-endAt": "modified ending time to be",
|
||||||
|
"a-startAt": "modified starting time to be",
|
||||||
|
"a-receivedAt": "modified received time to be",
|
||||||
|
"almostdue": "current due time %s is approaching",
|
||||||
|
"pastdue": "current due time %s is past",
|
||||||
|
"duenow": "current due time %s is today",
|
||||||
|
"act-withDue": "__card__ due reminders [__board__]",
|
||||||
|
"act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching",
|
||||||
|
"act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past",
|
||||||
|
"act-duenow": "was reminding the current due (__timeValue__) of __card__ is now"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
1424
i18n/pt.i18n.json
1424
i18n/pt.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/ro.i18n.json
1424
i18n/ro.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/ru.i18n.json
1424
i18n/ru.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/sr.i18n.json
1424
i18n/sr.i18n.json
File diff suppressed because it is too large
Load diff
|
|
@ -702,5 +702,21 @@
|
||||||
"swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.",
|
"swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.",
|
||||||
"restore-all": "Återställ alla",
|
"restore-all": "Återställ alla",
|
||||||
"delete-all": "Ta bort alla",
|
"delete-all": "Ta bort alla",
|
||||||
"loading": "Läser in, var god vänta."
|
"loading": "Läser in, var god vänta.",
|
||||||
|
"previous_as": "last time was",
|
||||||
|
"act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__",
|
||||||
|
"act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"act-a-receivedAt": "modified received time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"a-dueAt": "modified due time to be",
|
||||||
|
"a-endAt": "modified ending time to be",
|
||||||
|
"a-startAt": "modified starting time to be",
|
||||||
|
"a-receivedAt": "modified received time to be",
|
||||||
|
"almostdue": "current due time %s is approaching",
|
||||||
|
"pastdue": "current due time %s is past",
|
||||||
|
"duenow": "current due time %s is today",
|
||||||
|
"act-withDue": "__card__ due reminders [__board__]",
|
||||||
|
"act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching",
|
||||||
|
"act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past",
|
||||||
|
"act-duenow": "was reminding the current due (__timeValue__) of __card__ is now"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
1424
i18n/sw.i18n.json
1424
i18n/sw.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/ta.i18n.json
1424
i18n/ta.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/th.i18n.json
1424
i18n/th.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/tr.i18n.json
1424
i18n/tr.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/uk.i18n.json
1424
i18n/uk.i18n.json
File diff suppressed because it is too large
Load diff
1424
i18n/vi.i18n.json
1424
i18n/vi.i18n.json
File diff suppressed because it is too large
Load diff
|
|
@ -702,5 +702,21 @@
|
||||||
"swimlane-delete-pop": "所有活动将从活动源中删除,您将无法恢复泳道。此操作无法撤销。",
|
"swimlane-delete-pop": "所有活动将从活动源中删除,您将无法恢复泳道。此操作无法撤销。",
|
||||||
"restore-all": "全部恢复",
|
"restore-all": "全部恢复",
|
||||||
"delete-all": "全部删除",
|
"delete-all": "全部删除",
|
||||||
"loading": "加载中,请稍等。"
|
"loading": "加载中,请稍等。",
|
||||||
|
"previous_as": "last time was",
|
||||||
|
"act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__",
|
||||||
|
"act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"act-a-receivedAt": "modified received time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"a-dueAt": "modified due time to be",
|
||||||
|
"a-endAt": "modified ending time to be",
|
||||||
|
"a-startAt": "modified starting time to be",
|
||||||
|
"a-receivedAt": "modified received time to be",
|
||||||
|
"almostdue": "current due time %s is approaching",
|
||||||
|
"pastdue": "current due time %s is past",
|
||||||
|
"duenow": "current due time %s is today",
|
||||||
|
"act-withDue": "__card__ due reminders [__board__]",
|
||||||
|
"act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching",
|
||||||
|
"act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past",
|
||||||
|
"act-duenow": "was reminding the current due (__timeValue__) of __card__ is now"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
1424
i18n/zh-HK.i18n.json
1424
i18n/zh-HK.i18n.json
File diff suppressed because it is too large
Load diff
|
|
@ -702,5 +702,21 @@
|
||||||
"swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.",
|
"swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.",
|
||||||
"restore-all": "全部還原",
|
"restore-all": "全部還原",
|
||||||
"delete-all": "全部刪除",
|
"delete-all": "全部刪除",
|
||||||
"loading": "讀取中,請稍後"
|
"loading": "讀取中,請稍後",
|
||||||
|
"previous_as": "last time was",
|
||||||
|
"act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__",
|
||||||
|
"act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"act-a-receivedAt": "modified received time to __timeValue__ from (__timeOldValue__)",
|
||||||
|
"a-dueAt": "modified due time to be",
|
||||||
|
"a-endAt": "modified ending time to be",
|
||||||
|
"a-startAt": "modified starting time to be",
|
||||||
|
"a-receivedAt": "modified received time to be",
|
||||||
|
"almostdue": "current due time %s is approaching",
|
||||||
|
"pastdue": "current due time %s is past",
|
||||||
|
"duenow": "current due time %s is today",
|
||||||
|
"act-withDue": "__card__ due reminders [__board__]",
|
||||||
|
"act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching",
|
||||||
|
"act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past",
|
||||||
|
"act-duenow": "was reminding the current due (__timeValue__) of __card__ is now"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -189,7 +189,9 @@ if (Meteor.isServer) {
|
||||||
if (activity.customFieldId) {
|
if (activity.customFieldId) {
|
||||||
const customField = activity.customField();
|
const customField = activity.customField();
|
||||||
params.customField = customField.name;
|
params.customField = customField.name;
|
||||||
params.customFieldValue = customField.text;
|
params.customFieldValue = Activities.findOne({
|
||||||
|
customFieldId: customField._id,
|
||||||
|
}).value;
|
||||||
}
|
}
|
||||||
// Label activity did not work yet, unable to edit labels when tried this.
|
// Label activity did not work yet, unable to edit labels when tried this.
|
||||||
//if (activity.labelId) {
|
//if (activity.labelId) {
|
||||||
|
|
|
||||||
|
|
@ -1582,12 +1582,13 @@ const findDueCards = days => {
|
||||||
};
|
};
|
||||||
const addCronJob = _.debounce(
|
const addCronJob = _.debounce(
|
||||||
Meteor.bindEnvironment(function findDueCardsDebounced() {
|
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)) {
|
if (!(notifydays > 0 && notifydays < 15)) {
|
||||||
// notifying due is disabled
|
// notifying due is disabled
|
||||||
return;
|
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 defaultitvl = 8; // default every morning at 8am, if the passed env variable has parsing error use default
|
||||||
const itvl = parseInt(notifyitvl, 10) || defaultitvl;
|
const itvl = parseInt(notifyitvl, 10) || defaultitvl;
|
||||||
const scheduler = (job => () => {
|
const scheduler = (job => () => {
|
||||||
|
|
@ -1619,9 +1620,9 @@ if (Meteor.isServer) {
|
||||||
// With a huge database, this result in a very slow app and high CPU on the mongodb side.
|
// 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:
|
// To correct it, add Index to parentId:
|
||||||
Cards._collection._ensureIndex({ parentId: 1 });
|
Cards._collection._ensureIndex({ parentId: 1 });
|
||||||
/*let notifydays = parseInt(process.env.NOTIFY_DUE_DAYS) || 2; // default as 2 days b4 and after
|
// 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_ITVL) || 3600 * 24 * 1e3; // default interval as one day
|
// 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.call("findDueCards",notifydays,notifyitvl);
|
||||||
Meteor.defer(() => {
|
Meteor.defer(() => {
|
||||||
addCronJob();
|
addCronJob();
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -165,11 +165,15 @@ function customFieldDeletion(userId, doc) {
|
||||||
// instead it shows undefined, and no listId and swimlaneId.
|
// instead it shows undefined, and no listId and swimlaneId.
|
||||||
function customFieldEdit(userId, doc) {
|
function customFieldEdit(userId, doc) {
|
||||||
const card = Cards.findOne(doc.cardId);
|
const card = Cards.findOne(doc.cardId);
|
||||||
|
const customFieldValue = Activities.findOne({ customFieldId: doc._id }).value;
|
||||||
|
const boardId = card.boardId;
|
||||||
|
//boardId: doc.boardIds[0], // We are creating a customField, it has only one boardId
|
||||||
Activities.insert({
|
Activities.insert({
|
||||||
userId,
|
userId,
|
||||||
activityType: 'editCustomField',
|
activityType: 'setCustomField',
|
||||||
boardId: doc.boardIds[0], // We are creating a customField, it has only one boardId
|
boardId,
|
||||||
customFieldId: doc._id,
|
customFieldId: doc._id,
|
||||||
|
customFieldValue,
|
||||||
listId: card.listId,
|
listId: card.listId,
|
||||||
swimlaneId: card.swimlaneId,
|
swimlaneId: card.swimlaneId,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@
|
||||||
"prettier-eslint": "^8.8.2"
|
"prettier-eslint": "^8.8.2"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.5.1",
|
"@babel/runtime": "^7.5.4",
|
||||||
"bcrypt": "^3.0.2",
|
"bcrypt": "^3.0.2",
|
||||||
"bson": "^4.0.0",
|
"bson": "^4.0.0",
|
||||||
"bunyan": "^1.8.12",
|
"bunyan": "^1.8.12",
|
||||||
|
|
|
||||||
|
|
@ -73,10 +73,11 @@ do
|
||||||
if [[ "$OSTYPE" == "linux-gnu" ]]; then
|
if [[ "$OSTYPE" == "linux-gnu" ]]; then
|
||||||
echo "Linux";
|
echo "Linux";
|
||||||
# Debian, Ubuntu, Mint
|
# Debian, Ubuntu, Mint
|
||||||
sudo apt-get install -y build-essential gcc g++ make git curl wget npm nodejs
|
sudo apt-get install -y build-essential gcc g++ make git curl wget
|
||||||
sudo npm -g install npm
|
# npm nodejs
|
||||||
sudo chown wekan:wekan ../../.npm -R
|
#sudo npm -g install npm
|
||||||
#curl -0 -L https://npmjs.org/install.sh | sudo sh
|
curl -0 -L https://npmjs.org/install.sh | sudo sh
|
||||||
|
sudo chown -R $(id -u):$(id -g) $HOME/.npm
|
||||||
sudo npm -g install n
|
sudo npm -g install n
|
||||||
sudo n 8.16.0
|
sudo n 8.16.0
|
||||||
#curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
|
#curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
|
||||||
|
|
@ -113,7 +114,7 @@ do
|
||||||
npm_call -g install fibers@4.0.1
|
npm_call -g install fibers@4.0.1
|
||||||
# Install Meteor, if it's not yet installed
|
# Install Meteor, if it's not yet installed
|
||||||
curl https://install.meteor.com | bash
|
curl https://install.meteor.com | bash
|
||||||
sudo chown -R $USER ~/.meteor
|
sudo chown -R $(id -u):$(id -g) $HOME/.npm $HOME/.meteor
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
"Build Wekan")
|
"Build Wekan")
|
||||||
|
|
@ -141,6 +142,7 @@ do
|
||||||
# sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/repos/wekan/packages/meteor-useraccounts-core/package.js
|
# sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/repos/wekan/packages/meteor-useraccounts-core/package.js
|
||||||
#fi
|
#fi
|
||||||
#cd ..
|
#cd ..
|
||||||
|
sudo chown -R $(id -u):$(id -g) $HOME/.npm $HOME/.meteor
|
||||||
rm -rf node_modules
|
rm -rf node_modules
|
||||||
meteor npm install
|
meteor npm install
|
||||||
rm -rf .build
|
rm -rf .build
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,24 @@
|
||||||
#export ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE=3
|
#export ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE=3
|
||||||
#export ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60
|
#export ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60
|
||||||
#export ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW=15
|
#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: *
|
# CORS: Set Access-Control-Allow-Origin header. Example: *
|
||||||
#export CORS=*
|
#export CORS=*
|
||||||
# To enable the Set Access-Control-Allow-Headers header. "Authorization,Content-Type" is required for cross-origin use of the API.
|
# To enable the Set Access-Control-Allow-Headers header. "Authorization,Content-Type" is required for cross-origin use of the API.
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
# All supported keys are defined here together with descriptions and default values
|
# All supported keys are defined here together with descriptions and default values
|
||||||
|
|
||||||
# list of supported keys
|
# 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
|
# default values
|
||||||
DESCRIPTION_DEBUG="Debug OIDC OAuth2 etc. Example: sudo snap set wekan debug='true'"
|
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"
|
DEFAULT_ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW="15"
|
||||||
KEY_ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW="accounts-lockout-unknown-users-failure-window"
|
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)."
|
DESCRIPTION_EMAIL_NOTIFICATION_TIMEOUT="Email notification timeout, ms. Default: 30000 (=30s)."
|
||||||
DEFAULT_EMAIL_NOTIFICATION_TIMEOUT="30000"
|
DEFAULT_EMAIL_NOTIFICATION_TIMEOUT="30000"
|
||||||
KEY_EMAIL_NOTIFICATION_TIMEOUT="email-notification-timeout"
|
KEY_EMAIL_NOTIFICATION_TIMEOUT="email-notification-timeout"
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,24 @@ echo -e "\n"
|
||||||
echo -e "Accounts lockout unknown users failure window, in seconds. Default: 15"
|
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 "\t$ snap set $SNAP_NAME accounts-lockout-unknown-users-failure-window='15'"
|
||||||
echo -e "\n"
|
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 "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$ snap set $SNAP_NAME email-notification-timeout='10000'"
|
||||||
echo -e "\t-Disable the Email Notification Timeout of Wekan:"
|
echo -e "\t-Disable the Email Notification Timeout of Wekan:"
|
||||||
|
|
|
||||||
|
|
@ -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_LOCKOUT_PERIOD=60
|
||||||
REM SET ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW=15
|
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 # CORS: Set Access-Control-Allow-Origin header. Example: *
|
||||||
REM SET CORS=*
|
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.
|
REM # To enable the Set Access-Control-Allow-Headers header. "Authorization,Content-Type" is required for cross-origin use of the API.
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,24 @@
|
||||||
#export ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE=3
|
#export ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE=3
|
||||||
#export ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60
|
#export ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60
|
||||||
#export ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW=15
|
#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: *
|
# CORS: Set Access-Control-Allow-Origin header. Example: *
|
||||||
#export CORS=*
|
#export CORS=*
|
||||||
# To enable the Set Access-Control-Allow-Headers header. "Authorization,Content-Type" is required for cross-origin use of the API.
|
# To enable the Set Access-Control-Allow-Headers header. "Authorization,Content-Type" is required for cross-origin use of the API.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue