update the proxyfield comboboxes and switch some simplestores to arraystores
This commit is contained in:
parent
8414b9cfa9
commit
9f185da446
|
@ -57,7 +57,7 @@ Deluge.preferences.Encryption = Ext.extend(Ext.form.FormPanel, {
|
|||
fieldLabel: _('Inbound'),
|
||||
mode: 'local',
|
||||
width: 150,
|
||||
store: new Ext.data.SimpleStore({
|
||||
store: new Ext.data.ArrayStore({
|
||||
fields: ['id', 'text'],
|
||||
data: [
|
||||
[0, _('Forced')],
|
||||
|
|
|
@ -15,9 +15,9 @@
|
|||
*
|
||||
* 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.
|
||||
* 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
|
||||
|
@ -37,134 +37,133 @@ Ext.ns('Deluge.preferences');
|
|||
*/
|
||||
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);
|
||||
},
|
||||
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
|
||||
});
|
||||
initComponent: function() {
|
||||
Deluge.preferences.ProxyField.superclass.initComponent.call(this);
|
||||
this.proxyType = this.add({
|
||||
xtype: 'combo',
|
||||
fieldLabel: _('Type'),
|
||||
name: 'proxytype',
|
||||
mode: 'local',
|
||||
width: 150,
|
||||
store: new Ext.data.ArrayStore({
|
||||
fields: ['id', 'text'],
|
||||
data: [
|
||||
[0, _('None')],
|
||||
[1, _('Socksv4')],
|
||||
[2, _('Socksv5')],
|
||||
[3, _('Socksv5 with Auth')],
|
||||
[4, _('HTTP')],
|
||||
[5, _('HTTP with Auth')]
|
||||
]
|
||||
}),
|
||||
editable: false,
|
||||
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.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.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.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;
|
||||
},
|
||||
this.proxyType.on('change', this.onFieldChange, this);
|
||||
this.proxyType.on('select', this.onTypeSelect, this);
|
||||
this.setting = false;
|
||||
},
|
||||
|
||||
getName: function() {
|
||||
return this.initialConfig.name;
|
||||
},
|
||||
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()
|
||||
}
|
||||
},
|
||||
getValue: function() {
|
||||
return {
|
||||
'type': this.proxyType.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);
|
||||
// Set the values of the proxies
|
||||
setValue: function(value) {
|
||||
this.setting = true;
|
||||
this.proxyType.setValue(value['type']);
|
||||
var index = this.proxyType.getStore().find('id', value['type']);
|
||||
var record = this.proxyType.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;
|
||||
},
|
||||
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;
|
||||
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);
|
||||
},
|
||||
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();
|
||||
}
|
||||
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();
|
||||
}
|
||||
}
|
||||
if (typeId == 3 || typeId == 5) {
|
||||
this.username.show();
|
||||
this.password.show();
|
||||
} else {
|
||||
this.username.hide();
|
||||
this.password.hide();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in New Issue