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>
);
}