Skip to content

Commit 4cfc9dc

Browse files
TheSpacyCatBenediktSeidl
authored andcommitted
factor out field labels of request spec keys
1 parent fb0f6ed commit 4cfc9dc

File tree

3 files changed

+33
-12
lines changed

3 files changed

+33
-12
lines changed

src/ui/QueryEditor.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { CmkQuery, DataSourceOptions } from '../types';
88
import { aggregationToPresentation, updateQuery } from '../utils';
99
import { CheckMkSelect } from './components';
1010
import { Filters } from './filters';
11+
import { labelForRequestSpecKey } from './utils';
1112

1213
type Props = QueryEditorProps<DataSource, CmkQuery, DataSourceOptions>;
1314

@@ -93,15 +94,15 @@ export const QueryEditor = (props: Props): JSX.Element => {
9394

9495
const graphTypeSelect = (
9596
<CheckMkSelect<'graph_type'>
96-
label={'Graph type'}
97+
label={labelForRequestSpecKey('graph_type', requestSpec)}
9798
value={qGraphType}
9899
onChange={setQGraphType}
99100
autocompleter={graphTypeCompleter}
100101
/>
101102
);
102103
const graphSelect = (
103104
<CheckMkSelect
104-
label={qGraphType === 'predefined_graph' ? 'Predefined graph' : 'Single metric'}
105+
label={labelForRequestSpecKey('graph', requestSpec)}
105106
value={qGraph}
106107
onChange={setQGraph}
107108
autocompleter={graphAutocompleter}
@@ -131,7 +132,7 @@ export const QueryEditor = (props: Props): JSX.Element => {
131132
</InlineFieldRow>
132133

133134
<CheckMkSelect<'aggregation'>
134-
label={'Aggregation'}
135+
label={labelForRequestSpecKey('aggregation', requestSpec)}
135136
value={qAggregation}
136137
onChange={setQAggregation}
137138
autocompleter={aggregationCompleter}

src/ui/filters.tsx

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {
1212
OnlyActiveChildren,
1313
OnlyActiveChildrenProps,
1414
} from './components';
15+
import { labelForRequestSpecKey } from './utils';
1516

1617
interface FiltersProp extends Omit<OnlyActiveChildrenProps, 'children'> {
1718
datasource: DataSource;
@@ -122,7 +123,7 @@ export const Filters = (props: FiltersProp): JSX.Element => {
122123
>
123124
<CheckMkSelect
124125
requestSpecKey={'site'}
125-
label={'Site'}
126+
label={labelForRequestSpecKey('site', requestSpec)}
126127
value={qSite}
127128
// TODO: onChange is used by OnlyActiveChildren with undefined as value
128129
// this should be reflected by the type system.
@@ -131,54 +132,54 @@ export const Filters = (props: FiltersProp): JSX.Element => {
131132
/>
132133
<CheckMkSelect
133134
requestSpecKey={'host_name'}
134-
label={'Hostname'}
135+
label={labelForRequestSpecKey('host_name', requestSpec)}
135136
value={qHost.host_name}
136137
onChange={(host) => setHostFilter({ ...qHost, host_name: host })}
137138
autocompleter={hostAutocompleter}
138139
/>
139140
<Filter
140141
requestSpecKey="host_name_regex"
141-
label="Hostname regex"
142+
label={labelForRequestSpecKey('host_name_regex', requestSpec)}
142143
value={qHost.host_name_regex}
143144
onChange={(host_name_regex) => setHostFilter({ ...qHost, host_name_regex: host_name_regex })}
144145
/>
145146
<CheckMkSelectNegatable
146147
requestSpecKey="host_in_group"
147-
label="Host in group"
148+
label={labelForRequestSpecKey('host_in_group', requestSpec)}
148149
value={qHost.host_in_group}
149150
onChange={(host_in_group) => setHostFilter({ ...qHost, host_in_group: host_in_group })}
150151
autocompleter={hostGroupAutocompleter}
151152
/>
152153
<HostLabelFilter
153-
label="Host labels"
154+
label={labelForRequestSpecKey('host_labels', requestSpec)}
154155
requestSpecKey="host_labels"
155156
value={qHost.host_labels}
156157
onChange={(host_labels: string[]) => setHostFilter({ ...qHost, host_labels: host_labels })}
157158
autocompleter={hostLabelAutocompleter}
158159
/>
159160
<HostTagFilter
160-
label="Host tags"
161+
label={labelForRequestSpecKey('host_tags', requestSpec)}
161162
requestSpecKey="host_tags"
162163
value={qHost.host_tags}
163164
onChange={(host_tags) => setHostFilter({ ...qHost, host_tags: host_tags })}
164165
autocompleter={hostTagAutocompleter}
165166
/>
166167
<CheckMkSelect
167168
requestSpecKey={'service'}
168-
label={'Service'}
169+
label={labelForRequestSpecKey('service', requestSpec)}
169170
value={qService.service}
170171
onChange={(service) => setServiceFilter({ ...qService, service: service })}
171172
autocompleter={serviceAutocompleter}
172173
/>
173174
<Filter
174175
requestSpecKey="service_regex"
175-
label="Service regex"
176+
label={labelForRequestSpecKey('service_regex', requestSpec)}
176177
value={qService.service_regex}
177178
onChange={(service_regex) => setServiceFilter({ ...qService, service_regex: service_regex })}
178179
/>
179180
<CheckMkSelectNegatable
180181
requestSpecKey="service_in_group"
181-
label="Service in group"
182+
label={labelForRequestSpecKey('service_in_group', requestSpec)}
182183
value={qService.service_in_group}
183184
onChange={(service_in_group) => setServiceFilter({ ...qService, service_in_group: service_in_group })}
184185
autocompleter={serviceGroupAutocompleter}

src/ui/utils.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { RequestSpec } from '../RequestSpec';
2+
3+
export const labelForRequestSpecKey = (key: keyof RequestSpec, rq: Partial<RequestSpec>): string => {
4+
const table: Record<keyof RequestSpec, string> = {
5+
site: 'Site',
6+
host_name: 'Hostname',
7+
host_name_regex: 'Hostname regex',
8+
host_in_group: 'Host in group',
9+
host_labels: 'Host labels',
10+
host_tags: 'Host tags',
11+
service: 'Service',
12+
service_regex: 'Service regex',
13+
service_in_group: 'Service in group',
14+
aggregation: 'Aggregation',
15+
graph_type: 'Graph type',
16+
graph: rq.graph_type === 'predefined_graph' ? 'Predefined graph' : 'Single metric',
17+
};
18+
return table[key];
19+
};

0 commit comments

Comments
 (0)