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 ...@@ -253,20 +253,27 @@ function getSunTimingItem(groupId, groupkey, idPrefix, color, startTime, sunTime
export async function getSunTimingItems(startTime, groups, groupkey) { 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 = [] const sunTimingItems = []
for (const group of groups) { for (const group of groups) {
const groupDay = moment(group.date); const groupDay = moment(group.date);
const groupDaymoment = groupDay.format("YYYY-MM-DD");
const timings = await UtilService.getSunTimings(groupDay.format("YYYY-MM-DD")); let timings = allstationtimings?.[group.designatedStation || "CS002"];
const sunriseStart = moment.utc(timings.sun_rise.start); let dateindex = uniqueDates.indexOf(groupDaymoment);
const sunriseEnd = moment.utc(timings.sun_rise.end); const sunriseStart = moment.utc(timings.sunrise[dateindex].start);
const sunsetStart = moment.utc(timings.sun_set.start); const sunriseEnd = moment.utc(timings.sunrise[dateindex].end);
const sunsetEnd = moment.utc(timings.sun_set.end); const sunsetStart = moment.utc(timings.sunset[dateindex].start);
const sunsetEnd = moment.utc(timings.sunset[dateindex].end);
const startOfDay = startTime.clone().startOf('day') const startOfDay = startTime.clone().startOf('day')
const endOfDay = startTime.clone().endOf('day') const endOfDay = startTime.clone().endOf('day')
const nightItemBeforeSunrise = getSunTimingItem(group.id, groupkey, "bef-sunrise", "grey", startOfDay, startOfDay, sunriseStart) const nightItemBeforeSunrise = getSunTimingItem(group.id, groupkey, "bef-sunrise", "grey", startOfDay, startOfDay, sunriseStart)
const sunriseItem = getSunTimingItem(group.id, groupkey, "sunrise", "#FFF176", startTime, sunriseStart, sunriseEnd) const sunriseItem = getSunTimingItem(group.id, groupkey, "sunrise", "#FFF176", startTime, sunriseStart, sunriseEnd)
const sunsetItem = getSunTimingItem(group.id, groupkey, "sunset", "#FFB74D", startTime, sunsetStart, sunsetEnd) const sunsetItem = getSunTimingItem(group.id, groupkey, "sunset", "#FFB74D", startTime, sunsetStart, sunsetEnd)
......
...@@ -59,11 +59,11 @@ const UtilService = { ...@@ -59,11 +59,11 @@ const UtilService = {
} }
}, },
/** Function to fetch sun timings from the backend for single station. */ /** Function to fetch sun timings from the backend for single station. */
getSunTimings: async (timestamp, station) => { getSunTimings: async (timestamp, stations) => {
try { try {
station = station ? station : "CS002"; stations = stations || "CS002";
let stationTimestamp = (station ? `${station}-` : "") + timestamp; let stationTimestamp = (stations ? `${stations}-` : "") + timestamp;
let localSunTimeMap = localStorage.getItem('SUN_TIME_MAP'); let localSunTimeMap = localStorage.getItem('SUN_TIME_MAP_V3');
if (localSunTimeMap) { if (localSunTimeMap) {
localSunTimeMap = JSON.parse(localSunTimeMap); localSunTimeMap = JSON.parse(localSunTimeMap);
if (localSunTimeMap[stationTimestamp]) { if (localSunTimeMap[stationTimestamp]) {
...@@ -72,12 +72,11 @@ const UtilService = { ...@@ -72,12 +72,11 @@ const UtilService = {
} else { } else {
localSunTimeMap = {}; 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; const stationSunTimings = (await axios.get(url)).data;
let sunTimings = { sun_rise: stationSunTimings[station]['sunrise'][0], sun_set: stationSunTimings[station]['sunset'][0] }; localSunTimeMap[stationTimestamp] = stationSunTimings;
localSunTimeMap[stationTimestamp] = sunTimings; localStorage.setItem('SUN_TIME_MAP_V3', JSON.stringify(localSunTimeMap));
localStorage.setItem('SUN_TIME_MAP', JSON.stringify(localSunTimeMap)); return stationSunTimings;
return sunTimings;
} catch (error) { } catch (error) {
console.error(error); console.error(error);
return null; 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