Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
index.js 10.15 KiB
import {
    Switch,
} from 'react-router-dom';

import { NotFound } from '../layout/components/NotFound';
import AccessDenied from '../layout/components/AccessDenied';
import { ProjectList, ProjectCreate, ProjectView, ProjectEdit } from './Project';
import { Scheduling } from './Scheduling';
import  TaskEdit   from './Task/edit';
import { TaskView } from './Task/view';
import { DataProduct } from './Task/dataproduct';
import {  TaskList } from './Task/list';

import ViewSchedulingUnit from './Scheduling/ViewSchedulingUnit'
import SchedulingUnitCreate from './Scheduling/create';
import {SchedulingUnitListLite}  from './Scheduling/SchedulingUnitListLite'
import  UserOverView from './User/UserOverView';
import EditSchedulingUnit  from './Scheduling/edit';
import StationView from './Station/StationView'
import DailyConstraintView from './Constraint/DailyConstraintView';
import StationGeoView from './Station/StationGeoView'
import { CycleList, CycleCreate, CycleView, CycleEdit } from './Cycle';
import { ReservationCreate, ReservationList, ReservationView, ReservationEdit } from './Reservation';
import { SystemEventCreate, SystemEventList, SystemEventView, SystemEventEdit } from './SystemEvent';
import { FindObjectResult } from './Search/'
import SchedulingSetCreate from './Scheduling/excelview.schedulingset';
import Workflow from './Workflow';
import { Toast } from 'primereact/toast';
import { setAppGrowl } from '../layout/components/AppGrowl';
import WorkflowList from './Workflow/workflow.list'
import ProtectedRoute from '../components/ProtectedRouteComponent';
import WeekView from "./Timeline/WeekView";
import FailureReport from './Report/failure/failure.report';
import CycleReportMain from './Report/cycle/report.main';
import ProjectReportMain from './Report/project.report.main';

export const routes = [
    {
        path: "/not-found",
        component: NotFound,
    },
  
    {
        path: "/access-denied",
        component: AccessDenied,
        name: 'Access Denied',
        title: 'Access Denied'
    },
      {
        path: "/useroverview",
        component: UserOverView,
        name: 'User Overview',
        title: 'User Overview'
    },
    
    {
        path: "/schedulingunit",
        component: Scheduling,
        name: 'Scheduling Unit',
        title: 'Scheduling Unit - List',
    }, {
        path: "/schedulingunit/create",
        component: SchedulingUnitCreate,
        name: 'Scheduling Unit Add',
        title: 'Scheduling Unit - Add',
        permissions: ['scheduleunit', 'create']
    }, {
        path: "/task",
        component: TaskList,
        name: 'Task',
        title: 'Task-List',
        permissions: ['task', 'list']
    }, {
        path: "/task/view",
        component: TaskView,
        name: 'Task',
        title: 'Task View',
    }, {
        path: "/task/view/:type/:id",
        component: TaskView,
        name: 'Task View',
        title: 'Task - View',
    }, {
        path: "/task/edit",
        component: TaskEdit,
        name: 'Task Edit',
        title: 'Task-Edit'
    }, {
        path: "/task/edit/draft/:id",
        component: TaskEdit,
        name: 'Task Edit',
        title: 'Task-Edit',

    }, {
        path: "/schedulingunit/view",
        component: ViewSchedulingUnit,
        name: 'Scheduling View',
        title: 'Scheduling Unit - Details'
    }, {
        path: "/schedulingunit/edit/:id",
        component: EditSchedulingUnit,
        name: 'Scheduling Edit',
        title: 'Scheduling Unit - Edit',
        // permissions: ['scheduleunit', 'edit']
    }, {
        path: "/schedulingunit/view/:type/:id",
        component: ViewSchedulingUnit,
        name: 'Scheduling View',
        // permissions: ['scheduleunit', 'list']
    }, {
        path: "/project",
        component: ProjectList,
        name: 'Project List',
        title: 'Project - List',
        permissions: ['project', 'list']

    }, {
        path: "/project/create",
        component: ProjectCreate,
        name: 'Project Add',
        title: 'Project - Add',
        permissions: ['project', 'create']
    }, {
        path: "/project/view/:id",
        component: ProjectView,
        name: 'Project View',
        title: 'Project - Details ',

    },
    {
        path: "/project/edit/:id",
        component: ProjectEdit,
        name: 'Project Edit',
        title: 'Project Edit',
    }, {
        path: "/project/:project/schedulingunit/create",
        component: SchedulingUnitCreate,
        name: 'Scheduling Unit Add',
        title: 'Scheduling Unit - Add',
        permissions: ['scheduleunit', 'create']
    },
    {
        path: "/project/:project/schedulingset/schedulingunit/create",
        component: SchedulingSetCreate,
        name: 'Scheduling Set Add',
        permissions: ['scheduleunit', 'excelview']
    },
    {
        path: "/cycle/edit/:id",
        component: CycleEdit,
        name: 'Cycle Edit',
        title: 'Cycle-Edit',
        permissions: ['cycle', 'edit']
    }, {
        path: "/cycle/view/:id",
        component: CycleView,
        name: 'Cycle View',
        title: 'Cycle-View',
        permissions: ['cycle', 'list']
    }, {
        path: "/cycle/create",
        component: CycleCreate,
        name: 'Cycle Add',
        title: 'Cycle-Add',
        permissions: ['cycle', 'create']
    },
    {
        path: "/cycle",
        component: CycleList,
        name: 'Cycle List',
        title: 'Cycle-List',
        permissions: ['cycle', 'list']
    },
    {
        path: "/su/timelineview/week",
        component: WeekView,
        name: 'Scheduling Unit Timeline - Week',
        title: 'SU Weekly Timeline View'
    },
    {
        path: "/task/view/blueprint/:id/dataproducts",
        component: DataProduct,
        name: 'Data Product'
    },
    {
        path: "/schedulingset/schedulingunit/create",
        component: SchedulingSetCreate,
        name: 'Scheduling Set Add',
        permissions: ['scheduleunit', 'excelview']
    },
    {
        path: "/schedulingunit/:id/workflow",
        component: Workflow,
        name: 'Workflow',
        title: 'QA Reporting (TO)'
    },
    {
        path: "/schedulingunit/lite",
        component: SchedulingUnitListLite,
        name: 'Scheduling Unit',
        title: 'QA Reporting (TO)'
    },

    
    {
        path: "/reservation/list",
        component: ReservationList,
        name: 'Reservation List',
        title: 'Reservation List',
        permissions: ['reservation', 'list']
    },
    {
        path: "/reservation/list/from/:fromdate/to/:todate",
        component: ReservationList,
        name: 'Reservation List',
        title: 'Reservation List',
        permissions: ['reservation', 'list']
    },
    {
        path: "/reservation/create",
        component: ReservationCreate,
        name: 'Reservation Add',
        title: 'Reservation - Add',
        permissions: ['reservation', 'create']
    },
    {
        path: "/reservation/view/:id",
        component: ReservationView,
        name: 'Reservation View',
        title: 'Reservation - View',
        permissions: ['reservation', 'list']
    },
    {
        path: "/reservation/edit/:id",
        component: ReservationEdit,
        name: 'Reservation Edit',
        title: 'Reservation - Edit',
        permissions: ['reservation', 'edit']
    },
    {
        path: "/find/object/:type/:id",
        component: FindObjectResult,
        name: 'Find Object',
        title: 'Find Object'
    },
    {
        path: "/su/workflow",
        component: WorkflowList,
        name: 'Workflow',
        title: 'Workflow'
    },
    
    {
        path: "/reports/failure",
        component: FailureReport,
        name: 'Failure Report',
        title: 'Failure Report'
    },
    {
        path: "/reports/cycle",
        component: CycleReportMain,
        name: 'Cycle Report',
        title: 'Cycle Report'
    },
    {
        path: "/reports/project",
        component: ProjectReportMain,
        name: 'Reports',
        title: 'Reports'
    },

    {
        path: "/systemevent/list",
        component: SystemEventList,
        name: 'System Issues List',
        title: 'System Issues',
        permissions: ['systemevent', 'list']
    },
    {
        path: "/systemevent/list/from/:fromdate/to/:todate",
        component: SystemEventList,
        name: 'System Issues List',
        title: 'RSystem Issues',
        permissions: ['systemevent', 'list']
    },
    {
        path: "/systemevent/create",
        component: SystemEventCreate,
        name: 'System Event Add',
        title: 'System Event - Add',
        permissions: ['systemevent', 'create']
    },
    {
        path: "/systemevent/view/:id",
        component: SystemEventView,
        name: 'System Event View',
        title: 'System Event - View',
        permissions: ['systemevent', 'list']
    },
    {
        path: "/systemevent/edit/:id",
        component: SystemEventEdit,
        name: 'System Event Edit',
        title: 'System Event - Edit',
        permissions: ['systemevent', 'edit']
    },
    {
        path: "/constraint/view",
        component: DailyConstraintView,
        name: 'Daily Constraints',
        title: 'Daily Constraints',
        permissions: ['scheduleunit_blueprint', 'list']
    },
    {
        path: "/constraint/view/:date",
        component: DailyConstraintView,
        name: 'Daily Constraints',
        title: 'Daily Constraints',
        permissions: ['scheduleunit_blueprint', 'list']
    },
    {
        path: "/station/list",
        component: StationView,
        name: 'Station List',
        title: 'Station List',
        permissions: ['systemevent', 'list']
    },
    {
        path: "/station/geo",
        component: StationGeoView,
        name: 'Station Geo',
        title: 'Station Geo',
        permissions: ['systemevent', 'list']
    },
    {
        component: NotFound,
        name: 'Page Not Found - 404',
        title: 'Page Not Found - 404'
    }
];

export const RoutedContent = () => {
    return (
        <>
            <Toast ref={(el) => setAppGrowl(el)} />
            <Switch>
                {/* <Redirect from="/" to="/" exact /> */}
                {routes.map(routeProps => <ProtectedRoute {...routeProps} exact key={(routeProps.path || routeProps.name) + '_switch'} />)}
            </Switch>
        </>
    );
}