Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
57ddd82ef1 | ||
|
|
79f7ec2715 | ||
|
|
ab4c3bd2fc | ||
|
|
bd3a7e1068 | ||
|
|
aa33ead7b2 | ||
|
|
94cf2a80a5 | ||
|
|
2ee959a08e | ||
|
|
54b7591ca0 | ||
|
|
b3f0392e7d | ||
|
|
77e7350e96 | ||
|
|
9c87572f90 | ||
|
|
65765f6c2f | ||
|
|
785b312009 | ||
|
|
1d9a710e3b | ||
|
|
909bf811d1 | ||
|
|
90abe01286 | ||
|
|
2c13d74c5f | ||
|
|
5d975c5da4 | ||
|
|
35c1057527 | ||
|
|
3912181857 | ||
|
|
b9a01eb5d6 | ||
|
|
3027f0acb0 | ||
|
|
609c2a5ddb | ||
|
|
f76d648012 | ||
|
|
203bf92a0a | ||
|
|
3e8cc9e905 | ||
|
|
b9f32c1739 | ||
|
|
7e1c65f616 | ||
|
|
447ae93476 | ||
|
|
6df40f41ac | ||
|
|
3e0ef3d070 | ||
|
|
33a17a9a1b | ||
|
|
aed4bfb7f4 | ||
|
|
78f7c3e5bd | ||
|
|
d764047c1f | ||
|
|
65015ea7c7 | ||
|
|
6ef2d9cb9d | ||
|
|
c39fdab11d | ||
|
|
547261abb6 | ||
|
|
7696b7b769 | ||
|
|
585635494a | ||
|
|
a36e80099a | ||
|
|
f5f8a4f6fb | ||
|
|
e207bff91f | ||
|
|
a2c7c230ef | ||
|
|
83a12a9a26 | ||
|
|
096fe130f6 |
No files matched your search
@@ -48,7 +48,7 @@ jobs:
|
||||
# https://github.com/docker/metadata-action
|
||||
- name: Extract Docker metadata
|
||||
id: meta
|
||||
uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81
|
||||
uses: docker/metadata-action@369eb591f429131d6889c46b94e711f089e6ca96
|
||||
with:
|
||||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||||
|
||||
|
||||
@@ -15,6 +15,59 @@ Fixing other platforms In Progress.
|
||||
|
||||
[How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585)
|
||||
|
||||
# v7.69 2024-12-02 WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- [Bump docker/metadata-action from 5.5.1 to 5.6.1](https://github.com/wekan/wekan/pull/5590).
|
||||
Thanks to dependabot.
|
||||
- [Updated dependencies](https://github.com/wekan/wekan/commit/9c87572f90f16fbdddb6a4dff3984e64acac20cc).
|
||||
Thanks to developers of dependencies.
|
||||
- [Updated Windows docs](https://github.com/wekan/wekan/commit/aa33ead7b2efd11bfd9e3f1fb94b564b6bdce119).
|
||||
Thanks to xet7.
|
||||
- [Update docker-compose.yml Keycloak part](https://github.com/wekan/wekan/pull/5597).
|
||||
Thanks to NadavTasher.
|
||||
- [Updated Keycloak etc login settings at start-wekan.bat and start-wekan.sh](https://github.com/wekan/wekan/commit/ab4c3bd2fc49e6fa82ec47dccdf9670110cddf98).
|
||||
Thanks to xet7.
|
||||
- [Updated release scripts](https://github.com/wekan/wekan/commit/79f7ec27159825db9206f385d9281fd68a2aacf5).
|
||||
Thanks to xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fix issue with comments not showing when using Exodark Theme](https://github.com/wekan/wekan/pull/5595).
|
||||
Thanks to walster001.
|
||||
- [Change archive-card shortcut to backtick for better ergonomics](https://github.com/wekan/wekan/pull/5589).
|
||||
Thanks to malteprang.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.68 2024-11-24 WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- [Speed improvements to building WeKan x86_64 Dockerfile. Reduced Docker image size from 1 GB to 0.5 GB. Using Ubuntu 24.04 Docker base image](https://github.com/wekan/wekan/pull/5588).
|
||||
Thanks to NadavTasher.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.67 2024-11-21 WeKan ® release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Re-introduce list auto-width feature, Reverted scrollbar hiding, Fixed transparent sidebar bug](https://github.com/wekan/wekan/pull/5586).
|
||||
Thanks to NadavTasher.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.65 2024-11-20 WeKan ® release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Revert some scrollbar, sidebar and list width changes](https://github.com/wekan/wekan/commit/096fe130f68e0d8d082d309901c75ed04285b7e2).
|
||||
Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.64 2024-11-20 WeKan ® release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
+96
-134
@@ -1,31 +1,76 @@
|
||||
FROM ubuntu:24.10
|
||||
FROM scratch AS downloads
|
||||
|
||||
# Download NodeJS bundle
|
||||
ADD https://static.meteor.com/dev-bundle-node-os/v14.21.4/node-v14.21.4-linux-x64.tar.gz node.tar.gz
|
||||
|
||||
# Download Meteor bundle
|
||||
ADD https://static.meteor.com/packages-bootstrap/2.16/meteor-bootstrap-os.linux.x86_64.tar.gz meteor.tar.gz
|
||||
|
||||
FROM ubuntu:24.04 AS build
|
||||
|
||||
# Install node from official archive
|
||||
RUN --mount=type=bind,from=downloads,source=node.tar.gz,target=node.tar.gz \
|
||||
tar xzf node.tar.gz --strip-components=1 --keep-old-files --no-same-owner
|
||||
|
||||
# Install meteor from official archive
|
||||
RUN --mount=type=bind,from=downloads,source=meteor.tar.gz,target=meteor.tar.gz \
|
||||
tar xzf meteor.tar.gz -C $HOME --no-same-owner
|
||||
|
||||
# Update the npm version
|
||||
RUN npm install -g npm@6.14.17
|
||||
|
||||
# Install several build dependencies
|
||||
RUN apt update && \
|
||||
apt install --yes --no-install-suggests --no-install-recommends ssh git g++ curl ca-certificates && \
|
||||
rm -r /var/lib/apt/lists
|
||||
|
||||
# Change to temporary working directory
|
||||
WORKDIR /workdir
|
||||
|
||||
# Copy package.json and package-lock.json to install application dependencies
|
||||
COPY package.json .
|
||||
COPY package-lock.json .
|
||||
|
||||
# Install build dependencies
|
||||
RUN $HOME/.meteor/meteor npm install --production
|
||||
|
||||
# Copy meteor application configurations
|
||||
COPY .meteor .meteor
|
||||
|
||||
# Copy application sources
|
||||
COPY packages packages
|
||||
COPY imports imports
|
||||
COPY config config
|
||||
COPY models models
|
||||
COPY public public
|
||||
COPY server server
|
||||
COPY client client
|
||||
|
||||
# Build the application
|
||||
RUN $HOME/.meteor/meteor build --directory /build --allow-superuser
|
||||
|
||||
# Enter server bundle directory
|
||||
WORKDIR /build/bundle/programs/server
|
||||
|
||||
# Install server dependencies
|
||||
RUN $HOME/.meteor/meteor npm install --production
|
||||
|
||||
# Enter installation directory of fibers
|
||||
WORKDIR /build/bundle/programs/server/node_modules/fibers
|
||||
|
||||
# Build fibers integrations
|
||||
RUN node build.js
|
||||
|
||||
FROM ubuntu:24.04 AS wekan
|
||||
|
||||
# Add metadata to image
|
||||
LABEL maintainer="wekan"
|
||||
LABEL org.opencontainers.image.ref.name="ubuntu"
|
||||
LABEL org.opencontainers.image.version="24.10"
|
||||
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
|
||||
|
||||
# 2021-09-18:
|
||||
# - Above Ubuntu base image copied from Docker Hub ubuntu:hirsute-20210825
|
||||
# to Quay to avoid Docker Hub rate limits.
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
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.14 \
|
||||
USE_EDGE=false \
|
||||
METEOR_EDGE=1.5-beta.17 \
|
||||
NPM_VERSION=6.14.17 \
|
||||
FIBERS_VERSION=4.0.1 \
|
||||
ARCHITECTURE=linux-x64 \
|
||||
SRC_PATH=./ \
|
||||
WITH_API=true \
|
||||
# Set default environment variables
|
||||
ENV WITH_API=true \
|
||||
RESULTS_PER_PAGE="" \
|
||||
DEFAULT_BOARD_ID="" \
|
||||
ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE=3 \
|
||||
@@ -158,119 +203,36 @@ ENV \
|
||||
WRITABLE_PATH=/data \
|
||||
S3=""
|
||||
|
||||
# NODE_OPTIONS="--max_old_space_size=4096"
|
||||
|
||||
#---------------------------------------------
|
||||
# == at docker-compose.yml: AUTOLOGIN WITH OIDC/OAUTH2 ====
|
||||
# https://github.com/wekan/wekan/wiki/autologin
|
||||
#- OIDC_REDIRECTION_ENABLED=true
|
||||
#---------------------------------------------------------------------
|
||||
|
||||
# Copy the app to the image
|
||||
COPY ${SRC_PATH} /home/wekan/app
|
||||
|
||||
# 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} --production
|
||||
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 --production
|
||||
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 --production
|
||||
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
|
||||
# Install node and application sources from build stage
|
||||
RUN --mount=type=bind,from=downloads,source=node.tar.gz,target=node.tar.gz \
|
||||
--mount=type=bind,from=build,source=/build,target=/build \
|
||||
# Install NodeJS
|
||||
tar xzf node.tar.gz --strip-components=1 --keep-old-files --no-same-owner && \
|
||||
# Add the wekan user
|
||||
useradd --uid 999 --user-group --system wekan && \
|
||||
# Copy wekan bundle
|
||||
cp -r /build/bundle /wekan && \
|
||||
# Remove the web.browser.legacy platform
|
||||
rm -r /wekan/programs/web.browser.legacy && \
|
||||
# Change ownership of wekan directory
|
||||
chown wekan:wekan -R /wekan && \
|
||||
# Create the data directory
|
||||
mkdir /data && \
|
||||
# Change ownership of data directory
|
||||
chown wekan:root -R /data
|
||||
|
||||
# Change to the wekan user
|
||||
USER wekan
|
||||
|
||||
# Set the port to listen on
|
||||
ENV PORT=8080
|
||||
EXPOSE $PORT
|
||||
EXPOSE ${PORT}
|
||||
|
||||
STOPSIGNAL SIGKILL
|
||||
WORKDIR /home/wekan/app
|
||||
# Define the stop signal for node
|
||||
STOPSIGNAL SIGINT
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# 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"
|
||||
#---------------------------------------------------------------------
|
||||
#
|
||||
# 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 --max-old-space-size=8192 /build/main.js"]
|
||||
CMD ["bash", "-c", "ulimit -s 65500; exec node /build/main.js"]
|
||||
# Declare a volume on /data
|
||||
VOLUME /data
|
||||
|
||||
# Set startup command
|
||||
CMD ["node", "/wekan/main.js"]
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
|
||||
appVersion: "v7.64.0"
|
||||
appVersion: "v7.69.0"
|
||||
files:
|
||||
userUploads:
|
||||
- README.md
|
||||
|
||||
@@ -1958,7 +1958,7 @@ THEME - Modern
|
||||
.board-color-modern .pop-over-list li>a .sub-name {
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.board-color-modern .sidebar .sidebar-shadow {
|
||||
.board-color-modern .sidebar {
|
||||
box-shadow: 0 0 60px rgba(0,0,0,0.2);
|
||||
}
|
||||
.board-color-modern .board-color-modern section#notifications-drawer {
|
||||
@@ -2431,7 +2431,7 @@ THEME - Modern Dark
|
||||
background-color: #ccc;
|
||||
color: #222;
|
||||
}
|
||||
.board-color-moderndark .sidebar .sidebar-shadow {
|
||||
.board-color-moderndark .sidebar {
|
||||
background-color: #222;
|
||||
box-shadow: -10px 0 5px -10px #444;
|
||||
border-left: 1px solid #333;
|
||||
@@ -2648,6 +2648,9 @@ THEME - Exodark
|
||||
background: #2b2b2b !important;
|
||||
color: #fff;
|
||||
}
|
||||
.board-color-exodark .card-details .comment-text {
|
||||
color:#2b2b2b
|
||||
} /*Fixes issue with comment text colour blending into background*/
|
||||
.board-color-exodark .card-details .card-details-header {
|
||||
background: #2b2b2b;
|
||||
color: #fff;
|
||||
@@ -2776,16 +2779,16 @@ THEME - Clean Dark
|
||||
background: #0A0A14;
|
||||
}
|
||||
|
||||
.board-color-cleandark .sidebar .sidebar-shadow {
|
||||
.board-color-cleandark .sidebar {
|
||||
background: rgba(35, 35, 43, 1) !important;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.board-color-cleandark .sidebar .sidebar-shadow hr {
|
||||
.board-color-cleandark .sidebar hr {
|
||||
background:rgba(255, 255, 255, 0.05);
|
||||
}
|
||||
|
||||
.board-color-cleandark .sidebar .sidebar-shadow .tab-item {
|
||||
.board-color-cleandark .sidebar .tab-item {
|
||||
border-radius: 16px;
|
||||
padding: 4px 12px 4px 12px;
|
||||
font-size: 16px;
|
||||
@@ -2795,14 +2798,14 @@ THEME - Clean Dark
|
||||
background: rgba(57, 57, 71, 1);
|
||||
}
|
||||
|
||||
.board-color-cleandark .sidebar .sidebar-shadow .tab-item.active {
|
||||
.board-color-cleandark .sidebar .tab-item.active {
|
||||
background: rgba(255, 255, 255, 1);
|
||||
color: rgba(10, 10, 20, 1);
|
||||
border: none;
|
||||
padding: 4px 12px 4px 12px !important;
|
||||
}
|
||||
|
||||
.board-color-cleandark .sidebar .sidebar-shadow .tabs-content-container {
|
||||
.board-color-cleandark .sidebar .tabs-content-container {
|
||||
border: none;
|
||||
}
|
||||
|
||||
@@ -3414,16 +3417,16 @@ THEME - Clean Light
|
||||
display: none;
|
||||
}
|
||||
|
||||
.board-color-cleanlight .sidebar .sidebar-shadow {
|
||||
.board-color-cleanlight .sidebar {
|
||||
background: rgba(248, 248, 249, 1) !important;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.board-color-cleanlight .sidebar .sidebar-shadow hr {
|
||||
.board-color-cleanlight .sidebar hr {
|
||||
background: rgba(23, 23, 28, 0.05);
|
||||
}
|
||||
|
||||
.board-color-cleanlight .sidebar .sidebar-shadow .tab-item {
|
||||
.board-color-cleanlight .sidebar .tab-item {
|
||||
border-radius: 16px;
|
||||
padding: 4px 12px 4px 12px;
|
||||
font-size: 16px;
|
||||
@@ -3433,14 +3436,14 @@ THEME - Clean Light
|
||||
background: rgba(234, 234, 237, 1);
|
||||
}
|
||||
|
||||
.board-color-cleanlight .sidebar .sidebar-shadow .tab-item.active {
|
||||
.board-color-cleanlight .sidebar .tab-item.active {
|
||||
background: rgba(23, 23, 28, 1);
|
||||
color: rgba(255, 255, 255, 1);
|
||||
border: none;
|
||||
padding: 4px 12px 4px 12px !important;
|
||||
}
|
||||
|
||||
.board-color-cleanlight .sidebar .sidebar-shadow .tabs-content-container {
|
||||
.board-color-cleanlight .sidebar .tabs-content-container {
|
||||
border: none;
|
||||
}
|
||||
|
||||
|
||||
@@ -89,7 +89,6 @@
|
||||
box-shadow: 0 0 7px 0 #b3b3b3;
|
||||
transition: flex-basis 0.1s;
|
||||
box-sizing: border-box;
|
||||
scrollbar-width: none;
|
||||
}
|
||||
.card-details .mCustomScrollBox {
|
||||
padding-left: 0;
|
||||
|
||||
@@ -152,7 +152,6 @@
|
||||
display: flex;
|
||||
overflow-y: auto;
|
||||
padding: 5px 11px;
|
||||
scrollbar-width: none;
|
||||
}
|
||||
.list-body .minicards {
|
||||
flex-grow: 1;
|
||||
|
||||
@@ -4,12 +4,10 @@
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
overflow-y: scroll;
|
||||
scrollbar-width: none;
|
||||
}
|
||||
.sidebar .sidebar-shadow {
|
||||
.sidebar {
|
||||
background: #f7f7f7;
|
||||
box-shadow: -10px 0px 5px -10px #b3b3b3;
|
||||
height: 100%;
|
||||
}
|
||||
.sidebar-xmark {
|
||||
position: absolute;
|
||||
@@ -30,7 +28,6 @@
|
||||
}
|
||||
.sidebar .sidebar-content {
|
||||
padding: 0 12px;
|
||||
margin-bottom: 1.6em;
|
||||
}
|
||||
.sidebar .sidebar-content .hide-btn {
|
||||
display: none;
|
||||
|
||||
@@ -4,22 +4,21 @@ template(name="sidebar")
|
||||
// class="{{#if isTongueHidden}}is-hidden{{/if}}",
|
||||
// title="{{showTongueTitle}}")
|
||||
// i.fa.fa-navicon
|
||||
.sidebar-shadow
|
||||
.sidebar-actions
|
||||
.sidebar-shortcuts
|
||||
a.board-header-btn.js-shortcuts(title="{{_ 'keyboard-shortcuts' }}")
|
||||
i.fa.fa-keyboard-o
|
||||
span {{_ 'keyboard-shortcuts' }}
|
||||
a.sidebar-xmark.js-close-sidebar ✕
|
||||
.sidebar-content.js-board-sidebar-content
|
||||
//a.hide-btn.js-hide-sidebar
|
||||
// i.fa.fa-navicon
|
||||
unless isDefaultView
|
||||
h2
|
||||
a.fa.fa-chevron-left.js-back-home
|
||||
= getViewTitle
|
||||
if isOpen
|
||||
+Template.dynamic(template=getViewTemplate)
|
||||
.sidebar-actions
|
||||
.sidebar-shortcuts
|
||||
a.board-header-btn.js-shortcuts(title="{{_ 'keyboard-shortcuts' }}")
|
||||
i.fa.fa-keyboard-o
|
||||
span {{_ 'keyboard-shortcuts' }}
|
||||
a.sidebar-xmark.js-close-sidebar ✕
|
||||
.sidebar-content.js-board-sidebar-content
|
||||
//a.hide-btn.js-hide-sidebar
|
||||
// i.fa.fa-navicon
|
||||
unless isDefaultView
|
||||
h2
|
||||
a.fa.fa-chevron-left.js-back-home
|
||||
= getViewTitle
|
||||
if isOpen
|
||||
+Template.dynamic(template=getViewTemplate)
|
||||
|
||||
template(name='homeSidebar')
|
||||
hr
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
flex-direction: row;
|
||||
overflow: auto;
|
||||
max-height: 100%;
|
||||
scrollbar-width: none;
|
||||
}
|
||||
.swimlane-header-menu .swimlane-header-collapse-down {
|
||||
font-size: 50%;
|
||||
|
||||
@@ -190,7 +190,7 @@ Mousetrap.bind('space', evt => {
|
||||
}
|
||||
});
|
||||
|
||||
Mousetrap.bind('-', evt => {
|
||||
Mousetrap.bind('`', evt => {
|
||||
const cardId = getSelectedCardId();
|
||||
if (!cardId) {
|
||||
return;
|
||||
@@ -285,7 +285,7 @@ Template.keyboardShortcuts.helpers({
|
||||
action: 'shortcut-assign-self',
|
||||
},
|
||||
{
|
||||
keys: ['-'],
|
||||
keys: ['`'],
|
||||
action: 'archive-card',
|
||||
},
|
||||
{
|
||||
|
||||
+5
-1
@@ -442,11 +442,15 @@ services:
|
||||
# OAuth2 login style: popup or redirect.
|
||||
#- OAUTH2_LOGIN_STYLE=redirect
|
||||
#- OAUTH2_CLIENT_ID=<Keycloak create Client ID>
|
||||
#- OAUTH2_SERVER_URL=<Keycloak server name>/auth
|
||||
#- OAUTH2_SERVER_URL=<Keycloak server url - https://keycloak.example.com>
|
||||
#- OAUTH2_AUTH_ENDPOINT=/realms/<keycloak realm>/protocol/openid-connect/auth
|
||||
#- OAUTH2_USERINFO_ENDPOINT=/realms/<keycloak realm>/protocol/openid-connect/userinfo
|
||||
#- OAUTH2_TOKEN_ENDPOINT=/realms/<keycloak realm>/protocol/openid-connect/token
|
||||
#- OAUTH2_SECRET=<keycloak client secret>
|
||||
#- OAUTH2_ID_MAP=sub
|
||||
#- OAUTH2_USERNAME_MAP=preferred_username
|
||||
#- OAUTH2_EMAIL_MAP=email
|
||||
#- OAUTH2_FULLNAME_MAP=name
|
||||
#-----------------------------------------------------------------
|
||||
# ==== OAUTH2 DOORKEEPER ====
|
||||
# https://github.com/wekan/wekan/issues/1874
|
||||
|
||||
@@ -4,11 +4,13 @@ Also see: [Windows](Windows)
|
||||
|
||||
## Wekan Windows 64bit version On-Premise
|
||||
|
||||
INFO ABOUT SETTINGS: https://github.com/wekan/wekan/issues/5591#issuecomment-2503681293
|
||||
|
||||
This is without container (without Docker or Snap).
|
||||
|
||||
Right click and download files 1-4:
|
||||
|
||||
1. [wekan-7.64-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.64/wekan-7.64-amd64-windows.zip)
|
||||
1. [wekan-7.69-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.69/wekan-7.69-amd64-windows.zip)
|
||||
|
||||
2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe)
|
||||
|
||||
@@ -20,7 +22,7 @@ Right click and download files 1-4:
|
||||
|
||||
6. Double click `mongodb-windows-x86_64-6.0.19-signed.msi` . In installer, uncheck downloading MongoDB compass.
|
||||
|
||||
7. Unzip `wekan-7.64-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files:
|
||||
7. Unzip `wekan-7.69-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files:
|
||||
|
||||
```
|
||||
bundle (directory)
|
||||
|
||||
@@ -128,7 +128,7 @@ Other:
|
||||
.card-details .card-details-header { background-color:#ccc; }
|
||||
|
||||
/* sidebar */
|
||||
.sidebar-tongue, .sidebar-shadow { background-color:#666 !important; }
|
||||
.sidebar-tongue, .sidebar { background-color:#666 !important; }
|
||||
.sidebar-content h3, .sidebar-content .activity-desc { color:rgba(255,255,255,.7) !important; }
|
||||
```
|
||||
|
||||
|
||||
@@ -87,8 +87,8 @@
|
||||
"add-card-to-top-of-list": "Karte am Anfang der Liste hinzufügen",
|
||||
"add-card-to-bottom-of-list": "Karte am Ende der Liste hinzufügen",
|
||||
"setListWidthPopup-title": "Stelle die Breite der Liste ein",
|
||||
"set-list-width": "Set Min Width",
|
||||
"set-list-width-value": "Min Width (pixels)",
|
||||
"set-list-width": "Stelle die minimale Breite ein",
|
||||
"set-list-width-value": "Minimale Breite (Pixel)",
|
||||
"list-width-error-message": "Die Breite der Liste muss eine positive ganze Zahl sein",
|
||||
"setSwimlaneHeightPopup-title": "Stelle die Höhe der Swimlane ein",
|
||||
"set-swimlane-height": "Stelle die Höhe der Swimlane ein",
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
"activity-archived": "%s a été archivé",
|
||||
"activity-attached": "a attaché %s à %s",
|
||||
"activity-created": "a créé %s",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-changedListTitle": "a renommé la liste en 1%s",
|
||||
"activity-customfield-created": "a créé le champ personnalisé %s",
|
||||
"activity-excluded": "a exclu %s de %s",
|
||||
"activity-imported": "a importé %s vers %s depuis %s",
|
||||
@@ -87,8 +87,8 @@
|
||||
"add-card-to-top-of-list": "Ajouter la carte en haut de la liste",
|
||||
"add-card-to-bottom-of-list": "Ajouter la carte en bas de la liste",
|
||||
"setListWidthPopup-title": "Définir la largeur de la liste",
|
||||
"set-list-width": "Set Min Width",
|
||||
"set-list-width-value": "Min Width (pixels)",
|
||||
"set-list-width": "Définir la largeur mini.",
|
||||
"set-list-width-value": "Largeur mini. (pixels)",
|
||||
"list-width-error-message": "La largeur de la liste doit être un entier positif",
|
||||
"setSwimlaneHeightPopup-title": "Définir la hauteur du couloir",
|
||||
"set-swimlane-height": "Définir la hauteur du couloir",
|
||||
@@ -295,7 +295,7 @@
|
||||
"color-white": "blanc",
|
||||
"color-yellow": "jaune",
|
||||
"unset-color": "Enlever",
|
||||
"comments": "Comments",
|
||||
"comments": "Commentaires",
|
||||
"comment": "Commenter",
|
||||
"comment-placeholder": "Écrire un commentaire",
|
||||
"comment-only": "Commentaire uniquement",
|
||||
@@ -445,7 +445,7 @@
|
||||
"advanced-filter-description": "Le filtre avancé permet d'écrire une chaîne contenant les opérateur suivants : == != <= >= && || ( ). Les opérateurs doivent être séparés par des espaces. Vous pouvez filtrer tous les champs personnalisés en saisissant leur nom et leur valeur. Par exemple : champ1 == valeur1. Remarque : si des champs ou valeurs contiennent des espaces, vous devez les mettre entre apostrophes. Par exemple : 'champ 1' == 'valeur 1'. Pour échapper un caractère de contrôle (' \\/), vous pouvez utiliser \\. Par exemple : champ1 == I\\'m. Il est également possible de combiner plusieurs conditions. Par exemple : f1 == v1 || f2 == v2. Normalement, tous les opérateurs sont interprétés de gauche à droite. Vous pouvez changer l'ordre à l'aide de parenthèses. Par exemple : F1 == V1 && ( F2 == V2 || F2 == V3 ). Vous pouvez également chercher parmi les champs texte en utilisant des expressions régulières : f1 == /Test.*/i",
|
||||
"fullname": "Nom complet",
|
||||
"header-logo-title": "Retourner à la page des tableaux",
|
||||
"show-activities": "Show Activities",
|
||||
"show-activities": "Afficher les activités",
|
||||
"headerBarCreateBoardPopup-title": "Créer un tableau",
|
||||
"home": "Accueil",
|
||||
"import": "Importer",
|
||||
@@ -574,7 +574,7 @@
|
||||
"select-board": "Sélectionner le tableau",
|
||||
"set-wip-limit-value": "Définit une limite maximale au nombre de cartes de cette liste",
|
||||
"setWipLimitPopup-title": "Définir la limite WIP",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-add-self": "S'ajouter à la carte courante",
|
||||
"shortcut-assign-self": "Affecter cette carte à vous-même",
|
||||
"shortcut-autocomplete-emoji": "Auto-complétion des emoji",
|
||||
"shortcut-autocomplete-members": "Auto-complétion des participants",
|
||||
@@ -959,7 +959,7 @@
|
||||
"delete-linked-card-before-this-card": "Vous ne pouvez pas supprimer cette carte avant d'avoir d'abord supprimé la carte liée qui a",
|
||||
"delete-linked-cards-before-this-list": "Vous ne pouvez pas supprimer cette liste avant d'avoir d'abord supprimé les cartes liées qui pointent vers des cartes de cette liste",
|
||||
"hide-checked-items": "Cacher les éléments cochés",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"hide-finished-checklist": "Cacher la check-list terminée",
|
||||
"task": "Tâche",
|
||||
"create-task": "Créer une tâche",
|
||||
"ok": "OK",
|
||||
@@ -1113,8 +1113,8 @@
|
||||
"created-at-newest-first": "Date de création (Plus récentes en premier)",
|
||||
"created-at-oldest-first": "Date de création (Plus anciennes en premier)",
|
||||
"links-heading": "Liens",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"hide-activities-of-all-boards": "Ne pas afficher les activités du tableau sur tous les tableaux",
|
||||
"now-activities-of-all-boards-are-hidden": "Les activités de tous les tableaux seront dorénavant cachées",
|
||||
"move-swimlane": "Déplacer le couloir",
|
||||
"moveSwimlanePopup-title": "Déplacer le couloir",
|
||||
"custom-field-stringtemplate": "Modèle de chaîne",
|
||||
@@ -1197,10 +1197,10 @@
|
||||
"checklistActionsPopup-title": "Actions sur la check-list",
|
||||
"moveChecklist": "Déplacer la check-list",
|
||||
"moveChecklistPopup-title": "Déplacer la check-list",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"newlineBecomesNewChecklistItem": "Chaque ligne de texte devient un élément de la check-list",
|
||||
"newLineNewItem": "Une ligne de texte = un élément de la check-list",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Chaque ligne de texte devient un élément de la check-list, l'ordre est respecté",
|
||||
"originOrder": "ordre original",
|
||||
"copyChecklist": "Copier la check-list",
|
||||
"copyChecklistPopup-title": "Copier la check-list",
|
||||
"card-show-lists": "Afficher les listes sur la carte",
|
||||
@@ -1254,6 +1254,6 @@
|
||||
"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",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items"
|
||||
"hideCheckedChecklistItems": "Cacher les éléments cochés de la check-list",
|
||||
"hideAllChecklistItems": "Cacher tous les éléments de la check-list"
|
||||
}
|
||||
@@ -87,8 +87,8 @@
|
||||
"add-card-to-top-of-list": "הוספת כרטיס לראש הרשימה",
|
||||
"add-card-to-bottom-of-list": "הוספת כרטיס לתחתית הרשימה",
|
||||
"setListWidthPopup-title": "הגדרת רוחב רשימה",
|
||||
"set-list-width": "Set Min Width",
|
||||
"set-list-width-value": "Min Width (pixels)",
|
||||
"set-list-width": "הגדרת רוחב מזערי",
|
||||
"set-list-width-value": "רוחב מזערי (פיקסלים)",
|
||||
"list-width-error-message": "רוחב הרשימה חייב להיות מספר שלם וחיובי",
|
||||
"setSwimlaneHeightPopup-title": "הגדרת גובה מסלול",
|
||||
"set-swimlane-height": "הגדרת גובה מסלול",
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
"activity-archived": "%s verplaatst naar Archief",
|
||||
"activity-attached": "%s bijgevoegd aan %s",
|
||||
"activity-created": "%s aangemaakt",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-changedListTitle": "lijst hernoemd naar %s",
|
||||
"activity-customfield-created": "maatwerkveld aangemaakt %s",
|
||||
"activity-excluded": "%s uitgesloten van %s",
|
||||
"activity-imported": "%s geïmporteerd in %s van %s",
|
||||
@@ -87,8 +87,8 @@
|
||||
"add-card-to-top-of-list": "Kaart Boven Aan de Lijst Toevoegen",
|
||||
"add-card-to-bottom-of-list": "Kaart Onder Aan de Lijst Toevoegen",
|
||||
"setListWidthPopup-title": "Stel Lijstbreedte in",
|
||||
"set-list-width": "Set Min Width",
|
||||
"set-list-width-value": "Min Width (pixels)",
|
||||
"set-list-width": "Stel Min. Breedte In",
|
||||
"set-list-width-value": "Min. Breedte (pixels)",
|
||||
"list-width-error-message": "Lijstbreedte moet positief geheel getal zijn",
|
||||
"setSwimlaneHeightPopup-title": "Stel Swimlane-hoogte in",
|
||||
"set-swimlane-height": "Stel Swimlane-hoogte in",
|
||||
@@ -295,7 +295,7 @@
|
||||
"color-white": "wit",
|
||||
"color-yellow": "geel",
|
||||
"unset-color": "Ongedefinieerd",
|
||||
"comments": "Comments",
|
||||
"comments": "Aantekeningen",
|
||||
"comment": "Aantekening Opslaan",
|
||||
"comment-placeholder": "Schrijf aantekening",
|
||||
"comment-only": "Alleen aantekeningen maken",
|
||||
@@ -445,7 +445,7 @@
|
||||
"advanced-filter-description": "Met het Geavanceerd Filter kun je een tekst schrijven die de volgende operatoren mag bevatten: == != <= >= && || ( ) Een Spatie wordt als scheiding gebruikt tussen de verschillende operatoren. Je kunt filteren op alle Maatwerkvelden door hun namen en waarden in te tikken. Bijvoorbeeld: Veld1 == Waarde1. Let op: Als velden of waarden spaties bevatten dan moet je die tussen enkele aanhalingstekens zetten. Bijvoorbeeld: 'Veld 1' == 'Waarde 1'. Om controle karakters (' \\\\/) over te slaan gebruik je \\\\. Bijvoorbeeld: Veld1 == I\\\\'m. Je kunt ook meerdere condities combineren. Bijvoorbeeld: F1 == V1 || F1 == V2. Normalerwijze worden alle operatoren van links naar rechts verwerkt. Dit kun je veranderen door ronde haken te gebruiken. Bijvoorbeeld: F1 == V1 && ( F2 == V2 || F2 == V3 ). Je kunt ook met regex in tekstvelden zoeken. Bijvoorbeeld: F1 == /Tes.*/i",
|
||||
"fullname": "Volledige naam",
|
||||
"header-logo-title": "Ga terug naar jouw borden pagina.",
|
||||
"show-activities": "Show Activities",
|
||||
"show-activities": "Toon Activiteiten",
|
||||
"headerBarCreateBoardPopup-title": "Bord aanmaken",
|
||||
"home": "Voorpagina",
|
||||
"import": "Importeer",
|
||||
@@ -574,7 +574,7 @@
|
||||
"select-board": "Selecteer Bord",
|
||||
"set-wip-limit-value": "Zet een limiet voor het maximaal aantal taken in deze lijst",
|
||||
"setWipLimitPopup-title": "Zet een WIP limiet",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-add-self": "Voeg jezelf toe aan huidige kaart",
|
||||
"shortcut-assign-self": "Voeg jezelf toe aan huidige kaart",
|
||||
"shortcut-autocomplete-emoji": "Emojis automatisch aanvullen",
|
||||
"shortcut-autocomplete-members": "Leden automatisch aanvullen",
|
||||
@@ -959,7 +959,7 @@
|
||||
"delete-linked-card-before-this-card": "Je kunt deze kaart niet verwijderen voordat de gelinkte kaart is verwijderd",
|
||||
"delete-linked-cards-before-this-list": "Je kunt deze lijst niet verwijderen voordat de gelinkte kaarten verwijderd zijn die verwijzen naar kaarten in deze lijst",
|
||||
"hide-checked-items": "Verberg aangevinkte items",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"hide-finished-checklist": "Verberg afgewerkte checklist",
|
||||
"task": "Taak",
|
||||
"create-task": "Taak aanmaken",
|
||||
"ok": "OK",
|
||||
@@ -1113,8 +1113,8 @@
|
||||
"created-at-newest-first": "Aangemaakt op (Nieuwste Eerst)",
|
||||
"created-at-oldest-first": "Aangemaakt op (Oudste Eerst)",
|
||||
"links-heading": "Links",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"hide-activities-of-all-boards": "Verberg de bord-activietein op alle borden",
|
||||
"now-activities-of-all-boards-are-hidden": "Nu zijn alle activiteiten op alle borden verbrorgen",
|
||||
"move-swimlane": "Verplaats Swimlane",
|
||||
"moveSwimlanePopup-title": "Verplaats Swimlane",
|
||||
"custom-field-stringtemplate": "String Template",
|
||||
@@ -1197,10 +1197,10 @@
|
||||
"checklistActionsPopup-title": "Checklist acties",
|
||||
"moveChecklist": "Verplaats Checklist",
|
||||
"moveChecklistPopup-title": "Verplaats Checklist",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"newlineBecomesNewChecklistItem": "Elke regel tekst wordt een checklist item",
|
||||
"newLineNewItem": "Eén regel tekst = één checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Elke regel tekst wordt één van de checklist items, op volgorde van invoeren",
|
||||
"originOrder": "volgorde van invoeren",
|
||||
"copyChecklist": "Kopieer Checklist",
|
||||
"copyChecklistPopup-title": "Kopieer Checklist",
|
||||
"card-show-lists": "Kaart Toon Lijsten",
|
||||
@@ -1254,6 +1254,6 @@
|
||||
"import-board-zip": "Voeg .zip bestand toe met bord JSON bestanden, en bordnaam subdirectories met bijlagen.",
|
||||
"collapse": "Inklappen",
|
||||
"uncollapse": "Uitklappen",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items"
|
||||
"hideCheckedChecklistItems": "Verberg aangevinkte checklist items",
|
||||
"hideAllChecklistItems": "Verberg alle checklist items"
|
||||
}
|
||||
@@ -87,8 +87,8 @@
|
||||
"add-card-to-top-of-list": "Dodaj kartę na początku listy",
|
||||
"add-card-to-bottom-of-list": "Dodaj kartę na końcu listy",
|
||||
"setListWidthPopup-title": "Ustaw szerokość listy",
|
||||
"set-list-width": "Set Min Width",
|
||||
"set-list-width-value": "Min Width (pixels)",
|
||||
"set-list-width": "Ustaw min. szerokość",
|
||||
"set-list-width-value": "Min. szerokość (piksele)",
|
||||
"list-width-error-message": "Szerokość listy musi mieć wartość dodatnią",
|
||||
"setSwimlaneHeightPopup-title": "Ustaw wysokość ścieżki",
|
||||
"set-swimlane-height": "Ustaw wysokość ścieżki",
|
||||
@@ -295,7 +295,7 @@
|
||||
"color-white": "biała",
|
||||
"color-yellow": "żółta",
|
||||
"unset-color": "Nieustawiony",
|
||||
"comments": "Comments",
|
||||
"comments": "Komentarze",
|
||||
"comment": "Komentarz",
|
||||
"comment-placeholder": "Dodaj komentarz",
|
||||
"comment-only": "Tylko komentowanie",
|
||||
@@ -445,7 +445,7 @@
|
||||
"advanced-filter-description": "Zaawansowane filtry pozwalają na wykorzystanie ciągu znaków wraz z następującymi operatorami: == != <= >= && || (). Spacja jest używana jako separator pomiędzy operatorami. Możesz przefiltrowywać wszystkie niestandardowe pola wpisując ich nazwy lub wartości, na przykład: Pole1 == Wartość1.\nUwaga: Jeśli pola lub wartości zawierają spację, musisz je zawrzeć w pojedynczym cudzysłowie, na przykład: 'Pole 1' == 'Wartość 1'. Dla pojedynczych znaków, które powinny być pominięte, należy użyć \\\\, na przykład Pole1 == I\\\\'m. Możesz także wykorzystywać mieszane warunki, na przykład P1 == W1 || P1 == W2. Standardowo wszystkie operatory są interpretowane od lewej do prawej. Możesz także zmienić kolejność interpretacji wykorzystując nawiasy, na przykład P1 == W1 && (P2 == W2 || P2 == W3). Możesz także wyszukiwać tekstowo wykorzystując wyrażenia regularne, na przykład: P1 == /Tes.*/i",
|
||||
"fullname": "Pełna nazwa",
|
||||
"header-logo-title": "Wróć do swojej strony z tablicami.",
|
||||
"show-activities": "Show Activities",
|
||||
"show-activities": "Pokaż aktywności",
|
||||
"headerBarCreateBoardPopup-title": "Utwórz tablicę",
|
||||
"home": "Strona główna",
|
||||
"import": "Importuj",
|
||||
@@ -574,7 +574,7 @@
|
||||
"select-board": "Wybierz tablicę",
|
||||
"set-wip-limit-value": "Ustaw maksymalny limit kart na tej liście",
|
||||
"setWipLimitPopup-title": "Ustaw limit kart na liście",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-add-self": "Dodaj siebie do obecnej karty",
|
||||
"shortcut-assign-self": "Przypisz siebie do obecnej karty",
|
||||
"shortcut-autocomplete-emoji": "Autouzupełnianie emoji",
|
||||
"shortcut-autocomplete-members": "Autouzupełnianie użytkowników",
|
||||
@@ -959,7 +959,7 @@
|
||||
"delete-linked-card-before-this-card": "Nie możesz usunąć tej karty, dopóki nie usuniesz podpiętej karty, w której są",
|
||||
"delete-linked-cards-before-this-list": "Nie możesz usunąć tej karty, dopóki nie usuniesz podpiętych kart, które wskazują na karty w tej liście",
|
||||
"hide-checked-items": "Ukryj ukończone",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"hide-finished-checklist": "Ukryj ukończoną listę",
|
||||
"task": "Zadanie",
|
||||
"create-task": "Utwórz zadanie",
|
||||
"ok": "OK",
|
||||
@@ -1113,8 +1113,8 @@
|
||||
"created-at-newest-first": "daty utworzenia (najpierw najnowsze)",
|
||||
"created-at-oldest-first": "daty utworzenia (najpierw najstarsze)",
|
||||
"links-heading": "Linki",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"hide-activities-of-all-boards": "Nie pokazuj aktywności na wszystkich tablicach",
|
||||
"now-activities-of-all-boards-are-hidden": "Teraz wszystkie aktywności wszystkich tablic są ukryte",
|
||||
"move-swimlane": "Przenieś ścieżkę",
|
||||
"moveSwimlanePopup-title": "Przenieś ścieżkę",
|
||||
"custom-field-stringtemplate": "Wzór ciągu znaków",
|
||||
@@ -1197,10 +1197,10 @@
|
||||
"checklistActionsPopup-title": "Checklist Actions",
|
||||
"moveChecklist": "Move Checklist",
|
||||
"moveChecklistPopup-title": "Move Checklist",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newlineBecomesNewChecklistItem": "Każdy wiersz tekstu staje się jednym z elementów listy kontrolnej",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"originOrder": "pierwotna kolejność",
|
||||
"copyChecklist": "Copy Checklist",
|
||||
"copyChecklistPopup-title": "Copy Checklist",
|
||||
"card-show-lists": "Card Show Lists",
|
||||
@@ -1253,7 +1253,7 @@
|
||||
"convert-to-markdown": "Zamień na markdown",
|
||||
"import-board-zip": "Dodaj plik .zip z tablicą plików JSON, nazwą tablicy i podkatalogami z załącznikami",
|
||||
"collapse": "Zwiń",
|
||||
"uncollapse": "Uncollapse",
|
||||
"uncollapse": "Rozwiń",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items"
|
||||
}
|
||||
@@ -87,8 +87,8 @@
|
||||
"add-card-to-top-of-list": "Adicionar Cartão no Topo da Lista",
|
||||
"add-card-to-bottom-of-list": "Adicionar Cartão no Final da Lista",
|
||||
"setListWidthPopup-title": "Definir Largura da Lista",
|
||||
"set-list-width": "Set Min Width",
|
||||
"set-list-width-value": "Min Width (pixels)",
|
||||
"set-list-width": "Definir Largura Mínima",
|
||||
"set-list-width-value": "Largura Mínima (píxeis)",
|
||||
"list-width-error-message": "Largura da Lista deve ser um inteiro positivo",
|
||||
"setSwimlaneHeightPopup-title": "Definir Altura da Raia",
|
||||
"set-swimlane-height": "Definir Altura da Raia",
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
"activity-archived": "%s flyttades till Arkiv",
|
||||
"activity-attached": "bifogade %s till %s",
|
||||
"activity-created": "skapade %s",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-changedListTitle": "döpte om listan till %s",
|
||||
"activity-customfield-created": "skapade anpassat fält %s",
|
||||
"activity-excluded": "exkluderade %s från %s",
|
||||
"activity-imported": "importerade %s till %s från %s",
|
||||
@@ -87,8 +87,8 @@
|
||||
"add-card-to-top-of-list": "Lägg till kort överst i listan",
|
||||
"add-card-to-bottom-of-list": "Lägg till kort i botten av listan",
|
||||
"setListWidthPopup-title": "Ställ in listbredd",
|
||||
"set-list-width": "Set Min Width",
|
||||
"set-list-width-value": "Min Width (pixels)",
|
||||
"set-list-width": "Ställ in min bredd",
|
||||
"set-list-width-value": "Min bredd (pixlar)",
|
||||
"list-width-error-message": "Listbredden måste vara ett positivt heltal",
|
||||
"setSwimlaneHeightPopup-title": "Ställ in simbanans höjd",
|
||||
"set-swimlane-height": "Ställ in simbanans höjd",
|
||||
@@ -295,7 +295,7 @@
|
||||
"color-white": "vit",
|
||||
"color-yellow": "gul",
|
||||
"unset-color": "Ta bort",
|
||||
"comments": "Comments",
|
||||
"comments": "Kommentarer",
|
||||
"comment": "Kommentera",
|
||||
"comment-placeholder": "Skriv kommentar",
|
||||
"comment-only": "Kommentera endast",
|
||||
@@ -445,7 +445,7 @@
|
||||
"advanced-filter-description": "Avancerade filter låter dig skriva en sträng innehållande följande operatorer: == != <= >= && || ( ). Ett mellanslag används som separator mellan operatorerna. Du kan filtrera alla specialfält genom att skriva dess namn och värde. Till exempel: Fält1 == Vårde1. Notera: om fälten eller värden innehåller mellanrum behöver du innesluta dem med enkla citatstecken. Till exempel: 'Fält 1' == 'Värde 1'. För att skippa enkla kontrolltecken (' \\\\/) kan du använda \\\\. Till exempel: Fält1 == I\\\\'m. Du kan även kombinera fler villkor. TIll exempel: F1 == V1 || F1 == V2. Vanligtvis läses operatorerna från vänster till höger. Du kan ändra ordning genom att använda paranteser. TIll exempel: F1 == V1 && ( F2 == V2 || F2 == V3 ). Du kan även söka efter textfält med hjälp av regex: F1 == /Tes.*/i",
|
||||
"fullname": "Namn",
|
||||
"header-logo-title": "Gå tillbaka till din anslagstavlor-sida.",
|
||||
"show-activities": "Show Activities",
|
||||
"show-activities": "Visa aktiviteter",
|
||||
"headerBarCreateBoardPopup-title": "Skapa tavla",
|
||||
"home": "Hem",
|
||||
"import": "Importera",
|
||||
@@ -574,7 +574,7 @@
|
||||
"select-board": "Välj tavla",
|
||||
"set-wip-limit-value": "Ange en gräns för det maximala antalet uppgifter i den här listan",
|
||||
"setWipLimitPopup-title": "Ställ in WIP-gräns",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-add-self": "Tilldela dig nuvarande kort",
|
||||
"shortcut-assign-self": "Tilldela dig nuvarande kort",
|
||||
"shortcut-autocomplete-emoji": "Komplettera automatiskt emoji",
|
||||
"shortcut-autocomplete-members": "Komplettera automatiskt medlemmar",
|
||||
@@ -959,7 +959,7 @@
|
||||
"delete-linked-card-before-this-card": "Du kan inte radera det här kortet innan du raderat länkat kort som har",
|
||||
"delete-linked-cards-before-this-list": "Du kan inte radera den här listan innan du raderat länkade kort som pekar till kort i den här listan",
|
||||
"hide-checked-items": "Dölj markerade objekt",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"hide-finished-checklist": "Göm färdig checklista",
|
||||
"task": "Uppgift",
|
||||
"create-task": "Skapa uppgift",
|
||||
"ok": "OK",
|
||||
@@ -1113,8 +1113,8 @@
|
||||
"created-at-newest-first": "Skapad den (Nyast först)",
|
||||
"created-at-oldest-first": "Skapad den (äldst först)",
|
||||
"links-heading": "Länkar",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"hide-activities-of-all-boards": "Visa inte aktiviteter på alla tavlor",
|
||||
"now-activities-of-all-boards-are-hidden": "Nu är alla aktiviteter på alla tavlor dolda",
|
||||
"move-swimlane": "Flytta simbana",
|
||||
"moveSwimlanePopup-title": "Flytta simbana",
|
||||
"custom-field-stringtemplate": "Textmall",
|
||||
@@ -1197,10 +1197,10 @@
|
||||
"checklistActionsPopup-title": "Liståtgärder",
|
||||
"moveChecklist": "Flytta checklista",
|
||||
"moveChecklistPopup-title": "Flytta checklista",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"newlineBecomesNewChecklistItem": "Varje textrad blir ett objekt i checklistan",
|
||||
"newLineNewItem": "En textrad = ett objekt i checklistan",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Varje textrad blir ett objekt i checklistan, i ursprunglig ordning",
|
||||
"originOrder": "ursprunglig ordning",
|
||||
"copyChecklist": "Kopiera checklista",
|
||||
"copyChecklistPopup-title": "Kopiera checklista",
|
||||
"card-show-lists": "Visa listor på kort",
|
||||
@@ -1254,6 +1254,6 @@
|
||||
"import-board-zip": "Lägga till .zip-filen till tavlans JSON filer, och tavla",
|
||||
"collapse": "Fäll ihop",
|
||||
"uncollapse": "Expandera",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items"
|
||||
"hideCheckedChecklistItems": "Dölj markerade objekt i checklistan",
|
||||
"hideAllChecklistItems": "Dölj alla objekt i checklistan"
|
||||
}
|
||||
Generated
+8
-8
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wekan",
|
||||
"version": "v7.64.0",
|
||||
"version": "v7.69.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
@@ -109,12 +109,12 @@
|
||||
"integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ=="
|
||||
},
|
||||
"@wekanteam/dragscroll": {
|
||||
"version": "github:wekan/dragscroll#6ea215c8cdbde9362ecba8ffb72ce9f9fde842d2",
|
||||
"from": "github:wekan/dragscroll"
|
||||
"version": "git+https://github.com/wekan/dragscroll.git#6ea215c8cdbde9362ecba8ffb72ce9f9fde842d2",
|
||||
"from": "git+https://github.com/wekan/dragscroll.git"
|
||||
},
|
||||
"@wekanteam/exceljs": {
|
||||
"version": "github:wekan/exceljs#e0229907e7a81bc3fe6daf4e42b1fdfbecdcb7cb",
|
||||
"from": "github:wekan/exceljs",
|
||||
"version": "git+https://github.com/wekan/exceljs.git#e0229907e7a81bc3fe6daf4e42b1fdfbecdcb7cb",
|
||||
"from": "git+https://github.com/wekan/exceljs.git",
|
||||
"requires": {
|
||||
"archiver": "^5.0.0",
|
||||
"dayjs": "^1.8.34",
|
||||
@@ -533,9 +533,9 @@
|
||||
"integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw=="
|
||||
},
|
||||
"dayjs": {
|
||||
"version": "1.11.12",
|
||||
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.12.tgz",
|
||||
"integrity": "sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg=="
|
||||
"version": "1.11.13",
|
||||
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz",
|
||||
"integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="
|
||||
},
|
||||
"debug": {
|
||||
"version": "4.3.4",
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wekan",
|
||||
"version": "v7.64.0",
|
||||
"version": "v7.69.0",
|
||||
"description": "Open-Source kanban",
|
||||
"private": true,
|
||||
"repository": {
|
||||
@@ -20,8 +20,8 @@
|
||||
"@babel/runtime": "^7.25.0",
|
||||
"@mapbox/node-pre-gyp": "^1.0.10",
|
||||
"@rwap/jquery-ui-touch-punch": "^1.0.11",
|
||||
"@wekanteam/dragscroll": "github:wekan/dragscroll",
|
||||
"@wekanteam/exceljs": "github:wekan/exceljs",
|
||||
"@wekanteam/dragscroll": "https://github.com/wekan/dragscroll.git",
|
||||
"@wekanteam/exceljs": "https://github.com/wekan/exceljs.git",
|
||||
"@wekanteam/html-to-markdown": "^1.0.2",
|
||||
"@wekanteam/meteor-globals": "^1.1.4",
|
||||
"@wekanteam/meteor-reactive-cache": "^1.0.6",
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<meta charset="utf-8">
|
||||
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>Wekan REST API v7.64</title>
|
||||
<title>Wekan REST API v7.69</title>
|
||||
|
||||
<style>
|
||||
</style>
|
||||
@@ -1549,7 +1549,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
|
||||
<ul class="toc-list-h1">
|
||||
|
||||
<li>
|
||||
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v7.64">Wekan REST API v7.64</a>
|
||||
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v7.69">Wekan REST API v7.69</a>
|
||||
|
||||
</li>
|
||||
|
||||
@@ -2068,7 +2068,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
|
||||
<div class="page-wrapper">
|
||||
<div class="dark-box"></div>
|
||||
<div class="content">
|
||||
<h1 id="wekan-rest-api">Wekan REST API v7.64</h1>
|
||||
<h1 id="wekan-rest-api">Wekan REST API v7.69</h1>
|
||||
<blockquote>
|
||||
<p>Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.</p>
|
||||
</blockquote>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
swagger: '2.0'
|
||||
info:
|
||||
title: Wekan REST API
|
||||
version: v7.64
|
||||
version: v7.69
|
||||
description: |
|
||||
The REST API allows you to control and extend Wekan with ease.
|
||||
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
cd ~/repos/wekan
|
||||
sudo apt-get -y install parallel
|
||||
#sudo apt-get -y install parallel
|
||||
./releases/rebuild-release.sh
|
||||
#./releases/delete-phantomjs.sh
|
||||
cd ~/repos/wekan/.build
|
||||
zip -r wekan-$1-amd64.zip bundle
|
||||
|
||||
{
|
||||
#{
|
||||
#scp ~/repos/wekan/releases/build-bundle-arm64.sh a:/home/wekan/
|
||||
#scp ~/repos/wekan/releases/build-bundle-s390x.sh s:/home/linux1/
|
||||
#scp ~/repos/wekan/releases/build-bundle-ppc64el.sh o:/home/ubuntu/
|
||||
scp ~/repos/wekan/releases/release-x2.sh 20i:/data/websites/
|
||||
scp wekan-$1-amd64.zip 20i:/data/websites/releases.wekan.team/
|
||||
#scp ~/repos/wekan/releases/release-x2.sh 20i:/data/websites/
|
||||
#scp wekan-$1-amd64.zip 20i:/data/websites/releases.wekan.team/
|
||||
#scp wekan-$1-amd64.zip a:/home/wekan/
|
||||
#scp wekan-$1-amd64.zip s:/home/linux1/
|
||||
#scp wekan-$1.zip o:/home/ubuntu/
|
||||
} | parallel -k
|
||||
#} | parallel -k
|
||||
|
||||
cd ..
|
||||
|
||||
#echo "x64 bundle and arm64/s390x build scripts uploaded to x2/a/s."
|
||||
echo "x64 bundle and build script uploaded to 20i."
|
||||
#echo "x64 bundle and build script uploaded to 20i."
|
||||
echo "x64 bundle done."
|
||||
@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
|
||||
appTitle = (defaultText = "Wekan"),
|
||||
# The name of the app as it is displayed to the user.
|
||||
|
||||
appVersion = 764,
|
||||
appVersion = 769,
|
||||
# Increment this for every release.
|
||||
|
||||
appMarketingVersion = (defaultText = "7.64.0~2024-11-20"),
|
||||
appMarketingVersion = (defaultText = "7.69.0~2024-12-02"),
|
||||
# Human-readable presentation of the app version.
|
||||
|
||||
minUpgradableAppVersion = 0,
|
||||
|
||||
+4
-4
@@ -1,5 +1,5 @@
|
||||
name: wekan
|
||||
version: '7.64'
|
||||
version: '7.69'
|
||||
base: core20
|
||||
summary: Open Source kanban
|
||||
description: |
|
||||
@@ -170,9 +170,9 @@ parts:
|
||||
# Cleanup
|
||||
mkdir .build
|
||||
cd .build
|
||||
wget https://github.com/wekan/wekan/releases/download/v7.64/wekan-7.64-amd64.zip
|
||||
unzip wekan-7.64-amd64.zip
|
||||
rm wekan-7.64-amd64.zip
|
||||
wget https://github.com/wekan/wekan/releases/download/v7.69/wekan-7.69-amd64.zip
|
||||
unzip wekan-7.69-amd64.zip
|
||||
rm wekan-7.69-amd64.zip
|
||||
cd ..
|
||||
##cd .build/bundle
|
||||
##find . -type d -name '*-garbage*' | xargs rm -rf
|
||||
|
||||
+128
-6
@@ -183,6 +183,121 @@ REM SET ORACLE_OIM_ENABLED=true
|
||||
|
||||
REM ------------------------------------------------------------
|
||||
|
||||
REM ## ==== OAUTH2 AZURE ====
|
||||
REM ## https://github.com/wekan/wekan/wiki/Azure
|
||||
REM ## 1) Register the application with Azure. Make sure you capture
|
||||
REM ## the application ID as well as generate a secret key.
|
||||
REM ## 2) Configure the environment variables. This differs slightly
|
||||
REM ## by installation type, but make sure you have the following:
|
||||
REM SET OAUTH2_ENABLED=true
|
||||
REM ## Optional OAuth2 CA Cert, see https://github.com/wekan/wekan/issues/3299
|
||||
REM # SET OAUTH2_CA_CERT=ABCD1234
|
||||
REM ## Use OAuth2 ADFS additional changes. Also needs OAUTH2_ENABLED=true setting.
|
||||
REM # SET OAUTH2_ADFS_ENABLED=false
|
||||
REM ## Azure AD B2C. https://github.com/wekan/wekan/issues/5242
|
||||
REM # SET OAUTH2_B2C_ENABLED=false
|
||||
REM ## OAuth2 login style: popup or redirect.
|
||||
REM SET OAUTH2_LOGIN_STYLE=popup
|
||||
REM ## Application GUID captured during app registration:
|
||||
REM SET OAUTH2_CLIENT_ID=xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx
|
||||
REM ## Secret key generated during app registration:
|
||||
REM SET OAUTH2_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
REM SET OAUTH2_SERVER_URL=https://login.microsoftonline.com/
|
||||
REM SET OAUTH2_AUTH_ENDPOINT=/oauth2/v2.0/authorize
|
||||
REM SET OAUTH2_USERINFO_ENDPOINT=https://graph.microsoft.com/oidc/userinfo
|
||||
REM SET OAUTH2_TOKEN_ENDPOINT=/oauth2/v2.0/token
|
||||
REM ## The claim name you want to map to the unique ID field:
|
||||
REM SET OAUTH2_ID_MAP=email
|
||||
REM ## The claim name you want to map to the username field:
|
||||
REM SET OAUTH2_USERNAME_MAP=email
|
||||
REM ## The claim name you want to map to the full name field:
|
||||
REM SET OAUTH2_FULLNAME_MAP=name
|
||||
REM ## The claim name you want to map to the email field:
|
||||
REM SET OAUTH2_EMAIL_MAP=email
|
||||
|
||||
REM ------------------------------------------------------------
|
||||
|
||||
REM ## ==== OAUTH2 Nextcloud ====
|
||||
REM ## 1) Register the application with Nextcloud: https://your.nextcloud/index.php/settings/admin/security
|
||||
REM ## Make sure you capture the application ID as well as generate a secret key.
|
||||
REM ## Use https://your.wekan/_oauth/oidc for the redirect URI.
|
||||
REM ## 2) Configure the environment variables. This differs slightly
|
||||
REM ## by installation type, but make sure you have the following:
|
||||
REM SET OAUTH2_ENABLED=true
|
||||
REM ## OAuth2 login style: popup or redirect.
|
||||
REM SET OAUTH2_LOGIN_STYLE=popup
|
||||
REM ## Application GUID captured during app registration:
|
||||
REM SET OAUTH2_CLIENT_ID=xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx
|
||||
REM ## Secret key generated during app registration:
|
||||
REM SET OAUTH2_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
REM SET OAUTH2_SERVER_URL=https://your-nextcloud.tld
|
||||
REM SET OAUTH2_AUTH_ENDPOINT=/index.php/apps/oauth2/authorize
|
||||
REM SET OAUTH2_USERINFO_ENDPOINT=/ocs/v2.php/cloud/user?format=json
|
||||
REM SET OAUTH2_TOKEN_ENDPOINT=/index.php/apps/oauth2/api/v1/token
|
||||
REM ## The claim name you want to map to the unique ID field:
|
||||
REM SET OAUTH2_ID_MAP=id
|
||||
REM ## The claim name you want to map to the username field:
|
||||
REM SET OAUTH2_USERNAME_MAP=id
|
||||
REM ## The claim name you want to map to the full name field:
|
||||
REM SET OAUTH2_FULLNAME_MAP=display-name
|
||||
REM ## The claim name you want to map to the email field:
|
||||
REM SET OAUTH2_EMAIL_MAP=email
|
||||
|
||||
REM ------------------------------------------------------------
|
||||
|
||||
REM ## ==== OAUTH2 KEYCLOAK ====
|
||||
REM ## https://github.com/wekan/wekan/wiki/Keycloak <== MAPPING INFO, REQUIRED
|
||||
REM SET OAUTH2_ENABLED=true
|
||||
REM ## OAuth2 login style: popup or redirect.
|
||||
REM SET OAUTH2_LOGIN_STYLE=popup
|
||||
REM SET OAUTH2_CLIENT_ID=<Keycloak create Client ID>
|
||||
REM SET OAUTH2_SERVER_URL=<Keycloak server url - https://keycloak.example.com>
|
||||
REM SET OAUTH2_AUTH_ENDPOINT=/realms/<keycloak realm>/protocol/openid-connect/auth
|
||||
REM SET OAUTH2_USERINFO_ENDPOINT=/realms/<keycloak realm>/protocol/openid-connect/userinfo
|
||||
REM SET OAUTH2_TOKEN_ENDPOINT=/realms/<keycloak realm>/protocol/openid-connect/token
|
||||
REM SET OAUTH2_SECRET=<keycloak client secret>
|
||||
REM SET OAUTH2_ID_MAP=sub
|
||||
REM SET OAUTH2_USERNAME_MAP=preferred_username
|
||||
REM SET OAUTH2_EMAIL_MAP=email
|
||||
REM SET OAUTH2_FULLNAME_MAP=name
|
||||
|
||||
REM ------------------------------------------------------------
|
||||
|
||||
REM ## ==== OAUTH2 DOORKEEPER ====
|
||||
REM ## https://github.com/wekan/wekan/issues/1874
|
||||
REM ## https://github.com/wekan/wekan/wiki/OAuth2
|
||||
REM ## Enable the OAuth2 connection
|
||||
REM SET OAUTH2_ENABLED=true
|
||||
REM ## OAuth2 docs: https://github.com/wekan/wekan/wiki/OAuth2
|
||||
REM ## OAuth2 login style: popup or redirect.
|
||||
REM SET OAUTH2_LOGIN_STYLE=popup
|
||||
REM ## OAuth2 Client ID.
|
||||
REM SET OAUTH2_CLIENT_ID=abcde12345
|
||||
REM ## OAuth2 Secret.
|
||||
REM SET OAUTH2_SECRET=54321abcde
|
||||
REM ## OAuth2 Server URL.
|
||||
REM SET OAUTH2_SERVER_URL=https://chat.example.com
|
||||
REM ## OAuth2 Authorization Endpoint.
|
||||
REM SET OAUTH2_AUTH_ENDPOINT=/oauth/authorize
|
||||
REM ## OAuth2 Userinfo Endpoint.
|
||||
REM SET OAUTH2_USERINFO_ENDPOINT=/oauth/userinfo
|
||||
REM ## OAuth2 Token Endpoint.
|
||||
REM SET OAUTH2_TOKEN_ENDPOINT=/oauth/token
|
||||
REM ## OAUTH2 ID Token Whitelist Fields.
|
||||
REM SET OAUTH2_ID_TOKEN_WHITELIST_FIELDS=""
|
||||
REM ## OAUTH2 Request Permissions.
|
||||
REM SET OAUTH2_REQUEST_PERMISSIONS=openid profile email
|
||||
REM ## OAuth2 ID Mapping
|
||||
REM # SET OAUTH2_ID_MAP=
|
||||
REM ## OAuth2 Username Mapping
|
||||
REM # SET OAUTH2_USERNAME_MAP=
|
||||
REM ## OAuth2 Fullname Mapping
|
||||
REM # SET OAUTH2_FULLNAME_MAP=
|
||||
REM ## OAuth2 Email Mapping
|
||||
REM # SET OAUTH2_EMAIL_MAP=
|
||||
|
||||
REM ------------------------------------------------------------
|
||||
|
||||
REM # Enable the OAuth2 connection
|
||||
REM # OAuth2 docs: https://github.com/wekan/wekan/wiki/OAuth2
|
||||
REM # example: OAUTH2_ENABLED=true
|
||||
@@ -242,17 +357,22 @@ REM SET OAUTH2_EMAIL_MAP=
|
||||
|
||||
REM ------------------------------------------------------------
|
||||
|
||||
REM ## ==== LDAP: UNCOMMENT ALL TO ENABLE LDAP ====
|
||||
REM ## https://github.com/wekan/wekan/wiki/LDAP
|
||||
REM ## Note: Do not add single quotes '' to variables. Having spaces still works without quotes where required.
|
||||
|
||||
REM # The default authentication method used if a user does not exist to create and authenticate. Can be set as ldap.
|
||||
REM # (this is set properly in the Admin Panel, changing this item does not remove Password login option)
|
||||
REM SET DEFAULT_AUTHENTICATION_METHOD=ldap
|
||||
|
||||
REM # LDAP_ENABLE : Enable or not the connection by the LDAP
|
||||
REM # example : LDAP_ENABLE=true
|
||||
REM SET LDAP_ENABLE=false
|
||||
REM SET LDAP_ENABLE=true
|
||||
|
||||
REM # LDAP_PORT : The port of the LDAP server
|
||||
REM # example : LDAP_PORT=389
|
||||
REM SET LDAP_PORT=389
|
||||
|
||||
REM # LDAP_HOST : The host server for the LDAP server
|
||||
REM # example : LDAP_HOST=localhost
|
||||
REM SET LDAP_HOST=
|
||||
REM SET LDAP_HOST=localhost
|
||||
|
||||
REM #-----------------------------------------------------------------
|
||||
REM # ==== LDAP AD Simple Auth ====
|
||||
@@ -493,11 +613,13 @@ REM # LOGOUT_ON_MINUTES : The number of minutes
|
||||
REM # example : LOGOUT_ON_MINUTES=55
|
||||
REM SET LOGOUT_ON_MINUTES=
|
||||
|
||||
REM ## https://github.com/wekan/wekan/wiki/CAS
|
||||
REM SET CAS_ENABLED=true
|
||||
REM SET CAS_BASE_URL=https://cas.example.com/cas
|
||||
REM SET CAS_LOGIN_URL=https://cas.example.com/login
|
||||
REM SET CAS_VALIDATE_URL=https://cas.example.com/cas/p3/serviceValidate
|
||||
|
||||
REML ## https://github.com/wekan/wekan/wiki/SAML
|
||||
REM SET SAML_ENABLED=true
|
||||
REM SET SAML_PROVIDER=
|
||||
REM SET SAML_ENTRYPOINT=
|
||||
@@ -510,7 +632,7 @@ REM SET SAML_IDENTIFIER_FORMAT=
|
||||
REM SET SAML_LOCAL_PROFILE_MATCH_ATTRIBUTE=
|
||||
REM SET SAML_ATTRIBUTES=
|
||||
|
||||
REM # Wait spinner to use
|
||||
REM # Wait spinner to use https://github.com/wekan/wekan/wiki/Wait-Spinners
|
||||
REM SET WAIT_SPINNER=Bounce
|
||||
|
||||
REM # https://github.com/wekan/wekan/issues/3585#issuecomment-1021522132
|
||||
|
||||
+5
-1
@@ -230,11 +230,15 @@
|
||||
# OAuth2 login style: popup or redirect.
|
||||
#export OAUTH2_LOGIN_STYLE=redirect
|
||||
#export OAUTH2_CLIENT_ID=<Keycloak create Client ID>
|
||||
#export OAUTH2_SERVER_URL=<Keycloak server name>/auth
|
||||
#export OAUTH2_SERVER_URL=<Keycloak server URL - https://keycloak.example.com>
|
||||
#export OAUTH2_AUTH_ENDPOINT=/realms/<keycloak realm>/protocol/openid-connect/auth
|
||||
#export OAUTH2_USERINFO_ENDPOINT=/realms/<keycloak realm>/protocol/openid-connect/userinfo
|
||||
#export OAUTH2_TOKEN_ENDPOINT=/realms/<keycloak realm>/protocol/openid-connect/token
|
||||
#export OAUTH2_SECRET=<keycloak client secret>
|
||||
#export OAUTH2_ID_MAP=sub
|
||||
#export OAUTH2_USERNAME_MAP=preferred_username
|
||||
#export OAUTH2_EMAIL_MAP=email
|
||||
#export OAUTH2_FULLNAME_MAP=name
|
||||
#-----------------------------------------------------------------
|
||||
# ==== OAUTH2 DOORKEEPER ====
|
||||
# OAuth2 docs: https://github.com/wekan/wekan/wiki/OAuth2
|
||||
|
||||
Reference in new issue
Block a user