From 54e70e7158dd24a049562f5a857a6cccb9f36c0b Mon Sep 17 00:00:00 2001 From: Mathias Rasmussen Date: Wed, 1 Jun 2016 16:20:01 +0200 Subject: [PATCH] Remove torrent/data confirmation modal --- .../controllers/torrent-list-controller.js | 14 +++++++--- renderer/main.css | 3 +-- renderer/main.js | 3 ++- renderer/views/app.js | 1 + renderer/views/remove-torrent-modal.js | 26 +++++++++++++++++++ renderer/views/torrent-list.js | 2 +- 6 files changed, 41 insertions(+), 8 deletions(-) create mode 100644 renderer/views/remove-torrent-modal.js diff --git a/renderer/controllers/torrent-list-controller.js b/renderer/controllers/torrent-list-controller.js index 27be6156..bb90ccf2 100644 --- a/renderer/controllers/torrent-list-controller.js +++ b/renderer/controllers/torrent-list-controller.js @@ -112,6 +112,14 @@ module.exports = class TorrentListController { ipcRenderer.send('wt-select-files', infoHash, torrentSummary.selections) } + confirmDeleteTorrent (infoHash, deleteData) { + this.state.modal = { + id: 'remove-torrent-modal', + infoHash, + deleteData + } + } + // TODO: use torrentKey, not infoHash deleteTorrent (infoHash, deleteData) { ipcRenderer.send('wt-stop-torrenting', infoHash) @@ -151,14 +159,12 @@ module.exports = class TorrentListController { menu.append(new electron.remote.MenuItem({ label: 'Remove From List', - click: () => this.deleteTorrent( - torrentSummary.infoHash, false) + click: dispatch('confirmDeleteTorrent', torrentSummary.infoHash, false) })) menu.append(new electron.remote.MenuItem({ label: 'Remove Data File', - click: () => this.deleteTorrent( - torrentSummary.infoHash, true) + click: dispatch('confirmDeleteTorrent', torrentSummary.infoHash, true) })) menu.append(new electron.remote.MenuItem({ diff --git a/renderer/main.css b/renderer/main.css index 9f64c957..b4683c43 100644 --- a/renderer/main.css +++ b/renderer/main.css @@ -326,7 +326,6 @@ table { } .create-torrent input.torrent-is-private { - width: initial; margin: 0; } @@ -404,7 +403,7 @@ button.button-raised:active { * OTHER FORM ELEMENT DEFAULTS */ -input { +input[type='text'] { background: transparent; width: 300px; padding: 6px; diff --git a/renderer/main.js b/renderer/main.js index af9c2dbc..c5a60f0e 100644 --- a/renderer/main.js +++ b/renderer/main.js @@ -178,7 +178,8 @@ const dispatchHandlers = { 'createTorrent': (options) => controllers.torrentList.createTorrent(options), 'toggleTorrent': (infoHash) => controllers.torrentList.toggleTorrent(infoHash), 'toggleTorrentFile': (infoHash, index) => controllers.torrentList.toggleTorrentFile(infoHash, index), - 'deleteTorrent': (infoHash) => controllers.torrentList.deleteTorrent(infoHash), + 'confirmDeleteTorrent': (infoHash, deleteData) => controllers.torrentList.confirmDeleteTorrent(infoHash, deleteData), + 'deleteTorrent': (infoHash, deleteData) => controllers.torrentList.deleteTorrent(infoHash, deleteData), 'toggleSelectTorrent': (infoHash) => controllers.torrentList.toggleSelectTorrent(infoHash), 'openTorrentContextMenu': (infoHash) => controllers.torrentList.openTorrentContextMenu(infoHash), 'startTorrentingSummary': (torrentSummary) => diff --git a/renderer/views/app.js b/renderer/views/app.js index bdd01f75..58c64b2d 100644 --- a/renderer/views/app.js +++ b/renderer/views/app.js @@ -12,6 +12,7 @@ var Views = { var Modals = { 'open-torrent-address-modal': require('./open-torrent-address-modal'), + 'remove-torrent-modal': require('./remove-torrent-modal'), 'update-available-modal': require('./update-available-modal'), 'unsupported-media-modal': require('./unsupported-media-modal') } diff --git a/renderer/views/remove-torrent-modal.js b/renderer/views/remove-torrent-modal.js new file mode 100644 index 00000000..580adac5 --- /dev/null +++ b/renderer/views/remove-torrent-modal.js @@ -0,0 +1,26 @@ +module.exports = RemoveTorrentModal + +var {dispatch, dispatcher} = require('../lib/dispatcher') +var hx = require('../lib/hx') + +function RemoveTorrentModal (state) { + var message = state.modal.deleteData + ? 'Are you sure you want to remove this torrent from the list and delete the data file?' + : 'Are you sure you want to remove this torrent from the list?' + var buttonText = state.modal.deleteData ? 'Remove Data' : 'Remove' + + return hx` +
+

${message}

+

+ + +

+
+ ` + + function handleRemove () { + dispatch('deleteTorrent', state.modal.infoHash, state.modal.deleteData) + dispatch('exitModal') + } +} diff --git a/renderer/views/torrent-list.js b/renderer/views/torrent-list.js index b897ac1e..fad2ff32 100644 --- a/renderer/views/torrent-list.js +++ b/renderer/views/torrent-list.js @@ -172,7 +172,7 @@ function TorrentList (state) { + onclick=${dispatcher('confirmDeleteTorrent', infoHash, false)}> close