文件操作 - linkSuppliers.ts
返回文件管理
返回主菜单
删除本文件
文件: /usr/share/grafana/public/app/features/panel/panellinks/linkSuppliers.ts
编辑文件内容
import { PanelModel } from 'app/features/dashboard/state/PanelModel'; import { DataLink, DisplayValue, FieldDisplay, formattedValueToString, getFieldDisplayValuesProxy, getTimeField, Labels, LinkModelSupplier, ScopedVar, ScopedVars, } from '@grafana/data'; import { getLinkSrv } from './link_srv'; import { config } from 'app/core/config'; interface SeriesVars { name?: string; refId?: string; } interface FieldVars { name: string; labels?: Labels; } interface ValueVars { raw: any; numeric: number; text: string; time?: number; calc?: string; } interface DataViewVars { name?: string; refId?: string; fields?: Record<string, DisplayValue>; } interface DataLinkScopedVars extends ScopedVars { __series?: ScopedVar<SeriesVars>; __field?: ScopedVar<FieldVars>; __value?: ScopedVar<ValueVars>; __data?: ScopedVar<DataViewVars>; } /** * Link suppliers creates link models based on a link origin */ export const getFieldLinksSupplier = (value: FieldDisplay): LinkModelSupplier<FieldDisplay> | undefined => { const links = value.field.links; if (!links || links.length === 0) { return undefined; } return { getLinks: (existingScopedVars?: any) => { const scopedVars: DataLinkScopedVars = { ...(existingScopedVars ?? {}), }; if (value.view) { const { dataFrame } = value.view; scopedVars['__series'] = { value: { name: dataFrame.name, refId: dataFrame.refId, }, text: 'Series', }; const field = value.colIndex !== undefined ? dataFrame.fields[value.colIndex] : undefined; if (field) { console.log('Full Field Info:', field); scopedVars['__field'] = { value: { name: field.name, labels: field.labels, }, text: 'Field', }; } if (!isNaN(value.rowIndex)) { const { timeField } = getTimeField(dataFrame); scopedVars['__value'] = { value: { raw: field.values.get(value.rowIndex), numeric: value.display.numeric, text: formattedValueToString(value.display), time: timeField ? timeField.values.get(value.rowIndex) : undefined, }, text: 'Value', }; // Expose other values on the row if (value.view) { scopedVars['__data'] = { value: { name: dataFrame.name, refId: dataFrame.refId, fields: getFieldDisplayValuesProxy(dataFrame, value.rowIndex!, { theme: config.theme, }), }, text: 'Data', }; } } else { // calculation scopedVars['__value'] = { value: { raw: value.display.numeric, numeric: value.display.numeric, text: formattedValueToString(value.display), calc: value.name, }, text: 'Value', }; } } else { console.log('VALUE', value); } return links.map((link: DataLink) => { return getLinkSrv().getDataLinkUIModel(link, scopedVars, value); }); }, }; }; export const getPanelLinksSupplier = (value: PanelModel): LinkModelSupplier<PanelModel> => { const links = value.links; if (!links || links.length === 0) { return undefined; } return { getLinks: () => { return links.map(link => { return getLinkSrv().getDataLinkUIModel(link, value.scopedVars, value); }); }, }; };
修改文件时间
将文件时间修改为当前时间的前一年
删除文件