]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/form/IPRefSelector.js
fix #5632: ui:storage: correct online help link of backup view
[pve-manager.git] / www / manager6 / form / IPRefSelector.js
CommitLineData
9a389924 1Ext.define('PVE.form.IPRefSelector', {
0fc95a12 2 extend: 'Proxmox.form.ComboGrid',
9a389924
DM
3 alias: ['widget.pveIPRefSelector'],
4
5 base_url: undefined,
6
7 preferredValue: '', // hack: else Form sets dirty flag?
8
9 ref_type: undefined, // undefined = any [undefined, 'ipset' or 'alias']
10
5d6262aa 11 valueField: 'scopedref',
beec97dc 12 displayField: 'ref',
a02348b9 13 notFoundIsValid: true,
beec97dc 14
9a389924
DM
15 initComponent: function() {
16 var me = this;
17
18 if (!me.base_url) {
19 throw "no base_url specified";
20 }
21
22 var url = "/api2/json" + me.base_url;
23 if (me.ref_type) {
24 url += "?type=" + me.ref_type;
25 }
26
27 var store = Ext.create('Ext.data.Store', {
28 autoLoad: true,
5d6262aa
LN
29 fields: [
30 'type',
31 'name',
32 'ref',
33 'comment',
34 'scope',
35 {
36 name: 'scopedref',
37 calculate: function(v) {
38 if (v.type === 'alias') {
39 return `${v.scope}/${v.name}`;
5ffedd2e 40 } else if (v.type === 'ipset') {
5d6262aa 41 return `+${v.scope}/${v.name}`;
5ffedd2e
SH
42 } else {
43 return v.ref;
5d6262aa
LN
44 }
45 },
46 },
47 ],
9a389924
DM
48 idProperty: 'ref',
49 proxy: {
56a353b9 50 type: 'proxmox',
f6710aac 51 url: url,
9a389924
DM
52 },
53 sorters: {
54 property: 'ref',
392e3cf1 55 direction: 'ASC',
f6710aac 56 },
9a389924
DM
57 });
58
9a389924
DM
59 var columns = [];
60
61 if (!me.ref_type) {
62 columns.push({
63 header: gettext('Type'),
64 dataIndex: 'type',
65 hideable: false,
f6710aac 66 width: 60,
9a389924
DM
67 });
68 }
69
6cc50c80 70 columns.push(
9a389924
DM
71 {
72 header: gettext('Name'),
73 dataIndex: 'ref',
74 hideable: false,
f6710aac 75 width: 140,
9a389924 76 },
5d6262aa
LN
77 {
78 header: gettext('Scope'),
79 dataIndex: 'scope',
80 hideable: false,
81 width: 140,
82 renderer: function(value) {
83 return value === 'dc' ? gettext("Datacenter") : gettext("Guest");
84 },
85 },
9a389924 86 {
2a4971d8 87 header: gettext('Comment'),
91535f2b
DC
88 dataIndex: 'comment',
89 renderer: Ext.String.htmlEncode,
5d6262aa 90 minWidth: 60,
f6710aac
TL
91 flex: 1,
92 },
6cc50c80 93 );
9a389924
DM
94
95 Ext.apply(me, {
96 store: store,
5d6262aa
LN
97 listConfig: {
98 columns: columns,
99 width: 500,
100 },
9a389924
DM
101 });
102
9b361c6a
SH
103 me.on('beforequery', function(queryPlan) {
104 return !(queryPlan.query === null || queryPlan.query.match(/^\d/));
105 });
9a389924
DM
106
107 me.callParent();
f6710aac 108 },
9a389924
DM
109});
110