From 37c901636c2df484b003ab00620cd9b4c987f057 Mon Sep 17 00:00:00 2001 From: Thorsten Sommer Date: Mon, 22 Jun 2015 20:54:38 +0200 Subject: [PATCH] Implemented the logging viewer --- Admin/Scheme/LoggingViewer.go | 3 +++ Admin/Templates/LoggingViewer.go | 26 ++++++++++++++----- Log/Web/HandlerLog.go | 44 +++++++++++++++++++++++++++++++- 3 files changed, 66 insertions(+), 7 deletions(-) diff --git a/Admin/Scheme/LoggingViewer.go b/Admin/Scheme/LoggingViewer.go index 576ca32..ac25dd5 100644 --- a/Admin/Scheme/LoggingViewer.go +++ b/Admin/Scheme/LoggingViewer.go @@ -16,6 +16,9 @@ type LoggingViewer struct { CurrentMessageName string CurrentSender string CurrentPage string + NextPage string + PreviousPage string + LastPage string MessageNames []MessageNames Sender []Sender Events []LogEvent diff --git a/Admin/Templates/LoggingViewer.go b/Admin/Templates/LoggingViewer.go index a0cbda5..5f992d6 100644 --- a/Admin/Templates/LoggingViewer.go +++ b/Admin/Templates/LoggingViewer.go @@ -46,7 +46,9 @@ var LoggingViewer string = `

Filtering

-
+ + +
@@ -144,13 +146,23 @@ var LoggingViewer string = ` {{end}}
-
First-1 +
+ First + -1
- + + + + + + + + + - -
of 1000 pages
+ +
of {{.LastPage}} pages
@@ -161,7 +173,9 @@ var LoggingViewer string = `

Oops! Something went wrong while submitting the form :(

-
+1Last +
+ +1 + Last
diff --git a/Log/Web/HandlerLog.go b/Log/Web/HandlerLog.go index 086927d..65981d9 100644 --- a/Log/Web/HandlerLog.go +++ b/Log/Web/HandlerLog.go @@ -1,6 +1,7 @@ package Web import ( + "fmt" "github.com/SommerEngineering/Ocean/Admin" "github.com/SommerEngineering/Ocean/Admin/Scheme" "github.com/SommerEngineering/Ocean/Log" @@ -9,6 +10,7 @@ import ( "github.com/SommerEngineering/Ocean/MimeTypes" "github.com/SommerEngineering/Ocean/Shutdown" "net/http" + "strconv" "strings" ) @@ -25,6 +27,12 @@ func HandlerWebLog(response http.ResponseWriter, request *http.Request) { request.ParseForm() countParameters := len(request.Form) + // The current page as number: + currentPageNumber := 1 + + // The max. page as number: + lastPageNumber := 1 + // Setup the data for the HTML template: data := Scheme.LoggingViewer{} data.Title = `Logging Viewer` @@ -36,6 +44,15 @@ func HandlerWebLog(response http.ResponseWriter, request *http.Request) { // Initial view => first page (latest logs) data.Events = readLatest() data.SetLiveView = true + data.CurrentPage = `1` + data.LastPage = fmt.Sprintf("%d", lastPageNumber) + if currentPageNumber+1 > lastPageNumber { + data.NextPage = fmt.Sprintf("%d", lastPageNumber) + } else { + data.NextPage = `2` + } + + data.PreviousPage = `1` } else { // Case: Custom view currentLevel := request.FormValue(`Level`) @@ -98,9 +115,34 @@ func HandlerWebLog(response http.ResponseWriter, request *http.Request) { } if currentPage != `` { + if number, err := strconv.Atoi(currentPage); err != nil { + Log.LogFull(senderName, LM.CategorySYSTEM, LM.LevelERROR, LM.SeverityNone, LM.ImpactNone, LM.MessageNameEXECUTE, `Was not able to parse the page number.`, err.Error()) + } else { + currentPageNumber = number + data.CurrentPage = fmt.Sprintf("%d", currentPageNumber) + data.LastPage = fmt.Sprintf("%d", lastPageNumber) + if currentPageNumber+1 > lastPageNumber { + data.NextPage = fmt.Sprintf("%d", lastPageNumber) + } else { + data.NextPage = fmt.Sprintf("%d", currentPageNumber+1) + } + + if currentPageNumber > 1 { + data.PreviousPage = fmt.Sprintf("%d", currentPageNumber-1) + } else { + data.PreviousPage = `1` + } + } data.CurrentPage = currentPage } else { - data.CurrentPage = `*` + data.CurrentPage = `1` + data.LastPage = fmt.Sprintf("%d", lastPageNumber) + if currentPageNumber+1 > lastPageNumber { + data.NextPage = fmt.Sprintf("%d", lastPageNumber) + } else { + data.NextPage = `2` + } + data.PreviousPage = `1` } }