]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/storage/CIFSEdit.js
ui: add storage plugin base class
[pve-manager.git] / www / manager6 / storage / CIFSEdit.js
CommitLineData
ca9a198a
WL
1Ext.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 var me = this;
42
43 me.cifsServer = server;
44 },
45
46 setUsername: function(username) {
47 var me = this;
48
49 me.cifsUsername = username;
50 },
51
52 setPassword: function(password) {
53 var me = this;
54
55 me.cifsPassword = password;
56 },
57
58 setDomain: function(domain) {
59 var me = this;
60
61 me.cifsDomain = domain;
62 },
63
64 initComponent : function() {
65 var me = this;
66
67 if (!me.nodename) {
68 me.nodename = 'localhost';
69 }
70
71 var store = Ext.create('Ext.data.Store', {
72 fields: ['description', 'share'],
73 proxy: {
74 type: 'proxmox',
75 url: '/api2/json/nodes/' + me.nodename + '/scan/cifs'
76 }
77 });
78 store.sort('share', 'ASC');
79
80 Ext.apply(me, {
81 store: store
82 });
83
84 me.callParent();
85 }
86});
87
88Ext.define('PVE.storage.CIFSInputPanel', {
f28ec3e4 89 extend: 'PVE.panel.StorageBase',
ca9a198a
WL
90
91 initComponent : function() {
92 var me = this;
93
94 var passwordfield = Ext.createWidget(me.isCreate ? 'textfield' : 'displayfield', {
95 inputType: 'password',
96 name: 'password',
97 value: me.isCreate ? '' : '********',
98 fieldLabel: gettext('Password'),
99 allowBlank: true,
100 minLength: 1,
101 listeners: {
102 change: function(f, value) {
103
104 if (me.isCreate) {
105 var exportField = me.down('field[name=share]');
106 exportField.setPassword(value);
107 }
108 }
109 }
110 });
111
112 me.column1 = [
ca9a198a
WL
113 {
114 xtype: me.isCreate ? 'textfield' : 'displayfield',
115 name: 'server',
116 value: '',
117 fieldLabel: gettext('Server'),
118 allowBlank: false,
119 listeners: {
120 change: function(f, value) {
121 if (me.isCreate) {
122 var exportField = me.down('field[name=share]');
123 exportField.setServer(value);
124 }
125 }
126 }
127 },
128 {
129 xtype: me.isCreate ? 'textfield' : 'displayfield',
130 name: 'username',
131 value: '',
132 fieldLabel: gettext('Username'),
133 emptyText: gettext('Guest user'),
134 allowBlank: true,
135 listeners: {
136 change: function(f, value) {
137 if (me.isCreate) {
138 var exportField = me.down('field[name=share]');
139 exportField.setUsername(value);
140 }
141 if (value == "") {
142 passwordfield.allowBlank = true;
143 } else {
144 passwordfield.allowBlank = false;
145 }
146 passwordfield.validate();
147 }
148 }
149 },
150 {
151 xtype: me.isCreate ? 'pveCIFSScan' : 'displayfield',
152 name: 'share',
153 value: '',
154 fieldLabel: 'Share',
155 allowBlank: false
156 },
157 {
158 xtype: 'pveContentTypeSelector',
159 name: 'content',
160 value: 'images',
161 multiSelect: true,
162 fieldLabel: gettext('Content'),
163 allowBlank: false
164 }
165 ];
166
167 me.column2 = [
ca9a198a
WL
168 {
169 xtype: 'proxmoxintegerfield',
170 fieldLabel: gettext('Max Backups'),
171 name: 'maxfiles',
172 reference: 'maxfiles',
173 minValue: 0,
174 maxValue: 365,
175 value: me.isCreate ? '1' : undefined,
176 allowBlank: false
177 },
178 passwordfield,
179 {
180 xtype: me.isCreate ? 'textfield' : 'displayfield',
181 name: 'domain',
182 value: me.isCreate ? '' : undefined,
183 fieldLabel: gettext('Domain'),
184 allowBlank: true,
185 listeners: {
186 change: function(f, value) {
187 if (me.isCreate) {
188
189 var exportField = me.down('field[name=share]');
190 exportField.setDomain(value);
191 }
192 }
193 }
194 }
195 ];
196
197 me.callParent();
198 }
199});