]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/sdn/DnsView.js
d1654cabe1ee1699ea3d3462c80c313c246b3068
1 Ext
.define('PVE.sdn.DnsView', {
2 extend
: 'Ext.grid.GridPanel',
3 alias
: ['widget.pveSDNDnsView'],
6 stateId
: 'grid-sdn-dns',
8 createSDNEditWindow: function(type
, sid
) {
9 let schema
= PVE
.Utils
.sdndnsSchema
[type
];
10 if (!schema
|| !schema
.ipanel
) {
11 throw "no editor registered for dns type: " + type
;
14 Ext
.create('PVE.sdn.dns.BaseEdit', {
15 paneltype
: 'PVE.sdn.dns.' + schema
.ipanel
,
20 destroy
: this.reloadStore
,
25 initComponent: function() {
28 let store
= new Ext
.data
.Store({
32 url
: "/api2/json/cluster/sdn/dns",
40 let sm
= Ext
.create('Ext.selection.RowModel', {});
42 let run_editor = function() {
43 let rec
= sm
.getSelection()[0];
47 let type
= rec
.data
.type
,
50 me
.createSDNEditWindow(type
, dns
);
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/dns/',
63 callback
: () => store
.load(),
66 // else we cannot dynamically generate the add menu handlers
67 let addHandleGenerator = function(type
) {
68 return function() { me
.createSDNEditWindow(type
); };
70 let addMenuItems
= [];
71 for (const [type
, dns
] of Object
.entries(PVE
.Utils
.sdndnsSchema
)) {
76 text
: PVE
.Utils
.format_sdndns_type(type
),
77 iconCls
: 'fa fa-fw fa-' + dns
.faIcon
,
78 handler
: addHandleGenerator(type
),
84 reloadStore
: () => store
.load(),
92 menu
: new Ext
.menu
.Menu({
106 header
: gettext('Type'),
109 renderer
: PVE
.Utils
.format_sdndns_type
,
118 activate
: () => store
.load(),
119 itemdblclick
: run_editor
,