]> git.proxmox.com Git - pve-manager.git/blob - www/manager/storage/SheepdogEdit.js
cca5a873bf7b92cf8696b734c6790b436baf49d0
[pve-manager.git] / www / manager / storage / SheepdogEdit.js
1 Ext.define('PVE.storage.SheepdogInputPanel', {
2 extend: 'PVE.panel.InputPanel',
3
4 onGetValues: function(values) {
5 var me = this;
6
7 if (me.create) {
8 values.type = 'sheepdog';
9 values.content = 'images';
10
11 } else {
12 delete values.storage;
13 }
14
15 values.disable = values.enable ? 0 : 1;
16 delete values.enable;
17
18 return values;
19 },
20
21 initComponent : function() {
22 var me = this;
23
24
25 me.column1 = [
26 {
27 xtype: me.create ? 'textfield' : 'displayfield',
28 name: 'storage',
29 height: 22, // hack: set same height as text fields
30 value: me.storageId || '',
31 fieldLabel: 'ID',
32 vtype: 'StorageId',
33 allowBlank: false
34 },
35 {
36 xtype: me.create ? 'textfield' : 'displayfield',
37 name: 'portal',
38 height: 22, // hack: set same height as text fields
39 value: '127.0.0.1:7000',
40 fieldLabel: gettext('Gateway'),
41 allowBlank: false
42 }
43 ];
44
45 me.column2 = [
46 {
47 xtype: 'pvecheckbox',
48 name: 'enable',
49 checked: true,
50 uncheckedValue: 0,
51 fieldLabel: gettext('Enable')
52 }
53 ];
54
55 if (me.create || me.storageId !== 'local') {
56 me.column2.unshift({
57 xtype: 'PVE.form.NodeSelector',
58 name: 'nodes',
59 fieldLabel: gettext('Nodes'),
60 emptyText: gettext('All') + ' (' +
61 gettext('No restrictions') +')',
62 multiSelect: true,
63 autoSelect: false
64 });
65 }
66
67 me.callParent();
68 }
69 });
70
71 Ext.define('PVE.storage.SheepdogEdit', {
72 extend: 'PVE.window.Edit',
73
74 initComponent : function() {
75 var me = this;
76
77 me.create = !me.storageId;
78
79 if (me.create) {
80 me.url = '/api2/extjs/storage';
81 me.method = 'POST';
82 } else {
83 me.url = '/api2/extjs/storage/' + me.storageId;
84 me.method = 'PUT';
85 }
86
87 var ipanel = Ext.create('PVE.storage.SheepdogInputPanel', {
88 create: me.create,
89 storageId: me.storageId
90 });
91
92 Ext.apply(me, {
93 subject: 'Sheepdog Storage',
94 isAdd: true,
95 items: [ ipanel ]
96 });
97
98 me.callParent();
99
100 if (!me.create) {
101 me.load({
102 success: function(response, options) {
103 var values = response.result.data;
104 if (values.nodes) {
105 values.nodes = values.nodes.split(',');
106 }
107 values.enable = values.disable ? 0 : 1;
108 ipanel.setValues(values);
109 }
110 });
111 }
112 }
113 });