InfluxDB: Use new datasource update option funcs (#20907)

This commit is contained in:
Shavonn Brown 2019-12-06 02:57:06 -05:00 committed by Torkel Ödegaard
parent 4a25ec0d36
commit ced13da889

View File

@ -1,5 +1,11 @@
import React, { PureComponent, ChangeEvent } from 'react'; import React, { PureComponent, ChangeEvent } from 'react';
import { DataSourcePluginOptionsEditorProps, SelectableValue } from '@grafana/data'; import {
DataSourcePluginOptionsEditorProps,
SelectableValue,
updateDatasourcePluginJsonDataOption,
updateDatasourcePluginResetKeyOption,
updateDatasourcePluginOption,
} from '@grafana/data';
import { DataSourceHttpSettings, FormLabel, Input, SecretFormField, Select } from '@grafana/ui'; import { DataSourceHttpSettings, FormLabel, Input, SecretFormField, Select } from '@grafana/ui';
import { InfluxOptions, InfluxSecureJsonData } from '../types'; import { InfluxOptions, InfluxSecureJsonData } from '../types';
@ -11,68 +17,40 @@ const httpModes = [
export type Props = DataSourcePluginOptionsEditorProps<InfluxOptions>; export type Props = DataSourcePluginOptionsEditorProps<InfluxOptions>;
export class ConfigEditor extends PureComponent<Props> { export class ConfigEditor extends PureComponent<Props> {
onUpdateOption = (key: string, val: any) => {
updateDatasourcePluginOption(this.props, key, val);
};
onUpdateJsonDataOption = (key: string, val: any, secure: boolean) => {
updateDatasourcePluginJsonDataOption(this.props, key, val, secure);
};
onResetKey = (key: string) => {
updateDatasourcePluginResetKeyOption(this.props, key);
};
onDatabaseChange = (event: ChangeEvent<HTMLInputElement>) => { onDatabaseChange = (event: ChangeEvent<HTMLInputElement>) => {
const { onOptionsChange, options } = this.props; this.onUpdateOption('database', event.target.value);
onOptionsChange({
...options,
database: event.target.value,
});
}; };
onUserChange = (event: ChangeEvent<HTMLInputElement>) => { onUserChange = (event: ChangeEvent<HTMLInputElement>) => {
const { onOptionsChange, options } = this.props; this.onUpdateOption('user', event.target.value);
onOptionsChange({
...options,
user: event.target.value,
});
}; };
onPasswordChange = (event: ChangeEvent<HTMLInputElement>) => { onPasswordChange = (event: ChangeEvent<HTMLInputElement>) => {
const { onOptionsChange, options } = this.props; this.onUpdateJsonDataOption('password', event.target.value, true);
onOptionsChange({
...options,
secureJsonData: {
...options.secureJsonData,
password: event.target.value,
},
});
}; };
onTimeIntervalChange = (event: ChangeEvent<HTMLInputElement>) => { onTimeIntervalChange = (event: ChangeEvent<HTMLInputElement>) => {
const { onOptionsChange, options } = this.props; this.onUpdateJsonDataOption('timeInterval', event.target.value, false);
onOptionsChange({
...options,
jsonData: {
...options.jsonData,
timeInterval: event.target.value,
},
});
}; };
onResetPassword = () => { onResetPassword = () => {
const { onOptionsChange, options } = this.props; this.onResetKey('password');
onOptionsChange({
...options,
secureJsonFields: {
...options.secureJsonFields,
password: false,
},
secureJsonData: {
...options.secureJsonData,
password: '',
},
});
}; };
onHttpModeSelect = (httpMode: SelectableValue) => { onHttpModeSelect = (httpMode: SelectableValue) => {
const { onOptionsChange, options } = this.props; this.onUpdateJsonDataOption('httpMode', httpMode.value, false);
onOptionsChange({
...options,
jsonData: {
...options.jsonData,
httpMode: httpMode.value,
},
});
}; };
render() { render() {