]> git.proxmox.com Git - pve-manager.git/blob - www/manager/storage/DirEdit.js
3d67879b35af4519995e276761aa9bd3854fd646
[pve-manager.git] / www / manager / storage / DirEdit.js
1 Ext.define('PVE.storage.DirInputPanel', {
2 extend: 'PVE.panel.InputPanel',
3
4 onGetValues: function(values) {
5 var me = this;
6
7 if (me.create) {
8 values.type = 'dir';
9 } else {
10 delete values.storage;
11 }
12
13 values.disable = values.enable ? 0 : 1;
14 delete values.enable;
15
16 return values;
17 },
18
19 initComponent : function() {
20 var me = this;
21
22
23 me.column1 = [
24 {
25 xtype: me.create ? 'textfield' : 'displayfield',
26 name: 'storage',
27 height: 22, // hack: set same height as text fields
28 value: me.storageId || '',
29 fieldLabel: 'ID',
30 vtype: 'StorageId',
31 allowBlank: false
32 },
33 {
34 xtype: me.create ? 'textfield' : 'displayfield',
35 height: 22, // hack: set same height as text fields
36 name: 'path',
37 value: '',
38 fieldLabel: gettext('Directory'),
39 allowBlank: false
40 },
41 {
42 xtype: 'pveContentTypeSelector',
43 name: 'content',
44 value: 'images',
45 multiSelect: true,
46 fieldLabel: gettext('Content'),
47 allowBlank: false
48 }
49 ];
50
51 me.column2 = [
52 {
53 xtype: 'pvecheckbox',
54 name: 'enable',
55 checked: true,
56 uncheckedValue: 0,
57 fieldLabel: gettext('Enable')
58 },
59 {
60 xtype: 'pvecheckbox',
61 name: 'shared',
62 uncheckedValue: 0,
63 fieldLabel: gettext('Shared')
64 },
65 {
66 xtype: 'numberfield',
67 fieldLabel: gettext('Max Backups'),
68 name: 'maxfiles',
69 minValue: 0,
70 maxValue: 365,
71 value: me.create ? '1' : undefined,
72 allowBlank: false
73 }
74 ];
75
76 if (me.create || me.storageId !== 'local') {
77 me.column2.unshift({
78 xtype: 'PVE.form.NodeSelector',
79 name: 'nodes',
80 fieldLabel: gettext('Nodes'),
81 emptyText: gettext('All') + ' (' +
82 gettext('No restrictions') +')',
83 multiSelect: true,
84 autoSelect: false
85 });
86 }
87
88 me.callParent();
89 }
90 });
91
92 Ext.define('PVE.storage.DirEdit', {
93 extend: 'PVE.window.Edit',
94
95 initComponent : function() {
96 var me = this;
97
98 me.create = !me.storageId;
99
100 if (me.create) {
101 me.url = '/api2/extjs/storage';
102 me.method = 'POST';
103 } else {
104 me.url = '/api2/extjs/storage/' + me.storageId;
105 me.method = 'PUT';
106 }
107
108 var ipanel = Ext.create('PVE.storage.DirInputPanel', {
109 create: me.create,
110 storageId: me.storageId
111 });
112
113 Ext.apply(me, {
114 subject: PVE.Utils.format_storage_type('dir'),
115 isAdd: true,
116 items: [ ipanel ]
117 });
118
119 me.callParent();
120
121 if (!me.create) {
122 me.load({
123 success: function(response, options) {
124 var values = response.result.data;
125 var ctypes = values.content || '';
126
127 values.content = ctypes.split(',');
128
129 if (values.nodes) {
130 values.nodes = values.nodes.split(',');
131 }
132 values.enable = values.disable ? 0 : 1;
133
134 ipanel.setValues(values);
135 }
136 });
137 }
138 }
139 });