opendash
Version:
open.DASH data visualization framework
30 lines • 3.05 kB
JavaScript
import * as React from "react";
import { Button, List, Menu, Tag } from "antd";
import { EditOutlined, DeleteOutlined, } from "@ant-design/icons";
import { useDashboardsBySource, useDashboardCurrent, useTranslation, useUrlParam, } from "..";
export var DashboardManagement = React.memo(function DashboardManagementComponent(_a) {
var t = useTranslation(["opendash"])[0];
var dashboards = useDashboardsBySource();
var _b = useDashboardCurrent(), dashboard = _b[0], setDashboard = _b[1];
var _c = useUrlParam("dashboard_edit", false), editMode = _c[0], setEditMode = _c[1];
var _d = useUrlParam("data_sidebar", false), datasidebar = _d[0], setDatasidebar = _d[1];
var _e = useUrlParam("db_management", false), management = _e[0], setManagement = _e[1];
var _f = useUrlParam("db_create", false), create = _f[0], setCreate = _f[1];
var _g = useUrlParam("db_add_widgets", false), addWidgets = _g[0], setAddWidgets = _g[1];
var _h = useUrlParam("db_rename", null), rename = _h[0], setRename = _h[1];
var _j = useUrlParam("db_delete", null), remove = _j[0], setRemove = _j[1];
return (React.createElement(React.Fragment, null,
React.createElement(List, { dataSource: dashboards, rowKey: "id", renderItem: function (dboard) { return (React.createElement(List.Item, { actions: [
React.createElement(Button, { type: "link", icon: React.createElement(EditOutlined, null), title: t("dashboards.rename.action_desc"), onClick: function () { return setRename(dboard.id); } }),
React.createElement(Button, { type: "link", icon: React.createElement(DeleteOutlined, null), title: t("dashboards.delete.action_desc"), onClick: function () { return setRemove(dboard.id); } }),
] },
React.createElement("div", { onClick: function () { return setDashboard(dboard); }, title: t("dashboards.change.action_desc"), style: { cursor: "pointer", padding: "0 24px" } },
React.createElement("span", null, dboard.name),
dboard.id === dashboard.id && (React.createElement(Tag, { style: { marginLeft: 8 }, children: t("Active") }))))); } }),
React.createElement(Menu, { mode: "inline", selectedKeys: editMode ? ["dashboard_edit"] : [], openKeys: ["dashboard"] },
React.createElement(Menu.SubMenu, { key: "dashboard", title: t("dashboards.management_title") },
React.createElement(Menu.Item, { key: "dashboard_create", children: t("dashboards.create.action"), onClick: function () { return setCreate(true); } }),
React.createElement(Menu.Item, { key: "widget_create", disabled: !dashboard, children: t("widgets.create.action"), onClick: function () { return setAddWidgets(true); } }),
React.createElement(Menu.Item, { key: "dashboard_edit", disabled: !dashboard, children: t("dashboards.editmode.action"), onClick: function () { return setEditMode(!editMode); } })))));
});
//# sourceMappingURL=DashboardManagement.js.map