diff --git a/deluge/ui/web/js/Deluge.Menus.js b/deluge/ui/web/js/Deluge.Menus.js index b4a3305d0..e55cf5eb9 100644 --- a/deluge/ui/web/js/Deluge.Menus.js +++ b/deluge/ui/web/js/Deluge.Menus.js @@ -79,6 +79,9 @@ Deluge.Menus = { } }); break; + case 'move': + Deluge.MoveStorage.show(ids); + break; } } } @@ -234,12 +237,12 @@ Deluge.Menus.Torrent = new Ext.menu.Menu({ icon: '/icons/recheck.png', handler: Deluge.Menus.onTorrentAction, scope: Deluge.Menus - /*}, { + }, { id: 'move', text: _('Move Storage'), icon: '/icons/move.png', handler: Deluge.Menus.onTorrentAction, - scope: Deluge.Menus*/ + scope: Deluge.Menus }] }); @@ -436,4 +439,4 @@ function onLimitChanged(item, checked) { } }); } -} \ No newline at end of file +} diff --git a/deluge/ui/web/js/Deluge.MoveStorage.js b/deluge/ui/web/js/Deluge.MoveStorage.js new file mode 100644 index 000000000..df6a30a47 --- /dev/null +++ b/deluge/ui/web/js/Deluge.MoveStorage.js @@ -0,0 +1,94 @@ +/* +Script: Deluge.MoveStorage.js + Contains the move storage window. + +Copyright: + (C) Damien Churchill 2009 + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, write to: + The Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor + Boston, MA 02110-1301, USA. + + In addition, as a special exception, the copyright holders give + permission to link the code of portions of this program with the OpenSSL + library. + You must obey the GNU General Public License in all respects for all of + the code used other than OpenSSL. If you modify file(s) with this + exception, you may extend this exception to your version of the file(s), + but you are not obligated to do so. If you do not wish to do so, delete + this exception statement from your version. If you delete this exception + statement from all source files in the program, then also delete it here. +*/ + +Ext.namespace('Ext.deluge'); +Ext.deluge.MoveStorage = Ext.extend(Ext.Window, { + + constructor: function(config) { + config = Ext.apply({ + title: _('Move Storage'), + width: 375, + height: 110, + layout: 'fit', + buttonAlign: 'right', + closeAction: 'hide', + closable: true, + iconCls: 'x-deluge-move-storage', + plain: true, + resizable: false + }, config); + Ext.deluge.MoveStorage.superclass.constructor.call(this, config); + }, + + initComponent: function() { + Ext.deluge.MoveStorage.superclass.initComponent.call(this); + + this.addButton(_('Cancel'), this.onCancel, this); + this.addButton(_('Move'), this.onMove, this); + + this.form = this.add({ + xtype: 'form', + border: false, + defaultType: 'textfield', + width: 300, + bodyStyle: 'padding: 5px' + }); + + this.moveLocation = this.form.add({ + fieldLabel: _('Location'), + name: 'location', + width: 240 + }); + }, + + hide: function() { + Ext.deluge.MoveStorage.superclass.hide.call(this); + this.torrentIds = null; + }, + + show: function(torrentIds) { + Ext.deluge.MoveStorage.superclass.show.call(this); + this.torrentIds = torrentIds; + }, + + onCancel: function() { + this.hide(); + }, + + onMove: function() { + var dest = this.moveLocation.getValue(); + Deluge.Client.core.move_storage(this.torrentIds, dest); + this.hide(); + } +}); +Deluge.MoveStorage = new Ext.deluge.MoveStorage(); diff --git a/deluge/ui/web/js/build.sh b/deluge/ui/web/js/build.sh index fa8053f44..1083205db 100755 --- a/deluge/ui/web/js/build.sh +++ b/deluge/ui/web/js/build.sh @@ -1,4 +1,4 @@ -DELUGE_FILES="Deluge.js Deluge.Formatters.js Deluge.Menus.js Deluge.Events.js Deluge.OptionsManager.js Deluge.MultiOptionsManager.js Deluge.Add.js Deluge.Add.File.js Deluge.Add.Url.js Deluge.Client.js Deluge.ConnectionManager.js Deluge.Details.js Deluge.Details.Status.js Deluge.Details.Details.js Deluge.Details.Files.js Deluge.Details.Peers.js Deluge.Details.Options.js Deluge.EditTrackers.js Deluge.Keys.js Deluge.Login.js Deluge.Plugin.js Deluge.Preferences.js Deluge.Preferences.Downloads.js Deluge.Preferences.Network.js Deluge.Preferences.Encryption.js Deluge.Preferences.Bandwidth.js Deluge.Preferences.Interface.js Deluge.Preferences.Other.js Deluge.Preferences.Daemon.js Deluge.Preferences.Queue.js Deluge.Preferences.Proxy.js Deluge.Preferences.Notification.js Deluge.Preferences.Cache.js Deluge.Preferences.Plugins.js Deluge.Remove.js Deluge.Sidebar.js Deluge.Statusbar.js Deluge.Toolbar.js Deluge.Torrents.js Deluge.UI.js" +DELUGE_FILES="Deluge.js Deluge.Formatters.js Deluge.Menus.js Deluge.Events.js Deluge.OptionsManager.js Deluge.MultiOptionsManager.js Deluge.Add.js Deluge.Add.File.js Deluge.Add.Url.js Deluge.Client.js Deluge.ConnectionManager.js Deluge.Details.js Deluge.Details.Status.js Deluge.Details.Details.js Deluge.Details.Files.js Deluge.Details.Peers.js Deluge.Details.Options.js Deluge.EditTrackers.js Deluge.Keys.js Deluge.Login.js Deluge.MoveStorage.js Deluge.Plugin.js Deluge.Preferences.js Deluge.Preferences.Downloads.js Deluge.Preferences.Network.js Deluge.Preferences.Encryption.js Deluge.Preferences.Bandwidth.js Deluge.Preferences.Interface.js Deluge.Preferences.Other.js Deluge.Preferences.Daemon.js Deluge.Preferences.Queue.js Deluge.Preferences.Proxy.js Deluge.Preferences.Notification.js Deluge.Preferences.Cache.js Deluge.Preferences.Plugins.js Deluge.Remove.js Deluge.Sidebar.js Deluge.Statusbar.js Deluge.Toolbar.js Deluge.Torrents.js Deluge.UI.js" ALL_FILES="ext-extensions-debug.js $DELUGE_FILES" [ -e /usr/bin/jsdoc_toolkit ] && JSDOC="/usr/bin/jsdoc_toolkit" diff --git a/deluge/ui/web/server.py b/deluge/ui/web/server.py index 260d9b9ad..67b7a8426 100644 --- a/deluge/ui/web/server.py +++ b/deluge/ui/web/server.py @@ -332,6 +332,7 @@ class TopLevel(resource.Resource): "/js/Deluge.EditTrackers.js", "/js/Deluge.Keys.js", "/js/Deluge.Login.js", + "/js/Deluge.MoveStorage.js", "/js/Deluge.Plugin.js", "/js/Deluge.Preferences.js", "/js/Deluge.Preferences.Downloads.js",