mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-08-08 01:28:20 +00:00
rename IPSetSelector to IPRefSelector, and use it in IPSet
This commit is contained in:
parent
5a0a1cc4f5
commit
02a7f63ba5
@ -44,7 +44,7 @@ JSSRC= \
|
|||||||
form/StorageSelector.js \
|
form/StorageSelector.js \
|
||||||
form/BridgeSelector.js \
|
form/BridgeSelector.js \
|
||||||
form/SecurityGroupSelector.js \
|
form/SecurityGroupSelector.js \
|
||||||
form/IPSetSelector.js \
|
form/IPRefSelector.js \
|
||||||
form/IPProtocolSelector.js \
|
form/IPProtocolSelector.js \
|
||||||
form/CPUModelSelector.js \
|
form/CPUModelSelector.js \
|
||||||
form/VNCKeyboardSelector.js \
|
form/VNCKeyboardSelector.js \
|
||||||
|
@ -200,7 +200,7 @@ Ext.define('PVE.SecurityGroups', {
|
|||||||
var rule_panel = Ext.createWidget('pveFirewallRules', {
|
var rule_panel = Ext.createWidget('pveFirewallRules', {
|
||||||
region: 'center',
|
region: 'center',
|
||||||
allow_groups: false,
|
allow_groups: false,
|
||||||
ipset_base_url: '/cluster/firewall/refs',
|
list_refs_url: '/cluster/firewall/refs',
|
||||||
tbar_prefix: '<b>' + gettext('Rules') + ':</b>',
|
tbar_prefix: '<b>' + gettext('Rules') + ':</b>',
|
||||||
flex: 0.75,
|
flex: 0.75,
|
||||||
border: false
|
border: false
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
Ext.define('PVE.form.IPSetSelector', {
|
Ext.define('PVE.form.IPRefSelector', {
|
||||||
extend: 'PVE.form.ComboGrid',
|
extend: 'PVE.form.ComboGrid',
|
||||||
alias: ['widget.pveIPSetSelector'],
|
alias: ['widget.pveIPRefSelector'],
|
||||||
|
|
||||||
base_url: undefined,
|
base_url: undefined,
|
||||||
|
|
||||||
preferredValue: '', // hack: else Form sets dirty flag?
|
preferredValue: '', // hack: else Form sets dirty flag?
|
||||||
|
|
||||||
|
ref_type: undefined, // undefined = any [undefined, 'ipset' or 'alias']
|
||||||
|
|
||||||
initComponent: function() {
|
initComponent: function() {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
@ -13,13 +15,18 @@ Ext.define('PVE.form.IPSetSelector', {
|
|||||||
throw "no base_url specified";
|
throw "no base_url specified";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var url = "/api2/json" + me.base_url;
|
||||||
|
if (me.ref_type) {
|
||||||
|
url += "?type=" + me.ref_type;
|
||||||
|
}
|
||||||
|
|
||||||
var store = Ext.create('Ext.data.Store', {
|
var store = Ext.create('Ext.data.Store', {
|
||||||
autoLoad: true,
|
autoLoad: true,
|
||||||
fields: [ 'type', 'name', 'ref', 'comment' ],
|
fields: [ 'type', 'name', 'ref', 'comment' ],
|
||||||
idProperty: 'ref',
|
idProperty: 'ref',
|
||||||
proxy: {
|
proxy: {
|
||||||
type: 'pve',
|
type: 'pve',
|
||||||
url: "/api2/json" + me.base_url
|
url: url
|
||||||
},
|
},
|
||||||
sorters: {
|
sorters: {
|
||||||
property: 'ref',
|
property: 'ref',
|
||||||
@ -28,25 +35,26 @@ Ext.define('PVE.form.IPSetSelector', {
|
|||||||
});
|
});
|
||||||
|
|
||||||
var disable_query_for_ips = function(f, value) {
|
var disable_query_for_ips = function(f, value) {
|
||||||
if (value.match(/^\d/)) { // IP address starts with \d
|
if (value === null ||
|
||||||
|
value.match(/^\d/)) { // IP address starts with \d
|
||||||
f.queryDelay = 9999999999; // hack: disbale with long delay
|
f.queryDelay = 9999999999; // hack: disbale with long delay
|
||||||
} else {
|
} else {
|
||||||
f.queryDelay = 10;
|
f.queryDelay = 10;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Ext.apply(me, {
|
var columns = [];
|
||||||
store: store,
|
|
||||||
valueField: 'ref',
|
if (!me.ref_type) {
|
||||||
displayField: 'ref',
|
columns.push({
|
||||||
listConfig: {
|
|
||||||
columns: [
|
|
||||||
{
|
|
||||||
header: gettext('Type'),
|
header: gettext('Type'),
|
||||||
dataIndex: 'type',
|
dataIndex: 'type',
|
||||||
hideable: false,
|
hideable: false,
|
||||||
width: 60
|
width: 60
|
||||||
},
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
columns.push([
|
||||||
{
|
{
|
||||||
header: gettext('Name'),
|
header: gettext('Name'),
|
||||||
dataIndex: 'ref',
|
dataIndex: 'ref',
|
||||||
@ -58,8 +66,13 @@ Ext.define('PVE.form.IPSetSelector', {
|
|||||||
dataIndex: 'comment',
|
dataIndex: 'comment',
|
||||||
flex: 1
|
flex: 1
|
||||||
}
|
}
|
||||||
]
|
]);
|
||||||
}
|
|
||||||
|
Ext.apply(me, {
|
||||||
|
store: store,
|
||||||
|
valueField: 'ref',
|
||||||
|
displayField: 'ref',
|
||||||
|
listConfig: { columns: columns }
|
||||||
});
|
});
|
||||||
|
|
||||||
me.on('change', disable_query_for_ips);
|
me.on('change', disable_query_for_ips);
|
@ -51,7 +51,7 @@ Ext.define('PVE.FirewallRulePanel', {
|
|||||||
|
|
||||||
allow_iface: false,
|
allow_iface: false,
|
||||||
|
|
||||||
ipset_base_url: undefined,
|
list_refs_url: undefined,
|
||||||
|
|
||||||
onGetValues: function(values) {
|
onGetValues: function(values) {
|
||||||
var me = this;
|
var me = this;
|
||||||
@ -73,8 +73,8 @@ Ext.define('PVE.FirewallRulePanel', {
|
|||||||
initComponent : function() {
|
initComponent : function() {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
if (!me.ipset_base_url) {
|
if (!me.list_refs_url) {
|
||||||
throw "no ipset_base_url specified";
|
throw "no list_refs_url specified";
|
||||||
}
|
}
|
||||||
|
|
||||||
me.column1 = [
|
me.column1 = [
|
||||||
@ -129,21 +129,21 @@ Ext.define('PVE.FirewallRulePanel', {
|
|||||||
value: ''
|
value: ''
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
xtype: 'pveIPSetSelector',
|
xtype: 'pveIPRefSelector',
|
||||||
name: 'source',
|
name: 'source',
|
||||||
autoSelect: false,
|
autoSelect: false,
|
||||||
editable: true,
|
editable: true,
|
||||||
base_url: me.ipset_base_url,
|
base_url: me.list_refs_url,
|
||||||
value: '',
|
value: '',
|
||||||
fieldLabel: gettext('Source')
|
fieldLabel: gettext('Source')
|
||||||
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
xtype: 'pveIPSetSelector',
|
xtype: 'pveIPRefSelector',
|
||||||
name: 'dest',
|
name: 'dest',
|
||||||
autoSelect: false,
|
autoSelect: false,
|
||||||
editable: true,
|
editable: true,
|
||||||
base_url: me.ipset_base_url,
|
base_url: me.list_refs_url,
|
||||||
value: '',
|
value: '',
|
||||||
fieldLabel: gettext('Destination')
|
fieldLabel: gettext('Destination')
|
||||||
}
|
}
|
||||||
@ -228,7 +228,7 @@ Ext.define('PVE.FirewallRuleEdit', {
|
|||||||
extend: 'PVE.window.Edit',
|
extend: 'PVE.window.Edit',
|
||||||
|
|
||||||
base_url: undefined,
|
base_url: undefined,
|
||||||
ipset_base_url: undefined,
|
list_refs_url: undefined,
|
||||||
|
|
||||||
allow_iface: false,
|
allow_iface: false,
|
||||||
|
|
||||||
@ -239,8 +239,8 @@ Ext.define('PVE.FirewallRuleEdit', {
|
|||||||
if (!me.base_url) {
|
if (!me.base_url) {
|
||||||
throw "no base_url specified";
|
throw "no base_url specified";
|
||||||
}
|
}
|
||||||
if (!me.ipset_base_url) {
|
if (!me.list_refs_url) {
|
||||||
throw "no ipset_base_url specified";
|
throw "no list_refs_url specified";
|
||||||
}
|
}
|
||||||
|
|
||||||
me.create = (me.rule_pos === undefined);
|
me.create = (me.rule_pos === undefined);
|
||||||
@ -255,7 +255,7 @@ Ext.define('PVE.FirewallRuleEdit', {
|
|||||||
|
|
||||||
var ipanel = Ext.create('PVE.FirewallRulePanel', {
|
var ipanel = Ext.create('PVE.FirewallRulePanel', {
|
||||||
create: me.create,
|
create: me.create,
|
||||||
ipset_base_url: me.ipset_base_url,
|
list_refs_url: me.list_refs_url,
|
||||||
allow_iface: me.allow_iface,
|
allow_iface: me.allow_iface,
|
||||||
rule_pos: me.rule_pos
|
rule_pos: me.rule_pos
|
||||||
});
|
});
|
||||||
@ -380,7 +380,7 @@ Ext.define('PVE.FirewallRules', {
|
|||||||
alias: 'widget.pveFirewallRules',
|
alias: 'widget.pveFirewallRules',
|
||||||
|
|
||||||
base_url: undefined,
|
base_url: undefined,
|
||||||
ipset_base_url: undefined,
|
list_refs_url: undefined,
|
||||||
|
|
||||||
addBtn: undefined,
|
addBtn: undefined,
|
||||||
removeBtn: undefined,
|
removeBtn: undefined,
|
||||||
@ -490,8 +490,8 @@ Ext.define('PVE.FirewallRules', {
|
|||||||
/*jslint confusion: true */
|
/*jslint confusion: true */
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
if (!me.ipset_base_url) {
|
if (!me.list_refs_url) {
|
||||||
throw "no ipset_base_url specified";
|
throw "no list_refs_url specified";
|
||||||
}
|
}
|
||||||
|
|
||||||
var store = new Ext.data.Store({
|
var store = new Ext.data.Store({
|
||||||
@ -524,7 +524,7 @@ Ext.define('PVE.FirewallRules', {
|
|||||||
digest: rec.data.digest,
|
digest: rec.data.digest,
|
||||||
allow_iface: me.allow_iface,
|
allow_iface: me.allow_iface,
|
||||||
base_url: me.base_url,
|
base_url: me.base_url,
|
||||||
ipset_base_url: me.ipset_base_url,
|
list_refs_url: me.list_refs_url,
|
||||||
rule_pos: rec.data.pos
|
rule_pos: rec.data.pos
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -546,7 +546,7 @@ Ext.define('PVE.FirewallRules', {
|
|||||||
var win = Ext.create('PVE.FirewallRuleEdit', {
|
var win = Ext.create('PVE.FirewallRuleEdit', {
|
||||||
allow_iface: me.allow_iface,
|
allow_iface: me.allow_iface,
|
||||||
base_url: me.base_url,
|
base_url: me.base_url,
|
||||||
ipset_base_url: me.ipset_base_url
|
list_refs_url: me.list_refs_url
|
||||||
});
|
});
|
||||||
win.on('destroy', reload);
|
win.on('destroy', reload);
|
||||||
win.show();
|
win.show();
|
||||||
|
@ -20,14 +20,16 @@ Ext.define('PVE.panel.Firewall', {
|
|||||||
throw "unknown firewall panel type";
|
throw "unknown firewall panel type";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var list_refs_url = me.fwtype === 'vm' ? (me.base_url + '/refs') :
|
||||||
|
'/cluster/firewall/refs';
|
||||||
|
|
||||||
var items = [
|
var items = [
|
||||||
{
|
{
|
||||||
xtype: 'pveFirewallRules',
|
xtype: 'pveFirewallRules',
|
||||||
title: 'Rules',
|
title: 'Rules',
|
||||||
allow_iface: true,
|
allow_iface: true,
|
||||||
base_url: me.base_url + '/rules',
|
base_url: me.base_url + '/rules',
|
||||||
ipset_base_url: me.fwtype === 'vm' ? (me.base_url + '/refs') :
|
list_refs_url: list_refs_url,
|
||||||
'/cluster/firewall/refs',
|
|
||||||
itemId: 'rules'
|
itemId: 'rules'
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
@ -46,6 +48,7 @@ Ext.define('PVE.panel.Firewall', {
|
|||||||
items.push({
|
items.push({
|
||||||
xtype: 'pveIPSet',
|
xtype: 'pveIPSet',
|
||||||
base_url: '/cluster/firewall/ipset',
|
base_url: '/cluster/firewall/ipset',
|
||||||
|
list_refs_url: list_refs_url,
|
||||||
itemId: 'ipset'
|
itemId: 'ipset'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -59,6 +62,7 @@ Ext.define('PVE.panel.Firewall', {
|
|||||||
items.push({
|
items.push({
|
||||||
xtype: 'pveIPSet',
|
xtype: 'pveIPSet',
|
||||||
base_url: me.base_url + '/ipset',
|
base_url: me.base_url + '/ipset',
|
||||||
|
list_refs_url: list_refs_url,
|
||||||
itemId: 'ipset'
|
itemId: 'ipset'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -180,6 +180,7 @@ Ext.define('PVE.IPSetCidrEdit', {
|
|||||||
|
|
||||||
me.create = (me.cidr === undefined);
|
me.create = (me.cidr === undefined);
|
||||||
|
|
||||||
|
|
||||||
if (me.create) {
|
if (me.create) {
|
||||||
me.url = '/api2/extjs' + me.base_url;
|
me.url = '/api2/extjs' + me.base_url;
|
||||||
me.method = 'POST';
|
me.method = 'POST';
|
||||||
@ -188,17 +189,36 @@ Ext.define('PVE.IPSetCidrEdit', {
|
|||||||
me.method = 'PUT';
|
me.method = 'PUT';
|
||||||
}
|
}
|
||||||
|
|
||||||
var ipanel = Ext.create('PVE.panel.InputPanel', {
|
var column1 = [];
|
||||||
create: me.create,
|
|
||||||
column1: [
|
if (me.create) {
|
||||||
{
|
if (!me.list_refs_url) {
|
||||||
xtype: me.create ? 'textfield' : 'displayfield',
|
throw "no alias_base_url specified";
|
||||||
|
}
|
||||||
|
|
||||||
|
column1.push({
|
||||||
|
xtype: 'pveIPRefSelector',
|
||||||
|
name: 'cidr',
|
||||||
|
ref_type: 'alias',
|
||||||
|
autoSelect: false,
|
||||||
|
editable: true,
|
||||||
|
base_url: me.list_refs_url,
|
||||||
|
value: '',
|
||||||
|
fieldLabel: gettext('IP/CIDR')
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
column1.push({
|
||||||
|
xtype: 'displayfield',
|
||||||
name: 'cidr',
|
name: 'cidr',
|
||||||
height: 22, // hack: set same height as text fields
|
height: 22, // hack: set same height as text fields
|
||||||
value: '',
|
value: '',
|
||||||
fieldLabel: gettext('IP/CIDR')
|
fieldLabel: gettext('IP/CIDR')
|
||||||
|
});
|
||||||
}
|
}
|
||||||
],
|
|
||||||
|
var ipanel = Ext.create('PVE.panel.InputPanel', {
|
||||||
|
create: me.create,
|
||||||
|
column1: column1,
|
||||||
column2: [
|
column2: [
|
||||||
{
|
{
|
||||||
xtype: 'pvecheckbox',
|
xtype: 'pvecheckbox',
|
||||||
@ -242,6 +262,7 @@ Ext.define('PVE.IPSetGrid', {
|
|||||||
alias: 'widget.pveIPSetGrid',
|
alias: 'widget.pveIPSetGrid',
|
||||||
|
|
||||||
base_url: undefined,
|
base_url: undefined,
|
||||||
|
list_refs_url: undefined,
|
||||||
|
|
||||||
addBtn: undefined,
|
addBtn: undefined,
|
||||||
removeBtn: undefined,
|
removeBtn: undefined,
|
||||||
@ -270,6 +291,10 @@ Ext.define('PVE.IPSetGrid', {
|
|||||||
/*jslint confusion: true */
|
/*jslint confusion: true */
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
|
if (!me.list_refs_url) {
|
||||||
|
throw "no1 list_refs_url specified";
|
||||||
|
}
|
||||||
|
|
||||||
var store = new Ext.data.Store({
|
var store = new Ext.data.Store({
|
||||||
model: 'pve-ipset'
|
model: 'pve-ipset'
|
||||||
});
|
});
|
||||||
@ -308,7 +333,8 @@ Ext.define('PVE.IPSetGrid', {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var win = Ext.create('PVE.IPSetCidrEdit', {
|
var win = Ext.create('PVE.IPSetCidrEdit', {
|
||||||
base_url: me.base_url
|
base_url: me.base_url,
|
||||||
|
list_refs_url: me.list_refs_url
|
||||||
});
|
});
|
||||||
win.show();
|
win.show();
|
||||||
win.on('destroy', reload);
|
win.on('destroy', reload);
|
||||||
@ -393,11 +419,18 @@ Ext.define('PVE.IPSet', {
|
|||||||
|
|
||||||
title: 'IPSet',
|
title: 'IPSet',
|
||||||
|
|
||||||
|
list_refs_url: undefined,
|
||||||
|
|
||||||
initComponent: function() {
|
initComponent: function() {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
|
if (!me.list_refs_url) {
|
||||||
|
throw "no list_refs_url specified";
|
||||||
|
}
|
||||||
|
|
||||||
var ipset_panel = Ext.createWidget('pveIPSetGrid', {
|
var ipset_panel = Ext.createWidget('pveIPSetGrid', {
|
||||||
region: 'center',
|
region: 'center',
|
||||||
|
list_refs_url: me.list_refs_url,
|
||||||
flex: 0.5,
|
flex: 0.5,
|
||||||
border: false
|
border: false
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user