文件操作 - DashboardsTable.tsx
返回文件管理
返回主菜单
删除本文件
文件: /usr/share/grafana/public/app/features/datasources/DashboardsTable.tsx
编辑文件内容
import React, { FC } from 'react'; import { PluginDashboard } from '../../types'; import { Icon } from '@grafana/ui'; export interface Props { dashboards: PluginDashboard[]; onImport: (dashboard: PluginDashboard, overwrite: boolean) => void; onRemove: (dashboard: PluginDashboard) => void; } const DashboardsTable: FC<Props> = ({ dashboards, onImport, onRemove }) => { function buttonText(dashboard: PluginDashboard) { return dashboard.revision !== dashboard.importedRevision ? 'Update' : 'Re-import'; } return ( <table className="filter-table"> <tbody> {dashboards.map((dashboard, index) => { return ( <tr key={`${dashboard.dashboardId}-${index}`}> <td className="width-1"> <Icon name="apps" /> </td> <td> {dashboard.imported ? ( <a href={dashboard.importedUrl}>{dashboard.title}</a> ) : ( <span>{dashboard.title}</span> )} </td> <td style={{ textAlign: 'right' }}> {!dashboard.imported ? ( <button className="btn btn-secondary btn-small" onClick={() => onImport(dashboard, false)}> Import </button> ) : ( <button className="btn btn-secondary btn-small" onClick={() => onImport(dashboard, true)}> {buttonText(dashboard)} </button> )} {dashboard.imported && ( <button className="btn btn-danger btn-small" onClick={() => onRemove(dashboard)}> <Icon name="trash-alt" /> </button> )} </td> </tr> ); })} </tbody> </table> ); }; export default DashboardsTable;
修改文件时间
将文件时间修改为当前时间的前一年
删除文件