]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/form/GuestIDSelector.js
Convert the VMIDSelector to a generic GuestIDSelector
[pve-manager.git] / www / manager6 / form / GuestIDSelector.js
1 Ext.define('PVE.form.GuestIDSelector', {
2 extend: 'Ext.form.field.Number',
3 alias: 'widget.pveGuestIDSelector',
4
5 allowBlank: false,
6
7 minValue: 100,
8
9 maxValue: 999999999,
10
11 validateExists: undefined,
12
13 loadNextFreeID: false,
14
15 guestType: undefined,
16
17 initComponent: function() {
18 var me = this;
19 var label = '{0} ID';
20 var unknownID = 'This {0} ID does not exists';
21 var inUseID = 'This {0} ID is already in use';
22
23 if (me.guestType === 'lxc') {
24 label = Ext.String.format(label, 'CT');
25 unknownID = Ext.String.format(gettext(unknownID), 'CT');
26 inUseID = Ext.String.format(gettext(inUseID), 'CT');
27 } else if (me.guestType === 'qemu') {
28 label = Ext.String.format(label, 'VM');
29 unknownID = Ext.String.format(gettext(unknownID), 'VM');
30 inUseID = Ext.String.format(gettext(inUseID), 'VM');
31 } else {
32 label = Ext.String.format(label, 'CT/VM');
33 unknownID = Ext.String.format(gettext(unknownID), 'CT/VM');
34 inUseID = Ext.String.format(gettext(inUseID), 'CT/VM');
35 }
36
37 Ext.apply(me, {
38 fieldLabel: label,
39 listeners: {
40 'change': function(field, newValue, oldValue) {
41 if (!Ext.isDefined(me.validateExists)) {
42 return;
43 }
44 PVE.Utils.API2Request({
45 params: { vmid: newValue },
46 url: '/cluster/nextid',
47 method: 'GET',
48 success: function(response, opts) {
49 if (me.validateExists === true) {
50 me.markInvalid(unknownID);
51 }
52 },
53 failure: function(response, opts) {
54 if (me.validateExists === false) {
55 me.markInvalid(inUseID);
56 }
57 }
58 });
59 }
60 }
61 });
62
63 me.callParent();
64
65 if (me.loadNextFreeID) {
66 PVE.Utils.API2Request({
67 url: '/cluster/nextid',
68 method: 'GET',
69 success: function(response, opts) {
70 me.setRawValue(response.result.data);
71 }
72 });
73 }
74 }
75 });