]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/form/IPRefSelector.js
ui: eslint: fix trailing spaces
[pve-manager.git] / www / manager6 / form / IPRefSelector.js
1 Ext.define('PVE.form.IPRefSelector', {
2 extend: 'Proxmox.form.ComboGrid',
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
11 valueField: 'ref',
12 displayField: 'ref',
13 notFoundIsValid: true,
14
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,
29 fields: [ 'type', 'name', 'ref', 'comment' ],
30 idProperty: 'ref',
31 proxy: {
32 type: 'proxmox',
33 url: url
34 },
35 sorters: {
36 property: 'ref',
37 order: 'DESC'
38 }
39 });
40
41 var disable_query_for_ips = function(f, value) {
42 if (value === null ||
43 value.match(/^\d/)) { // IP address starts with \d
44 f.queryDelay = 9999999999; // hack: disable with long delay
45 } else {
46 f.queryDelay = 10;
47 }
48 };
49
50 var columns = [];
51
52 if (!me.ref_type) {
53 columns.push({
54 header: gettext('Type'),
55 dataIndex: 'type',
56 hideable: false,
57 width: 60
58 });
59 }
60
61 columns.push(
62 {
63 header: gettext('Name'),
64 dataIndex: 'ref',
65 hideable: false,
66 width: 140
67 },
68 {
69 header: gettext('Comment'),
70 dataIndex: 'comment',
71 renderer: Ext.String.htmlEncode,
72 flex: 1
73 }
74 );
75
76 Ext.apply(me, {
77 store: store,
78 listConfig: { columns: columns }
79 });
80
81 me.on('change', disable_query_for_ips);
82
83 me.callParent();
84 }
85 });
86