]>
git.proxmox.com Git - pmg-gui.git/blob - js/RuleConfiguration.js
2 /*jslint confusion: true*/
3 /* create is a function and boolean,
4 * bind is a function and object,
5 * callback is a function and string
7 Ext
.define('pmg-rule-list', {
8 extend
: 'Ext.data.Model',
11 { name
: 'active', type
: 'boolean' },
12 { name
: 'direction', type
: 'integer' },
13 { name
: 'priority', type
: 'integer' }
18 Ext
.define('PMG.RulesConfiguration', {
19 extend
: 'Ext.container.Container',
20 xtype
: 'pmgRuleConfiguration',
29 xclass
: 'Ext.app.ViewController',
31 selectedRuleChange: function(grid
, selected
, eOpts
) {
33 var infoPanel
= me
.lookupReference('infopanel');
36 if (selected
.length
> 0) {
37 baseurl
= '/config/ruledb/rules/' + selected
[0].data
.id
;
40 infoPanel
.getController().setBaseUrl(baseurl
);
43 editIconClick: function(gridView
, rowindex
, colindex
, column
, e
, record
) {
45 me
.showEditWindow(gridView
, record
);
48 showEditWindow: function(gridView
, record
) {
50 var win
= Ext
.create('PMG.RuleEditor', {
51 url
: '/api2/extjs/config/ruledb/rules/' + record
.data
.id
+ '/config',
54 gridView
.getStore().load();
62 toggleIconClick: function(gridView
, rowindex
, colindex
, column
, e
, record
) {
64 Proxmox
.Utils
.API2Request({
65 url
: '/config/ruledb/rules/' + record
.data
.id
+ '/config',
67 active
: record
.data
.active
? 0 : 1
70 callback: function() {
71 gridView
.getStore().load();
73 failure: function(response
, opts
) {
74 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
81 me
.lookupReference('rulegrid').getStore().load();
86 var win
= Ext
.create('PMG.RuleEditor', {
87 url
: '/api2/extjs/config/ruledb/rules/',
92 me
.lookupReference('rulegrid').getStore().load();
100 onFactoryDefaults: function() {
105 gettext('Reset rule database to factory defaults?'),
107 if (button
!== 'yes') {
110 var url
= '/config/ruledb';
111 Proxmox
.Utils
.API2Request({
112 url
: '/config/ruledb',
114 waitMsgTarget
: me
.getView(),
115 callback: function() {
118 failure: function (response
, opts
) {
119 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
126 init: function(view
) {
127 var grid
= this.lookupReference('rulegrid');
128 Proxmox
.Utils
.monStoreErrors(grid
, grid
.getStore(), true);
132 'grid[reference=rulegrid]': {
133 itemdblclick
: 'showEditWindow',
134 selectionchange
: 'selectedRuleChange'
136 'button[reference=addButton]': {
144 selectedRule
: undefined,
145 baseUrl
: '/config/ruledb/rules'
154 reference
: 'rulegrid',
158 selection
: '{selectedRule}'
167 text
: gettext('Add'),
168 iconCls
: 'fa fa-plus-circle',
169 reference
: 'addButton'
172 xtype
: 'proxmoxStdRemoveButton',
173 text
: gettext('Remove'),
174 iconCls
: 'fa fa-minus-circle',
175 reference
: 'removeButton',
177 getRecordName: function(rec
) { return rec
.data
.name
; },
184 text
: gettext('Factory Defaults'),
185 handler
: 'onFactoryDefaults'
191 getRowClass: function(record
, rowIndex
) {
192 return record
.get('active') ? 'enabled' : 'disabled';
198 model
: 'pmg-rule-list',
199 reference
: 'rulesStore',
202 url
: '/api2/json/config/ruledb/rules'
206 property
: 'priority',
215 sortableColumns
: false,
229 dataIndex
: 'priority'
233 dataIndex
: 'direction',
234 renderer
: PMG
.Utils
.format_rule_direction
238 xtype
: 'actioncolumn',
243 iconCls
: 'fa fa-fw fa-pencil',
245 handler
: 'editIconClick'
248 getClass: function(val
, meta
, rec
) {
249 return 'fa fa-fw fa-' + (rec
.get('active') ? 'toggle-on' : 'toggle-off');
251 getTip: function(val
, meta
, rec
) {
252 return (rec
.get('active') ? 'Deactivate' : 'Activate');
254 handler
: 'toggleIconClick'
262 reference
: 'infopanel',
263 xtype
: 'pmgRuleInfo',