]> git.proxmox.com Git - pve-manager.git/blame - www/manager/openvz/DNS.js
disable animation of charts on load
[pve-manager.git] / www / manager / openvz / DNS.js
CommitLineData
7690de6e
DM
1/*jslint confusion: true */
2Ext.define('PVE.openvz.DNS', {
3 extend: 'PVE.grid.ObjectGrid',
4 alias: ['widget.pveOpenVZDNS'],
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
7690de6e
DM
22 var rows = {
23 hostname: {
24 required: true,
25 defaultValue: me.pveSelNode.data.name,
0070ee37 26 header: gettext('Hostname'),
8fb7d745 27 editor: caps.vms['VM.Config.Network'] ? {
7690de6e 28 xtype: 'pveWindowEdit',
0070ee37 29 subject: gettext('Hostname'),
7690de6e
DM
30 items: {
31 xtype: 'textfield',
32 name: 'hostname',
b2fe56d8 33 vtype: 'DnsName',
7690de6e 34 value: '',
0070ee37 35 fieldLabel: gettext('Hostname'),
7690de6e
DM
36 allowBlank: true,
37 emptyText: me.pveSelNode.data.name
38 }
8fb7d745 39 } : undefined
7690de6e
DM
40 },
41 searchdomain: {
0070ee37 42 header: gettext('DNS domain'),
7690de6e 43 defaultValue: '',
8fb7d745 44 editor: caps.vms['VM.Config.Network'] ? {
7690de6e 45 xtype: 'pveWindowEdit',
0070ee37 46 subject: gettext('DNS domain'),
7690de6e
DM
47 items: {
48 xtype: 'pvetextfield',
49 name: 'searchdomain',
0070ee37 50 fieldLabel: gettext('DNS domain'),
7690de6e
DM
51 allowBlank: false
52 }
8fb7d745 53 } : undefined
7690de6e
DM
54 },
55 nameserver: {
e4e3bdd4 56 header: gettext('DNS server'),
7690de6e 57 defaultValue: '',
8fb7d745 58 editor: caps.vms['VM.Config.Network'] ? {
7690de6e 59 xtype: 'pveWindowEdit',
f3bb9bb6 60 subject: gettext('DNS server'),
7690de6e
DM
61 items: {
62 xtype: 'pvetextfield',
63 name: 'nameserver',
e4e3bdd4 64 fieldLabel: gettext('DNS server'),
7690de6e
DM
65 allowBlank: false
66 }
8fb7d745 67 } : undefined
7690de6e
DM
68 }
69 };
70
71 var baseurl = 'nodes/' + nodename + '/openvz/' + vmid + '/config';
72
73 var reload = function() {
74 me.rstore.load();
75 };
76
f3bb9bb6
DM
77 var sm = Ext.create('Ext.selection.RowModel', {});
78
7690de6e 79 var run_editor = function() {
7690de6e
DM
80 var rec = sm.getSelection()[0];
81 if (!rec) {
82 return;
83 }
84
85 var rowdef = rows[rec.data.key];
86 if (!rowdef.editor) {
87 return;
88 }
89
90 var config = Ext.apply({
91 pveSelNode: me.pveSelNode,
92 confid: rec.data.key,
93 url: '/api2/extjs/' + baseurl
94 }, rowdef.editor);
95 var win = Ext.createWidget(rowdef.editor.xtype, config);
96 win.load();
97
98 win.show();
99 win.on('destroy', reload);
100 };
101
f3bb9bb6
DM
102 var edit_btn = new PVE.button.Button({
103 text: gettext('Edit'),
7690de6e 104 disabled: true,
f3bb9bb6
DM
105 selModel: sm,
106 enableFn: function(rec) {
107 var rowdef = rows[rec.data.key];
108 return !!rowdef.editor;
109 },
7690de6e
DM
110 handler: run_editor
111 });
112
113 var set_button_status = function() {
114 var sm = me.getSelectionModel();
115 var rec = sm.getSelection()[0];
116
117 if (!rec) {
118 edit_btn.disable();
119 return;
120 }
121 var rowdef = rows[rec.data.key];
122 edit_btn.setDisabled(!rowdef.editor);
123 };
124
125 Ext.applyIf(me, {
126 url: "/api2/json/nodes/" + nodename + "/openvz/" + vmid + "/config",
f3bb9bb6 127 selModel: sm,
7690de6e
DM
128 cwidth1: 150,
129 tbar: [ edit_btn ],
130 rows: rows,
131 listeners: {
132 itemdblclick: run_editor,
133 selectionchange: set_button_status
134 }
135 });
136
137 me.callParent();
138
139 me.on('show', reload);
140 }
141});
142