157 lines
5.6 KiB
HTML
157 lines
5.6 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<script src="/api/v1.1/System/VersionFile"></script>
|
|
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
|
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
|
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
|
<link rel="manifest" href="/site.webmanifest">
|
|
<title>Gaseous Games</title>
|
|
|
|
<script type="text/javascript">
|
|
// update src links to ensure the latest versions are always loaded.
|
|
|
|
let styleSheets = [
|
|
"/styles/select2.min.css",
|
|
"/styles/stylevars.css",
|
|
"/styles/style.css",
|
|
"/styles/notifications.css"
|
|
];
|
|
|
|
let scriptLinks = [
|
|
"/scripts/jquery-3.6.0.min.js",
|
|
"/scripts/jquery.lazy.min.js",
|
|
"/scripts/jquery.lazy.plugins.min.js",
|
|
"/scripts/moment-with-locales.min.js",
|
|
"/scripts/select2.min.js",
|
|
"/scripts/filterformating.js",
|
|
"/scripts/gamesformating.js",
|
|
"/scripts/main.js",
|
|
"/scripts/modals.js",
|
|
"/scripts/preferences.js",
|
|
"/scripts/account.js",
|
|
"/scripts/libraries.js",
|
|
"/scripts/notifications.js",
|
|
"/scripts/rominfo.js",
|
|
"/scripts/uploadrom.js"
|
|
];
|
|
|
|
let head = document.getElementsByTagName('head')[0];
|
|
|
|
// placeholder for global userProfile variable
|
|
var userProfile;
|
|
</script>
|
|
</head>
|
|
|
|
<body>
|
|
<!-- Background Images -->
|
|
<div id="bgImages"></div>
|
|
<div id="bgImage_Opacity"></div>
|
|
|
|
<!-- Notifications -->
|
|
<div id="notifications_target"></div>
|
|
|
|
<!-- Page Banner -->
|
|
<div id="banner_target"></div>
|
|
|
|
<!-- Page Content -->
|
|
<div id="content"></div>
|
|
|
|
<script type="text/javascript">
|
|
// start the application
|
|
let backgroundImageHandler = undefined;
|
|
|
|
async function loadScriptsAndStyles() {
|
|
// update script links
|
|
for (let i = 0; i < scriptLinks.length; i++) {
|
|
let newScript = document.createElement('script');
|
|
newScript.src = scriptLinks[i] + '?v=' + AppVersion;
|
|
newScript.type = "text/javascript";
|
|
newScript.async = false;
|
|
|
|
head.appendChild(newScript);
|
|
}
|
|
|
|
// update stylesheet links
|
|
for (let i = 0; i < styleSheets.length; i++) {
|
|
let newLink = document.createElement('link');
|
|
newLink.rel = "stylesheet";
|
|
newLink.href = styleSheets[i] + '?v=' + AppVersion;
|
|
newLink.type = "text/css";
|
|
|
|
head.appendChild(newLink);
|
|
}
|
|
}
|
|
|
|
async function LoadPageContent(page, targetDiv) {
|
|
if (targetDiv == undefined || targetDiv == null || targetDiv == '') {
|
|
targetDiv = 'content';
|
|
}
|
|
|
|
// load page content
|
|
let pageContentResponse = await fetch('/pages/' + page + '.html' + '?v=' + AppVersion);
|
|
let pageContentContent = await pageContentResponse.text();
|
|
document.getElementById(targetDiv).innerHTML = pageContentContent;
|
|
|
|
// load page script
|
|
let pageScriptLink = '/pages/' + page + '.js';
|
|
let script = document.createElement('script');
|
|
script.type = 'text/javascript';
|
|
script.src = pageScriptLink + '?v=' + AppVersion;
|
|
script.async = false;
|
|
document.head.appendChild(script);
|
|
|
|
backgroundImageHandler = new BackgroundImageRotator();
|
|
}
|
|
|
|
async function startApp() {
|
|
await loadScriptsAndStyles();
|
|
|
|
console.log("Starting Gaseous Games");
|
|
console.log("App Version: " + AppVersion);
|
|
console.log("First Run Status: " + FirstRunStatus);
|
|
switch (FirstRunStatus) {
|
|
case 0:
|
|
case "0":
|
|
// first run - load first run wizard
|
|
await LoadPageContent('first', 'content');
|
|
break;
|
|
|
|
default:
|
|
// first run - load login page or redirect if user already logged in
|
|
|
|
await fetch('/api/v1.1/Account/Profile/Basic')
|
|
.then(async response => {
|
|
if (response.ok) {
|
|
// user is signed in - start setting up the application
|
|
console.log("User is logged in");
|
|
userProfile = await response.json();
|
|
|
|
// load page banner
|
|
await LoadPageContent('banner', 'banner_target');
|
|
|
|
// load page content
|
|
let pageSelection = getQueryString('page', 'string');
|
|
|
|
if (!pageSelection) {
|
|
pageSelection = GetPreference("DefaultHomePage", 'home');
|
|
}
|
|
await LoadPageContent(pageSelection, 'content');
|
|
} else {
|
|
// user is not signed in - load login page
|
|
await LoadPageContent('login');
|
|
}
|
|
})
|
|
.catch(async (error) => {
|
|
console.log(error);
|
|
await LoadPageContent('login');
|
|
});
|
|
break;
|
|
}
|
|
}
|
|
|
|
window.document.addEventListener('DOMContentLoaded', startApp);
|
|
</script>
|
|
</body> |