5
0
mirror of git://git.proxmox.com/git/proxmox-backup.git synced 2025-02-08 05:57:44 +03:00
proxmox-backup/www/window/InfluxDbEdit.js

221 lines
4.2 KiB
JavaScript
Raw Normal View History

Ext.define('PBS.window.InfluxDbHttpEdit', {
extend: 'Proxmox.window.Edit',
mixins: ['Proxmox.Mixin.CBind'],
subject: 'InfluxDB (HTTP)',
cbindData: function() {
let me = this;
me.isCreate = !me.serverid;
me.serverid = me.serverid || "";
me.url = `/api2/extjs/config/metrics/influxdb-http/${me.serverid}`;
me.tokenEmptyText = me.isCreate ? '' : gettext('unchanged');
me.method = me.isCreate ? 'POST' : 'PUT';
if (!me.isCreate) {
me.subject = `${me.subject}: ${me.serverid}`;
}
return {};
},
items: [
{
xtype: 'inputpanel',
column1: [
{
xtype: 'pmxDisplayEditField',
name: 'name',
fieldLabel: gettext('Name'),
allowBlank: false,
cbind: {
editable: '{isCreate}',
value: '{serverid}',
},
},
{
xtype: 'proxmoxtextfield',
name: 'url',
fieldLabel: gettext('URL'),
allowBlank: false,
},
],
column2: [
{
xtype: 'checkbox',
name: 'enable',
fieldLabel: gettext('Enabled'),
inputValue: 1,
uncheckedValue: 0,
checked: true,
},
{
xtype: 'proxmoxtextfield',
name: 'organization',
fieldLabel: gettext('Organization'),
emptyText: 'proxmox',
cbind: {
deleteEmpty: '{!isCreate}',
},
},
{
xtype: 'proxmoxtextfield',
name: 'bucket',
fieldLabel: gettext('Bucket'),
emptyText: 'proxmox',
cbind: {
deleteEmpty: '{!isCreate}',
},
},
{
xtype: 'proxmoxtextfield',
name: 'token',
fieldLabel: gettext('Token'),
allowBlank: true,
deleteEmpty: false,
submitEmpty: false,
cbind: {
emptyText: '{tokenEmptyText}',
},
},
],
columnB: [
{
xtype: 'proxmoxtextfield',
name: 'comment',
fieldLabel: gettext('Comment'),
cbind: {
deleteEmpty: '{!isCreate}',
},
},
],
advancedColumn1: [
{
xtype: 'proxmoxintegerfield',
name: 'max-body-size',
fieldLabel: gettext('Batch Size (b)'),
minValue: 1,
emptyText: '25000000',
submitEmpty: false,
cbind: {
deleteEmpty: '{!isCreate}',
},
},
],
},
],
});
Ext.define('PBS.window.InfluxDbUdpEdit', {
extend: 'Proxmox.window.Edit',
mixins: ['Proxmox.Mixin.CBind'],
subject: 'InfluxDB (UDP)',
cbindData: function() {
let me = this;
me.isCreate = !me.serverid;
me.serverid = me.serverid || "";
me.url = `/api2/extjs/config/metrics/influxdb-udp/${me.serverid}`;
me.method = me.isCreate ? 'POST' : 'PUT';
if (!me.isCreate) {
me.subject = `${me.subject}: ${me.serverid}`;
}
return {};
},
items: [
{
xtype: 'inputpanel',
onGetValues: function(values) {
values.host += `:${values.port}`;
delete values.port;
return values;
},
column1: [
{
xtype: 'pmxDisplayEditField',
name: 'name',
fieldLabel: gettext('Name'),
allowBlank: false,
cbind: {
editable: '{isCreate}',
value: '{serverid}',
},
},
{
xtype: 'proxmoxtextfield',
name: 'host',
fieldLabel: gettext('Host'),
allowBlank: false,
},
],
column2: [
{
xtype: 'checkbox',
name: 'enable',
fieldLabel: gettext('Enabled'),
inputValue: 1,
uncheckedValue: 0,
checked: true,
},
{
xtype: 'proxmoxintegerfield',
name: 'port',
minValue: 1,
maxValue: 65535,
fieldLabel: gettext('Port'),
allowBlank: false,
},
],
columnB: [
{
xtype: 'proxmoxtextfield',
name: 'comment',
fieldLabel: gettext('Comment'),
cbind: {
deleteEmpty: '{!isCreate}',
},
},
],
advancedColumn1: [
{
xtype: 'proxmoxintegerfield',
name: 'mtu',
fieldLabel: 'MTU',
minValue: 1,
emptyText: '1500',
submitEmpty: false,
cbind: {
deleteEmpty: '{!isCreate}',
},
},
],
},
],
initComponent: function() {
let me = this;
me.callParent();
if (me.serverid) {
me.load({
success: function(response, options) {
let values = response.result.data;
let [_match, host, port] = /^(.*):(\d+)$/.exec(values.host) || [];
values.host = host;
values.port = port;
me.setValues(values);
},
});
}
},
});