]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/lxc/DNS.js
1 Ext
.define('PVE.lxc.DNSInputPanel', {
2 extend
: 'PVE.panel.InputPanel',
3 alias
: 'widget.pveLxcDNSInputPanel',
7 onGetValues: function(values
) {
10 if (!values
.searchdomain
) {
11 if (me
.insideWizard
) {
14 return { "delete": "searchdomain,nameserver" };
18 Ext
.Array
.each(['dns1', 'dns2', 'dns3'], function(fn
) {
20 list
.push(values
[fn
]);
26 values
.nameserver
= list
.join(' ');
28 if (!me
.insideWizard
) {
29 values
['delete'] = 'nameserver';
35 initComponent : function() {
40 xtype
: 'pvetextfield',
43 fieldLabel
: gettext('DNS domain'),
44 emptyText
: gettext('use host settings'),
47 change: function(f
, value
) {
51 var field_ids
= ['#dns1', '#dns2', '#dns3'];
52 Ext
.Array
.each(field_ids
, function(fn
) {
53 var field
= me
.down(fn
);
54 field
.setDisabled(!value
);
61 xtype
: 'pvetextfield',
62 fieldLabel
: gettext('DNS server') + " 1",
70 xtype
: 'pvetextfield',
71 fieldLabel
: gettext('DNS server') + " 2",
79 xtype
: 'pvetextfield',
80 fieldLabel
: gettext('DNS server') + " 3",
89 if (me
.insideWizard
) {
99 Ext
.define('PVE.lxc.DNSEdit', {
100 extend
: 'PVE.window.Edit',
102 initComponent : function() {
105 var ipanel
= Ext
.create('PVE.lxc.DNSInputPanel');
108 subject
: gettext('Resources'),
116 success: function(response
, options
) {
117 var values
= response
.result
.data
;
119 if (values
.nameserver
) {
120 values
.nameserver
.replace(/[,;]/, ' ');
121 values
.nameserver
.replace(/^\s+/, '');
122 var nslist
= values
.nameserver
.split(/\s+/);
123 values
.dns1
= nslist
[0];
124 values
.dns2
= nslist
[1];
125 values
.dns3
= nslist
[2];
128 ipanel
.setValues(values
);
135 /*jslint confusion: true */
136 Ext
.define('PVE.lxc.DNS', {
137 extend
: 'PVE.grid.ObjectGrid',
138 alias
: ['widget.pveLxcDNS'],
140 onlineHelp
: 'pct_container_network',
142 initComponent : function() {
146 var nodename
= me
.pveSelNode
.data
.node
;
148 throw "no node name specified";
151 var vmid
= me
.pveSelNode
.data
.vmid
;
153 throw "no VM ID specified";
156 var caps
= Ext
.state
.Manager
.get('GuiCap');
161 defaultValue
: me
.pveSelNode
.data
.name
,
162 header
: gettext('Hostname'),
163 editor
: caps
.vms
['VM.Config.Network'] ? {
164 xtype
: 'pveWindowEdit',
165 subject
: gettext('Hostname'),
171 fieldLabel
: gettext('Hostname'),
173 emptyText
: me
.pveSelNode
.data
.name
178 header
: gettext('DNS domain'),
180 editor
: caps
.vms
['VM.Config.Network'] ? 'PVE.lxc.DNSEdit' : undefined,
181 renderer: function(value
) {
182 if (me
.getObjectValue('nameserver') || me
.getObjectValue('searchdomain')) {
185 return gettext('use host settings');
189 header
: gettext('DNS server'),
191 editor
: caps
.vms
['VM.Config.Network'] ? 'PVE.lxc.DNSEdit' : undefined,
192 renderer: function(value
) {
193 if (me
.getObjectValue('nameserver') || me
.getObjectValue('searchdomain')) {
196 return gettext('use host settings');
201 var baseurl
= 'nodes/' + nodename
+ '/lxc/' + vmid
+ '/config';
203 var reload = function() {
207 var sm
= Ext
.create('Ext.selection.RowModel', {});
209 var run_editor = function() {
210 var rec
= sm
.getSelection()[0];
215 var rowdef
= rows
[rec
.data
.key
];
216 if (!rowdef
.editor
) {
221 if (Ext
.isString(rowdef
.editor
)) {
222 win
= Ext
.create(rowdef
.editor
, {
223 pveSelNode
: me
.pveSelNode
,
224 confid
: rec
.data
.key
,
225 url
: '/api2/extjs/' + baseurl
228 var config
= Ext
.apply({
229 pveSelNode
: me
.pveSelNode
,
230 confid
: rec
.data
.key
,
231 url
: '/api2/extjs/' + baseurl
233 win
= Ext
.createWidget(rowdef
.editor
.xtype
, config
);
237 win
.on('destroy', reload
);
240 var edit_btn
= new PVE
.button
.Button({
241 text
: gettext('Edit'),
244 enableFn: function(rec
) {
245 var rowdef
= rows
[rec
.data
.key
];
246 return !!rowdef
.editor
;
251 var set_button_status = function() {
252 var sm
= me
.getSelectionModel();
253 var rec
= sm
.getSelection()[0];
259 var rowdef
= rows
[rec
.data
.key
];
260 edit_btn
.setDisabled(!rowdef
.editor
);
264 url
: "/api2/json/nodes/" + nodename
+ "/lxc/" + vmid
+ "/config",
270 itemdblclick
: run_editor
,
271 selectionchange
: set_button_status
,