1
0
mirror of https://github.com/taigrr/log-socket synced 2025-01-18 04:53:14 -08:00

Adds autoscroll feature to browser

This commit is contained in:
Tai Groot 2021-04-09 10:39:23 -07:00
parent b744f083dc
commit 2c7cf0494e
Signed by: taigrr
GPG Key ID: D00C269A87614812
2 changed files with 16 additions and 3 deletions

View File

@ -3,10 +3,13 @@ package browser
import ( import (
"html/template" "html/template"
"net/http" "net/http"
"strings"
) )
func LogSocketViewHandler(w http.ResponseWriter, r *http.Request) { func LogSocketViewHandler(w http.ResponseWriter, r *http.Request) {
homeTemplate.Execute(w, "ws://"+r.Host+r.URL.Path+"/ws") wsResource := "ws://" + r.Host + r.URL.Path
wsResource = strings.TrimSuffix(wsResource, "/") + "/ws"
homeTemplate.Execute(w, wsResource)
} }
var homeTemplate = template.Must(template.New("").Parse(` var homeTemplate = template.Must(template.New("").Parse(`
@ -18,6 +21,7 @@ var homeTemplate = template.Must(template.New("").Parse(`
<body> <body>
<center> <center>
<input type="text" id="search" onkeyup="filterTable()" placeholder="Filter..."> <input type="text" id="search" onkeyup="filterTable()" placeholder="Filter...">
<input type="checkbox" id="shouldScroll" checked>Enable Autoscroll<br>
<table id="logHeaders" style="text-align:left; width:80%;" > <table id="logHeaders" style="text-align:left; width:80%;" >
<tbody> <tbody>
<tr class="header"> <tr class="header">
@ -183,6 +187,14 @@ function filterTable() {
} }
} }
function pageScroll() {
if (document.getElementById('shouldScroll').checked) {
document.getElementById('tableWrapper').scrollBy(0,10);
}
setTimeout(pageScroll,10);
}
document.getElementById("delete").addEventListener("click", function(){ document.getElementById("delete").addEventListener("click", function(){
clearTable() clearTable()
@ -192,6 +204,7 @@ document.getElementById("download").addEventListener("click", function(){
download(application+'.json',JSON.stringify(logs)); download(application+'.json',JSON.stringify(logs));
}, false); }, false);
openSocket(); openSocket();
pageScroll();
</script> </script>
</footer> </footer>

View File

@ -19,14 +19,14 @@ func generateLogs() {
logger.Debug("This is a debug log!") logger.Debug("This is a debug log!")
logger.Warn("This is a warn log!") logger.Warn("This is a warn log!")
logger.Error("This is an error log!") logger.Error("This is an error log!")
time.Sleep(10 * time.Second) time.Sleep(2 * time.Second)
} }
} }
func main() { func main() {
defer logger.Flush() defer logger.Flush()
flag.Parse() flag.Parse()
http.HandleFunc("/logs", ws.LogSocketHandler) http.HandleFunc("/ws", ws.LogSocketHandler)
http.HandleFunc("/", browser.LogSocketViewHandler) http.HandleFunc("/", browser.LogSocketViewHandler)
go generateLogs() go generateLogs()
logger.Fatal(http.ListenAndServe(*addr, nil)) logger.Fatal(http.ListenAndServe(*addr, nil))