@opendash/plugin-openware
Version:
open.WARE Plugin for open.DASH
73 lines • 4.81 kB
JavaScript
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
return cooked;
};
import React from "react";
import styled from "styled-components";
import { DeleteOutlined, DownloadOutlined, FileWordOutlined } from '@ant-design/icons';
import { Layout, Card, Modal, Input, message } from "antd";
import { Breadcrumb } from "opendash";
import { useTranslation } from "opendash";
import { Divider, Empty } from "antd";
var ReportCardListContainer = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n"], ["\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n"])));
var ActionBarMenu = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n position: relative;\n display: flex;\n"], ["\n position: relative;\n display: flex;\n"])));
var ActionBarMenuLeft = styled.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: flex;\n flex: 1 1;\n"], ["\n display: flex;\n flex: 1 1;\n"])));
var ActionBarMenuRight = styled.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n float: right;\n margin-left: 10px;\n"], ["\n float: right;\n margin-left: 10px;\n"])));
export function ReportingLayout(_a) {
var children = _a.children;
return (React.createElement("div", { style: { minWidth: 1280, padding: "0 50px" } },
React.createElement(Breadcrumb, { style: { margin: "16px 0" } }),
React.createElement(Layout, { style: { padding: "24px 0", background: "#fff" } },
React.createElement(Layout.Content, { style: { padding: "0 24px" } }, children))));
}
export function ActionBar(_a) {
var search = _a.search, setSearch = _a.setSearch, children = _a.children;
var t = useTranslation(["openware", "opendash"])[0];
return (React.createElement(React.Fragment, null,
React.createElement(ActionBarMenu, null,
React.createElement(ActionBarMenuLeft, null,
React.createElement(Input.Search, { value: search, onChange: function (e) { return setSearch(e.target.value); }, placeholder: t("opendash:ui.search_placeholder"), style: { maxWidth: 400 } })),
React.createElement(ActionBarMenuRight, null, children)),
React.createElement(Divider, null)));
}
export function ReportCardList(_a) {
var reports = _a.reports;
if (!reports || reports.length === 0) {
return React.createElement(Empty, null);
}
return (React.createElement(ReportCardListContainer, null, reports.map(function (report) { return (React.createElement(ReportCard, { key: report.id, report: report })); })));
}
function ReportCard(_a) {
var report = _a.report;
var t = useTranslation(["openware", "opendash"])[0];
return (React.createElement(Card, { style: { width: 300, marginBottom: 24, marginRight: 24 }, loading: false, actions: [
React.createElement(DownloadOutlined, { key: "download", onClick: function () {
var hide = message.loading(t("openware:reporting.download.start"), 0);
report.download().then(function () {
hide();
message.success(t("openware:reporting.download.success"));
}, function () {
message.error(t("openware:reporting.download.error"));
});
} }),
// <Icon type="copy" key="copy" />,
React.createElement(DeleteOutlined, { key: "delete", onClick: function () {
Modal.confirm({
title: t("openware:reporting.delete.title"),
content: t("openware:reporting.delete.content"),
okText: t("openware:reporting.delete.yes"),
okType: "danger",
onOk: function () {
report.destroy().then(function () {
message.success(t("openware:reporting.delete.success"));
}, function () {
message.error(t("openware:reporting.delete.error"));
});
},
});
} }),
] },
React.createElement(Card.Meta, { title: report.get("params").title, description: report.get("params").description, avatar: React.createElement(FileWordOutlined, { style: { fontSize: 32 } }) })));
}
var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
//# sourceMappingURL=layout.js.map