]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/sdn/ZoneView.js
1 Ext
.define('PVE.sdn.ZoneView', {
2 extend
: 'Ext.grid.GridPanel',
3 alias
: ['widget.pveSDNZoneView'],
5 onlineHelp
: 'pvesdn_zone_plugins',
8 stateId
: 'grid-sdn-zone',
10 createSDNEditWindow: function(type
, sid
) {
11 let schema
= PVE
.Utils
.sdnzoneSchema
[type
];
12 if (!schema
|| !schema
.ipanel
) {
13 throw "no editor registered for zone type: " + type
;
16 Ext
.create('PVE.sdn.zones.BaseEdit', {
17 paneltype
: 'PVE.sdn.zones.' + schema
.ipanel
,
22 destroy
: this.reloadStore
27 initComponent : function() {
30 let store
= new Ext
.data
.Store({
31 model
: 'pve-sdn-zone',
34 url
: "/api2/json/cluster/sdn/zones"
42 let reload = function() {
46 let sm
= Ext
.create('Ext.selection.RowModel', {});
48 let run_editor = function() {
49 let rec
= sm
.getSelection()[0];
53 let type
= rec
.data
.type
,
56 me
.createSDNEditWindow(type
, zone
);
59 let edit_btn
= new Proxmox
.button
.Button({
60 text
: gettext('Edit'),
66 let remove_btn
= Ext
.create('Proxmox.button.StdRemoveButton', {
68 baseurl
: '/cluster/sdn/zones/',
72 // else we cannot dynamically generate the add menu handlers
73 let addHandleGenerator = function(type
) {
74 return function() { me
.createSDNEditWindow(type
); };
76 let addMenuItems
= [], type
;
78 for (type
in PVE
.Utils
.sdnzoneSchema
) {
79 let zone
= PVE
.Utils
.sdnzoneSchema
[type
];
84 text
: PVE
.Utils
.format_sdnzone_type(type
),
85 iconCls
: 'fa fa-fw fa-' + zone
.faIcon
,
86 handler
: addHandleGenerator(type
)
100 menu
: new Ext
.menu
.Menu({
114 header
: gettext('Type'),
117 renderer
: PVE
.Utils
.format_sdnzone_type
120 header
: gettext('Nodes'),
127 itemdblclick
: run_editor