mirror of
https://github.com/netbymatt/ws4kp.git
synced 2026-04-14 07:39:29 -07:00
@@ -69,7 +69,7 @@ class Almanac extends WeatherDisplay {
|
|||||||
|
|
||||||
// stop after 30 days or 4 moon phases
|
// stop after 30 days or 4 moon phases
|
||||||
iterations += 1;
|
iterations += 1;
|
||||||
} while (iterations <= 30 && moon.length < 4);
|
} while (iterations <= 45 && moon.length < 5);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
sun,
|
sun,
|
||||||
@@ -123,21 +123,16 @@ class Almanac extends WeatherDisplay {
|
|||||||
|
|
||||||
// Set day names
|
// Set day names
|
||||||
const Today = DateTime.local();
|
const Today = DateTime.local();
|
||||||
const Tomorrow = Today.plus({ days: 1 });
|
// fill all three days, even if some are hidden by non-enhanced
|
||||||
this.elem.querySelector('.day-1').textContent = Today.toLocaleString({ weekday: 'long' });
|
for (let i = 0; i < 3; i += 1) {
|
||||||
this.elem.querySelector('.day-2').textContent = Tomorrow.toLocaleString({ weekday: 'long' });
|
this.elem.querySelector(`.day-${i}`).textContent = Today.plus({ days: i }).toLocaleString({ weekday: 'long' });
|
||||||
|
|
||||||
const todaySunrise = DateTime.fromJSDate(info.sun[0].sunrise);
|
const sunrise = DateTime.fromJSDate(info.sun[i].sunrise);
|
||||||
const todaySunset = DateTime.fromJSDate(info.sun[0].sunset);
|
const sunset = DateTime.fromJSDate(info.sun[i].sunset);
|
||||||
const [todaySunriseFormatted, todaySunsetFormatted] = formatTimesForColumn([todaySunrise, todaySunset]);
|
const [sunriseFormatted, sunsetFormatted] = formatTimesForColumn([sunrise, sunset]);
|
||||||
this.elem.querySelector('.rise-1').textContent = todaySunriseFormatted;
|
this.elem.querySelector(`.rise-${i}`).textContent = sunriseFormatted;
|
||||||
this.elem.querySelector('.set-1').textContent = todaySunsetFormatted;
|
this.elem.querySelector(`.set-${i}`).textContent = sunsetFormatted;
|
||||||
|
}
|
||||||
const tomorrowSunrise = DateTime.fromJSDate(info.sun[1].sunrise);
|
|
||||||
const tomorrowSunset = DateTime.fromJSDate(info.sun[1].sunset);
|
|
||||||
const [tomorrowSunriseFormatted, tomorrowSunsetformatted] = formatTimesForColumn([tomorrowSunrise, tomorrowSunset]);
|
|
||||||
this.elem.querySelector('.rise-2').textContent = tomorrowSunriseFormatted;
|
|
||||||
this.elem.querySelector('.set-2').textContent = tomorrowSunsetformatted;
|
|
||||||
|
|
||||||
// Moon data
|
// Moon data
|
||||||
const days = info.moon.map((MoonPhase) => {
|
const days = info.moon.map((MoonPhase) => {
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ class ExtendedForecast extends WeatherDisplay {
|
|||||||
super(navId, elemId, 'Extended Forecast', true);
|
super(navId, elemId, 'Extended Forecast', true);
|
||||||
|
|
||||||
// set timings
|
// set timings
|
||||||
if (settings.enhancedScreens?.value) {
|
if (settings.portrait?.value) {
|
||||||
this.timing.totalScreens = 1;
|
this.timing.totalScreens = 1;
|
||||||
this.perPage = 4;
|
this.perPage = 4;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1,8 +1,13 @@
|
|||||||
@use 'shared/_colors' as c;
|
@use 'shared/_colors'as c;
|
||||||
@use 'shared/_utils' as u;
|
@use 'shared/_utils'as u;
|
||||||
|
|
||||||
#almanac-html.weather-display {
|
#almanac-html.weather-display {
|
||||||
background-image: url('../images/backgrounds/3.png');
|
background-image: url('../images/backgrounds/3.png');
|
||||||
|
|
||||||
|
// repeat the background if wide-enhanced
|
||||||
|
.wide.enhanced & {
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.weather-display .main.almanac {
|
.weather-display .main.almanac {
|
||||||
@@ -14,13 +19,17 @@
|
|||||||
// Use CSS Grid for cross-browser consistency
|
// Use CSS Grid for cross-browser consistency
|
||||||
// Grid is populated in reading order (left-to-right, top-to-bottom):
|
// Grid is populated in reading order (left-to-right, top-to-bottom):
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: auto auto auto;
|
grid-template-columns: repeat(3, auto);
|
||||||
grid-template-rows: auto auto auto;
|
grid-template-rows: repeat(3, auto);
|
||||||
gap: 0px 90px;
|
gap: 0px 90px;
|
||||||
margin: 3px auto 5px auto; // align the bottom of the div with the background
|
margin: 3px auto 5px auto; // align the bottom of the div with the background
|
||||||
width: fit-content;
|
width: fit-content;
|
||||||
line-height: 30px;
|
line-height: 30px;
|
||||||
|
|
||||||
|
.wide.enhanced & {
|
||||||
|
grid-template-columns: repeat(4, auto);
|
||||||
|
}
|
||||||
|
|
||||||
.grid-item {
|
.grid-item {
|
||||||
// Reset inherited styles that interfere with grid layout
|
// Reset inherited styles that interfere with grid layout
|
||||||
width: auto;
|
width: auto;
|
||||||
@@ -45,6 +54,14 @@
|
|||||||
&.time {
|
&.time {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.wide-enhanced {
|
||||||
|
display: none;
|
||||||
|
|
||||||
|
.wide.enhanced & {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -58,6 +75,10 @@
|
|||||||
padding-left: 13px;
|
padding-left: 13px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.days {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
.day {
|
.day {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
@@ -77,4 +98,4 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
2
server/styles/ws.min.css
vendored
2
server/styles/ws.min.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,15 +1,18 @@
|
|||||||
<%- include('header.ejs', {title:'Almanac', hasTime: true}) %>
|
<%- include('header.ejs', {title:'Almanac', hasTime: true}) %>
|
||||||
<div class="main has-scroll almanac">
|
<div class="main has-scroll almanac can-enhance">
|
||||||
<div class="sun">
|
<div class="sun">
|
||||||
<div class="grid-item empty"></div>
|
<div class="grid-item empty"></div>
|
||||||
|
<div class="grid-item header day-0"></div>
|
||||||
<div class="grid-item header day-1"></div>
|
<div class="grid-item header day-1"></div>
|
||||||
<div class="grid-item header day-2"></div>
|
<div class="grid-item header day-2 wide-enhanced"></div>
|
||||||
<div class="grid-item row-label">Sunrise:</div>
|
<div class="grid-item row-label">Sunrise:</div>
|
||||||
|
<div class="grid-item time rise-0"></div>
|
||||||
<div class="grid-item time rise-1"></div>
|
<div class="grid-item time rise-1"></div>
|
||||||
<div class="grid-item time rise-2"></div>
|
<div class="grid-item time rise-2 wide-enhanced"></div>
|
||||||
<div class="grid-item row-label">Sunset:</div>
|
<div class="grid-item row-label">Sunset:</div>
|
||||||
|
<div class="grid-item time set-0"></div>
|
||||||
<div class="grid-item time set-1"></div>
|
<div class="grid-item time set-1"></div>
|
||||||
<div class="grid-item time set-2"></div>
|
<div class="grid-item time set-2 wide-enhanced"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="moon">
|
<div class="moon">
|
||||||
<div class="title">Moon Data:</div>
|
<div class="title">Moon Data:</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user