ui: RemoteEdit: remove port field and parse it from host field
use our hostport regexes to parse out a potential port from the host field and send it individually this makes for a simpler and cleaner ui this additionally checks the field for valid input before sending it to the backend Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
parent
3784dbf029
commit
0f22f53b36
|
@ -45,18 +45,45 @@ Ext.define('PBS.window.RemoteEdit', {
|
||||||
{
|
{
|
||||||
xtype: 'proxmoxtextfield',
|
xtype: 'proxmoxtextfield',
|
||||||
allowBlank: false,
|
allowBlank: false,
|
||||||
name: 'host',
|
name: 'hostport',
|
||||||
|
submitValue: false,
|
||||||
|
vtype: 'HostPort',
|
||||||
fieldLabel: gettext('Host'),
|
fieldLabel: gettext('Host'),
|
||||||
|
listeners: {
|
||||||
|
change: function(field, newvalue) {
|
||||||
|
let host = newvalue;
|
||||||
|
let port;
|
||||||
|
|
||||||
|
let match = Proxmox.Utils.HostPort_match.exec(newvalue);
|
||||||
|
if (match === null) {
|
||||||
|
match = Proxmox.Utils.HostPortBrackets_match.exec(newvalue);
|
||||||
|
if (match === null) {
|
||||||
|
match = Proxmox.Utils.IP6_dotnotation_match.exec(newvalue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (match !== null) {
|
||||||
|
host = match[1];
|
||||||
|
if (match[2] !== undefined) {
|
||||||
|
port = match[2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
field.up('inputpanel').down('field[name=host]').setValue(host);
|
||||||
|
field.up('inputpanel').down('field[name=port]').setValue(port);
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
xtype: 'proxmoxintegerfield',
|
xtype: 'proxmoxtextfield',
|
||||||
allowBlank: true,
|
hidden: true,
|
||||||
minValue: 1,
|
name: 'host',
|
||||||
maxValue: 2**16,
|
},
|
||||||
name: 'port',
|
{
|
||||||
emptyText: 8007,
|
xtype: 'proxmoxtextfield',
|
||||||
|
hidden: true,
|
||||||
deleteEmpty: true,
|
deleteEmpty: true,
|
||||||
fieldLabel: gettext('Port'),
|
name: 'port',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
||||||
|
@ -95,6 +122,21 @@ Ext.define('PBS.window.RemoteEdit', {
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
||||||
|
setValues: function(values) {
|
||||||
|
let me = this;
|
||||||
|
|
||||||
|
let host = values.host;
|
||||||
|
if (values.port !== undefined) {
|
||||||
|
if (Proxmox.Utils.IP6_match.test(host)) {
|
||||||
|
host = `[${host}]`;
|
||||||
|
}
|
||||||
|
host += `:${values.port}`;
|
||||||
|
}
|
||||||
|
values.hostport = host;
|
||||||
|
|
||||||
|
return me.callParent([values]);
|
||||||
|
},
|
||||||
|
|
||||||
getValues: function() {
|
getValues: function() {
|
||||||
let me = this;
|
let me = this;
|
||||||
let values = me.callParent(arguments);
|
let values = me.callParent(arguments);
|
||||||
|
|
Loading…
Reference in New Issue