mirror of
https://github.com/wekan/wekan.git
synced 2025-12-16 15:30:13 +01:00
Merge branch 'master' of https://github.com/wekan/wekan into search
This commit is contained in:
commit
409b8559d7
11 changed files with 1977 additions and 1823 deletions
23
CHANGELOG.md
23
CHANGELOG.md
|
|
@ -1,3 +1,26 @@
|
|||
# Upcoming Wekan release
|
||||
|
||||
This release adds the following improvements:
|
||||
|
||||
- [Use table-cell instead of inline-block in my-cards-list-wrapper CSS](https://github.com/wekan/wekan/commit/3866ed31965eb5b722e88c4d3e7628d516375088).
|
||||
Thanks to johappel and xet7 !
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# 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,5 +1,5 @@
|
|||
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
|
||||
appVersion: "v4.78.0"
|
||||
appVersion: "v4.79.0"
|
||||
files:
|
||||
userUploads:
|
||||
- README.md
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@
|
|||
border-radius: 5px
|
||||
padding: 1.5rem
|
||||
padding-top: 0.75rem
|
||||
display: inline-block
|
||||
display: table-cell
|
||||
min-width: 250px
|
||||
max-width: 350px
|
||||
|
||||
|
|
|
|||
1774
i18n/de.i18n.json
1774
i18n/de.i18n.json
File diff suppressed because it is too large
Load diff
1774
i18n/he.i18n.json
1774
i18n/he.i18n.json
File diff suppressed because it is too large
Load diff
211
models/cards.js
211
models/cards.js
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
2
package-lock.json
generated
2
package-lock.json
generated
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "wekan",
|
||||
"version": "v4.78.0",
|
||||
"version": "v4.79.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue