split out the ProxyField to a seperate file
This commit is contained in:
parent
c430ef9a84
commit
c987b74d61
|
@ -0,0 +1,170 @@
|
||||||
|
/*!
|
||||||
|
* Deluge.preferences.ProxyField.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.preferences');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @class Deluge.preferences.ProxyField
|
||||||
|
* @extends Ext.form.FieldSet
|
||||||
|
*/
|
||||||
|
Deluge.preferences.ProxyField = Ext.extend(Ext.form.FieldSet, {
|
||||||
|
|
||||||
|
constructor: function(config) {
|
||||||
|
config = Ext.apply({
|
||||||
|
border: false,
|
||||||
|
autoHeight: true,
|
||||||
|
labelWidth: 70
|
||||||
|
}, config);
|
||||||
|
Deluge.preferences.ProxyField.superclass.constructor.call(this, config);
|
||||||
|
},
|
||||||
|
|
||||||
|
initComponent: function() {
|
||||||
|
Deluge.preferences.ProxyField.superclass.initComponent.call(this);
|
||||||
|
this.type = this.add({
|
||||||
|
xtype: 'combo',
|
||||||
|
fieldLabel: _('Type'),
|
||||||
|
name: 'type',
|
||||||
|
mode: 'local',
|
||||||
|
width: 150,
|
||||||
|
store: new Ext.data.SimpleStore({
|
||||||
|
fields: ['id', 'text'],
|
||||||
|
data: [
|
||||||
|
[0, _('None')],
|
||||||
|
[1, _('Socksv4')],
|
||||||
|
[2, _('Socksv5')],
|
||||||
|
[3, _('Socksv5 with Auth')],
|
||||||
|
[4, _('HTTP')],
|
||||||
|
[5, _('HTTP with Auth')],
|
||||||
|
]
|
||||||
|
}),
|
||||||
|
value: 0,
|
||||||
|
triggerAction: 'all',
|
||||||
|
valueField: 'id',
|
||||||
|
displayField: 'text'
|
||||||
|
})
|
||||||
|
this.hostname = this.add({
|
||||||
|
xtype: 'textfield',
|
||||||
|
name: 'hostname',
|
||||||
|
fieldLabel: _('Host'),
|
||||||
|
width: 220
|
||||||
|
});
|
||||||
|
|
||||||
|
this.port = this.add({
|
||||||
|
xtype: 'spinnerfield',
|
||||||
|
name: 'port',
|
||||||
|
fieldLabel: _('Port'),
|
||||||
|
width: 80,
|
||||||
|
strategy: {
|
||||||
|
xtype: 'number',
|
||||||
|
decimalPrecision: 0,
|
||||||
|
minValue: -1,
|
||||||
|
maxValue: 99999
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
this.username = this.add({
|
||||||
|
xtype: 'textfield',
|
||||||
|
name: 'username',
|
||||||
|
fieldLabel: _('Username'),
|
||||||
|
width: 220
|
||||||
|
});
|
||||||
|
|
||||||
|
this.password = this.add({
|
||||||
|
xtype: 'textfield',
|
||||||
|
name: 'password',
|
||||||
|
fieldLabel: _('Password'),
|
||||||
|
inputType: 'password',
|
||||||
|
width: 220
|
||||||
|
});
|
||||||
|
|
||||||
|
this.type.on('change', this.onFieldChange, this);
|
||||||
|
this.type.on('select', this.onTypeSelect, this);
|
||||||
|
this.setting = false;
|
||||||
|
},
|
||||||
|
|
||||||
|
getName: function() {
|
||||||
|
return this.initialConfig.name;
|
||||||
|
},
|
||||||
|
|
||||||
|
getValue: function() {
|
||||||
|
return {
|
||||||
|
'type': this.type.getValue(),
|
||||||
|
'hostname': this.hostname.getValue(),
|
||||||
|
'port': Number(this.port.getValue()),
|
||||||
|
'username': this.username.getValue(),
|
||||||
|
'password': this.password.getValue()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// Set the values of the proxies
|
||||||
|
setValue: function(value) {
|
||||||
|
this.setting = true;
|
||||||
|
this.type.setValue(value['type']);
|
||||||
|
var index = this.type.getStore().find('id', value['type']);
|
||||||
|
var record = this.type.getStore().getAt(index);
|
||||||
|
|
||||||
|
this.hostname.setValue(value['hostname']);
|
||||||
|
this.port.setValue(value['port']);
|
||||||
|
this.username.setValue(value['username']);
|
||||||
|
this.password.setValue(value['password']);
|
||||||
|
this.onTypeSelect(this.type, record, index);
|
||||||
|
this.setting = false;
|
||||||
|
},
|
||||||
|
|
||||||
|
onFieldChange: function(field, newValue, oldValue) {
|
||||||
|
if (this.setting) return;
|
||||||
|
var newValues = this.getValue();
|
||||||
|
var oldValues = Ext.apply({}, newValues);
|
||||||
|
oldValues[field.getName()] = oldValue;
|
||||||
|
|
||||||
|
this.fireEvent('change', this, newValues, oldValues);
|
||||||
|
},
|
||||||
|
|
||||||
|
onTypeSelect: function(combo, record, index) {
|
||||||
|
var typeId = record.get('id');
|
||||||
|
if (typeId > 0) {
|
||||||
|
this.hostname.show();
|
||||||
|
this.port.show();
|
||||||
|
} else {
|
||||||
|
this.hostname.hide();
|
||||||
|
this.port.hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeId == 3 || typeId == 5) {
|
||||||
|
this.username.show();
|
||||||
|
this.password.show();
|
||||||
|
} else {
|
||||||
|
this.username.hide();
|
||||||
|
this.password.hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
|
@ -33,143 +33,6 @@ Copyright:
|
||||||
|
|
||||||
Ext.namespace('Deluge.preferences');
|
Ext.namespace('Deluge.preferences');
|
||||||
|
|
||||||
/**
|
|
||||||
* @class Deluge.preferences.ProxyField
|
|
||||||
* @extends Ext.form.FormSet
|
|
||||||
*/
|
|
||||||
Deluge.preferences.ProxyField = Ext.extend(Ext.form.FieldSet, {
|
|
||||||
|
|
||||||
constructor: function(config) {
|
|
||||||
config = Ext.apply({
|
|
||||||
border: false,
|
|
||||||
autoHeight: true,
|
|
||||||
labelWidth: 70
|
|
||||||
}, config);
|
|
||||||
Deluge.preferences.ProxyField.superclass.constructor.call(this, config);
|
|
||||||
},
|
|
||||||
|
|
||||||
initComponent: function() {
|
|
||||||
Deluge.preferences.ProxyField.superclass.initComponent.call(this);
|
|
||||||
this.type = this.add({
|
|
||||||
xtype: 'combo',
|
|
||||||
fieldLabel: _('Type'),
|
|
||||||
name: 'type',
|
|
||||||
mode: 'local',
|
|
||||||
width: 150,
|
|
||||||
store: new Ext.data.SimpleStore({
|
|
||||||
fields: ['id', 'text'],
|
|
||||||
data: [
|
|
||||||
[0, _('None')],
|
|
||||||
[1, _('Socksv4')],
|
|
||||||
[2, _('Socksv5')],
|
|
||||||
[3, _('Socksv5 with Auth')],
|
|
||||||
[4, _('HTTP')],
|
|
||||||
[5, _('HTTP with Auth')],
|
|
||||||
]
|
|
||||||
}),
|
|
||||||
value: 0,
|
|
||||||
triggerAction: 'all',
|
|
||||||
valueField: 'id',
|
|
||||||
displayField: 'text'
|
|
||||||
})
|
|
||||||
this.hostname = this.add({
|
|
||||||
xtype: 'textfield',
|
|
||||||
name: 'hostname',
|
|
||||||
fieldLabel: _('Host'),
|
|
||||||
width: 220
|
|
||||||
});
|
|
||||||
|
|
||||||
this.port = this.add({
|
|
||||||
xtype: 'spinnerfield',
|
|
||||||
name: 'port',
|
|
||||||
fieldLabel: _('Port'),
|
|
||||||
width: 80,
|
|
||||||
strategy: {
|
|
||||||
xtype: 'number',
|
|
||||||
decimalPrecision: 0,
|
|
||||||
minValue: -1,
|
|
||||||
maxValue: 99999
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
this.username = this.add({
|
|
||||||
xtype: 'textfield',
|
|
||||||
name: 'username',
|
|
||||||
fieldLabel: _('Username'),
|
|
||||||
width: 220
|
|
||||||
});
|
|
||||||
|
|
||||||
this.password = this.add({
|
|
||||||
xtype: 'textfield',
|
|
||||||
name: 'password',
|
|
||||||
fieldLabel: _('Password'),
|
|
||||||
inputType: 'password',
|
|
||||||
width: 220
|
|
||||||
});
|
|
||||||
|
|
||||||
this.type.on('change', this.onFieldChange, this);
|
|
||||||
this.type.on('select', this.onTypeSelect, this);
|
|
||||||
this.setting = false;
|
|
||||||
},
|
|
||||||
|
|
||||||
getName: function() {
|
|
||||||
return this.initialConfig.name;
|
|
||||||
},
|
|
||||||
|
|
||||||
getValue: function() {
|
|
||||||
return {
|
|
||||||
'type': this.type.getValue(),
|
|
||||||
'hostname': this.hostname.getValue(),
|
|
||||||
'port': Number(this.port.getValue()),
|
|
||||||
'username': this.username.getValue(),
|
|
||||||
'password': this.password.getValue()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
// Set the values of the proxies
|
|
||||||
setValue: function(value) {
|
|
||||||
this.setting = true;
|
|
||||||
this.type.setValue(value['type']);
|
|
||||||
var index = this.type.getStore().find('id', value['type']);
|
|
||||||
var record = this.type.getStore().getAt(index);
|
|
||||||
|
|
||||||
this.hostname.setValue(value['hostname']);
|
|
||||||
this.port.setValue(value['port']);
|
|
||||||
this.username.setValue(value['username']);
|
|
||||||
this.password.setValue(value['password']);
|
|
||||||
this.onTypeSelect(this.type, record, index);
|
|
||||||
this.setting = false;
|
|
||||||
},
|
|
||||||
|
|
||||||
onFieldChange: function(field, newValue, oldValue) {
|
|
||||||
if (this.setting) return;
|
|
||||||
var newValues = this.getValue();
|
|
||||||
var oldValues = Ext.apply({}, newValues);
|
|
||||||
oldValues[field.getName()] = oldValue;
|
|
||||||
|
|
||||||
this.fireEvent('change', this, newValues, oldValues);
|
|
||||||
},
|
|
||||||
|
|
||||||
onTypeSelect: function(combo, record, index) {
|
|
||||||
var typeId = record.get('id');
|
|
||||||
if (typeId > 0) {
|
|
||||||
this.hostname.show();
|
|
||||||
this.port.show();
|
|
||||||
} else {
|
|
||||||
this.hostname.hide();
|
|
||||||
this.port.hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeId == 3 || typeId == 5) {
|
|
||||||
this.username.show();
|
|
||||||
this.password.show();
|
|
||||||
} else {
|
|
||||||
this.username.hide();
|
|
||||||
this.password.hide();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @class Deluge.preferences.Proxy
|
* @class Deluge.preferences.Proxy
|
||||||
* @extends Ext.form.FormPanel
|
* @extends Ext.form.FormPanel
|
||||||
|
|
Loading…
Reference in New Issue