diff options
Diffstat (limited to '')
-rw-r--r-- | deluge/ui/web/js/deluge-all/AddConnectionWindow.js | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/deluge/ui/web/js/deluge-all/AddConnectionWindow.js b/deluge/ui/web/js/deluge-all/AddConnectionWindow.js new file mode 100644 index 0000000..6d26370 --- /dev/null +++ b/deluge/ui/web/js/deluge-all/AddConnectionWindow.js @@ -0,0 +1,117 @@ +/** + * Deluge.AddConnectionWindow.js + * + * Copyright (c) Damien Churchill 2009-2010 <damoxc@gmail.com> + * + * This file is part of Deluge and is licensed under GNU General Public License 3.0, or later, with + * the additional special exception to link portions of this program with the OpenSSL library. + * See LICENSE for more details. + */ +Ext.ns('Deluge'); + +/** + * @class Deluge.AddConnectionWindow + * @extends Ext.Window + */ +Deluge.AddConnectionWindow = Ext.extend(Ext.Window, { + title: _('Add Connection'), + iconCls: 'x-deluge-add-window-icon', + + layout: 'fit', + width: 300, + height: 195, + constrainHeader: true, + bodyStyle: 'padding: 10px 5px;', + closeAction: 'hide', + + initComponent: function() { + Deluge.AddConnectionWindow.superclass.initComponent.call(this); + + this.addEvents('hostadded'); + + this.addButton(_('Close'), this.hide, this); + this.addButton(_('Add'), this.onAddClick, this); + + this.on('hide', this.onHide, this); + + this.form = this.add({ + xtype: 'form', + defaultType: 'textfield', + baseCls: 'x-plain', + labelWidth: 60, + items: [ + { + fieldLabel: _('Host:'), + labelSeparator: '', + name: 'host', + anchor: '75%', + value: '', + }, + { + xtype: 'spinnerfield', + fieldLabel: _('Port:'), + labelSeparator: '', + name: 'port', + strategy: { + xtype: 'number', + decimalPrecision: 0, + minValue: -1, + maxValue: 65535, + }, + value: '58846', + anchor: '40%', + }, + { + fieldLabel: _('Username:'), + labelSeparator: '', + name: 'username', + anchor: '75%', + value: '', + }, + { + fieldLabel: _('Password:'), + labelSeparator: '', + anchor: '75%', + name: 'password', + inputType: 'password', + value: '', + }, + ], + }); + }, + + onAddClick: function() { + var values = this.form.getForm().getValues(); + deluge.client.web.add_host( + values.host, + Number(values.port), + values.username, + values.password, + { + success: function(result) { + if (!result[0]) { + Ext.MessageBox.show({ + title: _('Error'), + msg: String.format( + _('Unable to add host: {0}'), + result[1] + ), + buttons: Ext.MessageBox.OK, + modal: false, + icon: Ext.MessageBox.ERROR, + iconCls: 'x-deluge-icon-error', + }); + } else { + this.fireEvent('hostadded'); + } + this.hide(); + }, + scope: this, + } + ); + }, + + onHide: function() { + this.form.getForm().reset(); + }, +}); |