proxmox-backup/www/SystemConfiguration.js
Dominik Csapak f7ff48ded4 ui: add MetricServerView and use it
simple CRUD interface to show/add/edit/delete metric servers

it's a bit different from PVE's so it's harder to reuse that than to
copy it. If we need it again, we can still refactor and combine them.

introduce 'PBS.Schema' class to hold the server type/xtype mappings

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-06-13 10:01:05 +02:00

97 lines
2.0 KiB
JavaScript

Ext.define('PBS.SystemConfiguration', {
extend: 'Ext.tab.Panel',
xtype: 'pbsSystemConfiguration',
title: gettext('Configuration') + ': ' + gettext('System'),
border: true,
defaults: { border: false },
tools: [PBS.Utils.get_help_tool("sysadmin-network-configuration")],
items: [
{
xtype: 'panel',
title: gettext(' Network/Time'),
itemId: 'network',
iconCls: 'fa fa-exchange',
layout: {
type: 'vbox',
align: 'stretch',
multi: true,
},
scrollable: true,
defaults: {
collapsible: true,
animCollapse: false,
margin: '7 10 3 10',
},
items: [
{
xtype: 'proxmoxNodeTimeView',
title: gettext('Time'),
nodename: 'localhost',
},
{
xtype: 'proxmoxNodeDNSView',
title: gettext('DNS'),
nodename: 'localhost',
},
{
xtype: 'proxmoxNodeNetworkView',
title: gettext('Network Interfaces'),
flex: 1,
minHeight: 200,
showApplyBtn: true,
types: ['bond', 'bridge'],
nodename: 'localhost',
},
],
},
{
title: gettext('Metric Server'),
iconCls: 'fa fa-bar-chart',
xtype: 'pbsMetricServerView',
itemId: 'metrics',
},
{
xtype: 'panel',
title: gettext('Other'),
itemId: 'other-options',
iconCls: 'fa fa-sliders',
layout: {
type: 'vbox',
align: 'stretch',
multi: true,
},
scrollable: true,
defaults: {
collapsible: true,
animCollapse: false,
margin: '7 10 3 10',
},
items: [
{
title: gettext('General'),
xtype: 'pbsNodeOptionView',
},
{
title: gettext('WebAuthn TFA'),
xtype: 'pbsWebauthnConfigView',
},
],
},
],
initComponent: function() {
let me = this;
me.callParent();
let networktime = me.getComponent('network');
networktime.query()?.forEach(el => el.relayEvents(networktime, ['activate', 'deactivate', 'destroy']));
let options = me.getComponent('other-options');
options.query()?.forEach(el => el.relayEvents(options, ['activate', 'deactivate', 'destroy']));
},
});