]>
git.proxmox.com Git - pmg-gui.git/blob - js/RuleConfiguration.js
2 Ext
.define('pmg-rule-list', {
3 extend
: 'Ext.data.Model',
6 { name
: 'active', type
: 'boolean' },
7 { name
: 'direction', type
: 'integer' },
8 { name
: 'priority', type
: 'integer' }
13 Ext
.define('PMG.RulesConfiguration', {
14 extend
: 'Ext.container.Container',
15 xtype
: 'pmgRuleConfiguration',
24 xclass
: 'Ext.app.ViewController',
26 selectedRuleChange: function(grid
, selected
, eOpts
) {
28 var infoPanel
= me
.lookupReference('infopanel');
29 var baseurl
= undefined;
31 if (selected
.length
> 0) {
32 baseurl
= '/config/ruledb/rules/' + selected
[0].data
.id
;
35 infoPanel
.getController().setBaseUrl(baseurl
);
38 editIconClick: function(gridView
, rowindex
, colindex
, column
, e
, record
) {
40 me
.showEditWindow(gridView
, record
);
43 showEditWindow: function(gridView
, record
) {
45 var win
= Ext
.create('PMG.RuleEditor', {
46 url
: '/api2/extjs/config/ruledb/rules/' + record
.data
.id
+ '/config',
49 gridView
.getStore().load();
57 toggleIconClick: function(gridView
, rowindex
, colindex
, column
, e
, record
) {
59 Proxmox
.Utils
.API2Request({
60 url
: '/config/ruledb/rules/' + record
.data
.id
+ '/config',
62 active
: record
.data
.active
? 0 : 1
65 callback: function() {
66 gridView
.getStore().load();
68 failure: function(response
, opts
) {
69 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
76 me
.lookupReference('rulegrid').getStore().load();
81 var win
= Ext
.create('PMG.RuleEditor', {
82 url
: '/api2/extjs/config/ruledb/rules/',
87 me
.lookupReference('rulegrid').getStore().load();
95 init: function(view
) {
96 var grid
= this.lookupReference('rulegrid');
97 Proxmox
.Utils
.monStoreErrors(grid
, grid
.getStore(), true);
101 'grid[reference=rulegrid]': {
102 itemdblclick
: 'showEditWindow',
103 selectionchange
: 'selectedRuleChange'
105 'button[reference=addButton]': {
113 selectedRule
: undefined,
114 baseUrl
: '/config/ruledb/rules'
123 reference
: 'rulegrid',
127 selection
: '{selectedRule}'
136 text
: gettext('Add'),
137 iconCls
: 'fa fa-plus-circle',
138 reference
: 'addButton'
141 xtype
: 'proxmoxStdRemoveButton',
142 text
: gettext('Remove'),
143 iconCls
: 'fa fa-minus-circle',
144 reference
: 'removeButton',
146 getRecordName: function(rec
) { return rec
.data
.name
},
155 getRowClass: function(record
, rowIndex
) {
156 return record
.get('active') ? 'enabled' : 'disabled';
162 model
: 'pmg-rule-list',
163 reference
: 'rulesStore',
166 url
: '/api2/json/config/ruledb/rules'
170 property
: 'priority',
179 sortableColumns
: false,
193 dataIndex
: 'priority'
197 dataIndex
: 'direction',
198 renderer
: PMG
.Utils
.format_rule_direction
202 xtype
: 'actioncolumn',
207 iconCls
: 'fa fa-fw fa-pencil',
209 handler
: 'editIconClick'
212 getClass: function(val
, meta
, rec
) {
213 return 'fa fa-fw fa-' + (rec
.get('active') ? 'toggle-on' : 'toggle-off');
215 getTip: function(val
, meta
, rec
) {
216 return (rec
.get('active') ? 'Deactivate' : 'Activate');
218 handler
: 'toggleIconClick'
226 reference
: 'infopanel',
227 xtype
: 'pmgRuleInfo',