mirror of
https://github.com/wekan/wekan.git
synced 2025-04-22 04:57:07 -04:00
Merge branch 'devel'
This commit is contained in:
commit
c5a707a7f5
8 changed files with 52 additions and 23 deletions
12
CHANGELOG.md
12
CHANGELOG.md
|
@ -1,8 +1,18 @@
|
|||
# v0.72 2018-02-07 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Fix card sorting](https://github.com/wekan/wekan/pull/1465);
|
||||
- [Fix import Trello board without swimlanes](https://github.com/wekan/wekan/commit/5871a478e1280818f12fcb7250b7cbccf6907cf0);
|
||||
- [Fix swimlane move parameters](https://github.com/wekan/wekan/commit/fcebb2a5373d6dea41b98b530c176cbee31bee4b).
|
||||
|
||||
Thanks to GitHub users andresmanelli and ViViDboarder for their contributions.
|
||||
|
||||
# v0.71 2018-02-03 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Fix Welcome board is not editable: Added default swimlane to Welcome board](https://github.com/wekan/wekan/commit/9df3e3d26bffb2268cdcc7fa768eda60e4f0975c).
|
||||
- [Fix Welcome board is not editable: Added default swimlane to Welcome board](https://github.com/wekan/wekan/commit/9df3e3d26bffb2268cdcc7fa768eda60e4f0975c);
|
||||
- [Fix Import Wekan board with swimlanes](https://github.com/wekan/wekan/commit/ec0a8449ba98aea708e484d386e5a209e2be8fff).
|
||||
|
||||
Thanks to GitHub user andresmanelli for contributions.
|
||||
|
|
|
@ -172,13 +172,13 @@ Template.cardDetailsActionsPopup.events({
|
|||
'click .js-copy-card': Popup.open('copyCard'),
|
||||
'click .js-move-card-to-top' (evt) {
|
||||
evt.preventDefault();
|
||||
const minOrder = _.min(this.list().cards().map((c) => c.sort));
|
||||
this.move(this.listId, minOrder - 1);
|
||||
const minOrder = _.min(this.list().cards(this.swimlaneId).map((c) => c.sort));
|
||||
this.move(this.swimlaneId, this.listId, minOrder - 1);
|
||||
},
|
||||
'click .js-move-card-to-bottom' (evt) {
|
||||
evt.preventDefault();
|
||||
const maxOrder = _.max(this.list().cards().map((c) => c.sort));
|
||||
this.move(this.listId, maxOrder + 1);
|
||||
const maxOrder = _.max(this.list().cards(this.swimlaneId).map((c) => c.sort));
|
||||
this.move(this.swimlaneId, this.listId, maxOrder + 1);
|
||||
},
|
||||
'click .js-archive' (evt) {
|
||||
evt.preventDefault();
|
||||
|
@ -215,7 +215,7 @@ Template.moveCardPopup.events({
|
|||
// instead from a “component” state.
|
||||
const card = Cards.findOne(Session.get('currentCard'));
|
||||
const newListId = this._id;
|
||||
card.move(newListId);
|
||||
card.move(card.swimlaneId, newListId, 0);
|
||||
Popup.close();
|
||||
},
|
||||
});
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"card-comments-title": "Diese Karte hat %s Kommentar(e).",
|
||||
"card-delete-notice": "Löschen ist unwiderruflich. Alle Aktionen die dieser Karte zugeordnet sind werden ebenfalls gelöscht.",
|
||||
"card-delete-pop": "Alle Aktionen werden vom Aktivitätsfeed entfernt und die Karte kann nicht mehr geöffnet werden. Das Löschen kann nicht widerrufen werden!",
|
||||
"card-delete-suggest-archive": "Sie können eine Karte archivieren, um sie von dem Board zu entfernen und die Aktivitäten zu behalten.",
|
||||
"card-delete-suggest-archive": "Sie können eine Karte archivieren, um sie vom Board zu entfernen und die Aktivitäten zu behalten.",
|
||||
"card-due": "Ende",
|
||||
"card-due-on": "Ende am",
|
||||
"card-spent": "Aufgewendete Zeit",
|
||||
|
@ -135,8 +135,8 @@
|
|||
"changePermissionsPopup-title": "Berechtigungen ändern",
|
||||
"changeSettingsPopup-title": "Einstellungen ändern",
|
||||
"checklists": "Checklisten",
|
||||
"click-to-star": "Klicken um dem Board einen Stern zu geben.",
|
||||
"click-to-unstar": "Klicken um den Stern von dem Board zu entfernen.",
|
||||
"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.",
|
||||
"clipboard": "Zwischenablage oder Drag & Drop",
|
||||
"close": "Schließen",
|
||||
"close-board": "Board schließen",
|
||||
|
@ -219,7 +219,7 @@
|
|||
"filter-no-label": "Kein Label",
|
||||
"filter-no-member": "Kein Mitglied",
|
||||
"filter-on": "Filter ist aktiv",
|
||||
"filter-on-desc": "Sie filtern die Karten in diesem Board. Klicken um die Filter zu bearbeiten.",
|
||||
"filter-on-desc": "Sie filtern die Karten in diesem Board. Klicken Sie, um den Filter zu bearbeiten.",
|
||||
"filter-to-selection": "Ergebnisse auswählen",
|
||||
"fullname": "Vollständiger Name",
|
||||
"header-logo-title": "Zurück zur Board Seite.",
|
||||
|
@ -270,7 +270,7 @@
|
|||
"listMorePopup-title": "Mehr",
|
||||
"link-list": "Link zu dieser Liste",
|
||||
"list-delete-pop": "Alle Aktionen werden aus dem Verlauf gelöscht. Die Liste kann nicht wiederhergestellt werden.",
|
||||
"list-delete-suggest-archive": "Listen können archiviert werden um sie aus dem Board zu entfernen und den Verlauf zu erhalten.",
|
||||
"list-delete-suggest-archive": "Listen können archiviert werden, um sie aus dem Board zu entfernen und den Verlauf zu erhalten.",
|
||||
"lists": "Listen",
|
||||
"swimlanes": "Swimlanes",
|
||||
"log-out": "Ausloggen",
|
||||
|
@ -329,7 +329,7 @@
|
|||
"save": "Speichern",
|
||||
"search": "Suchen",
|
||||
"select-color": "Farbe auswählen",
|
||||
"set-wip-limit-value": "Setzen einer Limite für die maximale Anzahl Aufgaben in dieser Liste",
|
||||
"set-wip-limit-value": "Setzen Sie ein Limit für die maximale Anzahl von Aufgaben in dieser Liste",
|
||||
"setWipLimitPopup-title": "WIP-Limit setzen",
|
||||
"shortcut-assign-self": "Fügen Sie sich zur aktuellen Karte hinzu",
|
||||
"shortcut-autocomplete-emoji": "Emojis vervollständigen",
|
||||
|
@ -344,7 +344,7 @@
|
|||
"sidebar-open": "Seitenleiste öffnen",
|
||||
"sidebar-close": "Seitenleiste schließen",
|
||||
"signupPopup-title": "Benutzerkonto erstellen",
|
||||
"star-board-title": "Klicken um das Board mit einem Stern zu markieren. Es erscheint dann oben in ihrer Boardliste.",
|
||||
"star-board-title": "Klicken Sie, um das Board mit einem Stern zu markieren. Es erscheint dann oben in ihrer Boardliste.",
|
||||
"starred-boards": "Markierte Boards",
|
||||
"starred-boards-description": "Markierte Boards erscheinen oben in ihrer Boardliste.",
|
||||
"subscribe": "Abonnieren",
|
||||
|
@ -373,12 +373,12 @@
|
|||
"watching": "Beobachten",
|
||||
"watching-info": "Sie werden über alle Änderungen in diesem Board benachrichtigt",
|
||||
"welcome-board": "Willkommen-Board",
|
||||
"welcome-swimlane": "Milestone 1",
|
||||
"welcome-swimlane": "Meilenstein 1",
|
||||
"welcome-list1": "Grundlagen",
|
||||
"welcome-list2": "Fortgeschritten",
|
||||
"what-to-do": "Was wollen Sie tun?",
|
||||
"wipLimitErrorPopup-title": "Ungültiges WIP-Limit",
|
||||
"wipLimitErrorPopup-dialog-pt1": "Die Anzahl Aufgaben in dieser Liste ist grösser als das von Ihnen definierte WIP-Limit.",
|
||||
"wipLimitErrorPopup-dialog-pt1": "Die Anzahl von Aufgaben in dieser Liste ist größer als das von Ihnen definierte WIP-Limit.",
|
||||
"wipLimitErrorPopup-dialog-pt2": "Bitte verschieben Sie einige Aufgaben aus dieser Liste oder setzen Sie ein grösseres WIP-Limit.",
|
||||
"admin-panel": "Administration",
|
||||
"settings": "Einstellungen",
|
||||
|
|
|
@ -225,10 +225,9 @@ Cards.mutations({
|
|||
swimlaneId,
|
||||
listId,
|
||||
boardId: list.boardId,
|
||||
sort: sortIndex,
|
||||
};
|
||||
if (sortIndex) {
|
||||
mutatedFields.sort = sortIndex;
|
||||
}
|
||||
|
||||
return {$set: mutatedFields};
|
||||
},
|
||||
|
||||
|
|
|
@ -82,8 +82,8 @@ Lists.helpers({
|
|||
};
|
||||
if (swimlaneId)
|
||||
selector.swimlaneId = swimlaneId;
|
||||
return Cards.find(Filter.mongoSelector(selector,
|
||||
{ sort: ['sort'] }));
|
||||
return Cards.find(Filter.mongoSelector(selector),
|
||||
{ sort: ['sort'] });
|
||||
},
|
||||
|
||||
allCards() {
|
||||
|
|
|
@ -23,6 +23,8 @@ export class TrelloCreator {
|
|||
|
||||
// Map of labels Trello ID => Wekan ID
|
||||
this.labels = {};
|
||||
// Default swimlane
|
||||
this.swimlane = null;
|
||||
// Map of lists Trello ID => Wekan ID
|
||||
this.lists = {};
|
||||
// Map of cards Trello ID => Wekan ID
|
||||
|
@ -230,6 +232,7 @@ export class TrelloCreator {
|
|||
dateLastActivity: this._now(),
|
||||
description: card.desc,
|
||||
listId: this.lists[card.idList],
|
||||
swimlaneId: this.swimlane,
|
||||
sort: card.pos,
|
||||
title: card.name,
|
||||
// we attribute the card to its creator if available
|
||||
|
@ -397,6 +400,22 @@ export class TrelloCreator {
|
|||
});
|
||||
}
|
||||
|
||||
createSwimlanes(boardId) {
|
||||
const swimlaneToCreate = {
|
||||
archived: false,
|
||||
boardId,
|
||||
// We are being defensing here by providing a default date (now) if the
|
||||
// creation date wasn't found on the action log. This happen on old
|
||||
// Wekan boards (eg from 2013) that didn't log the 'createList' action
|
||||
// we require.
|
||||
createdAt: this._now(),
|
||||
title: 'Default',
|
||||
};
|
||||
const swimlaneId = Swimlanes.direct.insert(swimlaneToCreate);
|
||||
Swimlanes.direct.update(swimlaneId, {$set: {'updatedAt': this._now()}});
|
||||
this.swimlane = swimlaneId;
|
||||
}
|
||||
|
||||
createChecklists(trelloChecklists) {
|
||||
trelloChecklists.forEach((checklist) => {
|
||||
if (this.cards[checklist.idCard]) {
|
||||
|
@ -607,6 +626,7 @@ export class TrelloCreator {
|
|||
this.parseActions(board.actions);
|
||||
const boardId = this.createBoardAndLabels(board);
|
||||
this.createLists(board.lists, boardId);
|
||||
this.createSwimlanes(boardId);
|
||||
this.createCards(board.cards, boardId);
|
||||
this.createChecklists(board.checklists);
|
||||
this.importActions(board.actions, boardId);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "wekan",
|
||||
"version": "0.71.0",
|
||||
"version": "0.72.0",
|
||||
"description": "The open-source Trello-like kanban",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
|
|
|
@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
|
|||
appTitle = (defaultText = "Wekan"),
|
||||
# The name of the app as it is displayed to the user.
|
||||
|
||||
appVersion = 56,
|
||||
appVersion = 57,
|
||||
# Increment this for every release.
|
||||
|
||||
appMarketingVersion = (defaultText = "0.71.0~2018-02-03"),
|
||||
appMarketingVersion = (defaultText = "0.72.0~2018-02-07"),
|
||||
# Human-readable presentation of the app version.
|
||||
|
||||
minUpgradableAppVersion = 0,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue