-
→, j, SPACE: Next Page
-
←, k, BACKSPACE: Previous Page
g: First Page
+
←, k, BACKSPACE: Previous Page
+
→, j, SPACE: Next Page
G: Last Page
+: More entries
-: Fewer entries
@@ -131,33 +153,17 @@
var first_cursor = null;
var last_cursor = null;
- function setCookie(name, value, msec) {
- var d = new Date();
- d.setMilliseconds(d.getMilliseconds() + msec);
- var v = escape(value) + "; expires=" + d.toUTCString();
- document.cookie = name + "=" + value;
- }
-
- function getCookie(name) {
- var i, l;
- l = document.cookie.split(";");
- for (i in l) {
- var x, y, j;
- j = l[i].indexOf("=");
- x = l[i].substr(0, j);
- y = l[i].substr(j+1);
- if (x == name)
- return unescape(y);
- }
- return null;
- }
-
function getNEntries() {
var n;
- n = getCookie("n_entries");
+ n = localStorage["n_entries"];
if (n == null)
return 50;
- return parseInt(n);
+ n = parseInt(n);
+ if (n < 10)
+ return 10;
+ if (n > 1000)
+ return 1000;
+ return n;
}
function showNEntries(n) {
@@ -167,11 +173,10 @@
function setNEntries(n) {
if (n < 10)
- n = 10;
- else if (n > 1000)
- n = 1000;
-
- setCookie("n_entries", n.toString(), 30*24*60*60*1000);
+ return 10;
+ if (n > 1000)
+ return 1000;
+ localStorage["n_entries"] = n.toString();
showNEntries(n);
}
@@ -230,8 +235,26 @@
}
function entriesLoad(range) {
+
+ if (range == null)
+ range = localStorage["cursor"] + ":0";
+ if (range == null)
+ range = "";
+
+ var url = "/entries";
+
+ if (localStorage["filter"] != "" && localStorage["filter"] != null) {
+ url += "?_SYSTEMD_UNIT=" + escape(localStorage["filter"]);
+
+ if (localStorage["boot"] == "1")
+ url += "&boot";
+ } else {
+ if (localStorage["boot"] == "1")
+ url += "?boot";
+ }
+
var request = new XMLHttpRequest();
- request.open("GET", "/entries");
+ request.open("GET", url);
request.onreadystatechange = entriesOnResult;
request.setRequestHeader("Accept", "application/json");
request.setRequestHeader("Range", "entries=" + range + ":" + getNEntries().toString());
@@ -271,8 +294,7 @@
var lc = null;
var fc = null;
- var i;
- var l = event.currentTarget.responseText.split('\n');
+ var i, l = event.currentTarget.responseText.split('\n');
if (l.length <= 1) {
logs.innerHTML = '
No further entries... |
';
@@ -326,7 +348,7 @@
else if (d.SYSLOG_PID != undefined)
buf += "[" + escapeHTML(d.SYSLOG_PID) + "]";
- buf += '
';
+ buf += ' | ';
if (d.MESSAGE == null)
buf += "[blob data]";
@@ -340,8 +362,10 @@
logs.innerHTML = '' + buf + '';
- if (fc != null)
+ if (fc != null) {
first_cursor = fc;
+ localStorage["cursor"] = fc;
+ }
if (lc != null)
last_cursor = lc;
}
@@ -426,14 +450,95 @@
entriesLoadNext();
}
+ function onResultFilterFocus(event) {
+ if ((event.currentTarget.readyState != 4) ||
+ (event.currentTarget.status != 200 && event.currentTarget.status != 0))
+ return;
+
+ f = document.getElementById("filter");
+
+ var l = event.currentTarget.responseText.split('\n');
+ var buf = '';
+ var j = -1;
+
+ for (i in l) {
+
+ if (l[i] == '')
+ continue;
+
+ var d = JSON.parse(l[i]);
+ if (d._SYSTEMD_UNIT == undefined)
+ continue;
+
+ buf += '';
+
+ if (d._SYSTEMD_UNIT == localStorage["filter"])
+ j = i;
+ }
+
+ if (j < 0) {
+ if (localStorage["filter"] != null && localStorage["filter"] != "") {
+ buf += '';
+ j = i + 1;
+ } else
+ j = 0;
+ }
+
+ f.innerHTML = buf;
+ f.selectedIndex = j;
+ }
+
+ function onFilterFocus(w) {
+ var request = new XMLHttpRequest();
+ request.open("GET", "/fields/_SYSTEMD_UNIT");
+ request.onreadystatechange = onResultFilterFocus;
+ request.setRequestHeader("Accept", "application/json");
+ request.send(null);
+ }
+
+ function onFilterChange(w) {
+ if (w.selectedIndex <= 0)
+ localStorage["filter"] = "";
+ else
+ localStorage["filter"] = unescape(w.options[w.selectedIndex].value);
+
+ entriesLoadHead();
+ }
+
+ function onBootChange(w) {
+ localStorage["boot"] = w.checked ? "1" : "0";
+ entriesLoadHead();
+ }
+
+ function initFilter() {
+ f = document.getElementById("filter");
+
+ var buf = '';
+
+ var filter = localStorage["filter"];
+ if (filter != null && filter != "") {
+ buf += '';
+ j = 1;
+ } else
+ j = 0;
+
+ f.innerHTML = buf;
+ f.selectedIndex = j;
+ }
+
+ function installHandlers() {
+ document.onkeyup = onKeyUp;
+
+ logs = document.getElementById("divlogs");
+ logs.addEventListener("mousewheel", onMouseWheel, false);
+ logs.addEventListener("DOMMouseScroll", onMouseWheel, false);
+ }
+
machineLoad();
- entriesLoad("");
+ entriesLoad(null);
showNEntries(getNEntries());
- document.onkeyup = onKeyUp;
-
- logs = document.getElementById("tablelogs");
- logs.addEventListener("mousewheel", onMouseWheel, false);
- logs.addEventListener("DOMMouseScroll", onMouseWheel, false);
+ initFilter();
+ installHandlers();
|