Logging Web Interface

**Work in progress**
This commit is contained in:
Thorsten Sommer 2015-02-03 21:40:29 +01:00
parent d5943b17b9
commit 0c24bd749a
11 changed files with 6229 additions and 45 deletions

308
Log/Web/Assets/CSSLog.go Normal file
View File

@ -0,0 +1,308 @@
package Assets
var CSSLog string = `
body {
font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
color: #333;
font-size: 14px;
line-height: 20px;
}
h1 {
margin-top: 20px;
margin-bottom: 10px;
font-size: 38px;
line-height: 44px;
font-weight: 700;
}
h2 {
margin-top: 20px;
margin-bottom: 10px;
font-size: 32px;
line-height: 36px;
font-weight: 700;
}
h3 {
margin-top: 20px;
margin-bottom: 10px;
font-size: 24px;
line-height: 30px;
font-weight: 700;
}
h4 {
margin-top: 10px;
margin-bottom: 10px;
font-size: 18px;
line-height: 24px;
font-weight: 700;
}
h5 {
margin-top: 10px;
margin-bottom: 10px;
font-size: 14px;
line-height: 20px;
font-weight: 700;
}
h6 {
margin-top: 10px;
margin-bottom: 10px;
font-size: 12px;
line-height: 18px;
font-weight: 700;
}
p {
margin-bottom: 5px;
}
.button {
display: inline-block;
padding: 4px 15px;
background-color: black;
color: white;
text-align: center;
text-decoration: none;
}
.button.changepagebutton {
margin-right: 3px;
margin-left: 3px;
background-color: #545454;
}
.button.changepagebutton.pagechangesubmit {
margin-right: 30px;
}
.button.optionbuttons {
margin: 6px;
background-color: #545454;
}
.button.optionbuttons.applyfilters {
margin-left: 0px;
}
.headercontainer {
height: 50px;
margin-top: -19px;
background-color: black;
color: white;
text-align: center;
}
.logcontainer {
margin-top: 0px;
}
.loglist {
margin-right: 3px;
margin-bottom: 3px;
margin-left: 3px;
padding-top: 0px;
padding-left: 0px;
list-style-type: none;
}
.logline {
margin: 3px 6px;
padding: 6px;
border: 1px solid #9e9e9e;
border-radius: 3px;
font-family:'Source Code Pro', sans-serif;
font-size: 10px;
font-weight: 900;
}
.logline.loga {
background-color: #ededed;
}
.logline.logb {
background-color: #cfcfcf;
}
.logline.logwarn {
color: #db7602;
}
.logline.logdebug {
color: #04f;
}
.logline.logerror {
color: #c00;
}
.logline.loginfo {
color: black;
}
.logline.logtalkative {
color: #a3a2a2;
}
.logline.logsecurity {
color: #db4500;
}
.logheadercontainer {
margin-top: 10px;
text-align: center;
}
.showposition {
margin-top: 10px;
font-size: 20px;
}
.controlcontainer {
margin-top: 10px;
}
.pagecontainer {
margin-top: 10px;
text-align: center;
list-style-type: none;
}
.icons {
position: absolute;
display: block;
width: 25px;
height: 25px;
margin-top: 15px;
margin-left: 254px;
padding-top: 0px;
font-family: Glyphicons, sans-serif;
color: black;
font-size: 25px;
font-weight: 400;
text-decoration: none;
}
.icons.oneback {
margin-top: 17px;
margin-left: 219px;
}
.icons.tofirst {
margin-top: 17px;
margin-left: 255px;
}
.icons.next {
margin-top: -38px;
margin-left: 668px;
}
.icons.tolast {
margin-top: -38px;
margin-left: 702px;
}
.formfield {
display: inline;
margin-right: 6px;
margin-left: 30px;
color: black;
font-weight: 400;
}
.formpages {
display: inline;
}
.currentpage {
display: inline-block;
width: 100px;
margin-top: 7px;
margin-right: 6px;
padding-top: 3px;
padding-bottom: 3px;
float: none;
clear: none;
color: black;
text-align: center;
}
.formpageswrapper {
display: inline;
}
.textcountpages {
display: inline;
margin-right: 6px;
color: black;
}
.logchangepagebutton {
height: 40px;
margin-left: 10px;
padding-top: 3px;
padding-bottom: 3px;
background-color: #a8a8a8;
color: black;
font-weight: 700;
}
.headercontrol {
text-align: center;
}
.headeroutput {
text-align: center;
}
.options {
background-color: #ededed;
}
.filters {
background-color: #ededed;
}
.labels {
display: block;
}
@media (max-width: 991px) {
.icons.oneback {
margin-left: 113px;
}
.icons.tofirst {
margin-left: 152px;
}
.icons.next {
margin-left: 563px;
}
.icons.tolast {
margin-left: 602px;
}
}
@media (max-width: 767px) {
.button.changepagebutton.pagechangesubmit {
margin-right: 0px;
}
.icons.oneback {
margin-left: 40px;
}
.icons.tofirst {
margin-left: 73px;
}
.icons.next {
margin-left: 483px;
}
.icons.tolast {
margin-left: 518px;
}
.formfield {
margin-left: 0px;
}
.newlineblock {
height: 10px;
}
}
@media (max-width: 479px) {
.button.changepagebutton.pagechangesubmit {
margin-right: 3px;
margin-bottom: 20px;
text-align: center;
}
.pagecontainer {
margin-top: 20px;
}
.icons.oneback {
margin-top: 113px;
margin-left: 25px;
}
.icons.tofirst {
margin-top: 113px;
margin-left: 62px;
}
.icons.next {
margin-top: 18px;
margin-left: 242px;
}
.icons.tolast {
margin-top: 18px;
margin-left: 278px;
}
.formfield {
margin-left: 0px;
}
.currentpage {
margin-top: 20px;
}
.newlineblock {
display: block;
height: 10px;
}
}
@font-face {
font-family: 'Glyphicons';
src: url('/binaryAssets/SourceCodePro-Black.eot') format('embedded-opentype'), url('/binaryAssets/SourceCodePro-Black.ttf') format('truetype'), url('/binaryAssets/SourceCodePro-Black.otf') format('opentype');
font-weight: 400;
font-style: normal;
}`

View File

@ -0,0 +1,343 @@
package Assets
var CSSNormalize string = `
/*! normalize.css v2.1.3 | MIT License | git.io/normalize */
/* ==========================================================================
HTML5 display definitions
========================================================================== */
/**
* Correct "block" display not defined in IE 8/9.
*/
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
display: block;
}
/**
* Correct "inline-block" display not defined in IE 8/9.
*/
audio,
canvas,
video {
display: inline-block;
}
/**
* Prevent modern browsers from displaying "audio" without controls.
* Remove excess height in iOS 5 devices.
*/
audio:not([controls]) {
display: none;
height: 0;
}
/**
* Address "[hidden]" styling not present in IE 8/9.
* Hide the "template" element in IE, Safari, and Firefox < 22.
*/
[hidden],
template {
display: none;
}
/* ==========================================================================
Base
========================================================================== */
/**
* 1. Set default font family to sans-serif.
* 2. Prevent iOS text size adjust after orientation change, without disabling
* user zoom.
*/
html {
font-family: sans-serif;
/* 1 */
-ms-text-size-adjust: 100%;
/* 2 */
-webkit-text-size-adjust: 100%;
/* 2 */
}
/**
* Remove default margin.
*/
body {
margin: 0;
}
/* ==========================================================================
Links
========================================================================== */
/**
* Remove the gray background color from active links in IE 10.
*/
a {
background: transparent;
}
/**
* Address "outline" inconsistency between Chrome and other browsers.
*/
a:focus {
outline: thin dotted;
}
/**
* Improve readability when focused and also mouse hovered in all browsers.
*/
a:active,
a:hover {
outline: 0;
}
/* ==========================================================================
Typography
========================================================================== */
/**
* Address variable "h1" font-size and margin within "section" and "article"
* contexts in Firefox 4+, Safari 5, and Chrome.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/**
* Address styling not present in IE 8/9, Safari 5, and Chrome.
*/
abbr[title] {
border-bottom: 1px dotted;
}
/**
* Address style set to "bolder" in Firefox 4+, Safari 5, and Chrome.
*/
b,
strong {
font-weight: bold;
}
/**
* Address styling not present in Safari 5 and Chrome.
*/
dfn {
font-style: italic;
}
/**
* Address differences between Firefox and other browsers.
*/
hr {
-moz-box-sizing: content-box;
box-sizing: content-box;
height: 0;
}
/**
* Address styling not present in IE 8/9.
*/
mark {
background: #ff0;
color: #000;
}
/**
* Correct font family set oddly in Safari 5 and Chrome.
*/
code,
kbd,
pre,
samp {
font-family: monospace, serif;
font-size: 1em;
}
/**
* Improve readability of pre-formatted text in all browsers.
*/
pre {
white-space: pre-wrap;
}
/**
* Set consistent quote types.
*/
q {
quotes: "\201C" "\201D" "\2018" "\2019";
}
/**
* Address inconsistent and variable font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent "sub" and "sup" affecting "line-height" in all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
/* ==========================================================================
Embedded content
========================================================================== */
/**
* Remove border when inside "a" element in IE 8/9.
*/
img {
border: 0;
}
/**
* Correct overflow displayed oddly in IE 9.
*/
svg:not(:root) {
overflow: hidden;
}
/* ==========================================================================
Figures
========================================================================== */
/**
* Address margin not present in IE 8/9 and Safari 5.
*/
figure {
margin: 0;
}
/* ==========================================================================
Forms
========================================================================== */
/**
* Define consistent border, margin, and padding.
*/
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
/**
* 1. Correct "color" not being inherited in IE 8/9.
* 2. Remove padding so people aren't caught out if they zero out fieldsets.
*/
legend {
border: 0;
/* 1 */
padding: 0;
/* 2 */
}
/**
* 1. Correct font family not being inherited in all browsers.
* 2. Correct font size not being inherited in all browsers.
* 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
*/
button,
input,
select,
textarea {
font-family: inherit;
/* 1 */
font-size: 100%;
/* 2 */
margin: 0;
/* 3 */
}
/**
* Address Firefox 4+ setting "line-height" on "input" using "!important" in
* the UA stylesheet.
*/
button,
input {
line-height: normal;
}
/**
* Address inconsistent "text-transform" inheritance for "button" and "select".
* All other form control elements do not inherit "text-transform" values.
* Correct "button" style inheritance in Chrome, Safari 5+, and IE 8+.
* Correct "select" style inheritance in Firefox 4+ and Opera.
*/
button,
select {
text-transform: none;
}
/**
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native "audio"
* and "video" controls.
* 2. Correct inability to style clickable "input" types in iOS.
* 3. Improve usability and consistency of cursor style between image-type
* "input" and others.
*/
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button;
/* 2 */
cursor: pointer;
/* 3 */
}
/**
* Re-set default cursor for disabled elements.
*/
button[disabled],
html input[disabled] {
cursor: default;
}
/**
* 1. Address box sizing set to "content-box" in IE 8/9/10.
* 2. Remove excess padding in IE 8/9/10.
*/
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box;
/* 1 */
padding: 0;
/* 2 */
}
/**
* 1. Address "appearance" set to "searchfield" in Safari 5 and Chrome.
* 2. Address "box-sizing" set to "border-box" in Safari 5 and Chrome
* (include "-moz" to future-proof).
*/
input[type="search"] {
-webkit-appearance: textfield;
/* 1 */
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
/* 2 */
box-sizing: content-box;
}
/**
* Remove inner padding and search cancel button in Safari 5 and Chrome
* on OS X.
*/
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* Remove inner padding and border in Firefox 4+.
*/
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
/**
* 1. Remove default vertical scrollbar in IE 8/9.
* 2. Improve readability and alignment in all browsers.
*/
textarea {
overflow: auto;
/* 1 */
vertical-align: top;
/* 2 */
}
/* ==========================================================================
Tables
========================================================================== */
/**
* Remove most spacing between table cells.
*/
table {
border-collapse: collapse;
border-spacing: 0;
}`

1667
Log/Web/Assets/CSSWebflow.go Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,11 @@
package Assets
var JSModernizr string = `
/* Modernizr 2.7.1 (Custom Build) | MIT & BSD
* Build: http://modernizr.com/download/#-video-touch-shiv-cssclasses-teststyles-prefixes-cssclassprefix:w!mod!
*/
;window.Modernizr=function(a,b,c){function w(a){j.cssText=a}function x(a,b){return w(m.join(a+";")+(b||""))}function y(a,b){return typeof a===b}function z(a,b){return!!~(""+a).indexOf(b)}function A(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:y(f,"function")?f.bind(d||b):f}return!1}var d="2.7.1",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n={},o={},p={},q=[],r=q.slice,s,t=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["&#173;",'<style id="s',h,'">',a,"</style>"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},u={}.hasOwnProperty,v;!y(u,"undefined")&&!y(u.call,"undefined")?v=function(a,b){return u.call(a,b)}:v=function(a,b){return b in a&&y(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=r.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(r.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(r.call(arguments)))};return e}),n.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:t(["@media (",m.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},n.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c};for(var B in n)v(n,B)&&(s=B.toLowerCase(),e[s]=n[B](),q.push((e[s]?"":"no-")+s));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)v(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" w-mod-"+(b?"":"no-")+a),e[a]=b}return e},w(""),i=k=null,function(a,b){function l(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function m(){var a=s.elements;return typeof a=="string"?a.split(" "):a}function n(a){var b=j[a[h]];return b||(b={},i++,a[h]=i,j[i]=b),b}function o(a,c,d){c||(c=b);if(k)return c.createElement(a);d||(d=n(c));var g;return d.cache[a]?g=d.cache[a].cloneNode():f.test(a)?g=(d.cache[a]=d.createElem(a)).cloneNode():g=d.createElem(a),g.canHaveChildren&&!e.test(a)&&!g.tagUrn?d.frag.appendChild(g):g}function p(a,c){a||(a=b);if(k)return a.createDocumentFragment();c=c||n(a);var d=c.frag.cloneNode(),e=0,f=m(),g=f.length;for(;e<g;e++)d.createElement(f[e]);return d}function q(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return s.shivMethods?o(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/[\w\-]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(s,b.frag)}function r(a){a||(a=b);var c=n(a);return s.shivCSS&&!g&&!c.hasCSS&&(c.hasCSS=!!l(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),k||q(a,c),a}var c="3.7.0",d=a.html5||{},e=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,f=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,g,h="_html5shiv",i=0,j={},k;(function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",g="hidden"in a,k=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){g=!0,k=!0}})();var s={elements:d.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:c,shivCSS:d.shivCSS!==!1,supportsUnknownElements:k,shivMethods:d.shivMethods!==!1,type:"default",shivDocument:r,createElement:o,createDocumentFragment:p};a.html5=s,r(b)}(this,b),e._version=d,e._prefixes=m,e.testStyles=t,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" w-mod-js w-mod-"+q.join(" w-mod-"):""),e}(this,this.document);
/**
* Webflow: Custom tests
*/
Modernizr.addTest('ios', /(ipod|iphone|ipad)/i.test(navigator.userAgent));`

3774
Log/Web/Assets/JSWebflow.go Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

80
Log/Web/HandlerCommons.go Normal file
View File

@ -0,0 +1,80 @@
package Web
import (
"fmt"
"github.com/SommerEngineering/Ocean/Log"
LM "github.com/SommerEngineering/Ocean/Log/Meta"
"github.com/SommerEngineering/Ocean/Log/Web/Assets"
"github.com/SommerEngineering/Ocean/Shutdown"
"net/http"
)
func HandlerCSSNormalize(response http.ResponseWriter, request *http.Request) {
if Shutdown.IsDown() {
http.NotFound(response, request)
return
}
fmt.Fprint(response, Assets.CSSNormalize)
}
func HandlerCSSWebflow(response http.ResponseWriter, request *http.Request) {
if Shutdown.IsDown() {
http.NotFound(response, request)
return
}
fmt.Fprint(response, Assets.CSSWebflow)
}
func HandlerCSSLog(response http.ResponseWriter, request *http.Request) {
if Shutdown.IsDown() {
http.NotFound(response, request)
return
}
fmt.Fprint(response, Assets.CSSLog)
}
func HandlerJSModernizr(response http.ResponseWriter, request *http.Request) {
if Shutdown.IsDown() {
http.NotFound(response, request)
return
}
fmt.Fprint(response, Assets.JSModernizr)
}
func HandlerJSWebflow(response http.ResponseWriter, request *http.Request) {
if Shutdown.IsDown() {
http.NotFound(response, request)
return
}
fmt.Fprint(response, Assets.JSWebflow)
}
func HandlerJSjQuery(response http.ResponseWriter, request *http.Request) {
if Shutdown.IsDown() {
http.NotFound(response, request)
return
}
fmt.Fprint(response, Assets.JSjQuery)
}
func HandlerJSjQueryMap(response http.ResponseWriter, request *http.Request) {
if Shutdown.IsDown() {
http.NotFound(response, request)
return
}
fmt.Fprint(response, Assets.JSjQueryMap)
}

View File

@ -4,4 +4,17 @@ type Viewer struct {
Title string Title string
MessageNames []string MessageNames []string
Sender []string Sender []string
Events []LogEvent
}
// <li class="logline loga logwarn">
// <div>....</div>
// </li>
// <li class="logline logb logwarn">
// <div>....</div>
// </li>
type LogEvent struct {
LogLine string
LogLevel string // logwarn || logdebug || logerror || loginfo || logtalkative || logsecurity
AB string // loga || logb
} }

View File

@ -1,6 +1,6 @@
package Templates package Templates
var viewer string = ` var Viewer string = `
<!DOCTYPE html> <!DOCTYPE html>
<!-- This site was created in Webflow. http://www.webflow.com--> <!-- This site was created in Webflow. http://www.webflow.com-->
<!-- Last Published: Mon Feb 02 2015 20:11:43 GMT+0000 (UTC) --> <!-- Last Published: Mon Feb 02 2015 20:11:43 GMT+0000 (UTC) -->
@ -10,10 +10,10 @@ var viewer string = `
<title>{{.Title}}</title> <title>{{.Title}}</title>
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="generator" content="Webflow"> <meta name="generator" content="Webflow">
<link rel="stylesheet" type="text/css" href="css/normalize.css"> <link rel="stylesheet" type="text/css" href="/log/css/normalize.css">
<link rel="stylesheet" type="text/css" href="css/webflow.css"> <link rel="stylesheet" type="text/css" href="/log/css/webflow.css">
<link rel="stylesheet" type="text/css" href="css/ocean-frame.webflow.css"> <link rel="stylesheet" type="text/css" href="/log/css/log.css">
<script type="text/javascript" src="js/modernizr.js"></script> <script type="text/javascript" src="/log/js/modernizr.js"></script>
</head> </head>
<body> <body>
<div class="headercontainer"> <div class="headercontainer">
@ -99,45 +99,11 @@ var viewer string = `
<div> <div>
<h2 class="headeroutput">Output</h2> <h2 class="headeroutput">Output</h2>
<ul class="loglist"> <ul class="loglist">
<li class="logline loga logwarn"> {{range .Events}}
<div>WARN This is some text inside of a div block.</div> <li class="logline {{.AB}} {{.LogLevel}}">
</li> <div>{{.LogLine}}</div>
<li class="logline logb logwarn">
<div>WARN This is some text inside of a div block.</div>
</li>
<li class="logline loga logdebug">
<div>DEBUG This is some text inside of a div block.</div>
</li>
<li class="logline logb logdebug">
<div>DEBUG This is some text inside of a div block.</div>
</li>
<li class="logline loga logerror">
<div>ERROR This is some text inside of a div block.</div>
</li>
<li class="logline logb logerror">
<div>ERROR This is some text inside of a div block.</div>
</li>
<li class="logline loga loginfo">
<div>INFO&nbsp;This is some text inside of a div block.</div>
</li>
<li class="logline logb loginfo">
<div>INFO This is some text inside of a div block.</div>
</li>
<li class="logline loga logtalkative">
<div>TALKATIVE This is some text inside of a div block.</div>
</li>
<li class="logline logb logtalkative">
<div>TALKATIVE This is some text inside of a div block.</div>
</li>
<li class="logline loga logsecurity">
<div>SECURITY This is some text inside of a div block.</div>
</li>
<li class="logline logb logsecurity">
<div>SECURITY This is some text inside of a div block.</div>
</li>
<li class="logline">
<div>This is some text inside of a div block.</div>
</li> </li>
{{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="#">First</a><a class="button changepagebutton" href="#">-1</a>
@ -153,7 +119,7 @@ var viewer string = `
</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="#">+1</a><a class="button changepagebutton" href="#">Last</a>
</div> </div>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script type="text/javascript" src="/log/js/jquery.min.js"></script>
<script type="text/javascript" src="js/webflow.js"></script> <script type="text/javascript" src="/log/js/webflow.js"></script>
</body> </body>
</html>` </html>`

View File

@ -7,6 +7,7 @@ import (
"github.com/SommerEngineering/Ocean/ICCC" "github.com/SommerEngineering/Ocean/ICCC"
"github.com/SommerEngineering/Ocean/Log" "github.com/SommerEngineering/Ocean/Log"
LM "github.com/SommerEngineering/Ocean/Log/Meta" LM "github.com/SommerEngineering/Ocean/Log/Meta"
"github.com/SommerEngineering/Ocean/Log/Web"
"github.com/SommerEngineering/Ocean/NumGen" "github.com/SommerEngineering/Ocean/NumGen"
"github.com/SommerEngineering/Ocean/Robots" "github.com/SommerEngineering/Ocean/Robots"
"github.com/SommerEngineering/Ocean/StaticFiles" "github.com/SommerEngineering/Ocean/StaticFiles"
@ -31,6 +32,14 @@ func InitHandlers() {
Handlers.AddAdminHandler(`/next/number`, NumGen.HandlerGetNext) Handlers.AddAdminHandler(`/next/number`, NumGen.HandlerGetNext)
Handlers.AddAdminHandler(`/ICCC`, ICCC.ICCCHandler) Handlers.AddAdminHandler(`/ICCC`, ICCC.ICCCHandler)
Handlers.AddAdminHandler(`/binaryAssets/`, BinaryAssets.HandlerBinaryAssets) Handlers.AddAdminHandler(`/binaryAssets/`, BinaryAssets.HandlerBinaryAssets)
//Handlers.AddAdminHandler(`/log`)
Handlers.AddAdminHandler(`/log/css/normalize.css`, Web.HandlerCSSNormalize)
Handlers.AddAdminHandler(`/log/css/webflow.css`, Web.HandlerCSSWebflow)
Handlers.AddAdminHandler(`/log/css/log.css`, Web.HandlerCSSLog)
Handlers.AddAdminHandler(`/log/js/modernizr.js`, Web.HandlerJSModernizr)
Handlers.AddAdminHandler(`/log/js/jquery.min.js`, Web.HandlerJSjQuery)
Handlers.AddAdminHandler(`/log/js/jquery.min.map`, Web.HandlerJSjQueryMap)
Handlers.AddAdminHandler(`/log/js/webflow.js`, Web.HandlerJSWebflow)
if ConfigurationDB.Read(`MapStaticFiles2Root`) == "true" { if ConfigurationDB.Read(`MapStaticFiles2Root`) == "true" {
Log.LogShort(senderName, LM.CategorySYSTEM, LM.LevelINFO, LM.MessageNameSTARTUP, `The static files are mapped to the root.`) Log.LogShort(senderName, LM.CategorySYSTEM, LM.LevelINFO, LM.MessageNameSTARTUP, `The static files are mapped to the root.`)