Skip to content
Snippets Groups Projects
Commit ac72617a authored by Reinder Kraaij's avatar Reinder Kraaij :eye:
Browse files

Schedules also in grouping

parent 5961e270
No related branches found
No related tags found
1 merge request!1211TMSS-2708 TMSS-2846: reuse TaskBlueprintSlimSerializer in...
...@@ -50,7 +50,7 @@ export class SchedulingUnitSummary extends Component { ...@@ -50,7 +50,7 @@ export class SchedulingUnitSummary extends Component {
getHeaderTemplate = (permissions) => { getHeaderTemplate = (permissions) => {
return <div > return <div className="p-panel-header justify-content-start">
<span className="p-panel-title" >Scheduling Unit Details</span> <span className="p-panel-title" >Scheduling Unit Details</span>
<Link onClick={this.redirectToSUDetails} title="View Full Details"> <Link onClick={this.redirectToSUDetails} title="View Full Details">
<i className="fa fa-eye" style={{ paddingRight: '3px' }}></i></Link> <i className="fa fa-eye" style={{ paddingRight: '3px' }}></i></Link>
......
...@@ -3,12 +3,11 @@ export function expandTimeLineRowsForGrouping(timeLineRows, groupingkey) { ...@@ -3,12 +3,11 @@ export function expandTimeLineRowsForGrouping(timeLineRows, groupingkey) {
const includeStationsInfo = groupingkey == "station_group" const includeStationsInfo = groupingkey == "station_group"
const includeStationsUsedInfo = groupingkey == "station_used_group" const includeStationsUsedInfo = groupingkey == "station_used_group"
const includeStationsMissingInfo = groupingkey == "station_missing_group" const includeStationsMissingInfo = groupingkey == "station_missing_group"
const includeStationsgroupInfo = groupingkey == "stationgroup_group" const includeStationsgroupInfo = groupingkey == "stationgroup_group"
let expandedschedulingUnitItems = []; let expandedschedulingUnitItems = [];
if (includeStationsgroupInfo) expandTimeLineForStationGroup(includeStationsgroupInfo, timeLineRows, expandedschedulingUnitItems); if (includeStationsgroupInfo) expandTimeLineForStationGroup(timeLineRows, expandedschedulingUnitItems);
if (includeStationsInfo) expandTimeLineForStations(timeLineRows, expandedschedulingUnitItems, "specified_stations", groupingkey); if (includeStationsInfo) expandTimeLineForStations(timeLineRows, expandedschedulingUnitItems, "specified_stations", groupingkey);
if (includeStationsUsedInfo) expandTimeLineForStations(timeLineRows, expandedschedulingUnitItems, "used_stations", groupingkey); if (includeStationsUsedInfo) expandTimeLineForStations(timeLineRows, expandedschedulingUnitItems, "used_stations", groupingkey);
if (includeStationsMissingInfo) expandTimeLineForStations(timeLineRows, expandedschedulingUnitItems, "missing_stations", groupingkey); if (includeStationsMissingInfo) expandTimeLineForStations(timeLineRows, expandedschedulingUnitItems, "missing_stations", groupingkey);
...@@ -29,7 +28,7 @@ function expandTimeLineForStations(timeLineRows, expandedschedulingUnitItems,pro ...@@ -29,7 +28,7 @@ function expandTimeLineForStations(timeLineRows, expandedschedulingUnitItems,pro
} }
// we split up the CS/RS/IS Stations into possible 3 rows. // we split up the CS/RS/IS Stations into possible 3 rows.
function expandTimeLineForStationGroup(includeStationsgroupInfo, timeLineRows, expandedschedulingUnitItems) { function expandTimeLineForStationGroup(timeLineRows, expandedschedulingUnitItems) {
for (const timelinerow of timeLineRows) { for (const timelinerow of timeLineRows) {
const stationsgroups = timelinerow.stationsgroups; const stationsgroups = timelinerow.stationsgroups;
...@@ -77,9 +76,6 @@ function cleanSingleTimelineGroups(timelineItem) { ...@@ -77,9 +76,6 @@ function cleanSingleTimelineGroups(timelineItem) {
if (timelineItem.antenna_set_group) delete timelineItem.antenna_set_group; if (timelineItem.antenna_set_group) delete timelineItem.antenna_set_group;
if (timelineItem.band_group) delete timelineItem.band_group; if (timelineItem.band_group) delete timelineItem.band_group;
if (timelineItem.stationsgroups) delete timelineItem.stationsgroups; if (timelineItem.stationsgroups) delete timelineItem.stationsgroups;
if (timelineItem.specified_stations) delete timelineItem.specified_stations;
if (timelineItem.groupingSuffix) delete timelineItem.groupingSuffix;
if (timelineItem.scheduler_group) delete timelineItem.scheduler_group; if (timelineItem.scheduler_group) delete timelineItem.scheduler_group;
} }
export function getFieldsHtml(fields, status = undefined, style = {}) { export function getFieldsHtml(fields = [], status = undefined, style = {}) {
const labelClassName = status ? `col-5 su-${status}-icon` : 'col-5' const result = fields.map((field, index) => {
try {
const { label = '-', value = '-' } = field || {};
const result = return (
fields.map((field ) => ( <div key={`${label}-${index}`} className="entry">
<div key={field.label} className="entry"> <label className={status ? `col-5 su-${status}-icon` : 'col-5'} style={style}>
<label className={labelClassName} style={style}>{field.label}</label> {label}
<div className="col-7">{field.value?field.value:'-'}</div> </label>
<div className="col-7">{value}</div>
</div> </div>
)) );
} catch (error) {
console.error(`Error processing field at index ${index}:`, error);
return <div key={`error-${index}`}>Error processing field</div>;
}
});
return result; return result;
} }
...@@ -18,6 +27,7 @@ const labelObject = (label, value) => ({ ...@@ -18,6 +27,7 @@ const labelObject = (label, value) => ({
}) })
function getScheduleItem(mouseOverItem) { function getScheduleItem(mouseOverItem) {
console.log(mouseOverItem)
const scheduleItemFields = [ const scheduleItemFields = [
labelObject("Project:", mouseOverItem.project), labelObject("Project:", mouseOverItem.project),
labelObject("Scheduling Unit:", mouseOverItem.name), labelObject("Scheduling Unit:", mouseOverItem.name),
...@@ -47,11 +57,12 @@ function getScheduleItem(mouseOverItem) { ...@@ -47,11 +57,12 @@ function getScheduleItem(mouseOverItem) {
} }
function getReservationItem(mouseOverItem) { function getReservationItem(mouseOverItem) {
let reservationItemFields = [ let reservationItemFields = [
labelObject("Name:", mouseOverItem.name), labelObject("Name:", mouseOverItem.name),
labelObject("Description:", mouseOverItem.desc), labelObject("Description:", mouseOverItem.desc),
labelObject("Type:", mouseOverItem.activity_type), labelObject("Type:", mouseOverItem.activity_type),
labelObject("Stations:", mouseOverItem.stations,), labelObject("Stations:", mouseOverItem.stations),
labelObject("Project:", mouseOverItem.project ? mouseOverItem.project : "-"), labelObject("Project:", mouseOverItem.project ? mouseOverItem.project : "-"),
labelObject("Start Time:", mouseOverItem.real_start_time), labelObject("Start Time:", mouseOverItem.real_start_time),
labelObject("End Time:", mouseOverItem.real_end_time), labelObject("End Time:", mouseOverItem.real_end_time),
...@@ -90,6 +101,8 @@ function getItemForType(mouseOverItem) { ...@@ -90,6 +101,8 @@ function getItemForType(mouseOverItem) {
* @param props mouseOverItem: the item with all it's information to be shown in the pop-up * @param props mouseOverItem: the item with all it's information to be shown in the pop-up
*/ */
export default function TimelineItemPopover(props) { export default function TimelineItemPopover(props) {
try {
const { mouseOverItem } = props; const { mouseOverItem } = props;
if (!mouseOverItem) { if (!mouseOverItem) {
return; return;
...@@ -98,3 +111,9 @@ export default function TimelineItemPopover(props) { ...@@ -98,3 +111,9 @@ export default function TimelineItemPopover(props) {
{getItemForType(mouseOverItem)} {getItemForType(mouseOverItem)}
</div> </div>
} }
catch (e) {
return <div className="p-overlaypanel-content">
Error parsing
</div>
}
}
...@@ -167,6 +167,12 @@ export function getTimelineItem(suBlueprint, displayDate, includeStationsInfo, i ...@@ -167,6 +167,12 @@ export function getTimelineItem(suBlueprint, displayDate, includeStationsInfo, i
real_end_time: suBlueprint.real_end_time, real_end_time: suBlueprint.real_end_time,
}; };
setGroupingKeys(timeLineRow, currentGrouping, includeStationsInfo, suBlueprint, includeStationsgroupInfo, stations);
return timeLineRow;
}
function setGroupingKeys(timeLineRow, currentGrouping, includeStationsInfo, suBlueprint, includeStationsgroupInfo, stations) {
if (timeLineRow.antenna_set !== undefined) { if (timeLineRow.antenna_set !== undefined) {
timeLineRow.antenna_set_group = timeLineRow.antenna_set + '#' + currentGrouping; timeLineRow.antenna_set_group = timeLineRow.antenna_set + '#' + currentGrouping;
} }
...@@ -174,28 +180,22 @@ export function getTimelineItem(suBlueprint, displayDate, includeStationsInfo, i ...@@ -174,28 +180,22 @@ export function getTimelineItem(suBlueprint, displayDate, includeStationsInfo, i
timeLineRow.band_group = timeLineRow.band + '#' + currentGrouping; timeLineRow.band_group = timeLineRow.band + '#' + currentGrouping;
} }
// we do want to include the stations specified here, cause lateron we will split them one by one station if grouping wants them per station // we do want to include the stations specified here, cause lateron we will split them one by one station if grouping wants them per station
if (includeStationsInfo) { if (includeStationsInfo) {
timeLineRow.specified_stations = suBlueprint.specified_stations timeLineRow.specified_stations = suBlueprint.specified_stations;
timeLineRow.used_stations = suBlueprint.used_stations timeLineRow.used_stations = suBlueprint.used_stations;
timeLineRow.missing_stations = suBlueprint.missing_stations timeLineRow.missing_stations = suBlueprint.missing_stations;
} }
// we do want to include the grouping info here, cause later on we will split them one by stationgroup if grouping wants them per group // we do want to include the grouping info here, cause later on we will split them one by stationgroup if grouping wants them per group
if (includeStationsgroupInfo) { if (includeStationsgroupInfo) {
timeLineRow.stationsgroups = stations.stationsgroups timeLineRow.stationsgroups = stations.stationsgroups;
} }
if (includeStationsInfo || includeStationsgroupInfo) { if (includeStationsInfo || includeStationsgroupInfo) {
timeLineRow.groupingSuffix = '#' + currentGrouping; timeLineRow.groupingSuffix = '#' + currentGrouping;
} }
return timeLineRow;
} }
/** /**
...@@ -214,8 +214,10 @@ export function getReservationItem(reservation, index, displayDate) { ...@@ -214,8 +214,10 @@ export function getReservationItem(reservation, index, displayDate) {
const group = moment(reservation.start_time).format(UIConstants.CALENDAR_GROUP_FORMAT); const group = moment(reservation.start_time).format(UIConstants.CALENDAR_GROUP_FORMAT);
const blockColor = getReservationTypeColorIndex(specificationsDoc?.schedulability); const blockColor = getReservationTypeColorIndex(specificationsDoc?.schedulability);
const duration = reservation.duration ? UnitConverter.getSecsToHHmmss(reservation.duration) : "Unknown"; const duration = reservation.duration ? UnitConverter.getSecsToHHmmss(reservation.duration) : "Unknown";
const stations = getStationsInfo(specificationsDoc?.resources?.specified_stations); const stations = getStationsInfo(specificationsDoc?.resources?.stations);
return {
let timeLineRow = {
id: reservation.id + "~" + index, id: reservation.id + "~" + index,
reservationId: reservation.id, reservationId: reservation.id,
start_time: startTime, start_time: startTime,
...@@ -223,11 +225,12 @@ export function getReservationItem(reservation, index, displayDate) { ...@@ -223,11 +225,12 @@ export function getReservationItem(reservation, index, displayDate) {
group: group, group: group,
name: reservation.name, name: reservation.name,
project: reservation.project_id, project: reservation.project_id,
type: 'RESERVATION', type: 'RESERVATION',
activity_type: `${type}${reservation.project_id ? (" - " + reservation.project_id) : ""}`, activity_type: `${type}${reservation.project_id ? (" - " + reservation.project_id) : ""}`,
reason: type, reason: type,
title: '', title: '',
stations: stations, stations: stations.summary,
desc: reservation.description, desc: reservation.description,
duration: duration, duration: duration,
planned: specificationsDoc?.activity?.planned, planned: specificationsDoc?.activity?.planned,
...@@ -238,6 +241,14 @@ export function getReservationItem(reservation, index, displayDate) { ...@@ -238,6 +241,14 @@ export function getReservationItem(reservation, index, displayDate) {
selectedBgColor: blockColor.bgColor, selectedBgColor: blockColor.bgColor,
color: blockColor.color color: blockColor.color
}; };
const currentGrouping = moment(timeLineRow.start_time).format(UIConstants.CALENDAR_DEFAULTDATE_FORMAT)
timeLineRow.name_group = timeLineRow.name + '#' + currentGrouping
timeLineRow.project_group = timeLineRow.project + '#' + currentGrouping
return timeLineRow;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment