Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f42e0fe507 | ||
|
|
58dbd78997 | ||
|
|
04b995e77f | ||
|
|
82aa3fb7ee | ||
|
|
ec0e88ad2e | ||
|
|
cac28fde4d | ||
|
|
e65a8c9017 | ||
|
|
4a26f80fb1 | ||
|
|
bca8a72a0f | ||
|
|
13be8160d5 | ||
|
|
8efea6c4e2 | ||
|
|
36bb5e099e | ||
|
|
b86a24d97a | ||
|
|
3febe80329 | ||
|
|
b11a2103a4 | ||
|
|
4a9d881e47 | ||
|
|
8e5c6af612 | ||
|
|
ca588a4b54 | ||
|
|
258032acb0 | ||
|
|
2c9c9c4356 | ||
|
|
88d4e8a4d9 | ||
|
|
4e2a8735bc | ||
|
|
b72d24f6d0 | ||
|
|
1f2fb2ccce | ||
|
|
5e2b423ef8 | ||
|
|
79e2001708 | ||
|
|
2ea96518ad | ||
|
|
2666001226 | ||
|
|
1bd30bc121 | ||
|
|
d6d8144476 | ||
|
|
68e7818c1d | ||
|
|
e0e5f4514b | ||
|
|
c2942fa269 | ||
|
|
6f31240c74 | ||
|
|
5124265142 | ||
|
|
f0bd5eaca9 | ||
|
|
8589f85907 | ||
|
|
66d739b3b1 | ||
|
|
2206e34ab6 | ||
|
|
cc1ca4a1bb | ||
|
|
c8b1ef8ea6 | ||
|
|
f836faad48 | ||
|
|
7e27b916aa | ||
|
|
ae9963c1f7 | ||
|
|
2b4f4c8d4d | ||
|
|
68104fe578 | ||
|
|
6f2c46a747 | ||
|
|
e7e1f1b667 | ||
|
|
7dc20616a7 | ||
|
|
b5b323000a | ||
|
|
19d204c7a8 | ||
|
|
672c279b0a | ||
|
|
669e31ea64 | ||
|
|
4ab72170e3 | ||
|
|
9ca39696b3 | ||
|
|
7c36279308 | ||
|
|
89e5b3a979 | ||
|
|
58782c9a89 | ||
|
|
c3824dcbd2 | ||
|
|
cead2bc00f | ||
|
|
0d5380466a | ||
|
|
58f6acbc48 | ||
|
|
db73fb4e37 | ||
|
|
a3d4c3d948 | ||
|
|
f9dc5c6f80 | ||
|
|
96b763fb89 | ||
|
|
98a75305e7 | ||
|
|
0d8739327e | ||
|
|
7dc4d9bb71 | ||
|
|
c814221185 | ||
|
|
f2f6b57944 | ||
|
|
f50c2af914 | ||
|
|
5b7442436d | ||
|
|
9cebee7347 | ||
|
|
f311359373 | ||
|
|
31b9970c04 | ||
|
|
baf0edc51e | ||
|
|
69a2a76b2e | ||
|
|
7fd894f33d | ||
|
|
3f366844e2 | ||
|
|
4156b6f932 | ||
|
|
ed801f7082 | ||
|
|
cedd10e067 | ||
|
|
86b756b6bc | ||
|
|
259a12acf9 | ||
|
|
902f86d363 | ||
|
|
d5fc75e345 | ||
|
|
5650bd829a | ||
|
|
f9ad46180e | ||
|
|
6e534d7543 | ||
|
|
9aa56a8e42 | ||
|
|
4ed67832d2 | ||
|
|
3409de9ed1 | ||
|
|
e73a44d15b | ||
|
|
5cf30f05fd | ||
|
|
63117e87e7 | ||
|
|
a8e520e7f0 | ||
|
|
e14bb16d60 | ||
|
|
b704d58f0f | ||
|
|
246e9a7764 | ||
|
|
1c7b63f583 | ||
|
|
e6476319bc | ||
|
|
c954934b33 | ||
|
|
a72a6886f6 | ||
|
|
a601ba542a | ||
|
|
f22f470ba4 | ||
|
|
3faeeac126 | ||
|
|
40be1d416b | ||
|
|
9ef82458b7 | ||
|
|
da99e363cd | ||
|
|
3110bb48fd | ||
|
|
08e2f2f273 | ||
|
|
6636d12215 | ||
|
|
5f243d173a | ||
|
|
5ea8d3a4c6 | ||
|
|
dad3fd22ec | ||
|
|
f381402e8f | ||
|
|
f010235ff2 | ||
|
|
09f6dcbde1 | ||
|
|
224b8e3492 | ||
|
|
28612bbc8a | ||
|
|
dfe4f7bb56 | ||
|
|
3f28c0dd22 | ||
|
|
959dd1a95a | ||
|
|
d5297cd1df | ||
|
|
95404f43b7 | ||
|
|
9838af5e56 | ||
|
|
dab656f8ca | ||
|
|
802eeb1e6b | ||
|
|
98dd28818a | ||
|
|
f705373cc4 | ||
|
|
5bc60a8dab | ||
|
|
1c8f783767 | ||
|
|
24d3075c85 | ||
|
|
c461adff11 | ||
|
|
b172f7207d | ||
|
|
ef31fffa40 | ||
|
|
426632a307 | ||
|
|
2c708b6df6 | ||
|
|
b555d0ccc8 | ||
|
|
e1724c8a12 | ||
|
|
cd35574c0b | ||
|
|
d016cbcffc | ||
|
|
7e4b672888 | ||
|
|
06d9abf6f6 | ||
|
|
a1a6dae5c6 | ||
|
|
c5f40f1be9 | ||
|
|
4358cb5e57 | ||
|
|
a591bf05e0 | ||
|
|
568b7538ad | ||
|
|
bbd7765432 |
No files matched your search
+101
-94
@@ -1,20 +1,24 @@
|
||||
FROM ubuntu:21.10
|
||||
LABEL maintainer="sgr"
|
||||
FROM ubuntu:24.04
|
||||
LABEL maintainer="wekan"
|
||||
LABEL org.opencontainers.image.ref.name="ubuntu"
|
||||
LABEL org.opencontainers.image.version="24.04"
|
||||
LABEL org.opencontainers.image.source="https://github.com/wekan/wekan"
|
||||
|
||||
# 2022-04-25:
|
||||
# - gyp does not yet work with Ubuntu 22.04 ubuntu:rolling,
|
||||
# so changing to 21.10. https://github.com/wekan/wekan/issues/4488
|
||||
|
||||
ENV BUILD_DEPS="gnupg gosu libarchive-tools wget curl bzip2 g++ build-essential python3 git ca-certificates iproute2"
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
ENV BUILD_DEPS="apt-utils gnupg gosu wget bzip2 g++ iproute2 apt-transport-https libarchive-tools git"
|
||||
ENV DEV_DEPS="curl python3 ca-certificates build-essential"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
ENV \
|
||||
DEBUG=false \
|
||||
NODE_VERSION=v14.21.4 \
|
||||
METEOR_RELEASE=METEOR@2.13 \
|
||||
METEOR_RELEASE=METEOR@2.14 \
|
||||
USE_EDGE=false \
|
||||
METEOR_EDGE=1.5-beta.17 \
|
||||
NPM_VERSION=latest \
|
||||
NPM_VERSION=6.14.17 \
|
||||
FIBERS_VERSION=4.0.1 \
|
||||
ARCHITECTURE=linux-x64 \
|
||||
SRC_PATH=./ \
|
||||
@@ -28,15 +32,14 @@ ENV \
|
||||
ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60 \
|
||||
ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW=15 \
|
||||
ACCOUNTS_COMMON_LOGIN_EXPIRATION_IN_DAYS=90 \
|
||||
RICHER_CARD_COMMENT_EDITOR=false \
|
||||
CARD_OPENED_WEBHOOK_ENABLED=false \
|
||||
ATTACHMENTS_STORE_PATH="" \
|
||||
ATTACHMENTS_UPLOAD_EXTERNAL_PROGRAM="" \
|
||||
ATTACHMENTS_UPLOAD_MIME_TYPES="" \
|
||||
ATTACHMENTS_UPLOAD_MAX_SIZE=0 \
|
||||
AVATARS_UPLOAD_EXTERNAL_PROGRAM="" \
|
||||
AVATARS_UPLOAD_MIME_TYPES="" \
|
||||
AVATARS_UPLOAD_MAX_SIZE=0 \
|
||||
RICHER_CARD_COMMENT_EDITOR=false \
|
||||
CARD_OPENED_WEBHOOK_ENABLED=false \
|
||||
MAX_IMAGE_PIXEL="" \
|
||||
IMAGE_COMPRESS_RATIO="" \
|
||||
NOTIFICATION_TRAY_AFTER_READ_DAYS_BEFORE_REMOVE="" \
|
||||
@@ -48,10 +51,12 @@ ENV \
|
||||
MATOMO_SITE_ID="" \
|
||||
MATOMO_DO_NOT_TRACK=true \
|
||||
MATOMO_WITH_USERNAME=false \
|
||||
METRICS_ALLOWED_IP_ADDRESSES="" \
|
||||
BROWSER_POLICY_ENABLED=true \
|
||||
TRUSTED_URL="" \
|
||||
WEBHOOKS_ATTRIBUTES="" \
|
||||
OAUTH2_ENABLED=false \
|
||||
OIDC_REDIRECTION_ENABLED=false \
|
||||
OAUTH2_CA_CERT="" \
|
||||
OAUTH2_ADFS_ENABLED=false \
|
||||
OAUTH2_B2C_ENABLED=false \
|
||||
@@ -71,6 +76,9 @@ ENV \
|
||||
LDAP_ENABLE=false \
|
||||
LDAP_PORT=389 \
|
||||
LDAP_HOST="" \
|
||||
LDAP_AD_SIMPLE_AUTH="" \
|
||||
LDAP_USER_AUTHENTICATION=false \
|
||||
LDAP_USER_AUTHENTICATION_FIELD=uid \
|
||||
LDAP_BASEDN="" \
|
||||
LDAP_LOGIN_FALLBACK=false \
|
||||
LDAP_RECONNECT=true \
|
||||
@@ -88,8 +96,6 @@ ENV \
|
||||
LDAP_ENCRYPTION=false \
|
||||
LDAP_CA_CERT="" \
|
||||
LDAP_REJECT_UNAUTHORIZED=false \
|
||||
LDAP_USER_AUTHENTICATION=false \
|
||||
LDAP_USER_AUTHENTICATION_FIELD=uid \
|
||||
LDAP_USER_SEARCH_FILTER="" \
|
||||
LDAP_USER_SEARCH_SCOPE="" \
|
||||
LDAP_USER_SEARCH_FIELD="" \
|
||||
@@ -144,69 +150,32 @@ ENV \
|
||||
SAML_IDENTIFIER_FORMAT="" \
|
||||
SAML_LOCAL_PROFILE_MATCH_ATTRIBUTE="" \
|
||||
SAML_ATTRIBUTES="" \
|
||||
DEFAULT_WAIT_SPINNER="" \
|
||||
ORACLE_OIM_ENABLED=false \
|
||||
WAIT_SPINNER="" \
|
||||
WRITABLE_PATH=/data \
|
||||
S3=""
|
||||
# \
|
||||
# NODE_OPTIONS="--max_old_space_size=4096"
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# https://github.com/wekan/wekan/issues/3585#issuecomment-1021522132
|
||||
# Add more Node heap:
|
||||
# NODE_OPTIONS="--max_old_space_size=4096"
|
||||
# Add more stack:
|
||||
# bash -c "ulimit -s 65500; exec node --stack-size=65500 main.js"
|
||||
|
||||
#---------------------------------------------
|
||||
# == at docker-compose.yml: AUTOLOGIN WITH OIDC/OAUTH2 ====
|
||||
# https://github.com/wekan/wekan/wiki/autologin
|
||||
#- OIDC_REDIRECTION_ENABLED=true
|
||||
#---------------------------------------------------------------------
|
||||
|
||||
# Install OS
|
||||
RUN set -o xtrace \
|
||||
&& useradd --user-group -m --system --home-dir /home/wekan wekan \
|
||||
&& apt-get update \
|
||||
&& apt-get install --assume-yes --no-install-recommends apt-utils apt-transport-https ca-certificates 2>&1 \
|
||||
&& apt-get install --assume-yes --no-install-recommends ${BUILD_DEPS}
|
||||
|
||||
# OLD:
|
||||
# && curl -fsSLO --compressed "https://nodejs.org/dist/$NODE_VERSION/node-$NODE_VERSION-$ARCHITECTURE.tar.xz" \
|
||||
# && curl -fsSLO --compressed "https://nodejs.org/dist/$NODE_VERSION/SHASUMS256.txt.asc" \
|
||||
|
||||
# Install NodeJS
|
||||
RUN set -o xtrace \
|
||||
&& cd /tmp \
|
||||
&& curl -fsSLO --compressed "https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/node-${NODE_VERSION}-${ARCHITECTURE}.tar.xz" \
|
||||
&& curl -fsSLO --compressed "https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/SHASUMS256.txt" \
|
||||
&& grep " node-$NODE_VERSION-$ARCHITECTURE.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
|
||||
&& tar -xJf "node-$NODE_VERSION-$ARCHITECTURE.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
|
||||
&& rm "node-$NODE_VERSION-$ARCHITECTURE.tar.xz" SHASUMS256.txt \
|
||||
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs \
|
||||
&& mkdir -p /usr/local/lib/node_modules/fibers/.node-gyp /root/.node-gyp/${NODE_VERSION} /home/wekan/.config \
|
||||
&& npm install -g npm@${NPM_VERSION} \
|
||||
&& chown wekan:wekan --recursive /home/wekan/.config
|
||||
|
||||
ENV DEBIAN_FRONTEND=dialog
|
||||
|
||||
USER wekan
|
||||
|
||||
# Install Meteor
|
||||
RUN set -o xtrace \
|
||||
&& cd /home/wekan \
|
||||
&& curl https://install.meteor.com/?release=$METEOR_VERSION --output /home/wekan/install-meteor.sh \
|
||||
# Replace tar with bsdtar in the install script; https://github.com/jshimko/meteor-launchpad/issues/39
|
||||
&& sed --in-place "s/tar -xzf.*/bsdtar -xf \"\$TARBALL_FILE\" -C \"\$INSTALL_TMPDIR\"/g" /home/wekan/install-meteor.sh \
|
||||
&& sed --in-place 's/VERBOSITY="--silent"/VERBOSITY="--progress-bar"/' /home/wekan/install-meteor.sh \
|
||||
&& printf "\n[-] Installing Meteor $METEOR_VERSION...\n\n" \
|
||||
&& sh /home/wekan/install-meteor.sh
|
||||
|
||||
ENV PATH=$PATH:/home/wekan/.meteor/
|
||||
|
||||
USER root
|
||||
|
||||
RUN echo "export PATH=$PATH" >> /etc/environment
|
||||
|
||||
USER wekan
|
||||
RUN <<EOR
|
||||
echo "export PATH=$PATH" >> /etc/environment
|
||||
EOR
|
||||
|
||||
# Copy source dir
|
||||
RUN set -o xtrace \
|
||||
&& mkdir -p /home/wekan/app/.meteor \
|
||||
&& mkdir -p /home/wekan/app/packages
|
||||
RUN <<EOR
|
||||
set -o xtrace
|
||||
|
||||
mkdir -p /home/wekan/app/.meteor
|
||||
mkdir -p /home/wekan/app/packages
|
||||
EOR
|
||||
|
||||
COPY \
|
||||
.meteor/.finished-upgraders \
|
||||
@@ -231,44 +200,83 @@ COPY \
|
||||
packages \
|
||||
/home/wekan/app/packages/
|
||||
|
||||
USER root
|
||||
# Install OS
|
||||
RUN <<EOR
|
||||
set -o xtrace
|
||||
|
||||
RUN set -o xtrace \
|
||||
&& chown -R wekan:wekan /home/wekan/app /home/wekan/.meteor
|
||||
# Add non-root user wekan
|
||||
useradd --user-group --system --home-dir /home/wekan wekan
|
||||
# OS dependencies
|
||||
apt-get update --assume-yes
|
||||
apt-get install --assume-yes --no-install-recommends ${BUILD_DEPS} ${DEV_DEPS}
|
||||
|
||||
USER wekan
|
||||
# Meteor installer doesn't work with the default tar binary, so using bsdtar while installing.
|
||||
# https://github.com/coreos/bugs/issues/1095#issuecomment-350574389
|
||||
cp $(which tar) $(which tar)~
|
||||
ln -sf $(which bsdtar) $(which tar)
|
||||
|
||||
RUN \
|
||||
set -o xtrace && \
|
||||
# Build app
|
||||
cd /home/wekan/app && \
|
||||
/home/wekan/.meteor/meteor add standard-minifier-js && \
|
||||
/home/wekan/.meteor/meteor npm install && \
|
||||
/home/wekan/.meteor/meteor build --directory /home/wekan/app_build
|
||||
# Install NodeJS
|
||||
cd /tmp
|
||||
|
||||
RUN \
|
||||
set -o xtrace && \
|
||||
cd /home/wekan/app_build/bundle/programs/server/ && \
|
||||
chmod u+w package.json npm-shrinkwrap.json && \
|
||||
npm install && \
|
||||
cd node_modules/fibers && \
|
||||
node build.js
|
||||
# Download nodejs
|
||||
wget "https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz"
|
||||
wget "https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/SHASUMS256.txt"
|
||||
|
||||
# Verify nodejs authenticity
|
||||
grep "node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz" "SHASUMS256.txt" | shasum -a 256 -c -
|
||||
rm -f "SHASUMS256.txt"
|
||||
|
||||
# Install Node
|
||||
tar xzf "node-$NODE_VERSION-$ARCHITECTURE.tar.gz" -C /usr/local --strip-components=1 --no-same-owner
|
||||
rm "node-$NODE_VERSION-$ARCHITECTURE.tar.gz" "SHASUMS256.txt"
|
||||
ln -s "/usr/local/bin/node" "/usr/local/bin/nodejs"
|
||||
mkdir -p "/opt/nodejs/lib/node_modules/fibers/.node-gyp" "/root/.node-gyp/${NODE_VERSION} /home/wekan/.config"
|
||||
|
||||
# Install node dependencies
|
||||
npm install -g npm@${NPM_VERSION}
|
||||
chown --recursive wekan:wekan /home/wekan/.config
|
||||
|
||||
# Install Meteor
|
||||
cd /home/wekan
|
||||
chown --recursive wekan:wekan /home/wekan
|
||||
echo "Starting meteor ${METEOR_RELEASE} installation... \n"
|
||||
gosu wekan:wekan curl https://install.meteor.com/ | /bin/sh
|
||||
mv /root/.meteor /home/wekan/
|
||||
chown --recursive wekan:wekan /home/wekan/.meteor
|
||||
|
||||
# sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' /home/wekan/app/packages/meteor-useraccounts-core/package.js
|
||||
cd /home/wekan/.meteor
|
||||
gosu wekan:wekan /home/wekan/.meteor/meteor -- help
|
||||
|
||||
# Build app (Development)
|
||||
cd /home/wekan/app
|
||||
gosu wekan:wekan /home/wekan/.meteor/meteor add standard-minifier-js
|
||||
gosu wekan:wekan /home/wekan/.meteor/meteor npm install
|
||||
|
||||
# Put back the original tar
|
||||
mv $(which tar)~ $(which tar)
|
||||
|
||||
USER root
|
||||
# Cleanup
|
||||
RUN \
|
||||
set -o xtrace && \
|
||||
apt-get clean -y && \
|
||||
apt-get autoremove -y && \
|
||||
rm -Rf /tmp/* && \
|
||||
rm -Rf /home/wekan/app_build && \
|
||||
rm -Rf /var/cache/apt /var/lib/apt/lists && \
|
||||
rm -Rf /var/lib/apt/lists/*
|
||||
apt-get remove --purge --assume-yes ${BUILD_DEPS}
|
||||
apt-get install --assume-yes --no-install-recommends build-essential
|
||||
apt-get autoremove --assume-yes
|
||||
apt-get clean --assume-yes
|
||||
rm -Rf /tmp/*
|
||||
rm -Rf /var/lib/apt/lists/*
|
||||
rm -Rf /var/cache/apt
|
||||
rm -Rf /var/lib/apt/lists
|
||||
rm -Rf /home/wekan/app_build
|
||||
|
||||
mkdir /data
|
||||
chown wekan --recursive /data
|
||||
EOR
|
||||
|
||||
USER wekan
|
||||
|
||||
ENV PORT=3000
|
||||
EXPOSE $PORT
|
||||
|
||||
STOPSIGNAL SIGKILL
|
||||
WORKDIR /home/wekan/app
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
@@ -278,7 +286,6 @@ WORKDIR /home/wekan/app
|
||||
# Add more stack:
|
||||
# bash -c "ulimit -s 65500; exec node --stack-size=65500 main.js"
|
||||
#---------------------------------------------------------------------
|
||||
#TODO:
|
||||
#CMD ["bash", "-c", "ulimit -s 65500; exec node --stack-size=65500 /build/main.js"]
|
||||
#
|
||||
|
||||
CMD ["/home/wekan/.meteor/meteor", "run", "--verbose", "--settings", "settings.json"]
|
||||
+29
-11
@@ -1,18 +1,24 @@
|
||||
## Issue
|
||||
<!--
|
||||
Please report these elsewhere:
|
||||
|
||||
Please report these issues elsewhere:
|
||||
|
||||
- SECURITY ISSUES, PGP EMAIL: https://github.com/wekan/wekan/blob/main/SECURITY.md
|
||||
- UCS: https://github.com/wekan/univention/issues
|
||||
|
||||
**[PLEASE UPGRADE](https://github.com/wekan/wekan/wiki/Backup)** to the newest WeKan ® before reporting an issue.
|
||||
**[PLEASE UPGRADE](https://github.com/wekan/wekan/wiki/Backup)** to the newest
|
||||
WeKan ® before reporting an issue, if possible.
|
||||
|
||||
Please search existing Open and Closed issues, most questions have already been answered.
|
||||
|
||||
If you can not login for any reason: https://github.com/wekan/wekan/wiki/Forgot-Password
|
||||
Email settings, only SMTP MAIL_URL and MAIL_FROM are in use: https://github.com/wekan/wekan/wiki/Troubleshooting-Mail
|
||||
-->
|
||||
Email settings, only SMTP MAIL_URL and MAIL_FROM are in use:
|
||||
https://github.com/wekan/wekan/wiki/Troubleshooting-Mail
|
||||
|
||||
### Server Setup Information
|
||||
<!-- Please anonymize info, and do not any of your Wekan board URLs, passwords, API tokens etc to this public issue. -->
|
||||
|
||||
Please anonymize info, and do not any of your Wekan board URLs, passwords,
|
||||
API tokens etc to this public issue.
|
||||
|
||||
* Did you test in newest Wekan?:
|
||||
* Did you configure root-url correctly so Wekan cards open correctly (see https://github.com/wekan/wekan/wiki/Settings)?
|
||||
* Operating System:
|
||||
@@ -23,13 +29,25 @@ Email settings, only SMTP MAIL_URL and MAIL_FROM are in use: https://github.com/
|
||||
* What webbrowser version are you using (Wekan should work on all modern browsers that support Javascript)?
|
||||
|
||||
### Problem description
|
||||
<!-- Add a recorded animated gif (e.g. with https://github.com/phw/peek) about how it works currently, and screenshot mockups how it should work. -->
|
||||
|
||||
Add a recorded animated gif (e.g. with https://github.com/phw/peek) about
|
||||
how it works currently, and screenshot mockups how it should work.
|
||||
|
||||
|
||||
#### Reproduction Steps
|
||||
|
||||
#### Logs
|
||||
<!-- Check Right Click>Inspect>Console in you browser - generally Chrome shows more detailed info than Firefox. -->
|
||||
|
||||
<!-- Please anonymize logs.
|
||||
|
||||
#### Logs
|
||||
|
||||
Check Right Click / Inspect / Console in you browser - generally Chromium
|
||||
based browsers show more detailed info than Firefox based browsers.
|
||||
|
||||
Please anonymize logs.
|
||||
|
||||
Snap: sudo snap logs wekan.wekan
|
||||
|
||||
Docker: sudo docker logs wekan-app
|
||||
If logs are very long, attach them in .zip file -->
|
||||
|
||||
If logs are very long, attach them in .zip file
|
||||
|
||||
@@ -38,7 +38,7 @@ jobs:
|
||||
# https://github.com/docker/login-action
|
||||
- name: Log into registry ${{ env.REGISTRY }}
|
||||
if: github.event_name != 'pull_request'
|
||||
uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d
|
||||
uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446
|
||||
with:
|
||||
registry: ${{ env.REGISTRY }}
|
||||
username: ${{ github.actor }}
|
||||
@@ -55,7 +55,7 @@ jobs:
|
||||
# Build and push Docker image with Buildx (don't push on PR)
|
||||
# https://github.com/docker/build-push-action
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@af5a7ed5ba88268d5278f7203fb52cd833f66d6e
|
||||
uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0
|
||||
with:
|
||||
context: .
|
||||
push: ${{ github.event_name != 'pull_request' }}
|
||||
|
||||
@@ -125,7 +125,7 @@ jobs:
|
||||
v1-meteor_build_cache-
|
||||
|
||||
- name: Setup meteor
|
||||
uses: meteorengineer/setup-meteor@v1
|
||||
uses: meteorengineer/setup-meteor@v2
|
||||
with:
|
||||
meteor-release: '2.2'
|
||||
|
||||
|
||||
+172
-1
@@ -2,7 +2,7 @@
|
||||
|
||||
Newest WeKan at these amd64 platforms:
|
||||
|
||||
- Linux bundle
|
||||
- Windows and Linux bundle
|
||||
- Snap Candidate
|
||||
- Docker
|
||||
- Kubernetes
|
||||
@@ -15,6 +15,177 @@ Fixing other platforms In Progress.
|
||||
|
||||
[How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585)
|
||||
|
||||
# v7.48 2024-06-06 WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- [Updated release scripts](https://github.com/wekan/wekan/commit/4a9d881e47751ec49d24af5bf4fd1c5452ceb194).
|
||||
Thanks to xet7.
|
||||
- Add changes from wiki to docs.
|
||||
[Part 1](https://github.com/wekan/wekan/commit/13be8160d5b6a894c674d04c37ff9e653e7bd4b0),
|
||||
[Part 2](https://github.com/wekan/wekan/commit/e65a8c90177cd948ca8212486a365b65cd7d5372).
|
||||
Thanks to xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fix Admin Panel pages Organizations and Teams, where HTML Tables were broken](https://github.com/wekan/wekan/commit/36bb5e099ed9f1f88c0399867bd76f040467745c).
|
||||
Thanks to Hekatomb and xet7.
|
||||
- [Try to show more of title of collapsed list](https://github.com/wekan/wekan/commit/ec0e88ad2e914437b4767456a160f2c1138fc5f2).
|
||||
Thanks to C0rn3j and xet7.
|
||||
- [Allow Normal user to add new swimlane, list and label](https://github.com/wekan/wekan/commit/04b995e77fdb5abc186e02482a75aba6a5cf0759).
|
||||
Thanks to RyanHecht, norrig and xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.47 2024-06-03 WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- [Update Docker base images to Ubuntu 24.04](https://github.com/wekan/wekan/commit/79e2001708b5110b26cf54b15bbbf90f7977fe90).
|
||||
Thanks to xet7.
|
||||
- [Updated to MongoDB 6.0.15 at Snap Candidate](https://github.com/wekan/wekan/commit/4e2a8735bc2e449a2a3c949d042fb625052a1152).
|
||||
Thanks to MongoDB developers.
|
||||
- [Updated release scripts](https://github.com/wekan/wekan/commit/2c9c9c43561093801004f0268d58b29d9a10b570).
|
||||
Thanks to xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Only show Board name edit button to BoardAdmin](https://github.com/wekan/wekan/commit/5e2b423ef87c62a70a6b08abd2f185fd560f391f).
|
||||
Thanks to xet7.
|
||||
- [Fix Edit Description button is wildly out of place](https://github.com/wekan/wekan/commit/1f2fb2ccce38e9cac348f1c459784d6e5a949ded).
|
||||
Thanks to C0rn3j and xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.46 2024-06-03 WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- [Update ukrainian translation](https://github.com/wekan/wekan/pull/5405).
|
||||
Thanks to novashdima.
|
||||
- [Updated GitHub issue template for issue instructions to be more visible](https://github.com/wekan/wekan/commit/5124265142c94d5044b81f81eaaa9c3bc01cef58).
|
||||
Thanks to xet7.
|
||||
- [For development, only recommend Debian 12 amd64, because Sandstorm works at Debian 12. Sandstorm does not work at Ubuntu 24.04](https://github.com/wekan/wekan/commit/1bd30bc12129be8cc8a633a561bb8a5be76823d7).
|
||||
Thanks to xet7. Related https://github.com/sandstorm-io/sandstorm/issues/3712
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Optimize SVGs and PNGs to save 550KB](https://github.com/wekan/wekan/pull/5403).
|
||||
Thanks to C0rn3j.
|
||||
- [Swap deprecated egrep for grep -E](https://github.com/wekan/wekan/pull/5404).
|
||||
Thanks to C0rn3j.
|
||||
- [Remove notification while copying board](https://github.com/wekan/wekan/pull/5412).
|
||||
Thanks to e-gaulue.
|
||||
- [Fixed loading of cards if there are more than 20 of them on one swimlane](https://github.com/wekan/wekan/pull/5417).
|
||||
Thanks to novashdima.
|
||||
- [Devcontainer, reduce image size and other necessary changes for development](https://github.com/wekan/wekan/pull/5418).
|
||||
Thanks to mfilser.
|
||||
- [Dockerfile production and dev same build](https://github.com/wekan/wekan/pull/5419).
|
||||
Thanks to mfilser.
|
||||
- [Remove second created at on activities](https://github.com/wekan/wekan/pull/5420).
|
||||
Thanks to mfilser.
|
||||
- [Fix Export CSV/TSV from Board create unhandled Exception](https://github.com/wekan/wekan/pull/5424).
|
||||
Thanks to Dexus.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.45 2024-05-06 WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- [Update Docker base container to Ubuntu 24.04, and update software versions](https://github.com/wekan/wekan/commit/63117e87e759af965c8eeceaaa41f52815630d20).
|
||||
Thanks to developers of dependencies.
|
||||
- [Updated dependencies](https://github.com/wekan/wekan/pull/5392).
|
||||
Thanks to developers of dependencies.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fix display of tables with a large number of rows](https://github.com/wekan/wekan/pull/5393).
|
||||
Thanks to novashdima.
|
||||
- [Fix white List color and define Silver in CSS instead of leaving it unset](https://github.com/wekan/wekan/pull/5400).
|
||||
Thanks to C0rn3j.
|
||||
- [Allow silver color to be set in List and Swimlane](https://github.com/wekan/wekan/pull/5401).
|
||||
Thanks to C0rn3j.
|
||||
- [Fix Can't set a Due Date that has a leading zero in time, errors with invalid time](https://github.com/wekan/wekan/commit/9cebee734740790145ca574c539ccebd067cee7e).
|
||||
Thanks to C0rn3j and xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.44 2024-04-26 WeKan ® release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Collapse Lists](https://github.com/wekan/wekan/commit/a601ba542aebefdfa8b5d683d22405ab3d5f8569).
|
||||
Thanks to xet7.
|
||||
- [Collapse Swimlanes. In Progress, does not work yet, not visible yet](https://github.com/wekan/wekan/commit b704d58f0f3cf5e7785b79d5a6c9f6c63da4159c).
|
||||
Thanks to xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fix board not visible at Collapse Lists](https://github.com/wekan/wekan/commit/e6476319bcb06cc71fa0eefa0a608ec3a7b89767).
|
||||
Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.43 2024-04-18 WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- [Updated release script for Windows On-Premise, that is without container like Docker and Snap](https://github.com/wekan/wekan/commit/802eeb1e6bb87c45fa79298f67ff690e87f939f8).
|
||||
Thanks to xet7.
|
||||
- [Updated translations Transifex URL at readme](https://github.com/wekan/wekan/commit/9838af5e5630a6ef34175e110ddfb6bfc225b40c).
|
||||
Thanks to xet7.
|
||||
- [Improve Docker files](https://github.com/wekan/wekan/pull/5377).
|
||||
Thanks to C0rn3j.
|
||||
- Updated dependencies.
|
||||
[Part 1](https://github.com/wekan/wekan/commit/08e2f2f2731856255e0b40eb692328424efdf9ac),
|
||||
[Part 2](https://github.com/wekan/wekan/commit/da99e363cd72cda7d400ce65785a6650e42c72cf).
|
||||
Thanks to developers of dependencies.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fix DEBUG environment variable check](https://github.com/wekan/wekan/pull/5380).
|
||||
Thanks to verdel.
|
||||
- [By default, use localized long date-time format](https://github.com/wekan/wekan/pull/5381).
|
||||
Thanks to tvogel.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.42 2024-04-03 WeKan ® release
|
||||
|
||||
This release fixes the following CRITICAL SECURITY ISSUES:
|
||||
|
||||
- [Fixed CRITICAL SECURITY ISSUE by updating meteor-node-stubs](https://github.com/wekan/wekan/commit/c461adff11456734fcb9193b5522cc6451078732).
|
||||
Thanks to Meteor developers.
|
||||
|
||||
and adds the following updates:
|
||||
|
||||
- Updated dependencies.
|
||||
[Part 1](https://github.com/wekan/wekan/pull/5355),
|
||||
[Part 2](https://github.com/wekan/wekan/pull/5356),
|
||||
[Part 3](https://github.com/wekan/wekan/commit/1c8f783767a680758f2219d2f416ce3ae2fb0c57).
|
||||
Thanks to dependabot and developers of dependencies.
|
||||
- [Small tweaks to moderndark theme](https://github.com/wekan/wekan/pull/5363).
|
||||
Thanks to jghaanstra.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fixed link at readme](https://github.com/wekan/wekan/pull/5360).
|
||||
Thanks to dyercode.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.41 2024-03-18 WeKan ® release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- Fixes for mongosh to allow snap packages to update to the edge/candidate version.
|
||||
[Part 1](https://github.com/wekan/wekan/pull/5349),
|
||||
[Part 2](https://github.com/wekan/wekan/pull/5350).
|
||||
Thanks to lorodoes.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.40 2024-03-17 WeKan ® release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
+99
-108
@@ -1,13 +1,8 @@
|
||||
FROM --platform=linux/amd64 ubuntu:23.10 as wekan
|
||||
LABEL maintainer="wekan" \
|
||||
org.opencontainers.image.ref.name="ubuntu" \
|
||||
org.opencontainers.image.version="23.10" \
|
||||
org.opencontainers.image.source="https://github.com/wekan/wekan"
|
||||
|
||||
# 2022-09-04:
|
||||
# - above "--platform=linux/amd64 ubuntu:22.04 as wekan" is needed to build Dockerfile
|
||||
# correctly on Mac M1 etc, to not get this error:
|
||||
# https://stackoverflow.com/questions/71040681/qemu-x86-64-could-not-open-lib64-ld-linux-x86-64-so-2-no-such-file-or-direc
|
||||
FROM ubuntu:24.04
|
||||
LABEL maintainer="wekan"
|
||||
LABEL org.opencontainers.image.ref.name="ubuntu"
|
||||
LABEL org.opencontainers.image.version="24.04"
|
||||
LABEL org.opencontainers.image.source="https://github.com/wekan/wekan"
|
||||
|
||||
# 2022-04-25:
|
||||
# - gyp does not yet work with Ubuntu 22.04 ubuntu:rolling,
|
||||
@@ -16,19 +11,17 @@ LABEL maintainer="wekan" \
|
||||
# 2021-09-18:
|
||||
# - Above Ubuntu base image copied from Docker Hub ubuntu:hirsute-20210825
|
||||
# to Quay to avoid Docker Hub rate limits.
|
||||
|
||||
# Set the environment variables (defaults where required)
|
||||
# DOES NOT WORK: paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303
|
||||
# ENV BUILD_DEPS="paxctl"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-essential git ca-certificates python3" \
|
||||
ENV BUILD_DEPS="apt-utils gnupg gosu wget bzip2 g++ curl libarchive-tools build-essential git ca-certificates python3"
|
||||
|
||||
ENV \
|
||||
DEBUG=false \
|
||||
NODE_VERSION=v14.21.4 \
|
||||
METEOR_RELEASE=METEOR@2.13.3 \
|
||||
METEOR_RELEASE=METEOR@2.14 \
|
||||
USE_EDGE=false \
|
||||
METEOR_EDGE=1.5-beta.17 \
|
||||
NPM_VERSION=9.8.1 \
|
||||
NPM_VERSION=6.14.17 \
|
||||
FIBERS_VERSION=4.0.1 \
|
||||
ARCHITECTURE=linux-x64 \
|
||||
SRC_PATH=./ \
|
||||
@@ -165,7 +158,7 @@ ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-
|
||||
WRITABLE_PATH=/data \
|
||||
S3=""
|
||||
|
||||
# NODE_OPTIONS="--max_old_space_size=4096" \
|
||||
# NODE_OPTIONS="--max_old_space_size=4096"
|
||||
|
||||
#---------------------------------------------
|
||||
# == at docker-compose.yml: AUTOLOGIN WITH OIDC/OAUTH2 ====
|
||||
@@ -176,99 +169,98 @@ ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-
|
||||
# Copy the app to the image
|
||||
COPY ${SRC_PATH} /home/wekan/app
|
||||
|
||||
RUN \
|
||||
set -o xtrace && \
|
||||
# Add non-root user wekan
|
||||
useradd --user-group --system --home-dir /home/wekan wekan && \
|
||||
\
|
||||
# OS dependencies
|
||||
apt-get update -y && apt-get install -y --no-install-recommends ${BUILD_DEPS} && \
|
||||
\
|
||||
# Meteor installer doesn't work with the default tar binary, so using bsdtar while installing.
|
||||
# https://github.com/coreos/bugs/issues/1095#issuecomment-350574389
|
||||
cp $(which tar) $(which tar)~ && \
|
||||
ln -sf $(which bsdtar) $(which tar) && \
|
||||
\
|
||||
# Download nodejs
|
||||
wget https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz && \
|
||||
wget https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/SHASUMS256.txt && \
|
||||
#wget https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz && \
|
||||
#wget https://nodejs.org/dist/${NODE_VERSION}/SHASUMS256.txt.asc && \
|
||||
#---------------------------------------------------------------------------------------------
|
||||
\
|
||||
# Verify nodejs authenticity
|
||||
grep node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz SHASUMS256.txt | shasum -a 256 -c - && \
|
||||
rm -f SHASUMS256.txt && \
|
||||
#grep ${NODE_VERSION}-${ARCHITECTURE}.tar.gz SHASUMS256.txt.asc | shasum -a 256 -c - && \
|
||||
#rm -f SHASUMS256.txt.asc && \
|
||||
\
|
||||
# Install Node
|
||||
tar xvzf node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz && \
|
||||
rm node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz && \
|
||||
mv node-${NODE_VERSION}-${ARCHITECTURE} /opt/nodejs && \
|
||||
ln -s /opt/nodejs/bin/node /usr/bin/node && \
|
||||
ln -s /opt/nodejs/bin/npm /usr/bin/npm && \
|
||||
mkdir -p /opt/nodejs/lib/node_modules/fibers/.node-gyp /root/.node-gyp/${NODE_VERSION} /home/wekan/.config && \
|
||||
chown wekan --recursive /home/wekan/.config && \
|
||||
\
|
||||
#DOES NOT WORK: paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303
|
||||
#paxctl -mC `which node` && \
|
||||
\
|
||||
# Install Node dependencies. Python path for node-gyp.
|
||||
#npm install -g npm@${NPM_VERSION} && \
|
||||
\
|
||||
# Change user to wekan and install meteor
|
||||
cd /home/wekan/ && \
|
||||
chown wekan --recursive /home/wekan && \
|
||||
echo "Starting meteor ${METEOR_RELEASE} installation... \n" && \
|
||||
gosu wekan:wekan curl https://install.meteor.com/ | /bin/sh && \
|
||||
mv /root/.meteor /home/wekan/ && \
|
||||
chown wekan --recursive /home/wekan/.meteor && \
|
||||
\
|
||||
sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' /home/wekan/app/packages/meteor-useraccounts-core/package.js && \
|
||||
cd /home/wekan/.meteor && \
|
||||
gosu wekan:wekan /home/wekan/.meteor/meteor -- help; \
|
||||
\
|
||||
# Build app
|
||||
cd /home/wekan/app && \
|
||||
mkdir -p /home/wekan/.npm && \
|
||||
chown wekan --recursive /home/wekan/.npm /home/wekan/.config /home/wekan/.meteor && \
|
||||
chmod u+w *.json && \
|
||||
gosu wekan:wekan meteor npm install && \
|
||||
gosu wekan:wekan /home/wekan/.meteor/meteor build --directory /home/wekan/app_build && \
|
||||
cd /home/wekan/app_build/bundle/programs/server/ && \
|
||||
chmod u+w *.json && \
|
||||
gosu wekan:wekan meteor npm install && \
|
||||
cd node_modules/fibers && \
|
||||
node build.js && \
|
||||
cd ../.. && \
|
||||
# Remove legacy webbroser bundle, so that Wekan works also at Android Firefox, iOS Safari, etc.
|
||||
rm -rf /home/wekan/app_build/bundle/programs/web.browser.legacy && \
|
||||
mv /home/wekan/app_build/bundle /build && \
|
||||
\
|
||||
# Put back the original tar
|
||||
mv $(which tar)~ $(which tar) && \
|
||||
\
|
||||
# Cleanup
|
||||
apt-get remove --purge -y ${BUILD_DEPS} && \
|
||||
apt-get autoremove -y && \
|
||||
npm uninstall -g api2html &&\
|
||||
rm -R /tmp/* && \
|
||||
rm -R /var/lib/apt/lists/* && \
|
||||
rm -R /home/wekan/.meteor && \
|
||||
rm -R /home/wekan/app && \
|
||||
rm -R /home/wekan/app_build && \
|
||||
mkdir /data && \
|
||||
chown wekan --recursive /data
|
||||
#cat /home/wekan/python/esprima-python/files.txt | xargs rm -R && \
|
||||
#rm -R /home/wekan/python
|
||||
#rm /home/wekan/install_meteor.sh
|
||||
# Install OS
|
||||
RUN <<EOR
|
||||
set -o xtrace
|
||||
|
||||
# Add non-root user wekan
|
||||
useradd --user-group --system --home-dir /home/wekan wekan
|
||||
# OS dependencies
|
||||
apt-get update --assume-yes
|
||||
apt-get install --assume-yes --no-install-recommends ${BUILD_DEPS}
|
||||
|
||||
# Meteor installer doesn't work with the default tar binary, so using bsdtar while installing.
|
||||
# https://github.com/coreos/bugs/issues/1095#issuecomment-350574389
|
||||
cp $(which tar) $(which tar)~
|
||||
ln -sf $(which bsdtar) $(which tar)
|
||||
|
||||
# Install NodeJS
|
||||
cd /tmp
|
||||
|
||||
# Download nodejs
|
||||
wget "https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz"
|
||||
wget "https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/SHASUMS256.txt"
|
||||
|
||||
# Verify nodejs authenticity
|
||||
grep "node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz" "SHASUMS256.txt" | shasum -a 256 -c -
|
||||
rm -f "SHASUMS256.txt"
|
||||
|
||||
# Install Node
|
||||
tar xzf "node-$NODE_VERSION-$ARCHITECTURE.tar.gz" -C /usr/local --strip-components=1 --no-same-owner
|
||||
rm "node-$NODE_VERSION-$ARCHITECTURE.tar.gz" "SHASUMS256.txt"
|
||||
ln -s "/usr/local/bin/node" "/usr/local/bin/nodejs"
|
||||
mkdir -p "/opt/nodejs/lib/node_modules/fibers/.node-gyp" "/root/.node-gyp/${NODE_VERSION} /home/wekan/.config"
|
||||
|
||||
# Install node dependencies
|
||||
npm install -g npm@${NPM_VERSION}
|
||||
chown --recursive wekan:wekan /home/wekan/.config
|
||||
|
||||
# Install Meteor
|
||||
cd /home/wekan
|
||||
chown --recursive wekan:wekan /home/wekan
|
||||
echo "Starting meteor ${METEOR_RELEASE} installation... \n"
|
||||
gosu wekan:wekan curl https://install.meteor.com/ | /bin/sh
|
||||
mv /root/.meteor /home/wekan/
|
||||
chown --recursive wekan:wekan /home/wekan/.meteor
|
||||
|
||||
sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' /home/wekan/app/packages/meteor-useraccounts-core/package.js
|
||||
cd /home/wekan/.meteor
|
||||
gosu wekan:wekan /home/wekan/.meteor/meteor -- help
|
||||
|
||||
# Build app (Production)
|
||||
cd /home/wekan/app
|
||||
mkdir -p /home/wekan/.npm
|
||||
chown --recursive wekan:wekan /home/wekan/.npm
|
||||
chmod u+w *.json
|
||||
gosu wekan:wekan meteor npm install
|
||||
gosu wekan:wekan /home/wekan/.meteor/meteor build --directory /home/wekan/app_build
|
||||
cd /home/wekan/app_build/bundle/programs/server/
|
||||
chmod u+w *.json
|
||||
gosu wekan:wekan meteor npm install
|
||||
cd node_modules/fibers
|
||||
node build.js
|
||||
cd ../..
|
||||
# Remove legacy webbroser bundle, so that Wekan works also at Android Firefox, iOS Safari, etc.
|
||||
rm -rf /home/wekan/app_build/bundle/programs/web.browser.legacy
|
||||
mv /home/wekan/app_build/bundle /build
|
||||
|
||||
# Put back the original tar
|
||||
mv $(which tar)~ $(which tar)
|
||||
|
||||
# Cleanup
|
||||
apt-get remove --purge --assume-yes ${BUILD_DEPS}
|
||||
npm uninstall -g api2html
|
||||
apt-get autoremove --assume-yes
|
||||
apt-get clean --assume-yes
|
||||
rm -Rf /tmp/*
|
||||
rm -Rf /var/lib/apt/lists/*
|
||||
rm -Rf /var/cache/apt
|
||||
rm -Rf /var/lib/apt/lists
|
||||
rm -Rf /home/wekan/app_build
|
||||
rm -Rf /home/wekan/app
|
||||
rm -Rf /home/wekan/.meteor
|
||||
|
||||
mkdir /data
|
||||
chown wekan --recursive /data
|
||||
EOR
|
||||
|
||||
USER wekan
|
||||
|
||||
ENV PORT=8080
|
||||
EXPOSE $PORT
|
||||
USER wekan
|
||||
|
||||
STOPSIGNAL SIGKILL
|
||||
WORKDIR /home/wekan/app
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# https://github.com/wekan/wekan/issues/3585#issuecomment-1021522132
|
||||
@@ -279,6 +271,5 @@ STOPSIGNAL SIGKILL
|
||||
#---------------------------------------------------------------------
|
||||
#
|
||||
# CMD ["node", "/build/main.js"]
|
||||
|
||||
#CMD ["bash", "-c", "ulimit -s 65500; exec node --stack-size=65500 /build/main.js"]
|
||||
# CMD ["bash", "-c", "ulimit -s 65500; exec node --stack-size=65500 /build/main.js"]
|
||||
CMD ["bash", "-c", "ulimit -s 65500; exec node /build/main.js"]
|
||||
@@ -12,7 +12,7 @@ https://wekan.github.io / Install WeKan ® Server
|
||||
- [Quay](https://quay.io/repository/wekan/wekan)
|
||||
- [Docker Hub](https://hub.docker.com/r/wekanteam/wekan)
|
||||
|
||||
docker-compose.yml at https://github.com/wekan/wekan
|
||||
docker-compose.yml at https://github.com/wekan/wekan/blob/main/docker-compose.yml
|
||||
|
||||
## Standards
|
||||
|
||||
@@ -29,7 +29,7 @@ docker-compose.yml at https://github.com/wekan/wekan
|
||||
|
||||
## [Translate WeKan ® at Transifex](https://app.transifex.com/wekan/)
|
||||
|
||||
Translations to non-English languages are accepted only at [Transifex](https://app.transifex.com/wekan/) using webbrowser.
|
||||
Translations to non-English languages are accepted only at [Transifex](https://app.transifex.com/wekan/wekan) using webbrowser.
|
||||
New English strings of new features can be added as PRs to master branch file wekan/imports/i18n/data/en.i18n.json .
|
||||
|
||||
## [WeKan ® feature requests and bugs](https://github.com/wekan/wekan/issues)
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
|
||||
appVersion: "v7.40.0"
|
||||
appVersion: "v7.48.0"
|
||||
files:
|
||||
userUploads:
|
||||
- README.md
|
||||
|
||||
@@ -242,5 +242,3 @@ template(name="activity")
|
||||
= ' @'
|
||||
else if(currentData.timeValue)
|
||||
| {{_ activity.activityType currentData.timeValue}}
|
||||
|
||||
span(title=activity.createdAt).activity-meta {{ moment activity.createdAt }}
|
||||
@@ -1690,6 +1690,11 @@
|
||||
padding: 4px;
|
||||
font-size: 14px;
|
||||
}
|
||||
@media screen and (max-width: 800px) {
|
||||
.board-color-moderndark#header-quick-access {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
.board-color-moderndark#header-quick-access .allBoards {
|
||||
padding: 5px 10px 0 10px;
|
||||
}
|
||||
@@ -1786,6 +1791,10 @@
|
||||
@media screen and (max-width: 800px) {
|
||||
.board-color-moderndark .list-header .list-header-name {
|
||||
line-height: 40px;
|
||||
padding-top: 10px;
|
||||
}
|
||||
.board-color-moderndark .list-header-black, .board-color-moderndark .mini-list {
|
||||
border-bottom: 0;
|
||||
}
|
||||
}
|
||||
@media screen and (min-width: 801px) {
|
||||
@@ -1797,7 +1806,6 @@
|
||||
}
|
||||
}
|
||||
.board-color-moderndark .list-header .list-header-menu {
|
||||
padding: 10px;
|
||||
top: 0;
|
||||
}
|
||||
.board-color-moderndark .list-header .list-header-plus-top {
|
||||
@@ -1894,17 +1902,20 @@
|
||||
}
|
||||
@media screen and (max-width: 800px) {
|
||||
.board-color-moderndark .card-details {
|
||||
width: 98%;
|
||||
width: 94%;
|
||||
}
|
||||
.card-details-popup {
|
||||
padding: 0px;
|
||||
.board-color-moderndark .card-details-popup {
|
||||
padding: 0;
|
||||
}
|
||||
.card-details-left, .card-details-right {
|
||||
padding: 0px 10px;
|
||||
.board-color-moderndark .card-details-left, .board-color-moderndark .card-details-right {
|
||||
padding: 0px 20px;
|
||||
}
|
||||
.card-details .card-details-header .card-details-menu-mobile-web {
|
||||
.board-color-moderndark .card-details .card-details-header .card-details-menu-mobile-web {
|
||||
margin-right: 0;
|
||||
}
|
||||
.board-color-moderndark .pop-over > .content-wrapper > .popup-container-depth-0 > .content {
|
||||
width: calc(100% - 20px);
|
||||
}
|
||||
}
|
||||
@media screen and (min-width: 801px) {
|
||||
.board-color-moderndark .card-details {
|
||||
|
||||
@@ -12,8 +12,9 @@ template(name="boardHeaderBar")
|
||||
if currentBoard
|
||||
if currentUser
|
||||
with currentBoard
|
||||
a.board-header-btn(class="{{#if currentUser.isBoardAdmin}}js-edit-board-title{{else}}is-disabled{{/if}}" title="{{_ 'edit'}}" value=title)
|
||||
i.fa.fa-pencil-square-o
|
||||
if currentUser.isBoardAdmin
|
||||
a.board-header-btn(class="{{#if currentUser.isBoardAdmin}}js-edit-board-title{{else}}is-disabled{{/if}}" title="{{_ 'edit'}}" value=title)
|
||||
i.fa.fa-pencil-square-o
|
||||
|
||||
a.board-header-btn.js-star-board(class="{{#if isStarred}}is-active{{/if}}"
|
||||
title="{{#if isStarred}}{{_ 'click-to-unstar'}}{{else}}{{_ 'click-to-star'}}{{/if}} {{_ 'starred-boards-description'}}")
|
||||
|
||||
@@ -525,8 +525,8 @@ template(name="cardDetails")
|
||||
a.fa.fa-times-thin.js-close-inlined-form
|
||||
else
|
||||
if currentBoard.allowsDescriptionText
|
||||
a.js-open-inlined-form.right(title="{{_ 'edit'}}" value=title)
|
||||
i.fa.fa-pencil-square-o
|
||||
a.js-open-inlined-form(title="{{_ 'edit'}}" value=title)
|
||||
i.fa.fa-plus
|
||||
if getDescription
|
||||
+viewer
|
||||
= getDescription
|
||||
|
||||
@@ -37,5 +37,4 @@ template(name="cardLabelsPopup")
|
||||
= name
|
||||
if(isLabelSelected ../_id)
|
||||
i.card-label-selectable-icon.fa.fa-check
|
||||
if currentUser.isBoardAdmin
|
||||
a.quiet-button.full.js-add-label {{_ 'label-create'}}
|
||||
a.quiet-button.full.js-add-label {{_ 'label-create'}}
|
||||
@@ -7,7 +7,7 @@
|
||||
border-left: 1px solid #ccc;
|
||||
padding: 0;
|
||||
float: left;
|
||||
min-width: 100px; /* TODO(mark-i-m): hardcoded? */
|
||||
/* min-width: 100px; TODO(mark-i-m): hardcoded? */
|
||||
/*max-width: 270px;*/
|
||||
/* Reverted incomplete change list width: */
|
||||
/* https://github.com/wekan/wekan/issues/4558 */
|
||||
@@ -81,6 +81,20 @@
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
.list-rotated {
|
||||
width: 10px;
|
||||
height: 250px;
|
||||
margin-top: -90px;
|
||||
margin-left: -110px;
|
||||
margin-right: 0;
|
||||
transform: rotate(90deg);
|
||||
position: relative;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.list-header .list-rotated {
|
||||
|
||||
}
|
||||
.list-header .list-header-watch-icon {
|
||||
padding-left: 10px;
|
||||
@@ -99,6 +113,23 @@
|
||||
color: #a6a6a6;
|
||||
margin-right: 15px;
|
||||
}
|
||||
.list-header .list-header-collapse-right {
|
||||
color: #a6a6a6;
|
||||
}
|
||||
.list-header .list-header-collapse-left {
|
||||
color: #a6a6a6;
|
||||
margin-right: 15px;
|
||||
}
|
||||
.list-header .list-header-uncollapse-left {
|
||||
color: #a6a6a6;
|
||||
}
|
||||
.list-header .list-header-uncollapse-right {
|
||||
color: #a6a6a6;
|
||||
}
|
||||
.list-header .list-header-collapse {
|
||||
color: #a6a6a6;
|
||||
margin-right: 15px;
|
||||
}
|
||||
.list-header .highlight {
|
||||
color: #ce1414;
|
||||
}
|
||||
@@ -297,7 +328,6 @@
|
||||
}
|
||||
.list-header-white {
|
||||
border-bottom: 6px solid #fff;
|
||||
border: 1px solid #eee;
|
||||
}
|
||||
.list-header-green {
|
||||
border-bottom: 6px solid #3cb500;
|
||||
@@ -330,7 +360,7 @@
|
||||
border-bottom: 6px solid #51e898;
|
||||
}
|
||||
.list-header-silver {
|
||||
border-bottom: 6px solid unset;
|
||||
border-bottom: 6px solid #e4e4e4;
|
||||
}
|
||||
.list-header-peachpuff {
|
||||
border-bottom: 6px solid #ffdab9;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
template(name='list')
|
||||
.list.js-list(id="js-list-{{_id}}"
|
||||
style="width:{{listWidth}}px;")
|
||||
style="{{#unless collapsed}}width:{{listWidth}}px;{{/unless}}"
|
||||
class="{{#if collapsed}}list-collapsed{{/if}}")
|
||||
+listHeader
|
||||
+listBody
|
||||
|
||||
|
||||
@@ -1,37 +1,38 @@
|
||||
template(name="listBody")
|
||||
.list-body
|
||||
.minicards.clearfix.js-minicards(class="{{#if reachedWipLimit}}js-list-full{{/if}}")
|
||||
if cards.length
|
||||
+inlinedForm(autoclose=false position="top")
|
||||
+addCardForm(listId=_id position="top")
|
||||
ul.sidebar-list
|
||||
each customFieldsSum
|
||||
li
|
||||
+viewer
|
||||
= name
|
||||
if $eq customFieldsSum.type "number"
|
||||
unless collapsed
|
||||
.list-body
|
||||
.minicards.clearfix.js-minicards(class="{{#if reachedWipLimit}}js-list-full{{/if}}")
|
||||
if cards.length
|
||||
+inlinedForm(autoclose=false position="top")
|
||||
+addCardForm(listId=_id position="top")
|
||||
ul.sidebar-list
|
||||
each customFieldsSum
|
||||
li
|
||||
+viewer
|
||||
= value
|
||||
if $eq customFieldsSum.type "currency"
|
||||
+viewer
|
||||
= formattedCurrencyCustomFieldValue(value)
|
||||
each (cardsWithLimit (idOrNull ../../_id))
|
||||
a.minicard-wrapper.js-minicard(href=originRelativeUrl
|
||||
class="{{#if cardIsSelected}}is-selected{{/if}}"
|
||||
class="{{#if MultiSelection.isSelected _id}}is-checked{{/if}}")
|
||||
if MultiSelection.isActive
|
||||
.materialCheckBox.multi-selection-checkbox.js-toggle-multi-selection(
|
||||
class="{{#if MultiSelection.isSelected _id}}is-checked{{/if}}")
|
||||
+minicard(this)
|
||||
if (showSpinner (idOrNull ../../_id))
|
||||
+spinnerList
|
||||
= name
|
||||
if $eq customFieldsSum.type "number"
|
||||
+viewer
|
||||
= value
|
||||
if $eq customFieldsSum.type "currency"
|
||||
+viewer
|
||||
= formattedCurrencyCustomFieldValue(value)
|
||||
each (cardsWithLimit (idOrNull ../../_id))
|
||||
a.minicard-wrapper.js-minicard(href=originRelativeUrl
|
||||
class="{{#if cardIsSelected}}is-selected{{/if}}"
|
||||
class="{{#if MultiSelection.isSelected _id}}is-checked{{/if}}")
|
||||
if MultiSelection.isActive
|
||||
.materialCheckBox.multi-selection-checkbox.js-toggle-multi-selection(
|
||||
class="{{#if MultiSelection.isSelected _id}}is-checked{{/if}}")
|
||||
+minicard(this)
|
||||
if (showSpinner (idOrNull ../../_id))
|
||||
+spinnerList
|
||||
|
||||
if canSeeAddCard
|
||||
+inlinedForm(autoclose=false position="bottom")
|
||||
+addCardForm(listId=_id position="bottom")
|
||||
else
|
||||
a.open-minicard-composer.js-card-composer.js-open-inlined-form(title="{{_ 'add-card-to-bottom-of-list'}}")
|
||||
i.fa.fa-plus
|
||||
if canSeeAddCard
|
||||
+inlinedForm(autoclose=false position="bottom")
|
||||
+addCardForm(listId=_id position="bottom")
|
||||
else
|
||||
a.open-minicard-composer.js-card-composer.js-open-inlined-form(title="{{_ 'add-card-to-bottom-of-list'}}")
|
||||
i.fa.fa-plus
|
||||
|
||||
template(name="spinnerList")
|
||||
.sk-spinner.sk-spinner-list(
|
||||
|
||||
@@ -5,22 +5,43 @@ template(name="listHeader")
|
||||
+inlinedForm
|
||||
+editListTitleForm
|
||||
else
|
||||
unless isMiniScreen
|
||||
if collapsed
|
||||
a.js-collapse(title="{{_ 'uncollapse'}}")
|
||||
i.fa.fa-arrow-left.list-header-uncollapse-left
|
||||
i.fa.fa-arrow-right.list-header-uncollapse-right
|
||||
if isMiniScreen
|
||||
if currentList
|
||||
a.list-header-left-icon.fa.fa-angle-left.js-unselect-list
|
||||
h2.list-header-name(
|
||||
title="{{ moment modifiedAt 'LLL' }}"
|
||||
class="{{#if currentUser.isBoardMember}}{{#unless currentUser.isCommentOnly}}{{#unless currentUser.isWorker}}js-open-inlined-form is-editable{{/unless}}{{/unless}}{{/if}}")
|
||||
+viewer
|
||||
= title
|
||||
if wipLimit.enabled
|
||||
| (
|
||||
span(class="{{#if exceededWipLimit}}highlight{{/if}}") {{cards.length}}
|
||||
|/#{wipLimit.value})
|
||||
|
||||
if showCardsCountForList cards.length
|
||||
span.cardCount {{cardsCount}} {{cardsCountForListIsOne cards.length}}
|
||||
|
||||
unless isMiniScreen
|
||||
if collapsed
|
||||
if showCardsCountForList cards.length
|
||||
br
|
||||
span.cardCount {{cardsCount}}
|
||||
if isMiniScreen
|
||||
h2.list-header-name(
|
||||
title="{{ moment modifiedAt 'LLL' }}"
|
||||
class="{{#if currentUser.isBoardMember}}{{#unless currentUser.isCommentOnly}}{{#unless currentUser.isWorker}}js-open-inlined-form is-editable{{/unless}}{{/unless}}{{/if}}")
|
||||
+viewer
|
||||
= title
|
||||
if wipLimit.enabled
|
||||
| (
|
||||
span(class="{{#if exceededWipLimit}}highlight{{/if}}") {{cards.length}}
|
||||
|/#{wipLimit.value})
|
||||
unless isMiniScreen
|
||||
div(class="{{#if collapsed}}list-rotated{{/if}}")
|
||||
h2.list-header-name(
|
||||
title="{{ moment modifiedAt 'LLL' }}"
|
||||
class="{{#if currentUser.isBoardMember}}{{#unless currentUser.isCommentOnly}}{{#unless currentUser.isWorker}}js-open-inlined-form is-editable{{/unless}}{{/unless}}{{/if}}")
|
||||
+viewer
|
||||
= title
|
||||
if wipLimit.enabled
|
||||
| (
|
||||
span(class="{{#if exceededWipLimit}}highlight{{/if}}") {{cards.length}}
|
||||
|/#{wipLimit.value})
|
||||
unless collapsed
|
||||
if showCardsCountForList cards.length
|
||||
span.cardCount {{cardsCount}} {{cardsCountForListIsOne cards.length}}
|
||||
if isMiniScreen
|
||||
if currentList
|
||||
if isWatching
|
||||
@@ -36,16 +57,20 @@ template(name="listHeader")
|
||||
else if currentUser.isBoardMember
|
||||
if isWatching
|
||||
i.list-header-watch-icon.fa.fa-eye
|
||||
div.list-header-menu
|
||||
unless currentUser.isCommentOnly
|
||||
//if isBoardAdmin
|
||||
// a.fa.js-list-star.list-header-plus-top(class="fa-star{{#unless starred}}-o{{/unless}}")
|
||||
if canSeeAddCard
|
||||
a.js-add-card.fa.fa-plus.list-header-plus-top(title="{{_ 'add-card-to-top-of-list'}}")
|
||||
a.fa.fa-navicon.js-open-list-menu(title="{{_ 'listActionPopup-title'}}")
|
||||
if currentUser.isBoardAdmin
|
||||
if isTouchScreenOrShowDesktopDragHandles
|
||||
a.list-header-handle.handle.fa.fa-arrows.js-list-handle
|
||||
unless collapsed
|
||||
div.list-header-menu
|
||||
unless currentUser.isCommentOnly
|
||||
//if isBoardAdmin
|
||||
// a.fa.js-list-star.list-header-plus-top(class="fa-star{{#unless starred}}-o{{/unless}}")
|
||||
if canSeeAddCard
|
||||
a.js-add-card.fa.fa-plus.list-header-plus-top(title="{{_ 'add-card-to-top-of-list'}}")
|
||||
a.js-collapse(title="{{_ 'collapse'}}")
|
||||
i.fa.fa-arrow-right.list-header-collapse-right
|
||||
i.fa.fa-arrow-left.list-header-collapse-left
|
||||
a.fa.fa-navicon.js-open-list-menu(title="{{_ 'listActionPopup-title'}}")
|
||||
if currentUser.isBoardAdmin
|
||||
if isTouchScreenOrShowDesktopDragHandles
|
||||
a.list-header-handle.handle.fa.fa-arrows.js-list-handle
|
||||
|
||||
template(name="editListTitleForm")
|
||||
.list-composer
|
||||
|
||||
@@ -31,6 +31,17 @@ BlazeComponent.extendComponent({
|
||||
return !status;
|
||||
}
|
||||
},
|
||||
collapsed(check = undefined) {
|
||||
const list = Template.currentData();
|
||||
const status = list.isCollapsed();
|
||||
if (check === undefined) {
|
||||
// just check
|
||||
return status;
|
||||
} else {
|
||||
list.collapse(!status);
|
||||
return !status;
|
||||
}
|
||||
},
|
||||
editTitle(event) {
|
||||
event.preventDefault();
|
||||
const newTitle = this.childComponents('inlinedForm')[0]
|
||||
@@ -104,6 +115,10 @@ BlazeComponent.extendComponent({
|
||||
event.preventDefault();
|
||||
this.starred(!this.starred());
|
||||
},
|
||||
'click .js-collapse'(event) {
|
||||
event.preventDefault();
|
||||
this.collapsed(!this.collapsed());
|
||||
},
|
||||
'click .js-open-list-menu': Popup.open('listAction'),
|
||||
'click .js-add-card.list-header-plus-top'(event) {
|
||||
const listDom = $(event.target).parents(
|
||||
|
||||
@@ -58,18 +58,20 @@ template(name="rulesReport")
|
||||
h1 {{_ 'rulesReportTitle'}}
|
||||
if resultsCount
|
||||
table
|
||||
tr
|
||||
th Rule Title
|
||||
th Board Title
|
||||
th actionType
|
||||
th activityType
|
||||
thead
|
||||
tr
|
||||
th Rule Title
|
||||
th Board Title
|
||||
th actionType
|
||||
th activityType
|
||||
|
||||
each rule in results
|
||||
tr
|
||||
td {{ rule.title }}
|
||||
td {{ rule.boardTitle }}
|
||||
td {{ rule.action.actionType }}
|
||||
td {{ rule.trigger.activityType }}
|
||||
tbody
|
||||
tr
|
||||
td {{ rule.title }}
|
||||
td {{ rule.boardTitle }}
|
||||
td {{ rule.action.actionType }}
|
||||
td {{ rule.trigger.activityType }}
|
||||
else
|
||||
div {{_ 'no-results' }}
|
||||
|
||||
@@ -77,22 +79,24 @@ template(name="filesReport")
|
||||
h1 {{_ 'filesReportTitle'}}
|
||||
if resultsCount
|
||||
table
|
||||
tr
|
||||
th Filename
|
||||
th.right Size (kB)
|
||||
th MIME Type
|
||||
th Attachment ID
|
||||
th Board ID
|
||||
th Card ID
|
||||
thead
|
||||
tr
|
||||
th Filename
|
||||
th.right Size (kB)
|
||||
th MIME Type
|
||||
th Attachment ID
|
||||
th Board ID
|
||||
th Card ID
|
||||
|
||||
each att in results
|
||||
tr
|
||||
td {{ att.name }}
|
||||
td.right {{ fileSize att.size }}
|
||||
td {{ att.type }}
|
||||
td {{ att._id }}
|
||||
td {{ att.meta.boardId }}
|
||||
td {{ att.meta.cardId }}
|
||||
tbody
|
||||
tr
|
||||
td {{ att.name }}
|
||||
td.right {{ fileSize att.size }}
|
||||
td {{ att.type }}
|
||||
td {{ att._id }}
|
||||
td {{ att.meta.boardId }}
|
||||
td {{ att.meta.cardId }}
|
||||
else
|
||||
div {{_ 'no-results' }}
|
||||
|
||||
@@ -100,22 +104,24 @@ template(name="cardsReport")
|
||||
h1 {{_ 'cardsReportTitle'}}
|
||||
if resultsCount
|
||||
table.table
|
||||
tr
|
||||
th Card Title
|
||||
th Board
|
||||
th Swimlane
|
||||
th List
|
||||
th Members
|
||||
th Assignees
|
||||
thead
|
||||
tr
|
||||
th Card Title
|
||||
th Board
|
||||
th Swimlane
|
||||
th List
|
||||
th Members
|
||||
th Assignees
|
||||
|
||||
each card in results
|
||||
tr
|
||||
td {{abbreviate card.title }}
|
||||
td {{abbreviate card.board.title }}
|
||||
td {{abbreviate card.swimlane.title }}
|
||||
td {{abbreviate card.list.title }}
|
||||
td {{userNames card.members }}
|
||||
td {{userNames card.assignees }}
|
||||
tbody
|
||||
tr
|
||||
td {{abbreviate card.title }}
|
||||
td {{abbreviate card.board.title }}
|
||||
td {{abbreviate card.swimlane.title }}
|
||||
td {{abbreviate card.list.title }}
|
||||
td {{userNames card.members }}
|
||||
td {{userNames card.assignees }}
|
||||
else
|
||||
div {{_ 'no-results' }}
|
||||
|
||||
@@ -123,22 +129,24 @@ template(name="boardsReport")
|
||||
h1 {{_ 'boardsReportTitle'}}
|
||||
if resultsCount
|
||||
table.table
|
||||
tr
|
||||
th Title
|
||||
th Id
|
||||
th Permission
|
||||
th Archived?
|
||||
th Members
|
||||
th Organizations
|
||||
th Teams
|
||||
thead
|
||||
tr
|
||||
th Title
|
||||
th Id
|
||||
th Permission
|
||||
th Archived?
|
||||
th Members
|
||||
th Organizations
|
||||
th Teams
|
||||
|
||||
each board in results
|
||||
tr
|
||||
td {{abbreviate board.title }}
|
||||
td {{abbreviate board._id }}
|
||||
td {{ board.permission }}
|
||||
td
|
||||
= yesOrNo(board.archived)
|
||||
td {{userNames board.members }}
|
||||
tbody
|
||||
tr
|
||||
td {{abbreviate board.title }}
|
||||
td {{abbreviate board._id }}
|
||||
td {{ board.permission }}
|
||||
td
|
||||
= yesOrNo(board.archived)
|
||||
td {{userNames board.members }}
|
||||
else
|
||||
div {{_ 'no-results' }}
|
||||
@@ -73,7 +73,7 @@ template(name="people")
|
||||
|
||||
template(name="orgGeneral")
|
||||
table
|
||||
tbody
|
||||
thead
|
||||
tr
|
||||
th {{_ 'displayName'}}
|
||||
th {{_ 'description'}}
|
||||
@@ -84,12 +84,14 @@ template(name="orgGeneral")
|
||||
th {{_ 'active'}}
|
||||
th
|
||||
+newOrgRow
|
||||
tbody
|
||||
tr
|
||||
each org in orgList
|
||||
+orgRow(orgId=org._id)
|
||||
|
||||
template(name="teamGeneral")
|
||||
table
|
||||
tbody
|
||||
thead
|
||||
tr
|
||||
th {{_ 'displayName'}}
|
||||
th {{_ 'description'}}
|
||||
@@ -99,6 +101,8 @@ template(name="teamGeneral")
|
||||
th {{_ 'active'}}
|
||||
th
|
||||
+newTeamRow
|
||||
tbody
|
||||
tr
|
||||
each team in teamList
|
||||
+teamRow(teamId=team._id)
|
||||
|
||||
@@ -106,7 +110,7 @@ template(name="peopleGeneral")
|
||||
#divAddOrRemoveTeamContainer
|
||||
+modifyTeamsUsers
|
||||
table
|
||||
tbody
|
||||
thead
|
||||
tr
|
||||
th
|
||||
+selectAllUser
|
||||
@@ -124,6 +128,8 @@ template(name="peopleGeneral")
|
||||
th {{_ 'teams'}}
|
||||
th
|
||||
+newUserRow
|
||||
tbody
|
||||
tr
|
||||
each user in peopleList
|
||||
+peopleRow(userId=user._id)
|
||||
|
||||
|
||||
@@ -7,11 +7,13 @@
|
||||
display: -moz-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
}
|
||||
.setting-content {
|
||||
color: #727479;
|
||||
background: #dedede;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
}
|
||||
.setting-content .content-title {
|
||||
@@ -56,6 +58,8 @@
|
||||
-moz-user-select: text;
|
||||
-ms-user-select: text;
|
||||
user-select: text;
|
||||
max-height: 100%;
|
||||
overflow: auto;
|
||||
}
|
||||
.setting-content .content-body .main-body ul li {
|
||||
padding: 0.5rem 0.5rem;
|
||||
|
||||
@@ -34,13 +34,14 @@ template(name="translation")
|
||||
|
||||
template(name="translationGeneral")
|
||||
table
|
||||
tbody
|
||||
thead
|
||||
tr
|
||||
th {{_ 'language'}}
|
||||
th {{_ 'text'}}
|
||||
th {{_ 'translation-text'}}
|
||||
th
|
||||
+newTranslationRow
|
||||
tbody
|
||||
each translation in translationList
|
||||
+translationRow(translationId=translation._id)
|
||||
|
||||
|
||||
@@ -24,9 +24,17 @@ template(name="swimlaneFixedHeader")
|
||||
| {{isTitleDefault title}}
|
||||
.swimlane-header-menu
|
||||
unless currentUser.isCommentOnly
|
||||
if currentUser.isBoardAdmin
|
||||
a.fa.fa-plus.js-open-add-swimlane-menu.swimlane-header-plus-icon(title="{{_ 'add-swimlane'}}")
|
||||
a.fa.fa-plus.js-open-add-swimlane-menu.swimlane-header-plus-icon(title="{{_ 'add-swimlane'}}")
|
||||
a.fa.fa-navicon.js-open-swimlane-menu(title="{{_ 'swimlaneActionPopup-title'}}")
|
||||
//// TODO: Collapse Swimlane: make button working, etc.
|
||||
//unless collapsed
|
||||
// a.js-collapse-swimlane(title="{{_ 'collapse'}}")
|
||||
// i.fa.fa-arrow-down.swimlane-header-collapse-down
|
||||
// i.fa.fa-arrow-up.swimlane-header-collapse-up
|
||||
//if collapsed
|
||||
// a.js-collapse-swimlane(title="{{_ 'uncollapse'}}")
|
||||
// i.fa.fa-arrow-up.swimlane-header-collapse-up
|
||||
// i.fa.fa-arrow-down.swimlane-header-collapse-down
|
||||
unless isTouchScreen
|
||||
if isShowDesktopDragHandles
|
||||
a.swimlane-header-handle.handle.fa.fa-arrows.js-swimlane-header-handle
|
||||
|
||||
@@ -18,10 +18,25 @@ BlazeComponent.extendComponent({
|
||||
swimlane.rename(newTitle.trim());
|
||||
}
|
||||
},
|
||||
collapsed(check = undefined) {
|
||||
const swimlane = Template.currentData();
|
||||
const status = swimlane.isCollapsed();
|
||||
if (check === undefined) {
|
||||
// just check
|
||||
return status;
|
||||
} else {
|
||||
swimlane.collapse(!status);
|
||||
return !status;
|
||||
}
|
||||
},
|
||||
|
||||
events() {
|
||||
return [
|
||||
{
|
||||
'click .js-collapse-swimlane'(event) {
|
||||
event.preventDefault();
|
||||
this.collapsed(!this.collapsed());
|
||||
},
|
||||
'click .js-open-swimlane-menu': Popup.open('swimlaneAction'),
|
||||
'click .js-open-add-swimlane-menu': Popup.open('swimlaneAdd'),
|
||||
submit: this.editTitle,
|
||||
|
||||
@@ -1,38 +1,3 @@
|
||||
/*
|
||||
// Minimize swimlanes start https://www.w3schools.com/howto/howto_js_accordion.asp
|
||||
|
||||
.accordion
|
||||
cursor: pointer
|
||||
width: 30px
|
||||
height: 20px
|
||||
border: none
|
||||
outline: none
|
||||
font-size: 18px
|
||||
transition: 0.4s
|
||||
padding-top: 0px
|
||||
margin-top: 0px
|
||||
|
||||
.accordion:after
|
||||
// Unicode triagle right:
|
||||
content: '\25B6'
|
||||
color: #777
|
||||
font-weight: bold
|
||||
float: left
|
||||
|
||||
.active:after
|
||||
// Unicode triangle down:
|
||||
content: '\25BC'
|
||||
|
||||
.panel
|
||||
width: 100%
|
||||
max-height: 0
|
||||
overflow: hidden
|
||||
transition: max-height 0.2s ease-out
|
||||
margin: 0px
|
||||
padding: 0px
|
||||
|
||||
// Minimize swimlanes end https://www.w3schools.com/howto/howto_js_accordion.asp
|
||||
*/
|
||||
@media screen and (min-width: 801px) {
|
||||
.swimlane.ui-sortable {
|
||||
width: max-content;
|
||||
@@ -46,7 +11,30 @@
|
||||
background: #dedede;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
overflow: 0;
|
||||
overflow: auto;
|
||||
max-height: 100%;
|
||||
}
|
||||
.swimlane-header-menu .swimlane-header-collapse-down {
|
||||
font-size: 50%;
|
||||
color: #a6a6a6;
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
left: 100px;
|
||||
}
|
||||
.swimlane-header-menu .swimlane-header-collapse-up {
|
||||
font-size: 50%;
|
||||
color: #a6a6a6;
|
||||
position: absolute;
|
||||
bottom: 5px;
|
||||
left: 100px;
|
||||
}
|
||||
.swimlane-header-menu .swimlane-header-uncollapse-up {
|
||||
font-size: 50%;
|
||||
color: #a6a6a6;
|
||||
}
|
||||
.swimlane-header-menu .swimlane-header-uncollapse-down {
|
||||
font-size: 50%;
|
||||
color: #a6a6a6;
|
||||
}
|
||||
.swimlane.placeholder {
|
||||
background-color: rgba(0,0,0,0.2);
|
||||
@@ -170,7 +158,7 @@
|
||||
color: #4d4d4d !important;
|
||||
}
|
||||
.swimlane-silver {
|
||||
background: unset !important;
|
||||
background: #ccc !important;
|
||||
color: #4d4d4d !important;
|
||||
}
|
||||
.swimlane-peachpuff {
|
||||
|
||||
@@ -46,8 +46,8 @@ template(name="listsGroup")
|
||||
|
||||
template(name="addListForm")
|
||||
unless currentUser.isWorker
|
||||
.list.list-composer.js-list-composer(class="{{#if isMiniScreen}}mini-list{{/if}}")
|
||||
if currentUser.isBoardAdmin
|
||||
unless currentUser.isCommentOnly
|
||||
.list.list-composer.js-list-composer(class="{{#if isMiniScreen}}mini-list{{/if}}")
|
||||
.list-header-add
|
||||
+inlinedForm(autoclose=false)
|
||||
input.list-name-input.full-line(type="text" placeholder="{{_ 'add-list'}}"
|
||||
|
||||
@@ -47,7 +47,7 @@ Blaze.registerHelper('isTouchScreenOrShowDesktopDragHandles', () =>
|
||||
Blaze.registerHelper('moment', (...args) => {
|
||||
args.pop(); // hash
|
||||
const [date, format] = args;
|
||||
return moment(date).format(format);
|
||||
return moment(date).format(format ?? 'LLLL');
|
||||
});
|
||||
|
||||
Blaze.registerHelper('canModifyCard', () =>
|
||||
|
||||
@@ -6,10 +6,11 @@ import moment from 'moment/min/moment-with-locales';
|
||||
function adjustedTimeFormat() {
|
||||
return moment
|
||||
.localeData()
|
||||
.longDateFormat('LT')
|
||||
.replace(/HH/i, 'H');
|
||||
.longDateFormat('LT');
|
||||
}
|
||||
|
||||
// .replace(/HH/i, 'H');
|
||||
|
||||
export class DatePicker extends BlazeComponent {
|
||||
template() {
|
||||
return 'datepicker';
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
version: '2'
|
||||
|
||||
# Note: Do not add single quotes '' to variables. Having spaces still works without quotes where required.
|
||||
#---------------------------------------------------------------------------------------------------------
|
||||
# ==== CREATING USERS AND LOGGING IN TO WEKAN ====
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
- https://www.sitepoint.com/javascript-async-await/
|
||||
- https://www.freecodecamp.org/news/javascript-async-await-tutorial-learn-callbacks-promises-async-await-by-making-icecream/
|
||||
- https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Asynchronous
|
||||
@@ -4,10 +4,12 @@
|
||||
|
||||
*Make sure you are running at least **v2.21***
|
||||
|
||||
### Snap install info, tested 2021-07-16
|
||||
### Redirect URL
|
||||
|
||||
[About AZURE-NEW-APP-CLIENT-ID and AZURE-NEW-APP-SECRET](https://community.microfocus.com/t5/Identity-Manager-Tips/Creating-the-application-Client-ID-and-Client-Secret-from/ta-p/1776619). The redirect URL is your Wekan root-url+_oauth/oidc like this: https://boards.example.com/_oauth/oidc
|
||||
|
||||
<img src="https://wekan.github.io/azure-redirect.png" width="100%" alt="Wekan logo" />
|
||||
|
||||
AZURE_DIRECTORY_ID = TENANT-NAME-FOR-YOUR-ORGANIZATION
|
||||
|
||||
### If Azure Active Directory login does not work
|
||||
|
||||
@@ -35,6 +35,13 @@ docker exec wekan-db mongorestore --drop --dir=/data/dump
|
||||
docker start wekan-app
|
||||
```
|
||||
# Upgrade Docker Wekan version
|
||||
|
||||
## Newest info
|
||||
|
||||
https://github.com/wekan/wekan/discussions/5367
|
||||
|
||||
## Old info
|
||||
|
||||
Note: Do not run `docker-compose down` without verifying your docker-compose file, it does not delete the data by default but caution is advised. Refer to https://docs.docker.com/compose/reference/down/.
|
||||
```bash
|
||||
docker-compose stop
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
## Change language for all users
|
||||
|
||||
Using MongoDB Shell with WeKan Snap Candidate, to change English date format to `DD/MM/YY`.
|
||||
|
||||
MongoDB Shell Download: https://www.mongodb.com/try/download/shell
|
||||
|
||||
language.sh:
|
||||
```
|
||||
mongosh --quiet \
|
||||
--host 127.0.0.1 \
|
||||
--port 27019 \
|
||||
--eval 'use wekan' \
|
||||
--eval 'db.users.updateMany({}, { $set: {"profile.language": "en-GB" }});'
|
||||
```
|
||||
Set script as executeable:
|
||||
```
|
||||
chmod +x language.sh
|
||||
```
|
||||
Running script, when 5 new users of total 20 users did not have language set correctly yet:
|
||||
```
|
||||
$ ./language.sh
|
||||
{
|
||||
acknowledged: true,
|
||||
insertedId: null,
|
||||
matchedCount: 20,
|
||||
modifiedCount: 5,
|
||||
upsertedCount: 0
|
||||
}
|
||||
```
|
||||
## Language browser settings
|
||||
|
||||
https://github.com/wekan/wekan/issues/4518#issuecomment-1133763518
|
||||
@@ -60,6 +60,34 @@ It's a very specific niche, with limited amount competitors, with all of this ap
|
||||
|
||||
[Wekan Team](https://wekan.team) is Wekan Commercial Support company run by CEO [xet7](https://github.com/xet7), current maintainer of Wekan. xet7 does respond to feedback at GitHub issues very actively, because Wekan is community driven Open Source project. Because conflicting opinions can not be implemented, sometimes xet7 has to behave like a benevolent dictator. Every Wekan team member is free to choose what to contribute and when. We can not force anybody to implement anything. Wekan development speed increases when new Wekan contributors join and start to send PRs to existing and new issues.
|
||||
|
||||
## What is Bio of xet7 ?
|
||||
|
||||
[Lauri Ojansivu](https://github.com/xet7) is CEO at [WeKan Team](https://wekan.team),
|
||||
Cross-Platform FOSS maintainer,
|
||||
Cloud Architect, Full-Stack Developer, SysAdmin and SysOp.
|
||||
He has experience of [having added and removed over 4 million lines of code](https://github.com/wekan/wekan/blob/main/releases/count-lines-of-code-per-committer.sh) to
|
||||
[Meteor Full-Stack Web Framework](https://www.meteor.com)
|
||||
based [WeKan Open Source kanban](https://wekan.github.io),
|
||||
that has been [translated to 70+ languages](https://explore.transifex.com/wekan/wekan/),
|
||||
and is currently used at [most countries of the world](https://snapcraft.io/wekan).
|
||||
At 2024-06-04, he is currently [4h most active GitHub committer at Finland](https://committers.top/finland).
|
||||
|
||||
He holds a BBA as computer designer and system engineer
|
||||
at Kemi-Tornio AMK, Finland.
|
||||
He is credited as having built quality control system
|
||||
with comparisons of groups and fitness test calculations,
|
||||
company infra, migration from On-Premises to Cloud,
|
||||
SLA support, IT support, [games](https://github.com/xet7/notegame), database apps, websites,
|
||||
[winner of 2th place at EU NGI ONTOCHAIN Hackathon](https://wekan.github.io/donated/ontochain-certificate.png),
|
||||
[winner of 20i FOSS Awards](https://wekan.github.io/donated/foss-awards-2022/20i_FOSS_Awards_Winners_Announced_(Press_Release).pdf), and [porting to 30+ CPU/OS](https://github.com/xet7/darkesthour).
|
||||
|
||||
At MeteorJS Dispatches Video Podcast, he has been
|
||||
interviewed [about WeKan](https://www.youtube.com/watch?v=ke-mbnZM3zE&t=1342s),
|
||||
[Meteor Security](https://www.youtube.com/watch?v=zic-h8jG6F8), and other topics.
|
||||
He teaches using computers at local nerd club.
|
||||
At his free time, he is porting FOSS software to many CPU/OS,
|
||||
and [translating them from English to Finnish](https://xet7.org).
|
||||
|
||||
## How to convince my company management that Wekan "is less evil" than Trello?
|
||||
|
||||
Yes, xet7 received this question in Email.
|
||||
|
||||
File renamed without changes.
@@ -1,14 +1,17 @@
|
||||
# Newest Windows info here
|
||||
|
||||
https://github.com/wekan/wekan/wiki/Offline
|
||||
|
||||
## OLD INFO BELOW, DOES NOT WORK
|
||||
|
||||
Also see: [Excel and VBA](Excel-and-VBA)
|
||||
|
||||
|
||||
# THIS WORKS
|
||||
a) Lowest resource usage: [Windows Subsystem for Linux, build from source](https://github.com/wekan/wekan/issues/2066#issuecomment-468328001)
|
||||
|
||||
b) Docker for Windows, [prebuilt without --build option, or build from source](https://github.com/wekan/wekan-dev/issues/12#issuecomment-468657290)
|
||||
|
||||
***
|
||||
|
||||
# OLD INFO BELOW, DOES NOT WORK
|
||||
|
||||
### Source install required dependencies
|
||||
|
||||
|
||||
@@ -12,31 +12,31 @@
|
||||
|
||||
**Purpose**: Install latest Wekan release on [Uberspace](https://uberspace.de/) 6 and run as [daemontools](https://cr.yp.to/daemontools/faq/create.html) service in local userspace.
|
||||
|
||||
This script installs Wekan on a fresh Uberspace 6. It setup Node 4, MongoDB, a Port, installs Wekan and starts it as a service. It's tested with Wekan versions 0.32 and 0.63.
|
||||
This script installs Wekan on a fresh Uberspace 6. It setup Node 4, MongoDB, a Port, installs Wekan and starts it as a service. It's tested with Wekan versions 0.32 and 0.63.
|
||||
|
||||
You have two Options to use it.
|
||||
|
||||
# Option 1:
|
||||
You can run the commands of the following script step-by-step in the shell.
|
||||
You can run the commands of the following script step-by-step in the shell.
|
||||
|
||||
At first step set the SMTP-Password variable. Replace the `$1` with the password in that way `SMTP_PASS="smtp_password"` and continue line-by-line.
|
||||
|
||||
# Option 2:
|
||||
Or you can run it automatically.
|
||||
* Save it as script in file `install_wekan.sh`
|
||||
* Make it executable `chmod +x install_wekan.sh`
|
||||
* And run it. Pass the SMTP-Password as command line parameter `./install_wekan.sh smtp_password`.
|
||||
* Make it executable `chmod +x install_wekan.sh`
|
||||
* And run it. Pass the SMTP-Password as command line parameter `./install_wekan.sh smtp_password`.
|
||||
|
||||
## ./install_wekan.sh
|
||||
```
|
||||
#!/bin/sh
|
||||
##
|
||||
##
|
||||
## Usage: ./install_wekan.sh SMTP-password
|
||||
##
|
||||
## Draft
|
||||
## Install Wekan (v0.63) on Uberspace 6 by Noodle / Chris
|
||||
##
|
||||
## Sources:
|
||||
##
|
||||
## Sources:
|
||||
## https://github.com/wekan/wekan/wiki/Install-and-Update#manual-installation-steps
|
||||
## https://wiki.uberspace.de/database:mongodb
|
||||
## https://wiki.uberspace.de/development:nodejs
|
||||
@@ -71,8 +71,8 @@ test -d ~/service || uberspace-setup-svscan
|
||||
TEMPMDB="$(uberspace-setup-mongodb)"
|
||||
|
||||
MONGO_USER="${USER}_mongoadmin"
|
||||
MONGO_PORT="$(echo ${TEMPMDB} | egrep -o 'm#:\s[0-9]{5}\sUs' | cut -d' ' -f 2)"
|
||||
MONGO_PASS="$(echo ${TEMPMDB} | egrep -o 'rd:\s.+\sTo\sconn' | cut -d' ' -f 2)"
|
||||
MONGO_PORT="$(echo ${TEMPMDB} | grep -E -o 'm#:\s[0-9]{5}\sUs' | cut -d' ' -f 2)"
|
||||
MONGO_PASS="$(echo ${TEMPMDB} | grep -E -o 'rd:\s.+\sTo\sconn' | cut -d' ' -f 2)"
|
||||
|
||||
echo -e "MONGO_USER: ${MONGO_USER} \nMONGO_PORT: ${MONGO_PORT} \nMONGO_PASS: ${MONGO_PASS}"
|
||||
|
||||
@@ -81,7 +81,7 @@ echo -e "MONGO_USER: ${MONGO_USER} \nMONGO_PORT: ${MONGO_PORT} \nMONGO_PASS: ${M
|
||||
### Setup Websocket Port ###
|
||||
############################
|
||||
|
||||
export FREE_PORT="$(uberspace-add-port --protocol tcp --firewall | egrep -o '[0-9]{5}')"
|
||||
export FREE_PORT="$(uberspace-add-port --protocol tcp --firewall | grep -E -o '[0-9]{5}')"
|
||||
|
||||
echo "FREE_PORT: ${FREE_PORT}"
|
||||
|
||||
@@ -162,14 +162,14 @@ More about [daemontools](https://cr.yp.to/daemontools/faq/create.html).
|
||||
|
||||
# Uninstall Wekan
|
||||
To remove Wekan from your uberspace you have to do the following steps.
|
||||
* Stop and remove the service.
|
||||
* Stop and remove the service.
|
||||
`uberspace-remove-service -s wekan`
|
||||
* Remove the complete data.
|
||||
* Remove the complete data.
|
||||
```
|
||||
mongo admin --port $MONGO_PORT -u $MONGO_USER -p $MONGO_PASS
|
||||
use wekan
|
||||
db.dropDatabase()
|
||||
exit
|
||||
```
|
||||
* Remove the installation.
|
||||
`rm -Rf ~/wekan/ ~/etc/wekan-*`
|
||||
* Remove the installation.
|
||||
`rm -Rf ~/wekan/ ~/etc/wekan-*`
|
||||
@@ -1,4 +1,4 @@
|
||||
Also: [Hall of Shame: Fake companies](https://github.com/wekan/wekan/wiki/Hall-of-Shame:-Fake-companies)
|
||||
Also: [Hall of Shame: Fake companies](https://github.com/wekan/wekan/wiki/Hall-of-Shame)
|
||||
|
||||
## These are NOT in any way related to WeKan
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
- [More RocketChat fixes here](https://github.com/wekan/wekan/wiki/RocketChat)
|
||||
- [OAuth2 small bug](https://github.com/wekan/wekan/issues/1874) - currently OAuth2 works mostly
|
||||
|
||||
# OAuth2 providers
|
||||
@@ -41,6 +42,7 @@ The redirect URL is described in the wekan wiki: https://wekan.example.com/_oaut
|
||||
|
||||
## Rocket.Chat providing OAuth2 login to Wekan
|
||||
|
||||
- [More RocketChat fixes here](https://github.com/wekan/wekan/wiki/RocketChat)
|
||||
- [RocketChat Skip Install Registration Wizard Fix](https://github.com/RocketChat/Rocket.Chat/issues/31163#issuecomment-1848364117)
|
||||
|
||||
> So for someone using snap, it means creating a file `/var/snap/rocketchat-server/common/override-setup-wizard.env ` (the name of the file itself could be anything as long as it has an .env extension) and setting its content to `OVERWRITE_SETTING_Show_Setup_Wizard=completed`
|
||||
|
||||
+27
-28
@@ -2,50 +2,30 @@ Also see: [Windows](Windows)
|
||||
|
||||
[Other CPU/OS On-Premise WeKan install](https://github.com/wekan/wekan/wiki/Raspberry-Pi)
|
||||
|
||||
## Newest Docker WeKan Offline
|
||||
|
||||
This works now.
|
||||
|
||||
At Internet connected computer, download:
|
||||
|
||||
1. Docker for Windows
|
||||
2. docker-compose.yml from https://github.com/wekan/wekan
|
||||
3. `docker-compose up -d` at Internet connected computer
|
||||
4. Save wekan-app and wekan-db containers to files https://docs.docker.com/engine/reference/commandline/save/
|
||||
|
||||
At Offline Windows computer:
|
||||
|
||||
1. Install Docker for Windows
|
||||
2. Load `wekan-app` container from file https://docs.docker.com/engine/reference/commandline/load/
|
||||
3. Check what is ID of `wekan-app` container with `docker images`
|
||||
4. Change at `docker-compose.yml` wekan-app contaier `image:gc....` to `image:ID` where ID from step 3 above
|
||||
5. Do steps 2-4 also for `wekan-db` container
|
||||
6. `docker-compose up -d`
|
||||
|
||||
## Wekan Windows 64bit version On-Premise
|
||||
|
||||
This does not work yet.
|
||||
This is without container (without Docker or Snap).
|
||||
|
||||
Right click and download files 1-4:
|
||||
|
||||
1. [wekan-7.18-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.18/wekan-7.18-amd64-windows.zip)
|
||||
1. [wekan-7.47-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.47/wekan-7.47-amd64-windows.zip)
|
||||
|
||||
2. [node-v14.21.4-win-x64.exe](https://github.com/wekan/node-v14-esm/releases/download/v14.21.4/node-v14.21.4-win-x64.exe)
|
||||
2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe)
|
||||
|
||||
3. [mongodb-windows-x86_64-6.0.11-signed.msi](https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.11-signed.msi)
|
||||
3. [mongodb-windows-x86_64-6.0.15-signed.msi](https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.15-signed.msi)
|
||||
|
||||
4. [start-wekan.bat](https://raw.githubusercontent.com/wekan/wekan/main/start-wekan.bat)
|
||||
|
||||
5. Copy files from steps 1-4 with USB stick or DVD to offline Windows computer
|
||||
|
||||
6. Double click `mongodb-windows-x86_64-6.0.11-signed.msi` . In installer, uncheck downloading MongoDB compass.
|
||||
6. Double click `mongodb-windows-x86_64-6.0.15-signed.msi` . In installer, uncheck downloading MongoDB compass.
|
||||
|
||||
7. Unzip `wekan-7.18-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files:
|
||||
7. Unzip `wekan-7.47-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files:
|
||||
|
||||
```
|
||||
bundle (directory)
|
||||
|_ start-wekan.bat (downloaded file)
|
||||
|_ node-v14.21.4-win-x64.exe (downloaded file)
|
||||
|_ node.exe (downloaded file)
|
||||
|_ main.js (extracted file)
|
||||
```
|
||||
8. Edit `start-wekan.bat` with Notepad. There add [Windows computer IP address](https://support.microsoft.com/en-us/windows/find-your-ip-address-in-windows-f21a9bbc-c582-55cd-35e0-73431160a1b9) , like this, then Wekan will be at http://IP-ADDRESS-HERE/sign-in , for example http://192.168.0.100/sign-in but your different IP address. Add there wekan server computer IP address, not localhost. `node.exe main.js` is at bottom of `start-wekan.bat`, change there longer filename:
|
||||
@@ -54,7 +34,7 @@ SET ROOT_URL=http://IP-ADDRESS-HERE
|
||||
|
||||
SET PORT=80
|
||||
|
||||
node-v14.21.4-win-x64.exe main.js
|
||||
node.exe main.js
|
||||
```
|
||||
If there is already some webserver at port 80, change to other port:
|
||||
```
|
||||
@@ -75,6 +55,25 @@ RELATED INFO:
|
||||
- Windows 2022 server example https://github.com/wekan/wekan/issues/5084
|
||||
- Other settings example https://github.com/wekan/wekan/issues/4932
|
||||
|
||||
## Docker WeKan Offline
|
||||
|
||||
|
||||
At Internet connected computer, download:
|
||||
|
||||
1. Docker for Windows
|
||||
2. docker-compose.yml from https://github.com/wekan/wekan
|
||||
3. `docker-compose up -d` at Internet connected computer
|
||||
4. Save wekan-app and wekan-db containers to files https://docs.docker.com/engine/reference/commandline/save/
|
||||
|
||||
At Offline Windows computer:
|
||||
|
||||
1. Install Docker for Windows
|
||||
2. Load `wekan-app` container from file https://docs.docker.com/engine/reference/commandline/load/
|
||||
3. Check what is ID of `wekan-app` container with `docker images`
|
||||
4. Change at `docker-compose.yml` wekan-app contaier `image:gc....` to `image:ID` where ID from step 3 above
|
||||
5. Do steps 2-4 also for `wekan-db` container
|
||||
6. `docker-compose up -d`
|
||||
|
||||
## WeKan Updates
|
||||
|
||||
1. Updating only WeKan. Not updating Node.js and MongoDB.
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
Info for Self-Hosted RocketChat Community Server, using RocketChat server Snap from https://snapcraft.io/rocketchat-server
|
||||
|
||||
## Install snapd
|
||||
|
||||
Linux:
|
||||
|
||||
https://snapcraft.io/docs/installing-snapd
|
||||
|
||||
Windows:
|
||||
|
||||
https://github.com/wekan/hx/tree/main/prototypes/ui/gambas#install-on-windows
|
||||
|
||||
## Install RocketChat Snap
|
||||
|
||||
```
|
||||
sudo snap install rocketchat-server
|
||||
```
|
||||
|
||||
## Setup siteurl
|
||||
|
||||
List current Snap settings:
|
||||
```
|
||||
sudo snap get rocketchat-server
|
||||
```
|
||||
Then set your siteurl of your RocketChat server:
|
||||
```
|
||||
sudo snap set rocketchat-server siteurl='https://chat.yourcompany.com'
|
||||
```
|
||||
|
||||
## RocketChat Skip Install Registration Wizard Fix
|
||||
|
||||
Q:
|
||||
|
||||
- [RocketChat Skip Install Registration Wizard Fix](https://github.com/RocketChat/Rocket.Chat/issues/31163#issuecomment-1848364117)
|
||||
|
||||
|
||||
A:
|
||||
|
||||
For someone using snap, it means creating a file `/var/snap/rocketchat-server/common/override-setup-wizard.env ` (the name of the file itself could be anything as long as it has an .env extension) and setting its content to `OVERWRITE_SETTING_Show_Setup_Wizard=completed`
|
||||
|
||||
Then, restarting the server by `systemctl restart snap.rocketchat-server.rocketchat-server.service`
|
||||
|
||||
If it does not work yet, then reboot.
|
||||
|
||||
## Workspace version unsupported
|
||||
|
||||
Q:
|
||||
|
||||
- [Workspace version unsupported, Self-Host Community Server](https://forums.rocket.chat/t/workspace-version-unsupported-self-host-community-server/19698)
|
||||
|
||||
A:
|
||||
|
||||
1) Change to newest Snap Stable channel, list at https://snapcraft.io/rocketchat-server dropdown menu
|
||||
|
||||
```
|
||||
sudo snap refresh rocketchat-server --channel=6.x/stable --amend
|
||||
```
|
||||
|
||||
2) Register your Self-Managed instance here, so login and mobile app start to work after that:
|
||||
|
||||
- https://cloud.rocket.chat/home
|
||||
- https://chat.yourcompany.com/admin/subscription
|
||||
|
||||
## More RocketChat Snap related info
|
||||
|
||||
https://github.com/wekan/wekan/wiki/OAuth2
|
||||
|
||||
https://docs.rocket.chat/deploy/deploy-rocket.chat/deploy-with-snaps
|
||||
@@ -6,7 +6,7 @@
|
||||
* [Meteor WeKan Roadmap](https://boards.wekan.team/b/D2SzJKZDS4Z48yeQH/wekan-open-source-kanban-board-with-mit-license) - board at Wekan demo
|
||||
* [Multiverse WeKan Roadmap](https://github.com/wekan/wekan/wiki/WeKan-Multiverse-Roadmap)
|
||||
* [Docs/Manual](https://github.com/wekan/wekan/discussions/4522)
|
||||
* [Change Language](https://github.com/wekan/wekan/issues/4518#issuecomment-1133763518)
|
||||
* [Change Language](Change-Language)
|
||||
* [Forgot Password](Forgot-Password)
|
||||
* [About](https://github.com/wekan/wekan/wiki)
|
||||
* [Test Edge](Test-Edge)
|
||||
|
||||
+1
-1
@@ -2,4 +2,4 @@
|
||||
# Recursive find/replace.
|
||||
# Syntax: ./find-replace.sh searchtext replacetext
|
||||
|
||||
egrep -lRZ '$1' . | xargs -0 -l sed -i -e 's/$1/$2/g'
|
||||
grep -E -lRZ '$1' . | xargs -0 -l sed -i -e 's/$1/$2/g'
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "انهيار",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Събери",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Contraure",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Sbalit",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Sbalit",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Vis et minikort",
|
||||
"show-checklist-at-minicard": "Vis tjekliste på minikort",
|
||||
"show-subtasks-field": "Vis felt med underopgaver",
|
||||
"convert-to-markdown": "Konvertér til markdown"
|
||||
"convert-to-markdown": "Konvertér til markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Sammenfold",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Einklappen",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Einklappen",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Zeige auf Minikarte",
|
||||
"show-checklist-at-minicard": "Checkliste auf Minikarte anzeigen",
|
||||
"show-subtasks-field": "Teilaufgaben Feld anzeigen",
|
||||
"convert-to-markdown": "Als Markdown konvertieren"
|
||||
"convert-to-markdown": "Als Markdown konvertieren",
|
||||
"import-board-zip": "Erstelle .zip Datei, die Board JSON Dateien und Board Unterverzeichnisse mit Boardname inklusive Anhängen enthält",
|
||||
"collapse": "Einklappen",
|
||||
"uncollapse": "Aufklappen"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Zeige auf Minikarte",
|
||||
"show-checklist-at-minicard": "Checkliste auf Minikarte anzeigen",
|
||||
"show-subtasks-field": "Teilaufgaben Feld anzeigen",
|
||||
"convert-to-markdown": "Als Markdown konvertieren"
|
||||
"convert-to-markdown": "Als Markdown konvertieren",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Einklappen",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Σύμπτυξη",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Σύμπτυξη",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Contraer",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Contraer",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Contraer",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Kokkupõrge",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"accept": "Onartu",
|
||||
"accept": "Ados",
|
||||
"act-activity-notify": "Jardueraren jakinarazpena",
|
||||
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
@@ -578,7 +578,7 @@
|
||||
"shortcut-clear-filters": "Garbitu iragazki guztiak",
|
||||
"shortcut-close-dialog": "Itxi elkarrizketa-koadroa",
|
||||
"shortcut-filter-my-cards": "Iragazi nire txartelak",
|
||||
"shortcut-filter-my-assigned-cards": "Filter my assigned cards",
|
||||
"shortcut-filter-my-assigned-cards": "Iragazi esleitutako txartelak",
|
||||
"shortcut-show-shortcuts": "Erakutsi lasterbideen zerrenda hau",
|
||||
"shortcut-toggle-filterbar": "Txandakatu iragazkiaren albo-barra",
|
||||
"shortcut-toggle-searchbar": "Toggle Search Sidebar",
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Erakutsi minitxartelean",
|
||||
"show-checklist-at-minicard": "Erakutsi kontrol-zerrenda minitxartelean",
|
||||
"show-subtasks-field": "azpi-zereginen eremua bezala",
|
||||
"convert-to-markdown": "Bihurtu markdown-era"
|
||||
"convert-to-markdown": "Bihurtu markdown-era",
|
||||
"import-board-zip": "Gehitu taula JSON fitxategiak dituen .zip fitxategia eta eranskinak dituzten taularen izenen azpidirektorioak",
|
||||
"collapse": "Tolestu",
|
||||
"uncollapse": "Zabaldu"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "جمع کردن",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "جمع کردن",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -242,8 +242,8 @@
|
||||
"cardMembersPopup-title": "Jäsenet",
|
||||
"cardMorePopup-title": "Lisää",
|
||||
"cardTemplatePopup-title": "Luo malli",
|
||||
"cards": "Kortit",
|
||||
"cards-count": "Kortit",
|
||||
"cards": "Korttia",
|
||||
"cards-count": "Korttia",
|
||||
"cards-count-one": "Kortti",
|
||||
"casSignIn": "CAS-kirjautuminen",
|
||||
"cardType-card": "Kortti",
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Näytä minikortilla",
|
||||
"show-checklist-at-minicard": "Näytä tarkistuslista minikortilla",
|
||||
"show-subtasks-field": "Näytä alitehtävät kenttä",
|
||||
"convert-to-markdown": "Muuta markdowniksi"
|
||||
"convert-to-markdown": "Muuta markdowniksi",
|
||||
"import-board-zip": "Lisää .zip tiedosto jossa on taulu JSON tiedostot, ja taulu nimi alihakemistot liitteineen",
|
||||
"collapse": "Pienennä",
|
||||
"uncollapse": "Suurenna"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -175,7 +175,7 @@
|
||||
"board-view": "Vue du tableau",
|
||||
"board-view-cal": "Calendrier",
|
||||
"board-view-swimlanes": "Couloirs",
|
||||
"board-view-collapse": "Diminuer",
|
||||
"board-view-collapse": "Réduire",
|
||||
"board-view-gantt": "Gantt",
|
||||
"board-view-lists": "Listes",
|
||||
"bucket-example": "Comme « todo list » par exemple",
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Afficher sur la mini-carte",
|
||||
"show-checklist-at-minicard": "Afficher la check-list sur la mini-carte",
|
||||
"show-subtasks-field": "Afficher le champ des sous-tâches",
|
||||
"convert-to-markdown": "Convertir en markdown"
|
||||
"convert-to-markdown": "Convertir en markdown",
|
||||
"import-board-zip": "Ajouter un fichier .zip qui contient les fichiers JSON du tableau et les noms de sous-répertoires avec les pièces jointes",
|
||||
"collapse": "Réduire",
|
||||
"uncollapse": "Développer"
|
||||
}
|
||||
@@ -175,7 +175,7 @@
|
||||
"board-view": "Vue du tableau",
|
||||
"board-view-cal": "Calendrier",
|
||||
"board-view-swimlanes": "Couloirs",
|
||||
"board-view-collapse": "Diminuer",
|
||||
"board-view-collapse": "Réduire",
|
||||
"board-view-gantt": "Gantt",
|
||||
"board-view-lists": "Listes",
|
||||
"bucket-example": "Comme « todo list » par exemple",
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Afficher sur la mini-carte",
|
||||
"show-checklist-at-minicard": "Afficher la check-list sur la mini-carte",
|
||||
"show-subtasks-field": "Afficher le champ des sous-tâches",
|
||||
"convert-to-markdown": "Convertir en markdown"
|
||||
"convert-to-markdown": "Convertir en markdown",
|
||||
"import-board-zip": "Ajouter un fichier .zip qui contient les fichiers JSON du tableau et les noms de sous-répertoires avec les pièces jointes",
|
||||
"collapse": "Réduire",
|
||||
"uncollapse": "Développer"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
@@ -1245,5 +1245,8 @@
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
}
|
||||
Loaded 100 of 339 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user