function VirtualDesktopScheduleDescription()

in source/idea/idea-cluster-manager/webapp/src/pages/virtual-desktops/components/virtual-desktop-session-card.tsx [55:130]


function VirtualDesktopScheduleDescription(props: VirtualDesktopScheduleDescriptionProps) {
    const day = moment().tz(AppContext.get().getClusterSettingsService().getClusterTimeZone()).day();
    let schedule;
    switch (day) {
        case 0:
            schedule = props.session.schedule?.sunday;
            break;
        case 1:
            schedule = props.session.schedule?.monday;
            break;
        case 2:
            schedule = props.session.schedule?.tuesday;
            break;
        case 3:
            schedule = props.session.schedule?.wednesday;
            break;
        case 4:
            schedule = props.session.schedule?.thursday;
            break;
        case 5:
            schedule = props.session.schedule?.friday;
            break;
        case 6:
            schedule = props.session.schedule?.saturday;
            break;
    }
    let label = "No Schedule";
    if (schedule) {
        if (schedule.schedule_type === "WORKING_HOURS") {
            label = "Working Hours";
        } else if (schedule.schedule_type === "STOP_ALL_DAY") {
            label = "Stopped All Day";
        } else if (schedule.schedule_type === "START_ALL_DAY") {
            label = "Running All Day";
        } else if (schedule.schedule_type === "CUSTOM_SCHEDULE") {
            label = `Custom Schedule - ${schedule.start_up_time} - ${schedule.shut_down_time}`;
        }
    }

    const getScheduleInfo = (schedule?: VirtualDesktopSchedule) => {
        if (typeof schedule === "undefined") {
            return "No Schedule";
        }
        switch (schedule.schedule_type!) {
            case "WORKING_HOURS":
                return "Working Hours";
            case "START_ALL_DAY":
                return "Running all day";
            case "STOP_ALL_DAY":
                return "Stopped all day";
            case "CUSTOM_SCHEDULE":
                return `${schedule.start_up_time} - ${schedule.shut_down_time}`;
        }
        return "No schedule";
    };

    return (
        <Popover
            dismissAriaLabel="Close"
            header={`Schedule Info`}
            content={
                <ColumnLayout columns={2}>
                    <KeyValue title={"Sunday"} value={getScheduleInfo(props.session.schedule?.sunday)} />
                    <KeyValue title={"Monday"} value={getScheduleInfo(props.session.schedule?.monday)} />
                    <KeyValue title={"Tuesday"} value={getScheduleInfo(props.session.schedule?.tuesday)} />
                    <KeyValue title={"Wednesday"} value={getScheduleInfo(props.session.schedule?.wednesday)} />
                    <KeyValue title={"Thursday"} value={getScheduleInfo(props.session.schedule?.thursday)} />
                    <KeyValue title={"Friday"} value={getScheduleInfo(props.session.schedule?.friday)} />
                    <KeyValue title={"Saturday"} value={getScheduleInfo(props.session.schedule?.saturday)} />
                </ColumnLayout>
            }
        >
            <small>{label}</small>
        </Popover>
    );
}