Compare commits

...
47 Commits
Author SHA1 Message Date
Lauri Ojansivu 57ddd82ef1 v7.69 2024-12-02 08:22:51 +02:00
Lauri Ojansivu 79f7ec2715 Updated release scripts.
Thanks to xet7 !
2024-12-02 08:14:54 +02:00
Lauri Ojansivu ab4c3bd2fc Updated Keycloak etc login settings at start-wekan.bat and start-wekan.sh.
Thanks to xet7 !
2024-12-02 08:10:32 +02:00
Lauri Ojansivu bd3a7e1068 Updated ChangeLog. 2024-12-02 06:19:38 +02:00
Lauri Ojansivu aa33ead7b2 Updated Windows docs. 2024-12-02 06:17:40 +02:00
Lauri Ojansivu 94cf2a80a5 Updated ChangeLog. 2024-11-28 16:37:52 +02:00
Lauri Ojansivu 2ee959a08e Merge pull request #5597 from malteprang/main
Update docker-compose.yml keycloak part
2024-11-28 16:36:33 +02:00
malteprang 54b7591ca0 Update docker-compose.yml keycloak part 2024-11-28 15:00:00 +01:00
Lauri Ojansivu b3f0392e7d Updated translations. 2024-11-27 16:28:48 +02:00
Lauri Ojansivu 77e7350e96 Updated ChangeLog. 2024-11-27 16:25:51 +02:00
Lauri Ojansivu 9c87572f90 Updated dependencies.
Thanks to developers of dependencies !
2024-11-27 16:24:11 +02:00
Lauri Ojansivu 65765f6c2f Updated ChangeLog. 2024-11-27 16:16:31 +02:00
Lauri Ojansivu 785b312009 Merge pull request #5595 from walster001/main
Fix issue with comments not showing
2024-11-27 14:48:55 +02:00
walster001 1d9a710e3b Fix issue with comments not showing 2024-11-27 22:05:43 +10:30
Lauri Ojansivu 909bf811d1 Merge pull request #5590 from wekan/dependabot/github_actions/docker/metadata-action-5.6.1
Bump docker/metadata-action from 5.5.1 to 5.6.1
2024-11-25 23:19:01 +02:00
dependabot[bot] 90abe01286 Bump docker/metadata-action from 5.5.1 to 5.6.1
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 5.5.1 to 5.6.1.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](https://github.com/docker/metadata-action/compare/8e5442c4ef9f78752691e2d8f8d19755c6f78e81...369eb591f429131d6889c46b94e711f089e6ca96)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-25 21:17:31 +00:00
Lauri Ojansivu 2c13d74c5f Merge pull request #5589 from NadavTasher/feature/change-card-archive-shortcut
Opinion - Change archive-card shortcut to backtick for better ergonomics
2024-11-24 22:13:21 +02:00
Lauri Ojansivu 5d975c5da4 Updated ChangeLog. 2024-11-24 21:17:10 +02:00
Nadav Tasher 35c1057527 Change archive-card shortcut to backtick for better ergonomics 2024-11-24 20:55:36 +02:00
Lauri Ojansivu 3912181857 v7.68 2024-11-24 20:44:30 +02:00
Lauri Ojansivu b9a01eb5d6 Updated ChangeLog. 2024-11-24 20:35:28 +02:00
Lauri Ojansivu 3027f0acb0 Updated translations. 2024-11-24 20:34:34 +02:00
Lauri Ojansivu 609c2a5ddb Updated ChangeLog. 2024-11-24 20:33:32 +02:00
Lauri Ojansivu f76d648012 Merge branch 'feature/new-dockerfile' of https://github.com/NadavTasher/wekan 2024-11-24 20:13:14 +02:00
Nadav Tasher 203bf92a0a Fix data directory regression 2024-11-24 19:49:32 +02:00
Lauri Ojansivu 3e8cc9e905 Merge branch 'feature/new-dockerfile' of https://github.com/NadavTasher/wekan 2024-11-24 04:22:27 +02:00
Nadav Tasher b9f32c1739 Remove ulimit from Dockerfile 2024-11-24 02:01:10 +02:00
Nadav Tasher 7e1c65f616 Removed stack-size changing, replaced with FD limit 2024-11-24 01:29:56 +02:00
Nadav Tasher 447ae93476 Updated NodeJS version to v14.21.4 (Meteor ESM) 2024-11-24 00:46:29 +02:00
Nadav Tasher 6df40f41ac Change source of GitHub wekan packages to HTTPs (eliminates git ls-remote) 2024-11-23 23:21:12 +02:00
Nadav Tasher 3e0ef3d070 Created efficient multi-stage Dockerfile 2024-11-23 23:20:57 +02:00
Lauri Ojansivu 33a17a9a1b v7.67 2024-11-21 01:42:38 +02:00
Lauri Ojansivu aed4bfb7f4 Updated translations. 2024-11-21 01:33:11 +02:00
Nadav Tasher 78f7c3e5bd Updated theming documentation on sidebar coloring 2024-11-21 00:43:20 +02:00
Nadav Tasher d764047c1f Remove non-effective height property (does nothing here) 2024-11-21 00:42:23 +02:00
Nadav Tasher 65015ea7c7 Remove non-required sidebar-shadow div in favor of direct sidebar background 2024-11-21 00:41:57 +02:00
Nadav Tasher 6ef2d9cb9d Remove bottom margin from sidebar (causes an out-of-theme white gap) 2024-11-21 00:24:40 +02:00
Nadav Tasher c39fdab11d Disable scrollbar hiding in swimlanes 2024-11-21 00:14:04 +02:00
Nadav Tasher 547261abb6 Disable scrollbar hiding in sidebar 2024-11-21 00:13:50 +02:00
Nadav Tasher 7696b7b769 Disable scrollbar hiding in list 2024-11-21 00:13:34 +02:00
Nadav Tasher 585635494a Disable scrollbar hiding in cardDetails 2024-11-21 00:13:22 +02:00
Nadav Tasher a36e80099a Revert "Revert some scrollbar, sidebar and list width changes."
This reverts commit 096fe130f6.
2024-11-21 00:10:49 +02:00
Nadav Tasher f5f8a4f6fb Revert "Updated translations."
This reverts commit 83a12a9a26.
2024-11-21 00:10:30 +02:00
Lauri Ojansivu e207bff91f v7.65 2024-11-20 21:22:23 +02:00
Lauri Ojansivu a2c7c230ef Updated ChangeLog. 2024-11-20 21:16:21 +02:00
Lauri Ojansivu 83a12a9a26 Updated translations. 2024-11-20 21:14:01 +02:00
Lauri Ojansivu 096fe130f6 Revert some scrollbar, sidebar and list width changes.
Thanks to xet7 !

Fixes #5585,
fixes https://github.com/wekan/wekan/pull/5583
2024-11-20 21:08:06 +02:00
30 changed files with 417 additions and 273 deletions

No files matched your search

+1 -1
View File
@@ -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 }}
+53
View File
@@ -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
View File
@@ -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
View File
@@ -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
+15 -12
View File
@@ -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;
}
-1
View File
@@ -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;
-1
View File
@@ -152,7 +152,6 @@
display: flex;
overflow-y: auto;
padding: 5px 11px;
scrollbar-width: none;
}
.list-body .minicards {
flex-grow: 1;
+1 -4
View File
@@ -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;
+15 -16
View File
@@ -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 &#10005;
.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 &#10005;
.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%;
+2 -2
View File
@@ -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
View File
@@ -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 -2
View File
@@ -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)
+1 -1
View File
@@ -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; }
```
+2 -2
View File
@@ -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",
+15 -15
View File
@@ -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"
}
+2 -2
View File
@@ -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": "הגדרת גובה מסלול",
+15 -15
View File
@@ -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"
}
+11 -11
View File
@@ -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"
}
+2 -2
View File
@@ -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",
+15 -15
View File
@@ -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"
}
+8 -8
View File
@@ -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
View File
@@ -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",
+3 -3
View File
@@ -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 -1
View File
@@ -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.
+7 -6
View File
@@ -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."
+2 -2
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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