-/*global Proxmox*/
Ext.define('PMG.ObjectGroup', {
extend: 'Ext.grid.GridPanel',
alias: 'widget.pmgObjectGroup',
emptyText: gettext('Please select an object.'),
setBaseUrl: function(baseurl) {
- var me = this;
+ let me = this;
me.baseurl = baseurl;
me.store.setData([]);
me.setButtonState(me.store, [], false);
} else {
- var url = '/api2/json' + me.baseurl + '/objects';
+ let url = '/api2/json' + me.baseurl + '/objects';
me.store.proxy.setUrl(url);
me.store.load();
}
},
setObjectInfo: function(ogdata) {
- var me = this;
+ let me = this;
me.ogdata = ogdata;
if (me.ogdata === undefined) {
-
me.down('#oginfo').update(me.emptyText);
-
} else {
-
- var html = '<b>' + Ext.String.htmlEncode(me.ogdata.name) + '</b>';
+ let html = '<b>' + Ext.String.htmlEncode(me.ogdata.name) + '</b>';
html += "<br><br>";
html += Ext.String.htmlEncode(Ext.String.trim(me.ogdata.info));
},
setButtonState: function(store, records, success) {
- var me = this;
+ let me = this;
if (!success || !me.baseurl) {
me.down('#addMenuButton').setDisabled(true);
return;
me.down('#addMenuButton').setDisabled(false);
},
- initComponent : function() {
- var me = this;
+ initComponent: function() {
+ let me = this;
me.store = new Ext.data.Store({
model: 'pmg-object-list',
proxy: {
- type: 'proxmox'
+ type: 'proxmox',
},
sorters: [
{
- property : 'receivertest'
+ property: 'receivertest',
},
{
- property : 'otype',
- direction: 'ASC'
- }
- ]
+ property: 'otype',
+ direction: 'ASC',
+ },
+ ],
});
me.columns = [{
header: gettext('Type'),
dataIndex: 'otype',
renderer: PMG.Utils.format_otype,
- width: 200
+ width: 200,
}];
if (me.showDirection) {
dataIndex: 'receivertest',
renderer: function(value) {
return value ? PMG.Utils.receiverText : PMG.Utils.senderText;
- }
+ },
});
}
header: gettext('Value'),
dataIndex: 'descr',
renderer: Ext.String.htmlEncode,
- flex: 1
+ flex: 1,
});
- var reload = function() {
+ let reload = function() {
me.store.load();
};
me.selModel = Ext.create('Ext.selection.RowModel', {});
- var remove_btn = Ext.createWidget('proxmoxStdRemoveButton', {
+ let remove_btn = Ext.createWidget('proxmoxStdRemoveButton', {
selModel: me.selModel,
getUrl: function(rec) {
return me.baseurl + '/objects/' + rec.data.id;
return PMG.Utils.format_otype(rec.data.otype) +
': ' + rec.data.descr;
},
- waitMsgTarget: me
+ waitMsgTarget: me,
});
- var full_subject = function(subject, receivertest) {
+ let full_subject = function(subject, receivertest) {
if (me.showDirection) {
- var direction = receivertest ?
- PMG.Utils.receiverText : PMG.Utils.senderText;
+ let direction = receivertest
+ ? PMG.Utils.receiverText : PMG.Utils.senderText;
return subject + ' (' + direction + ')';
} else {
}
};
- var run_editor = function() {
- var rec = me.selModel.getSelection()[0];
+ let run_editor = function() {
+ let rec = me.selModel.getSelection()[0];
if (!rec) {
return;
}
- var editor = PMG.Utils.object_editors[rec.data.otype];
+ let editor = PMG.Utils.object_editors[rec.data.otype];
if (!editor || editor.uneditable) {
return;
}
- var config = Ext.apply({ method: 'PUT' }, editor);
+ let config = Ext.apply({ method: 'PUT' }, editor);
config.subject = full_subject(editor.subject, rec.data.receivertest);
config.url = me.baseurl + '/' + editor.subdir + '/' + rec.data.id;
- var win = Ext.createWidget(config);
+ let win = Ext.createWidget(config);
win.load();
win.on('destroy', reload);
win.show();
};
- var menu_items = [];
+ let menu_items = [];
Ext.Array.each(me.otype_list, function(otype) {
+ let editor = PMG.Utils.object_editors[otype];
- var editor = PMG.Utils.object_editors[otype];
-
- var config = Ext.apply({ method: 'POST' }, editor);
+ let config = Ext.apply({ method: 'POST' }, editor);
config.subject = full_subject(editor.subject, editor.receivertest);
menu_items.push({
text: config.subject,
iconCls: config.iconCls || 'fa fa-question-circle',
handler: function() {
- if (me.baseurl == undefined) {
+ if (me.baseurl === undefined) {
return;
}
config.url = me.baseurl + '/' + editor.subdir;
- var win = Ext.create(config);
+ let win = Ext.create(config);
win.on('destroy', reload);
win.show();
- }
+ },
});
});
disabled: true,
itemId: 'addMenuButton',
menu: {
- items: menu_items
- }
+ items: menu_items,
+ },
},
{
xtype: 'proxmoxButton',
disabled: true,
selModel: me.selModel,
enableFn: function(rec) {
- var editor = PMG.Utils.object_editors[rec.data.otype];
- return (editor && !editor.uneditable);
+ let editor = PMG.Utils.object_editors[rec.data.otype];
+ return editor && !editor.uneditable;
},
- handler: run_editor
+ handler: run_editor,
},
- remove_btn
- ]
+ remove_btn,
+ ],
});
me.dockedItems.push({
dock: 'top',
border: 1,
layout: 'anchor',
- hidden: me.hideGroupInfo ? true : false,
+ hidden: !!me.hideGroupInfo,
itemId: 'ogdata',
items: [
{
me.fireEvent('dblclickOGInfo', me, e, t, me.ogdata);
},
element: 'el',
- scope: this
- }
- }
- }
- ]
+ scope: this,
+ },
+ },
+ },
+ ],
});
Proxmox.Utils.monStoreErrors(me, me.store, true);
Ext.apply(me, {
+ run_editor: run_editor,
listeners: {
itemdblclick: run_editor,
- activate: reload
- }
+ activate: reload,
+ },
});
me.callParent();
if (me.baseurl) {
me.setBaseUrl(me.baseurl); // configure store, load()
}
- }
+ },
});