文件操作 - PanelOptionsEditor.tsx
返回文件管理
返回主菜单
删除本文件
文件: /usr/share/grafana/public/app/features/dashboard/components/PanelEditor/PanelOptionsEditor.tsx
编辑文件内容
import React, { useMemo } from 'react'; import { DataFrame, InterpolateFunction, PanelOptionsEditorItem, PanelPlugin, StandardEditorContext, VariableSuggestionsScope, } from '@grafana/data'; import { get as lodashGet, set as lodashSet } from 'lodash'; import { Field, Label } from '@grafana/ui'; import groupBy from 'lodash/groupBy'; import { OptionsGroup } from './OptionsGroup'; import { getPanelOptionsVariableSuggestions } from 'app/features/panel/panellinks/link_srv'; interface PanelOptionsEditorProps<TOptions> { plugin: PanelPlugin; data?: DataFrame[]; replaceVariables: InterpolateFunction; options: TOptions; onChange: (options: TOptions) => void; } export const PanelOptionsEditor: React.FC<PanelOptionsEditorProps<any>> = ({ plugin, options, onChange, data, replaceVariables, }) => { const optionEditors = useMemo<Record<string, PanelOptionsEditorItem[]>>(() => { return groupBy(plugin.optionEditors.list(), i => { return i.category ? i.category[0] : 'Display'; }); }, [plugin]); const onOptionChange = (key: string, value: any) => { const newOptions = lodashSet({ ...options }, key, value); onChange(newOptions); }; const context: StandardEditorContext<any> = { data: data || [], replaceVariables, options, getSuggestions: (scope?: VariableSuggestionsScope) => { return getPanelOptionsVariableSuggestions(plugin, data); }, }; return ( <> {Object.keys(optionEditors).map((c, i) => { const optionsToShow = optionEditors[c] .map((e, j) => { if (e.showIf && !e.showIf(options)) { return null; } const label = ( <Label description={e.description} category={e.category?.slice(1)}> {e.name} </Label> ); return ( <Field label={label} key={`${e.id}/${j}`}> <e.editor value={lodashGet(options, e.path)} onChange={value => onOptionChange(e.path, value)} item={e} context={context} /> </Field> ); }) .filter(e => e !== null); return optionsToShow.length > 0 ? ( <OptionsGroup title={c} defaultToClosed id={`${c}/${i}`} key={`${c}/${i}`}> <div>{optionsToShow}</div> </OptionsGroup> ) : null; })} </> ); };
修改文件时间
将文件时间修改为当前时间的前一年
删除文件