generated from hubverse-org/hub-dashboard-template
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 0fb3ca7
Showing
22 changed files
with
6,250 additions
and
0 deletions.
There are no files selected for viewing
Empty file.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
.navbar { | ||
background-color: #003a80; | ||
} | ||
|
||
body { | ||
font-family: "Source Sans Pro", "Helvetica Neue", Helvetica Neue, Helvetica, Arial, sans-serif; | ||
} | ||
|
||
a { | ||
color: #0073ff; | ||
} | ||
|
||
a:hover, | ||
a:focus { | ||
color: #0073ff; | ||
} | ||
|
||
.navbar-inverse .navbar-nav > li > a:hover { | ||
background-color: #002858; | ||
} | ||
|
||
.navbar-inverse .navbar-nav > li > a:focus { | ||
background-color: #002858; | ||
} | ||
|
||
.navbar-inverse .navbar-nav > .active > a, | ||
.navbar-inverse .navbar-nav > .active > a:hover, | ||
.navbar-inverse .navbar-nav > .active > a:focus { | ||
background-color: #002858; | ||
} | ||
|
||
.button { | ||
color: #ffffff; | ||
padding: 20px 40px; | ||
font-size: 20px; | ||
border: none; | ||
|
||
border-radius: 5px; | ||
|
||
margin: 5px; | ||
} | ||
|
||
.button.forecasts { | ||
color: #fff; | ||
background-color: #003a80; | ||
} | ||
|
||
.button.reports { | ||
color: #fff; | ||
background-color: #64a621; | ||
} | ||
|
||
.list-group-item.active, | ||
.list-group-item.active:hover, | ||
.list-group-item.active:focus { | ||
background-color: #003a80; | ||
} | ||
|
||
@media (min-width: 768px) and (max-width: 991px) { | ||
header { | ||
padding-bottom: 89.2px !important; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
import App from 'https://cdn.jsdelivr.net/gh/reichlab/[email protected]/dist/predtimechart.bundle.js'; | ||
document.predtimechart = App; // for debugging | ||
|
||
function replace_chars(the_string) { | ||
// replace all non-alphanumeric characters, except dashes and underscores, with a dash | ||
return the_string.replace(/[^a-zA-Z0-9-_]/g, '-'); | ||
} | ||
|
||
const root = "https://raw.githubusercontent.com/reichlab/flusight-dashboard/refs/heads/ptc/data/"; | ||
|
||
function _fetchData(isForecast, targetKey, taskIDs, referenceDate) { | ||
// ex taskIDs: {"scenario_id": "A-2022-05-09", "location": "US"} . NB: key order not sorted | ||
console.info("_fetchData(): entered.", isForecast, `"${targetKey}"`, taskIDs, `"${referenceDate}"`); | ||
|
||
const targetKeyStr = replace_chars(targetKey); | ||
|
||
// get .json file name: 1) get taskIDs values ordered by sorted keys, 2) clean up ala `json_file_name()` | ||
const taskIDsValsSorted = Object.keys(taskIDs).sort().map(key => taskIDs[key]); | ||
const taskIDsValsStr = replace_chars(taskIDsValsSorted.join(' ')); | ||
|
||
let target_path; | ||
// Get the reference date for today and use it to find | ||
// the correct targets file | ||
var now = new Date(); | ||
const day = now.getDay(); | ||
var days_to_saturday = 6 - day; | ||
if (days_to_saturday < 0) { | ||
days_to_saturday = days_to_saturday + 7; | ||
} | ||
now.setDate(now.getDate() + days_to_saturday); | ||
const tagetDate = now.toISOString().split("T")[0]; | ||
|
||
const slug = `${targetKeyStr}_${taskIDsValsStr}`; | ||
const forecast_file_name = `${slug}_${referenceDate}.json`; | ||
const target_file_name = `${slug}_${tagetDate}.json`; | ||
if (isForecast) { | ||
target_path = `${root}/forecasts/${forecast_file_name}`; | ||
} else { | ||
target_path = `${root}/targets/${target_file_name}`; | ||
} | ||
return fetch(target_path); // Pwomise? | ||
} | ||
|
||
|
||
// load options and then initialize the component | ||
fetch(`${root}/predtimechart-options.json`) | ||
.then(response => response.json()) | ||
.then((data) => { | ||
console.info("fetch(): done. calling App.initialize().", data); | ||
|
||
// componentDiv, _fetchData, isIndicateRedraw, options, _calcUemForecasts: | ||
App.initialize('forecastViz_row', _fetchData, false, data, null); | ||
}) | ||
.then(function() { | ||
// ZNK 2024-09-16: update for bootstrap 5 | ||
var divs = document.querySelectorAll("div[class^='col-md']"); | ||
for (var div of divs) { | ||
if (div.className.match("g-col") == null) { | ||
var n = div.className.match("col-md-(.{1,2})")[1]; | ||
div.classList.add("g-col-"+n); | ||
} | ||
} | ||
}); | ||
|
||
window.addEventListener('DOMContentLoaded', function() { | ||
var divs = document.querySelectorAll("div[class^='col-md']"); | ||
for (var div of divs) { | ||
if (div.className.match("g-col") == null) { | ||
var n = div.className.match("col-md-(.{1,2})")[1]; | ||
div.classList.add("g-col-"+n); | ||
} | ||
} | ||
}); | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
[ | ||
{ | ||
"objectID": "forecast.html", | ||
"href": "forecast.html", | ||
"title": "FluSight Forecast Hub Dashboard", | ||
"section": "", | ||
"text": "this is replaced" | ||
}, | ||
{ | ||
"objectID": "index.html", | ||
"href": "index.html", | ||
"title": "Introduction", | ||
"section": "", | ||
"text": "This is a dashboard for the FluSight forecasting challenge that is organized by the US CDC. A page with forecast evaluations will be added at a later date.\n\nView The Latest Forecasts" | ||
} | ||
] |
Oops, something went wrong.