]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/form/CPUModelSelector.js
ui: eslint: fix trailing comma and comma related whitespaces errors
[pve-manager.git] / www / manager6 / form / CPUModelSelector.js
CommitLineData
4546808c
SR
1Ext.define('PVE.data.CPUModel', {
2 extend: 'Ext.data.Model',
3 fields: [
4 {name: 'name'},
5 {name: 'vendor'},
6 {name: 'custom'},
f6710aac
TL
7 {name: 'displayname'},
8 ],
4546808c
SR
9});
10
b1821bc1 11Ext.define('PVE.form.CPUModelSelector', {
06dd1330 12 extend: 'Proxmox.form.ComboGrid',
b1821bc1 13 alias: ['widget.CPUModelSelector'],
04bd1b28 14
4546808c
SR
15 valueField: 'name',
16 displayField: 'displayname',
06dd1330
SR
17
18 emptyText: Proxmox.Utils.defaultText + ' (kvm64)',
19 allowBlank: true,
20
21 editable: true,
22 anyMatch: true,
23 forceSelection: true,
24 autoSelect: false,
25
26 deleteEmpty: true,
27
28 listConfig: {
29 columns: [
30 {
31 header: gettext('Model'),
4546808c 32 dataIndex: 'displayname',
06dd1330
SR
33 hideable: false,
34 sortable: true,
f6710aac 35 flex: 3,
06dd1330
SR
36 },
37 {
38 header: gettext('Vendor'),
39 dataIndex: 'vendor',
40 hideable: false,
41 sortable: true,
f6710aac
TL
42 flex: 2,
43 },
06dd1330 44 ],
f6710aac 45 width: 360,
06dd1330
SR
46 },
47
48 store: {
4546808c
SR
49 autoLoad: true,
50 model: 'PVE.data.CPUModel',
51 proxy: {
52 type: 'proxmox',
f6710aac 53 url: '/api2/json/nodes/localhost/cpu',
4546808c
SR
54 },
55 sorters: [
56 {
57 sorterFn: function(recordA, recordB) {
58 let a = recordA.data;
59 let b = recordB.data;
60
61 let vendorOrder = PVE.Utils.cpu_vendor_order;
62 let orderA = vendorOrder[a.vendor] || vendorOrder['_default_'];
63 let orderB = vendorOrder[b.vendor] || vendorOrder['_default_'];
64
65 if (orderA > orderB) {
66 return 1;
67 } else if (orderA < orderB) {
68 return -1;
69 }
70
71 // Within same vendor, sort alphabetically
72 return a.name.localeCompare(b.name);
73 },
f6710aac
TL
74 direction: 'ASC',
75 },
4546808c
SR
76 ],
77 listeners: {
78 load: function(store, records, success) {
79 if (success) {
80 records.forEach(rec => {
81 rec.data.displayname = rec.data.name.replace(/^custom-/, '');
82
83 let vendor = rec.data.vendor;
84
85 if (rec.data.name === 'host') {
86 vendor = 'Host';
87 }
88
89 // We receive vendor names as given to QEMU as CPUID
90 vendor = PVE.Utils.cpu_vendor_map[vendor] || vendor;
91
92 if (rec.data.custom) {
93 vendor = gettext('Custom') + ` (${vendor})`;
94 }
95
96 rec.data.vendor = vendor;
97 });
98
99 store.sort();
100 }
f6710aac
TL
101 },
102 },
103 },
b1821bc1 104});