]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/sdn/ControllerView.js
ui: eslint: fix various spacing related issues
[pve-manager.git] / www / manager6 / sdn / ControllerView.js
1 Ext.define('PVE.sdn.ControllerView', {
2 extend: 'Ext.grid.GridPanel',
3 alias: ['widget.pveSDNControllerView'],
4
5 onlineHelp: 'pvesdn_controller_plugins',
6
7 stateful: true,
8 stateId: 'grid-sdn-controller',
9
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;
14 }
15
16 Ext.create('PVE.sdn.controllers.BaseEdit', {
17 paneltype: 'PVE.sdn.controllers.' + schema.ipanel,
18 type: type,
19 controllerid: sid,
20 autoShow: true,
21 listeners: {
22 destroy: this.reloadStore,
23 },
24 });
25 },
26
27 initComponent: function() {
28 var me = this;
29
30 var store = new Ext.data.Store({
31 model: 'pve-sdn-controller',
32 proxy: {
33 type: 'proxmox',
34 url: "/api2/json/cluster/sdn/controllers",
35 },
36 sorters: {
37 property: 'controller',
38 order: 'DESC',
39 },
40 });
41
42 var reload = function() {
43 store.load();
44 };
45
46 var sm = Ext.create('Ext.selection.RowModel', {});
47
48 var run_editor = function() {
49 var rec = sm.getSelection()[0];
50 if (!rec) {
51 return;
52 }
53 var type = rec.data.type,
54 controller = rec.data.controller;
55
56 me.createSDNControllerEditWindow(type, controller);
57 };
58
59 var edit_btn = new Proxmox.button.Button({
60 text: gettext('Edit'),
61 disabled: true,
62 selModel: sm,
63 handler: run_editor,
64 });
65
66 var remove_btn = Ext.create('Proxmox.button.StdRemoveButton', {
67 selModel: sm,
68 baseurl: '/cluster/sdn/controllers/',
69 callback: reload,
70 });
71
72 // else we cannot dynamically generate the add menu handlers
73 var addHandleGenerator = function(type) {
74 return function() { me.createSDNControllerEditWindow(type); };
75 };
76 var addMenuItems = [], type;
77
78 for (type in PVE.Utils.sdncontrollerSchema) {
79 var controller = PVE.Utils.sdncontrollerSchema[type];
80 if (controller.hideAdd) {
81 continue;
82 }
83 addMenuItems.push({
84 text: PVE.Utils.format_sdncontroller_type(type),
85 iconCls: 'fa fa-fw fa-' + controller.faIcon,
86 handler: addHandleGenerator(type),
87 });
88 }
89
90 Ext.apply(me, {
91 store: store,
92 reloadStore: reload,
93 selModel: sm,
94 viewConfig: {
95 trackOver: false,
96 },
97 tbar: [
98 {
99 text: gettext('Add'),
100 menu: new Ext.menu.Menu({
101 items: addMenuItems,
102 }),
103 },
104 remove_btn,
105 edit_btn,
106 ],
107 columns: [
108 {
109 header: 'ID',
110 flex: 2,
111 sortable: true,
112 dataIndex: 'controller',
113 },
114 {
115 header: gettext('Type'),
116 flex: 1,
117 sortable: true,
118 dataIndex: 'type',
119 renderer: PVE.Utils.format_sdncontroller_type,
120 },
121 ],
122 listeners: {
123 activate: reload,
124 itemdblclick: run_editor,
125 },
126 });
127
128 me.callParent();
129 },
130 });