From 0260e34189d9caf0a44e3a93008ff9098162cae8 Mon Sep 17 00:00:00 2001 From: Calum Lind Date: Mon, 23 Nov 2015 23:20:45 +0000 Subject: [PATCH] [#2485] [WebUI] Fix unconnected Options in context menu --- deluge/ui/web/js/deluge-all/Menus.js | 226 ++++++++++++++++++--------- 1 file changed, 148 insertions(+), 78 deletions(-) diff --git a/deluge/ui/web/js/deluge-all/Menus.js b/deluge/ui/web/js/deluge-all/Menus.js index 2ad4bc677..3c8b5e6d1 100644 --- a/deluge/ui/web/js/deluge-all/Menus.js +++ b/deluge/ui/web/js/deluge-all/Menus.js @@ -31,69 +31,54 @@ */ deluge.menus = { - onTorrentAction: function(item, e) { + onTorrentActionSetOpt: function(item, e) { var ids = deluge.torrents.getSelectedIds(); var action = item.initialConfig.torrentAction; + var opts = {}; + opts[action[0]] = action[1]; + deluge.client.core.set_torrent_options(ids, opts); + }, + onTorrentActionMethod: function(item, e) { + var ids = deluge.torrents.getSelectedIds(); + var action = item.initialConfig.torrentAction; + deluge.client.core[action](ids, { + success: function() { + deluge.ui.update(); + } + }); + }, + + onTorrentActionShow: function(item, e) { + var ids = deluge.torrents.getSelectedIds(); + var action = item.initialConfig.torrentAction; switch (action) { - case 'pause': - case 'resume': - deluge.client.core[action + '_torrent'](ids, { - success: function() { - deluge.ui.update(); - } - }); - break; - case 'top': - case 'up': - case 'down': - case 'bottom': - deluge.client.core['queue_' + action](ids, { - success: function() { - deluge.ui.update(); - } - }); - break; case 'edit_trackers': deluge.editTrackers.show(); break; - case 'update': - deluge.client.core.force_reannounce(ids, { - success: function() { - deluge.ui.update(); - } - }); - break; case 'remove': deluge.removeWindow.show(ids); break; - case 'recheck': - deluge.client.core.force_recheck(ids, { - success: function() { - deluge.ui.update(); - } - }); - break; case 'move': deluge.moveStorage.show(ids); break; } - } + }, } deluge.menus.torrent = new Ext.menu.Menu({ id: 'torrentMenu', items: [{ - torrentAction: 'pause', + torrentAction: 'pause_torrent', text: _('Pause'), iconCls: 'icon-pause', - handler: deluge.menus.onTorrentAction, + handler: deluge.menus.onTorrentActionMethod, scope: deluge.menus }, { - torrentAction: 'resume', + torrentAction: 'resume_torrent', text: _('Resume'), iconCls: 'icon-resume', - handler: deluge.menus.onTorrentAction, + handler: deluge.menus.onTorrentActionMethod, scope: deluge.menus }, '-', { text: _('Options'), @@ -106,17 +91,35 @@ deluge.menus.torrent = new Ext.menu.Menu({ hideOnClick: false, menu: new Ext.menu.Menu({ items: [{ - text: _('5 KiB/s') + torrentAction: ['max_download_speed', 5], + text: _('5 KiB/s'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus }, { - text: _('10 KiB/s') + torrentAction: ['max_download_speed', 10], + text: _('10 KiB/s'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus }, { - text: _('30 KiB/s') + torrentAction: ['max_download_speed', 30], + text: _('30 KiB/s'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus }, { - text: _('80 KiB/s') + torrentAction: ['max_download_speed', 80], + text: _('80 KiB/s'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus }, { - text: _('300 KiB/s') + torrentAction: ['max_download_speed', 300], + text: _('300 KiB/s'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus },{ - text: _('Unlimited') + torrentAction: ['max_download_speed', -1], + text: _('Unlimited'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus }] }) }, { @@ -125,17 +128,35 @@ deluge.menus.torrent = new Ext.menu.Menu({ hideOnClick: false, menu: new Ext.menu.Menu({ items: [{ - text: _('5 KiB/s') + torrentAction: ['max_upload_speed', 5], + text: _('5 KiB/s'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus }, { - text: _('10 KiB/s') + torrentAction: ['max_upload_speed', 10], + text: _('10 KiB/s'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus }, { - text: _('30 KiB/s') + torrentAction: ['max_upload_speed', 30], + text: _('30 KiB/s'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus }, { - text: _('80 KiB/s') + torrentAction: ['max_upload_speed', 80], + text: _('80 KiB/s'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus }, { - text: _('300 KiB/s') + torrentAction: ['max_upload_speed', 300], + text: _('300 KiB/s'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus },{ - text: _('Unlimited') + torrentAction: ['max_upload_speed', -1], + text: _('Unlimited'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus }] }) }, { @@ -144,17 +165,35 @@ deluge.menus.torrent = new Ext.menu.Menu({ hideOnClick: false, menu: new Ext.menu.Menu({ items: [{ - text: _('50') + torrentAction: ['max_connections', 50], + text: _('50'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus }, { - text: _('100') + torrentAction: ['max_connections', 100], + text: _('100'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus }, { - text: _('200') + torrentAction: ['max_connections', 200], + text: _('200'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus }, { - text: _('300') + torrentAction: ['max_connections', 300], + text: _('300'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus }, { - text: _('500') + torrentAction: ['max_connections', 500], + text: _('500'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus },{ - text: _('Unlimited') + torrentAction: ['max_connections', -1], + text: _('Unlimited'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus }] }) }, { @@ -163,23 +202,54 @@ deluge.menus.torrent = new Ext.menu.Menu({ hideOnClick: false, menu: new Ext.menu.Menu({ items: [{ - text: _('0') + torrentAction: ['max_upload_slots', 0], + text: _('0'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus }, { - text: _('1') + torrentAction: ['max_upload_slots', 1], + text: _('1'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus }, { - text: _('2') + torrentAction: ['max_upload_slots', 2], + text: _('2'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus }, { - text: _('3') + torrentAction: ['max_upload_slots', 3], + text: _('3'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus }, { - text: _('5') + torrentAction: ['max_upload_slots', 5], + text: _('5'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus },{ - text: _('Unlimited') + torrentAction: ['max_upload_slots', -1], + text: _('Unlimited'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus }] }) }, { id: 'auto_managed', text: _('Auto Managed'), - checked: false + hideOnClick: false, + menu: new Ext.menu.Menu({ + items: [{ + torrentAction: ['auto_managed', true], + text: _('On'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus + }, { + torrentAction: ['auto_managed', false], + text: _('Off'), + handler: deluge.menus.onTorrentActionSetOpt, + scope: deluge.menus + }] + }) }] }) }, '-', { @@ -188,60 +258,60 @@ deluge.menus.torrent = new Ext.menu.Menu({ hideOnClick: false, menu: new Ext.menu.Menu({ items: [{ - torrentAction: 'top', + torrentAction: 'queue_top', text: _('Top'), iconCls: 'icon-top', - handler: deluge.menus.onTorrentAction, + handler: deluge.menus.onTorrentActionMethod, scope: deluge.menus },{ - torrentAction: 'up', + torrentAction: 'queue_up', text: _('Up'), iconCls: 'icon-up', - handler: deluge.menus.onTorrentAction, + handler: deluge.menus.onTorrentActionMethod, scope: deluge.menus },{ - torrentAction: 'down', + torrentAction: 'queue_down', text: _('Down'), iconCls: 'icon-down', - handler: deluge.menus.onTorrentAction, + handler: deluge.menus.onTorrentActionMethod, scope: deluge.menus },{ - torrentAction: 'bottom', + torrentAction: 'queue_bottom', text: _('Bottom'), iconCls: 'icon-bottom', - handler: deluge.menus.onTorrentAction, + handler: deluge.menus.onTorrentActionMethod, scope: deluge.menus }] }) }, '-', { - torrentAction: 'update', + torrentAction: 'force_reannounce', text: _('Update Tracker'), iconCls: 'icon-update-tracker', - handler: deluge.menus.onTorrentAction, + handler: deluge.menus.onTorrentActionMethod, scope: deluge.menus }, { torrentAction: 'edit_trackers', text: _('Edit Trackers'), iconCls: 'icon-edit-trackers', - handler: deluge.menus.onTorrentAction, + handler: deluge.menus.onTorrentActionShow, scope: deluge.menus }, '-', { torrentAction: 'remove', text: _('Remove Torrent'), iconCls: 'icon-remove', - handler: deluge.menus.onTorrentAction, + handler: deluge.menus.onTorrentActionShow, scope: deluge.menus }, '-', { - torrentAction: 'recheck', + torrentAction: 'force_recheck', text: _('Force Recheck'), iconCls: 'icon-recheck', - handler: deluge.menus.onTorrentAction, + handler: deluge.menus.onTorrentActionMethod, scope: deluge.menus }, { torrentAction: 'move', text: _('Move Storage'), iconCls: 'icon-move', - handler: deluge.menus.onTorrentAction, + handler: deluge.menus.onTorrentActionShow, scope: deluge.menus }] });