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

It's the sunsetting for the world

parent c0b33996
No related branches found
No related tags found
1 merge request!1213Resolve TMSS-2717 "Refactor details summary + ui tweaks"
......@@ -253,20 +253,27 @@ function getSunTimingItem(groupId, groupkey, idPrefix, color, startTime, sunTime
export async function getSunTimingItems(startTime, groups, groupkey) {
let uniqueStations = [...new Set(groups.map(group => group.designatedStation))]; // get all unique Station names.
let stringifiedUniqueStations = uniqueStations.join(",");
let uniqueDates = [...new Set(groups.map(group => moment(group.date).format("YYYY-MM-DD")))]; // get all unique Station dates.
let stringifiedUniqueDates = uniqueDates.join(",");
const allstationtimings = await UtilService.getSunTimings(stringifiedUniqueDates,stringifiedUniqueStations);
const sunTimingItems = []
for (const group of groups) {
const groupDay = moment(group.date);
const timings = await UtilService.getSunTimings(groupDay.format("YYYY-MM-DD"));
const sunriseStart = moment.utc(timings.sun_rise.start);
const sunriseEnd = moment.utc(timings.sun_rise.end);
const sunsetStart = moment.utc(timings.sun_set.start);
const sunsetEnd = moment.utc(timings.sun_set.end);
const groupDaymoment = groupDay.format("YYYY-MM-DD");
let timings = allstationtimings?.[group.designatedStation || "CS002"];
let dateindex = uniqueDates.indexOf(groupDaymoment);
const sunriseStart = moment.utc(timings.sunrise[dateindex].start);
const sunriseEnd = moment.utc(timings.sunrise[dateindex].end);
const sunsetStart = moment.utc(timings.sunset[dateindex].start);
const sunsetEnd = moment.utc(timings.sunset[dateindex].end);
const startOfDay = startTime.clone().startOf('day')
const endOfDay = startTime.clone().endOf('day')
const nightItemBeforeSunrise = getSunTimingItem(group.id, groupkey, "bef-sunrise", "grey", startOfDay, startOfDay, sunriseStart)
const sunriseItem = getSunTimingItem(group.id, groupkey, "sunrise", "#FFF176", startTime, sunriseStart, sunriseEnd)
const sunsetItem = getSunTimingItem(group.id, groupkey, "sunset", "#FFB74D", startTime, sunsetStart, sunsetEnd)
......
......@@ -59,11 +59,11 @@ const UtilService = {
}
},
/** Function to fetch sun timings from the backend for single station. */
getSunTimings: async (timestamp, station) => {
getSunTimings: async (timestamp, stations) => {
try {
station = station ? station : "CS002";
let stationTimestamp = (station ? `${station}-` : "") + timestamp;
let localSunTimeMap = localStorage.getItem('SUN_TIME_MAP');
stations = stations || "CS002";
let stationTimestamp = (stations ? `${stations}-` : "") + timestamp;
let localSunTimeMap = localStorage.getItem('SUN_TIME_MAP_V3');
if (localSunTimeMap) {
localSunTimeMap = JSON.parse(localSunTimeMap);
if (localSunTimeMap[stationTimestamp]) {
......@@ -72,12 +72,11 @@ const UtilService = {
} else {
localSunTimeMap = {};
}
const url = `/api/util/sun_rise_and_set?stations=${station ? station : 'CS002'}&timestamps=${timestamp}`;
const url = `/api/util/sun_rise_and_set?stations=${stations}&timestamps=${timestamp}`;
const stationSunTimings = (await axios.get(url)).data;
let sunTimings = { sun_rise: stationSunTimings[station]['sunrise'][0], sun_set: stationSunTimings[station]['sunset'][0] };
localSunTimeMap[stationTimestamp] = sunTimings;
localStorage.setItem('SUN_TIME_MAP', JSON.stringify(localSunTimeMap));
return sunTimings;
localSunTimeMap[stationTimestamp] = stationSunTimings;
localStorage.setItem('SUN_TIME_MAP_V3', JSON.stringify(localSunTimeMap));
return stationSunTimings;
} catch (error) {
console.error(error);
return null;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment