]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/form/ComboBoxSetStoreNode.js
ui: ScheduleSimulator: split date and time into two columns
[pve-manager.git] / www / manager6 / form / ComboBoxSetStoreNode.js
1 Ext.define('PVE.form.ComboBoxSetStoreNode', {
2 extend: 'Proxmox.form.ComboGrid',
3 config: {
4 apiBaseUrl: '/api2/json/nodes/',
5 apiSuffix: '',
6 },
7
8 showNodeSelector: false,
9
10 setNodeName: function(value) {
11 let me = this;
12 value ||= Proxmox.NodeName;
13
14 me.getStore().getProxy().setUrl(`${me.apiBaseUrl}${value}${me.apiSuffix}`);
15 me.clearValue();
16 },
17
18 nodeChange: function(_field, value) {
19 let me = this;
20 // disable autoSelect if there is already a selection or we have the picker open
21 if (me.getValue() || me.isExpanded) {
22 let autoSelect = me.autoSelect;
23 me.autoSelect = false;
24 me.store.on('afterload', function() {
25 me.autoSelect = autoSelect;
26 }, { single: true });
27 }
28 me.setNodeName(value);
29 me.fireEvent('nodechanged', value);
30 },
31
32 initComponent: function() {
33 let me = this;
34
35 if (me.showNodeSelector && PVE.data.ResourceStore.getNodes().length > 1) {
36 me.errorHeight = 140;
37 Ext.apply(me.listConfig ?? {}, {
38 tbar: {
39 xtype: 'toolbar',
40 items: [
41 {
42 xtype: "pveStorageScanNodeSelector",
43 autoSelect: false,
44 fieldLabel: gettext('Node to scan'),
45 listeners: {
46 change: (field, value) => me.nodeChange(field, value),
47 },
48 },
49 ],
50 },
51 emptyText: me.listConfig?.emptyText ?? gettext('Nothing found'),
52 });
53 }
54
55 me.callParent();
56 },
57 });