Prechádzať zdrojové kódy

Merge branch 'devel' into copyMany

Erik Turk 7 rokov pred
rodič
commit
69aeee536d

+ 19 - 1
CHANGELOG.md

@@ -1,8 +1,26 @@
+# v0.73 2018-02-08 Wekan release
+
+This release fixes the following bugs:
+
+- [Fix Ubuntu snap build](https://github.com/wekan/wekan/pull/1469).
+
+Thanks to GitHub user kubiko for contributions.
+
+# 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.

+ 5 - 5
client/components/cards/cardDetails.js

@@ -173,13 +173,13 @@ Template.cardDetailsActionsPopup.events({
   'click .js-copy-many-card': Popup.open('copyManyCard'),
   '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();
@@ -216,7 +216,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();
   },
 });

+ 9 - 9
i18n/de.i18n.json

@@ -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",

+ 2 - 3
models/cards.js

@@ -225,10 +225,9 @@ Cards.mutations({
       swimlaneId,
       listId,
       boardId: list.boardId,
+      sort: sortIndex,
     };
-    if (sortIndex) {
-      mutatedFields.sort = sortIndex;
-    }
+
     return {$set: mutatedFields};
   },
 

+ 2 - 2
models/lists.js

@@ -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() {

+ 20 - 0
models/trelloCreator.js

@@ -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 - 1
package.json

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

+ 2 - 2
sandstorm-pkgdef.capnp

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

+ 2 - 2
snapcraft.yaml

@@ -76,9 +76,8 @@ parts:
             - node-gyp
             - node-pre-gyp
             - fibers@2.0.0
-        stage-packages:
-            - ca-certificates
         build-packages:
+            - ca-certificates
             - apt-utils
             - python
             - g++
@@ -118,6 +117,7 @@ parts:
         install: |
             cp -r .build/bundle/* $SNAPCRAFT_PART_INSTALL/
             cp .build/bundle/.node_version.txt $SNAPCRAFT_PART_INSTALL/
+            rm $SNAPCRAFT_PART_INSTALL/lib/node_modules/wekan
         organize:
             README: README.wekan