add torrents to be added to the grid before their info has been
retrieved with a url or filename in place of the torrent name
This commit is contained in:
parent
2ac545dec6
commit
858291517e
|
@ -65,14 +65,21 @@ Ext.deluge.add.FileWindow = Ext.extend(Ext.deluge.add.Window, {
|
||||||
|
|
||||||
onAdd: function(field, e) {
|
onAdd: function(field, e) {
|
||||||
if (this.form.getForm().isValid()) {
|
if (this.form.getForm().isValid()) {
|
||||||
|
this.torrentId = this.createTorrentId();
|
||||||
this.form.getForm().submit({
|
this.form.getForm().submit({
|
||||||
url: '/upload',
|
url: '/upload',
|
||||||
waitMsg: _('Uploading your torrent...'),
|
waitMsg: _('Uploading your torrent...'),
|
||||||
success: this.onUploadSuccess,
|
success: this.onUploadSuccess,
|
||||||
scope: this
|
scope: this
|
||||||
});
|
});
|
||||||
|
var name = this.form.getForm().findField('torrentFile').value;
|
||||||
|
this.fireEvent('beforeadd', this.torrentId, name);
|
||||||
}
|
}
|
||||||
this.fireEvent('beforeadd', null);
|
},
|
||||||
|
|
||||||
|
onGotInfo: function(info, obj, response, request) {
|
||||||
|
info['filename'] = request.options.filename;
|
||||||
|
this.fireEvent('add', this.torrentId, info);
|
||||||
},
|
},
|
||||||
|
|
||||||
onUploadSuccess: function(fp, upload) {
|
onUploadSuccess: function(fp, upload) {
|
||||||
|
@ -84,10 +91,5 @@ Ext.deluge.add.FileWindow = Ext.extend(Ext.deluge.add.Window, {
|
||||||
scope: this,
|
scope: this,
|
||||||
filename: filename
|
filename: filename
|
||||||
});
|
});
|
||||||
},
|
|
||||||
|
|
||||||
onGotInfo: function(info, obj, response, request) {
|
|
||||||
info['filename'] = request.options.filename;
|
|
||||||
this.fireEvent('add', info);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
|
@ -70,26 +70,29 @@ Ext.deluge.add.UrlWindow = Ext.extend(Ext.deluge.add.Window, {
|
||||||
|
|
||||||
var field = this.form.items.get('url');
|
var field = this.form.items.get('url');
|
||||||
var url = field.getValue();
|
var url = field.getValue();
|
||||||
|
var torrentId = this.createTorrentId();
|
||||||
|
|
||||||
Deluge.Client.web.download_torrent_from_url(url, {
|
Deluge.Client.web.download_torrent_from_url(url, {
|
||||||
success: this.onDownload,
|
success: this.onDownload,
|
||||||
scope: this
|
scope: this,
|
||||||
|
torrentId: torrentId
|
||||||
});
|
});
|
||||||
this.hide();
|
this.hide();
|
||||||
this.fireEvent('beforeadd', url);
|
this.fireEvent('beforeadd', torrentId, url);
|
||||||
},
|
},
|
||||||
|
|
||||||
onDownload: function(filename) {
|
onDownload: function(filename, obj, resp, req) {
|
||||||
this.form.items.get('url').setValue('');
|
this.form.items.get('url').setValue('');
|
||||||
Deluge.Client.web.get_torrent_info(filename, {
|
Deluge.Client.web.get_torrent_info(filename, {
|
||||||
success: this.onGotInfo,
|
success: this.onGotInfo,
|
||||||
scope: this,
|
scope: this,
|
||||||
filename: filename
|
filename: filename,
|
||||||
|
torrentId: req.options.torrentId
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
onGotInfo: function(info, obj, response, request) {
|
onGotInfo: function(info, obj, response, request) {
|
||||||
info['filename'] = request.options.filename;
|
info['filename'] = request.options.filename;
|
||||||
this.fireEvent('add', info);
|
this.fireEvent('add', request.options.torrentId, info);
|
||||||
}
|
}
|
||||||
});
|
});
|
|
@ -62,6 +62,30 @@ Ext.deluge.add.OptionsPanel = Ext.extend(Ext.TabPanel, {
|
||||||
new Ext.tree.TreeSorter(this.files, {
|
new Ext.tree.TreeSorter(this.files, {
|
||||||
folderSort: true
|
folderSort: true
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.form = this.add({
|
||||||
|
xtype: 'form',
|
||||||
|
labelWidth: 1,
|
||||||
|
frame: false,
|
||||||
|
title: _('Options'),
|
||||||
|
bodyStyle: 'padding: 5px;',
|
||||||
|
border: false,
|
||||||
|
|
||||||
|
|
||||||
|
items: [{
|
||||||
|
xtype: 'fieldset',
|
||||||
|
title: _('Download Location'),
|
||||||
|
border: false,
|
||||||
|
defaultType: 'textfield',
|
||||||
|
labelWidth: 1,
|
||||||
|
items: [{
|
||||||
|
fieldLabel: '',
|
||||||
|
labelSeperator: '',
|
||||||
|
name: 'download_location',
|
||||||
|
width: 330
|
||||||
|
}]
|
||||||
|
}]
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
clear: function() {
|
clear: function() {
|
||||||
|
@ -89,13 +113,13 @@ Ext.deluge.add.OptionsPanel = Ext.extend(Ext.TabPanel, {
|
||||||
'prioritize_first_last_pieces'
|
'prioritize_first_last_pieces'
|
||||||
]
|
]
|
||||||
Deluge.Client.core.get_config_values(keys, {
|
Deluge.Client.core.get_config_values(keys, {
|
||||||
onSuccess: function(config) {
|
success: function(config) {
|
||||||
this.defaults = config;
|
this.defaults = config;
|
||||||
$each(config, function(value, key) {
|
for (var key in config) {
|
||||||
var field = this.form.findField(key);
|
var field = this.form.findField(key);
|
||||||
if (!field) return;
|
if (!field) return;
|
||||||
field.setValue(value);
|
field.setValue(config[key]);
|
||||||
}, this);
|
}
|
||||||
var field = this.form.findField('compact_allocation');
|
var field = this.form.findField('compact_allocation');
|
||||||
if (config['compact_allocation']) {
|
if (config['compact_allocation']) {
|
||||||
field.items.get('compact_allocation_true').setValue(true);
|
field.items.get('compact_allocation_true').setValue(true);
|
||||||
|
@ -104,7 +128,8 @@ Ext.deluge.add.OptionsPanel = Ext.extend(Ext.TabPanel, {
|
||||||
field.items.get('compact_allocation_false').setValue(true);
|
field.items.get('compact_allocation_false').setValue(true);
|
||||||
field.items.get('compact_allocation_true').setValue(false);
|
field.items.get('compact_allocation_true').setValue(false);
|
||||||
}
|
}
|
||||||
}.bindWithEvent(this)
|
},
|
||||||
|
scope: this
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -116,6 +141,10 @@ Ext.deluge.add.Window = Ext.extend(Ext.Window, {
|
||||||
'beforeadd',
|
'beforeadd',
|
||||||
'add'
|
'add'
|
||||||
);
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
createTorrentId: function() {
|
||||||
|
return new Date().getTime();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -145,19 +174,30 @@ Ext.deluge.add.AddWindow = Ext.extend(Ext.deluge.add.Window, {
|
||||||
this.addButton(_('Cancel'), this.onCancel, this);
|
this.addButton(_('Cancel'), this.onCancel, this);
|
||||||
this.addButton(_('Add'), this.onAdd, this);
|
this.addButton(_('Add'), this.onAdd, this);
|
||||||
|
|
||||||
|
function torrentRenderer(value, p, r) {
|
||||||
|
if (r.data['infohash']) {
|
||||||
|
return String.format('<div class="x-add-torrent-name">{0}</div>', value);
|
||||||
|
} else {
|
||||||
|
return String.format('<div class="x-add-torrent-name-loading">{0}</div>', value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.grid = this.add({
|
this.grid = this.add({
|
||||||
xtype: 'grid',
|
xtype: 'grid',
|
||||||
region: 'center',
|
region: 'center',
|
||||||
store: new Ext.data.SimpleStore({
|
store: new Ext.data.SimpleStore({
|
||||||
fields: [{name: 'torrent', mapping: 1}],
|
fields: [
|
||||||
|
{name: 'info_hash', mapping: 1},
|
||||||
|
{name: 'text', mapping: 2}
|
||||||
|
],
|
||||||
id: 0
|
id: 0
|
||||||
}),
|
}),
|
||||||
columns: [{
|
columns: [{
|
||||||
id: 'torrent',
|
id: 'torrent',
|
||||||
width: 150,
|
width: 150,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
renderer: fplain,
|
renderer: torrentRenderer,
|
||||||
dataIndex: 'torrent'
|
dataIndex: 'text'
|
||||||
}],
|
}],
|
||||||
stripeRows: true,
|
stripeRows: true,
|
||||||
selModel: new Ext.grid.RowSelectionModel({
|
selModel: new Ext.grid.RowSelectionModel({
|
||||||
|
@ -249,11 +289,11 @@ Ext.deluge.add.AddWindow = Ext.extend(Ext.deluge.add.Window, {
|
||||||
|
|
||||||
delete this.torrents[torrent.id];
|
delete this.torrents[torrent.id];
|
||||||
this.grid.getStore().remove(torrent);
|
this.grid.getStore().remove(torrent);
|
||||||
this.clearFiles();
|
this.options.clear();
|
||||||
},
|
},
|
||||||
|
|
||||||
onSelect: function(selModel, rowIndex, record) {
|
onSelect: function(selModel, rowIndex, record) {
|
||||||
var torrentInfo = this.torrents[record.id];
|
var torrentInfo = this.torrents[record.get('info_hash')];
|
||||||
|
|
||||||
function walk(files, parent) {
|
function walk(files, parent) {
|
||||||
for (var file in files) {
|
for (var file in files) {
|
||||||
|
@ -299,10 +339,12 @@ Ext.deluge.add.AddWindow = Ext.extend(Ext.deluge.add.Window, {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
onTorrentBeforeAdd: function(temptext) {
|
onTorrentBeforeAdd: function(torrentId, text) {
|
||||||
|
var store = this.grid.getStore();
|
||||||
|
store.loadData([[torrentId, null, text]], true);
|
||||||
},
|
},
|
||||||
|
|
||||||
onTorrentAdd: function(info) {
|
onTorrentAdd: function(torrentId, info) {
|
||||||
if (!info) {
|
if (!info) {
|
||||||
Ext.MessageBox.show({
|
Ext.MessageBox.show({
|
||||||
title: _('Error'),
|
title: _('Error'),
|
||||||
|
@ -314,7 +356,11 @@ Ext.deluge.add.AddWindow = Ext.extend(Ext.deluge.add.Window, {
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.grid.getStore().loadData([[info['info_hash'], info['name']]], true);
|
|
||||||
|
var r = this.grid.getStore().getById(torrentId);
|
||||||
|
r.set('info_hash', info['info_hash']);
|
||||||
|
r.set('text', info['name']);
|
||||||
|
this.grid.getStore().commitChanges();
|
||||||
this.torrents[info['info_hash']] = info;
|
this.torrents[info['info_hash']] = info;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -323,331 +369,3 @@ Ext.deluge.add.AddWindow = Ext.extend(Ext.deluge.add.Window, {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
Deluge.Add = new Ext.deluge.add.AddWindow();
|
Deluge.Add = new Ext.deluge.add.AddWindow();
|
||||||
|
|
||||||
/*Deluge.Add = {
|
|
||||||
onFile: function() {
|
|
||||||
this.File.Window.show();
|
|
||||||
},
|
|
||||||
|
|
||||||
onOptionsRender: function(panel) {
|
|
||||||
panel.layout = new Ext.layout.FormLayout();
|
|
||||||
panel.layout.setContainer(panel);
|
|
||||||
panel.doLayout();
|
|
||||||
this.form = panel.getForm();
|
|
||||||
this.getDefaults();
|
|
||||||
},
|
|
||||||
|
|
||||||
onRender: function(window) {
|
|
||||||
new Ext.tree.TreeSorter(this.Files, {
|
|
||||||
folderSort: true
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
onSelect: function(selModel, rowIndex, record) {
|
|
||||||
var torrentInfo = Deluge.Add.torrents[record.id];
|
|
||||||
|
|
||||||
function walk(files, parent) {
|
|
||||||
$each(files, function(item, file) {
|
|
||||||
if ($type(item) == 'object') {
|
|
||||||
var child = new Ext.tree.TreeNode({
|
|
||||||
text: file
|
|
||||||
});
|
|
||||||
walk(item, child);
|
|
||||||
parent.appendChild(child);
|
|
||||||
} else {
|
|
||||||
parent.appendChild(new Ext.tree.TreeNode({
|
|
||||||
filename: file,
|
|
||||||
text: file, // this needs to be here for sorting reasons
|
|
||||||
size: fsize(item[0]),
|
|
||||||
leaf: true,
|
|
||||||
checked: item[1],
|
|
||||||
iconCls: 'x-deluge-file',
|
|
||||||
uiProvider: Ext.tree.ColumnNodeUI
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
this.clearFiles();
|
|
||||||
|
|
||||||
var root = this.Files.getRootNode();
|
|
||||||
walk(torrentInfo['files_tree'], root);
|
|
||||||
root.firstChild.expand();
|
|
||||||
},
|
|
||||||
|
|
||||||
onTorrentAdded: function(info, filename) {
|
|
||||||
if (!info) {
|
|
||||||
Ext.MessageBox.show({
|
|
||||||
title: _('Error'),
|
|
||||||
msg: _('Not a valid torrent'),
|
|
||||||
buttons: Ext.MessageBox.OK,
|
|
||||||
modal: false,
|
|
||||||
icon: Ext.MessageBox.ERROR,
|
|
||||||
iconCls: 'x-deluge-icon-error'
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
info['filename'] = filename;
|
|
||||||
this.Store.loadData([[info['info_hash'], info['name']]], true);
|
|
||||||
this.torrents[info['info_hash']] = info;
|
|
||||||
},
|
|
||||||
|
|
||||||
onUrl: function(button, event) {
|
|
||||||
this.Url.Window.show();
|
|
||||||
},
|
|
||||||
|
|
||||||
onRemove: function() {
|
|
||||||
var selection = this.Grid.getSelectionModel();
|
|
||||||
if (!selection.hasSelection()) return;
|
|
||||||
var torrent = selection.getSelected();
|
|
||||||
|
|
||||||
delete this.torrents[torrent.id];
|
|
||||||
this.Store.remove(torrent);
|
|
||||||
this.clearFiles();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Deluge.Add.Options = new Ext.TabPanel({
|
|
||||||
region: 'south',
|
|
||||||
margins: '5 5 5 5',
|
|
||||||
activeTab: 0,
|
|
||||||
height: 220,
|
|
||||||
items: [{
|
|
||||||
id: 'addFilesTab',
|
|
||||||
title: _('Files'),
|
|
||||||
items: [Deluge.Add.Files]
|
|
||||||
},{
|
|
||||||
id: 'addOptionsTab',
|
|
||||||
title: _('Options'),
|
|
||||||
layout: 'fit',
|
|
||||||
items: [new Ext.form.FormPanel({
|
|
||||||
id: 'addOptionsForm',
|
|
||||||
bodyStyle: 'padding: 5px;',
|
|
||||||
border: false,
|
|
||||||
items: [{
|
|
||||||
xtype: 'fieldset',
|
|
||||||
style: 'padding: 0px; padding-top: 5px;',
|
|
||||||
title: _('Download Location'),
|
|
||||||
border: false,
|
|
||||||
autoHeight: true,
|
|
||||||
border: false,
|
|
||||||
labelWidth: 1,
|
|
||||||
items: [{
|
|
||||||
layout: 'column',
|
|
||||||
border: false,
|
|
||||||
items: [{
|
|
||||||
xtype: 'textfield',
|
|
||||||
id: 'download_location',
|
|
||||||
fieldLabel: '',
|
|
||||||
labelSeparator: '',
|
|
||||||
width: 330
|
|
||||||
}, {
|
|
||||||
border: false,
|
|
||||||
style: 'padding-left: 5px;',
|
|
||||||
items: [{
|
|
||||||
xtype: 'button',
|
|
||||||
text: _('Browse') + '...',
|
|
||||||
disabled: true
|
|
||||||
}]
|
|
||||||
}]
|
|
||||||
}]
|
|
||||||
}, {
|
|
||||||
layout: 'column',
|
|
||||||
border: false,
|
|
||||||
defaults: {
|
|
||||||
border: false
|
|
||||||
},
|
|
||||||
items: [{
|
|
||||||
xtype: 'fieldset',
|
|
||||||
bodyStyle: 'margin-left: 5px; margin-right:5px;',
|
|
||||||
title: _('Allocation'),
|
|
||||||
autoHeight: true,
|
|
||||||
border: false,
|
|
||||||
labelWidth: 1,
|
|
||||||
width: 100,
|
|
||||||
items: [new Ext.form.RadioGroup({
|
|
||||||
id: 'compact_allocation',
|
|
||||||
name: 'compact_allocation',
|
|
||||||
columns: 1,
|
|
||||||
labelSeparator: '',
|
|
||||||
items: [{
|
|
||||||
boxLabel: _('Full'),
|
|
||||||
inputValue: 'false',
|
|
||||||
id: 'compact_allocation_false',
|
|
||||||
name: 'compact_allocation',
|
|
||||||
checked: true
|
|
||||||
},{
|
|
||||||
boxLabel: _('Compact'),
|
|
||||||
inputValue: 'true',
|
|
||||||
id: 'compact_allocation_true',
|
|
||||||
name: 'compact_allocation'
|
|
||||||
}]
|
|
||||||
})]
|
|
||||||
}, {
|
|
||||||
xtype: 'fieldset',
|
|
||||||
title: _('Bandwidth'),
|
|
||||||
layout: 'form',
|
|
||||||
autoHeight: true,
|
|
||||||
defaultType: 'uxspinner',
|
|
||||||
labelWidth: 100,
|
|
||||||
items: [{
|
|
||||||
id: 'max_download_speed_per_torrent',
|
|
||||||
fieldLabel: _('Max Down Speed'),
|
|
||||||
width: 60,
|
|
||||||
value: -1,
|
|
||||||
strategy: new Ext.ux.form.Spinner.NumberStrategy({
|
|
||||||
minValue: -1,
|
|
||||||
maxValue: 99999,
|
|
||||||
incrementValue: 1
|
|
||||||
})
|
|
||||||
}, {
|
|
||||||
id: 'max_upload_speed_per_torrent',
|
|
||||||
fieldLabel: _('Max Up Speed'),
|
|
||||||
width: 60,
|
|
||||||
value: -1,
|
|
||||||
strategy: new Ext.ux.form.Spinner.NumberStrategy({
|
|
||||||
minValue: -1,
|
|
||||||
maxValue: 99999,
|
|
||||||
incrementValue: 1
|
|
||||||
})
|
|
||||||
}, {
|
|
||||||
id: 'max_connections_per_torrent',
|
|
||||||
fieldLabel: _('Max Connections'),
|
|
||||||
width: 60,
|
|
||||||
value: -1,
|
|
||||||
strategy: new Ext.ux.form.Spinner.NumberStrategy({
|
|
||||||
minValue: -1,
|
|
||||||
maxValue: 99999,
|
|
||||||
incrementValue: 1
|
|
||||||
})
|
|
||||||
}, {
|
|
||||||
id: 'max_upload_slots_per_torrent',
|
|
||||||
fieldLabel: _('Max Upload Slots'),
|
|
||||||
colspan: 2,
|
|
||||||
width: 60,
|
|
||||||
value: -1,
|
|
||||||
strategy: new Ext.ux.form.Spinner.NumberStrategy({
|
|
||||||
minValue: -1,
|
|
||||||
maxValue: 99999,
|
|
||||||
incrementValue: 1
|
|
||||||
})
|
|
||||||
}]
|
|
||||||
}, {
|
|
||||||
xtype: 'fieldset',
|
|
||||||
title: _('General'),
|
|
||||||
autoHeight: true,
|
|
||||||
border: false,
|
|
||||||
labelWidth: 10,
|
|
||||||
defaultType: 'checkbox',
|
|
||||||
items: [{
|
|
||||||
fieldLabel: '',
|
|
||||||
labelSeparator: '',
|
|
||||||
boxLabel: _('Add In Paused State'),
|
|
||||||
id: 'add_paused'
|
|
||||||
}, {
|
|
||||||
fieldLabel: '',
|
|
||||||
labelSeparator: '',
|
|
||||||
boxLabel: _('Prioritize First/Last Piece'),
|
|
||||||
id: 'prioritize_first_last_pieces'
|
|
||||||
}, {
|
|
||||||
xtype: 'button',
|
|
||||||
text: _('Apply to All'),
|
|
||||||
style: 'margin-left: 20px; margin-top: 5px;'
|
|
||||||
}, {
|
|
||||||
xtype: 'button',
|
|
||||||
text: _('Revert to Defaults'),
|
|
||||||
style: 'margin-left: 20px; margin-top: 5px;'
|
|
||||||
}]
|
|
||||||
}]
|
|
||||||
}],
|
|
||||||
listeners: {
|
|
||||||
'render': {
|
|
||||||
fn: Deluge.Add.onOptionsRender,
|
|
||||||
scope: Deluge.Add
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})]
|
|
||||||
}]
|
|
||||||
});
|
|
||||||
|
|
||||||
Deluge.Add.File = {
|
|
||||||
onAdd: function() {
|
|
||||||
if (this.form.getForm().isValid()) {
|
|
||||||
this.form.getForm().submit({
|
|
||||||
url: '/upload',
|
|
||||||
waitMsg: _('Uploading your torrent...'),
|
|
||||||
success: this.onUploadSuccess.bindWithEvent(this)
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
onUploadSuccess: function(fp, upload) {
|
|
||||||
this.Window.hide();
|
|
||||||
var filename = upload.result.toString();
|
|
||||||
this.form.items.get('torrentFile').setValue('');
|
|
||||||
Deluge.Client.web.get_torrent_info(filename, {
|
|
||||||
onSuccess: Deluge.Add.onTorrentAdded.bindWithEvent(Deluge.Add, filename)
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Deluge.Add.File.form = new Ext.form.FormPanel({
|
|
||||||
fileUpload: true,
|
|
||||||
id: 'fileAddForm',
|
|
||||||
baseCls: 'x-plain',
|
|
||||||
labelWidth: 55,
|
|
||||||
autoHeight: true,
|
|
||||||
items: [{
|
|
||||||
xtype: 'fileuploadfield',
|
|
||||||
id: 'torrentFile',
|
|
||||||
emptyText: _('Select a torrent'),
|
|
||||||
fieldLabel: _('File'),
|
|
||||||
name: 'file',
|
|
||||||
buttonCfg: {
|
|
||||||
text: _('Browse') + '...'
|
|
||||||
}
|
|
||||||
}]
|
|
||||||
});
|
|
||||||
|
|
||||||
Deluge.Add.File.Window = new Ext.Window({
|
|
||||||
layout: 'fit',
|
|
||||||
width: 350,
|
|
||||||
height: 115,
|
|
||||||
bodyStyle: 'padding: 10px 5px;',
|
|
||||||
buttonAlign: 'center',
|
|
||||||
closeAction: 'hide',
|
|
||||||
modal: true,
|
|
||||||
plain: true,
|
|
||||||
title: _('Add from File'),
|
|
||||||
iconCls: 'x-deluge-add-file',
|
|
||||||
items: Deluge.Add.File.form,
|
|
||||||
buttons: [{
|
|
||||||
text: _('Add'),
|
|
||||||
handler: Deluge.Add.File.onAdd,
|
|
||||||
scope: Deluge.Add.File
|
|
||||||
}]
|
|
||||||
});
|
|
||||||
|
|
||||||
Deluge.Add.Url = {
|
|
||||||
onAdd: function(field, e) {
|
|
||||||
if (field.id == 'url' && e.getKey() != e.ENTER) return;
|
|
||||||
|
|
||||||
var field = this.form.items.get('url');
|
|
||||||
var url = field.getValue();
|
|
||||||
|
|
||||||
Deluge.Client.web.download_torrent_from_url(url, {
|
|
||||||
onSuccess: this.onDownload.bindWithEvent(this)
|
|
||||||
});
|
|
||||||
this.Window.hide();
|
|
||||||
},
|
|
||||||
|
|
||||||
onDownload: function(filename) {
|
|
||||||
this.form.items.get('url').setValue('');
|
|
||||||
Deluge.Client.web.get_torrent_info(filename, {
|
|
||||||
onSuccess: Deluge.Add.onTorrentAdded.bindWithEvent(Deluge.Add, filename)
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Deluge.Add.Url.form = ;
|
|
||||||
*/
|
|
Loading…
Reference in New Issue