Implemented the logging viewer
This commit is contained in:
parent
71aa99a5e3
commit
37c901636c
@ -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
|
||||||
|
@ -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>
|
||||||
|
@ -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`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user