]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/dc/OptionView.js
rename manager5 to manager6
[pve-manager.git] / www / manager6 / dc / OptionView.js
1 Ext.define('PVE.dc.HttpProxyEdit', {
2 extend: 'PVE.window.Edit',
3
4 initComponent : function() {
5 var me = this;
6
7 Ext.applyIf(me, {
8 subject: gettext('HTTP proxy'),
9 items: {
10 xtype: 'pvetextfield',
11 name: 'http_proxy',
12 vtype: 'HttpProxy',
13 emptyText: gettext('Do not use any proxy'),
14 deleteEmpty: true,
15 value: '',
16 fieldLabel: gettext('HTTP proxy')
17 }
18 });
19
20 me.callParent();
21
22 me.load();
23 }
24 });
25
26 Ext.define('PVE.dc.KeyboardEdit', {
27 extend: 'PVE.window.Edit',
28
29 initComponent : function() {
30 var me = this;
31
32 Ext.applyIf(me, {
33 subject: gettext('Keyboard Layout'),
34 items: {
35 xtype: 'VNCKeyboardSelector',
36 name: 'keyboard',
37 value: '',
38 fieldLabel: gettext('Keyboard Layout')
39 }
40 });
41
42 me.callParent();
43
44 me.load();
45 }
46 });
47
48 Ext.define('PVE.dc.ConsoleViewerEdit', {
49 extend: 'PVE.window.Edit',
50
51 initComponent : function() {
52 var me = this;
53
54 var data = [];
55
56 Ext.Array.each(['', 'vv', 'html5'], function(value) {
57 data.push([value, PVE.Utils.render_console_viewer(value)]);
58 });
59
60 Ext.applyIf(me, {
61 subject: gettext('Console Viewer'),
62 items: {
63 xtype: 'pveKVComboBox',
64 name: 'console',
65 value: '',
66 fieldLabel: gettext('Console Viewer'),
67 comboItems: data,
68 }
69 });
70
71 me.callParent();
72
73 me.load();
74 }
75 });
76
77 Ext.define('PVE.dc.EmailFromEdit', {
78 extend: 'PVE.window.Edit',
79
80 initComponent : function() {
81 var me = this;
82
83 Ext.applyIf(me, {
84 subject: gettext('Email from address'),
85 items: {
86 xtype: 'pvetextfield',
87 name: 'email_from',
88 vtype: 'email',
89 emptyText: gettext('Send emails from root@$hostname'),
90 deleteEmpty: true,
91 value: '',
92 fieldLabel: gettext('Email from address')
93 }
94 });
95
96 me.callParent();
97
98 me.load();
99 }
100 });
101
102 Ext.define('PVE.dc.OptionView', {
103 extend: 'PVE.grid.ObjectGrid',
104 alias: ['widget.pveDcOptionView'],
105
106 noProxyText: gettext('Do not use any proxy'),
107 noEmailFromText: gettext('Send emails from root@$hostname'),
108
109 initComponent : function() {
110 var me = this;
111
112 var reload = function() {
113 me.rstore.load();
114 };
115
116 var rows = {
117 keyboard: {
118 header: gettext('Keyboard Layout'),
119 editor: 'PVE.dc.KeyboardEdit',
120 renderer: PVE.Utils.render_kvm_language,
121 required: true
122 },
123 http_proxy: {
124 header: gettext('HTTP proxy'),
125 editor: 'PVE.dc.HttpProxyEdit',
126 required: true,
127 renderer: function(value) {
128 if (!value) {
129 return me.noProxyText;
130 }
131 return value;
132 }
133 },
134 console: {
135 header: gettext('Console Viewer'),
136 editor: 'PVE.dc.ConsoleViewerEdit',
137 required: true,
138 renderer: PVE.Utils.render_console_viewer
139 },
140 email_from: {
141 header: gettext('Email from address'),
142 editor: 'PVE.dc.EmailFromEdit',
143 required: true,
144 renderer: function(value) {
145 if (!value) {
146 return me.noEmailFromText;
147 }
148 return value;
149 }
150 }
151 };
152
153 var sm = Ext.create('Ext.selection.RowModel', {});
154
155 var run_editor = function() {
156 var rec = sm.getSelection()[0];
157 if (!rec) {
158 return;
159 }
160
161 var rowdef = rows[rec.data.key];
162 if (!rowdef.editor) {
163 return;
164 }
165
166 var win = Ext.create(rowdef.editor, {
167 url: "/api2/extjs/cluster/options",
168 confid: rec.data.key
169 });
170 win.show();
171 win.on('destroy', reload);
172 };
173
174 var edit_btn = new PVE.button.Button({
175 text: gettext('Edit'),
176 disabled: true,
177 selModel: sm,
178 handler: run_editor
179 });
180
181 Ext.applyIf(me, {
182 url: "/api2/json/cluster/options",
183 cwidth1: 130,
184 interval: 1000,
185 selModel: sm,
186 tbar: [ edit_btn ],
187 rows: rows,
188 listeners: {
189 itemdblclick: run_editor
190 }
191 });
192
193 me.callParent();
194
195 me.on('show', reload);
196 }
197 });