var scripts = []; var alreadyloaded = []; var src; var script; var pendingScripts = []; var repeatingScripts = []; var firstScript = document.scripts[0]; var apiaddress = ""; function postJSONDirect(json, url, soc, f) { MyLog.log('info', 'warning', "Wysyłanie JSON: " + json + " na adres: " + apiaddress + url); // console.log(json); var obj = jQuery.parseJSON(json) obj.token = sessionStorage.getItem("token"); json = JSON.stringify(obj); MyLog.log('info', "--- sending ---"); MyLog.log('info', json); // console.log(url) $.ajax({ // async:true, cache: false, method: 'POST', url: apiaddress + url, data: json, datatype: 'json', success: function (data) { // console.log(data) //MyLog.log('warning',data); var parsed = jQuery.parseJSON(data); if (parsed.permission_error != undefined) { notificationController.showMessage("danger", "permission_not_allowed", parsed.permission_error_permission, "permission.php?p=" + parsed.permission_error.permission); } else { soc(parsed); } }, fail: function (jqXHR, textStatus) { if (f != null) { f(); } } }); } function saveLog(target, ctt, force) { if (force != true) return false; //console.log("save to web"); //console.log(ctt); ctt = escape(encodeURIComponent(ctt)); var did = $("#device-id").html(); var json = "{\"ctt\":\"" + target + ":" + ctt + "\",\"ready\":\"false\",\"type\":\"js\",\"scope\":\"error\",\"device\":\"connection_errors_" + did + "\"}"; //MyLog.log('info',json); postJSONDirect(json, "/web/log/save", function (r) { //MyLog.log('info',r); //success //l//ocation.href="/"; }, function (e) { //MyLog.log('info',e); //failed }) } var MyLog = { logscope: "error", //info,warning,//comm enabled: true, savetoweb: false, log: function (scope, obj) { try { if (MyLog.enabled && (MyLog.logscope == "all" || MyLog.logscope == scope)) { MyLog.log('info', "! " + scope + ": "); MyLog.log('info', obj); } if (MyLog.savetoweb || "error" == scope) { saveLog('js', ("! " + scope + ": " + JSON.stringify(obj)).substr(0, 100)); } } catch (err) { console.log(err) } } }; var pagescript = [function () { MyLog.log('info', "[SPR] Empty PageScript"); }]; performed = []; function setPageScript(nmb, f) { var nmbx = nmb; if (performed[nmbx] != "true") { MyLog.log('info', "[SPR] Running new pagescript " + nmb); f(); } performed[nmbx] = "true"; setTimeout(() => { performed[nmbx] = "false"; }, 300); } function setPageScriptCaching(nmb, f) { MyLog.log('info', "[SPR] Setting new pagescript " + nmb); //console.trace(); //var nmb = pagescript.length; if (pagescript[nmb] == undefined) { pagescript[nmb] = f; $(document).ready(function () { if (repeatingScripts[nmb] == undefined) { repeatingScripts[nmb] = "Performed"; MyLog.log('info', "[SPR] Running " + nmb + "th Pagescript when document ready"); pagescript[nmb](); pagescript[nmb] = undefined; altSetTimeout(() => { repeatingScripts[nmb] = undefined }, 4000); } else { MyLog.log('info', "[SPR] Ommitting " + nmb + "th Pagescript when document ready"); } }); } } function prepareScripts(nscripts) { //scripts = nscripts; //alreadyloaded = []; $(document).find("script").each(function (i, e) { var $src = $(e).attr("src"); if ($src != undefined) { //MyLog.log('info',"[SP] Loaded! Leaving: " + $src); if (!$src.includes("page")) { if (!alreadyloaded.includes($src)) { alreadyloaded.push($src); } } } }); nscripts.forEach(element => { if (!alreadyloaded.includes(element)) { scripts.push(element); } }); } function hideplaceholder() { ajaxrequests = 0; $("#loadingplaceholder").hide(); $("#loadingplaceholder #infoloading").remove(); $("#loadingplaceholder .dots").html(""); } function loadScripts(nscripts) { //MAINLOADING FIX //alreadyloaded = []; //END MAINLOADING FIX MyLog.log('info', "[SPR] Loading new scripts"); //MyLog.log('info', nscripts); const are_scripts_checked = new Promise((resolve, reject) => { //console.log("[LOADING] checking scripts, to check: " + $(document).find("script").length); var x = $(document).find("script").length; $(document).find("script").each(function (i, e) { x = x - 1; var $src = $(e).attr("src"); if ($src != undefined) { if ($src.includes("page")) { //remove $(e).remove(); //MyLog.log('info',"[SP] Loaded! Removing: " + $src); } else { //MyLog.log('info',"[SP] Loaded! Leaving: " + $src); if (!alreadyloaded.includes($src)) { alreadyloaded.push($src); } } } //console.log("[LOADING] checking scripts, left: " + x); if (x == 0) { resolve(true); } }); }); are_scripts_checked.then((value) => { //console.log("[LOADING] checking scripts, all checked"); //console.log("[LOADING] checking scripts, allready loaded " + alreadyloaded.length); for (i = 0; i < nscripts.length; i++) //nscripts.forEach(element => { var element = nscripts[i]; //console.log("LOADING ATTEPNT " +i); //console.log(alreadyloaded); //console.log("LOADING " + element); //console.log("LOADING " + alreadyloaded.includes(element)); //console.log("------------"); if (element.includes("page.js")) { scripts.push(element); } else { if (!alreadyloaded.includes(element)) { //console.log("LOADING NOT LOADED " + element ); MyLog.log('info', "[SP] NOT Loaded: " + element); scripts.push(element); //MAINLOADING FIX //alreadyloaded.push(element); if (!element.includes("page")) { if (!alreadyloaded.includes(element)) { alreadyloaded.push(element); } } //END MAINLOADING FIX } else { //console.log("[LOADING] Already Loaded " + element ); } } } ;//); //scripts = scripts.reverse(); // loop through our script urls while (src = scripts.shift()) { if ('async' in firstScript) { // modern browsers script = document.createElement('script'); script.async = false; script.src = src;// + "×tamp="+Date.now(); document.head.appendChild(script); MyLog.log('info', "[SPR] Appending: " + script.src); //pagescript = function(){MyLog.log('info',"[SP] Ascync PSCRIPT");} } else if (firstScript.readyState) { // IE<10 // create a script and add it to our todo pile script = document.createElement('script'); pendingScripts.push(script); // listen for state changes script.onreadystatechange = stateChange; // must set src AFTER adding onreadystatechange listener // else we’ll miss the loaded event for cached scripts script.src = src;// + "×tamp="+Date.now(); MyLog.log('info', "[SPR] Appending: " + script.src); //pagescript = function(){MyLog.log('info',"[SP] IE<10 PSCRIPT");} } else { // fall back to defer document.write('