]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/lxc/Options.js
1 Ext
.define('PVE.lxc.Options', {
2 extend
: 'Proxmox.grid.PendingObjectGrid',
3 alias
: ['widget.pveLxcOptions'],
5 onlineHelp
: 'pct_options',
7 initComponent: function() {
10 var nodename
= me
.pveSelNode
.data
.node
;
12 throw "no node name specified";
15 var vmid
= me
.pveSelNode
.data
.vmid
;
17 throw "no VM ID specified";
20 var caps
= Ext
.state
.Manager
.get('GuiCap');
24 header
: gettext('Start at boot'),
26 renderer
: Proxmox
.Utils
.format_boolean
,
27 editor
: caps
.vms
['VM.Config.Options'] ? {
28 xtype
: 'proxmoxWindowEdit',
29 subject
: gettext('Start at boot'),
31 xtype
: 'proxmoxcheckbox',
35 fieldLabel
: gettext('Start at boot'),
40 header
: gettext('Start/Shutdown order'),
42 renderer
: PVE
.Utils
.render_kvm_startup
,
43 editor
: caps
.vms
['VM.Config.Options'] && caps
.nodes
['Sys.Modify']
45 xtype
: 'pveWindowStartupEdit',
46 onlineHelp
: 'pct_startup_and_shutdown',
50 header
: gettext('OS Type'),
51 defaultValue
: Proxmox
.Utils
.unknownText
,
54 header
: gettext('Architecture'),
55 defaultValue
: Proxmox
.Utils
.unknownText
,
58 header
: '/dev/console',
60 renderer
: Proxmox
.Utils
.format_enabled_toggle
,
61 editor
: caps
.vms
['VM.Config.Options'] ? {
62 xtype
: 'proxmoxWindowEdit',
63 subject
: '/dev/console',
65 xtype
: 'proxmoxcheckbox',
69 deleteDefaultValue
: true,
71 fieldLabel
: '/dev/console',
76 header
: gettext('TTY count'),
78 editor
: caps
.vms
['VM.Config.Options'] ? {
79 xtype
: 'proxmoxWindowEdit',
80 subject
: gettext('TTY count'),
82 xtype
: 'proxmoxintegerfield',
87 fieldLabel
: gettext('TTY count'),
88 emptyText
: gettext('Default'),
94 header
: gettext('Console mode'),
96 editor
: caps
.vms
['VM.Config.Options'] ? {
97 xtype
: 'proxmoxWindowEdit',
98 subject
: gettext('Console mode'),
100 xtype
: 'proxmoxKVComboBox',
103 value
: '__default__',
105 ['__default__', Proxmox
.Utils
.defaultText
+ " (tty)"],
106 ['tty', "/dev/tty[X]"],
107 ['console', "/dev/console"],
110 fieldLabel
: gettext('Console mode'),
115 header
: gettext('Protection'),
117 renderer
: Proxmox
.Utils
.format_boolean
,
118 editor
: caps
.vms
['VM.Config.Options'] ? {
119 xtype
: 'proxmoxWindowEdit',
120 subject
: gettext('Protection'),
122 xtype
: 'proxmoxcheckbox',
126 deleteDefaultValue
: true,
127 fieldLabel
: gettext('Enabled'),
132 header
: gettext('Unprivileged container'),
133 renderer
: Proxmox
.Utils
.format_boolean
,
137 header
: gettext('Features'),
138 defaultValue
: Proxmox
.Utils
.noneText
,
139 editor
: Proxmox
.UserName
=== 'root@pam' || caps
.vms
['VM.Allocate']
140 ? 'PVE.lxc.FeaturesEdit' : undefined,
143 header
: gettext('Hookscript'),
147 var baseurl
= 'nodes/' + nodename
+ '/lxc/' + vmid
+ '/config';
149 var sm
= Ext
.create('Ext.selection.RowModel', {});
151 var edit_btn
= new Proxmox
.button
.Button({
152 text
: gettext('Edit'),
155 enableFn: function(rec
) {
156 var rowdef
= rows
[rec
.data
.key
];
157 return !!rowdef
.editor
;
159 handler: function() { me
.run_editor(); },
162 var revert_btn
= new PVE
.button
.PendingRevert();
164 var set_button_status = function() {
165 let button_sm
= me
.getSelectionModel();
166 let rec
= button_sm
.getSelection()[0];
173 var key
= rec
.data
.key
;
174 var pending
= rec
.data
.delete || me
.hasPendingChanges(key
);
175 var rowdef
= rows
[key
];
177 edit_btn
.setDisabled(!rowdef
.editor
);
178 revert_btn
.setDisabled(!pending
);
183 url
: "/api2/json/nodes/" + nodename
+ "/lxc/" + vmid
+ "/pending",
186 tbar
: [edit_btn
, revert_btn
],
189 url
: '/api2/extjs/' + baseurl
,
192 itemdblclick
: me
.run_editor
,
193 selectionchange
: set_button_status
,
199 me
.on('activate', me
.rstore
.startUpdate
);
200 me
.on('destroy', me
.rstore
.stopUpdate
);
201 me
.on('deactivate', me
.rstore
.stopUpdate
);
203 me
.mon(me
.getStore(), 'datachanged', function() {