]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/qemu/MultiHDEdit.js
update shipped appliance info index
[pve-manager.git] / www / manager6 / qemu / MultiHDEdit.js
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
40 return {
41 ide2: 'media=cdrom',
42 scsihw: vm.get('current.scsihw'),
43 ostype: vm.get('current.ostype'),
44 };
45 },
46
47 diskSorter: {
48 sorterFn: function(rec1, rec2) {
49 let [, name1, id1] = PVE.Utils.bus_match.exec(rec1.data.name);
50 let [, name2, id2] = PVE.Utils.bus_match.exec(rec2.data.name);
51
52 if (name1 === name2) {
53 return parseInt(id1, 10) - parseInt(id2, 10);
54 }
55
56 return name1 < name2 ? -1 : 1;
57 },
58 },
59
60 deleteDisabled: () => false,
61 },
62 });