From e0634c5768958ddfad7bee2e3aa0a4f1fc1a02dc Mon Sep 17 00:00:00 2001 From: Petr Balogh Date: Tue, 26 Sep 2023 17:08:59 +0200 Subject: [PATCH] Add option to provide log location via ?url Fix links for order to be included in URL and updated via changeOrder function. --- README.md | 5 +++-- logtail.html | 4 ++-- logtail.js | 35 +++++++++++++++++++++++++++++------ 3 files changed, 34 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 0f49ed7..dd88e47 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,9 @@ No server side code is required - it's all just static files - and all modern web servers support Range (tested lighttpd, cherokee, apache). Tested (briefly) in IE, FF, Chrome. -Usage: symlink the log to /log, or alter the url in logtail.js. Other settings -available in logtail.js including poll frequency. Then browse to index.html +Usage: symlink the log to /log, provide ?url=http://my.custom.path/log, or alter +the url in logtail.js. Other settings available in logtail.js including poll +frequency. Then browse to index.html License is GNU GPL 3; see http://www.gnu.org/licenses/ diff --git a/logtail.html b/logtail.html index 7e5013f..3e6eb3a 100644 --- a/logtail.html +++ b/logtail.html @@ -10,8 +10,8 @@
Loading...
diff --git a/logtail.js b/logtail.js index 6506b9b..4de429b 100644 --- a/logtail.js +++ b/logtail.js @@ -5,9 +5,16 @@ var dataelem = "#data"; var pausetoggle = "#pause"; +var reversedLink = "#reversedOrder"; +var chronologicalLink = "#chronologicalOrder"; var scrollelems = ["html", "body"]; -var url = "log"; +var urlString = window.location.href; +var urlObject = new URL(urlString); +var urlParam = urlObject.searchParams.get("url"); +var orderParam = urlObject.searchParams.get("order"); +var order = orderParam ?? "reversed" +var url = urlParam ?? "log" var fix_rn = true; var load = 30 * 1024; /* 30KB */ var poll = 1000; /* 1s */ @@ -146,7 +153,7 @@ function show_log() { if (reverse) { var t_a = t.split(/\n/g); t_a.reverse(); - if (t_a[0] == "") + if (t_a[0] == "") t_a.shift(); t = t_a.join("\n"); } @@ -163,21 +170,37 @@ function error(what) { kill = true; $(dataelem).text("An error occured :-(.\r\n" + - "Reloading may help; no promises.\r\n" + + "Reloading may help; no promises.\r\n" + what); scroll(0); return false; } +function changeOrder(how) { + var searchParams = new URLSearchParams(window.location.search) + searchParams.set("order", how) + window.location.search = searchParams.toString() + const originalURL = new URL("http://my.app/index.html?order=reverse"); + const updatedURL = addParameterToURL(originalURL, "newParam", "someValue"); +} + $(document).ready(function () { window.onerror = error; - /* If URL is /logtail/?noreverse display in chronological order */ - var hash = location.search.replace(/^\?/, ""); - if (hash == "noreverse") + /* If URL is /logtail/?order=chronological we display in chronological order */ + if (order == "chronological") { reverse = false; + } else { + reverse = true; + } + $(reversedLink).click(function (e) { + changeOrder("reversed"); + }); + $(chronologicalLink).click(function (e) { + changeOrder("chronological"); + }); /* Add pause toggle */ $(pausetoggle).click(function (e) { pause = !pause;