mirror of
https://github.com/wekan/wekan.git
synced 2026-03-11 16:12:34 +01:00
Merge branch 'master' of https://github.com/wekan/wekan
This commit is contained in:
commit
52e45211a2
37 changed files with 7053 additions and 134 deletions
|
|
@ -6,7 +6,7 @@ ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
ENV \
|
ENV \
|
||||||
DEBUG=false \
|
DEBUG=false \
|
||||||
NODE_VERSION=v12.22.3 \
|
NODE_VERSION=v12.22.4 \
|
||||||
METEOR_RELEASE=1.10.2 \
|
METEOR_RELEASE=1.10.2 \
|
||||||
USE_EDGE=false \
|
USE_EDGE=false \
|
||||||
METEOR_EDGE=1.5-beta.17 \
|
METEOR_EDGE=1.5-beta.17 \
|
||||||
|
|
|
||||||
|
|
@ -81,7 +81,7 @@ parts:
|
||||||
wekan:
|
wekan:
|
||||||
source: .
|
source: .
|
||||||
plugin: nodejs
|
plugin: nodejs
|
||||||
node-engine: 12.22.3
|
node-engine: 12.22.4
|
||||||
node-packages:
|
node-packages:
|
||||||
- node-gyp
|
- node-gyp
|
||||||
- node-pre-gyp
|
- node-pre-gyp
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,7 @@ parts:
|
||||||
wekan:
|
wekan:
|
||||||
source: .
|
source: .
|
||||||
plugin: nodejs
|
plugin: nodejs
|
||||||
node-engine: 12.22.3
|
node-engine: 12.22.4
|
||||||
node-packages:
|
node-packages:
|
||||||
- node-gyp
|
- node-gyp
|
||||||
- node-pre-gyp
|
- node-pre-gyp
|
||||||
|
|
|
||||||
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -34,3 +34,7 @@ ehthumbs.db
|
||||||
.devcontainer/docker-compose.extend.yml
|
.devcontainer/docker-compose.extend.yml
|
||||||
.devcontainer/volumes*/
|
.devcontainer/volumes*/
|
||||||
.coverage
|
.coverage
|
||||||
|
|
||||||
|
# Helm chart
|
||||||
|
# Chart dependencies
|
||||||
|
/helm/wekan/**/*.tgz
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ sudo: required
|
||||||
|
|
||||||
env:
|
env:
|
||||||
TRAVIS_DOCKER_COMPOSE_VERSION: 1.24.0
|
TRAVIS_DOCKER_COMPOSE_VERSION: 1.24.0
|
||||||
TRAVIS_NODE_VERSION: 12.22.3
|
TRAVIS_NODE_VERSION: 12.22.4
|
||||||
TRAVIS_NPM_VERSION: latest
|
TRAVIS_NPM_VERSION: latest
|
||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
|
|
|
||||||
73
CHANGELOG.md
73
CHANGELOG.md
|
|
@ -3,6 +3,79 @@
|
||||||
Note: With Docker, please don't use latest tag. Only use release tags.
|
Note: With Docker, please don't use latest tag. Only use release tags.
|
||||||
See https://github.com/wekan/wekan/issues/3874
|
See https://github.com/wekan/wekan/issues/3874
|
||||||
|
|
||||||
|
# v5.47 2021-08-05 Wekan release
|
||||||
|
|
||||||
|
This release adds the following updates:
|
||||||
|
|
||||||
|
- [Updated dependencies](https://github.com/wekan/wekan/commit/68d9de89466611521db7d942dcf8daf58ba15a3e).
|
||||||
|
Thanks to developers of dependencies.
|
||||||
|
|
||||||
|
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||||
|
|
||||||
|
# v5.46 2021-08-05 Wekan release
|
||||||
|
|
||||||
|
This release adds the following updates:
|
||||||
|
|
||||||
|
- [Updated dependencies](https://github.com/wekan/wekan/commit/d5c0a5d377d31bedadf3730756406355a17a563a).
|
||||||
|
Thanks to developers of dependencies.
|
||||||
|
|
||||||
|
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||||
|
|
||||||
|
# v5.45 2021-08-05 Wekan release
|
||||||
|
|
||||||
|
This release adds the following new features:
|
||||||
|
|
||||||
|
- [Special handles to notify board or card members in a comment](https://github.com/wekan/wekan/pull/3937).
|
||||||
|
Thanks to syndimann.
|
||||||
|
|
||||||
|
and fixes the following bugs:
|
||||||
|
|
||||||
|
- [Fix: Show missing user mentions popover when posting comments in maximized card layout](https://github.com/wekan/wekan/pull/3939).
|
||||||
|
Thanks to syndimann.
|
||||||
|
|
||||||
|
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||||
|
|
||||||
|
# v5.44 2021-08-03 Wekan release
|
||||||
|
|
||||||
|
This release adds the following updates:
|
||||||
|
|
||||||
|
- [Wekan v5.43](https://github.com/wekan/wekan/commit/4e17d5a10f95fcea420c794ed8b30ea18dc2a725) and v5.44 for helm.
|
||||||
|
Thanks to xet7.
|
||||||
|
|
||||||
|
and fixes the following bugs:
|
||||||
|
|
||||||
|
- [Fix: Consecutive Card numbering when a card is moved to another board or copied](https://github.com/wekan/wekan/pull/3936).
|
||||||
|
Thanks to syndimann.
|
||||||
|
|
||||||
|
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||||
|
|
||||||
|
# v5.43 2021-08-03 Wekan release
|
||||||
|
|
||||||
|
This release adds the following new features:
|
||||||
|
|
||||||
|
- [Consecutive boardwise card numbering](https://github.com/wekan/wekan/pull/3935).
|
||||||
|
Thanks to syndimann.
|
||||||
|
|
||||||
|
and adds the following updates:
|
||||||
|
|
||||||
|
- [Update Helm Chart apiVersion, pin image version](https://github.com/wekan/wekan/pulls/3933).
|
||||||
|
This makes this Chart compatible with [flux](https://fluxcd.io)
|
||||||
|
[helm-controller](https://fluxcd.io/docs/components/helm), which requires v2 charts.
|
||||||
|
Thanks to varac.
|
||||||
|
- [Wekan v5.42 for helm](https://github.com/wekan/wekan/commit/7a1f42fa4e153ff4a0fb481ca5a363ac62033b7f).
|
||||||
|
Thanks to xet7.
|
||||||
|
|
||||||
|
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||||
|
|
||||||
|
# v5.42 2021-08-01 Wekan release
|
||||||
|
|
||||||
|
This release adds the following CRITICAL SECURITY UPDATES:
|
||||||
|
|
||||||
|
- [Updated to Node.js v12.22.4](https://github.com/wekan/wekan/commit/b13f6913896f787e1cae485381d98345d9f8b830).
|
||||||
|
Thanks to Node.js developers.
|
||||||
|
|
||||||
|
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||||
|
|
||||||
# v5.41 2021-07-26 Wekan release
|
# v5.41 2021-07-26 Wekan release
|
||||||
|
|
||||||
This release fixes the following bugs:
|
This release fixes the following bugs:
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-essential git ca-certificates python3" \
|
ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-essential git ca-certificates python3" \
|
||||||
DEBUG=false \
|
DEBUG=false \
|
||||||
NODE_VERSION=v12.22.3 \
|
NODE_VERSION=v12.22.4 \
|
||||||
METEOR_RELEASE=1.10.2 \
|
METEOR_RELEASE=1.10.2 \
|
||||||
USE_EDGE=false \
|
USE_EDGE=false \
|
||||||
METEOR_EDGE=1.5-beta.17 \
|
METEOR_EDGE=1.5-beta.17 \
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ FROM amd64/alpine:3.7 AS builder
|
||||||
ENV QEMU_VERSION=v4.2.0-6 \
|
ENV QEMU_VERSION=v4.2.0-6 \
|
||||||
QEMU_ARCHITECTURE=aarch64 \
|
QEMU_ARCHITECTURE=aarch64 \
|
||||||
NODE_ARCHITECTURE=linux-arm64 \
|
NODE_ARCHITECTURE=linux-arm64 \
|
||||||
NODE_VERSION=v12.22.3 \
|
NODE_VERSION=v12.22.4 \
|
||||||
WEKAN_VERSION=latest \
|
WEKAN_VERSION=latest \
|
||||||
WEKAN_ARCHITECTURE=arm64
|
WEKAN_ARCHITECTURE=arm64
|
||||||
|
|
||||||
|
|
@ -40,7 +40,7 @@ LABEL maintainer="wekan"
|
||||||
# Set the environment variables (defaults where required)
|
# Set the environment variables (defaults where required)
|
||||||
ENV QEMU_ARCHITECTURE=aarch64 \
|
ENV QEMU_ARCHITECTURE=aarch64 \
|
||||||
NODE_ARCHITECTURE=linux-arm64 \
|
NODE_ARCHITECTURE=linux-arm64 \
|
||||||
NODE_VERSION=v12.22.3 \
|
NODE_VERSION=v12.22.4 \
|
||||||
NODE_ENV=production \
|
NODE_ENV=production \
|
||||||
NPM_VERSION=latest \
|
NPM_VERSION=latest \
|
||||||
WITH_API=true \
|
WITH_API=true \
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
|
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
|
||||||
appVersion: "v5.41.0"
|
appVersion: "v5.47.0"
|
||||||
files:
|
files:
|
||||||
userUploads:
|
userUploads:
|
||||||
- README.md
|
- README.md
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,9 @@ template(name="cardDetails")
|
||||||
h2.card-details-title.js-card-title(
|
h2.card-details-title.js-card-title(
|
||||||
class="{{#if canModifyCard}}js-open-inlined-form is-editable{{/if}}")
|
class="{{#if canModifyCard}}js-open-inlined-form is-editable{{/if}}")
|
||||||
+viewer
|
+viewer
|
||||||
|
if currentBoard.allowsCardNumber
|
||||||
|
span.card-number
|
||||||
|
| ##{getCardNumber}
|
||||||
= getTitle
|
= getTitle
|
||||||
if isWatching
|
if isWatching
|
||||||
i.card-details-watch.fa.fa-eye
|
i.card-details-watch.fa.fa-eye
|
||||||
|
|
|
||||||
|
|
@ -114,6 +114,12 @@ avatar-radius = 50%
|
||||||
background: darken(white, 7%)
|
background: darken(white, 7%)
|
||||||
border-bottom: 1px solid darken(white, 14%)
|
border-bottom: 1px solid darken(white, 14%)
|
||||||
|
|
||||||
|
.card-number {
|
||||||
|
color: darken(white, 30%);
|
||||||
|
display: inline-block;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
.close-card-details,
|
.close-card-details,
|
||||||
.maximize-card-details,
|
.maximize-card-details,
|
||||||
.minimize-card-details,
|
.minimize-card-details,
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,9 @@ template(name="minicard")
|
||||||
if getArchived
|
if getArchived
|
||||||
span.linked-icon.linked-archived.fa.fa-archive
|
span.linked-icon.linked-archived.fa.fa-archive
|
||||||
+viewer
|
+viewer
|
||||||
|
if currentBoard.allowsCardNumber
|
||||||
|
span.card-number
|
||||||
|
| ##{getCardNumber}
|
||||||
= getTitle
|
= getTitle
|
||||||
if $eq 'subtext-with-full-path' currentBoard.presentParentTask
|
if $eq 'subtext-with-full-path' currentBoard.presentParentTask
|
||||||
.parent-subtext
|
.parent-subtext
|
||||||
|
|
|
||||||
|
|
@ -114,6 +114,10 @@
|
||||||
font-size:20px;
|
font-size:20px;
|
||||||
color: #ccc;
|
color: #ccc;
|
||||||
.minicard-title
|
.minicard-title
|
||||||
|
.card-number
|
||||||
|
color: darken(white, 30%);
|
||||||
|
display: inline-block;
|
||||||
|
margin-right: 5px;
|
||||||
p:last-child
|
p:last-child
|
||||||
margin-bottom: 0
|
margin-bottom: 0
|
||||||
.viewer
|
.viewer
|
||||||
|
|
|
||||||
|
|
@ -81,7 +81,9 @@ BlazeComponent.extendComponent({
|
||||||
Utils.boardView() === 'board-view-cal' ||
|
Utils.boardView() === 'board-view-cal' ||
|
||||||
!Utils.boardView()
|
!Utils.boardView()
|
||||||
)
|
)
|
||||||
swimlaneId = board.getDefaultSwimline()._id;
|
swimlaneId = board.getDefaultSwimline()._id;
|
||||||
|
|
||||||
|
const nextCardNumber = board.getNextCardNumber();
|
||||||
|
|
||||||
const _id = Cards.insert({
|
const _id = Cards.insert({
|
||||||
title,
|
title,
|
||||||
|
|
@ -93,6 +95,7 @@ BlazeComponent.extendComponent({
|
||||||
sort: sortIndex,
|
sort: sortIndex,
|
||||||
swimlaneId,
|
swimlaneId,
|
||||||
type: cardType,
|
type: cardType,
|
||||||
|
cardNumber: nextCardNumber,
|
||||||
linkedId,
|
linkedId,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -241,7 +244,7 @@ BlazeComponent.extendComponent({
|
||||||
Boards.findOne(currentBoardId)
|
Boards.findOne(currentBoardId)
|
||||||
.customFields()
|
.customFields()
|
||||||
.fetch(),
|
.fetch(),
|
||||||
function(field) {
|
function (field) {
|
||||||
if (field.automaticallyOnCard || field.alwaysOnCard)
|
if (field.automaticallyOnCard || field.alwaysOnCard)
|
||||||
arr.push({ _id: field._id, value: null });
|
arr.push({ _id: field._id, value: null });
|
||||||
},
|
},
|
||||||
|
|
@ -750,17 +753,17 @@ BlazeComponent.extendComponent({
|
||||||
|
|
||||||
checkIdleTime() {
|
checkIdleTime() {
|
||||||
return window.requestIdleCallback ||
|
return window.requestIdleCallback ||
|
||||||
function(handler) {
|
function (handler) {
|
||||||
const startTime = Date.now();
|
const startTime = Date.now();
|
||||||
return setTimeout(function() {
|
return setTimeout(function () {
|
||||||
handler({
|
handler({
|
||||||
didTimeout: false,
|
didTimeout: false,
|
||||||
timeRemaining() {
|
timeRemaining() {
|
||||||
return Math.max(0, 50.0 - (Date.now() - startTime));
|
return Math.max(0, 50.0 - (Date.now() - startTime));
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}, 1);
|
}, 1);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
updateList() {
|
updateList() {
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,9 @@
|
||||||
|
const specialHandles = [
|
||||||
|
{userId: 'board_members', username: 'board_members'},
|
||||||
|
{userId: 'card_members', username: 'card_members'}
|
||||||
|
];
|
||||||
|
const specialHandleNames = specialHandles.map(m => m.username);
|
||||||
|
|
||||||
Template.editor.onRendered(() => {
|
Template.editor.onRendered(() => {
|
||||||
const textareaSelector = 'textarea';
|
const textareaSelector = 'textarea';
|
||||||
const mentions = [
|
const mentions = [
|
||||||
|
|
@ -7,13 +13,14 @@ Template.editor.onRendered(() => {
|
||||||
search(term, callback) {
|
search(term, callback) {
|
||||||
const currentBoard = Boards.findOne(Session.get('currentBoard'));
|
const currentBoard = Boards.findOne(Session.get('currentBoard'));
|
||||||
callback(
|
callback(
|
||||||
|
_.union(
|
||||||
currentBoard
|
currentBoard
|
||||||
.activeMembers()
|
.activeMembers()
|
||||||
.map(member => {
|
.map(member => {
|
||||||
const username = Users.findOne(member.userId).username;
|
const username = Users.findOne(member.userId).username;
|
||||||
return username.includes(term) ? username : null;
|
return username.includes(term) ? username : null;
|
||||||
})
|
})
|
||||||
.filter(Boolean),
|
.filter(Boolean), [...specialHandleNames])
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
template(value) {
|
template(value) {
|
||||||
|
|
@ -323,13 +330,13 @@ Blaze.Template.registerHelper(
|
||||||
return HTML.Raw(
|
return HTML.Raw(
|
||||||
DOMPurify.sanitize(content, { ALLOW_UNKNOWN_PROTOCOLS: true }),
|
DOMPurify.sanitize(content, { ALLOW_UNKNOWN_PROTOCOLS: true }),
|
||||||
);
|
);
|
||||||
const knowedUsers = currentBoard.members.map(member => {
|
const knowedUsers = _.union(currentBoard.members.map(member => {
|
||||||
const u = Users.findOne(member.userId);
|
const u = Users.findOne(member.userId);
|
||||||
if (u) {
|
if (u) {
|
||||||
member.username = u.username;
|
member.username = u.username;
|
||||||
}
|
}
|
||||||
return member;
|
return member;
|
||||||
});
|
}), [...specialHandles]);
|
||||||
const mentionRegex = /\B@([\w.]*)/gi;
|
const mentionRegex = /\B@([\w.]*)/gi;
|
||||||
|
|
||||||
let currentMention;
|
let currentMention;
|
||||||
|
|
|
||||||
|
|
@ -317,6 +317,9 @@ kbd
|
||||||
.grabbing
|
.grabbing
|
||||||
cursor: grabbing
|
cursor: grabbing
|
||||||
|
|
||||||
|
.textcomplete-dropdown
|
||||||
|
z-index: 2000 !important;
|
||||||
|
|
||||||
// Implement a thiner close icon as suggested in
|
// Implement a thiner close icon as suggested in
|
||||||
// https://github.com/FortAwesome/Font-Awesome/issues/1540#issuecomment-68689950
|
// https://github.com/FortAwesome/Font-Awesome/issues/1540#issuecomment-68689950
|
||||||
.fa.fa-times-thin:before
|
.fa.fa-times-thin:before
|
||||||
|
|
|
||||||
|
|
@ -189,6 +189,13 @@ template(name="boardCardSettingsPopup")
|
||||||
span
|
span
|
||||||
i.fa.fa-tags
|
i.fa.fa-tags
|
||||||
| {{_ 'labels'}}
|
| {{_ 'labels'}}
|
||||||
|
div.check-div
|
||||||
|
a.flex.js-field-has-card-number(class="{{#if allowsCardNumber}}is-checked{{/if}}")
|
||||||
|
.materialCheckBox(class="{{#if allowsCardNumber}}is-checked{{/if}}")
|
||||||
|
span
|
||||||
|
i.fa.fa-hashtag
|
||||||
|
| {{_ 'card'}}
|
||||||
|
| {{_ 'number'}}
|
||||||
div.check-div
|
div.check-div
|
||||||
a.flex.js-field-has-description-title(class="{{#if allowsDescriptionTitle}}is-checked{{/if}}")
|
a.flex.js-field-has-description-title(class="{{#if allowsDescriptionTitle}}is-checked{{/if}}")
|
||||||
.materialCheckBox(class="{{#if allowsDescriptionTitle}}is-checked{{/if}}")
|
.materialCheckBox(class="{{#if allowsDescriptionTitle}}is-checked{{/if}}")
|
||||||
|
|
|
||||||
|
|
@ -776,6 +776,10 @@ BlazeComponent.extendComponent({
|
||||||
return this.currentBoard.allowsComments;
|
return this.currentBoard.allowsComments;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
allowsCardNumber() {
|
||||||
|
return this.currentBoard.allowsCardNumber;
|
||||||
|
},
|
||||||
|
|
||||||
allowsDescriptionTitle() {
|
allowsDescriptionTitle() {
|
||||||
return this.currentBoard.allowsDescriptionTitle;
|
return this.currentBoard.allowsDescriptionTitle;
|
||||||
},
|
},
|
||||||
|
|
@ -1019,6 +1023,22 @@ BlazeComponent.extendComponent({
|
||||||
this.currentBoard.allowsDescriptionTitle,
|
this.currentBoard.allowsDescriptionTitle,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
'click .js-field-has-card-number'(evt) {
|
||||||
|
evt.preventDefault();
|
||||||
|
this.currentBoard.allowsCardNumber = !this.currentBoard
|
||||||
|
.allowsCardNumber;
|
||||||
|
this.currentBoard.setAllowsCardNumber(
|
||||||
|
this.currentBoard.allowsCardNumber,
|
||||||
|
);
|
||||||
|
$(`.js-field-has-card-number ${MCB}`).toggleClass(
|
||||||
|
CKCLS,
|
||||||
|
this.currentBoard.allowsCardNumber,
|
||||||
|
);
|
||||||
|
$('.js-field-has-card-number').toggleClass(
|
||||||
|
CKCLS,
|
||||||
|
this.currentBoard.allowsCardNumber,
|
||||||
|
);
|
||||||
|
},
|
||||||
'click .js-field-has-description-text'(evt) {
|
'click .js-field-has-description-text'(evt) {
|
||||||
evt.preventDefault();
|
evt.preventDefault();
|
||||||
this.currentBoard.allowsDescriptionText = !this.currentBoard
|
this.currentBoard.allowsDescriptionText = !this.currentBoard
|
||||||
|
|
|
||||||
6
helm/wekan/Chart.lock
Normal file
6
helm/wekan/Chart.lock
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
dependencies:
|
||||||
|
- name: mongodb
|
||||||
|
repository: https://charts.bitnami.com/bitnami
|
||||||
|
version: 10.0.5
|
||||||
|
digest: sha256:f6520f39b687cb52574ec2fda514662ce913665c0fd2391b68fdb4d2eb059497
|
||||||
|
generated: "2021-07-27T22:16:39.945592552+02:00"
|
||||||
|
|
@ -1,14 +1,24 @@
|
||||||
name: wekan
|
apiVersion: v2
|
||||||
version: 1.0.3
|
appVersion: "5.47"
|
||||||
apiVersion: v1
|
dependencies:
|
||||||
|
- condition: mongodb.enabled
|
||||||
|
name: mongodb
|
||||||
|
repository: https://charts.bitnami.com/bitnami
|
||||||
|
version: 10.0.x
|
||||||
description: Open Source kanban
|
description: Open Source kanban
|
||||||
home: https://wekan.github.io/
|
home: https://wekan.github.io
|
||||||
icon: https://wekan.github.io/wekan-logo.svg
|
icon: https://wekan.github.io/wekan-logo.svg
|
||||||
|
keywords:
|
||||||
|
- kanban
|
||||||
|
maintainers:
|
||||||
|
- email: github@randall.cc
|
||||||
|
name: technotaff
|
||||||
|
- email: jiangyt.cn@gmail.com
|
||||||
|
name: jiangytcn
|
||||||
|
- email: varac@varac.net
|
||||||
|
name: varac
|
||||||
|
name: wekan
|
||||||
sources:
|
sources:
|
||||||
- https://github.com/wekan/wekan
|
- https://github.com/wekan/wekan
|
||||||
maintainers:
|
type: application
|
||||||
- name: technotaff
|
version: 1.1.0
|
||||||
email: github@randall.cc
|
|
||||||
- name: jiangytcn
|
|
||||||
email: jiangyt.cn@gmail.com
|
|
||||||
engine: gotpl
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
dependencies:
|
|
||||||
- name: mongodb
|
|
||||||
version: 10.0.x
|
|
||||||
repository: "https://charts.bitnami.com/bitnami"
|
|
||||||
condition: mongodb.enabled
|
|
||||||
|
|
@ -14,7 +14,7 @@ serviceAccounts:
|
||||||
##
|
##
|
||||||
image:
|
image:
|
||||||
repository: quay.io/wekan/wekan
|
repository: quay.io/wekan/wekan
|
||||||
tag: latest
|
tag: v5.47
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
## Configuration for wekan component
|
## Configuration for wekan component
|
||||||
|
|
|
||||||
|
|
@ -89,7 +89,7 @@
|
||||||
"add-subtask": "Teilaufgabe hinzufügen",
|
"add-subtask": "Teilaufgabe hinzufügen",
|
||||||
"add-checklist": "Checkliste hinzufügen",
|
"add-checklist": "Checkliste hinzufügen",
|
||||||
"add-checklist-item": "Element zu Checkliste hinzufügen",
|
"add-checklist-item": "Element zu Checkliste hinzufügen",
|
||||||
"convertChecklistItemToCardPopup-title": "Convert to Card",
|
"convertChecklistItemToCardPopup-title": "in Karte konvertieren",
|
||||||
"add-cover": "Cover hinzufügen",
|
"add-cover": "Cover hinzufügen",
|
||||||
"add-label": "Label hinzufügen",
|
"add-label": "Label hinzufügen",
|
||||||
"add-list": "Liste hinzufügen",
|
"add-list": "Liste hinzufügen",
|
||||||
|
|
|
||||||
|
|
@ -89,7 +89,7 @@
|
||||||
"add-subtask": "Adicionar Sub-tarefa",
|
"add-subtask": "Adicionar Sub-tarefa",
|
||||||
"add-checklist": "Adicionar Lista de Verificação",
|
"add-checklist": "Adicionar Lista de Verificação",
|
||||||
"add-checklist-item": "Adicionar um item à lista de verificação",
|
"add-checklist-item": "Adicionar um item à lista de verificação",
|
||||||
"convertChecklistItemToCardPopup-title": "Convert to Card",
|
"convertChecklistItemToCardPopup-title": "Converter para Cartão",
|
||||||
"add-cover": "Adicionar Capa",
|
"add-cover": "Adicionar Capa",
|
||||||
"add-label": "Adicionar Etiqueta",
|
"add-label": "Adicionar Etiqueta",
|
||||||
"add-list": "Adicionar Lista",
|
"add-list": "Adicionar Lista",
|
||||||
|
|
@ -199,7 +199,7 @@
|
||||||
"poker-forty": "40",
|
"poker-forty": "40",
|
||||||
"poker-oneHundred": "100",
|
"poker-oneHundred": "100",
|
||||||
"poker-unsure": "?",
|
"poker-unsure": "?",
|
||||||
"poker-finish": "Finish",
|
"poker-finish": "Finalizar",
|
||||||
"poker-result-votes": "Votos",
|
"poker-result-votes": "Votos",
|
||||||
"poker-result-who": "Who",
|
"poker-result-who": "Who",
|
||||||
"poker-replay": "Replay",
|
"poker-replay": "Replay",
|
||||||
|
|
|
||||||
|
|
@ -210,15 +210,30 @@ if (Meteor.isServer) {
|
||||||
// ignore commenter mention himself?
|
// ignore commenter mention himself?
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
const atUser = _.findWhere(knownUsers, { username });
|
|
||||||
if (!atUser) {
|
if (activity.boardId && username === 'board_members') {
|
||||||
continue;
|
// mentions all board members
|
||||||
|
const knownUids = knownUsers.map(u => u.userId);
|
||||||
|
watchers = _.union(watchers, [...knownUids]);
|
||||||
|
title = 'act-atUserComment';
|
||||||
|
} else if (activity.cardId && username === 'card_members') {
|
||||||
|
// mentions all card members if assigned
|
||||||
|
const card = activity.card();
|
||||||
|
watchers = _.union(watchers, [...card.members]);
|
||||||
|
title = 'act-atUserComment';
|
||||||
|
} else {
|
||||||
|
const atUser = _.findWhere(knownUsers, { username });
|
||||||
|
if (!atUser) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
const uid = atUser.userId;
|
||||||
|
params.atUsername = username;
|
||||||
|
params.atEmails = atUser.emails;
|
||||||
|
title = 'act-atUserComment';
|
||||||
|
watchers = _.union(watchers, [uid]);
|
||||||
}
|
}
|
||||||
const uid = atUser.userId;
|
|
||||||
params.atUsername = username;
|
|
||||||
params.atEmails = atUser.emails;
|
|
||||||
title = 'act-atUserComment';
|
|
||||||
watchers = _.union(watchers, [uid]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
params.commentId = comment._id;
|
params.commentId = comment._id;
|
||||||
|
|
|
||||||
|
|
@ -375,6 +375,14 @@ Boards.attachSchema(
|
||||||
defaultValue: true,
|
defaultValue: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
allowsCardNumber: {
|
||||||
|
/**
|
||||||
|
* Does the board allows card numbers?
|
||||||
|
*/
|
||||||
|
type: Boolean,
|
||||||
|
defaultValue: false,
|
||||||
|
},
|
||||||
|
|
||||||
allowsActivities: {
|
allowsActivities: {
|
||||||
/**
|
/**
|
||||||
* Does the board allows comments?
|
* Does the board allows comments?
|
||||||
|
|
@ -1056,6 +1064,26 @@ Boards.helpers({
|
||||||
return result;
|
return result;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getNextCardNumber() {
|
||||||
|
const boardCards = Cards.find(
|
||||||
|
{
|
||||||
|
boardId: this._id
|
||||||
|
},
|
||||||
|
{
|
||||||
|
sort: { cardNumber: -1 },
|
||||||
|
limit: 1
|
||||||
|
}
|
||||||
|
).fetch();
|
||||||
|
|
||||||
|
// If no card is assigned to the board, return 1
|
||||||
|
if (!boardCards || boardCards.length === 0) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
const maxCardNr = !!boardCards[0].cardNumber ? boardCards[0].cardNumber : 0;
|
||||||
|
return maxCardNr + 1;
|
||||||
|
},
|
||||||
|
|
||||||
cardsDueInBetween(start, end) {
|
cardsDueInBetween(start, end) {
|
||||||
return Cards.find({
|
return Cards.find({
|
||||||
boardId: this._id,
|
boardId: this._id,
|
||||||
|
|
@ -1285,6 +1313,10 @@ Boards.mutations({
|
||||||
return { $set: { allowsDescriptionTitle } };
|
return { $set: { allowsDescriptionTitle } };
|
||||||
},
|
},
|
||||||
|
|
||||||
|
setAllowsCardNumber(allowsCardNumber) {
|
||||||
|
return { $set: { allowsCardNumber } };
|
||||||
|
},
|
||||||
|
|
||||||
setAllowsDescriptionText(allowsDescriptionText) {
|
setAllowsDescriptionText(allowsDescriptionText) {
|
||||||
return { $set: { allowsDescriptionText } };
|
return { $set: { allowsDescriptionText } };
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -470,6 +470,16 @@ Cards.attachSchema(
|
||||||
optional: true,
|
optional: true,
|
||||||
defaultValue: [],
|
defaultValue: [],
|
||||||
},
|
},
|
||||||
|
cardNumber: {
|
||||||
|
/**
|
||||||
|
* A boardwise sequentially increasing number that is assigned
|
||||||
|
* to every newly created card
|
||||||
|
*/
|
||||||
|
type: Number,
|
||||||
|
decimal: true,
|
||||||
|
optional: true,
|
||||||
|
defaultValue: 0,
|
||||||
|
},
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -567,6 +577,7 @@ Cards.helpers({
|
||||||
|
|
||||||
delete this._id;
|
delete this._id;
|
||||||
this.boardId = boardId;
|
this.boardId = boardId;
|
||||||
|
this.cardNumber = Boards.findOne(boardId).getNextCardNumber();
|
||||||
this.swimlaneId = swimlaneId;
|
this.swimlaneId = swimlaneId;
|
||||||
this.listId = listId;
|
this.listId = listId;
|
||||||
const _id = Cards.insert(this);
|
const _id = Cards.insert(this);
|
||||||
|
|
@ -1647,6 +1658,10 @@ Cards.helpers({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getCardNumber() {
|
||||||
|
return this.cardNumber;
|
||||||
|
},
|
||||||
|
|
||||||
getBoardTitle() {
|
getBoardTitle() {
|
||||||
if (this.isLinkedCard()) {
|
if (this.isLinkedCard()) {
|
||||||
const card = Cards.findOne({ _id: this.linkedId });
|
const card = Cards.findOne({ _id: this.linkedId });
|
||||||
|
|
@ -1975,8 +1990,12 @@ Cards.mutations({
|
||||||
'_id',
|
'_id',
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// assign the new card number from the target board
|
||||||
|
const newCardNumber = newBoard.getNextCardNumber();
|
||||||
|
|
||||||
Object.assign(mutatedFields, {
|
Object.assign(mutatedFields, {
|
||||||
labelIds: newCardLabelIds,
|
labelIds: newCardLabelIds,
|
||||||
|
cardNumber: newCardNumber
|
||||||
});
|
});
|
||||||
|
|
||||||
mutatedFields.customFields = this.mapCustomFieldsToBoard(newBoard._id);
|
mutatedFields.customFields = this.mapCustomFieldsToBoard(newBoard._id);
|
||||||
|
|
@ -3207,6 +3226,8 @@ if (Meteor.isServer) {
|
||||||
Authentication.checkAdminOrCondition(req.userId, addPermission);
|
Authentication.checkAdminOrCondition(req.userId, addPermission);
|
||||||
const paramListId = req.params.listId;
|
const paramListId = req.params.listId;
|
||||||
const paramParentId = req.params.parentId;
|
const paramParentId = req.params.parentId;
|
||||||
|
|
||||||
|
const nextCardNumber = board.getNextCardNumber();
|
||||||
const currentCards = Cards.find(
|
const currentCards = Cards.find(
|
||||||
{
|
{
|
||||||
listId: paramListId,
|
listId: paramListId,
|
||||||
|
|
@ -3229,6 +3250,7 @@ if (Meteor.isServer) {
|
||||||
userId: req.body.authorId,
|
userId: req.body.authorId,
|
||||||
swimlaneId: req.body.swimlaneId,
|
swimlaneId: req.body.swimlaneId,
|
||||||
sort: currentCards.count(),
|
sort: currentCards.count(),
|
||||||
|
cardNumber: nextCardNumber,
|
||||||
members,
|
members,
|
||||||
assignees,
|
assignees,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
6774
package-lock.json
generated
6774
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "wekan",
|
"name": "wekan",
|
||||||
"version": "v5.41.0",
|
"version": "v5.47.0",
|
||||||
"description": "Open-Source kanban",
|
"description": "Open-Source kanban",
|
||||||
"private": true,
|
"private": true,
|
||||||
"repository": {
|
"repository": {
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
|
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||||
<title>Wekan REST API v5.41</title>
|
<title>Wekan REST API v5.47</title>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
</style>
|
</style>
|
||||||
|
|
@ -1555,7 +1555,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
|
||||||
<ul class="toc-list-h1">
|
<ul class="toc-list-h1">
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v5.41">Wekan REST API v5.41</a>
|
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v5.47">Wekan REST API v5.47</a>
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|
@ -2128,7 +2128,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
|
||||||
<div class="page-wrapper">
|
<div class="page-wrapper">
|
||||||
<div class="dark-box"></div>
|
<div class="dark-box"></div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<h1 id="wekan-rest-api">Wekan REST API v5.41</h1>
|
<h1 id="wekan-rest-api">Wekan REST API v5.47</h1>
|
||||||
<blockquote>
|
<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>
|
<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>
|
</blockquote>
|
||||||
|
|
@ -3554,6 +3554,7 @@ System.out.println(response.toString());
|
||||||
<span class="hljs-attr">"allowsComments"</span>: <span class="hljs-literal">true</span>,
|
<span class="hljs-attr">"allowsComments"</span>: <span class="hljs-literal">true</span>,
|
||||||
<span class="hljs-attr">"allowsDescriptionTitle"</span>: <span class="hljs-literal">true</span>,
|
<span class="hljs-attr">"allowsDescriptionTitle"</span>: <span class="hljs-literal">true</span>,
|
||||||
<span class="hljs-attr">"allowsDescriptionText"</span>: <span class="hljs-literal">true</span>,
|
<span class="hljs-attr">"allowsDescriptionText"</span>: <span class="hljs-literal">true</span>,
|
||||||
|
<span class="hljs-attr">"allowsCardNumber"</span>: <span class="hljs-literal">true</span>,
|
||||||
<span class="hljs-attr">"allowsActivities"</span>: <span class="hljs-literal">true</span>,
|
<span class="hljs-attr">"allowsActivities"</span>: <span class="hljs-literal">true</span>,
|
||||||
<span class="hljs-attr">"allowsLabels"</span>: <span class="hljs-literal">true</span>,
|
<span class="hljs-attr">"allowsLabels"</span>: <span class="hljs-literal">true</span>,
|
||||||
<span class="hljs-attr">"allowsCreator"</span>: <span class="hljs-literal">true</span>,
|
<span class="hljs-attr">"allowsCreator"</span>: <span class="hljs-literal">true</span>,
|
||||||
|
|
@ -9138,7 +9139,8 @@ System.out.println(response.toString());
|
||||||
],
|
],
|
||||||
<span class="hljs-attr">"linkId_gantt"</span>: [
|
<span class="hljs-attr">"linkId_gantt"</span>: [
|
||||||
<span class="hljs-string">"string"</span>
|
<span class="hljs-string">"string"</span>
|
||||||
]
|
],
|
||||||
|
<span class="hljs-attr">"cardNumber"</span>: <span class="hljs-number">0</span>
|
||||||
}
|
}
|
||||||
</code></pre>
|
</code></pre>
|
||||||
<h3 id="get_card-responses">Responses</h3>
|
<h3 id="get_card-responses">Responses</h3>
|
||||||
|
|
@ -18346,6 +18348,7 @@ UserSecurity
|
||||||
<span class="hljs-attr">"allowsComments"</span>: <span class="hljs-literal">true</span>,
|
<span class="hljs-attr">"allowsComments"</span>: <span class="hljs-literal">true</span>,
|
||||||
<span class="hljs-attr">"allowsDescriptionTitle"</span>: <span class="hljs-literal">true</span>,
|
<span class="hljs-attr">"allowsDescriptionTitle"</span>: <span class="hljs-literal">true</span>,
|
||||||
<span class="hljs-attr">"allowsDescriptionText"</span>: <span class="hljs-literal">true</span>,
|
<span class="hljs-attr">"allowsDescriptionText"</span>: <span class="hljs-literal">true</span>,
|
||||||
|
<span class="hljs-attr">"allowsCardNumber"</span>: <span class="hljs-literal">true</span>,
|
||||||
<span class="hljs-attr">"allowsActivities"</span>: <span class="hljs-literal">true</span>,
|
<span class="hljs-attr">"allowsActivities"</span>: <span class="hljs-literal">true</span>,
|
||||||
<span class="hljs-attr">"allowsLabels"</span>: <span class="hljs-literal">true</span>,
|
<span class="hljs-attr">"allowsLabels"</span>: <span class="hljs-literal">true</span>,
|
||||||
<span class="hljs-attr">"allowsCreator"</span>: <span class="hljs-literal">true</span>,
|
<span class="hljs-attr">"allowsCreator"</span>: <span class="hljs-literal">true</span>,
|
||||||
|
|
@ -18551,6 +18554,13 @@ UserSecurity
|
||||||
<td>Does the board allows description text?</td>
|
<td>Does the board allows description text?</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td>allowsCardNumber</td>
|
||||||
|
<td>boolean</td>
|
||||||
|
<td>true</td>
|
||||||
|
<td>none</td>
|
||||||
|
<td>Does the board allows card numbers?</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td>allowsActivities</td>
|
<td>allowsActivities</td>
|
||||||
<td>boolean</td>
|
<td>boolean</td>
|
||||||
<td>true</td>
|
<td>true</td>
|
||||||
|
|
@ -19302,7 +19312,8 @@ UserSecurity
|
||||||
],
|
],
|
||||||
<span class="hljs-attr">"linkId_gantt"</span>: [
|
<span class="hljs-attr">"linkId_gantt"</span>: [
|
||||||
<span class="hljs-string">"string"</span>
|
<span class="hljs-string">"string"</span>
|
||||||
]
|
],
|
||||||
|
<span class="hljs-attr">"cardNumber"</span>: <span class="hljs-number">0</span>
|
||||||
}
|
}
|
||||||
|
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
@ -19563,6 +19574,13 @@ UserSecurity
|
||||||
<td>none</td>
|
<td>none</td>
|
||||||
<td>ID of card which is the parent link in gantt view</td>
|
<td>ID of card which is the parent link in gantt view</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>cardNumber</td>
|
||||||
|
<td>number¦null</td>
|
||||||
|
<td>false</td>
|
||||||
|
<td>none</td>
|
||||||
|
<td>A boardwise sequentially increasing number that is assigned<br />to every newly created card</td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<h4 id="enumerated-values-3">Enumerated Values</h4>
|
<h4 id="enumerated-values-3">Enumerated Values</h4>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
swagger: '2.0'
|
swagger: '2.0'
|
||||||
info:
|
info:
|
||||||
title: Wekan REST API
|
title: Wekan REST API
|
||||||
version: v5.41
|
version: v5.47
|
||||||
description: |
|
description: |
|
||||||
The REST API allows you to control and extend Wekan with ease.
|
The REST API allows you to control and extend Wekan with ease.
|
||||||
|
|
||||||
|
|
@ -2770,6 +2770,10 @@ definitions:
|
||||||
description: |
|
description: |
|
||||||
Does the board allows description text?
|
Does the board allows description text?
|
||||||
type: boolean
|
type: boolean
|
||||||
|
allowsCardNumber:
|
||||||
|
description: |
|
||||||
|
Does the board allows card numbers?
|
||||||
|
type: boolean
|
||||||
allowsActivities:
|
allowsActivities:
|
||||||
description: |
|
description: |
|
||||||
Does the board allows comments?
|
Does the board allows comments?
|
||||||
|
|
@ -2888,6 +2892,7 @@ definitions:
|
||||||
- allowsComments
|
- allowsComments
|
||||||
- allowsDescriptionTitle
|
- allowsDescriptionTitle
|
||||||
- allowsDescriptionText
|
- allowsDescriptionText
|
||||||
|
- allowsCardNumber
|
||||||
- allowsActivities
|
- allowsActivities
|
||||||
- allowsLabels
|
- allowsLabels
|
||||||
- allowsCreator
|
- allowsCreator
|
||||||
|
|
@ -3268,6 +3273,12 @@ definitions:
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
|
cardNumber:
|
||||||
|
description: |
|
||||||
|
A boardwise sequentially increasing number that is assigned
|
||||||
|
to every newly created card
|
||||||
|
type: number
|
||||||
|
x-nullable: true
|
||||||
required:
|
required:
|
||||||
- archived
|
- archived
|
||||||
- swimlaneId
|
- swimlaneId
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,8 @@ REM Install chocolatey
|
||||||
|
|
||||||
choco install -y git curl python2 dotnet4.5.2 nano mongodb-3 mongoclient meteor
|
choco install -y git curl python2 dotnet4.5.2 nano mongodb-3 mongoclient meteor
|
||||||
|
|
||||||
curl -O https://nodejs.org/dist/v12.22.3/node-v12.22.3-x64.msi
|
curl -O https://nodejs.org/dist/v12.22.4/node-v12.22.4-x64.msi
|
||||||
call node-v12.22.3-x64.msi
|
call node-v12.22.4-x64.msi
|
||||||
|
|
||||||
call npm config -g set msvs_version 2015
|
call npm config -g set msvs_version 2015
|
||||||
call meteor npm config -g set msvs_version 2015
|
call meteor npm config -g set msvs_version 2015
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ do
|
||||||
#curl -0 -L https://npmjs.org/install.sh | sudo sh
|
#curl -0 -L https://npmjs.org/install.sh | sudo sh
|
||||||
#sudo chown -R $(id -u):$(id -g) $HOME/.npm
|
#sudo chown -R $(id -u):$(id -g) $HOME/.npm
|
||||||
sudo npm -g install n
|
sudo npm -g install n
|
||||||
sudo n 12.22.3
|
sudo n 12.22.4
|
||||||
#curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
|
#curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
|
||||||
#sudo apt-get install -y nodejs
|
#sudo apt-get install -y nodejs
|
||||||
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
||||||
|
|
|
||||||
|
|
@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
|
||||||
appTitle = (defaultText = "Wekan"),
|
appTitle = (defaultText = "Wekan"),
|
||||||
# The name of the app as it is displayed to the user.
|
# The name of the app as it is displayed to the user.
|
||||||
|
|
||||||
appVersion = 541,
|
appVersion = 547,
|
||||||
# Increment this for every release.
|
# Increment this for every release.
|
||||||
|
|
||||||
appMarketingVersion = (defaultText = "5.41.0~2021-07-26"),
|
appMarketingVersion = (defaultText = "5.47.0~2021-08-05"),
|
||||||
# Human-readable presentation of the app version.
|
# Human-readable presentation of the app version.
|
||||||
|
|
||||||
minUpgradableAppVersion = 0,
|
minUpgradableAppVersion = 0,
|
||||||
|
|
|
||||||
|
|
@ -1061,3 +1061,42 @@ Migrations.add('add-hide-logo-by-default', () => {
|
||||||
noValidateMulti,
|
noValidateMulti,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Migrations.add('add-card-number-allowed', () => {
|
||||||
|
Boards.update(
|
||||||
|
{
|
||||||
|
allowsCardNumber: {
|
||||||
|
$exists: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
$set: {
|
||||||
|
allowsCardNumber: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
noValidateMulti,
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
Migrations.add('assign-boardwise-card-numbers', () => {
|
||||||
|
Boards.find().forEach(board => {
|
||||||
|
let nextCardNumber = board.getNextCardNumber();
|
||||||
|
Cards.find(
|
||||||
|
{
|
||||||
|
boardId: board._id,
|
||||||
|
cardNumber: {
|
||||||
|
$exists: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
sort: { createdAt: 1 }
|
||||||
|
}
|
||||||
|
).forEach(card => {
|
||||||
|
Cards.update(
|
||||||
|
card._id,
|
||||||
|
{ $set: { cardNumber: nextCardNumber } },
|
||||||
|
noValidate);
|
||||||
|
nextCardNumber++;
|
||||||
|
});
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
name: wekan
|
name: wekan
|
||||||
version: '5.41'
|
version: '5.47'
|
||||||
summary: The open-source kanban
|
summary: The open-source kanban
|
||||||
description: |
|
description: |
|
||||||
Wekan is an open-source and collaborative kanban board application.
|
Wekan is an open-source and collaborative kanban board application.
|
||||||
|
|
@ -80,7 +80,7 @@ parts:
|
||||||
wekan:
|
wekan:
|
||||||
source: .
|
source: .
|
||||||
plugin: nodejs
|
plugin: nodejs
|
||||||
node-engine: 12.22.3
|
node-engine: 12.22.4
|
||||||
node-packages:
|
node-packages:
|
||||||
- node-gyp
|
- node-gyp
|
||||||
- node-pre-gyp
|
- node-pre-gyp
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
set -euxo pipefail
|
set -euxo pipefail
|
||||||
|
|
||||||
BUILD_DEPS="bsdtar gnupg wget curl bzip2 python git ca-certificates perl-Digest-SHA"
|
BUILD_DEPS="bsdtar gnupg wget curl bzip2 python git ca-certificates perl-Digest-SHA"
|
||||||
NODE_VERSION=v12.22.3
|
NODE_VERSION=v12.22.4
|
||||||
#METEOR_RELEASE=1.6.0.1 - for Stacksmith, meteor-1.8 branch that could have METEOR@1.8.1-beta.8 or newer
|
#METEOR_RELEASE=1.6.0.1 - for Stacksmith, meteor-1.8 branch that could have METEOR@1.8.1-beta.8 or newer
|
||||||
USE_EDGE=false
|
USE_EDGE=false
|
||||||
METEOR_EDGE=1.5-beta.17
|
METEOR_EDGE=1.5-beta.17
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue