]>
Commit | Line | Data |
---|---|---|
1c67cee1 DC |
1 | Ext.define('PVE.qemu.EFIDiskInputPanel', { |
2 | extend: 'PVE.panel.InputPanel', | |
3 | alias: 'widget.pveEFIDiskInputPanel', | |
4 | ||
5 | insideWizard: false, | |
6 | ||
7 | unused: false, // ADD usused disk imaged | |
8 | ||
9 | vmconfig: {}, // used to select usused disks | |
10 | ||
11 | controller: { | |
12 | ||
13 | xclass: 'Ext.app.ViewController', | |
14 | ||
15 | control: { | |
16 | 'field[name=hdstorage]': { | |
17 | change: function(f, value) { | |
18 | if (!value) { // initial store loading fires an unwanted 'change' | |
19 | return; | |
20 | } | |
21 | var me = this.getView(); | |
22 | var rec = f.store.getById(value); | |
23 | ||
24 | var rawArray = ['iscsi', 'lvm', 'lvmthin', 'drbd', 'rbd', 'sheepdog', 'zfs', 'zfspool']; | |
25 | ||
26 | me.hdfilesel.setDisabled(true); | |
27 | me.hdfilesel.setVisible(false); | |
28 | me.formatsel.setValue('qcow2'); | |
29 | me.formatsel.setDisabled(false); | |
30 | ||
31 | // if rec.data.type exists in the array | |
32 | if (rawArray.indexOf(rec.data.type) !== -1) { | |
33 | me.formatsel.setValue('raw'); | |
34 | me.formatsel.setDisabled(true); | |
35 | } | |
36 | ||
37 | if (rec.data.type === 'iscsi') { | |
38 | me.hdfilesel.setStorage(value); | |
39 | me.hdfilesel.setDisabled(false); | |
40 | me.hdfilesel.setVisible(true); | |
41 | } | |
42 | } | |
43 | } | |
44 | } | |
45 | }, | |
46 | ||
47 | onGetValues: function(values) { | |
48 | var me = this; | |
49 | ||
50 | var confid = 'efidisk0'; | |
51 | ||
52 | if (values.hdimage) { | |
53 | me.drive.file = values.hdimage; | |
54 | } else { | |
55 | // we use 1 here, because for efi the size gets overridden from the backend | |
56 | me.drive.file = values.hdstorage + ":1"; | |
57 | } | |
58 | ||
59 | me.drive.format = values.diskformat; | |
60 | var params = {}; | |
61 | params[confid] = PVE.Parser.printQemuDrive(me.drive); | |
62 | return params; | |
63 | }, | |
64 | ||
65 | setNodename: function(nodename) { | |
66 | var me = this; | |
67 | me.hdstoragesel.setNodename(nodename); | |
68 | me.hdfilesel.setStorage(undefined, nodename); | |
69 | }, | |
70 | ||
71 | initComponent : function() { | |
72 | var me = this; | |
73 | ||
74 | me.drive = {}; | |
75 | ||
76 | me.items= []; | |
77 | ||
78 | me.formatsel = Ext.create('PVE.form.DiskFormatSelector', { | |
79 | name: 'diskformat', | |
80 | fieldLabel: gettext('Format'), | |
81 | value: 'qcow2', | |
82 | allowBlank: false | |
83 | }); | |
84 | ||
85 | me.hdfilesel = Ext.create('PVE.form.FileSelector', { | |
86 | name: 'hdimage', | |
87 | nodename: me.nodename, | |
88 | storageContent: 'images', | |
89 | fieldLabel: gettext('Disk image'), | |
90 | disabled: true, | |
91 | hidden: true, | |
92 | allowBlank: false | |
93 | }); | |
94 | ||
95 | me.hdstoragesel = Ext.create('PVE.form.StorageSelector', { | |
96 | name: 'hdstorage', | |
97 | nodename: me.nodename, | |
98 | fieldLabel: gettext('Storage'), | |
99 | storageContent: 'images', | |
100 | autoSelect: me.insideWizard, | |
101 | allowBlank: false | |
102 | }); | |
103 | me.items.push(me.hdstoragesel); | |
104 | me.items.push(me.hdfilesel); | |
105 | me.items.push(me.formatsel); | |
106 | ||
107 | me.callParent(); | |
108 | } | |
109 | }); | |
110 | ||
111 | Ext.define('PVE.qemu.EFIDiskEdit', { | |
112 | extend: 'PVE.window.Edit', | |
113 | ||
114 | isAdd: true, | |
115 | subject: gettext('EFI Disk'), | |
116 | ||
117 | initComponent : function() { | |
118 | var me = this; | |
119 | ||
120 | var nodename = me.pveSelNode.data.node; | |
121 | if (!nodename) { | |
122 | throw "no node name specified"; | |
123 | } | |
124 | ||
1c67cee1 DC |
125 | me.items = [{ |
126 | xtype: 'pveEFIDiskInputPanel', | |
c8802a60 | 127 | onlineHelp: 'qm_bios_and_uefi', |
1c67cee1 DC |
128 | confid: me.confid, |
129 | nodename: nodename, | |
d5e771ce | 130 | isCreate: true |
1c67cee1 | 131 | }]; |
1c67cee1 DC |
132 | |
133 | me.callParent(); | |
134 | } | |
135 | }); |