Compare commits

...
11 Commits
Author SHA1 Message Date
Lauri Ojansivu f8e5565b49 v5.65 2021-10-12 20:22:11 +03:00
Lauri Ojansivu 4a7718820c Updated translations. 2021-10-12 19:36:49 +03:00
Lauri Ojansivu c2d47cfcdb Updated ChangeLog. 2021-10-12 19:25:18 +03:00
Lauri Ojansivu 64fc2e5d8f Updated to Node.js v12.22.7. Thanks to Node.js developers. 2021-10-12 19:23:14 +03:00
Lauri Ojansivu 7c5763439c Updated ChangeLog. 2021-10-12 19:21:52 +03:00
Lauri Ojansivu d39e8bc03a Merge pull request #4052 from Emile840/master
Fix bug "if OIDC button text was customized, the default text will be added if a user click on 'sing in'"
2021-10-12 19:18:27 +03:00
Emile NDAGIJIMANA 6cd59f8ce1 Fix bug 'if OIDC button text was customized, the default text will be added if a user click on sing in' 2021-10-12 17:41:12 +02:00
Lauri Ojansivu 37a3fbf69c Updated translations. 2021-10-10 18:06:57 +03:00
Lauri Ojansivu 684fd8c2c5 Updated ChangeLog. 2021-10-10 12:15:34 +03:00
Lauri Ojansivu d481328b20 Merge pull request #4047 from Ben0it-T/master
Excel Export : fix add comments worksheet (#4045)
2021-10-10 12:10:15 +03:00
Ben0it-T e694c587e5 Excel Export : fix add comments worksheet (#4045) 2021-10-10 10:54:27 +02:00
25 changed files with 116 additions and 70 deletions

No files matched your search

+1 -1
View File
@@ -6,7 +6,7 @@ ENV DEBIAN_FRONTEND=noninteractive
ENV \
DEBUG=false \
NODE_VERSION=v12.22.6 \
NODE_VERSION=v12.22.7 \
METEOR_RELEASE=1.10.2 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
+1 -1
View File
@@ -81,7 +81,7 @@ parts:
wekan:
source: .
plugin: nodejs
node-engine: 12.22.6
node-engine: 12.22.7
node-packages:
- node-gyp
- node-pre-gyp
+1 -1
View File
@@ -83,7 +83,7 @@ parts:
wekan:
source: .
plugin: nodejs
node-engine: 12.22.6
node-engine: 12.22.7
node-packages:
- node-gyp
- node-pre-gyp
+1 -1
View File
@@ -3,7 +3,7 @@ sudo: required
env:
TRAVIS_DOCKER_COMPOSE_VERSION: 1.24.0
TRAVIS_NODE_VERSION: 12.22.6
TRAVIS_NODE_VERSION: 12.22.7
TRAVIS_NPM_VERSION: latest
before_install:
+16
View File
@@ -1,5 +1,21 @@
[Mac ChangeLog](https://github.com/wekan/wekan/wiki/Mac)
# v5.65 2021-10-12 Wekan release
This release adds to following CRITICAL SECURITY UPDATES:
- [Updated to Node.js v12.22.7](https://github.com/wekan/wekan/commit/64fc2e5d8fe50115175d44c01f7fca4e668c7231).
Thanks to Node.js developers.
and fixes the following bugs:
- [Excel Export: Export only comments for cards that are not linked](https://github.com/wekan/wekan/pull/4047).
Thanks to Ben0it-T.
- [If OIDC button text was customized, the default text will be added if a user click on `Sign In`](https://github.com/wekan/wekan/pull/4052).
Thanks to Emile840.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.64 2021-10-09 WeKan ® release
This release adds the following new features:
+1 -1
View File
@@ -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" \
DEBUG=false \
NODE_VERSION=v12.22.6 \
NODE_VERSION=v12.22.7 \
METEOR_RELEASE=1.10.2 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
+2 -2
View File
@@ -4,7 +4,7 @@ FROM amd64/alpine:3.7 AS builder
ENV QEMU_VERSION=v4.2.0-6 \
QEMU_ARCHITECTURE=aarch64 \
NODE_ARCHITECTURE=linux-arm64 \
NODE_VERSION=v12.22.6 \
NODE_VERSION=v12.22.7 \
WEKAN_VERSION=latest \
WEKAN_ARCHITECTURE=arm64
@@ -40,7 +40,7 @@ LABEL maintainer="wekan"
# Set the environment variables (defaults where required)
ENV QEMU_ARCHITECTURE=aarch64 \
NODE_ARCHITECTURE=linux-arm64 \
NODE_VERSION=v12.22.6 \
NODE_VERSION=v12.22.7 \
NODE_ENV=production \
NPM_VERSION=latest \
WITH_API=true \
+1 -1
View File
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v5.64.0"
appVersion: "v5.65.0"
files:
userUploads:
- README.md
+6 -6
View File
@@ -86,7 +86,7 @@ BlazeComponent.extendComponent({
});
},
userHasTeams(){
if(Meteor.user().teams && Meteor.user().teams.length > 0)
if(Meteor.user() != null && Meteor.user().teams && Meteor.user().teams.length > 0)
return true;
else
return false;
@@ -98,7 +98,7 @@ BlazeComponent.extendComponent({
return [];
},
userHasOrgs(){
if(Meteor.user().orgs && Meteor.user().orgs.length > 0)
if(Meteor.user() != null && Meteor.user().orgs && Meteor.user().orgs.length > 0)
return true;
else
return false;
@@ -111,13 +111,13 @@ BlazeComponent.extendComponent({
},
userHasOrgsOrTeams(){
let boolUserHasOrgs;
if(Meteor.user().orgs && Meteor.user().orgs.length > 0)
if(Meteor.user() != null && Meteor.user().orgs && Meteor.user().orgs.length > 0)
boolUserHasOrgs = true;
else
boolUserHasOrgs = false;
let boolUserHasTeams;
if(Meteor.user().teams && Meteor.user().teams.length > 0)
if(Meteor.user() != null && Meteor.user().teams && Meteor.user().teams.length > 0)
boolUserHasTeams = true;
else
boolUserHasTeams = false;
@@ -153,7 +153,7 @@ BlazeComponent.extendComponent({
// },
// });
let orgIdsUserBelongs = currUser.teams !== 'undefined' ? currUser.orgIdsUserBelongs() : '';
let orgIdsUserBelongs = currUser !== undefined && currUser.teams !== 'undefined' ? currUser.orgIdsUserBelongs() : '';
if(orgIdsUserBelongs && orgIdsUserBelongs != ''){
let orgsIds = orgIdsUserBelongs.split(',');
// for(let i = 0; i < orgsIds.length; i++){
@@ -164,7 +164,7 @@ BlazeComponent.extendComponent({
query.$and[2].$or.push({'orgs.orgId': {$in : orgsIds}});
}
let teamIdsUserBelongs = currUser.teams !== 'undefined' ? currUser.teamIdsUserBelongs() : '';
let teamIdsUserBelongs = currUser !== undefined && currUser.teams !== 'undefined' ? currUser.teamIdsUserBelongs() : '';
if(teamIdsUserBelongs && teamIdsUserBelongs != ''){
let teamsIds = teamIdsUserBelongs.split(',');
// for(let i = 0; i < teamsIds.length; i++){
+46
View File
@@ -6,6 +6,9 @@ const i18nTagToT9n = i18nTag => {
return i18nTag;
};
let alreadyCheck = 1;
let isCheckDone = false;
const validator = {
set(obj, prop, value) {
if (prop === 'state' && value !== 'signIn') {
@@ -166,6 +169,49 @@ Template.userFormsLayout.events({
});
}
},
'DOMSubtreeModified #at-oidc'(event){
if(alreadyCheck <= 2){
let currSetting = Settings.findOne();
let oidcBtnElt = $("#at-oidc");
if(currSetting && currSetting !== undefined && currSetting.oidcBtnText !== undefined && oidcBtnElt != null && oidcBtnElt != undefined){
let htmlvalue = "<i class='fa fa-oidc'></i>" + currSetting.oidcBtnText;
if(alreadyCheck == 1){
alreadyCheck++;
oidcBtnElt.html("");
}
else{
alreadyCheck++;
oidcBtnElt.html(htmlvalue);
}
}
}
else{
alreadyCheck = 1;
}
},
'DOMSubtreeModified .at-form'(event){
if(alreadyCheck <= 2 && !isCheckDone){
if(document.getElementById("at-oidc") != null){
let currSetting = Settings.findOne();
let oidcBtnElt = $("#at-oidc");
if(currSetting && currSetting !== undefined && currSetting.oidcBtnText !== undefined && oidcBtnElt != null && oidcBtnElt != undefined){
let htmlvalue = "<i class='fa fa-oidc'></i>" + currSetting.oidcBtnText;
if(alreadyCheck == 1){
alreadyCheck++;
oidcBtnElt.html("");
}
else{
alreadyCheck++;
isCheckDone = true;
oidcBtnElt.html(htmlvalue);
}
}
}
}
else{
alreadyCheck = 1;
}
},
});
Template.defaultLayout.events({
+1 -1
View File
@@ -1,5 +1,5 @@
apiVersion: v2
appVersion: "5.64"
appVersion: "5.65"
dependencies:
- condition: mongodb.enabled
name: mongodb
+1 -1
View File
@@ -14,7 +14,7 @@ serviceAccounts:
##
image:
repository: quay.io/wekan/wekan
tag: v5.64
tag: v5.65
pullPolicy: IfNotPresent
## Configuration for wekan component
+5 -5
View File
@@ -159,8 +159,8 @@
"card-delete-notice": "Löschen kann nicht rückgängig gemacht werden. Alle Aktionen, die dieser Karte zugeordnet sind, werden ebenfalls gelöscht.",
"card-delete-pop": "Alle Aktionen werden aus dem Aktivitätsfeed entfernt und die Karte kann nicht wiedereröffnet werden. Die Aktion kann nicht rückgängig gemacht werden.",
"card-delete-suggest-archive": "Sie können eine Karte ins Archiv verschieben, um sie vom Board zu entfernen und die Aktivitäten zu behalten.",
"card-archive-pop": "Card will not be visible at this list after archiving card.",
"card-archive-suggest-cancel": "You can later restore card from Archive.",
"card-archive-pop": "Die Karte wird nach der Archivierung in dieser Liste nicht mehr sichtbar sein.",
"card-archive-suggest-cancel": "Die Karte kann später aus dem Archiv wiederhergestellt werden.",
"card-due": "fällig",
"card-due-on": "fällig am",
"card-spent": "Aufgewendete Zeit",
@@ -209,7 +209,7 @@
"deletePokerPopup-title": "Planning Poker löschen ?",
"poker-delete-pop": "Die Löschung ist permanent. Sie werden alles im Zusammenhang mit diesem Planning Poker verlieren.",
"cardDeletePopup-title": "Karte löschen?",
"cardArchivePopup-title": "Archive Card?",
"cardArchivePopup-title": "Karte archivieren?",
"cardDetailsActionsPopup-title": "Kartenaktionen",
"cardLabelsPopup-title": "Labels",
"cardMembersPopup-title": "Mitglieder",
@@ -372,8 +372,8 @@
"exportBoardPopup-title": "Board exportieren",
"exportCardPopup-title": "Karte exportieren",
"sort": "Sortieren",
"sorted": "Sorted",
"remove-sort": "Remove sort",
"sorted": "Sortiert",
"remove-sort": "Sortierung entfernen",
"sort-desc": "Zum Sortieren der Liste klicken",
"list-sort-by": "Sortieren der Liste nach:",
"list-label-modifiedAt": "Letzte Zugriffszeit",
+3 -3
View File
@@ -159,8 +159,8 @@
"card-delete-notice": "Löschen kann nicht rückgängig gemacht werden. Alle Aktionen, die dieser Karte zugeordnet sind, werden ebenfalls gelöscht.",
"card-delete-pop": "Alle Aktionen werden aus dem Aktivitätsfeed entfernt und die Karte kann nicht wiedereröffnet werden. Die Aktion kann nicht rückgängig gemacht werden.",
"card-delete-suggest-archive": "Sie können eine Karte ins Archiv verschieben, um sie vom Board zu entfernen und die Aktivitäten zu behalten.",
"card-archive-pop": "Card will not be visible at this list after archiving card.",
"card-archive-suggest-cancel": "You can later restore card from Archive.",
"card-archive-pop": "Die Karte wird nach ihrer Archivierung nicht in dieser Liste sichtbar sein.",
"card-archive-suggest-cancel": "Sie können die Karte später aus dem Archiv wiederherstellen.",
"card-due": "Fällig",
"card-due-on": "Fällig am",
"card-spent": "Aufgewendete Zeit",
@@ -209,7 +209,7 @@
"deletePokerPopup-title": "Planungspoker löschen?",
"poker-delete-pop": "Die Löschung ist permanent. Sie werden alles im Zusammenhang mit diesem Planungspoker verlieren.",
"cardDeletePopup-title": "Karte löschen?",
"cardArchivePopup-title": "Archive Card?",
"cardArchivePopup-title": "Karte archivieren?",
"cardDetailsActionsPopup-title": "Kartenaktionen",
"cardLabelsPopup-title": "Labels",
"cardMembersPopup-title": "Mitglieder",
+9 -9
View File
@@ -159,8 +159,8 @@
"card-delete-notice": "彻底删除的操作不可恢复,你将会丢失该卡片相关的所有操作记录。",
"card-delete-pop": "所有的活动将从活动摘要中被移除且您将无法重新打开该卡片。此操作无法撤销。",
"card-delete-suggest-archive": "您可以移动卡片到活动以便从看板中删除并保持活动。",
"card-archive-pop": "Card will not be visible at this list after archiving card.",
"card-archive-suggest-cancel": "You can later restore card from Archive.",
"card-archive-pop": "归档卡片后,卡片在此列表中将不可见。",
"card-archive-suggest-cancel": "稍后你可以从归档中恢复卡片。",
"card-due": "到期",
"card-due-on": "期限",
"card-spent": "耗时",
@@ -209,7 +209,7 @@
"deletePokerPopup-title": "删除计划扑克?",
"poker-delete-pop": "永久删除。对该计划扑克的所有操作记录将会丢失。",
"cardDeletePopup-title": "彻底删除卡片?",
"cardArchivePopup-title": "Archive Card?",
"cardArchivePopup-title": "归档卡片?",
"cardDetailsActionsPopup-title": "卡片操作",
"cardLabelsPopup-title": "标签",
"cardMembersPopup-title": "成员",
@@ -372,8 +372,8 @@
"exportBoardPopup-title": "导出看板",
"exportCardPopup-title": "导出卡片",
"sort": "排序",
"sorted": "Sorted",
"remove-sort": "Remove sort",
"sorted": "已排序",
"remove-sort": "删除排序",
"sort-desc": "点此来将列表排序",
"list-sort-by": "按此来将列表排序:",
"list-label-modifiedAt": "上次访问时间",
@@ -657,14 +657,14 @@
"automatically-field-on-card": "添加字段至新卡片",
"always-field-on-card": "添加字段至所有卡片",
"showLabel-field-on-card": "在迷你卡片上显示字段标签",
"showSum-field-on-list": "Show sum of fields at top of list",
"showSum-field-on-list": "在列表顶部显示字段总和",
"yes": "是",
"no": "否",
"accounts": "账号",
"accounts-allowEmailChange": "允许邮箱变更",
"accounts-allowUserNameChange": "允许变更用户名",
"tableVisibilityMode-allowPrivateOnly": "Boards visibility: Allow private boards only",
"tableVisibilityMode": "Boards visibility",
"tableVisibilityMode-allowPrivateOnly": "看板可见性:仅显示私人看板",
"tableVisibilityMode": "看板可见性",
"createdAt": "创建于",
"modifiedAt": "修改时间",
"verified": "已验证",
@@ -834,7 +834,7 @@
"error-undefined": "出了点问题",
"error-ldap-login": "尝试登录时出错",
"display-authentication-method": "显示认证方式",
"oidc-button-text": "Customize the OIDC button text",
"oidc-button-text": "自定义 OIDC 按钮文本",
"default-authentication-method": "默认认证方式",
"duplicate-board": "复制看板",
"org-number": "组织数量为:",
+7 -23
View File
@@ -760,21 +760,17 @@ class ExporterExcel {
TAPi18n.__('createdAt','',this.userLanguage),
TAPi18n.__('last-modified-at','',this.userLanguage),
];
ws2.getRow(3).height = 20;
ws2.getRow(3).font = {
name: TAPi18n.__('excel-font'),
size: 10,
bold: true,
};
ws2.getRow(3).alignment = {
vertical: 'middle',
horizontal: 'center',
wrapText: true,
};
allBorderWs2('A3');
allBorderWs2('B3');
allBorderWs2('C3');
@@ -782,38 +778,33 @@ class ExporterExcel {
allBorderWs2('E3');
allBorderWs2('F3');
//add comment info
let commentcnt = 0;
for (const i in result.comments) {
const jcomment = result.comments[i];
//card title
const parentCard = result.cards.find(
(card) => card._id === jcomment.cardId,
);
jcomment.cardTitle = parentCard ? parentCard.title : '';
if (jcomment.cardTitle == '') {
continue;
}
//add comment detail
const t = Number(i) + 1;
commentcnt++;
ws2.addRow().values = [
t.toString(),
commentcnt.toString(),
jcomment.text,
jcomment.cardTitle,
jmeml[jcomment.userId],
addTZhours(jcomment.createdAt),
addTZhours(jcomment.modifiedAt),
];
const y = Number(i) + 4;
const y = commentcnt + 3;
ws2.getRow(y).font = {
name: TAPi18n.__('excel-font'),
size: 10,
};
ws2.getCell(`A${y}`).alignment = {
vertical: 'middle',
horizontal: 'center',
@@ -839,20 +830,13 @@ class ExporterExcel {
vertical: 'middle',
wrapText: true,
};
allBorderWs2(`A${y}`);
allBorderWs2(`B${y}`);
allBorderWs2(`C${y}`);
allBorderWs2(`D${y}`);
allBorderWs2(`E${y}`);
allBorderWs2(`F${y}`);
}
workbook.xlsx.write(res).then(function () {});
}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v5.64.0",
"version": "v5.65.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v5.64.0",
"version": "v5.65.0",
"description": "Open-Source kanban",
"private": true,
"repository": {
+3 -3
View File
@@ -7,7 +7,7 @@
<meta charset="utf-8">
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>Wekan REST API v5.64</title>
<title>Wekan REST API v5.65</title>
<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">
<li>
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v5.64">Wekan REST API v5.64</a>
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v5.65">Wekan REST API v5.65</a>
</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="dark-box"></div>
<div class="content">
<h1 id="wekan-rest-api">Wekan REST API v5.64</h1>
<h1 id="wekan-rest-api">Wekan REST API v5.65</h1>
<blockquote>
<p>Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.</p>
</blockquote>
+1 -1
View File
@@ -1,7 +1,7 @@
swagger: '2.0'
info:
title: Wekan REST API
version: v5.64
version: v5.65
description: |
The REST API allows you to control and extend Wekan with ease.
+2 -2
View File
@@ -18,8 +18,8 @@ REM Install chocolatey
choco install -y git curl python2 dotnet4.5.2 nano mongodb-4 mongoclient
curl -O https://nodejs.org/dist/v12.22.6/node-v12.22.6-x64.msi
call node-v12.22.6-x64.msi
curl -O https://nodejs.org/dist/v12.22.7/node-v12.22.7-x64.msi
call node-v12.22.7-x64.msi
call npm config -g set msvs_version 2015
call meteor npm config -g set msvs_version 2015
+1 -1
View File
@@ -30,7 +30,7 @@ do
#curl -0 -L https://npmjs.org/install.sh | sudo sh
#sudo chown -R $(id -u):$(id -g) $HOME/.npm
#sudo npm -g install n
#sudo n 12.22.6
#sudo n 12.22.7
elif [[ "$OSTYPE" == "darwin"* ]]; then
echo "macOS";
pause '1) Install XCode 2) Install Node 12.x from https://nodejs.org/en/ 3) Press [Enter] key to continue.'
+2 -2
View File
@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
appTitle = (defaultText = "Wekan"),
# The name of the app as it is displayed to the user.
appVersion = 564,
appVersion = 565,
# Increment this for every release.
appMarketingVersion = (defaultText = "5.64.0~2021-10-09"),
appMarketingVersion = (defaultText = "5.65.0~2021-10-12"),
# Human-readable presentation of the app version.
minUpgradableAppVersion = 0,
+2 -2
View File
@@ -1,5 +1,5 @@
name: wekan
version: '5.64'
version: '5.65'
summary: Open Source kanban
description: |
WeKan ® is an Open Source and collaborative kanban board application.
@@ -80,7 +80,7 @@ parts:
wekan:
source: .
plugin: nodejs
node-engine: 12.22.6
node-engine: 12.22.7
node-packages:
- node-gyp
- node-pre-gyp
+1 -1
View File
@@ -2,7 +2,7 @@
set -euxo pipefail
BUILD_DEPS="bsdtar gnupg wget curl bzip2 python git ca-certificates perl-Digest-SHA"
NODE_VERSION=v12.22.6
NODE_VERSION=v12.22.7
#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
METEOR_EDGE=1.5-beta.17