'use strict'; import React from 'react'; import ReportsCUD from './CUD'; import ReportsList from './List'; import ReportsViewAndOutput from './ViewAndOutput'; import ReportTemplatesCUD from './templates/CUD'; import ReportTemplatesList from './templates/List'; import Share from '../shares/Share'; import {ReportState} from '../../../shared/reports'; import mailtrainConfig from 'mailtrainConfig'; function getMenus(t) { return { 'reports': { title: t('reports'), link: '/reports', panelComponent: ReportsList, children: { ':reportId([0-9]+)': { title: resolved => t('reportName-1', {name: resolved.report.name}), resolve: { report: params => `rest/reports/${params.reportId}` }, link: params => `/reports/${params.reportId}/edit`, navs: { ':action(edit|delete)': { title: t('edit'), link: params => `/reports/${params.reportId}/edit`, visible: resolved => resolved.report.permissions.includes('edit'), panelRender: props => }, view: { title: t('view'), link: params => `/reports/${params.reportId}/view`, visible: resolved => resolved.report.permissions.includes('viewContent') && resolved.report.state === ReportState.FINISHED && resolved.report.mime_type === 'text/html', panelRender: props => (), }, download: { title: t('download'), externalLink: params => `/reports/${params.reportId}/download`, visible: resolved => resolved.report.permissions.includes('viewContent') && resolved.report.state === ReportState.FINISHED && resolved.report.mime_type === 'text/csv' }, output: { title: t('output'), link: params => `/reports/${params.reportId}/output`, visible: resolved => resolved.report.permissions.includes('viewOutput'), panelRender: props => () }, share: { title: t('share'), link: params => `/reports/${params.reportId}/share`, visible: resolved => resolved.report.permissions.includes('share'), panelRender: props => } } }, create: { title: t('create'), panelRender: props => }, templates: { title: t('templates'), link: '/reports/templates', panelComponent: ReportTemplatesList, children: { ':templateId([0-9]+)': { title: resolved => t('templateName', {name: resolved.template.name}), resolve: { template: params => `rest/report-templates/${params.templateId}` }, link: params => `/reports/templates/${params.templateId}/edit`, navs: { ':action(edit|delete)': { title: t('edit'), link: params => `/reports/templates/${params.templateId}/edit`, visible: resolved => mailtrainConfig.globalPermissions.createJavascriptWithROAccess && resolved.template.permissions.includes('edit'), panelRender: props => }, share: { title: t('share'), link: params => `/reports/templates/${params.templateId}/share`, visible: resolved => resolved.template.permissions.includes('share'), panelRender: props => } } }, create: { title: t('create'), extraParams: [':wizard?'], panelRender: props => } } } } } }; } export default { getMenus }