* [pbs-devel] [PATCH widget-toolkit/proxmox-backup] improve ipv6/ports for remotes gui
@ 2020-10-01 7:57 Dominik Csapak
2020-10-01 7:57 ` [pbs-devel] [PATCH widget-toolkit 1/2] Utils: improve matching groups of ip/host regexes Dominik Csapak
` (3 more replies)
0 siblings, 4 replies; 7+ messages in thread
From: Dominik Csapak @ 2020-10-01 7:57 UTC (permalink / raw)
To: pbs-devel
by using regex to parse out the port and only show it optionally
widget-toolkit:
Dominik Csapak (2):
Utils: improve matching groups of ip/host regexes
Toolkit: add HostPort vtype
src/Toolkit.js | 8 ++++++++
src/Utils.js | 8 ++++----
2 files changed, 12 insertions(+), 4 deletions(-)
proxmox-backup:
Dominik Csapak (2):
ui: RemoteView: improve host columns
ui: RemoteEdit: remove port field and parse it from host field
www/config/RemoteView.js | 11 +++++---
www/window/RemoteEdit.js | 58 ++++++++++++++++++++++++++++++++++------
2 files changed, 57 insertions(+), 12 deletions(-)
--
2.20.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [pbs-devel] [PATCH widget-toolkit 1/2] Utils: improve matching groups of ip/host regexes
2020-10-01 7:57 [pbs-devel] [PATCH widget-toolkit/proxmox-backup] improve ipv6/ports for remotes gui Dominik Csapak
@ 2020-10-01 7:57 ` Dominik Csapak
2020-10-01 8:10 ` [pbs-devel] applied: " Dietmar Maurer
2020-10-01 7:57 ` [pbs-devel] [PATCH widget-toolkit 2/2] Toolkit: add HostPort vtype Dominik Csapak
` (2 subsequent siblings)
3 siblings, 1 reply; 7+ messages in thread
From: Dominik Csapak @ 2020-10-01 7:57 UTC (permalink / raw)
To: pbs-devel
we only ever want to match the whole hostname/ip, never just some part of it
and we do not want to have the ':' as part of the port
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
src/Utils.js | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/Utils.js b/src/Utils.js
index 8595cce..232c97c 100644
--- a/src/Utils.js
+++ b/src/Utils.js
@@ -873,12 +873,12 @@ utilities: {
me.IP64_match = new RegExp("^(?:" + IPV6_REGEXP + "|" + IPV4_REGEXP + ")$");
me.IP64_cidr_match = new RegExp("^(?:" + IPV6_REGEXP + "/" + IPV6_CIDR_MASK + ")|(?:" + IPV4_REGEXP + "/" + IPV4_CIDR_MASK + ")$");
- let DnsName_REGEXP = "(?:(([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)\\.)*([A-Za-z0-9]([A-Za-z0-9\\-]*[A-Za-z0-9])?))";
+ let DnsName_REGEXP = "(?:(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9\\-]*[a-zA-Z0-9])?)\\.)*(?:[A-Za-z0-9](?:[A-Za-z0-9\\-]*[A-Za-z0-9])?))";
me.DnsName_match = new RegExp("^" + DnsName_REGEXP + "$");
- me.HostPort_match = new RegExp("^(" + IPV4_REGEXP + "|" + DnsName_REGEXP + ")(:\\d+)?$");
- me.HostPortBrackets_match = new RegExp("^\\[(?:" + IPV6_REGEXP + "|" + IPV4_REGEXP + "|" + DnsName_REGEXP + ")\\](:\\d+)?$");
- me.IP6_dotnotation_match = new RegExp("^" + IPV6_REGEXP + "(\\.\\d+)?$");
+ me.HostPort_match = new RegExp("^(" + IPV4_REGEXP + "|" + DnsName_REGEXP + ")(?::(\\d+))?$");
+ me.HostPortBrackets_match = new RegExp("^\\[(" + IPV6_REGEXP + "|" + IPV4_REGEXP + "|" + DnsName_REGEXP + ")\\](?::(\\d+))?$");
+ me.IP6_dotnotation_match = new RegExp("^(" + IPV6_REGEXP + ")(?:\\.(\\d+))?$");
me.Vlan_match = /^vlan(\\d+)/;
me.VlanInterface_match = /(\\w+)\\.(\\d+)/;
},
--
2.20.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [pbs-devel] [PATCH widget-toolkit 2/2] Toolkit: add HostPort vtype
2020-10-01 7:57 [pbs-devel] [PATCH widget-toolkit/proxmox-backup] improve ipv6/ports for remotes gui Dominik Csapak
2020-10-01 7:57 ` [pbs-devel] [PATCH widget-toolkit 1/2] Utils: improve matching groups of ip/host regexes Dominik Csapak
@ 2020-10-01 7:57 ` Dominik Csapak
2020-10-01 7:57 ` [pbs-devel] [PATCH proxmox-backup 1/2] ui: RemoteView: improve host columns Dominik Csapak
2020-10-01 7:57 ` [pbs-devel] [PATCH proxmox-backup 2/2] ui: RemoteEdit: remove port field and parse it from host field Dominik Csapak
3 siblings, 0 replies; 7+ messages in thread
From: Dominik Csapak @ 2020-10-01 7:57 UTC (permalink / raw)
To: pbs-devel
for easy checking textfield for a single host:port
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
src/Toolkit.js | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/Toolkit.js b/src/Toolkit.js
index d528ea7..f706036 100644
--- a/src/Toolkit.js
+++ b/src/Toolkit.js
@@ -147,6 +147,14 @@ Ext.apply(Ext.form.field.VTypes, {
},
DnsOrIpText: gettext('Not a valid DNS name or IP address.'),
+ HostPort: function(v) {
+ return Proxmox.Utils.HostPort_match.test(v) ||
+ Proxmox.Utils.HostPortBrackets_match.test(v) ||
+ Proxmox.Utils.IP6_dotnotation_match.test(v);
+ },
+
+ HostPortText: gettext('Not a valid hosts'),
+
HostList: function(v) {
let list = v.split(/[ ,;]+/);
let i;
--
2.20.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [pbs-devel] [PATCH proxmox-backup 1/2] ui: RemoteView: improve host columns
2020-10-01 7:57 [pbs-devel] [PATCH widget-toolkit/proxmox-backup] improve ipv6/ports for remotes gui Dominik Csapak
2020-10-01 7:57 ` [pbs-devel] [PATCH widget-toolkit 1/2] Utils: improve matching groups of ip/host regexes Dominik Csapak
2020-10-01 7:57 ` [pbs-devel] [PATCH widget-toolkit 2/2] Toolkit: add HostPort vtype Dominik Csapak
@ 2020-10-01 7:57 ` Dominik Csapak
2020-10-01 8:12 ` [pbs-devel] applied: " Dietmar Maurer
2020-10-01 7:57 ` [pbs-devel] [PATCH proxmox-backup 2/2] ui: RemoteEdit: remove port field and parse it from host field Dominik Csapak
3 siblings, 1 reply; 7+ messages in thread
From: Dominik Csapak @ 2020-10-01 7:57 UTC (permalink / raw)
To: pbs-devel
do not show the default (8007) port
and only add brackets [] to ipv6 addresses if there is a port
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
www/config/RemoteView.js | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/www/config/RemoteView.js b/www/config/RemoteView.js
index 96788fc7..98f72bb5 100644
--- a/www/config/RemoteView.js
+++ b/www/config/RemoteView.js
@@ -4,12 +4,15 @@ Ext.define('pmx-remotes', {
{
name: 'server',
calculate: function(data) {
- let host = data.host || "localhost";
+ let txt = data.host || "localhost";
let port = data.port || "8007";
- if (Proxmox.Utils.IP64_match.test(host)) {
- host = `[${host}]`;
+ if (port.toString() !== "8007") {
+ if (Proxmox.Utils.IP6_match.test(txt)) {
+ txt = `[${txt}]`;
+ }
+ txt += `:${port}`;
}
- return `${host}:${port}`;
+ return txt;
}
}
],
--
2.20.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [pbs-devel] [PATCH proxmox-backup 2/2] ui: RemoteEdit: remove port field and parse it from host field
2020-10-01 7:57 [pbs-devel] [PATCH widget-toolkit/proxmox-backup] improve ipv6/ports for remotes gui Dominik Csapak
` (2 preceding siblings ...)
2020-10-01 7:57 ` [pbs-devel] [PATCH proxmox-backup 1/2] ui: RemoteView: improve host columns Dominik Csapak
@ 2020-10-01 7:57 ` Dominik Csapak
3 siblings, 0 replies; 7+ messages in thread
From: Dominik Csapak @ 2020-10-01 7:57 UTC (permalink / raw)
To: pbs-devel
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>
---
www/window/RemoteEdit.js | 58 ++++++++++++++++++++++++++++++++++------
1 file changed, 50 insertions(+), 8 deletions(-)
diff --git a/www/window/RemoteEdit.js b/www/window/RemoteEdit.js
index 7d0ea546..bf5c11fc 100644
--- a/www/window/RemoteEdit.js
+++ b/www/window/RemoteEdit.js
@@ -45,18 +45,45 @@ Ext.define('PBS.window.RemoteEdit', {
{
xtype: 'proxmoxtextfield',
allowBlank: false,
- name: 'host',
+ name: 'hostport',
+ submitValue: false,
+ vtype: 'HostPort',
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',
- allowBlank: true,
- minValue: 1,
- maxValue: 2**16,
- name: 'port',
- emptyText: 8007,
+ xtype: 'proxmoxtextfield',
+ hidden: true,
+ name: 'host',
+ },
+ {
+ xtype: 'proxmoxtextfield',
+ hidden: 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() {
let me = this;
let values = me.callParent(arguments);
--
2.20.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [pbs-devel] applied: [PATCH widget-toolkit 1/2] Utils: improve matching groups of ip/host regexes
2020-10-01 7:57 ` [pbs-devel] [PATCH widget-toolkit 1/2] Utils: improve matching groups of ip/host regexes Dominik Csapak
@ 2020-10-01 8:10 ` Dietmar Maurer
0 siblings, 0 replies; 7+ messages in thread
From: Dietmar Maurer @ 2020-10-01 8:10 UTC (permalink / raw)
To: Proxmox Backup Server development discussion, Dominik Csapak
applied both patches
^ permalink raw reply [flat|nested] 7+ messages in thread
* [pbs-devel] applied: [PATCH proxmox-backup 1/2] ui: RemoteView: improve host columns
2020-10-01 7:57 ` [pbs-devel] [PATCH proxmox-backup 1/2] ui: RemoteView: improve host columns Dominik Csapak
@ 2020-10-01 8:12 ` Dietmar Maurer
0 siblings, 0 replies; 7+ messages in thread
From: Dietmar Maurer @ 2020-10-01 8:12 UTC (permalink / raw)
To: Proxmox Backup Server development discussion, Dominik Csapak
applied both patches
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2020-10-01 8:13 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-01 7:57 [pbs-devel] [PATCH widget-toolkit/proxmox-backup] improve ipv6/ports for remotes gui Dominik Csapak
2020-10-01 7:57 ` [pbs-devel] [PATCH widget-toolkit 1/2] Utils: improve matching groups of ip/host regexes Dominik Csapak
2020-10-01 8:10 ` [pbs-devel] applied: " Dietmar Maurer
2020-10-01 7:57 ` [pbs-devel] [PATCH widget-toolkit 2/2] Toolkit: add HostPort vtype Dominik Csapak
2020-10-01 7:57 ` [pbs-devel] [PATCH proxmox-backup 1/2] ui: RemoteView: improve host columns Dominik Csapak
2020-10-01 8:12 ` [pbs-devel] applied: " Dietmar Maurer
2020-10-01 7:57 ` [pbs-devel] [PATCH proxmox-backup 2/2] ui: RemoteEdit: remove port field and parse it from host field Dominik Csapak
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox