]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/sdn/ControllerView.js
1 Ext
.define('PVE.sdn.ControllerView', {
2 extend
: 'Ext.grid.GridPanel',
3 alias
: ['widget.pveSDNControllerView'],
5 onlineHelp
: 'pvesdn_config_controllers',
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?pending=1",
37 property
: 'controller',
42 let sm
= Ext
.create('Ext.selection.RowModel', {});
44 let run_editor = function() {
45 let rec
= sm
.getSelection()[0];
49 let type
= rec
.data
.type
, controller
= rec
.data
.controller
;
50 me
.createSDNControllerEditWindow(type
, controller
);
53 let edit_btn
= new Proxmox
.button
.Button({
54 text
: gettext('Edit'),
60 let remove_btn
= Ext
.create('Proxmox.button.StdRemoveButton', {
62 baseurl
: '/cluster/sdn/controllers/',
63 callback
: () => store
.load(),
66 // else we cannot dynamically generate the add menu handlers
67 let addHandleGenerator = function(type
) {
68 return function() { me
.createSDNControllerEditWindow(type
); };
70 let addMenuItems
= [];
71 for (const [type
, controller
] of Object
.entries(PVE
.Utils
.sdncontrollerSchema
)) {
72 if (controller
.hideAdd
) {
76 text
: PVE
.Utils
.format_sdncontroller_type(type
),
77 iconCls
: 'fa fa-fw fa-' + controller
.faIcon
,
78 handler
: addHandleGenerator(type
),
84 reloadStore
: () => store
.load(),
92 menu
: new Ext
.menu
.Menu({
104 dataIndex
: 'controller',
105 renderer: function(value
, metaData
, rec
) {
106 return PVE
.Utils
.render_sdn_pending(rec
, value
, 'controller', 1);
110 header
: gettext('Type'),
114 renderer: function(value
, metaData
, rec
) {
115 return PVE
.Utils
.render_sdn_pending(rec
, value
, 'type', 1);
119 header
: gettext('Node'),
123 renderer: function(value
, metaData
, rec
) {
124 return PVE
.Utils
.render_sdn_pending(rec
, value
, 'node', 1);
128 header
: gettext('State'),
131 renderer: function(value
, metaData
, rec
) {
132 return PVE
.Utils
.render_sdn_pending_state(rec
, value
);
137 activate
: () => store
.load(),
138 itemdblclick
: run_editor
,