]>
Commit | Line | Data |
---|---|---|
13246edc DM |
1 | Ext.define('PVE.storage.NFSScan', { |
2 | extend: 'Ext.form.field.ComboBox', | |
3 | alias: 'widget.pveNFSScan', | |
4 | ||
5 | queryParam: 'server', | |
6 | ||
c2317525 DC |
7 | valueField: 'path', |
8 | displayField: 'path', | |
9 | matchFieldWidth: false, | |
10 | listConfig: { | |
11 | loadingText: gettext('Scanning...'), | |
f6710aac | 12 | width: 350, |
c2317525 | 13 | }, |
13246edc DM |
14 | doRawQuery: function() { |
15 | }, | |
16 | ||
17 | onTriggerClick: function() { | |
18 | var me = this; | |
19 | ||
20 | if (!me.queryCaching || me.lastQuery !== me.nfsServer) { | |
21 | me.store.removeAll(); | |
22 | } | |
23 | ||
24 | me.allQuery = me.nfsServer; | |
25 | ||
26 | me.callParent(); | |
27 | }, | |
28 | ||
29 | setServer: function(server) { | |
30 | var me = this; | |
31 | ||
32 | me.nfsServer = server; | |
33 | }, | |
34 | ||
35 | initComponent : function() { | |
36 | var me = this; | |
37 | ||
38 | if (!me.nodename) { | |
39 | me.nodename = 'localhost'; | |
40 | } | |
41 | ||
42 | var store = Ext.create('Ext.data.Store', { | |
43 | fields: [ 'path', 'options' ], | |
44 | proxy: { | |
56a353b9 | 45 | type: 'proxmox', |
f6710aac TL |
46 | url: '/api2/json/nodes/' + me.nodename + '/scan/nfs', |
47 | }, | |
13246edc DM |
48 | }); |
49 | ||
9e9ab96f WL |
50 | store.sort('path', 'ASC'); |
51 | ||
13246edc | 52 | Ext.apply(me, { |
f6710aac | 53 | store: store, |
13246edc DM |
54 | }); |
55 | ||
56 | me.callParent(); | |
f6710aac | 57 | }, |
13246edc DM |
58 | }); |
59 | ||
60 | Ext.define('PVE.storage.NFSInputPanel', { | |
f28ec3e4 | 61 | extend: 'PVE.panel.StorageBase', |
13246edc | 62 | |
96988dfa DC |
63 | onlineHelp: 'storage_nfs', |
64 | ||
d3abac43 OB |
65 | options : [], |
66 | ||
13246edc DM |
67 | onGetValues: function(values) { |
68 | var me = this; | |
69 | ||
d3abac43 OB |
70 | var i; |
71 | var res = []; | |
72 | for (i = 0; i < me.options.length; i++) { | |
73 | var item = me.options[i]; | |
74 | if (!item.match(/^vers=(.*)$/)) { | |
75 | res.push(item); | |
76 | } | |
77 | } | |
78 | if (values.nfsversion && values.nfsversion !== '__default__') { | |
79 | res.push('vers=' + values.nfsversion); | |
80 | } | |
81 | delete values.nfsversion; | |
82 | values.options = res.join(','); | |
83 | if (values.options === '') { | |
84 | delete values.options; | |
85 | if (!me.isCreate) { | |
86 | values["delete"] = "options"; | |
87 | } | |
13246edc DM |
88 | } |
89 | ||
f28ec3e4 | 90 | return me.callParent([values]); |
13246edc DM |
91 | }, |
92 | ||
d3abac43 OB |
93 | setValues: function(values) { |
94 | var me = this; | |
95 | if (values.options) { | |
96 | var res = values.options; | |
97 | me.options = values.options.split(','); | |
98 | me.options.forEach(function(item) { | |
a671b6b5 TL |
99 | var match = item.match(/^vers=(.*)$/); |
100 | if (match) { | |
d3abac43 OB |
101 | values.nfsversion = match[1]; |
102 | } | |
103 | }); | |
104 | } | |
105 | return me.callParent([values]); | |
106 | }, | |
107 | ||
13246edc DM |
108 | initComponent : function() { |
109 | var me = this; | |
110 | ||
111 | ||
112 | me.column1 = [ | |
13246edc | 113 | { |
d5e771ce | 114 | xtype: me.isCreate ? 'textfield' : 'displayfield', |
13246edc DM |
115 | name: 'server', |
116 | value: '', | |
117 | fieldLabel: gettext('Server'), | |
118 | allowBlank: false, | |
119 | listeners: { | |
120 | change: function(f, value) { | |
d5e771ce | 121 | if (me.isCreate) { |
13246edc DM |
122 | var exportField = me.down('field[name=export]'); |
123 | exportField.setServer(value); | |
124 | exportField.setValue(''); | |
125 | } | |
f6710aac TL |
126 | }, |
127 | }, | |
13246edc DM |
128 | }, |
129 | { | |
d5e771ce | 130 | xtype: me.isCreate ? 'pveNFSScan' : 'displayfield', |
13246edc DM |
131 | name: 'export', |
132 | value: '', | |
133 | fieldLabel: 'Export', | |
f6710aac | 134 | allowBlank: false, |
13246edc DM |
135 | }, |
136 | { | |
137 | xtype: 'pveContentTypeSelector', | |
138 | name: 'content', | |
139 | value: 'images', | |
140 | multiSelect: true, | |
141 | fieldLabel: gettext('Content'), | |
f6710aac TL |
142 | allowBlank: false, |
143 | }, | |
13246edc DM |
144 | ]; |
145 | ||
d3abac43 OB |
146 | me.advancedColumn1 = [ |
147 | { | |
148 | xtype: 'proxmoxKVComboBox', | |
149 | fieldLabel: gettext('NFS Version'), | |
150 | name: 'nfsversion', | |
151 | value: '__default__', | |
152 | deleteEmpty: false, | |
153 | comboItems: [ | |
154 | ['__default__', Proxmox.Utils.defaultText], | |
155 | ['3', '3'], | |
156 | ['4', '4'], | |
157 | ['4.1', '4.1'], | |
f6710aac TL |
158 | ['4.2', '4.2'], |
159 | ], | |
160 | }, | |
d3abac43 OB |
161 | ]; |
162 | ||
13246edc | 163 | me.callParent(); |
f6710aac | 164 | }, |
13246edc | 165 | }); |