]>
Commit | Line | Data |
---|---|---|
9dbc4dfa DC |
1 | Ext.define('PVE.qemu.MultiHDPanel', { |
2 | extend: 'PVE.panel.MultiDiskPanel', | |
3 | alias: 'widget.pveMultiHDPanel', | |
4 | ||
5 | onlineHelp: 'qm_hard_disk', | |
6 | ||
7 | controller: { | |
8 | xclass: 'Ext.app.ViewController', | |
9 | ||
10 | // maxCount is the sum of all controller ids - 1 (ide2 is fixed in the wizard) | |
11 | maxCount: Object.values(PVE.Utils.diskControllerMaxIDs) | |
12 | .reduce((previous, current) => previous+current, 0) - 1, | |
13 | ||
14 | getNextFreeDisk: function(vmconfig) { | |
15 | let clist = PVE.Utils.sortByPreviousUsage(vmconfig); | |
16 | return PVE.Utils.nextFreeDisk(clist, vmconfig); | |
17 | }, | |
18 | ||
19 | addPanel: function(itemId, vmconfig, nextFreeDisk) { | |
20 | let me = this; | |
21 | return me.getView().add({ | |
22 | vmconfig, | |
23 | border: false, | |
24 | showAdvanced: Ext.state.Manager.getProvider().get('proxmox-advanced-cb'), | |
25 | xtype: 'pveQemuHDInputPanel', | |
26 | bind: { | |
27 | nodename: '{nodename}', | |
28 | }, | |
29 | padding: '0 0 0 5', | |
30 | itemId, | |
31 | isCreate: true, | |
32 | insideWizard: true, | |
33 | }); | |
34 | }, | |
35 | ||
36 | getBaseVMConfig: function() { | |
37 | let me = this; | |
38 | let vm = me.getViewModel(); | |
39 | ||
5b2e8bd4 | 40 | let res = { |
9dbc4dfa DC |
41 | ide2: 'media=cdrom', |
42 | scsihw: vm.get('current.scsihw'), | |
43 | ostype: vm.get('current.ostype'), | |
44 | }; | |
5b2e8bd4 DC |
45 | |
46 | if (vm.get('current.ide0') === "some") { | |
47 | res.ide0 = "media=cdrom"; | |
48 | } | |
49 | ||
50 | return res; | |
9dbc4dfa DC |
51 | }, |
52 | ||
53 | diskSorter: { | |
54 | sorterFn: function(rec1, rec2) { | |
55 | let [, name1, id1] = PVE.Utils.bus_match.exec(rec1.data.name); | |
56 | let [, name2, id2] = PVE.Utils.bus_match.exec(rec2.data.name); | |
57 | ||
58 | if (name1 === name2) { | |
59 | return parseInt(id1, 10) - parseInt(id2, 10); | |
60 | } | |
61 | ||
62 | return name1 < name2 ? -1 : 1; | |
63 | }, | |
64 | }, | |
65 | ||
66 | deleteDisabled: () => false, | |
67 | }, | |
68 | }); |