]>
git.proxmox.com Git - pmg-gui.git/blob - js/RuleConfiguration.js
1 /*jslint confusion: true*/
2 /* bind is a function and object,
3 * callback is a function and string
5 Ext
.define('pmg-rule-list', {
6 extend
: 'Ext.data.Model',
9 { name
: 'active', type
: 'boolean' },
10 { name
: 'direction', type
: 'integer' },
11 { name
: 'priority', type
: 'integer' },
16 Ext
.define('PMG.RulesConfiguration', {
17 extend
: 'Ext.container.Container',
18 xtype
: 'pmgRuleConfiguration',
27 xclass
: 'Ext.app.ViewController',
29 selectedRuleChange: function(grid
, selected
, eOpts
) {
31 var infoPanel
= me
.lookupReference('infopanel');
34 if (selected
.length
> 0) {
35 baseurl
= '/config/ruledb/rules/' + selected
[0].data
.id
;
38 infoPanel
.getController().setBaseUrl(baseurl
);
41 editIconClick: function(gridView
, rowindex
, colindex
, column
, e
, record
) {
43 me
.showEditWindow(gridView
, record
);
46 showEditWindow: function(gridView
, record
) {
48 var win
= Ext
.create('PMG.RuleEditor', {
49 url
: '/api2/extjs/config/ruledb/rules/' + record
.data
.id
+ '/config',
52 gridView
.getStore().load();
60 toggleIconClick: function(gridView
, rowindex
, colindex
, column
, e
, record
) {
62 Proxmox
.Utils
.API2Request({
63 url
: '/config/ruledb/rules/' + record
.data
.id
+ '/config',
65 active
: record
.data
.active
? 0 : 1,
68 callback: function() {
69 gridView
.getStore().load();
71 failure: function(response
, opts
) {
72 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
79 me
.lookupReference('rulegrid').getStore().load();
84 var win
= Ext
.create('PMG.RuleEditor', {
85 url
: '/api2/extjs/config/ruledb/rules/',
90 me
.lookupReference('rulegrid').getStore().load();
98 onFactoryDefaults: function() {
103 gettext('Reset rule database to factory defaults?'),
105 if (button
!== 'yes') {
108 var url
= '/config/ruledb';
109 Proxmox
.Utils
.API2Request({
110 url
: '/config/ruledb',
112 waitMsgTarget
: me
.getView(),
113 callback: function() {
116 failure: function(response
, opts
) {
117 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
124 init: function(view
) {
125 var grid
= this.lookupReference('rulegrid');
126 Proxmox
.Utils
.monStoreErrors(grid
, grid
.getStore(), true);
130 'grid[reference=rulegrid]': {
131 itemdblclick
: 'showEditWindow',
132 selectionchange
: 'selectedRuleChange',
134 'button[reference=addButton]': {
142 selectedRule
: undefined,
143 baseUrl
: '/config/ruledb/rules',
152 reference
: 'rulegrid',
156 selection
: '{selectedRule}',
165 text
: gettext('Add'),
166 iconCls
: 'fa fa-plus-circle',
167 reference
: 'addButton',
170 xtype
: 'proxmoxStdRemoveButton',
171 text
: gettext('Remove'),
172 iconCls
: 'fa fa-minus-circle',
173 reference
: 'removeButton',
175 getRecordName: function(rec
) { return rec
.data
.name
; },
177 baseurl
: '{baseUrl}',
182 text
: gettext('Factory Defaults'),
183 handler
: 'onFactoryDefaults',
189 getRowClass: function(record
, rowIndex
) {
190 return record
.get('active') ? 'enabled' : 'disabled';
196 model
: 'pmg-rule-list',
197 reference
: 'rulesStore',
200 url
: '/api2/json/config/ruledb/rules',
204 property
: 'priority',
213 sortableColumns
: false,
227 dataIndex
: 'priority',
231 dataIndex
: 'direction',
232 renderer
: PMG
.Utils
.format_rule_direction
,
236 xtype
: 'actioncolumn',
241 iconCls
: 'fa fa-fw fa-pencil',
243 handler
: 'editIconClick',
246 getClass: function(val
, meta
, rec
) {
247 return 'fa fa-fw fa-' + (rec
.get('active') ? 'toggle-on' : 'toggle-off');
249 getTip: function(val
, meta
, rec
) {
250 return rec
.get('active') ? 'Deactivate' : 'Activate';
252 handler
: 'toggleIconClick',
260 reference
: 'infopanel',
261 xtype
: 'pmgRuleInfo',