]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/storage/CIFSEdit.js
fix #2017: add help button to storage input panels
[pve-manager.git] / www / manager6 / storage / CIFSEdit.js
1 Ext.define('PVE.storage.CIFSScan', {
2 extend: 'Ext.form.field.ComboBox',
3 alias: 'widget.pveCIFSScan',
4
5 queryParam: 'server',
6
7 valueField: 'share',
8 displayField: 'share',
9 matchFieldWidth: false,
10 listConfig: {
11 loadingText: gettext('Scanning...'),
12 width: 350
13 },
14 doRawQuery: function() {
15 },
16
17 onTriggerClick: function() {
18 var me = this;
19
20 if (!me.queryCaching || me.lastQuery !== me.cifsServer) {
21 me.store.removeAll();
22 }
23
24 var params = {};
25 if (me.cifsUsername && me.cifsPassword) {
26 params.username = me.cifsUsername;
27 params.password = me.cifsPassword;
28 }
29
30 if (me.cifsDomain) {
31 params.domain = me.cifsDomain;
32 }
33
34 me.store.getProxy().setExtraParams(params);
35 me.allQuery = me.cifsServer;
36
37 me.callParent();
38 },
39
40 setServer: function(server) {
41 this.cifsServer = server;
42 },
43
44 setUsername: function(username) {
45 this.cifsUsername = username;
46 },
47
48 setPassword: function(password) {
49 this.cifsPassword = password;
50 },
51
52 setDomain: function(domain) {
53 this.cifsDomain = domain;
54 },
55
56 initComponent : function() {
57 var me = this;
58
59 if (!me.nodename) {
60 me.nodename = 'localhost';
61 }
62
63 var store = Ext.create('Ext.data.Store', {
64 fields: ['description', 'share'],
65 proxy: {
66 type: 'proxmox',
67 url: '/api2/json/nodes/' + me.nodename + '/scan/cifs'
68 }
69 });
70 store.sort('share', 'ASC');
71
72 Ext.apply(me, {
73 store: store
74 });
75
76 me.callParent();
77 }
78 });
79
80 Ext.define('PVE.storage.CIFSInputPanel', {
81 extend: 'PVE.panel.StorageBase',
82
83 onlineHelp: 'storage_cifs',
84
85 initComponent : function() {
86 var me = this;
87
88 var passwordfield = Ext.createWidget(me.isCreate ? 'textfield' : 'displayfield', {
89 inputType: 'password',
90 name: 'password',
91 value: me.isCreate ? '' : '********',
92 fieldLabel: gettext('Password'),
93 allowBlank: false,
94 disabled: me.isCreate,
95 minLength: 1,
96 listeners: {
97 change: function(f, value) {
98
99 if (me.isCreate) {
100 var exportField = me.down('field[name=share]');
101 exportField.setPassword(value);
102 }
103 }
104 }
105 });
106
107 me.column1 = [
108 {
109 xtype: me.isCreate ? 'textfield' : 'displayfield',
110 name: 'server',
111 value: '',
112 fieldLabel: gettext('Server'),
113 allowBlank: false,
114 listeners: {
115 change: function(f, value) {
116 if (me.isCreate) {
117 var exportField = me.down('field[name=share]');
118 exportField.setServer(value);
119 }
120 }
121 }
122 },
123 {
124 xtype: me.isCreate ? 'textfield' : 'displayfield',
125 name: 'username',
126 value: '',
127 fieldLabel: gettext('Username'),
128 emptyText: gettext('Guest user'),
129 allowBlank: true,
130 listeners: {
131 change: function(f, value) {
132 if (!me.isCreate) {
133 return;
134 }
135 var exportField = me.down('field[name=share]');
136 exportField.setUsername(value);
137
138 if (value == "") {
139 passwordfield.disable();
140 } else {
141 passwordfield.enable();
142 }
143 passwordfield.validate();
144 }
145 }
146 },
147 passwordfield,
148 {
149 xtype: me.isCreate ? 'pveCIFSScan' : 'displayfield',
150 name: 'share',
151 value: '',
152 fieldLabel: 'Share',
153 allowBlank: false
154 }
155 ];
156
157 me.column2 = [
158 {
159 xtype: 'proxmoxintegerfield',
160 fieldLabel: gettext('Max Backups'),
161 name: 'maxfiles',
162 reference: 'maxfiles',
163 minValue: 0,
164 maxValue: 365,
165 value: me.isCreate ? '1' : undefined,
166 allowBlank: false
167 },
168 {
169 xtype: 'pveContentTypeSelector',
170 name: 'content',
171 value: 'images',
172 multiSelect: true,
173 fieldLabel: gettext('Content'),
174 allowBlank: false
175 },
176 {
177 xtype: me.isCreate ? 'textfield' : 'displayfield',
178 name: 'domain',
179 value: me.isCreate ? '' : undefined,
180 fieldLabel: gettext('Domain'),
181 allowBlank: true,
182 listeners: {
183 change: function(f, value) {
184 if (me.isCreate) {
185
186 var exportField = me.down('field[name=share]');
187 exportField.setDomain(value);
188 }
189 }
190 }
191 }
192 ];
193
194 me.callParent();
195 }
196 });