]>
Commit | Line | Data |
---|---|---|
208ba0c6 | 1 | Ext.define('PVE.storage.IScsiScan', { |
14d9ecc4 | 2 | extend: 'PVE.form.ComboBoxSetStoreNode', |
208ba0c6 DM |
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 | }, |
14d9ecc4 SH |
13 | config: { |
14 | apiSuffix: '/scan/iscsi', | |
15 | }, | |
208ba0c6 | 16 | doRawQuery: function() { |
5eb9b7b1 | 17 | // do nothing |
208ba0c6 DM |
18 | }, |
19 | ||
20 | onTriggerClick: function() { | |
62427184 | 21 | let me = this; |
208ba0c6 DM |
22 | |
23 | if (!me.queryCaching || me.lastQuery !== me.portal) { | |
24 | me.store.removeAll(); | |
25 | } | |
26 | ||
27 | me.allQuery = me.portal; | |
28 | ||
29 | me.callParent(); | |
30 | }, | |
31 | ||
32 | setPortal: function(portal) { | |
62427184 | 33 | let me = this; |
208ba0c6 DM |
34 | me.portal = portal; |
35 | }, | |
36 | ||
8058410f | 37 | initComponent: function() { |
62427184 | 38 | let me = this; |
208ba0c6 DM |
39 | |
40 | if (!me.nodename) { | |
41 | me.nodename = 'localhost'; | |
42 | } | |
43 | ||
62427184 | 44 | let store = Ext.create('Ext.data.Store', { |
8058410f | 45 | fields: ['target', 'portal'], |
208ba0c6 | 46 | proxy: { |
56a353b9 | 47 | type: 'proxmox', |
14d9ecc4 | 48 | url: `${me.apiBaseUrl}${me.nodename}${me.apiSuffix}`, |
f6710aac | 49 | }, |
208ba0c6 | 50 | }); |
9e9ab96f WL |
51 | store.sort('target', 'ASC'); |
52 | ||
208ba0c6 | 53 | Ext.apply(me, { |
f6710aac | 54 | store: store, |
208ba0c6 DM |
55 | }); |
56 | ||
57 | me.callParent(); | |
f6710aac | 58 | }, |
208ba0c6 DM |
59 | }); |
60 | ||
61 | Ext.define('PVE.storage.IScsiInputPanel', { | |
f28ec3e4 | 62 | extend: 'PVE.panel.StorageBase', |
208ba0c6 | 63 | |
96988dfa DC |
64 | onlineHelp: 'storage_open_iscsi', |
65 | ||
208ba0c6 | 66 | onGetValues: function(values) { |
b9e706fb | 67 | let me = this; |
208ba0c6 | 68 | |
208ba0c6 DM |
69 | values.content = values.luns ? 'images' : 'none'; |
70 | delete values.luns; | |
71 | ||
9c1fe394 | 72 | return me.callParent([values]); |
f28ec3e4 | 73 | }, |
177de3de | 74 | |
f28ec3e4 | 75 | setValues: function(values) { |
53e3ea84 | 76 | values.luns = values.content.indexOf('images') !== -1; |
ff86a291 | 77 | this.callParent([values]); |
208ba0c6 DM |
78 | }, |
79 | ||
8058410f | 80 | initComponent: function() { |
b9e706fb | 81 | let me = this; |
208ba0c6 | 82 | |
208ba0c6 | 83 | me.column1 = [ |
14d9ecc4 SH |
84 | { |
85 | xtype: 'pveStorageScanNodeSelector', | |
86 | disabled: !me.isCreate, | |
87 | hidden: !me.isCreate, | |
88 | listeners: { | |
89 | change: { | |
90 | fn: function(field, value) { | |
91 | me.lookup('iScsiTargetScan').setNodeName(value); | |
92 | me.lookup('storageNodeRestriction').setValue(value); | |
93 | }, | |
94 | }, | |
95 | }, | |
96 | }, | |
208ba0c6 | 97 | { |
d5e771ce | 98 | xtype: me.isCreate ? 'textfield' : 'displayfield', |
208ba0c6 DM |
99 | name: 'portal', |
100 | value: '', | |
101 | fieldLabel: 'Portal', | |
102 | allowBlank: false, | |
103 | listeners: { | |
104 | change: function(f, value) { | |
d5e771ce | 105 | if (me.isCreate) { |
b9e706fb | 106 | let exportField = me.down('field[name=target]'); |
208ba0c6 DM |
107 | exportField.setPortal(value); |
108 | exportField.setValue(''); | |
109 | } | |
f6710aac TL |
110 | }, |
111 | }, | |
208ba0c6 | 112 | }, |
14d9ecc4 | 113 | Ext.createWidget(me.isCreate ? 'pveIScsiScan' : 'displayfield', { |
d5e771ce | 114 | readOnly: !me.isCreate, |
208ba0c6 DM |
115 | name: 'target', |
116 | value: '', | |
14d9ecc4 | 117 | fieldLabel: gettext('Target'), |
f6710aac | 118 | allowBlank: false, |
14d9ecc4 SH |
119 | reference: 'iScsiTargetScan', |
120 | }), | |
208ba0c6 DM |
121 | ]; |
122 | ||
123 | me.column2 = [ | |
208ba0c6 DM |
124 | { |
125 | xtype: 'checkbox', | |
126 | name: 'luns', | |
127 | checked: true, | |
f6710aac TL |
128 | fieldLabel: gettext('Use LUNs directly'), |
129 | }, | |
208ba0c6 DM |
130 | ]; |
131 | ||
132 | me.callParent(); | |
f6710aac | 133 | }, |
208ba0c6 | 134 | }); |