]>
Commit | Line | Data |
---|---|---|
bb2948de DM |
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: { | |
dbed4c1c | 10 | xtype: 'proxmoxtextfield', |
bb2948de DM |
11 | name: 'http_proxy', |
12 | vtype: 'HttpProxy', | |
e7ade592 | 13 | emptyText: Proxmox.Utils.noneText, |
bb2948de DM |
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', | |
f2782813 | 37 | value: '__default__', |
bb2948de DM |
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 | ||
f2782813 | 56 | Ext.Array.each(['__default__','vv', 'html5'], function(value) { |
bb2948de DM |
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', | |
f2782813 | 65 | value: '__default__', |
d5301f23 | 66 | fieldLabel: gettext('Console Viewer'), |
22f2f9d6 | 67 | comboItems: data |
bb2948de DM |
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: { | |
dbed4c1c | 86 | xtype: 'proxmoxtextfield', |
bb2948de | 87 | name: 'email_from', |
8ca163bd | 88 | vtype: 'pveMail', |
185a77e5 | 89 | emptyText: 'root@$hostname', |
bb2948de DM |
90 | deleteEmpty: true, |
91 | value: '', | |
92 | fieldLabel: gettext('Email from address') | |
93 | } | |
94 | }); | |
95 | ||
96 | me.callParent(); | |
97 | ||
98 | me.load(); | |
99 | } | |
100 | }); | |
101 | ||
4050aade WB |
102 | Ext.define('PVE.dc.MacPrefixEdit', { |
103 | extend: 'PVE.window.Edit', | |
104 | ||
105 | initComponent : function() { | |
106 | var me = this; | |
107 | ||
108 | Ext.applyIf(me, { | |
109 | subject: gettext('MAC address prefix'), | |
110 | items: { | |
dbed4c1c | 111 | xtype: 'proxmoxtextfield', |
4050aade WB |
112 | name: 'mac_prefix', |
113 | regex: /^[a-f0-9]{2}(?::[a-f0-9]{2}){0,2}:?$/i, | |
114 | regexText: gettext('Example') + ': 02:8f', | |
e7ade592 | 115 | emptyText: Proxmox.Utils.noneText, |
4050aade WB |
116 | deleteEmpty: true, |
117 | value: '', | |
118 | fieldLabel: gettext('MAC address prefix') | |
119 | } | |
120 | }); | |
121 | ||
122 | me.callParent(); | |
123 | ||
124 | me.load(); | |
125 | } | |
126 | }); | |
127 | ||
bb2948de DM |
128 | Ext.define('PVE.dc.OptionView', { |
129 | extend: 'PVE.grid.ObjectGrid', | |
130 | alias: ['widget.pveDcOptionView'], | |
131 | ||
ba93a9c6 DC |
132 | onlineHelp: 'datacenter_configuration_file', |
133 | ||
bb2948de DM |
134 | initComponent : function() { |
135 | var me = this; | |
136 | ||
137 | var reload = function() { | |
138 | me.rstore.load(); | |
139 | }; | |
140 | ||
141 | var rows = { | |
142 | keyboard: { | |
143 | header: gettext('Keyboard Layout'), | |
144 | editor: 'PVE.dc.KeyboardEdit', | |
145 | renderer: PVE.Utils.render_kvm_language, | |
146 | required: true | |
147 | }, | |
148 | http_proxy: { | |
149 | header: gettext('HTTP proxy'), | |
150 | editor: 'PVE.dc.HttpProxyEdit', | |
151 | required: true, | |
152 | renderer: function(value) { | |
153 | if (!value) { | |
e7ade592 | 154 | return Proxmox.Utils.noneText; |
bb2948de DM |
155 | } |
156 | return value; | |
157 | } | |
158 | }, | |
159 | console: { | |
160 | header: gettext('Console Viewer'), | |
161 | editor: 'PVE.dc.ConsoleViewerEdit', | |
162 | required: true, | |
163 | renderer: PVE.Utils.render_console_viewer | |
164 | }, | |
165 | email_from: { | |
166 | header: gettext('Email from address'), | |
167 | editor: 'PVE.dc.EmailFromEdit', | |
168 | required: true, | |
169 | renderer: function(value) { | |
170 | if (!value) { | |
185a77e5 | 171 | return 'root@$hostname'; |
bb2948de DM |
172 | } |
173 | return value; | |
174 | } | |
4050aade WB |
175 | }, |
176 | mac_prefix: { | |
177 | header: gettext('MAC address prefix'), | |
178 | editor: 'PVE.dc.MacPrefixEdit', | |
179 | required: true, | |
180 | renderer: function(value) { | |
181 | if (!value) { | |
e7ade592 | 182 | return Proxmox.Utils.noneText; |
4050aade WB |
183 | } |
184 | return value; | |
185 | } | |
bb2948de DM |
186 | } |
187 | }; | |
188 | ||
189 | var sm = Ext.create('Ext.selection.RowModel', {}); | |
190 | ||
191 | var run_editor = function() { | |
192 | var rec = sm.getSelection()[0]; | |
193 | if (!rec) { | |
194 | return; | |
195 | } | |
196 | ||
197 | var rowdef = rows[rec.data.key]; | |
198 | if (!rowdef.editor) { | |
199 | return; | |
200 | } | |
201 | ||
202 | var win = Ext.create(rowdef.editor, { | |
203 | url: "/api2/extjs/cluster/options", | |
204 | confid: rec.data.key | |
205 | }); | |
206 | win.show(); | |
207 | win.on('destroy', reload); | |
208 | }; | |
209 | ||
5720fafa | 210 | var edit_btn = new Proxmox.button.Button({ |
bb2948de DM |
211 | text: gettext('Edit'), |
212 | disabled: true, | |
213 | selModel: sm, | |
214 | handler: run_editor | |
215 | }); | |
216 | ||
bc5d0cf8 | 217 | Ext.apply(me, { |
bb2948de | 218 | url: "/api2/json/cluster/options", |
bb2948de DM |
219 | interval: 1000, |
220 | selModel: sm, | |
221 | tbar: [ edit_btn ], | |
222 | rows: rows, | |
223 | listeners: { | |
c0b3df6e EK |
224 | itemdblclick: run_editor, |
225 | activate: reload | |
bb2948de DM |
226 | } |
227 | }); | |
228 | ||
229 | me.callParent(); | |
bb2948de DM |
230 | } |
231 | }); |