1 Ext
.define('PVE.sdn.ControllerView', {
2 extend
: 'Ext.grid.GridPanel',
3 alias
: ['widget.pveSDNControllerView'],
5 onlineHelp
: 'pvesdn_controller_plugins',
8 stateId
: 'grid-sdn-controller',
10 createSDNControllerEditWindow: function(type
, sid
) {
11 var schema
= PVE
.Utils
.sdncontrollerSchema
[type
];
12 if (!schema
|| !schema
.ipanel
) {
13 throw "no editor registered for controller type: " + type
;
16 Ext
.create('PVE.sdn.controllers.BaseEdit', {
17 paneltype
: 'PVE.sdn.controllers.' + schema
.ipanel
,
22 destroy
: this.reloadStore
,
27 initComponent: function() {
30 var store
= new Ext
.data
.Store({
31 model
: 'pve-sdn-controller',
34 url
: "/api2/json/cluster/sdn/controllers",
37 property
: 'controller',
42 var reload = function() {
46 var sm
= Ext
.create('Ext.selection.RowModel', {});
48 var run_editor = function() {
49 var rec
= sm
.getSelection()[0];
53 var type
= rec
.data
.type
,
54 controller
= rec
.data
.controller
;
56 me
.createSDNControllerEditWindow(type
, controller
);
59 var edit_btn
= new Proxmox
.button
.Button({
60 text
: gettext('Edit'),
66 var remove_btn
= Ext
.create('Proxmox.button.StdRemoveButton', {
68 baseurl
: '/cluster/sdn/controllers/',
72 // else we cannot dynamically generate the add menu handlers
73 var addHandleGenerator = function(type
) {
74 return function() { me
.createSDNControllerEditWindow(type
); };
76 var addMenuItems
= [], type
;
78 for (type
in PVE
.Utils
.sdncontrollerSchema
) {
79 var controller
= PVE
.Utils
.sdncontrollerSchema
[type
];
80 if (controller
.hideAdd
) {
84 text
: PVE
.Utils
.format_sdncontroller_type(type
),
85 iconCls
: 'fa fa-fw fa-' + controller
.faIcon
,
86 handler
: addHandleGenerator(type
),
100 menu
: new Ext
.menu
.Menu({
112 dataIndex
: 'controller',
115 header
: gettext('Type'),
119 renderer
: PVE
.Utils
.format_sdncontroller_type
,
124 itemdblclick
: run_editor
,