diff options
author | Lauri Ojansivu <x@xet7.org> | 2017-07-25 16:26:25 +0300 |
---|---|---|
committer | Lauri Ojansivu <x@xet7.org> | 2017-07-25 16:26:25 +0300 |
commit | fe2163a54614f64a705da537b97c41aa7c1a83c8 (patch) | |
tree | a82069a72a4fe09e7f7846fa027570f963be16d6 | |
parent | 7b4970a8d980f3918fcf7fbb584d7a67aae9cc13 (diff) | |
parent | 1eaada0feba4b690e9126d663e58fe2b9eb64c7c (diff) | |
download | wekan-fe2163a54614f64a705da537b97c41aa7c1a83c8.tar.gz wekan-fe2163a54614f64a705da537b97c41aa7c1a83c8.tar.bz2 wekan-fe2163a54614f64a705da537b97c41aa7c1a83c8.zip |
Merge branch 'export-import-sandstorm' of https://github.com/GhassenRjab/wekan into GhassenRjab-export-import-sandstorm
-rw-r--r-- | client/components/boards/boardArchive.js | 7 | ||||
-rw-r--r-- | client/components/boards/boardHeader.jade | 15 | ||||
-rw-r--r-- | client/components/boards/boardHeader.js | 4 | ||||
-rw-r--r-- | client/components/import/import.jade | 2 | ||||
-rw-r--r-- | client/components/import/import.js | 2 | ||||
-rw-r--r-- | config/router.js | 3 | ||||
-rw-r--r-- | i18n/en.i18n.json | 2 | ||||
-rw-r--r-- | models/import.js | 5 | ||||
-rw-r--r-- | models/trelloCreator.js | 9 | ||||
-rw-r--r-- | models/wekanCreator.js | 9 |
10 files changed, 52 insertions, 6 deletions
diff --git a/client/components/boards/boardArchive.js b/client/components/boards/boardArchive.js index aab1e2c6..acb53149 100644 --- a/client/components/boards/boardArchive.js +++ b/client/components/boards/boardArchive.js @@ -18,6 +18,13 @@ BlazeComponent.extendComponent({ events() { return [{ 'click .js-restore-board'() { + // TODO : Make isSandstorm variable global + const isSandstorm = Meteor.settings && Meteor.settings.public && + Meteor.settings.public.sandstorm; + if (isSandstorm && Session.get('currentBoard')) { + const currentBoard = Boards.findOne(Session.get('currentBoard')); + currentBoard.archive(); + } const board = this.currentData(); board.restore(); Utils.goBoardId(board._id); diff --git a/client/components/boards/boardHeader.jade b/client/components/boards/boardHeader.jade index d33ee11b..3d98322d 100644 --- a/client/components/boards/boardHeader.jade +++ b/client/components/boards/boardHeader.jade @@ -71,6 +71,12 @@ template(name="boardHeaderBar") title="{{_ 'log-in'}}") i.fa.fa-sign-in span {{_ 'log-in'}} + + if isSandstorm + if currentUser + a.board-header-btn.js-open-archived-board + i.fa.fa-archive + span {{_ 'archives'}} a.board-header-btn.js-open-filter-view( title="{{#if Filter.isActive}}{{_ 'filter-on-desc'}}{{else}}{{_ 'filter'}}{{/if}}" @@ -113,6 +119,11 @@ template(name="boardMenuPopup") li: a(href="{{exportUrl}}", download="{{exportFilename}}") {{_ 'export-board'}} li: a.js-archive-board {{_ 'archive-board'}} li: a.js-outgoing-webhooks {{_ 'outgoing-webhooks'}} + if isSandstorm + hr + ul.pop-over-list + li: a(href="{{exportUrl}}", download="{{exportFilename}}") {{_ 'export-board'}} + li: a.js-import-board {{_ 'import-board-c'}} template(name="boardVisibilityList") ul.pop-over-list @@ -197,9 +208,9 @@ template(name="createBoard") template(name="chooseBoardSource") ul.pop-over-list li - a(href="{{pathFor 'import/trello'}}") {{_ 'from-trello'}} + a(href="{{pathFor '/import/trello'}}") {{_ 'from-trello'}} li - a(href="{{pathFor 'import/wekan'}}") {{_ 'from-wekan'}} + a(href="{{pathFor '/import/wekan'}}") {{_ 'from-wekan'}} template(name="boardChangeTitlePopup") form diff --git a/client/components/boards/boardHeader.js b/client/components/boards/boardHeader.js index dafbfd30..2ee21905 100644 --- a/client/components/boards/boardHeader.js +++ b/client/components/boards/boardHeader.js @@ -14,6 +14,7 @@ Template.boardMenuPopup.events({ FlowRouter.go('home'); }), 'click .js-outgoing-webhooks': Popup.open('outgoingWebhooks'), + 'click .js-import-board': Popup.open('chooseBoardSource'), }); Template.boardMenuPopup.helpers({ @@ -76,6 +77,9 @@ BlazeComponent.extendComponent({ 'click .js-open-board-menu': Popup.open('boardMenu'), 'click .js-change-visibility': Popup.open('boardChangeVisibility'), 'click .js-watch-board': Popup.open('boardChangeWatch'), + 'click .js-open-archived-board'() { + Modal.open('archivedBoards'); + }, 'click .js-open-filter-view'() { Sidebar.setView('filter'); }, diff --git a/client/components/import/import.jade b/client/components/import/import.jade index d1b3489a..5e737cc6 100644 --- a/client/components/import/import.jade +++ b/client/components/import/import.jade @@ -15,6 +15,8 @@ template(name="importTextarea") p: label(for='import-textarea') {{_ instruction}} textarea.js-import-json(placeholder="{{_ 'import-json-placeholder'}}" autofocus) | {{jsonText}} + if isSandstorm + p.warning {{_ 'import-sandstorm-warning'}} input.primary.wide(type="submit" value="{{_ 'import'}}") template(name="importMapMembers") diff --git a/client/components/import/import.js b/client/components/import/import.js index d72a02dd..64170c1d 100644 --- a/client/components/import/import.js +++ b/client/components/import/import.js @@ -68,10 +68,12 @@ BlazeComponent.extendComponent({ this.importedData.get(), additionalData, this.importSource, + Session.get('fromBoard'), (err, res) => { if (err) { this.setError(err.error); } else { + Session.set('fromBoard', null); Utils.goBoardId(res); } } diff --git a/config/router.js b/config/router.js index d4d13be5..ea85c7e6 100644 --- a/config/router.js +++ b/config/router.js @@ -84,6 +84,9 @@ FlowRouter.route('/import/:source', { name: 'import', triggersEnter: [AccountsTemplates.ensureSignedIn], action(params) { + if (Session.get('currentBoard')) { + Session.set('fromBoard', Session.get('currentBoard')); + } Session.set('currentBoard', null); Session.set('currentCard', null); Session.set('importSource', params.source); diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index 05d86ff6..da47e1c6 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -206,8 +206,10 @@ "home": "Home", "import": "Import", "import-board": "import board", + "import-board-c": "Import board", "import-board-title-trello": "Import board from Trello", "import-board-title-wekan": "Import board from Wekan", + "import-sandstorm-warning": "Imported board will delete all existing data on board and replace it with imported board.", "from-trello": "From Trello", "from-wekan": "From Wekan", "import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.", diff --git a/models/import.js b/models/import.js index 2e58c90f..09769794 100644 --- a/models/import.js +++ b/models/import.js @@ -2,10 +2,11 @@ import { TrelloCreator } from './trelloCreator'; import { WekanCreator } from './wekanCreator'; Meteor.methods({ - importBoard(board, data, importSource) { + importBoard(board, data, importSource, currentBoard) { check(board, Object); check(data, Object); check(importSource, String); + check(currentBoard, Match.Maybe(String)); let creator; switch (importSource) { case 'trello': @@ -23,6 +24,6 @@ Meteor.methods({ // authorized) nothing to check, everyone can import boards in their account // 3. create all elements - return creator.create(board); + return creator.create(board, currentBoard); }, }); diff --git a/models/trelloCreator.js b/models/trelloCreator.js index fbc4a878..aa86a5c8 100644 --- a/models/trelloCreator.js +++ b/models/trelloCreator.js @@ -488,7 +488,14 @@ export class TrelloCreator { } } - create(board) { + create(board, currentBoardId) { + // TODO : Make isSandstorm variable global + const isSandstorm = Meteor.settings && Meteor.settings.public && + Meteor.settings.public.sandstorm; + if (isSandstorm && currentBoardId) { + const currentBoard = Boards.findOne(currentBoardId); + currentBoard.archive(); + } this.parseActions(board.actions); const boardId = this.createBoardAndLabels(board); this.createLists(board.lists, boardId); diff --git a/models/wekanCreator.js b/models/wekanCreator.js index 6dd56fb1..b5f9b0ff 100644 --- a/models/wekanCreator.js +++ b/models/wekanCreator.js @@ -478,7 +478,14 @@ export class WekanCreator { } } - create(board) { + create(board, currentBoardId) { + // TODO : Make isSandstorm variable global + const isSandstorm = Meteor.settings && Meteor.settings.public && + Meteor.settings.public.sandstorm; + if (isSandstorm && currentBoardId) { + const currentBoard = Boards.findOne(currentBoardId); + currentBoard.archive(); + } this.parseActivities(board); const boardId = this.createBoardAndLabels(board); this.createLists(board.lists, boardId); |