]> git.proxmox.com Git - pve-manager.git/blame - www/manager/openvz/Options.js
Added translations
[pve-manager.git] / www / manager / openvz / Options.js
CommitLineData
337dca7c
DM
1/*jslint confusion: true */
2Ext.define('PVE.openvz.Options', {
3 extend: 'PVE.grid.ObjectGrid',
4 alias: ['widget.pveOpenVZOptions'],
5
6 initComponent : function() {
7 var me = this;
8 var i;
9
10 var nodename = me.pveSelNode.data.node;
11 if (!nodename) {
12 throw "no node name specified";
13 }
14
15 var vmid = me.pveSelNode.data.vmid;
16 if (!vmid) {
17 throw "no VM ID specified";
18 }
19
8fb7d745
DM
20 var caps = Ext.state.Manager.get('GuiCap');
21
337dca7c 22 var rows = {
337dca7c 23 onboot: {
f3bb9bb6 24 header: gettext('Start at boot'),
337dca7c
DM
25 defaultValue: '',
26 renderer: PVE.Utils.format_boolean,
8fb7d745 27 editor: caps.vms['VM.Config.Options'] ? {
337dca7c 28 xtype: 'pveWindowEdit',
f3bb9bb6 29 subject: gettext('Start at boot'),
337dca7c
DM
30 items: {
31 xtype: 'pvecheckbox',
32 name: 'onboot',
33 uncheckedValue: 0,
34 defaultValue: 0,
f3bb9bb6 35 fieldLabel: gettext('Start at boot')
337dca7c 36 }
8fb7d745 37 } : undefined
337dca7c 38 },
337dca7c 39 ostemplate: {
f3bb9bb6 40 header: gettext('Template'),
337dca7c
DM
41 defaultValue: 'no set'
42 },
2c8e0b15 43 storage: {
f3bb9bb6 44 header: gettext('Storage'),
2c8e0b15
DM
45 defaultValue: 'no set'
46 },
337dca7c 47 cpuunits: {
0070ee37 48 header: gettext('CPU units'),
337dca7c 49 defaultValue: '1000',
8fb7d745 50 editor: caps.vms['VM.Config.CPU'] ? {
337dca7c 51 xtype: 'pveWindowEdit',
0070ee37 52 subject: gettext('CPU units'),
337dca7c
DM
53 items: {
54 xtype: 'numberfield',
55 name: 'cpuunits',
0070ee37 56 fieldLabel: gettext('CPU units'),
337dca7c
DM
57 minValue: 8,
58 maxValue: 500000,
59 allowBlank: false
60 }
8fb7d745 61 } : undefined
337dca7c
DM
62 },
63 quotaugidlimit: {
0070ee37 64 header: gettext('Quota UGID limit'),
337dca7c
DM
65 defaultValue: '0',
66 renderer: function(value) {
67 if (value == 0) {
a2f57991 68 return 'User quotas disabled.';
337dca7c
DM
69 }
70 return value;
71 },
8fb7d745 72 editor: caps.vms['VM.Config.Disk'] ? {
337dca7c 73 xtype: 'pveWindowEdit',
0070ee37 74 subject: gettext('Quota UGID limit (0 to disable user quotas)'),
337dca7c
DM
75 items: {
76 xtype: 'numberfield',
77 name: 'quotaugidlimit',
0070ee37 78 fieldLabel: gettext('UGID limit'),
337dca7c
DM
79 minValue: 0,
80 allowBlank: false
81 }
8fb7d745 82 } : undefined
337dca7c
DM
83 },
84 quotatime: {
0070ee37 85 header: gettext('Quota Grace period'),
337dca7c 86 defaultValue: '0',
8fb7d745 87 editor: caps.vms['VM.Config.Disk'] ? {
337dca7c 88 xtype: 'pveWindowEdit',
0070ee37 89 subject: gettext('Quota Grace period (seconds)'),
337dca7c
DM
90 items: {
91 xtype: 'numberfield',
92 name: 'quotatime',
93 minValue: 0,
94 allowBlank: false,
95 fieldLabel: 'Grace period'
96 }
8fb7d745 97 } : undefined
337dca7c
DM
98 }
99 };
100
101 var baseurl = 'nodes/' + nodename + '/openvz/' + vmid + '/config';
102
103 var reload = function() {
104 me.rstore.load();
105 };
106
f3bb9bb6
DM
107 var sm = Ext.create('Ext.selection.RowModel', {});
108
337dca7c 109 var run_editor = function() {
337dca7c
DM
110 var rec = sm.getSelection()[0];
111 if (!rec) {
112 return;
113 }
114
115 var rowdef = rows[rec.data.key];
116 if (!rowdef.editor) {
117 return;
118 }
119
7690de6e
DM
120 var config = Ext.apply({
121 pveSelNode: me.pveSelNode,
122 confid: rec.data.key,
123 url: '/api2/extjs/' + baseurl
124 }, rowdef.editor);
125 var win = Ext.createWidget(rowdef.editor.xtype, config);
126 win.load();
337dca7c
DM
127
128 win.show();
129 win.on('destroy', reload);
130 };
131
f3bb9bb6
DM
132 var edit_btn = new PVE.button.Button({
133 text: gettext('Edit'),
337dca7c 134 disabled: true,
f3bb9bb6
DM
135 selModel: sm,
136 enableFn: function(rec) {
137 var rowdef = rows[rec.data.key];
138 return !!rowdef.editor;
139 },
337dca7c
DM
140 handler: run_editor
141 });
142
337dca7c
DM
143 Ext.applyIf(me, {
144 url: "/api2/json/nodes/" + nodename + "/openvz/" + vmid + "/config",
f3bb9bb6 145 selModel: sm,
337dca7c
DM
146 cwidth1: 150,
147 tbar: [ edit_btn ],
148 rows: rows,
149 listeners: {
f3bb9bb6 150 itemdblclick: run_editor
337dca7c
DM
151 }
152 });
153
154 me.callParent();
155
156 me.on('show', reload);
157 }
158});
159