+/*global Proxmox*/
+/*jslint confusion: true*/
+/* bind is a function and object,
+ * callback is a function and string
+ */
Ext.define('pmg-rule-list', {
extend: 'Ext.data.Model',
fields: [
layout: 'border',
border: false,
defaults: {
- border: false,
+ border: false
},
controller: {
selectedRuleChange: function(grid, selected, eOpts) {
var me = this;
var infoPanel = me.lookupReference('infopanel');
- var baseurl = undefined;
+ var baseurl = '';
if (selected.length > 0) {
baseurl = '/config/ruledb/rules/' + selected[0].data.id;
var win = Ext.create('PMG.RuleEditor', {
url: '/api2/extjs/config/ruledb/rules/',
method: 'POST',
- create: true,
+ isCreate: true,
listeners: {
destroy: function() {
me.lookupReference('rulegrid').getStore().load();
win.show();
},
+ onFactoryDefaults: function() {
+ var me = this;
+
+ Ext.Msg.confirm(
+ gettext('Confirm'),
+ gettext('Reset rule database to factory defaults?'),
+ function(button) {
+ if (button !== 'yes') {
+ return;
+ }
+ var url = '/config/ruledb';
+ Proxmox.Utils.API2Request({
+ url: '/config/ruledb',
+ method: 'POST',
+ waitMsgTarget: me.getView(),
+ callback: function() {
+ me.reload();
+ },
+ failure: function (response, opts) {
+ Ext.Msg.alert(gettext('Error'), response.htmlStatus);
+ }
+ });
+ }
+ );
+ },
+
+ init: function(view) {
+ var grid = this.lookupReference('rulegrid');
+ Proxmox.Utils.monStoreErrors(grid, grid.getStore(), true);
+ },
+
control: {
'grid[reference=rulegrid]': {
itemdblclick: 'showEditWindow',
data: {
selectedRule: undefined,
baseUrl: '/config/ruledb/rules'
- },
+ }
},
items: [
xtype: 'button',
text: gettext('Add'),
iconCls: 'fa fa-plus-circle',
- reference: 'addButton',
+ reference: 'addButton'
},
{
xtype: 'proxmoxStdRemoveButton',
iconCls: 'fa fa-minus-circle',
reference: 'removeButton',
callback: 'reload',
- getRecordName: function(rec) { return rec.data.name },
+ getRecordName: function(rec) { return rec.data.name; },
bind: {
baseurl: '{baseUrl}'
}
+ },
+ '->',
+ {
+ text: gettext('Factory Defaults'),
+ handler: 'onFactoryDefaults'
}
]
},
direction: 'DESC'
},
{
- property: 'name',
+ property: 'name'
}
]
},
{
text: 'Active',
dataIndex: 'active',
- hidden : true,
+ hidden : true
},
{
text: 'Name',
dataIndex: 'name',
- flex: 1,
+ flex: 1
},
{
text: 'Priority',
- dataIndex: 'priority',
+ dataIndex: 'priority'
},
{
text: 'Direction',
renderer: PMG.Utils.format_rule_direction
},
{
- text: 'Actions',
+ text: '',
xtype: 'actioncolumn',
+ align: 'center',
+ width: 70,
items: [
{
iconCls: 'fa fa-fw fa-pencil',
return (rec.get('active') ? 'Deactivate' : 'Activate');
},
handler: 'toggleIconClick'
- },
+ }
]
}
- ],
+ ]
},
{
region: 'east',
reference: 'infopanel',
xtype: 'pmgRuleInfo',
split: true,
- width: 440,
+ width: 440
}
]
});