]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/storage/IScsiEdit.js
api: ceph: sort and update index sub-directory list
[pve-manager.git] / www / manager6 / storage / IScsiEdit.js
CommitLineData
208ba0c6
DM
1Ext.define('PVE.storage.IScsiScan', {
2 extend: 'Ext.form.field.ComboBox',
3 alias: 'widget.pveIScsiScan',
4
5 queryParam: 'portal',
c2317525
DC
6 valueField: 'target',
7 displayField: 'target',
8 matchFieldWidth: false,
9 listConfig: {
10 loadingText: gettext('Scanning...'),
f6710aac 11 width: 350,
c2317525 12 },
208ba0c6 13 doRawQuery: function() {
5eb9b7b1 14 // do nothing
208ba0c6
DM
15 },
16
17 onTriggerClick: function() {
62427184 18 let me = this;
208ba0c6
DM
19
20 if (!me.queryCaching || me.lastQuery !== me.portal) {
21 me.store.removeAll();
22 }
23
24 me.allQuery = me.portal;
25
26 me.callParent();
27 },
28
29 setPortal: function(portal) {
62427184 30 let me = this;
208ba0c6
DM
31 me.portal = portal;
32 },
33
8058410f 34 initComponent: function() {
62427184 35 let me = this;
208ba0c6
DM
36
37 if (!me.nodename) {
38 me.nodename = 'localhost';
39 }
40
62427184 41 let store = Ext.create('Ext.data.Store', {
8058410f 42 fields: ['target', 'portal'],
208ba0c6 43 proxy: {
56a353b9 44 type: 'proxmox',
62427184 45 url: `/api2/json/nodes/${me.nodename}/scan/iscsi`,
f6710aac 46 },
208ba0c6 47 });
9e9ab96f
WL
48 store.sort('target', 'ASC');
49
208ba0c6 50 Ext.apply(me, {
f6710aac 51 store: store,
208ba0c6
DM
52 });
53
54 me.callParent();
f6710aac 55 },
208ba0c6
DM
56});
57
58Ext.define('PVE.storage.IScsiInputPanel', {
f28ec3e4 59 extend: 'PVE.panel.StorageBase',
208ba0c6 60
96988dfa
DC
61 onlineHelp: 'storage_open_iscsi',
62
208ba0c6
DM
63 onGetValues: function(values) {
64 var me = this;
65
208ba0c6
DM
66 values.content = values.luns ? 'images' : 'none';
67 delete values.luns;
68
9c1fe394 69 return me.callParent([values]);
f28ec3e4 70 },
177de3de 71
f28ec3e4 72 setValues: function(values) {
53e3ea84 73 values.luns = values.content.indexOf('images') !== -1;
ff86a291 74 this.callParent([values]);
208ba0c6
DM
75 },
76
8058410f 77 initComponent: function() {
208ba0c6
DM
78 var me = this;
79
208ba0c6 80 me.column1 = [
208ba0c6 81 {
d5e771ce 82 xtype: me.isCreate ? 'textfield' : 'displayfield',
208ba0c6
DM
83 name: 'portal',
84 value: '',
85 fieldLabel: 'Portal',
86 allowBlank: false,
87 listeners: {
88 change: function(f, value) {
d5e771ce 89 if (me.isCreate) {
208ba0c6
DM
90 var exportField = me.down('field[name=target]');
91 exportField.setPortal(value);
92 exportField.setValue('');
93 }
f6710aac
TL
94 },
95 },
208ba0c6
DM
96 },
97 {
d5e771ce
EK
98 readOnly: !me.isCreate,
99 xtype: me.isCreate ? 'pveIScsiScan' : 'displayfield',
208ba0c6
DM
100 name: 'target',
101 value: '',
102 fieldLabel: 'Target',
f6710aac
TL
103 allowBlank: false,
104 },
208ba0c6
DM
105 ];
106
107 me.column2 = [
208ba0c6
DM
108 {
109 xtype: 'checkbox',
110 name: 'luns',
111 checked: true,
f6710aac
TL
112 fieldLabel: gettext('Use LUNs directly'),
113 },
208ba0c6
DM
114 ];
115
116 me.callParent();
f6710aac 117 },
208ba0c6 118});