4in1_ws_web/htdocs/js/common/30-static-manager.js
2023-12-30 23:29:31 +00:00

49 lines
1.2 KiB
JavaScript

var StaticManager = {
/**
* @type {string[]}
*/
loadedStyles: [],
/**
* @type {object}
*/
versions: {},
/**
* @param {string[]} loadedStyles
* @param {object} versions
*/
init: function(loadedStyles, versions) {
this.loadedStyles = loadedStyles;
this.versions = versions;
},
/**
* @param {string} name
* @param {string} theme
* @param {function} callback
*/
loadStyle: function(name, theme, callback) {
var url, id;
if (!window.appConfig.devMode) {
if (theme === 'dark')
name += '_dark';
url = '/dist-css/'+name+'.css?'+this.versions.css[name];
id = 'style_'+name;
} else {
url = '/sass.php?name='+name+'&theme='+theme+'&v='+timestamp();
id = 'style_'+name+(theme === 'dark' ? '_dark' : '');
}
var el = document.createElement('link');
el.onerror = callback;
el.onload = callback;
el.setAttribute('rel', 'stylesheet');
el.setAttribute('type', 'text/css');
el.setAttribute('id', id);
el.setAttribute('href', url);
document.getElementsByTagName('head')[0].appendChild(el);
}
};