TeaWeb/loader/app/targets/certaccept.ts

95 lines
2.4 KiB
TypeScript
Raw Normal View History

import * as loader from "../loader/loader";
2019-08-31 18:31:01 +02:00
2019-09-01 17:24:06 +02:00
let is_debug = false;
/* all javascript loaders */
const loader_javascript = {
detect_type: async () => {
/* test if js/proto.js is available. If so we're in debug mode */
const request = new XMLHttpRequest();
request.open('GET', 'js/proto.js', true);
await new Promise((resolve, reject) => {
request.onreadystatechange = () => {
if (request.readyState === 4){
is_debug = request.status !== 404;
resolve();
}
};
request.onerror = () => {
reject("Failed to detect app type");
};
request.send();
});
},
load_scripts: async () => {
await loader.load_script(["vendor/jquery/jquery.min.js"]);
await loader.load_scripts([
2020-03-30 13:44:18 +02:00
["dist/certificate-popup.js"],
2019-09-01 17:24:06 +02:00
]);
}
};
const loader_style = {
load_style: async () => {
if(is_debug) {
await loader_style.load_style_debug();
} else {
await loader_style.load_style_release();
}
},
load_style_debug: async () => {
await loader.load_styles([
"css/static/main.css",
]);
},
load_style_release: async () => {
await loader.load_styles([
"css/static/main.css",
]);
}
};
loader.register_task(loader.Stage.INITIALIZING, {
name: "app type test",
function: loader_javascript.detect_type,
priority: 20
});
loader.register_task(loader.Stage.JAVASCRIPT, {
name: "javascript",
function: loader_javascript.load_scripts,
priority: 10
});
loader.register_task(loader.Stage.STYLE, {
name: "style",
function: loader_style.load_style,
priority: 10
});
2019-08-31 18:31:01 +02:00
/* register tasks */
loader.register_task(loader.Stage.INITIALIZING, {
name: "safari fix",
function: async () => {
/* safari remove "fix" */
if(Element.prototype.remove === undefined)
Object.defineProperty(Element.prototype, "remove", {
enumerable: false,
configurable: false,
writable: false,
value: function(){
this.parentElement.removeChild(this);
}
});
},
priority: 50
});
if(!loader.running()) {
/* we know that we want to load the app */
loader.execute_managed();
}