split out the add connection window into a seperate file

This commit is contained in:
Damien Churchill 2010-04-27 11:58:39 +01:00
parent 67e27b9b7a
commit dd82f95975
2 changed files with 126 additions and 110 deletions

View File

@ -0,0 +1,122 @@
/*!
* Deluge.AddConnectionWindow.js
*
* Copyright (c) Damien Churchill 2009-2010 <damoxc@gmail.com>
*
* 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.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,
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'),
name: 'host',
anchor: '75%',
value: ''
}, {
xtype: 'spinnerfield',
fieldLabel: _('Port'),
name: 'port',
strategy: {
xtype: 'number',
decimalPrecision: 0,
minValue: -1,
maxValue: 65535
},
value: '58846',
anchor: '40%'
}, {
fieldLabel: _('Username'),
name: 'username',
anchor: '75%',
value: ''
}, {
fieldLabel: _('Password'),
anchor: '75%',
name: 'password',
inputType: 'password',
value: ''
}]
});
},
onAddClick: function() {
var values = this.form.getForm().getValues();
deluge.client.web.add_host(values.host, values.port, values.username, values.password, {
success: function(result) {
if (!result[0]) {
Ext.MessageBox.show({
title: _('Error'),
msg: "Unable to add host: " + 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();
}
});

View File

@ -35,114 +35,6 @@
return value + ':' + r.data['port'] return value + ':' + r.data['port']
} }
Deluge.AddConnectionWindow = Ext.extend(Ext.Window, {
constructor: function(config) {
config = Ext.apply({
layout: 'fit',
width: 300,
height: 195,
bodyStyle: 'padding: 10px 5px;',
buttonAlign: 'right',
closeAction: 'hide',
closable: true,
plain: true,
title: _('Add Connection'),
iconCls: 'x-deluge-add-window-icon'
}, config);
Deluge.AddConnectionWindow.superclass.constructor.call(this, config);
},
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',
id: 'connectionAddForm',
baseCls: 'x-plain',
labelWidth: 55
});
this.hostField = this.form.add({
fieldLabel: _('Host'),
id: 'host',
name: 'host',
anchor: '100%',
value: ''
});
this.portField = this.form.add({
fieldLabel: _('Port'),
id: 'port',
xtype: 'spinnerfield',
name: 'port',
strategy: {
xtype: 'number',
decimalPrecision: 0,
minValue: -1,
maxValue: 65535
},
value: '58846',
anchor: '50%'
});
this.usernameField = this.form.add({
fieldLabel: _('Username'),
id: 'username',
name: 'username',
anchor: '100%',
value: ''
});
this.passwordField = this.form.add({
fieldLabel: _('Password'),
anchor: '100%',
id: '_password',
name: '_password',
inputType: 'password',
value: ''
});
},
onAddClick: function() {
var host = this.hostField.getValue();
var port = this.portField.getValue();
var username = this.usernameField.getValue();
var password = this.passwordField.getValue();
deluge.client.web.add_host(host, port, username, password, {
success: function(result) {
if (!result[0]) {
Ext.MessageBox.show({
title: _('Error'),
msg: "Unable to add host: " + 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();
}
});
Deluge.ConnectionManager = Ext.extend(Ext.Window, { Deluge.ConnectionManager = Ext.extend(Ext.Window, {
layout: 'fit', layout: 'fit',
@ -314,6 +206,7 @@
} }
}, },
// private
onAddClick: function(button, e) { onAddClick: function(button, e) {
if (!this.addWindow) { if (!this.addWindow) {
this.addWindow = new Deluge.AddConnectionWindow(); this.addWindow = new Deluge.AddConnectionWindow();
@ -322,6 +215,7 @@
this.addWindow.show(); this.addWindow.show();
}, },
// private
onHostAdded: function() { onHostAdded: function() {
this.loadHosts(); this.loadHosts();
}, },