]>
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: { | |
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(['', 'applet', '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 | data: data, | |
66 | value: '', | |
67 | fieldLabel: gettext('Console Viewer') | |
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 | }); |