2015-02-04 06:58:23 +00:00
package Web
import (
"github.com/SommerEngineering/Ocean/Log"
2015-02-26 15:37:36 +00:00
"github.com/SommerEngineering/Ocean/Log/DeviceDatabase"
2015-02-04 06:58:23 +00:00
LM "github.com/SommerEngineering/Ocean/Log/Meta"
"github.com/SommerEngineering/Ocean/Log/Web/Scheme"
"github.com/SommerEngineering/Ocean/MimeTypes"
"github.com/SommerEngineering/Ocean/Shutdown"
"net/http"
)
func HandlerWebLog ( response http . ResponseWriter , request * http . Request ) {
if Shutdown . IsDown ( ) {
http . NotFound ( response , request )
return
}
2015-02-05 20:30:32 +00:00
request . ParseForm ( )
countParameters := len ( request . Form )
2015-02-04 06:58:23 +00:00
data := Scheme . Viewer { }
data . Title = ` Web Log Viewer `
2015-02-26 15:37:36 +00:00
data . Sender = DeviceDatabase . ReadSenderNames ( )
data . MessageNames = DeviceDatabase . ReadMessageNames ( )
2015-02-04 06:58:23 +00:00
2015-02-05 20:30:32 +00:00
if countParameters < 9 {
// Initial view => refresh & first page (latest logs)
data . Events = readLatest ( )
2015-02-26 16:30:33 +00:00
data . SetLiveView = true
2015-02-26 15:37:36 +00:00
2015-02-05 20:30:32 +00:00
} else {
// Custom view
data . Events = readCustom ( request . FormValue ( ` timeRange ` ) , request . FormValue ( ` Level ` ) , request . FormValue ( ` Category ` ) , request . FormValue ( ` Impact ` ) , request . FormValue ( ` Severity ` ) , request . FormValue ( ` MSGName ` ) , request . FormValue ( ` Sender ` ) , request . FormValue ( ` CurrentPage ` ) )
}
2015-02-04 06:58:23 +00:00
MimeTypes . Write2HTTP ( response , MimeTypes . TypeWebHTML )
if executeError := templates . ExecuteTemplate ( response , ` WebLog ` , data ) ; executeError != nil {
Log . LogFull ( senderName , LM . CategorySYSTEM , LM . LevelERROR , LM . SeverityCritical , LM . ImpactCritical , LM . MessageNameEXECUTE , ` Was not able to execute the web log viewer template. ` , executeError . Error ( ) )
}
}