]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/lxc/Options.js
1 /*jslint confusion: true */
2 Ext
.define('PVE.lxc.Options', {
3 extend
: 'Proxmox.grid.PendingObjectGrid',
4 alias
: ['widget.pveLxcOptions'],
6 onlineHelp
: 'pct_options',
8 initComponent : function() {
12 var nodename
= me
.pveSelNode
.data
.node
;
14 throw "no node name specified";
17 var vmid
= me
.pveSelNode
.data
.vmid
;
19 throw "no VM ID specified";
22 var caps
= Ext
.state
.Manager
.get('GuiCap');
26 header
: gettext('Start at boot'),
28 renderer
: Proxmox
.Utils
.format_boolean
,
29 editor
: caps
.vms
['VM.Config.Options'] ? {
30 xtype
: 'proxmoxWindowEdit',
31 subject
: gettext('Start at boot'),
33 xtype
: 'proxmoxcheckbox',
37 fieldLabel
: gettext('Start at boot')
42 header
: gettext('Start/Shutdown order'),
44 renderer
: PVE
.Utils
.render_kvm_startup
,
45 editor
: caps
.vms
['VM.Config.Options'] && caps
.nodes
['Sys.Modify'] ?
47 xtype
: 'pveWindowStartupEdit',
48 onlineHelp
: 'pct_startup_and_shutdown'
52 header
: gettext('OS Type'),
53 defaultValue
: Proxmox
.Utils
.unknownText
56 header
: gettext('Architecture'),
57 defaultValue
: Proxmox
.Utils
.unknownText
60 header
: '/dev/console',
62 renderer
: Proxmox
.Utils
.format_enabled_toggle
,
63 editor
: caps
.vms
['VM.Config.Options'] ? {
64 xtype
: 'proxmoxWindowEdit',
65 subject
: '/dev/console',
67 xtype
: 'proxmoxcheckbox',
71 deleteDefaultValue
: true,
73 fieldLabel
: '/dev/console'
78 header
: gettext('TTY count'),
80 editor
: caps
.vms
['VM.Config.Options'] ? {
81 xtype
: 'proxmoxWindowEdit',
82 subject
: gettext('TTY count'),
84 xtype
: 'proxmoxintegerfield',
89 fieldLabel
: gettext('TTY count'),
90 emptyText
: gettext('Default'),
96 header
: gettext('Console mode'),
98 editor
: caps
.vms
['VM.Config.Options'] ? {
99 xtype
: 'proxmoxWindowEdit',
100 subject
: gettext('Console mode'),
102 xtype
: 'proxmoxKVComboBox',
105 value
: '__default__',
107 ['__default__', Proxmox
.Utils
.defaultText
+ " (tty)"],
108 ['tty', "/dev/tty[X]"],
109 ['console', "/dev/console"],
112 fieldLabel
: gettext('Console mode')
117 header
: gettext('Protection'),
119 renderer
: Proxmox
.Utils
.format_boolean
,
120 editor
: caps
.vms
['VM.Config.Options'] ? {
121 xtype
: 'proxmoxWindowEdit',
122 subject
: gettext('Protection'),
124 xtype
: 'proxmoxcheckbox',
128 deleteDefaultValue
: true,
129 fieldLabel
: gettext('Enabled')
134 header
: gettext('Unprivileged container'),
135 renderer
: Proxmox
.Utils
.format_boolean
,
139 header
: gettext('Features'),
140 defaultValue
: Proxmox
.Utils
.noneText
,
141 editor
: Proxmox
.UserName
=== 'root@pam' ?
142 'PVE.lxc.FeaturesEdit' : undefined
145 header
: gettext('Hookscript')
149 var baseurl
= 'nodes/' + nodename
+ '/lxc/' + vmid
+ '/config';
151 var sm
= Ext
.create('Ext.selection.RowModel', {});
153 var edit_btn
= new Proxmox
.button
.Button({
154 text
: gettext('Edit'),
157 enableFn: function(rec
) {
158 var rowdef
= rows
[rec
.data
.key
];
159 return !!rowdef
.editor
;
161 handler: function() { me
.run_editor(); }
164 var revert_btn
= new Proxmox
.button
.Button({
165 text
: gettext('Revert'),
167 handler: function() {
168 var sm
= me
.getSelectionModel();
169 var rec
= sm
.getSelection()[0];
174 var rowdef
= me
.rows
[rec
.data
.key
] || {};
175 var keys
= rowdef
.multiKey
|| [ rec
.data
.key
];
176 var revert
= keys
.join(',');
178 Proxmox
.Utils
.API2Request({
179 url
: '/api2/extjs/' + baseurl
,
185 callback: function() {
188 failure: function (response
, opts
) {
189 Ext
.Msg
.alert('Error',response
.htmlStatus
);
195 var set_button_status = function() {
196 var sm
= me
.getSelectionModel();
197 var rec
= sm
.getSelection()[0];
204 var key
= rec
.data
.key
;
205 var pending
= rec
.data
['delete'] || me
.hasPendingChanges(key
);
206 var rowdef
= rows
[key
];
208 edit_btn
.setDisabled(!rowdef
.editor
);
209 revert_btn
.setDisabled(!pending
);
214 url
: "/api2/json/nodes/" + nodename
+ "/lxc/" + vmid
+ "/pending",
217 tbar
: [ edit_btn
, revert_btn
],
220 url
: '/api2/extjs/' + baseurl
223 itemdblclick
: me
.run_editor
,
224 selectionchange
: set_button_status
230 me
.on('activate', me
.rstore
.startUpdate
);
231 me
.on('destroy', me
.rstore
.stopUpdate
);
232 me
.on('deactivate', me
.rstore
.stopUpdate
);
234 me
.mon(me
.getStore(), 'datachanged', function() {