UNPKG

@adaptabletools/adaptable

Version:

Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements

54 lines (53 loc) 3.77 kB
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime"; import * as React from 'react'; import { useDispatch, useSelector } from 'react-redux'; import * as ExportRedux from '../../Redux/ActionsReducers/ExportRedux'; import { formatScheduledReportSummary } from '../../Strategy/Utilities/Export/formatScheduledReportSummary'; import { useAdaptable } from '../AdaptableContext'; import { AdaptableObjectListItemView } from '../Components/AdaptableObjectList/AdaptableObjectList'; import { objectListActionButtonClassName } from '../Components/AdaptableObjectList/objectListActionButtonStyles'; import { ButtonEdit } from '../Components/Buttons/ButtonEdit'; import EmptyContent from '../../components/EmptyContent'; import { ScheduledReportWizard } from './Wizard/ScheduledReportWizard'; import * as ModuleConstants from '../../Utilities/Constants/ModuleConstants'; export const ExportSchedulesTab = () => { const { api } = useAdaptable(); const dispatch = useDispatch(); useSelector((state) => state.Export?.Revision); const accessLevel = api.entitlementApi.getEntitlementAccessLevelForModule(ModuleConstants.ExportModuleId); const [editingSchedule, setEditingSchedule] = React.useState(null); const schedules = api.exportApi.getScheduledReports(); const exportModule = api.internalApi .getModuleService() .getModuleById(ModuleConstants.ExportModuleId); const moduleInfo = exportModule?.moduleInfo; if (!exportModule) { return null; } if (!schedules.length) { return (_jsx(EmptyContent, { children: "No report schedules configured. Schedule a report from the Export toolbar or create one when editing a report." })); } return (_jsxs(_Fragment, { children: [_jsx("ul", { className: "ab-Adaptable-Object-List twa:list-none twa:p-0 twa:m-0 twa:flex twa:flex-col twa:gap-3", children: schedules.map((reportSchedule) => (_jsx(ExportScheduleListItem, { module: exportModule, reportSchedule: reportSchedule, accessLevel: accessLevel, onEdit: () => setEditingSchedule(reportSchedule), onSuspend: () => dispatch(ExportRedux.ScheduledReportSuspend(reportSchedule)), onUnSuspend: () => dispatch(ExportRedux.ScheduledReportUnSuspend(reportSchedule)) }, reportSchedule.Uuid))) }), editingSchedule && moduleInfo && (_jsx(ScheduledReportWizard, { moduleInfo: moduleInfo, data: editingSchedule, popupParams: { action: 'Edit', source: 'Other', value: { reportName: editingSchedule.ReportName, schedule: editingSchedule, }, }, configEntities: null, onCloseWizard: () => setEditingSchedule(null), onFinishWizard: () => setEditingSchedule(null) }))] })); }; const ExportScheduleListItem = (props) => { const { reportSchedule, accessLevel } = props; return (_jsx(AdaptableObjectListItemView, { module: props.module, abObject: reportSchedule, accessLevel: accessLevel, entityType: "Schedule", showActions: true, showEditButton: false, items: [ { name: 'Report', values: [reportSchedule.ReportName], }, { name: 'Schedule', values: [formatScheduledReportSummary(reportSchedule)], }, ], actions: [ _jsx(ButtonEdit, { accessLevel: accessLevel, onClick: props.onEdit, tooltip: "Edit Schedule", className: objectListActionButtonClassName('edit') }, "edit"), ], deleteAction: ExportRedux.ScheduledReportDelete(reportSchedule), deleteConfirmationMsg: "Are you sure you want to delete this schedule?", suspendedEnabled: true, onSuspend: props.onSuspend, onUnSuspend: props.onUnSuspend })); };