Implemented the logging viewer

This commit is contained in:
Thorsten Sommer 2015-06-22 20:54:38 +02:00
parent 71aa99a5e3
commit 37c901636c
3 changed files with 66 additions and 7 deletions

View File

@ -16,6 +16,9 @@ type LoggingViewer struct {
CurrentMessageName string CurrentMessageName string
CurrentSender string CurrentSender string
CurrentPage string CurrentPage string
NextPage string
PreviousPage string
LastPage string
MessageNames []MessageNames MessageNames []MessageNames
Sender []Sender Sender []Sender
Events []LogEvent Events []LogEvent

View File

@ -46,7 +46,9 @@ var LoggingViewer string = `
<h2 class="headercontrol">Filtering</h2> <h2 class="headercontrol">Filtering</h2>
<div class="filters"> <div class="filters">
<div class="w-form"> <div class="w-form">
<form class="filterformcontainer" id="wf-form-Filters" name="wf-form-Filters" data-name="Filters"> <form class="filterformcontainer" id="wf-form-Filters" name="wf-form-Filters" data-name="Filters" method="post" action="/log">
<input type="hidden" name="LiveView" value="{{.SetLiveView}}">
<input type="hidden" name="CurrentPage" value="{{.CurrentPage}}">
<div class="w-row"> <div class="w-row">
<div class="w-col w-col-6"> <div class="w-col w-col-6">
<div class="columns"> <div class="columns">
@ -144,13 +146,23 @@ var LoggingViewer string = `
{{end}} {{end}}
</ul> </ul>
</div> </div>
<div class="w-container pagecontainer"><a class="button changepagebutton" href="#">First</a><a class="button changepagebutton" href="#">-1</a> <div class="w-container pagecontainer">
<a class="button changepagebutton" href="/log?Level={{.CurrentLevel}}&TimeRange={{.CurrentTimeRange}}&Category={{.CurrentCategory}}&Impact={{.CurrentImpact}}&Severity={{.CurrentSeverity}}&MSGName={{.CurrentMessageName}}&Sender={{.CurrentSender}}&CurrentPage=1&LiveView={{.SetLiveView}}">First</a>
<a class="button changepagebutton" href="/log?Level={{.CurrentLevel}}&TimeRange={{.CurrentTimeRange}}&Category={{.CurrentCategory}}&Impact={{.CurrentImpact}}&Severity={{.CurrentSeverity}}&MSGName={{.CurrentMessageName}}&Sender={{.CurrentSender}}&CurrentPage={{.PreviousPage}}&LiveView={{.SetLiveView}}">-1</a>
<div class="w-hidden-main w-hidden-medium newlineblock"></div> <div class="w-hidden-main w-hidden-medium newlineblock"></div>
<div class="w-form formpageswrapper"> <div class="w-form formpageswrapper">
<form class="formpages" id="wf-form-Pages" name="wf-form-Pages" data-name="Pages" method="post"> <form class="formpages" id="wf-form-Pages" name="wf-form-Pages" data-name="Pages" method="post" action="/log">
<input type="hidden" name="Level" value="{{.CurrentLevel}}">
<input type="hidden" name="TimeRange" value="{{.CurrentTimeRange}}">
<input type="hidden" name="Category" value="{{.CurrentCategory}}">
<input type="hidden" name="Impact" value="{{.CurrentImpact}}">
<input type="hidden" name="Severity" value="{{.CurrentSeverity}}">
<input type="hidden" name="MSGName" value="{{.CurrentMessageName}}">
<input type="hidden" name="Sender" value="{{.CurrentSender}}">
<input type="hidden" name="LiveView" value="{{.SetLiveView}}">
<label class="formfield" for="CurrentPage">Page</label> <label class="formfield" for="CurrentPage">Page</label>
<input class="w-input currentpage" id="CurrentPage" type="text" placeholder="1" name="CurrentPage" required="required" data-name="CurrentPage"> <input class="w-input currentpage" id="CurrentPage" type="text" placeholder="{{.CurrentPage}}" name="CurrentPage" required="required" data-name="CurrentPage">
<div class="textcountpages">of 1000 pages</div> <div class="textcountpages">of {{.LastPage}} pages</div>
<div class="w-hidden-main w-hidden-medium w-hidden-small newlineblock"></div> <div class="w-hidden-main w-hidden-medium w-hidden-small newlineblock"></div>
<input class="w-button button changepagebutton pagechangesubmit" type="submit" value="Change page" data-wait="Please wait..."> <input class="w-button button changepagebutton pagechangesubmit" type="submit" value="Change page" data-wait="Please wait...">
</form> </form>
@ -161,7 +173,9 @@ var LoggingViewer string = `
<p>Oops! Something went wrong while submitting the form :(</p> <p>Oops! Something went wrong while submitting the form :(</p>
</div> </div>
</div> </div>
<div class="w-hidden-main w-hidden-medium newlineblock"></div><a class="button changepagebutton" href="#">+1</a><a class="button changepagebutton" href="#">Last</a> <div class="w-hidden-main w-hidden-medium newlineblock"></div>
<a class="button changepagebutton" href="/log?Level={{.CurrentLevel}}&TimeRange={{.CurrentTimeRange}}&Category={{.CurrentCategory}}&Impact={{.CurrentImpact}}&Severity={{.CurrentSeverity}}&MSGName={{.CurrentMessageName}}&Sender={{.CurrentSender}}&CurrentPage={{.NextPage}}&LiveView={{.SetLiveView}}">+1</a>
<a class="button changepagebutton" href="/log?Level={{.CurrentLevel}}&TimeRange={{.CurrentTimeRange}}&Category={{.CurrentCategory}}&Impact={{.CurrentImpact}}&Severity={{.CurrentSeverity}}&MSGName={{.CurrentMessageName}}&Sender={{.CurrentSender}}&CurrentPage={{.LastPage}}&LiveView={{.SetLiveView}}">Last</a>
</div> </div>
<script type="text/javascript" src="/admin/js/jquery.min.js"></script> <script type="text/javascript" src="/admin/js/jquery.min.js"></script>
<script type="text/javascript" src="/admin/js/webflow.js"></script> <script type="text/javascript" src="/admin/js/webflow.js"></script>

View File

@ -1,6 +1,7 @@
package Web package Web
import ( import (
"fmt"
"github.com/SommerEngineering/Ocean/Admin" "github.com/SommerEngineering/Ocean/Admin"
"github.com/SommerEngineering/Ocean/Admin/Scheme" "github.com/SommerEngineering/Ocean/Admin/Scheme"
"github.com/SommerEngineering/Ocean/Log" "github.com/SommerEngineering/Ocean/Log"
@ -9,6 +10,7 @@ import (
"github.com/SommerEngineering/Ocean/MimeTypes" "github.com/SommerEngineering/Ocean/MimeTypes"
"github.com/SommerEngineering/Ocean/Shutdown" "github.com/SommerEngineering/Ocean/Shutdown"
"net/http" "net/http"
"strconv"
"strings" "strings"
) )
@ -25,6 +27,12 @@ func HandlerWebLog(response http.ResponseWriter, request *http.Request) {
request.ParseForm() request.ParseForm()
countParameters := len(request.Form) 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: // Setup the data for the HTML template:
data := Scheme.LoggingViewer{} data := Scheme.LoggingViewer{}
data.Title = `Logging Viewer` data.Title = `Logging Viewer`
@ -36,6 +44,15 @@ func HandlerWebLog(response http.ResponseWriter, request *http.Request) {
// Initial view => first page (latest logs) // Initial view => first page (latest logs)
data.Events = readLatest() data.Events = readLatest()
data.SetLiveView = true 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 { } else {
// Case: Custom view // Case: Custom view
currentLevel := request.FormValue(`Level`) currentLevel := request.FormValue(`Level`)
@ -98,9 +115,34 @@ func HandlerWebLog(response http.ResponseWriter, request *http.Request) {
} }
if currentPage != `` { 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 data.CurrentPage = currentPage
} else { } 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`
} }
} }