progress screen progress bar
This commit is contained in:
parent
eae3b321c7
commit
8cc6e4a1eb
|
@ -126,10 +126,15 @@ const navigation = (() => {
|
||||||
postMessage('loaded');
|
postMessage('loaded');
|
||||||
};
|
};
|
||||||
|
|
||||||
const countLoadedCanvases = () => displays.reduce((acc, display) => {
|
const countLoadedCanvases = () => {
|
||||||
|
const result = displays.reduce((acc, display) => {
|
||||||
|
console.log(display.name, display.status);
|
||||||
if (display.status !== STATUS.loading) return acc + 1;
|
if (display.status !== STATUS.loading) return acc + 1;
|
||||||
return acc;
|
return acc;
|
||||||
}, 0);
|
}, 0);
|
||||||
|
console.log(result);
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
|
||||||
const hideAllCanvases = () => {
|
const hideAllCanvases = () => {
|
||||||
displays.forEach((display) => display.hideCanvas());
|
displays.forEach((display) => display.hideCanvas());
|
||||||
|
|
|
@ -22,6 +22,9 @@ class Progress extends WeatherDisplay {
|
||||||
async drawCanvas(displays, loadedCount) {
|
async drawCanvas(displays, loadedCount) {
|
||||||
super.drawCanvas();
|
super.drawCanvas();
|
||||||
|
|
||||||
|
// get the progress bar cover (makes percentage)
|
||||||
|
if (!this.progressCover) this.progressCover = this.elem.querySelector('.scroll .cover');
|
||||||
|
|
||||||
// if no displays provided just draw the backgrounds (above)
|
// if no displays provided just draw the backgrounds (above)
|
||||||
if (!displays) return;
|
if (!displays) return;
|
||||||
const lines = displays.map((display, index) => {
|
const lines = displays.map((display, index) => {
|
||||||
|
@ -73,11 +76,12 @@ class Progress extends WeatherDisplay {
|
||||||
const loadedPercent = (loadedCount / displays.length);
|
const loadedPercent = (loadedCount / displays.length);
|
||||||
|
|
||||||
if (loadedPercent < 1.0) {
|
if (loadedPercent < 1.0) {
|
||||||
// Draw a box for the progress.
|
// show the progress bar and set width
|
||||||
|
this.progressCover.parentNode.classList.add('show');
|
||||||
|
this.progressCover.style.width = `${(1.0 - loadedPercent) * 100}%`;
|
||||||
} else {
|
} else {
|
||||||
// restore the background
|
// hide the progressbar
|
||||||
|
this.progressCover.parentNode.classList.remove('show');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -11,7 +11,7 @@
|
||||||
top: 15px;
|
top: 15px;
|
||||||
margin: 0px 10px;
|
margin: 0px 10px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
height: 280px;
|
height: 310px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
.item {
|
.item {
|
||||||
|
@ -82,4 +82,68 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#progress-html.weather-display .scroll {
|
||||||
|
|
||||||
|
@keyframes progress-scroll {
|
||||||
|
0% {
|
||||||
|
background-position: -40px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
background-position: 40px 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress-bar-container {
|
||||||
|
border: 2px solid black;
|
||||||
|
background-color: white;
|
||||||
|
margin: 20px auto;
|
||||||
|
width: 524px;
|
||||||
|
position: relative;
|
||||||
|
display: none;
|
||||||
|
|
||||||
|
&.show {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress-bar {
|
||||||
|
height: 20px;
|
||||||
|
margin: 2px;
|
||||||
|
width: 520px;
|
||||||
|
background: repeating-linear-gradient(90deg,
|
||||||
|
c.$gradient-loading-1 0px,
|
||||||
|
c.$gradient-loading-1 5px,
|
||||||
|
c.$gradient-loading-2 5px,
|
||||||
|
c.$gradient-loading-2 10px,
|
||||||
|
c.$gradient-loading-3 10px,
|
||||||
|
c.$gradient-loading-3 15px,
|
||||||
|
c.$gradient-loading-4 15px,
|
||||||
|
c.$gradient-loading-4 20px,
|
||||||
|
c.$gradient-loading-3 20px,
|
||||||
|
c.$gradient-loading-3 25px,
|
||||||
|
c.$gradient-loading-2 25px,
|
||||||
|
c.$gradient-loading-2 30px,
|
||||||
|
c.$gradient-loading-1 30px,
|
||||||
|
c.$gradient-loading-1 40px,
|
||||||
|
);
|
||||||
|
// animation
|
||||||
|
animation-duration: 2s;
|
||||||
|
animation-fill-mode: forwards;
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
animation-name: progress-scroll;
|
||||||
|
animation-timing-function: linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cover {
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
right: 0px;
|
||||||
|
background-color: white;
|
||||||
|
width: 100%;
|
||||||
|
height: 24px;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
21
server/styles/scss/_radar.scss
Normal file
21
server/styles/scss/_radar.scss
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
@use 'shared/_colors'as c;
|
||||||
|
@use 'shared/_utils'as u;
|
||||||
|
|
||||||
|
#radar-html.weather-display {
|
||||||
|
background-image: url('../images/BackGround4_1.png');
|
||||||
|
|
||||||
|
.header {
|
||||||
|
.title.dual {
|
||||||
|
color: white;
|
||||||
|
font-family: 'Arial', sans-serif;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 28pt;
|
||||||
|
|
||||||
|
.bottom {
|
||||||
|
top: 30px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.weather-display .main.radar {}
|
|
@ -110,7 +110,7 @@
|
||||||
.scroll {
|
.scroll {
|
||||||
@include u.text-shadow(3px, 1.5px);
|
@include u.text-shadow(3px, 1.5px);
|
||||||
width: 640px;
|
width: 640px;
|
||||||
height: 80px;
|
height: 70px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
@import 'page';
|
@import 'page';
|
||||||
|
@import 'weather-display';
|
||||||
@import 'current-weather';
|
@import 'current-weather';
|
||||||
@import 'extended-forecast';
|
@import 'extended-forecast';
|
||||||
@import 'hourly';
|
@import 'hourly';
|
||||||
@import 'latest-observations';
|
@import 'latest-observations';
|
||||||
@import 'local-forecast';
|
@import 'local-forecast';
|
||||||
@import 'progress';
|
@import 'progress';
|
||||||
|
@import 'radar';
|
||||||
@import 'regional-forecast';
|
@import 'regional-forecast';
|
||||||
@import 'weather-display';
|
|
|
@ -7,6 +7,11 @@ $column-header: rgb(32, 0, 87);
|
||||||
$gradient-main-background-1: #102080;
|
$gradient-main-background-1: #102080;
|
||||||
$gradient-main-background-2: #001040;
|
$gradient-main-background-2: #001040;
|
||||||
|
|
||||||
|
$gradient-loading-1: #09246f;
|
||||||
|
$gradient-loading-2: #364ac0;
|
||||||
|
$gradient-loading-3: #4f99f9;
|
||||||
|
$gradient-loading-4: #8ffdfa;
|
||||||
|
|
||||||
$extended-low: #8080FF;
|
$extended-low: #8080FF;
|
||||||
|
|
||||||
$blue-box: #26235a;
|
$blue-box: #26235a;
|
|
@ -107,6 +107,9 @@
|
||||||
<div id="extended-forecast-html" class="weather-display">
|
<div id="extended-forecast-html" class="weather-display">
|
||||||
<%- include('partials/extended-forecast.ejs') %>
|
<%- include('partials/extended-forecast.ejs') %>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="radar-html" class="weather-display">
|
||||||
|
<%- include('partials/radar.ejs') %>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="divTwcBottom">
|
<div id="divTwcBottom">
|
||||||
<div id="divTwcBottomLeft">
|
<div id="divTwcBottomLeft">
|
||||||
|
|
|
@ -13,3 +13,9 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="scroll">
|
||||||
|
<div class="progress-bar-container show">
|
||||||
|
<div class="progress-bar"></div>
|
||||||
|
<div class="cover"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
21
views/partials/radar.ejs
Normal file
21
views/partials/radar.ejs
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
<div class="header">
|
||||||
|
<div class="logo"><img src="images/Logo3.png" /></div>
|
||||||
|
<div class="title dual">
|
||||||
|
<div class="top">
|
||||||
|
Local
|
||||||
|
</div>
|
||||||
|
<div class="bottom">
|
||||||
|
Radar
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="main radar">
|
||||||
|
<div class="container">
|
||||||
|
<div class="frame">
|
||||||
|
<div class="map">
|
||||||
|
<img src="" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -6,12 +6,13 @@
|
||||||
],
|
],
|
||||||
"settings": {
|
"settings": {
|
||||||
"search.exclude": {
|
"search.exclude": {
|
||||||
"**/node_modules": true,
|
|
||||||
"**/bower_components": true,
|
|
||||||
"**/*.code-search": true,
|
"**/*.code-search": true,
|
||||||
"dist/**": true,
|
"**/*.css": true,
|
||||||
"**/*.min.js": true,
|
"**/*.min.js": true,
|
||||||
|
"**/bower_components": true,
|
||||||
|
"**/node_modules": true,
|
||||||
"**/vendor": true,
|
"**/vendor": true,
|
||||||
|
"dist/**": true
|
||||||
},
|
},
|
||||||
"cSpell.enabled": true,
|
"cSpell.enabled": true,
|
||||||
"cSpell.words": [
|
"cSpell.words": [
|
||||||
|
|
Loading…
Reference in a new issue