Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b039bad649 | ||
|
|
58a6354010 | ||
|
|
429d9474a9 | ||
|
|
be03d2ae9a | ||
|
|
5db40beb79 | ||
|
|
10f74f5152 | ||
|
|
0580237270 |
No files matched your search
@@ -1,3 +1,17 @@
|
||||
# v4.79 2021-01-17 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [At Search All Cards, now it's possible to click found card to open it](https://github.com/wekan/wekan/commit/10f74f5152117358e9c6b9bb0e81b8c284841aff).
|
||||
Thanks to xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fixed: Linked card makes board not load](https://github.com/wekan/wekan/commit/be03d2ae9aa708119992548145cbaf82e1f87419).
|
||||
Thanks to akitzing, galletl, pdonias, olivierlambert and xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v4.78 2021-01-16 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
|
||||
appVersion: "v4.78.0"
|
||||
appVersion: "v4.79.0"
|
||||
files:
|
||||
userUploads:
|
||||
- README.md
|
||||
|
||||
@@ -34,7 +34,8 @@ template(name="globalSearch")
|
||||
span.global-search-error-messages
|
||||
| {{_ msg.tag msg.value }}
|
||||
each card in results
|
||||
+resultCard(card)
|
||||
a.minicard-wrapper(href=card.absoluteUrl)
|
||||
+resultCard(card)
|
||||
else
|
||||
.global-search-instructions
|
||||
h1 Search Operators
|
||||
|
||||
+887
-887
File diff suppressed because it is too large.
Load diff
+887
-887
File diff suppressed because it is too large.
Load diff
+171
-40
@@ -858,12 +858,20 @@ Cards.helpers({
|
||||
getMembers() {
|
||||
if (this.isLinkedCard()) {
|
||||
const card = Cards.findOne({ _id: this.linkedId });
|
||||
return card.members;
|
||||
if (card === undefined) {
|
||||
return null;
|
||||
} else {
|
||||
return card.members;
|
||||
}
|
||||
} else if (this.isLinkedBoard()) {
|
||||
const board = Boards.findOne({ _id: this.linkedId });
|
||||
return board.activeMembers().map(member => {
|
||||
return member.userId;
|
||||
});
|
||||
if (board === undefined) {
|
||||
return null;
|
||||
} else {
|
||||
return board.activeMembers().map(member => {
|
||||
return member.userId;
|
||||
});
|
||||
}
|
||||
} else {
|
||||
return this.members;
|
||||
}
|
||||
@@ -872,12 +880,20 @@ Cards.helpers({
|
||||
getAssignees() {
|
||||
if (this.isLinkedCard()) {
|
||||
const card = Cards.findOne({ _id: this.linkedId });
|
||||
return card.assignees;
|
||||
if (card === undefined) {
|
||||
return null;
|
||||
} else {
|
||||
return card.assignees;
|
||||
}
|
||||
} else if (this.isLinkedBoard()) {
|
||||
const board = Boards.findOne({ _id: this.linkedId });
|
||||
return board.activeMembers().map(assignee => {
|
||||
return assignee.userId;
|
||||
});
|
||||
if (board === undefined) {
|
||||
return null;
|
||||
} else {
|
||||
return board.activeMembers().map(assignee => {
|
||||
return assignee.userId;
|
||||
});
|
||||
}
|
||||
} else {
|
||||
return this.assignees;
|
||||
}
|
||||
@@ -967,7 +983,11 @@ Cards.helpers({
|
||||
getReceived() {
|
||||
if (this.isLinkedCard()) {
|
||||
const card = Cards.findOne({ _id: this.linkedId });
|
||||
return card.receivedAt;
|
||||
if (card === undefined) {
|
||||
return null;
|
||||
} else {
|
||||
return card.receivedAt;
|
||||
}
|
||||
} else {
|
||||
return this.receivedAt;
|
||||
}
|
||||
@@ -984,10 +1004,18 @@ Cards.helpers({
|
||||
getStart() {
|
||||
if (this.isLinkedCard()) {
|
||||
const card = Cards.findOne({ _id: this.linkedId });
|
||||
return card.startAt;
|
||||
if (card === undefined) {
|
||||
return null;
|
||||
} else {
|
||||
return card.startAt;
|
||||
}
|
||||
} else if (this.isLinkedBoard()) {
|
||||
const board = Boards.findOne({ _id: this.linkedId });
|
||||
return board.startAt;
|
||||
if (board === undefined) {
|
||||
return null;
|
||||
} else {
|
||||
return board.startAt;
|
||||
}
|
||||
} else {
|
||||
return this.startAt;
|
||||
}
|
||||
@@ -1006,10 +1034,18 @@ Cards.helpers({
|
||||
getDue() {
|
||||
if (this.isLinkedCard()) {
|
||||
const card = Cards.findOne({ _id: this.linkedId });
|
||||
return card.dueAt;
|
||||
if (card === undefined) {
|
||||
return null;
|
||||
} else {
|
||||
return card.dueAt;
|
||||
}
|
||||
} else if (this.isLinkedBoard()) {
|
||||
const board = Boards.findOne({ _id: this.linkedId });
|
||||
return board.dueAt;
|
||||
if (board === undefined) {
|
||||
return null;
|
||||
} else {
|
||||
return board.dueAt;
|
||||
}
|
||||
} else {
|
||||
return this.dueAt;
|
||||
}
|
||||
@@ -1028,10 +1064,18 @@ Cards.helpers({
|
||||
getEnd() {
|
||||
if (this.isLinkedCard()) {
|
||||
const card = Cards.findOne({ _id: this.linkedId });
|
||||
return card.endAt;
|
||||
if (card === undefined) {
|
||||
return null;
|
||||
} else {
|
||||
return card.endAt;
|
||||
}
|
||||
} else if (this.isLinkedBoard()) {
|
||||
const board = Boards.findOne({ _id: this.linkedId });
|
||||
return board.endAt;
|
||||
if (board === undefined) {
|
||||
return null;
|
||||
} else {
|
||||
return board.endAt;
|
||||
}
|
||||
} else {
|
||||
return this.endAt;
|
||||
}
|
||||
@@ -1050,10 +1094,18 @@ Cards.helpers({
|
||||
getIsOvertime() {
|
||||
if (this.isLinkedCard()) {
|
||||
const card = Cards.findOne({ _id: this.linkedId });
|
||||
return card.isOvertime;
|
||||
if (card === undefined) {
|
||||
return null;
|
||||
} else {
|
||||
return card.isOvertime;
|
||||
}
|
||||
} else if (this.isLinkedBoard()) {
|
||||
const board = Boards.findOne({ _id: this.linkedId });
|
||||
return board.isOvertime;
|
||||
if (board === undefined) {
|
||||
return null;
|
||||
} else {
|
||||
return board.isOvertime;
|
||||
}
|
||||
} else {
|
||||
return this.isOvertime;
|
||||
}
|
||||
@@ -1072,10 +1124,18 @@ Cards.helpers({
|
||||
getSpentTime() {
|
||||
if (this.isLinkedCard()) {
|
||||
const card = Cards.findOne({ _id: this.linkedId });
|
||||
return card.spentTime;
|
||||
if (card === undefined) {
|
||||
return null;
|
||||
} else {
|
||||
return card.spentTime;
|
||||
}
|
||||
} else if (this.isLinkedBoard()) {
|
||||
const board = Boards.findOne({ _id: this.linkedId });
|
||||
return board.spentTime;
|
||||
if (board === undefined) {
|
||||
return null;
|
||||
} else {
|
||||
return board.spentTime;
|
||||
}
|
||||
} else {
|
||||
return this.spentTime;
|
||||
}
|
||||
@@ -1094,12 +1154,22 @@ Cards.helpers({
|
||||
getVoteQuestion() {
|
||||
if (this.isLinkedCard()) {
|
||||
const card = Cards.findOne({ _id: this.linkedId });
|
||||
if (card && card.vote) return card.vote.question;
|
||||
else return null;
|
||||
if (card === undefined) {
|
||||
return null;
|
||||
} else if (card && card.vote) {
|
||||
return card.vote.question;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
} else if (this.isLinkedBoard()) {
|
||||
const board = Boards.findOne({ _id: this.linkedId });
|
||||
if (board && board.vote) return board.vote.question;
|
||||
else return null;
|
||||
if (board === undefined) {
|
||||
return null;
|
||||
} else if (board && board.vote) {
|
||||
return board.vote.question;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
} else if (this.vote) {
|
||||
return this.vote.question;
|
||||
} else {
|
||||
@@ -1110,12 +1180,22 @@ Cards.helpers({
|
||||
getVotePublic() {
|
||||
if (this.isLinkedCard()) {
|
||||
const card = Cards.findOne({ _id: this.linkedId });
|
||||
if (card && card.vote) return card.vote.public;
|
||||
else return null;
|
||||
if (card === undefined) {
|
||||
return null;
|
||||
} else if (card && card.vote) {
|
||||
return card.vote.public;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
} else if (this.isLinkedBoard()) {
|
||||
const board = Boards.findOne({ _id: this.linkedId });
|
||||
if (board && board.vote) return board.vote.public;
|
||||
else return null;
|
||||
if (board === undefined) {
|
||||
return null;
|
||||
} else if (board && board.vote) {
|
||||
return board.vote.public;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
} else if (this.vote) {
|
||||
return this.vote.public;
|
||||
} else {
|
||||
@@ -1126,12 +1206,22 @@ Cards.helpers({
|
||||
getVoteEnd() {
|
||||
if (this.isLinkedCard()) {
|
||||
const card = Cards.findOne({ _id: this.linkedId });
|
||||
if (card && card.vote) return card.vote.end;
|
||||
else return null;
|
||||
if (card === undefined) {
|
||||
return null;
|
||||
} else if (card && card.vote) {
|
||||
return card.vote.end;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
} else if (this.isLinkedBoard()) {
|
||||
const board = Boards.findOne({ _id: this.linkedId });
|
||||
if (board && board.vote) return board.vote.end;
|
||||
else return null;
|
||||
if (board === undefined) {
|
||||
return null;
|
||||
} else if (board && board.vote) {
|
||||
return board.vote.end;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
} else if (this.vote) {
|
||||
return this.vote.end;
|
||||
} else {
|
||||
@@ -1184,10 +1274,20 @@ Cards.helpers({
|
||||
getTitle() {
|
||||
if (this.isLinkedCard()) {
|
||||
const card = Cards.findOne({ _id: this.linkedId });
|
||||
return card.title;
|
||||
if (card === undefined) {
|
||||
return null;
|
||||
} else {
|
||||
return card.title;
|
||||
}
|
||||
} else if (this.isLinkedBoard()) {
|
||||
const board = Boards.findOne({ _id: this.linkedId });
|
||||
return board.title;
|
||||
if (board === undefined) {
|
||||
return null;
|
||||
} else {
|
||||
return board.title;
|
||||
}
|
||||
} else if (this.title === undefined) {
|
||||
return null;
|
||||
} else {
|
||||
return this.title;
|
||||
}
|
||||
@@ -1196,14 +1296,29 @@ Cards.helpers({
|
||||
getBoardTitle() {
|
||||
if (this.isLinkedCard()) {
|
||||
const card = Cards.findOne({ _id: this.linkedId });
|
||||
if (card === undefined) {
|
||||
return null;
|
||||
}
|
||||
const board = Boards.findOne({ _id: card.boardId });
|
||||
return board.title;
|
||||
if (board === undefined) {
|
||||
return null;
|
||||
} else {
|
||||
return board.title;
|
||||
}
|
||||
} else if (this.isLinkedBoard()) {
|
||||
const board = Boards.findOne({ _id: this.linkedId });
|
||||
return board.title;
|
||||
if (board === undefined) {
|
||||
return null;
|
||||
} else {
|
||||
return board.title;
|
||||
}
|
||||
} else {
|
||||
const board = Boards.findOne({ _id: this.boardId });
|
||||
return board.title;
|
||||
if (board === undefined) {
|
||||
return null;
|
||||
} else {
|
||||
return board.title;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1220,10 +1335,18 @@ Cards.helpers({
|
||||
getArchived() {
|
||||
if (this.isLinkedCard()) {
|
||||
const card = Cards.findOne({ _id: this.linkedId });
|
||||
return card.archived;
|
||||
if (card === undefined) {
|
||||
return null;
|
||||
} else {
|
||||
return card.archived;
|
||||
}
|
||||
} else if (this.isLinkedBoard()) {
|
||||
const board = Boards.findOne({ _id: this.linkedId });
|
||||
return board.archived;
|
||||
if (board === undefined) {
|
||||
return null;
|
||||
} else {
|
||||
return board.archived;
|
||||
}
|
||||
} else {
|
||||
return this.archived;
|
||||
}
|
||||
@@ -1240,7 +1363,11 @@ Cards.helpers({
|
||||
getRequestedBy() {
|
||||
if (this.isLinkedCard()) {
|
||||
const card = Cards.findOne({ _id: this.linkedId });
|
||||
return card.requestedBy;
|
||||
if (card === undefined) {
|
||||
return null;
|
||||
} else {
|
||||
return card.requestedBy;
|
||||
}
|
||||
} else {
|
||||
return this.requestedBy;
|
||||
}
|
||||
@@ -1257,7 +1384,11 @@ Cards.helpers({
|
||||
getAssignedBy() {
|
||||
if (this.isLinkedCard()) {
|
||||
const card = Cards.findOne({ _id: this.linkedId });
|
||||
return card.assignedBy;
|
||||
if (card === undefined) {
|
||||
return null;
|
||||
} else {
|
||||
return card.assignedBy;
|
||||
}
|
||||
} else {
|
||||
return this.assignedBy;
|
||||
}
|
||||
|
||||
Generated
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wekan",
|
||||
"version": "v4.78.0",
|
||||
"version": "v4.79.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wekan",
|
||||
"version": "v4.78.0",
|
||||
"version": "v4.79.0",
|
||||
"description": "Open-Source kanban",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
|
||||
@@ -1524,7 +1524,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 v4.78">Wekan REST API v4.78</a>
|
||||
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v4.79">Wekan REST API v4.79</a>
|
||||
|
||||
</li>
|
||||
|
||||
@@ -2037,7 +2037,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 v4.78</h1>
|
||||
<h1 id="wekan-rest-api">Wekan REST API v4.79</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: v4.78
|
||||
version: v4.79
|
||||
description: |
|
||||
The REST API allows you to control and extend Wekan with ease.
|
||||
|
||||
|
||||
@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
|
||||
appTitle = (defaultText = "Wekan"),
|
||||
# The name of the app as it is displayed to the user.
|
||||
|
||||
appVersion = 478,
|
||||
appVersion = 479,
|
||||
# Increment this for every release.
|
||||
|
||||
appMarketingVersion = (defaultText = "4.78.0~2021-01-16"),
|
||||
appMarketingVersion = (defaultText = "4.79.0~2021-01-17"),
|
||||
# Human-readable presentation of the app version.
|
||||
|
||||
minUpgradableAppVersion = 0,
|
||||
|
||||
Reference in new issue
Block a user