Merge branch 'devel'

This commit is contained in:
Lauri Ojansivu 2018-02-03 12:57:15 +02:00
commit b2d3138220
47 changed files with 103 additions and 11 deletions

View file

@ -1,3 +1,12 @@
# 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 Import Wekan board with swimlanes](https://github.com/wekan/wekan/commit/ec0a8449ba98aea708e484d386e5a209e2be8fff).
Thanks to GitHub user andresmanelli for contributions.
# v0.70 2018-02-02 Wekan release
This release adds the following new features:
@ -5,7 +14,7 @@ This release adds the following new features:
- [Add ability to edit swimlane name](https://github.com/wekan/wekan/commit/3414cb84ad8ac800e23bbda6ce12822f40d1bd19);
- [Add swimlane popup menu and archive icon](https://github.com/wekan/wekan/commit/5953fb8a44a3582ed0d8816ffb32a5b7f41f50a3).
and fixes following bugs:
and fixes the following bugs:
- [Two empty columns in swimlane view](https://github.com/wekan/wekan/issues/1459).

View file

@ -373,6 +373,7 @@
"watching": "مشاهدة",
"watching-info": "You will be notified of any change in this board",
"welcome-board": "لوحة التّرحيب",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "المبادئ",
"welcome-list2": "متقدم",
"what-to-do": "ماذا تريد أن تنجز?",

View file

@ -373,6 +373,7 @@
"watching": "Watching",
"watching-info": "You will be notified of any change in this board",
"welcome-board": "Welcome Board",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"what-to-do": "What do you want to do?",

View file

@ -373,6 +373,7 @@
"watching": "En observació",
"watching-info": "Seràs notificat de cada canvi en aquest tauler",
"welcome-board": "Tauler de benvinguda",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Bàsics",
"welcome-list2": "Avançades",
"what-to-do": "Què vols fer?",

View file

@ -373,6 +373,7 @@
"watching": "Watching",
"watching-info": "You will be notified of any change in this board",
"welcome-board": "Welcome Board",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"what-to-do": "Co chcete dělat?",

View file

@ -12,7 +12,7 @@
"act-archivedBoard": "hat __board__ archiviert",
"act-archivedCard": "hat __card__ archiviert",
"act-archivedList": "hat __list__ archiviert",
"act-archivedSwimlane": "archived __swimlane__",
"act-archivedSwimlane": "__swimlane__ wurde archiviert",
"act-importBoard": "hat __board__ importiert",
"act-importCard": "hat __card__ importiert",
"act-importList": "hat __list__ importiert",
@ -45,7 +45,7 @@
"add-attachment": "Datei anhängen",
"add-board": "neues Board",
"add-card": "Karte hinzufügen",
"add-swimlane": "Add Swimlane",
"add-swimlane": "Swimlane hinzufügen",
"add-checklist": "Checkliste hinzufügen",
"add-checklist-item": "Punkt zu einer Checkliste hinzufügen",
"add-cover": "Cover hinzufügen",
@ -69,7 +69,7 @@
"archive-board": "Board archivieren",
"archive-card": "Karte archivieren",
"archive-list": "Liste archivieren",
"archive-swimlane": "Archive Swimlane",
"archive-swimlane": "Swimlane archivieren",
"archive-selection": "Auswahl archivieren",
"archiveBoardPopup-title": "Board archivieren?",
"archived-items": "Archivierte Einträge",
@ -97,7 +97,7 @@
"boardChangeWatchPopup-title": "Beobachtung ändern",
"boardMenuPopup-title": "Boardmenü",
"boards": "Boards",
"board-view": "Board View",
"board-view": "Boardansicht",
"board-view-swimlanes": "Swimlanes",
"board-view-lists": "Listen",
"bucket-example": "z.B. \"Löffelliste\"",
@ -157,7 +157,7 @@
"comment-only-desc": "Kann Karten nur Kommentieren",
"computer": "Computer",
"confirm-checklist-delete-dialog": "Sind Sie sicher, dass Sie die Checkliste löschen möchten?",
"copy-card-link-to-clipboard": "Kopiere die Karte in die Zwischenablage",
"copy-card-link-to-clipboard": "Kopiere Link zur Karte in die Zwischenablage",
"copyCardPopup-title": "Karte kopieren",
"create": "Erstellen",
"createBoardPopup-title": "Board erstellen",
@ -265,7 +265,7 @@
"list-move-cards": "Alle Karten in dieser Liste verschieben",
"list-select-cards": "Alle Karten in dieser Liste auswählen",
"listActionPopup-title": "Listenaktionen",
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneActionPopup-title": "Swimlaneaktionen",
"listImportCardPopup-title": "Eine Trello-Karte importieren",
"listMorePopup-title": "Mehr",
"link-list": "Link zu dieser Liste",
@ -292,7 +292,7 @@
"name": "Name",
"no-archived-cards": "Keine archivierten Karten.",
"no-archived-lists": "Keine archivierten Listen.",
"no-archived-swimlanes": "No archived swimlanes.",
"no-archived-swimlanes": "Keine archivierten Swimlanes",
"no-results": "Keine Ergebnisse",
"normal": "Normal",
"normal-desc": "Kann Karten anschauen und bearbeiten, aber keine Einstellungen ändern.",
@ -373,6 +373,7 @@
"watching": "Beobachten",
"watching-info": "Sie werden über alle Änderungen in diesem Board benachrichtigt",
"welcome-board": "Willkommen-Board",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Grundlagen",
"welcome-list2": "Fortgeschritten",
"what-to-do": "Was wollen Sie tun?",

View file

@ -373,6 +373,7 @@
"watching": "Watching",
"watching-info": "You will be notified of any change in this board",
"welcome-board": "Welcome Board",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"what-to-do": "What do you want to do?",

View file

@ -373,6 +373,7 @@
"watching": "Watching",
"watching-info": "You will be notified of any changes in this board",
"welcome-board": "Welcome Board",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"what-to-do": "What do you want to do?",

View file

@ -373,6 +373,7 @@
"watching": "Watching",
"watching-info": "You will be notified of any change in this board",
"welcome-board": "Welcome Board",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"what-to-do": "What do you want to do?",

View file

@ -373,6 +373,7 @@
"watching": "Rigardante",
"watching-info": "You will be notified of any change in this board",
"welcome-board": "Welcome Board",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"what-to-do": "Kion vi volas fari?",

View file

@ -373,6 +373,7 @@
"watching": "Siguiendo",
"watching-info": "Serás notificado de cualquier cambio en este tablero",
"welcome-board": "Tablero de Bienvenida",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Básicos",
"welcome-list2": "Avanzado",
"what-to-do": "¿Qué querés hacer?",

View file

@ -373,6 +373,7 @@
"watching": "Vigilando",
"watching-info": "Serás notificado de cualquier cambio en este tablero",
"welcome-board": "Tablero de bienvenida",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Básicos",
"welcome-list2": "Avanzados",
"what-to-do": "¿Qué deseas hacer?",

View file

@ -373,6 +373,7 @@
"watching": "Ikuskatzen",
"watching-info": "Arbel honi egindako aldaketak jakinaraziko zaizkizu",
"welcome-board": "Ongi etorri arbela",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Oinarrizkoa",
"welcome-list2": "Aurreratua",
"what-to-do": "Zer egin nahi duzu?",

View file

@ -373,6 +373,7 @@
"watching": "درحال دیده بانی",
"watching-info": "شما از هر تغییری دراین تخته آگاه خواهید شد",
"welcome-board": "به این تخته خوش آمدید",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "پایه ای ها",
"welcome-list2": "پیشرفته",
"what-to-do": "چه کاری می خواهید انجام دهید؟",

View file

@ -373,6 +373,7 @@
"watching": "Seurataan",
"watching-info": "Sinulle ilmoitetaan tämän taulun muutoksista",
"welcome-board": "Tervetuloa taulu",
"welcome-swimlane": "Merkkipaalu 1",
"welcome-list1": "Perusasiat",
"welcome-list2": "Edistynyt",
"what-to-do": "Mitä haluat tehdä?",

View file

@ -373,6 +373,7 @@
"watching": "Suivi",
"watching-info": "Vous serez notifié de toute modification dans ce tableau",
"welcome-board": "Tableau de bienvenue",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basiques",
"welcome-list2": "Avancés",
"what-to-do": "Que voulez-vous faire ?",

View file

@ -373,6 +373,7 @@
"watching": "Vixiando",
"watching-info": "Recibirá unha notificación sobre calquera cambio que se produza neste taboleiro",
"welcome-board": "Taboleiro de benvida",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Fundamentos",
"welcome-list2": "Avanzado",
"what-to-do": "Que desexa facer?",

View file

@ -373,6 +373,7 @@
"watching": "במעקב",
"watching-info": "מעתה יגיעו אליך דיווחים על כל שינוי בלוח זה",
"welcome-board": "לוח קבלת פנים",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "יסודות",
"welcome-list2": "מתקדם",
"what-to-do": "מה ברצונך לעשות?",

View file

@ -373,6 +373,7 @@
"watching": "Megfigyelés",
"watching-info": "Értesítve lesz a táblán lévő összes változásról",
"welcome-board": "Üdvözlő tábla",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Alapok",
"welcome-list2": "Speciális",
"what-to-do": "Mit szeretne tenni?",

View file

@ -373,6 +373,7 @@
"watching": "Mengamati",
"watching-info": "Anda akan diberitahu semua perubahan di panel ini",
"welcome-board": "Panel Selamat Datang",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Tingkat dasar",
"welcome-list2": "Tingkat lanjut",
"what-to-do": "Apa yang mau Anda lakukan?",

View file

@ -373,6 +373,7 @@
"watching": "Watching",
"watching-info": "You will be notified of any change in this board",
"welcome-board": "Welcome Board",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"what-to-do": "What do you want to do?",

View file

@ -373,6 +373,7 @@
"watching": "Stai seguendo",
"watching-info": "Sarai notificato per tutte le modifiche in questa bacheca",
"welcome-board": "Bacheca di benvenuto",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basi",
"welcome-list2": "Avanzate",
"what-to-do": "Cosa vuoi fare?",

View file

@ -373,6 +373,7 @@
"watching": "ウォッチしています",
"watching-info": "このボードの変更が通知されます",
"welcome-board": "ウェルカムボード",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "基本",
"welcome-list2": "高度",
"what-to-do": "何をしたいですか?",

View file

@ -373,6 +373,7 @@
"watching": "감시 중",
"watching-info": "\"이 보드의 변경사항을 알림으로 받습니다.",
"welcome-board": "보드예제",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "신규",
"welcome-list2": "진행",
"what-to-do": "무엇을 하고 싶으신가요?",

View file

@ -373,6 +373,7 @@
"watching": "Watching",
"watching-info": "You will be notified of any change in this board",
"welcome-board": "Welcome Board",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"what-to-do": "What do you want to do?",

View file

@ -373,6 +373,7 @@
"watching": "Watching",
"watching-info": "You will be notified of any change in this board",
"welcome-board": "Welcome Board",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"what-to-do": "What do you want to do?",

View file

@ -373,6 +373,7 @@
"watching": "Watching",
"watching-info": "You will be notified of any change in this board",
"welcome-board": "Welcome Board",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"what-to-do": "What do you want to do?",

View file

@ -373,6 +373,7 @@
"watching": "Bekijken",
"watching-info": "Je zal op de hoogte worden gesteld als er een verandering gebeurt op dit bord.",
"welcome-board": "Welkom Bord",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basis",
"welcome-list2": "Geadvanceerd",
"what-to-do": "Wat wil je doen?",

View file

@ -373,6 +373,7 @@
"watching": "Obserwujesz",
"watching-info": "You will be notified of any change in this board",
"welcome-board": "Welcome Board",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Podstawy",
"welcome-list2": "Zaawansowane",
"what-to-do": "Co chcesz zrobić?",

View file

@ -373,6 +373,7 @@
"watching": "Observando",
"watching-info": "Você será notificado em qualquer alteração desse board",
"welcome-board": "Board de Boas Vindas",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Básico",
"welcome-list2": "Avançado",
"what-to-do": "O que você gostaria de fazer?",

View file

@ -373,6 +373,7 @@
"watching": "Watching",
"watching-info": "You will be notified of any change in this board",
"welcome-board": "Welcome Board",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"what-to-do": "What do you want to do?",

View file

@ -373,6 +373,7 @@
"watching": "Watching",
"watching-info": "You will be notified of any change in this board",
"welcome-board": "Welcome Board",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"what-to-do": "Ce ai vrea sa faci?",

View file

@ -373,6 +373,7 @@
"watching": "Отслеживается",
"watching-info": "Вы будете уведомлены об любых изменениях в этой доске.",
"welcome-board": "Приветственная Доска",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Основы",
"welcome-list2": "Расширенно",
"what-to-do": "Что вы хотите сделать?",

View file

@ -373,6 +373,7 @@
"watching": "Posmatranje",
"watching-info": "Bićete obavešteni o promenama u ovoj tabli",
"welcome-board": "Tabla dobrodošlice",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Osnove",
"welcome-list2": "Napredno",
"what-to-do": "Šta želiš da uradiš ?",

View file

@ -373,6 +373,7 @@
"watching": "Bevakar",
"watching-info": "Du kommer att meddelas om alla ändringar på denna anslagstavla",
"welcome-board": "Välkomstanslagstavla",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Grunderna",
"welcome-list2": "Avancerad",
"what-to-do": "Vad vill du göra?",

View file

@ -373,6 +373,7 @@
"watching": "Watching",
"watching-info": "You will be notified of any change in this board",
"welcome-board": "Welcome Board",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"what-to-do": "What do you want to do?",

View file

@ -373,6 +373,7 @@
"watching": "เฝ้าดู",
"watching-info": "คุณจะได้รับแจ้งหากมีการเปลี่ยนแปลงใด ๆ ในบอร์ดนี้",
"welcome-board": "ยินดีต้อนรับสู่บอร์ด",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "พื้นฐาน",
"welcome-list2": "ก้าวหน้า",
"what-to-do": "ต้องการทำอะไร",

View file

@ -373,6 +373,7 @@
"watching": "Takip Ediliyor",
"watching-info": "Bu pano hakkındaki tüm değişiklikler hakkında bildirim alacaksınız",
"welcome-board": "Hoş Geldiniz Panosu",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Temel",
"welcome-list2": "Gelişmiş",
"what-to-do": "Ne yapmak istiyorsunuz?",

View file

@ -373,6 +373,7 @@
"watching": "Watching",
"watching-info": "You will be notified of any change in this board",
"welcome-board": "Welcome Board",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"what-to-do": "What do you want to do?",

View file

@ -373,6 +373,7 @@
"watching": "Watching",
"watching-info": "You will be notified of any change in this board",
"welcome-board": "Welcome Board",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"what-to-do": "What do you want to do?",

View file

@ -373,6 +373,7 @@
"watching": "关注",
"watching-info": "当此看板发生变更时会通知你",
"welcome-board": "“欢迎”看板",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "基本",
"welcome-list2": "高阶",
"what-to-do": "要做什么?",

View file

@ -373,6 +373,7 @@
"watching": "觀察中",
"watching-info": "你將會收到關於這個看板所有的變更通知",
"welcome-board": "歡迎進入看板",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "基本",
"welcome-list2": "進階",
"what-to-do": "要做什麼?",

View file

@ -53,6 +53,7 @@ class Exporter {
_.extend(result, Boards.findOne(this._boardId, { fields: { stars: 0 } }));
result.lists = Lists.find(byBoard, noBoardId).fetch();
result.cards = Cards.find(byBoard, noBoardId).fetch();
result.swimlanes = Swimlanes.find(byBoard, noBoardId).fetch();
result.comments = CardComments.find(byBoard, noBoardId).fetch();
result.activities = Activities.find(byBoard, noBoardId).fetch();
result.checklists = [];

View file

@ -549,6 +549,11 @@ if (Meteor.isServer) {
permission: 'private',
}, fakeUser, (err, boardId) => {
Swimlanes.insert({
title: TAPi18n.__('welcome-swimlane'),
boardId,
}, fakeUser);
['welcome-list1', 'welcome-list2'].forEach((title) => {
Lists.insert({title: TAPi18n.__(title), boardId}, fakeUser);
});

View file

@ -14,6 +14,7 @@ export class WekanCreator {
board: null,
cards: {},
lists: {},
swimlanes: {},
};
// The object creator Wekan Id, indexed by the object Wekan id
// (so we only parse actions once!)
@ -23,6 +24,8 @@ export class WekanCreator {
// Map of labels Wekan ID => Wekan ID
this.labels = {};
// Map of swimlanes Wekan ID => Wekan ID
this.swimlanes = {};
// Map of lists Wekan ID => Wekan ID
this.lists = {};
// Map of cards Wekan ID => Wekan ID
@ -121,6 +124,13 @@ export class WekanCreator {
})]);
}
checkSwimlanes(wekanSwimlanes) {
check(wekanSwimlanes, [Match.ObjectIncluding({
archived: Boolean,
title: String,
})]);
}
checkChecklists(wekanChecklists) {
check(wekanChecklists, [Match.ObjectIncluding({
cardId: String,
@ -213,6 +223,7 @@ export class WekanCreator {
dateLastActivity: this._now(),
description: card.description,
listId: this.lists[card.listId],
swimlaneId: this.swimlanes[card.swimlaneId],
sort: card.sort,
title: card.title,
// we attribute the card to its creator if available
@ -402,6 +413,24 @@ export class WekanCreator {
});
}
createSwimlanes(wekanSwimlanes, boardId) {
wekanSwimlanes.forEach((swimlane) => {
const swimlaneToCreate = {
archived: swimlane.archived,
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(this.createdAt.swimlanes[swimlane._id]),
title: swimlane.title,
};
const swimlaneId = Swimlanes.direct.insert(swimlaneToCreate);
Swimlanes.direct.update(swimlaneId, {$set: {'updatedAt': this._now()}});
this.swimlanes[swimlane._id] = swimlaneId;
});
}
createChecklists(wekanChecklists) {
wekanChecklists.forEach((checklist, checklistIndex) => {
// Create the checklist
@ -474,6 +503,11 @@ export class WekanCreator {
const listId = activity.listId;
this.createdAt.lists[listId] = activity.createdAt;
break;
}
case 'createSwimlane': {
const swimlaneId = activity.swimlaneId;
this.createdAt.swimlanes[swimlaneId] = activity.createdAt;
break;
}}
});
}
@ -595,6 +629,7 @@ export class WekanCreator {
this.checkBoard(board);
this.checkLabels(board.labels);
this.checkLists(board.lists);
this.checkSwimlanes(board.swimlanes);
this.checkCards(board.cards);
this.checkChecklists(board.checklists);
} catch (e) {
@ -613,6 +648,7 @@ export class WekanCreator {
this.parseActivities(board);
const boardId = this.createBoardAndLabels(board);
this.createLists(board.lists, boardId);
this.createSwimlanes(board.swimlanes, boardId);
this.createCards(board.cards, boardId);
this.createChecklists(board.checklists);
this.importActivities(board.activities, boardId);

View file

@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "0.70.0",
"version": "0.71.0",
"description": "The open-source Trello-like kanban",
"private": true,
"scripts": {

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 = 55,
appVersion = 56,
# Increment this for every release.
appMarketingVersion = (defaultText = "0.70.0~2018-02-02"),
appMarketingVersion = (defaultText = "0.71.0~2018-02-03"),
# Human-readable presentation of the app version.
minUpgradableAppVersion = 0,