From aed90e99d3e5085f33040c705c85bdeffcce18cf Mon Sep 17 00:00:00 2001 From: sbosse Date: Mon, 21 Jul 2025 23:22:01 +0200 Subject: [PATCH] Mon 21 Jul 22:43:21 CEST 2025 --- js/ui/cordova/www/js/jamutils.js | 53 ++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 js/ui/cordova/www/js/jamutils.js diff --git a/js/ui/cordova/www/js/jamutils.js b/js/ui/cordova/www/js/jamutils.js new file mode 100644 index 0000000..36eb07a --- /dev/null +++ b/js/ui/cordova/www/js/jamutils.js @@ -0,0 +1,53 @@ +function loadjs(url,cb) { + var script = document.createElement('script'); + if (typeof script != "undefined") { + script.setAttribute("type", "text/javascript"); + script.setAttribute("src", url); + if (cb) script.onload=cb; + document.getElementsByTagName("head")[0].appendChild(script); + } +} + +function readfile(dir,ext,cb) { + var input = document.createElement("input"); + input.setAttribute("type", "file"); + input.addEventListener('change',function () { + var fileReader = new FileReader(); + fileReader.onload = function (e) { + var text = fileReader.result; + if (cb) cb(fileReader.result); + } + input.files[0]=dir; + fileReader.readAsText(input.files[0]); + }); + $(input).trigger("click"); // opening dialog +} + +function basename(path) { + return path.replace(/.*\//, ''); +} + +function classname(name) { + return name.substring(0, name.lastIndexOf('.')) +} + +function dirname(path) { + return path.substring(0, path.lastIndexOf('/')) +} + +/** Sequential Block Scheduling + * + */ +var scheduleList = []; +// Add functions to top of schedule list +function Schedule(funcs) { + funcs=funcs.reverse(); + for(var i in funcs) scheduleList.unshift(funcs[i]) +} +// Run functions +function Run(next) { + if (scheduleList.length) { + var f = scheduleList.shift(); + f(Run); + } else if (next) next(); +}