]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/qemu/MultiHDEdit.js
update shipped appliance info index
[pve-manager.git] / www / manager6 / qemu / MultiHDEdit.js
CommitLineData
9dbc4dfa
DC
1Ext.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});