Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f5f0ba721e | ||
|
|
1344f85986 | ||
|
|
e7462ada12 | ||
|
|
11199b6225 | ||
|
|
345aece0f2 | ||
|
|
912c84422b | ||
|
|
b402676079 | ||
|
|
908a5fc60d | ||
|
|
38e57d3635 | ||
|
|
14167b19b9 | ||
|
|
fc548b426d | ||
|
|
71acd9603e | ||
|
|
341f655ab7 | ||
|
|
0c5323c106 | ||
|
|
7f871fdf30 | ||
|
|
6347b40a02 | ||
|
|
bce84a432a | ||
|
|
b6fc4deb63 | ||
|
|
6b48f9e259 | ||
|
|
44b7666426 | ||
|
|
ef70ed76a2 | ||
|
|
a1a1b3d1ee | ||
|
|
0326757399 | ||
|
|
edbc8ed92b | ||
|
|
07e9ec0617 | ||
|
|
18d0fa4327 | ||
|
|
666ee84033 | ||
|
|
120642f47d | ||
|
|
148b81262d | ||
|
|
c41467f76e | ||
|
|
c83e83b8b1 | ||
|
|
563a508e26 | ||
|
|
1d8347cc23 | ||
|
|
874abf2c41 | ||
|
|
3e18f820ea | ||
|
|
b571f1c953 | ||
|
|
fd69c7ceb8 | ||
|
|
d15faa1890 | ||
|
|
0c7e12c5e7 | ||
|
|
36a3077853 | ||
|
|
51bc23dbd9 | ||
|
|
0b1e0bd395 | ||
|
|
151aafd114 | ||
|
|
16c8a65a1c | ||
|
|
f3133e9cd8 | ||
|
|
de84aa7674 | ||
|
|
1bdbfe86bb | ||
|
|
397b9f439e | ||
|
|
261e0aee0f | ||
|
|
a6d9bde658 | ||
|
|
8d0a07e1a8 | ||
|
|
659615e6f2 | ||
|
|
9f0b82c0d5 | ||
|
|
9a23dcc991 | ||
|
|
980d345305 | ||
|
|
41f76ee974 | ||
|
|
83a60e6303 | ||
|
|
7b23c85117 | ||
|
|
ff3900d100 | ||
|
|
e5e4b8ebfb | ||
|
|
9516b75d65 |
No files matched your search
@@ -48,14 +48,14 @@ jobs:
|
||||
# https://github.com/docker/metadata-action
|
||||
- name: Extract Docker metadata
|
||||
id: meta
|
||||
uses: docker/metadata-action@369eb591f429131d6889c46b94e711f089e6ca96
|
||||
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804
|
||||
with:
|
||||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||||
|
||||
# Build and push Docker image with Buildx (don't push on PR)
|
||||
# https://github.com/docker/build-push-action
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@48aba3b46d1b1fec4febb7c5d0c644b249a11355
|
||||
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4
|
||||
with:
|
||||
context: .
|
||||
push: ${{ github.event_name != 'pull_request' }}
|
||||
|
||||
@@ -25,6 +25,6 @@ jobs:
|
||||
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
||||
|
||||
- name: Run chart-releaser
|
||||
uses: helm/chart-releaser-action@v1.6.0
|
||||
uses: helm/chart-releaser-action@v1.7.0
|
||||
env:
|
||||
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
||||
@@ -15,6 +15,94 @@ Fixing other platforms In Progress.
|
||||
|
||||
[How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585)
|
||||
|
||||
# v7.83 2025-03-08 WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- [Adding Development information to readme](https://github.com/wekan/wekan/pull/5702).
|
||||
Thanks to adam-fu.
|
||||
- Updated GitHub actions.
|
||||
[Part 1](https://github.com/wekan/wekan/pull/5703),
|
||||
[Part 2](https://github.com/wekan/wekan/pull/5704).
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Removed siteurl from manifest to fix browser console error about not matching URL](https://github.com/wekan/wekan/commit/b402676079517e463ed291285f69c04126a00975).
|
||||
Thanks to xet7.
|
||||
- [Exception while invoking method 'copyCard' TypeError: Cannot read property 'name' of undefined](https://github.com/wekan/wekan/pull/5711).
|
||||
Thanks to Firas-Git.
|
||||
- [Comment out error message of non-existing Custom Field](https://github.com/wekan/wekan/commit/908a5fc60d5d574a36d4bfd496d3a16fd267ae75).
|
||||
Thanks to xet7.
|
||||
- [Reverted Docker changes of WeKan v7.68 to get WeKan Docker version working](https://github.com/wekan/wekan/commit/e7462ada12ec8edfd08d6c3b3a97a034211d51eb).
|
||||
Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.82 2025-02-24 WeKan ® release
|
||||
|
||||
v7.82 Docker version is broken: https://github.com/wekan/wekan/issues/5697 . Snap Candidate works.
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Add possibility to use a token in place of ipaddress to access metrics route](https://github.com/wekan/wekan/pull/5682).
|
||||
Thanks to salleman33.
|
||||
|
||||
and adds the following updates:
|
||||
|
||||
- [Updated dependencies](https://github.com/wekan/wekan/pull/5691).
|
||||
Thanks to dependabot.
|
||||
- [Updated requirements at docs](https://github.com/wekan/wekan/commit/148b81262d0d143460e881d645fefa6740aae40d).
|
||||
Thanks to mueller-ma.
|
||||
- [Updated dependencies](https://github.com/wekan/wekan/commit/666ee8403388f7d5e1a30cf0e53bc46a70bf1c40).
|
||||
Thanks to developes of dependencies.
|
||||
- [Fixed building WeKan. Updated dompurify. Forked Meteor 2.14 version of meteor-node-stubs to update elliptic](https://github.com/wekan/wekan/commit/18d0fa43275cd2955dd6416213e316ca08a62255).
|
||||
Thanks to developers of depedencies and xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Added missing ) character](https://github.com/wekan/wekan/commit/563a508e269be87eb713e2888409525e1ba82001).
|
||||
Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.81 2025-02-07 WeKan ® release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Helm Chart: Added secretManaged value for enabling or disabling the creation of secret by Helm](https://github.com/wekan/charts/pull/39).
|
||||
Thanks to salleman33.
|
||||
|
||||
and adds the following updates:
|
||||
|
||||
- [Updated Docker Actions](https://github.com/wekan/wekan/pull/5670).
|
||||
Thanks to dependabot.
|
||||
- [Added Meteor 3.1 learning course to docs](https://github.com/wekan/wekan/commit/0c7e12c5e7f322bdbaaa61100e66153dd0b92e4d).
|
||||
Thanks to producer of learning course.
|
||||
- [Upgraded to MongoDB 6.0.20 at Snap Candidate](https://github.com/wekan/wekan/commit/b571f1c9530b899db75bf28a03c18277a9b77cb8).
|
||||
Thanks to MongoDB developers.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fixed env variable METRICS_ACCEPTED_IP_ADDRESS to be same as at docs](https://github.com/wekan/wekan/commit/0b1e0bd39569175668c195b63dde91bf0e6f1b24).
|
||||
Thanks to salleman33.
|
||||
- [Fixed misspelling of hours at env variable setting LDAP_BACKGROUND_SYNC_INTERVAL](https://github.com/wekan/wekan/commit/36a307785369337a788499065f64175971878930).
|
||||
Thanks to hubermam.
|
||||
- [Helm Chart: Restore pod security context in deployment](https://github.com/wekan/charts/pull/40).
|
||||
Thanks to adalinesimonian.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.80 2025-01-12 WeKan ® release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Fix card updating issues with ReactiveCache when using keyboard shortcuts](https://github.com/wekan/wekan/pull/5654).
|
||||
Thanks to NadavTasher.
|
||||
- [Fix assignee toggling keyboard shortcut to only toggle current board members](https://github.com/wekan/wekan/pull/5655).
|
||||
Thanks to NadavTasher.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.79 2025-01-02 WeKan ® release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
+133
-95
@@ -1,76 +1,31 @@
|
||||
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
|
||||
FROM ubuntu:24.04
|
||||
LABEL maintainer="wekan"
|
||||
LABEL org.opencontainers.image.ref.name="ubuntu"
|
||||
LABEL org.opencontainers.image.version="24.04"
|
||||
LABEL org.opencontainers.image.source="https://github.com/wekan/wekan"
|
||||
|
||||
# Set default environment variables
|
||||
ENV WITH_API=true \
|
||||
# 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 \
|
||||
RESULTS_PER_PAGE="" \
|
||||
DEFAULT_BOARD_ID="" \
|
||||
ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE=3 \
|
||||
@@ -203,36 +158,119 @@ ENV WITH_API=true \
|
||||
WRITABLE_PATH=/data \
|
||||
S3=""
|
||||
|
||||
# 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
|
||||
# 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
|
||||
|
||||
# Change to the wekan user
|
||||
USER wekan
|
||||
|
||||
# Set the port to listen on
|
||||
ENV PORT=8080
|
||||
EXPOSE ${PORT}
|
||||
EXPOSE $PORT
|
||||
|
||||
# Define the stop signal for node
|
||||
STOPSIGNAL SIGINT
|
||||
STOPSIGNAL SIGKILL
|
||||
WORKDIR /home/wekan/app
|
||||
|
||||
# Declare a volume on /data
|
||||
VOLUME /data
|
||||
|
||||
# Set startup command
|
||||
CMD ["node", "/wekan/main.js"]
|
||||
#---------------------------------------------------------------------
|
||||
# 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"]
|
||||
@@ -107,6 +107,14 @@ that by providing one-click installation on various platforms.
|
||||
We also welcome sponsors for features and bugfixes.
|
||||
By working directly with WeKan ® you get the benefit of active maintenance and new features added by growing WeKan ® developer community.
|
||||
|
||||
## Getting Started with Development
|
||||
|
||||
The default branch uses [Meteor 2 with Node.js 14](https://wekan.github.io/install/).
|
||||
|
||||
To contribute, [create a fork](https://github.com/wekan/wekan/wiki/Emoji#2-create-fork-of-httpsgithubcomwekanwekan-at-github-web-page) and run `./rebuild-wekan.sh` (or `./rebuild-wekan.bat` on Windows) as detailed [here](https://github.com/wekan/wekan/wiki/Emoji#3-select-option-1-to-install-dependencies-and-then-enter). Once you're ready, please test your code and [submit a pull request (PR)](https://github.com/wekan/wekan/wiki/Emoji#7-test).
|
||||
|
||||
Please refer to the [developer documentation](https://github.com/wekan/wekan/wiki/Developer-Documentation) for more information.
|
||||
|
||||
## Screenshot
|
||||
|
||||
[More screenshots at Features page](https://github.com/wekan/wekan/wiki/Features)
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
|
||||
appVersion: "v7.79.0"
|
||||
appVersion: "v7.83.0"
|
||||
files:
|
||||
userUploads:
|
||||
- README.md
|
||||
|
||||
+13
-11
@@ -133,7 +133,7 @@ Mousetrap.bind(numbArray, (evt, key) => {
|
||||
const cardIds = MultiSelection.getSelectedCardIds();
|
||||
for (const cardId of cardIds)
|
||||
{
|
||||
card = ReactiveCache.getCard(cardId);
|
||||
card = Cards.findOne(cardId);
|
||||
if(num <= board.labels.length)
|
||||
{
|
||||
card.removeLabel(labels[num-1]["_id"]);
|
||||
@@ -157,7 +157,7 @@ Mousetrap.bind(numArray, (evt, key) => {
|
||||
const cardIds = MultiSelection.getSelectedCardIds();
|
||||
for (const cardId of cardIds)
|
||||
{
|
||||
card = ReactiveCache.getCard(cardId);
|
||||
card = Cards.findOne(cardId);
|
||||
if(num <= board.labels.length)
|
||||
{
|
||||
card.addLabel(labels[num-1]["_id"]);
|
||||
@@ -171,7 +171,7 @@ Mousetrap.bind(numArray, (evt, key) => {
|
||||
return;
|
||||
}
|
||||
if (ReactiveCache.getCurrentUser().isBoardMember()) {
|
||||
const card = ReactiveCache.getCard(cardId);
|
||||
const card = Cards.findOne(cardId);
|
||||
if(num <= board.labels.length)
|
||||
{
|
||||
card.toggleLabel(labels[num-1]["_id"]);
|
||||
@@ -190,21 +190,23 @@ Mousetrap.bind(_.range(1, 10).map(x => `ctrl+alt+${x}`), (evt, key) => {
|
||||
|
||||
const memberIndex = parseInt(key.split("+").pop()) - 1;
|
||||
const currentBoard = Utils.getCurrentBoard();
|
||||
const boardMembers = currentBoard.memberUsers();
|
||||
const validBoardMembers = currentBoard.memberUsers().filter(member => member.isBoardMember());
|
||||
|
||||
if (memberIndex >= boardMembers.length)
|
||||
if (memberIndex >= validBoardMembers.length)
|
||||
return;
|
||||
|
||||
const memberId = validBoardMembers[memberIndex]._id;
|
||||
|
||||
if (MultiSelection.isActive()) {
|
||||
for (const cardId of MultiSelection.getSelectedCardIds())
|
||||
ReactiveCache.getCard(cardId).toggleAssignee(boardMembers[memberIndex]._id);
|
||||
Cards.findOne(cardId).toggleAssignee(memberId);
|
||||
} else {
|
||||
const cardId = getSelectedCardId();
|
||||
|
||||
if (!cardId)
|
||||
return;
|
||||
|
||||
ReactiveCache.getCard(cardId).toggleAssignee(boardMembers[memberIndex]._id);
|
||||
Cards.findOne(cardId).toggleAssignee(memberId);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -220,7 +222,7 @@ Mousetrap.bind('m', evt => {
|
||||
}
|
||||
|
||||
if (ReactiveCache.getCurrentUser().isBoardMember()) {
|
||||
const card = ReactiveCache.getCard(cardId);
|
||||
const card = Cards.findOne(cardId);
|
||||
card.toggleAssignee(currentUserId);
|
||||
// We should prevent scrolling in card when spacebar is clicked
|
||||
// This should do it according to Mousetrap docs, but it doesn't
|
||||
@@ -240,7 +242,7 @@ Mousetrap.bind('space', evt => {
|
||||
}
|
||||
|
||||
if (ReactiveCache.getCurrentUser().isBoardMember()) {
|
||||
const card = ReactiveCache.getCard(cardId);
|
||||
const card = Cards.findOne(cardId);
|
||||
card.toggleMember(currentUserId);
|
||||
// We should prevent scrolling in card when spacebar is clicked
|
||||
// This should do it according to Mousetrap docs, but it doesn't
|
||||
@@ -260,7 +262,7 @@ const archiveCard = evt => {
|
||||
}
|
||||
|
||||
if (Utils.canModifyBoard()) {
|
||||
const card = ReactiveCache.getCard(cardId);
|
||||
const card = Cards.findOne(cardId);
|
||||
card.archive();
|
||||
// We should prevent scrolling in card when spacebar is clicked
|
||||
// This should do it according to Mousetrap docs, but it doesn't
|
||||
@@ -289,7 +291,7 @@ Mousetrap.bind('n', evt => {
|
||||
|
||||
if (Utils.canModifyBoard()) {
|
||||
// Find the current hovered card
|
||||
const card = ReactiveCache.getCard(cardId);
|
||||
const card = Cards.findOne(cardId);
|
||||
|
||||
// Find the button and click it
|
||||
$(`#js-list-${card.listId} .list-body .minicards .open-minicard-composer`).click();
|
||||
|
||||
+6
-2
@@ -577,10 +577,14 @@ services:
|
||||
# If the sync of the users should be done in the background
|
||||
#- LDAP_BACKGROUND_SYNC=false
|
||||
#
|
||||
# At which interval does the background task sync.
|
||||
# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
|
||||
# The format must be as specified in:
|
||||
# https://bunkat.github.io/later/parsers.html#text
|
||||
#- LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hour
|
||||
#- LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hours
|
||||
# At which interval does the background task sync in milliseconds.
|
||||
# Leave this unset, so it uses default, and does not crash.
|
||||
# https://github.com/wekan/wekan/issues/2354#issuecomment-515305722
|
||||
- LDAP_BACKGROUND_SYNC_INTERVAL=''
|
||||
#
|
||||
#- LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false
|
||||
#
|
||||
|
||||
@@ -575,10 +575,14 @@ services:
|
||||
# If the sync of the users should be done in the background
|
||||
#- LDAP_BACKGROUND_SYNC=false
|
||||
#
|
||||
# At which interval does the background task sync.
|
||||
# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
|
||||
# The format must be as specified in:
|
||||
# https://bunkat.github.io/later/parsers.html#text
|
||||
#- LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hour
|
||||
#- LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hours
|
||||
# At which interval does the background task sync in milliseconds.
|
||||
# Leave this unset, so it uses default, and does not crash.
|
||||
# https://github.com/wekan/wekan/issues/2354#issuecomment-515305722
|
||||
- LDAP_BACKGROUND_SYNC_INTERVAL=''
|
||||
#
|
||||
#- LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false
|
||||
#
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
- 2024-08 Design discussion here: https://github.com/wekan/wekan/discussions/5507
|
||||
- Original WeKan Design:
|
||||
- Uses WeKan style confirm popups `Popup.afterConfirm(` , translations etc. Please look at existing code to keep same style.
|
||||
- Kanban, the good parts. Like was done when figuring out best design for Swimlanes https://github.com/wekan/wekan/issues/955
|
||||
- Intuitive, easy to figure out, prevent messing up something https://github.com/wekan/wekan/wiki/Monkey-Proof-Software
|
||||
- Polished UI/UX
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
## Learning Course: Your First Meteor 3.1 Application
|
||||
|
||||
- https://www.youtube.com/watch?v=aFZzBb2oRi8&list=PLKKckIyt2nF863eP16mvVgWKR4JDyJoKy
|
||||
|
||||
## Meteor 3 Example Code
|
||||
|
||||
- https://github.com/fredmaiaarantes/simpletasks
|
||||
|
||||
@@ -1,8 +1 @@
|
||||
Wekan works on x64. There is not yet version for [Raspberry Pi](https://github.com/wekan/wekan/issues/1053).
|
||||
|
||||
Wekan requires MongoDB 3.2.x . For other requirements and versions see [VirtualBox scripts](https://github.com/wekan/wekan-maintainer/tree/master/virtualbox) or [Dockerfile](https://github.com/wekan/wekan/blob/main/Dockerfile).
|
||||
|
||||
Known bugs with other versions:
|
||||
- Node 6.x: 100% CPU usage.
|
||||
- MongoDB 3.4.x: Wekan crashes when uploading attachment.
|
||||
- [Hardened kernel prevents creating new Wekan boards at Sandstorm](https://github.com/wekan/wekan/issues/1398)
|
||||
WeKan Requiremens are at https://wekan.github.io/install/
|
||||
+35
-7
@@ -52,7 +52,15 @@ sudo snap set wekan ldap-authentication-userdn='CN=LDAP-User,OU=Service Accounts
|
||||
sudo snap set wekan ldap-authentication-password='<password>'
|
||||
sudo snap set wekan ldap-log-enabled='true'
|
||||
sudo snap set wekan ldap-background-sync='true'
|
||||
sudo snap set wekan ldap-background-sync-interval='every 1 minute'
|
||||
# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
|
||||
# The format must be as specified in:
|
||||
# https://bunkat.github.io/later/parsers.html#text
|
||||
#sudo snap set wekan ldap-background-sync-interval='every 1 hours'
|
||||
# At which interval does the background task sync in milliseconds.
|
||||
# If not in use, Leave this unset, so it uses default, and does not crash.
|
||||
# https://github.com/wekan/wekan/issues/2354#issuecomment-515305722
|
||||
#sudo snap set wekan ldap-background-sync-interval=''
|
||||
sudo snap set wekan ldap-background-sync-interval='every 1 hours'
|
||||
sudo snap set wekan ldap-background-sync-keep-existant-users-updated='true'
|
||||
sudo snap set wekan ldap-background-sync-import-new-users='true'
|
||||
sudo snap set wekan ldap-encryption='false'
|
||||
@@ -100,7 +108,15 @@ snap set wekan ldap-basedn='dc=example,dc=com'
|
||||
snap set wekan ldap-background-sync='true'
|
||||
snap set wekan ldap-background-sync-keep-existant-users-updated='true'
|
||||
snap set wekan ldap-background-sync-import-new-users='true'
|
||||
snap set wekan ldap-background-sync-interval='Every 1 minute'
|
||||
# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
|
||||
# The format must be as specified in:
|
||||
# https://bunkat.github.io/later/parsers.html#text
|
||||
#sudo snap set wekan ldap-background-sync-interval='every 1 hours'
|
||||
# At which interval does the background task sync in milliseconds.
|
||||
# If not in use, Leave this unset, so it uses default, and does not crash.
|
||||
# https://github.com/wekan/wekan/issues/2354#issuecomment-515305722
|
||||
#sudo snap set wekan ldap-background-sync-interval=''
|
||||
snap set wekan ldap-background-sync-interval='every 1 hours'
|
||||
snap set wekan ldap-merge-existing-users='true'
|
||||
snap set wekan ldap-user-search-field='uid'
|
||||
snap set wekan ldap-user-search-filter='(&(objectclass=person))'
|
||||
@@ -121,7 +137,15 @@ sudo snap set wekan ldap-authentication-password='********'
|
||||
sudo snap set wekan ldap-authentication-userdn='cn=admin,dc=*******,dc=lan'
|
||||
sudo snap set wekan ldap-background-sync='true'
|
||||
sudo snap set wekan ldap-background-sync-import-new-users='true'
|
||||
sudo snap set wekan ldap-background-sync-interval='Every 1 minute'
|
||||
# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
|
||||
# The format must be as specified in:
|
||||
# https://bunkat.github.io/later/parsers.html#text
|
||||
#sudo snap set wekan ldap-background-sync-interval='every 1 hours'
|
||||
# At which interval does the background task sync in milliseconds.
|
||||
# If not in use, Leave this unset, so it uses default, and does not crash.
|
||||
# https://github.com/wekan/wekan/issues/2354#issuecomment-515305722
|
||||
#sudo snap set wekan ldap-background-sync-interval=''
|
||||
sudo snap set wekan ldap-background-sync-interval='every 1 hours'
|
||||
sudo snap set wekan ldap-basedn='dc=*****,dc=lan'
|
||||
sudo snap set wekan ldap-email-field='mail'
|
||||
sudo snap set wekan ldap-enable='true'
|
||||
@@ -316,10 +340,14 @@ services:
|
||||
# LDAP_BACKGROUND_SYNC : If the sync of the users should be done in the background
|
||||
# example : LDAP_BACKGROUND_SYNC=true
|
||||
- LDAP_BACKGROUND_SYNC=false
|
||||
# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync
|
||||
# example : LDAP_BACKGROUND_SYNC_INTERVAL='every 15 minutes'
|
||||
# for more info: http://bunkat.github.io/later/parsers.html#text
|
||||
- LDAP_BACKGROUND_SYNC_INTERVAL='every 1 hour'
|
||||
# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
|
||||
# The format must be as specified in:
|
||||
# https://bunkat.github.io/later/parsers.html#text
|
||||
#- LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hours
|
||||
# At which interval does the background task sync in milliseconds.
|
||||
# Leave this unset, so it uses default, and does not crash.
|
||||
# https://github.com/wekan/wekan/issues/2354#issuecomment-515305722
|
||||
- LDAP_BACKGROUND_SYNC_INTERVAL=''
|
||||
# LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED :
|
||||
# example : LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=true
|
||||
- LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
- At some cases [Hardened kernel may prevent creating new Wekan boards at Sandstorm](https://github.com/wekan/wekan/issues/1398)
|
||||
|
||||
# Sandstorm at Debian and Ubuntu
|
||||
|
||||
### Sandstorm CloudFlare DNS settings
|
||||
|
||||
Sandstorm works when configured to full domain, with CloudFlare SSL/TLS, with Caddy.
|
||||
Not subdomain, not sub-url, and not with Let's Encrypt that AFAIK does not support wildcard SSL/TLS.
|
||||
|
||||
Source: https://github.com/sandstorm-io/sandstorm/issues/3714#issuecomment-2366866243
|
||||
|
||||
For me, it works at CloudFlare DNS using TLS Strict checking and DNS setting clicking to orange cloud icon to make TLS proxy with Origin certificate, that is at /etc/caddy/certs/example.com.pem with above private key and below cert.
|
||||
@@ -13,17 +18,52 @@ DNS records:
|
||||
```
|
||||
Caddyfile, proxy to KVM VM that is running Debian and Sandstorm:
|
||||
```
|
||||
# Full domain where Sandstorm login is. Not subdomain. Not sub-url.
|
||||
*.example.com example.com {
|
||||
tls {
|
||||
load /etc/caddy/certs
|
||||
alpn http/1.1
|
||||
}
|
||||
# If KVM VM, it's IP address:
|
||||
#reverse_proxy 123.123.123.123:80
|
||||
# Localhost port 81, when not in KVM VM
|
||||
reverse_proxy 127.0.0.1:81
|
||||
}
|
||||
|
||||
reverse_proxy 123.123.123.123:80
|
||||
blog.somecompany.com {
|
||||
tls {
|
||||
load /etc/caddy/certs
|
||||
alpn http/1.1
|
||||
}
|
||||
# Blog hosted at Sandstorm WordPress
|
||||
reverse_proxy 127.0.0.1:81
|
||||
}
|
||||
|
||||
othercompany.com {
|
||||
tls {
|
||||
load /etc/caddy/certs
|
||||
alpn http/1.1
|
||||
}
|
||||
# Website hosted at Sandstorm Hacker CMS
|
||||
reverse_proxy 127.0.0.1:81
|
||||
}
|
||||
```
|
||||
At /opt/sandstorm/sandstorm.conf is domain, http port etc.
|
||||
If having Sandstorm inside of KVM VM: https://github.com/wekan/wekan/blob/main/docs/Platforms/FOSS/Snap/Many-Snaps-on-LXC.md
|
||||
|
||||
At /opt/sandstorm/sandstorm.conf is domain where Sandstorm login is, http port etc.
|
||||
```
|
||||
SERVER_USER=sandstorm
|
||||
PORT=81
|
||||
MONGO_PORT=6081
|
||||
BIND_IP=127.0.0.1
|
||||
BASE_URL=https://example.com
|
||||
WILDCARD_HOST=*.example.com
|
||||
UPDATE_CHANNEL=dev
|
||||
ALLOW_DEV_ACCOUNTS=false
|
||||
SMTP_LISTEN_PORT=25
|
||||
#SANDCATS_BASE_DOMAIN=sandcats.io
|
||||
#HTTPS_PORT=443
|
||||
```
|
||||
Some related info at:
|
||||
|
||||
https://github.com/wekan/wekan/wiki/Caddy-Webserver-Config
|
||||
|
||||
@@ -520,6 +520,15 @@ services:
|
||||
# https://bunkat.github.io/later/parsers.html#text
|
||||
#- LDAP_BACKGROUND_SYNC_INTERVAL='every 1 hour'
|
||||
#
|
||||
# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
|
||||
# The format must be as specified in:
|
||||
# https://bunkat.github.io/later/parsers.html#text
|
||||
#- LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hours
|
||||
# At which interval does the background task sync in milliseconds.
|
||||
# Leave this unset, so it uses default, and does not crash.
|
||||
# https://github.com/wekan/wekan/issues/2354#issuecomment-515305722
|
||||
- LDAP_BACKGROUND_SYNC_INTERVAL=''
|
||||
#
|
||||
# LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED :
|
||||
# example : LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=true
|
||||
#- LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false
|
||||
|
||||
@@ -10,19 +10,19 @@ This is without container (without Docker or Snap).
|
||||
|
||||
Right click and download files 1-4:
|
||||
|
||||
1. [wekan-7.79-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.79/wekan-7.79-amd64-windows.zip)
|
||||
1. [wekan-7.83-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.83/wekan-7.83-amd64-windows.zip)
|
||||
|
||||
2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe)
|
||||
|
||||
3. [mongodb-windows-x86_64-6.0.19-signed.msi](https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.19-signed.msi)
|
||||
3. [mongodb-windows-x86_64-6.0.20-signed.msi](https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.20-signed.msi)
|
||||
|
||||
4. [start-wekan.bat](https://raw.githubusercontent.com/wekan/wekan/main/start-wekan.bat)
|
||||
|
||||
5. Copy files from steps 1-4 with USB stick or DVD to offline Windows computer
|
||||
|
||||
6. Double click `mongodb-windows-x86_64-6.0.19-signed.msi` . In installer, uncheck downloading MongoDB compass.
|
||||
6. Double click `mongodb-windows-x86_64-6.0.20-signed.msi` . In installer, uncheck downloading MongoDB compass.
|
||||
|
||||
7. Unzip `wekan-7.79-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files:
|
||||
7. Unzip `wekan-7.83-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files:
|
||||
|
||||
```
|
||||
bundle (directory)
|
||||
|
||||
@@ -411,10 +411,10 @@
|
||||
"user-can-not-export-card-to-pdf": "User can not export card to PDF",
|
||||
"exportBoardPopup-title": "Export board",
|
||||
"exportCardPopup-title": "Export card",
|
||||
"sort": "Sort",
|
||||
"sorted": "Sorted",
|
||||
"remove-sort": "Remove sort",
|
||||
"sort-desc": "Click to Sort List",
|
||||
"sort": "رتب",
|
||||
"sorted": "مرتبة",
|
||||
"remove-sort": "إزالة الفرز\n ",
|
||||
"sort-desc": "انقر لفرز القائمة\n ",
|
||||
"list-sort-by": "Sort the List By:",
|
||||
"list-label-modifiedAt": "Last Access Time",
|
||||
"list-label-title": "Name of the List",
|
||||
@@ -1207,7 +1207,7 @@
|
||||
"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",
|
||||
"originOrder": "النظام الأصلي\n ",
|
||||
"copyChecklist": "Copy Checklist",
|
||||
"copyChecklistPopup-title": "Copy Checklist",
|
||||
"card-show-lists": "Card Show Lists",
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
"activity-archived": "hat %s ins Archiv verschoben",
|
||||
"activity-attached": "hat %s an %s angehängt",
|
||||
"activity-created": "hat %s erstellt",
|
||||
"activity-changedListTitle": "Die Liste wurde umbenannt zu",
|
||||
"activity-changedListTitle": "Liste umbenannt zu %s",
|
||||
"activity-customfield-created": "hat das benutzerdefinierte Feld %s erstellt",
|
||||
"activity-excluded": "hat %s von %s ausgeschlossen",
|
||||
"activity-imported": "hat %s in %s von %s importiert",
|
||||
@@ -1257,16 +1257,16 @@
|
||||
"text": "Text",
|
||||
"translation-text": "Übersetzungstext",
|
||||
"show-subtasks-field": "Teilaufgaben Feld anzeigen",
|
||||
"show-week-of-year": "Show week of year (ISO 8601)",
|
||||
"show-week-of-year": "Kalenderwoche anzeigen (ISO 8601)",
|
||||
"convert-to-markdown": "Als Markdown konvertieren",
|
||||
"import-board-zip": "Erstelle .zip Datei, die Board JSON Dateien und Board Unterverzeichnisse mit Boardname inklusive Anhängen enthält",
|
||||
"collapse": "Einklappen",
|
||||
"uncollapse": "Aufklappen",
|
||||
"hideCheckedChecklistItems": "Erledigte Checklisteneinträge ausblenden",
|
||||
"hideAllChecklistItems": "Verberge alle Checklisteneinträge",
|
||||
"support": "Unterstützung",
|
||||
"supportPopup-title": "Unterstützung",
|
||||
"accessibility-page-enabled": "Barrierefreie Seite freigeschaltet",
|
||||
"accessibility-title": "Barrierefreies Thema",
|
||||
"accessibility-content": "Barrierefreie Inhalte"
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Bedienungshilfe Seite freigeschaltet",
|
||||
"accessibility-title": "Bedienungshilfe Titel",
|
||||
"accessibility-content": "Bedienungshilfe Inhalt"
|
||||
}
|
||||
@@ -90,8 +90,8 @@
|
||||
"set-list-width": "Setze Breite",
|
||||
"set-list-width-value": "Setze min & max Breite (Pixels)",
|
||||
"list-width-error-message": "Breite der Liste muss eine Ganzzahl größer als 100 sein",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"keyboard-shortcuts-enabled": "Tastaturkürzel sind aktiviert. Klicke, um sie zu deaktivieren.",
|
||||
"keyboard-shortcuts-disabled": "Tastaturkürzel sind deaktiviert. Klicke, um sie zu aktivieren.",
|
||||
"setSwimlaneHeightPopup-title": "Stelle die Höhe der Swimlane ein",
|
||||
"set-swimlane-height": "Stelle die Höhe der Swimlane ein",
|
||||
"set-swimlane-height-value": "Höhe der Swimlane (Pixel)",
|
||||
@@ -266,9 +266,9 @@
|
||||
"checklists": "Checklisten",
|
||||
"click-to-star": "Klicken Sie, um das Board mit einem Stern zu markieren.",
|
||||
"click-to-unstar": "Klicken Sie, um den Stern vom Board zu entfernen.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"click-to-enable-auto-width": "Automatische Listenbreite ist deaktiviert. Klicke, um sie zu aktivieren.",
|
||||
"click-to-disable-auto-width": "Automatische Listenbreite ist aktiviert. Klicke, um sie zu deaktivieren.",
|
||||
"auto-list-width": "Automatische Listenbreite",
|
||||
"clipboard": "Zwischenablage oder Drag & Drop",
|
||||
"close": "Schließen",
|
||||
"close-board": "Board schließen",
|
||||
@@ -383,7 +383,7 @@
|
||||
"email-sent": "E-Mail gesendet",
|
||||
"email-verifyEmail-subject": "Bestätigen Sie ihre E-Mail-Adresse auf __siteName__",
|
||||
"email-verifyEmail-text": "Hallo __user__,\n\num ihre E-Mail-Adresse zu bestätigen, klicken Sie bitte auf folgenden Link:\n\n__url__\n\nDanke.",
|
||||
"enable-vertical-scrollbars": "Enable vertical scrollbars",
|
||||
"enable-vertical-scrollbars": "Vertikale Bildlaufleisten aktivieren",
|
||||
"enable-wip-limit": "WIP-Limit einschalten",
|
||||
"error-board-doesNotExist": "Dieses Board existiert nicht",
|
||||
"error-board-notAdmin": "Um das zu tun, müssen Sie Administrator dieses Boards sein",
|
||||
@@ -610,7 +610,7 @@
|
||||
"has-spenttime-cards": "Hat Karten mit aufgewendeten Zeiten",
|
||||
"time": "Zeit",
|
||||
"title": "Titel",
|
||||
"toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).",
|
||||
"toggle-assignees": "Schalte Zugewiesene 1-9 für die Karte um (in der Reihenfolge der Hinzufügung zum Board).",
|
||||
"toggle-labels": "Label 1-9 zur Karte hinzufügen. Bei Mehrfachauswahl Label 1-9 hinzufügen",
|
||||
"remove-labels-multiselect": "Labels 1-9 bei Karten-Mehrfachauswahl entfernen",
|
||||
"tracking": "Folgen",
|
||||
@@ -1257,7 +1257,7 @@
|
||||
"text": "Text",
|
||||
"translation-text": "Übersetzungstext",
|
||||
"show-subtasks-field": "Teilaufgaben Feld anzeigen",
|
||||
"show-week-of-year": "Show week of year (ISO 8601)",
|
||||
"show-week-of-year": "Kalenderwoche anzeigen (ISO 8601)",
|
||||
"convert-to-markdown": "Als Markdown konvertieren",
|
||||
"import-board-zip": "Erstelle .zip Datei mit JSON Board Dateien und die Unterverzeichnisse des Boardnamen mit Anhängen",
|
||||
"collapse": "Einklappen",
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -86,12 +86,12 @@
|
||||
"add-card": "Ajouter une carte",
|
||||
"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": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setListWidthPopup-title": "Définir les largeurs",
|
||||
"set-list-width": "Définir les largeurs",
|
||||
"set-list-width-value": "Définir les largeurs mini. & maxi. (pixels)",
|
||||
"list-width-error-message": "Les largeurs de liste doivent être des entiers supérieurs à 100",
|
||||
"keyboard-shortcuts-enabled": "Raccourcis clavier activés. Cliquer pour désactiver.",
|
||||
"keyboard-shortcuts-disabled": "Raccourcis clavier désactivés. Cliquer pour activer.",
|
||||
"setSwimlaneHeightPopup-title": "Définir la hauteur du couloir",
|
||||
"set-swimlane-height": "Définir la hauteur du couloir",
|
||||
"set-swimlane-height-value": "Hauteur du couloir (pixels)",
|
||||
@@ -107,7 +107,7 @@
|
||||
"add-label": "Ajouter une étiquette",
|
||||
"add-list": "Ajouter une liste",
|
||||
"add-after-list": "Ajouter après la liste",
|
||||
"add-members": "Assigner des participants",
|
||||
"add-members": "Ajouter des participants",
|
||||
"added": "Ajouté le",
|
||||
"addMemberPopup-title": "Participants",
|
||||
"memberPopup-title": "Préférence du participant",
|
||||
@@ -139,7 +139,7 @@
|
||||
"templates": "Modèles",
|
||||
"template-container": "Conteneur de modèles",
|
||||
"add-template-container": "Ajouter un conteneur de modèles",
|
||||
"assign-member": "Affecter un participant",
|
||||
"assign-member": "Attribuer à un participant",
|
||||
"attached": "joint",
|
||||
"attachment": "Pièce jointe",
|
||||
"attachment-delete-pop": "La suppression d'une pièce jointe est définitive. Cela est irréversible.",
|
||||
@@ -199,7 +199,7 @@
|
||||
"card-edit-labels": "Gérer les étiquettes",
|
||||
"card-edit-members": "Gérer les participants",
|
||||
"card-labels-title": "Modifier les étiquettes de la carte.",
|
||||
"card-members-title": "Assigner ou supprimer des participants à la carte.",
|
||||
"card-members-title": "Ajouter ou supprimer des participants du tableau à la carte.",
|
||||
"card-start": "Début",
|
||||
"card-start-on": "Commence le",
|
||||
"cardAttachmentsPopup-title": "Ajouter depuis",
|
||||
@@ -266,9 +266,9 @@
|
||||
"checklists": "Check-lists",
|
||||
"click-to-star": "Cliquez pour ajouter ce tableau aux favoris.",
|
||||
"click-to-unstar": "Cliquez pour retirer ce tableau des favoris.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"click-to-enable-auto-width": "Largeur de liste auto. désactivée. Cliquer pour activer.",
|
||||
"click-to-disable-auto-width": "Largeur de liste auto. activée. Cliquer pour désactiver.",
|
||||
"auto-list-width": "Largeur de liste auto.",
|
||||
"clipboard": "Presse-papier ou glisser-déposer",
|
||||
"close": "Fermer",
|
||||
"close-board": "Fermer le tableau",
|
||||
@@ -310,7 +310,7 @@
|
||||
"no-comments": "Aucun commentaire",
|
||||
"no-comments-desc": "Ne peut pas voir les commentaires et les activités.",
|
||||
"worker": "Travailleur",
|
||||
"worker-desc": "Peut seulement déplacer des cartes, s'assigner à une carte et la commenter.",
|
||||
"worker-desc": "Peut seulement déplacer des cartes, s'attribuer une carte et la commenter.",
|
||||
"computer": "Ordinateur",
|
||||
"confirm-subtask-delete-popup": "Êtes-vous sûr de vouloir supprimer la sous-tâche ?",
|
||||
"confirm-checklist-delete-popup": "Êtes-vous sûr de vouloir supprimer la check-list ?",
|
||||
@@ -383,7 +383,7 @@
|
||||
"email-sent": "Courriel envoyé",
|
||||
"email-verifyEmail-subject": "Vérifier votre adresse de courriel sur __siteName__",
|
||||
"email-verifyEmail-text": "Bonjour __user__,\n\nPour vérifier votre compte courriel, il suffit de cliquer sur le lien ci-dessous.\n\n__url__\n\nMerci.",
|
||||
"enable-vertical-scrollbars": "Enable vertical scrollbars",
|
||||
"enable-vertical-scrollbars": "Activer les barres de défilement verticales",
|
||||
"enable-wip-limit": "Activer la limite WIP",
|
||||
"error-board-doesNotExist": "Ce tableau n'existe pas",
|
||||
"error-board-notAdmin": "Vous devez être administrateur de ce tableau pour faire cela",
|
||||
@@ -437,8 +437,8 @@
|
||||
"filter-no-label": "Aucune étiquette",
|
||||
"filter-member-label": "Filtrer par participant",
|
||||
"filter-no-member": "Aucun participant",
|
||||
"filter-assignee-label": "Filtrer par personne assignée",
|
||||
"filter-no-assignee": "Pas de personne assignée",
|
||||
"filter-assignee-label": "Filtrer par intervenant",
|
||||
"filter-no-assignee": "Pas d'intervenant",
|
||||
"filter-custom-fields-label": "Filtrer par champs personnalisés",
|
||||
"filter-no-custom-fields": "Pas de champs personnalisés",
|
||||
"filter-show-archive": "Montrer les listes archivées",
|
||||
@@ -471,9 +471,9 @@
|
||||
"import-board-instruction-about-errors": "Si une erreur survient en important le tableau, il se peut que l'import ait fonctionné, et que le tableau se trouve sur la page \"Tous les tableaux\".",
|
||||
"import-json-placeholder": "Collez ici les données JSON valides",
|
||||
"import-csv-placeholder": "Déposez ici vos données valides CSV/TSV",
|
||||
"import-map-members": "Assigner des participants",
|
||||
"import-members-map": "Le tableau que vous venez d'importer contient des participants. Veuillez assigner les participants que vous souhaitez importer à vos utilisateurs.",
|
||||
"import-members-map-note": "Note: les participants ne concordant pas seront assignés à l'utilisateur courant.",
|
||||
"import-map-members": "Faire correspondre les participants",
|
||||
"import-members-map": "Le tableau que vous venez d'importer contient des participants. Veuillez faire correspondre les participants que vous souhaitez importer à vos utilisateurs.",
|
||||
"import-members-map-note": "Note: les participants ne concordant pas seront attribués à l'utilisateur courant.",
|
||||
"import-show-user-mapping": "Contrôler l'assignation des participants",
|
||||
"import-user-select": "Sélectionnez l'utilisateur existant que vous voulez associer à ce participant",
|
||||
"importMapMembersAddPopup-title": "Sélectionner le participant",
|
||||
@@ -581,13 +581,13 @@
|
||||
"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": "S'ajouter à la carte courante",
|
||||
"shortcut-assign-self": "Affecter cette carte à vous-même",
|
||||
"shortcut-assign-self": "S'attribuer cette carte",
|
||||
"shortcut-autocomplete-emoji": "Auto-complétion des emoji",
|
||||
"shortcut-autocomplete-members": "Auto-complétion des participants",
|
||||
"shortcut-clear-filters": "Retirer tous les filtres",
|
||||
"shortcut-close-dialog": "Fermer la boîte de dialogue",
|
||||
"shortcut-filter-my-cards": "Filtrer mes cartes",
|
||||
"shortcut-filter-my-assigned-cards": "Filtrer mes cartes assignées",
|
||||
"shortcut-filter-my-assigned-cards": "Filtrer mes cartes attribuées",
|
||||
"shortcut-show-shortcuts": "Afficher cette liste de raccourcis",
|
||||
"shortcut-toggle-filterbar": "Afficher/Masquer la barre latérale des filtres",
|
||||
"shortcut-toggle-searchbar": "Afficher/Masquer la barre latérale de recherche",
|
||||
@@ -610,8 +610,8 @@
|
||||
"has-spenttime-cards": "A des cartes avec du temps passé",
|
||||
"time": "Temps",
|
||||
"title": "Titre",
|
||||
"toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).",
|
||||
"toggle-labels": "Bascule les étiquettes 1-9 pour les cartes. La sélection multiple ajoute les étiquettes 1-9",
|
||||
"toggle-assignees": "Changer les intervenants 1-9 sur une carte (par ordre d'ajout au tableau)",
|
||||
"toggle-labels": "Afficher/Masquer les étiquettes 1-9 sur les cartes. La sélection multiple ajoute les étiquettes 1-9",
|
||||
"remove-labels-multiselect": "La multi-sélection supprime les étiquettes 1-9",
|
||||
"tracking": "Suivi",
|
||||
"tracking-info": "Vous serez notifié de toute modification concernant les cartes pour lesquelles vous êtes impliqué en tant que créateur ou participant.",
|
||||
@@ -729,7 +729,7 @@
|
||||
"setCardActionsColorPopup-title": "Choisissez une couleur",
|
||||
"setSwimlaneColorPopup-title": "Choisissez une couleur",
|
||||
"setListColorPopup-title": "Choisissez une couleur",
|
||||
"assigned-by": "Assigné par",
|
||||
"assigned-by": "Attribué par",
|
||||
"requested-by": "Demandé par",
|
||||
"card-sorting-by-number": "Tri numérique des cartes",
|
||||
"board-delete-notice": "La suppression est définitive. Vous perdrez toutes les listes, cartes et actions associées à ce tableau.",
|
||||
@@ -928,8 +928,8 @@
|
||||
"accounts-allowUserDelete": "Autoriser les utilisateurs à supprimer leur compte",
|
||||
"hide-minicard-label-text": "Cacher l'étiquette de la mini-carte",
|
||||
"show-desktop-drag-handles": "Voir les poignées de déplacement du bureau",
|
||||
"assignee": "Personne assignée",
|
||||
"cardAssigneesPopup-title": "Personne assignée",
|
||||
"assignee": "Intervenant",
|
||||
"cardAssigneesPopup-title": "Intervenant",
|
||||
"addmore-detail": "Ajouter une description plus détaillée",
|
||||
"show-on-card": "Afficher sur la carte",
|
||||
"show-on-minicard": "Afficher sur la mini-carte",
|
||||
@@ -1023,7 +1023,7 @@
|
||||
"operator-user-abbrev": "@",
|
||||
"operator-member": "participant",
|
||||
"operator-member-abbrev": "m",
|
||||
"operator-assignee": "personne assignée",
|
||||
"operator-assignee": "intervenant",
|
||||
"operator-assignee-abbrev": "a",
|
||||
"operator-creator": "créateur",
|
||||
"operator-status": "statut",
|
||||
@@ -1054,7 +1054,7 @@
|
||||
"predicate-checklist": "check-list",
|
||||
"predicate-start": "début",
|
||||
"predicate-end": "fin",
|
||||
"predicate-assignee": "personne assignée",
|
||||
"predicate-assignee": "intervenant",
|
||||
"predicate-member": "participant",
|
||||
"predicate-public": "public",
|
||||
"predicate-private": "privé",
|
||||
@@ -1079,13 +1079,13 @@
|
||||
"globalSearch-instructions-operator-comment": "`__operator_comment__:<texte>` - cartes dont le commentaire contient *<texte>*.",
|
||||
"globalSearch-instructions-operator-label": "`__operator_label__:<couleur>` `__operator_label__:<nom>` - cartes qui ont une étiquette correspondant à *<couleur>* ou à *<nom>*.",
|
||||
"globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<nom|couleur>` - raccourci pour `__operator_label__:<couleur>` ou `__operator_label__:<nom>`",
|
||||
"globalSearch-instructions-operator-user": "`__operator_user__:<nom>` - cartes où l'utilisateur <nom> est *assigné* ou est un *participant*.",
|
||||
"globalSearch-instructions-operator-user": "`__operator_user__:<nom>` - cartes où l'utilisateur <nom> est *participant* ou *intervenant*.",
|
||||
"globalSearch-instructions-operator-at": "`__operator_user_abbrev__nom` - raccourci pour `__operator_user__:<nom>`",
|
||||
"globalSearch-instructions-operator-member": "`__operator_member__:<nom>` - cartes pour lesquelles l'utilisateur *<nom>* est *participant*",
|
||||
"globalSearch-instructions-operator-assignee": "`__operator_assignee__:<nom>` - cartes *assignées* à l'utilisateur *<nom>*",
|
||||
"globalSearch-instructions-operator-assignee": "`__operator_assignee__:<nom>` - cartes *attribuées* à l'utilisateur *<nom>*",
|
||||
"globalSearch-instructions-operator-creator": "`__operator_creator__:<utilisateur>` - cartes dont le créateur est *<utilisateur>*",
|
||||
"globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - cartes appartenant à un tableau assigné à l'organisation *<name>*",
|
||||
"globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - cartes appartenant à un tableau assigné à l'équipe *<name>*",
|
||||
"globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - cartes appartenant à un tableau attribué à l'organisation *<name>*",
|
||||
"globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - cartes appartenant à un tableau attribué à l'équipe *<name>*",
|
||||
"globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cartes qui arrive à échéance dans moins de *<n>* jours à partir d'aujourd'hui.\n`__operator_due__:__predicate_overdue__` liste toutes les cartes ayant passé la date d'échéance.",
|
||||
"globalSearch-instructions-operator-created": "`__operator_created__:<n>` - cartes qui ont été créées il y a *<n>* jours ou moins",
|
||||
"globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cartes qui ont été modifiées il y a *<n>* jours ou moins",
|
||||
@@ -1257,7 +1257,7 @@
|
||||
"text": "Texte",
|
||||
"translation-text": "Texte traduit",
|
||||
"show-subtasks-field": "Afficher le champ des sous-tâches",
|
||||
"show-week-of-year": "Show week of year (ISO 8601)",
|
||||
"show-week-of-year": "Afficher la semaine de l'année (ISO 8601)",
|
||||
"convert-to-markdown": "Convertir en markdown",
|
||||
"import-board-zip": "Ajouter un fichier .zip qui contient les fichiers JSON du tableau et les noms de sous-répertoires avec les pièces jointes",
|
||||
"collapse": "Réduire",
|
||||
@@ -1266,7 +1266,7 @@
|
||||
"hideAllChecklistItems": "Cacher tous les éléments de la check-list",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
"accessibility-page-enabled": "Page d'accessibilité activée",
|
||||
"accessibility-title": "Sujet d'accessibilité",
|
||||
"accessibility-content": "Contenu d'accessibilité"
|
||||
}
|
||||
@@ -610,7 +610,7 @@
|
||||
"has-spenttime-cards": "יש כרטיסי זמן שהושקע",
|
||||
"time": "זמן",
|
||||
"title": "כותרת",
|
||||
"toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).",
|
||||
"toggle-assignees": "הצגת/הסרת מוקצים 1-9 בכרטיסים (לפי סדר ההוספה ללוח).",
|
||||
"toggle-labels": "החלפת מצב תוויות 1-9 לכרטיס. בחירה מרוכזת מוסיפה תוויות 1-9",
|
||||
"remove-labels-multiselect": "בחירה מרוכזת מסירה תוויות 1-9",
|
||||
"tracking": "מעקב",
|
||||
@@ -1257,7 +1257,7 @@
|
||||
"text": "טקסט",
|
||||
"translation-text": "טקסט תרגום",
|
||||
"show-subtasks-field": "הצגת שדה תת־משימות",
|
||||
"show-week-of-year": "Show week of year (ISO 8601)",
|
||||
"show-week-of-year": "הצגת שבוע בשנה (ISO 8601)",
|
||||
"convert-to-markdown": "המרה ל־Markdown",
|
||||
"import-board-zip": "הוספת קובץ .zip עם קובצי JSON של לוח, ותת־תיקיות בשם הלוח עם קבצים מצורפים",
|
||||
"collapse": "צמצום",
|
||||
|
||||
@@ -1257,7 +1257,7 @@
|
||||
"text": "テキスト",
|
||||
"translation-text": "翻訳テキスト",
|
||||
"show-subtasks-field": "サブタスクフィールドを表示",
|
||||
"show-week-of-year": "Show week of year (ISO 8601)",
|
||||
"show-week-of-year": "年内の暦週番号(ISO 8601準拠)",
|
||||
"convert-to-markdown": "マークダウンに変換",
|
||||
"import-board-zip": "ボードJSONファイルを含む zip ファイルと、添付ファイルを含むボード名サブディレクトリを追加する",
|
||||
"collapse": "Collapse",
|
||||
|
||||
@@ -1257,7 +1257,7 @@
|
||||
"text": "テキスト",
|
||||
"translation-text": "翻訳テキスト",
|
||||
"show-subtasks-field": "サブタスクフィールドを表示",
|
||||
"show-week-of-year": "Show week of year (ISO 8601)",
|
||||
"show-week-of-year": "年内の暦週番号(ISO 8601準拠)",
|
||||
"convert-to-markdown": "マークダウンに変換",
|
||||
"import-board-zip": "ボードJSONファイルを含む zip ファイルと、添付ファイルを含むボード名サブディレクトリを追加する",
|
||||
"collapse": "折りたたむ",
|
||||
|
||||
@@ -1257,7 +1257,7 @@
|
||||
"text": "Tekst",
|
||||
"translation-text": "Te vertalen tekst",
|
||||
"show-subtasks-field": "Toon subtakenveld",
|
||||
"show-week-of-year": "Show week of year (ISO 8601)",
|
||||
"show-week-of-year": "Toon weeknummers (ISO 8601)",
|
||||
"convert-to-markdown": "Converteer naar markdown",
|
||||
"import-board-zip": "Voeg .zip bestand toe met bord JSON bestanden, en bordnaam subdirectories met bijlagen.",
|
||||
"collapse": "Inklappen",
|
||||
|
||||
@@ -610,7 +610,7 @@
|
||||
"has-spenttime-cards": "Gastou cartões de tempo",
|
||||
"time": "Tempo",
|
||||
"title": "Título",
|
||||
"toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).",
|
||||
"toggle-assignees": "Alternar administradores 1-9 para cartão (Por ordem de adição no quadro)",
|
||||
"toggle-labels": "Alternar etiquetas 1-9 para cartão. Multi-seleção adiciona etiquetas 1-9",
|
||||
"remove-labels-multiselect": "Multi-seleção remove etiquetas 1-9",
|
||||
"tracking": "Rastreamento",
|
||||
@@ -1257,7 +1257,7 @@
|
||||
"text": "Texto",
|
||||
"translation-text": "Texto de tradução",
|
||||
"show-subtasks-field": "Mostrar campo subtarefas",
|
||||
"show-week-of-year": "Show week of year (ISO 8601)",
|
||||
"show-week-of-year": "Mostrar semana do ano (ISO8601)",
|
||||
"convert-to-markdown": "Converter para markdown",
|
||||
"import-board-zip": "Adicione o arquivo .zip que contém arquivos JSON do quadro e subdiretórios de nomes do quadro com anexos",
|
||||
"collapse": "Expandir",
|
||||
|
||||
@@ -610,7 +610,7 @@
|
||||
"has-spenttime-cards": "Har spenderat tidkort",
|
||||
"time": "Tid",
|
||||
"title": "Titel",
|
||||
"toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).",
|
||||
"toggle-assignees": "Växla tilldelade personer 1-9 för kort (I den ordning de lades till i tavlan).",
|
||||
"toggle-labels": "Toggle-etiketter 1-9 för kortet. Multi-Selection lägger till etiketter 1-9.",
|
||||
"remove-labels-multiselect": "Multi-Selection raderar etikett 1-9",
|
||||
"tracking": "Spåra",
|
||||
@@ -1257,7 +1257,7 @@
|
||||
"text": "Text",
|
||||
"translation-text": "Översatt text",
|
||||
"show-subtasks-field": "Visa underuppgiftsfält",
|
||||
"show-week-of-year": "Show week of year (ISO 8601)",
|
||||
"show-week-of-year": "Visa veckonummer (ISO 8601)",
|
||||
"convert-to-markdown": "Konvertera till markdown",
|
||||
"import-board-zip": "Lägga till .zip-filen till tavlans JSON filer, och tavla",
|
||||
"collapse": "Fäll ihop",
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
"activity-archived": "%s Arşive taşındı",
|
||||
"activity-attached": "%s içine %s ekledi",
|
||||
"activity-created": "%s öğesini oluşturdu",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-changedListTitle": "Liste adı %syapıldı",
|
||||
"activity-customfield-created": "%s adlı özel alan yaratıldı",
|
||||
"activity-excluded": "%s içinden %s çıkarttı",
|
||||
"activity-imported": "%s kaynağından %s öğesini %s öğesinin içine taşıdı",
|
||||
@@ -86,10 +86,10 @@
|
||||
"add-card": "Kart Ekle",
|
||||
"add-card-to-top-of-list": "Listenin Başına Kart Ekle",
|
||||
"add-card-to-bottom-of-list": "Listenin Sonuna Kart Ekle",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"setListWidthPopup-title": "Genişlik Ata",
|
||||
"set-list-width": "Genişlik Ata",
|
||||
"set-list-width-value": "En Az & En Çok Genişlik (piksel) Ata ",
|
||||
"list-width-error-message": "Liste genişliği 100'den büyük sayısal bir değer olmalı",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Kulvar Uzunluğunu Ayarla",
|
||||
@@ -300,7 +300,7 @@
|
||||
"color-white": "beyaz",
|
||||
"color-yellow": "sarı",
|
||||
"unset-color": "Seçilmemiş",
|
||||
"comments": "Comments",
|
||||
"comments": "Yorumlar",
|
||||
"comment": "Yorum",
|
||||
"comment-placeholder": "Yorum Yaz",
|
||||
"comment-only": "Sadece yorum",
|
||||
|
||||
@@ -610,7 +610,7 @@
|
||||
"has-spenttime-cards": "耗時卡",
|
||||
"time": "時間",
|
||||
"title": "標題",
|
||||
"toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).",
|
||||
"toggle-assignees": "切換卡片的代理人 1-9(按加入看板的順序)。",
|
||||
"toggle-labels": "切換卡片的標籤 1-9。多重選擇新增標籤 1-9",
|
||||
"remove-labels-multiselect": "多重選擇移除標籤 1-9",
|
||||
"tracking": "訂閱相關通知",
|
||||
@@ -1079,10 +1079,10 @@
|
||||
"globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - 卡片評論包含 *<text>*.",
|
||||
"globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - 卡片標籤要符合 *<color>* 或 *<name>",
|
||||
"globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name|color>` - 的簡寫 `__operator_label__:<color>` 或 `__operator_label__:<name>`",
|
||||
"globalSearch-instructions-operator-user": "`__operator_user__:<username>` - 卡片,其中 *<username>* 是 *成員* 或 *分配者*",
|
||||
"globalSearch-instructions-operator-user": "`__operator_user__:<username>` - 卡片,其中 *<username>* 是 *成員* 或 *代理人*",
|
||||
"globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - `user:<username>` 的簡寫",
|
||||
"globalSearch-instructions-operator-member": "`__operator_member__:<username>` - 卡片,其中 *<username>* 是i *成員*",
|
||||
"globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - 卡片,其中 *<username>* 是 *分配者*",
|
||||
"globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - 卡片,其中 *<username>* 是 *代理人*",
|
||||
"globalSearch-instructions-operator-creator": "`__operator_creator__:<username>` - 卡片,其中 *<username>* 是卡片的建立者",
|
||||
"globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - 屬於分配給組織 *<name>* 看板的卡片",
|
||||
"globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - 屬於分配給團隊 *<name>* 看板的卡片",
|
||||
@@ -1257,7 +1257,7 @@
|
||||
"text": "文字",
|
||||
"translation-text": "翻譯文字",
|
||||
"show-subtasks-field": "顯示子工作項目欄位",
|
||||
"show-week-of-year": "Show week of year (ISO 8601)",
|
||||
"show-week-of-year": "顯示年度週數 (ISO 8601)",
|
||||
"convert-to-markdown": "轉換為 Markdown",
|
||||
"import-board-zip": "新增包含看板 JSON 檔案與帶有附件的看板名稱子目錄的 .zip 檔案",
|
||||
"collapse": "損毀",
|
||||
|
||||
+23
-13
@@ -531,20 +531,30 @@ Cards.helpers({
|
||||
mapCustomFieldsToBoard(boardId) {
|
||||
// Map custom fields to new board
|
||||
return this.customFields.map(cf => {
|
||||
const oldCf = ReactiveCache.getCustomField(cf._id);
|
||||
const newCf = ReactiveCache.getCustomField({
|
||||
boardIds: boardId,
|
||||
name: oldCf.name,
|
||||
type: oldCf.type,
|
||||
});
|
||||
if (newCf) {
|
||||
cf._id = newCf._id;
|
||||
} else if (!_.contains(oldCf.boardIds, boardId)) {
|
||||
oldCf.addBoard(boardId);
|
||||
}
|
||||
return cf;
|
||||
const oldCf = ReactiveCache.getCustomField(cf._id);
|
||||
|
||||
// Check if oldCf is undefined or null
|
||||
if (!oldCf) {
|
||||
//console.error(`Custom field with ID ${cf._id} not found.`);
|
||||
return cf; // Skip this field if oldCf is not found
|
||||
}
|
||||
|
||||
const newCf = ReactiveCache.getCustomField({
|
||||
boardIds: boardId,
|
||||
name: oldCf.name,
|
||||
type: oldCf.type,
|
||||
});
|
||||
|
||||
if (newCf) {
|
||||
cf._id = newCf._id;
|
||||
} else if (!_.contains(oldCf.boardIds, boardId)) {
|
||||
oldCf.addBoard(boardId);
|
||||
}
|
||||
|
||||
return cf;
|
||||
});
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
copy(boardId, swimlaneId, listId) {
|
||||
const oldId = this._id;
|
||||
|
||||
@@ -2,13 +2,38 @@ import { Meteor } from 'meteor/meteor';
|
||||
import Users from '../users';
|
||||
|
||||
function acceptedIpAddress(ipAddress) {
|
||||
const trustedIpAddress = process.env.WEKAN_METRICS_ACCEPTED_IP_ADDRESS;
|
||||
const trustedIpAddress = process.env.METRICS_ACCEPTED_IP_ADDRESS;
|
||||
return (
|
||||
trustedIpAddress !== undefined &&
|
||||
trustedIpAddress.split(',').includes(ipAddress)
|
||||
);
|
||||
}
|
||||
|
||||
function accessToken(req) {
|
||||
const valid_token = process.env.METRICS_ACCESS_TOKEN;
|
||||
let token;
|
||||
if (req.headers && req.headers.authorization) {
|
||||
var parts = req.headers.authorization.split(" ");
|
||||
|
||||
if (parts.length === 2) {
|
||||
var scheme = parts[0];
|
||||
var credentials = parts[1];
|
||||
|
||||
if (/^Bearer$/i.test(scheme)) {
|
||||
token = credentials;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!token && req.query && req.query.access_token) {
|
||||
token = req.query.access_token;
|
||||
}
|
||||
return (
|
||||
token !== undefined &&
|
||||
valid_token !== undefined &&
|
||||
token == valid_token
|
||||
);
|
||||
}
|
||||
|
||||
const getBoardTitleWithMostActivities = (dateWithXdaysAgo, nbLimit) => {
|
||||
return Promise.await(
|
||||
Activities.rawCollection()
|
||||
@@ -48,8 +73,8 @@ Meteor.startup(() => {
|
||||
// const ipAddress = req.socket.remoteAddress
|
||||
// }
|
||||
|
||||
// List of trusted ip adress will be found in environment variable "WEKAN_METRICS_ACCEPTED_IP_ADDRESS" (separeted with commas)
|
||||
if (acceptedIpAddress(ipAddress)) {
|
||||
// List of trusted ip adress will be found in environment variable "METRICS_ACCEPTED_IP_ADDRESS" (separeted with commas)
|
||||
if (acceptedIpAddress(ipAddress) || (accessToken(req))) {
|
||||
let metricsRes = '';
|
||||
let resCount = 0;
|
||||
//connected users
|
||||
@@ -170,12 +195,12 @@ Meteor.startup(() => {
|
||||
|
||||
metricsRes +=
|
||||
'# Top 10 boards with most activities dated 30 days ago\n';
|
||||
//Get top 10 table with most activities in current month
|
||||
//Get top 10 table with most activities in current month
|
||||
const boardTitleWithMostActivities = getBoardTitleWithMostActivities(
|
||||
dateWithXdaysAgo,
|
||||
xdays,
|
||||
);
|
||||
|
||||
|
||||
const boardWithMostActivities = boardTitleWithMostActivities.map(
|
||||
(board) => board.lookup[0].title,
|
||||
);
|
||||
@@ -185,7 +210,7 @@ Meteor.startup(() => {
|
||||
`wekan_top10BoardsWithMostActivities{n="${title}"} ${
|
||||
index + 1
|
||||
}` + '\n';
|
||||
});
|
||||
});
|
||||
|
||||
res.writeHead(200); // HTTP status
|
||||
res.end(metricsRes);
|
||||
|
||||
Generated
+77
-156
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wekan",
|
||||
"version": "v7.79.0",
|
||||
"version": "v7.83.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
@@ -108,6 +108,12 @@
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz",
|
||||
"integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ=="
|
||||
},
|
||||
"@types/trusted-types": {
|
||||
"version": "2.0.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
|
||||
"integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
|
||||
"optional": true
|
||||
},
|
||||
"@wekanteam/dragscroll": {
|
||||
"version": "git+https://github.com/wekan/dragscroll.git#6ea215c8cdbde9362ecba8ffb72ce9f9fde842d2",
|
||||
"from": "git+https://github.com/wekan/dragscroll.git"
|
||||
@@ -600,9 +606,12 @@
|
||||
}
|
||||
},
|
||||
"dompurify": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.6.tgz",
|
||||
"integrity": "sha512-zUTaUBO8pY4+iJMPE1B9XlO2tXVYIcEA4SNGtvDELzTSCQO7RzH+j7S180BmhmJId78lqGU2z19vgVx2Sxs/PQ=="
|
||||
"version": "3.2.4",
|
||||
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz",
|
||||
"integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==",
|
||||
"requires": {
|
||||
"@types/trusted-types": "^2.0.7"
|
||||
}
|
||||
},
|
||||
"domutils": {
|
||||
"version": "2.8.0",
|
||||
@@ -1373,16 +1382,15 @@
|
||||
"integrity": "sha512-SBbbYWvFYvsxHVL+q6ZB8lT3rp2LSvfALD2V52H+MGH2IgJsevy0VtXRkRG0EsUewwOaDTIKBn9DlD8HQ3GSwg=="
|
||||
},
|
||||
"meteor-node-stubs": {
|
||||
"version": "1.2.12",
|
||||
"resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.2.12.tgz",
|
||||
"integrity": "sha512-mzp3KI2aGNDhFlCVXPd0pfMr2z9A5vl1AqEgV13/z7AgKwcbd2X+ymE6tpSAMkrrQb40PU9PC2B59bCb6XkAaw==",
|
||||
"version": "git+https://github.com/wekan/meteor-node-stubs.git#4f2609bc4d9d700ff79424ad4ed8dbf1f06666cb",
|
||||
"from": "git+https://github.com/wekan/meteor-node-stubs.git",
|
||||
"requires": {
|
||||
"@meteorjs/crypto-browserify": "^3.12.1",
|
||||
"assert": "^2.1.0",
|
||||
"browserify-zlib": "^0.2.0",
|
||||
"buffer": "^5.7.1",
|
||||
"console-browserify": "^1.2.0",
|
||||
"constants-browserify": "^1.0.0",
|
||||
"crypto-browserify": "^3.12.0",
|
||||
"domain-browser": "^4.23.0",
|
||||
"elliptic": "^6.6.0",
|
||||
"events": "^3.3.0",
|
||||
@@ -1398,46 +1406,19 @@
|
||||
"string_decoder": "^1.3.0",
|
||||
"timers-browserify": "^2.0.12",
|
||||
"tty-browserify": "0.0.1",
|
||||
"url": "^0.11.4",
|
||||
"url": "^0.11.3",
|
||||
"util": "^0.12.5",
|
||||
"vm-browserify": "^1.1.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"@meteorjs/crypto-browserify": {
|
||||
"version": "3.12.1",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"browserify-cipher": "^1.0.1",
|
||||
"browserify-sign": "^4.2.3",
|
||||
"create-ecdh": "^4.0.4",
|
||||
"create-hash": "^1.2.0",
|
||||
"create-hmac": "^1.1.7",
|
||||
"diffie-hellman": "^5.0.3",
|
||||
"hash-base": "~3.0.4",
|
||||
"inherits": "^2.0.4",
|
||||
"pbkdf2": "^3.1.2",
|
||||
"public-encrypt": "^4.0.3",
|
||||
"randombytes": "^2.1.0",
|
||||
"randomfill": "^1.0.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"hash-base": {
|
||||
"version": "3.0.4",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"inherits": "^2.0.1",
|
||||
"safe-buffer": "^5.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"asn1.js": {
|
||||
"version": "4.10.1",
|
||||
"version": "5.4.1",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"bn.js": "^4.0.0",
|
||||
"inherits": "^2.0.1",
|
||||
"minimalistic-assert": "^1.0.0"
|
||||
"minimalistic-assert": "^1.0.0",
|
||||
"safer-buffer": "^2.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"bn.js": {
|
||||
@@ -1513,64 +1494,23 @@
|
||||
}
|
||||
},
|
||||
"browserify-sign": {
|
||||
"version": "4.2.3",
|
||||
"version": "4.2.2",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"bn.js": "^5.2.1",
|
||||
"browserify-rsa": "^4.1.0",
|
||||
"create-hash": "^1.2.0",
|
||||
"create-hmac": "^1.1.7",
|
||||
"elliptic": "^6.5.5",
|
||||
"hash-base": "~3.0",
|
||||
"elliptic": "^6.5.4",
|
||||
"inherits": "^2.0.4",
|
||||
"parse-asn1": "^5.1.7",
|
||||
"readable-stream": "^2.3.8",
|
||||
"parse-asn1": "^5.1.6",
|
||||
"readable-stream": "^3.6.2",
|
||||
"safe-buffer": "^5.2.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"bn.js": {
|
||||
"version": "5.2.1",
|
||||
"bundled": true
|
||||
},
|
||||
"hash-base": {
|
||||
"version": "3.0.4",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"inherits": "^2.0.1",
|
||||
"safe-buffer": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "2.3.8",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"core-util-is": "~1.0.0",
|
||||
"inherits": "~2.0.3",
|
||||
"isarray": "~1.0.0",
|
||||
"process-nextick-args": "~2.0.0",
|
||||
"safe-buffer": "~5.1.1",
|
||||
"string_decoder": "~1.1.1",
|
||||
"util-deprecate": "~1.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"safe-buffer": {
|
||||
"version": "5.1.2",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"safe-buffer": "~5.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"safe-buffer": {
|
||||
"version": "5.1.2",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1598,14 +1538,12 @@
|
||||
"bundled": true
|
||||
},
|
||||
"call-bind": {
|
||||
"version": "1.0.7",
|
||||
"version": "1.0.5",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"es-define-property": "^1.0.0",
|
||||
"es-errors": "^1.3.0",
|
||||
"function-bind": "^1.1.2",
|
||||
"get-intrinsic": "^1.2.4",
|
||||
"set-function-length": "^1.2.1"
|
||||
"get-intrinsic": "^1.2.1",
|
||||
"set-function-length": "^1.1.1"
|
||||
}
|
||||
},
|
||||
"cipher-base": {
|
||||
@@ -1624,10 +1562,6 @@
|
||||
"version": "1.0.0",
|
||||
"bundled": true
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.3",
|
||||
"bundled": true
|
||||
},
|
||||
"create-ecdh": {
|
||||
"version": "4.0.4",
|
||||
"bundled": true,
|
||||
@@ -1665,13 +1599,30 @@
|
||||
"sha.js": "^2.4.8"
|
||||
}
|
||||
},
|
||||
"define-data-property": {
|
||||
"version": "1.1.4",
|
||||
"crypto-browserify": {
|
||||
"version": "3.12.0",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"es-define-property": "^1.0.0",
|
||||
"es-errors": "^1.3.0",
|
||||
"gopd": "^1.0.1"
|
||||
"browserify-cipher": "^1.0.0",
|
||||
"browserify-sign": "^4.0.0",
|
||||
"create-ecdh": "^4.0.0",
|
||||
"create-hash": "^1.1.0",
|
||||
"create-hmac": "^1.1.0",
|
||||
"diffie-hellman": "^5.0.0",
|
||||
"inherits": "^2.0.1",
|
||||
"pbkdf2": "^3.0.3",
|
||||
"public-encrypt": "^4.0.0",
|
||||
"randombytes": "^2.0.0",
|
||||
"randomfill": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"define-data-property": {
|
||||
"version": "1.1.1",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"get-intrinsic": "^1.2.1",
|
||||
"gopd": "^1.0.1",
|
||||
"has-property-descriptors": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"define-properties": {
|
||||
@@ -1711,7 +1662,7 @@
|
||||
"bundled": true
|
||||
},
|
||||
"elliptic": {
|
||||
"version": "6.6.0",
|
||||
"version": "6.6.1",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"bn.js": "^4.11.9",
|
||||
@@ -1724,22 +1675,11 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"bn.js": {
|
||||
"version": "4.12.0",
|
||||
"version": "4.12.1",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"es-define-property": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"get-intrinsic": "^1.2.4"
|
||||
}
|
||||
},
|
||||
"es-errors": {
|
||||
"version": "1.3.0",
|
||||
"bundled": true
|
||||
},
|
||||
"events": {
|
||||
"version": "3.3.0",
|
||||
"bundled": true
|
||||
@@ -1764,10 +1704,9 @@
|
||||
"bundled": true
|
||||
},
|
||||
"get-intrinsic": {
|
||||
"version": "1.2.4",
|
||||
"version": "1.2.2",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"es-errors": "^1.3.0",
|
||||
"function-bind": "^1.1.2",
|
||||
"has-proto": "^1.0.1",
|
||||
"has-symbols": "^1.0.3",
|
||||
@@ -1782,10 +1721,10 @@
|
||||
}
|
||||
},
|
||||
"has-property-descriptors": {
|
||||
"version": "1.0.2",
|
||||
"version": "1.0.1",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"es-define-property": "^1.0.0"
|
||||
"get-intrinsic": "^1.2.2"
|
||||
}
|
||||
},
|
||||
"has-proto": {
|
||||
@@ -1882,10 +1821,6 @@
|
||||
"which-typed-array": "^1.1.11"
|
||||
}
|
||||
},
|
||||
"isarray": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true
|
||||
},
|
||||
"md5.js": {
|
||||
"version": "1.3.5",
|
||||
"bundled": true,
|
||||
@@ -1918,7 +1853,7 @@
|
||||
"bundled": true
|
||||
},
|
||||
"object-inspect": {
|
||||
"version": "1.13.2",
|
||||
"version": "1.13.1",
|
||||
"bundled": true
|
||||
},
|
||||
"object-is": {
|
||||
@@ -1952,25 +1887,14 @@
|
||||
"bundled": true
|
||||
},
|
||||
"parse-asn1": {
|
||||
"version": "5.1.7",
|
||||
"version": "5.1.6",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"asn1.js": "^4.10.1",
|
||||
"browserify-aes": "^1.2.0",
|
||||
"evp_bytestokey": "^1.0.3",
|
||||
"hash-base": "~3.0",
|
||||
"pbkdf2": "^3.1.2",
|
||||
"safe-buffer": "^5.2.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"hash-base": {
|
||||
"version": "3.0.4",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"inherits": "^2.0.1",
|
||||
"safe-buffer": "^5.0.1"
|
||||
}
|
||||
}
|
||||
"asn1.js": "^5.2.0",
|
||||
"browserify-aes": "^1.0.0",
|
||||
"evp_bytestokey": "^1.0.0",
|
||||
"pbkdf2": "^3.0.3",
|
||||
"safe-buffer": "^5.1.1"
|
||||
}
|
||||
},
|
||||
"path-browserify": {
|
||||
@@ -1992,10 +1916,6 @@
|
||||
"version": "0.11.10",
|
||||
"bundled": true
|
||||
},
|
||||
"process-nextick-args": {
|
||||
"version": "2.0.1",
|
||||
"bundled": true
|
||||
},
|
||||
"public-encrypt": {
|
||||
"version": "4.0.3",
|
||||
"bundled": true,
|
||||
@@ -2019,10 +1939,10 @@
|
||||
"bundled": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.13.0",
|
||||
"version": "6.11.2",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"side-channel": "^1.0.6"
|
||||
"side-channel": "^1.0.4"
|
||||
}
|
||||
},
|
||||
"querystring-es3": {
|
||||
@@ -2065,16 +1985,18 @@
|
||||
"version": "5.2.1",
|
||||
"bundled": true
|
||||
},
|
||||
"safer-buffer": {
|
||||
"version": "2.1.2",
|
||||
"bundled": true
|
||||
},
|
||||
"set-function-length": {
|
||||
"version": "1.2.2",
|
||||
"version": "1.1.1",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"define-data-property": "^1.1.4",
|
||||
"es-errors": "^1.3.0",
|
||||
"function-bind": "^1.1.2",
|
||||
"get-intrinsic": "^1.2.4",
|
||||
"define-data-property": "^1.1.1",
|
||||
"get-intrinsic": "^1.2.1",
|
||||
"gopd": "^1.0.1",
|
||||
"has-property-descriptors": "^1.0.2"
|
||||
"has-property-descriptors": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"setimmediate": {
|
||||
@@ -2090,13 +2012,12 @@
|
||||
}
|
||||
},
|
||||
"side-channel": {
|
||||
"version": "1.0.6",
|
||||
"version": "1.0.4",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"call-bind": "^1.0.7",
|
||||
"es-errors": "^1.3.0",
|
||||
"get-intrinsic": "^1.2.4",
|
||||
"object-inspect": "^1.13.1"
|
||||
"call-bind": "^1.0.0",
|
||||
"get-intrinsic": "^1.0.2",
|
||||
"object-inspect": "^1.9.0"
|
||||
}
|
||||
},
|
||||
"stream-browserify": {
|
||||
@@ -2136,11 +2057,11 @@
|
||||
"bundled": true
|
||||
},
|
||||
"url": {
|
||||
"version": "0.11.4",
|
||||
"version": "0.11.3",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"punycode": "^1.4.1",
|
||||
"qs": "^6.12.3"
|
||||
"qs": "^6.11.2"
|
||||
}
|
||||
},
|
||||
"util": {
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wekan",
|
||||
"version": "v7.79.0",
|
||||
"version": "v7.83.0",
|
||||
"description": "Open-Source kanban",
|
||||
"private": true,
|
||||
"repository": {
|
||||
@@ -28,7 +28,7 @@
|
||||
"ajv": "^6.12.6",
|
||||
"bcryptjs": "^2.4.3",
|
||||
"bson": "^4.5.2",
|
||||
"dompurify": "^2.5.6",
|
||||
"dompurify": "^3.2.4",
|
||||
"es6-promise": "^4.2.4",
|
||||
"escape-string-regexp": "^5.0.0",
|
||||
"fibers": "^5.0.3",
|
||||
@@ -44,7 +44,7 @@
|
||||
"markdown-it-emoji": "^2.0.0",
|
||||
"markdown-it-mathjax3": "^4.3.2",
|
||||
"meteor-accounts-t9n": "^2.6.0",
|
||||
"meteor-node-stubs": "^1.2.12",
|
||||
"meteor-node-stubs": "https://github.com/wekan/meteor-node-stubs.git",
|
||||
"minio": "^7.1.3",
|
||||
"moment": "^2.29.4",
|
||||
"os": "^0.1.2",
|
||||
|
||||
@@ -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.79</title>
|
||||
<title>Wekan REST API v7.83</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.79">Wekan REST API v7.79</a>
|
||||
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v7.83">Wekan REST API v7.83</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.79</h1>
|
||||
<h1 id="wekan-rest-api">Wekan REST API v7.83</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.79
|
||||
version: v7.83
|
||||
description: |
|
||||
The REST API allows you to control and extend Wekan with ease.
|
||||
|
||||
|
||||
@@ -0,0 +1,524 @@
|
||||
{
|
||||
"name": "Wekan",
|
||||
"short_name": "Wekan",
|
||||
"icons": [
|
||||
{
|
||||
"src": "svg-etc/wekan-logo-512.svg",
|
||||
"sizes": "any",
|
||||
"type": "image/svg"
|
||||
},
|
||||
{
|
||||
"src": "android-chrome-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "android-chrome-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "Square150x150Logo.scale-100.png",
|
||||
"sizes": "150x150",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "Square44x44Logo.scale-100.png",
|
||||
"sizes": "44x44",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "StoreLogo.scale-100.png",
|
||||
"sizes": "50x50",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "maskable_icon.png",
|
||||
"sizes": "474x474",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
},
|
||||
{
|
||||
"src": "monochrome-icon-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png",
|
||||
"purpose": "monochrome"
|
||||
},
|
||||
{
|
||||
"src": "windows11/SmallTile.scale-100.png",
|
||||
"sizes": "71x71"
|
||||
},
|
||||
{
|
||||
"src": "windows11/SmallTile.scale-125.png",
|
||||
"sizes": "89x89"
|
||||
},
|
||||
{
|
||||
"src": "windows11/SmallTile.scale-150.png",
|
||||
"sizes": "107x107"
|
||||
},
|
||||
{
|
||||
"src": "windows11/SmallTile.scale-200.png",
|
||||
"sizes": "142x142"
|
||||
},
|
||||
{
|
||||
"src": "windows11/SmallTile.scale-400.png",
|
||||
"sizes": "284x284"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square150x150Logo.scale-100.png",
|
||||
"sizes": "150x150"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square150x150Logo.scale-125.png",
|
||||
"sizes": "188x188"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square150x150Logo.scale-150.png",
|
||||
"sizes": "225x225"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square150x150Logo.scale-200.png",
|
||||
"sizes": "300x300"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square150x150Logo.scale-400.png",
|
||||
"sizes": "600x600"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Wide310x150Logo.scale-100.png",
|
||||
"sizes": "310x150"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Wide310x150Logo.scale-125.png",
|
||||
"sizes": "388x188"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Wide310x150Logo.scale-150.png",
|
||||
"sizes": "465x225"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Wide310x150Logo.scale-200.png",
|
||||
"sizes": "620x300"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Wide310x150Logo.scale-400.png",
|
||||
"sizes": "1240x600"
|
||||
},
|
||||
{
|
||||
"src": "windows11/LargeTile.scale-100.png",
|
||||
"sizes": "310x310"
|
||||
},
|
||||
{
|
||||
"src": "windows11/LargeTile.scale-125.png",
|
||||
"sizes": "388x388"
|
||||
},
|
||||
{
|
||||
"src": "windows11/LargeTile.scale-150.png",
|
||||
"sizes": "465x465"
|
||||
},
|
||||
{
|
||||
"src": "windows11/LargeTile.scale-200.png",
|
||||
"sizes": "620x620"
|
||||
},
|
||||
{
|
||||
"src": "windows11/LargeTile.scale-400.png",
|
||||
"sizes": "1240x1240"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.scale-100.png",
|
||||
"sizes": "44x44"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.scale-125.png",
|
||||
"sizes": "55x55"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.scale-150.png",
|
||||
"sizes": "66x66"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.scale-200.png",
|
||||
"sizes": "88x88"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.scale-400.png",
|
||||
"sizes": "176x176"
|
||||
},
|
||||
{
|
||||
"src": "windows11/StoreLogo.scale-100.png",
|
||||
"sizes": "50x50"
|
||||
},
|
||||
{
|
||||
"src": "windows11/StoreLogo.scale-125.png",
|
||||
"sizes": "63x63"
|
||||
},
|
||||
{
|
||||
"src": "windows11/StoreLogo.scale-150.png",
|
||||
"sizes": "75x75"
|
||||
},
|
||||
{
|
||||
"src": "windows11/StoreLogo.scale-200.png",
|
||||
"sizes": "100x100"
|
||||
},
|
||||
{
|
||||
"src": "windows11/StoreLogo.scale-400.png",
|
||||
"sizes": "200x200"
|
||||
},
|
||||
{
|
||||
"src": "windows11/SplashScreen.scale-100.png",
|
||||
"sizes": "620x300"
|
||||
},
|
||||
{
|
||||
"src": "windows11/SplashScreen.scale-125.png",
|
||||
"sizes": "775x375"
|
||||
},
|
||||
{
|
||||
"src": "windows11/SplashScreen.scale-150.png",
|
||||
"sizes": "930x450"
|
||||
},
|
||||
{
|
||||
"src": "windows11/SplashScreen.scale-200.png",
|
||||
"sizes": "1240x600"
|
||||
},
|
||||
{
|
||||
"src": "windows11/SplashScreen.scale-400.png",
|
||||
"sizes": "2480x1200"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-16.png",
|
||||
"sizes": "16x16"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-20.png",
|
||||
"sizes": "20x20"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-24.png",
|
||||
"sizes": "24x24"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-30.png",
|
||||
"sizes": "30x30"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-32.png",
|
||||
"sizes": "32x32"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-36.png",
|
||||
"sizes": "36x36"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-40.png",
|
||||
"sizes": "40x40"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-44.png",
|
||||
"sizes": "44x44"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-48.png",
|
||||
"sizes": "48x48"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-60.png",
|
||||
"sizes": "60x60"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-64.png",
|
||||
"sizes": "64x64"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-72.png",
|
||||
"sizes": "72x72"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-80.png",
|
||||
"sizes": "80x80"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-96.png",
|
||||
"sizes": "96x96"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.targetsize-256.png",
|
||||
"sizes": "256x256"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-16.png",
|
||||
"sizes": "16x16"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-20.png",
|
||||
"sizes": "20x20"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-24.png",
|
||||
"sizes": "24x24"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-30.png",
|
||||
"sizes": "30x30"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-32.png",
|
||||
"sizes": "32x32"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-36.png",
|
||||
"sizes": "36x36"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-40.png",
|
||||
"sizes": "40x40"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-44.png",
|
||||
"sizes": "44x44"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-48.png",
|
||||
"sizes": "48x48"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-60.png",
|
||||
"sizes": "60x60"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-64.png",
|
||||
"sizes": "64x64"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-72.png",
|
||||
"sizes": "72x72"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-80.png",
|
||||
"sizes": "80x80"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-96.png",
|
||||
"sizes": "96x96"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-256.png",
|
||||
"sizes": "256x256"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-16.png",
|
||||
"sizes": "16x16"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-20.png",
|
||||
"sizes": "20x20"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-24.png",
|
||||
"sizes": "24x24"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-30.png",
|
||||
"sizes": "30x30"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-32.png",
|
||||
"sizes": "32x32"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-36.png",
|
||||
"sizes": "36x36"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-40.png",
|
||||
"sizes": "40x40"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-44.png",
|
||||
"sizes": "44x44"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-48.png",
|
||||
"sizes": "48x48"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-60.png",
|
||||
"sizes": "60x60"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-64.png",
|
||||
"sizes": "64x64"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-72.png",
|
||||
"sizes": "72x72"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-80.png",
|
||||
"sizes": "80x80"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-96.png",
|
||||
"sizes": "96x96"
|
||||
},
|
||||
{
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-256.png",
|
||||
"sizes": "256x256"
|
||||
},
|
||||
{
|
||||
"src": "android/android-launchericon-512-512.png",
|
||||
"sizes": "512x512"
|
||||
},
|
||||
{
|
||||
"src": "android/android-launchericon-192-192.png",
|
||||
"sizes": "192x192"
|
||||
},
|
||||
{
|
||||
"src": "android/android-launchericon-144-144.png",
|
||||
"sizes": "144x144"
|
||||
},
|
||||
{
|
||||
"src": "android/android-launchericon-96-96.png",
|
||||
"sizes": "96x96"
|
||||
},
|
||||
{
|
||||
"src": "android/android-launchericon-72-72.png",
|
||||
"sizes": "72x72"
|
||||
},
|
||||
{
|
||||
"src": "android/android-launchericon-48-48.png",
|
||||
"sizes": "48x48"
|
||||
},
|
||||
{
|
||||
"src": "ios/16.png",
|
||||
"sizes": "16x16"
|
||||
},
|
||||
{
|
||||
"src": "ios/20.png",
|
||||
"sizes": "20x20"
|
||||
},
|
||||
{
|
||||
"src": "ios/29.png",
|
||||
"sizes": "29x29"
|
||||
},
|
||||
{
|
||||
"src": "ios/32.png",
|
||||
"sizes": "32x32"
|
||||
},
|
||||
{
|
||||
"src": "ios/40.png",
|
||||
"sizes": "40x40"
|
||||
},
|
||||
{
|
||||
"src": "ios/50.png",
|
||||
"sizes": "50x50"
|
||||
},
|
||||
{
|
||||
"src": "ios/57.png",
|
||||
"sizes": "57x57"
|
||||
},
|
||||
{
|
||||
"src": "ios/58.png",
|
||||
"sizes": "58x58"
|
||||
},
|
||||
{
|
||||
"src": "ios/60.png",
|
||||
"sizes": "60x60"
|
||||
},
|
||||
{
|
||||
"src": "ios/64.png",
|
||||
"sizes": "64x64"
|
||||
},
|
||||
{
|
||||
"src": "ios/72.png",
|
||||
"sizes": "72x72"
|
||||
},
|
||||
{
|
||||
"src": "ios/76.png",
|
||||
"sizes": "76x76"
|
||||
},
|
||||
{
|
||||
"src": "ios/80.png",
|
||||
"sizes": "80x80"
|
||||
},
|
||||
{
|
||||
"src": "ios/87.png",
|
||||
"sizes": "87x87"
|
||||
},
|
||||
{
|
||||
"src": "ios/100.png",
|
||||
"sizes": "100x100"
|
||||
},
|
||||
{
|
||||
"src": "ios/114.png",
|
||||
"sizes": "114x114"
|
||||
},
|
||||
{
|
||||
"src": "ios/120.png",
|
||||
"sizes": "120x120"
|
||||
},
|
||||
{
|
||||
"src": "ios/128.png",
|
||||
"sizes": "128x128"
|
||||
},
|
||||
{
|
||||
"src": "ios/144.png",
|
||||
"sizes": "144x144"
|
||||
},
|
||||
{
|
||||
"src": "ios/152.png",
|
||||
"sizes": "152x152"
|
||||
},
|
||||
{
|
||||
"src": "ios/167.png",
|
||||
"sizes": "167x167"
|
||||
},
|
||||
{
|
||||
"src": "ios/180.png",
|
||||
"sizes": "180x180"
|
||||
},
|
||||
{
|
||||
"src": "ios/192.png",
|
||||
"sizes": "192x192"
|
||||
},
|
||||
{
|
||||
"src": "ios/256.png",
|
||||
"sizes": "256x256"
|
||||
},
|
||||
{
|
||||
"src": "ios/512.png",
|
||||
"sizes": "512x512"
|
||||
},
|
||||
{
|
||||
"src": "ios/1024.png",
|
||||
"sizes": "1024x1024"
|
||||
}
|
||||
],
|
||||
"screenshots": [
|
||||
{
|
||||
"src": "screenshot1.webp",
|
||||
"sizes": "1280x720",
|
||||
"type": "image/webp"
|
||||
},
|
||||
{
|
||||
"src": "screenshot2.webp",
|
||||
"sizes": "1280x720",
|
||||
"type": "image/webp"
|
||||
}
|
||||
],
|
||||
"theme_color": "#000000",
|
||||
"background_color": "#000000",
|
||||
"start_url": "sign-in",
|
||||
"display": "standalone",
|
||||
"orientation": "any",
|
||||
"categories": [
|
||||
"productivity"
|
||||
],
|
||||
"iarc_rating_id": "70d7c4a4-3e5a-4714-a7dc-fa006613ba96",
|
||||
"description": "Open Source kanban with MIT license",
|
||||
"dir": "auto",
|
||||
"scope": "https://boards.wekan.team",
|
||||
"prefer_related_applications": false,
|
||||
"display_override": [
|
||||
"standalone"
|
||||
]
|
||||
}
|
||||
@@ -513,10 +513,8 @@
|
||||
"categories": [
|
||||
"productivity"
|
||||
],
|
||||
"iarc_rating_id": "70d7c4a4-3e5a-4714-a7dc-fa006613ba96",
|
||||
"description": "Open Source kanban with MIT license",
|
||||
"dir": "auto",
|
||||
"scope": "https://boards.wekan.team",
|
||||
"prefer_related_applications": false,
|
||||
"display_override": [
|
||||
"standalone"
|
||||
|
||||
@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
|
||||
appTitle = (defaultText = "Wekan"),
|
||||
# The name of the app as it is displayed to the user.
|
||||
|
||||
appVersion = 779,
|
||||
appVersion = 783,
|
||||
# Increment this for every release.
|
||||
|
||||
appMarketingVersion = (defaultText = "7.79.0~2025-01-02"),
|
||||
appMarketingVersion = (defaultText = "7.83.0~2025-03-08"),
|
||||
# Human-readable presentation of the app version.
|
||||
|
||||
minUpgradableAppVersion = 0,
|
||||
|
||||
+5
-5
@@ -1,5 +1,5 @@
|
||||
name: wekan
|
||||
version: '7.79'
|
||||
version: '7.83'
|
||||
base: core20
|
||||
summary: Open Source kanban
|
||||
description: |
|
||||
@@ -65,7 +65,7 @@ apps:
|
||||
|
||||
parts:
|
||||
mongodb:
|
||||
source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-6.0.19.tgz
|
||||
source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-6.0.20.tgz
|
||||
plugin: dump
|
||||
stage-packages:
|
||||
- libssl1.1
|
||||
@@ -170,9 +170,9 @@ parts:
|
||||
# Cleanup
|
||||
mkdir .build
|
||||
cd .build
|
||||
wget https://github.com/wekan/wekan/releases/download/v7.79/wekan-7.79-amd64.zip
|
||||
unzip wekan-7.79-amd64.zip
|
||||
rm wekan-7.79-amd64.zip
|
||||
wget https://github.com/wekan/wekan/releases/download/v7.83/wekan-7.83-amd64.zip
|
||||
unzip wekan-7.83-amd64.zip
|
||||
rm wekan-7.83-amd64.zip
|
||||
cd ..
|
||||
##cd .build/bundle
|
||||
##find . -type d -name '*-garbage*' | xargs rm -rf
|
||||
|
||||
@@ -459,6 +459,9 @@ REM # example : LDAP_BACKGROUND_SYNC=true
|
||||
REM SET LDAP_BACKGROUND_SYNC=false
|
||||
|
||||
REM # LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
|
||||
REM # The format must be as specified in:
|
||||
REM # https://bunkat.github.io/later/parsers.html#text
|
||||
REM SET LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hours
|
||||
REM # At which interval does the background task sync in milliseconds.
|
||||
REM # Leave this unset, so it uses default, and does not crash.
|
||||
REM # https://github.com/wekan/wekan/issues/2354#issuecomment-515305722
|
||||
|
||||
@@ -385,6 +385,9 @@
|
||||
#export LDAP_BACKGROUND_SYNC=false
|
||||
#
|
||||
# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
|
||||
# The format must be as specified in:
|
||||
# https://bunkat.github.io/later/parsers.html#text
|
||||
#export LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hours
|
||||
# At which interval does the background task sync in milliseconds.
|
||||
# Leave this unset, so it uses default, and does not crash.
|
||||
# https://github.com/wekan/wekan/issues/2354#issuecomment-515305722
|
||||
|
||||
Reference in new issue
Block a user