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