Added Admin Overview
This commit is contained in:
parent
5cd7f237a3
commit
ea2a790bad
@ -1,308 +1,341 @@
|
|||||||
package Assets
|
package Assets
|
||||||
|
|
||||||
var CSSLog string = `
|
var CSSAdmin string = `
|
||||||
body {
|
body {
|
||||||
font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
|
font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
|
||||||
color: #333;
|
color: #333;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
}
|
}
|
||||||
h1 {
|
h1 {
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
font-size: 38px;
|
font-size: 38px;
|
||||||
line-height: 44px;
|
line-height: 44px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
h2 {
|
h2 {
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
font-size: 32px;
|
font-size: 32px;
|
||||||
line-height: 36px;
|
line-height: 36px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
h3 {
|
h3 {
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
font-size: 24px;
|
font-size: 24px;
|
||||||
line-height: 30px;
|
line-height: 30px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
h4 {
|
h4 {
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
line-height: 24px;
|
line-height: 24px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
h5 {
|
h5 {
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
h6 {
|
h6 {
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
line-height: 18px;
|
line-height: 18px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
p {
|
p {
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
}
|
}
|
||||||
.button {
|
.button {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 4px 15px;
|
padding: 4px 15px;
|
||||||
background-color: black;
|
background-color: black;
|
||||||
color: white;
|
color: white;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
.button.changepagebutton {
|
.button.changepagebutton {
|
||||||
margin-right: 3px;
|
margin-right: 3px;
|
||||||
margin-left: 3px;
|
margin-left: 3px;
|
||||||
background-color: #545454;
|
background-color: #545454;
|
||||||
}
|
}
|
||||||
.button.changepagebutton.pagechangesubmit {
|
.button.changepagebutton.pagechangesubmit {
|
||||||
margin-right: 30px;
|
margin-right: 30px;
|
||||||
}
|
}
|
||||||
.button.optionbuttons {
|
.button.optionbuttons {
|
||||||
margin: 6px;
|
margin: 6px;
|
||||||
background-color: #545454;
|
background-color: #545454;
|
||||||
}
|
}
|
||||||
.button.optionbuttons.applyfilters {
|
.button.optionbuttons.applyfilters {
|
||||||
margin-left: 0px;
|
margin-left: 0px;
|
||||||
}
|
}
|
||||||
.headercontainer {
|
.button.optionbuttons.currentoption {
|
||||||
height: 50px;
|
background-color: #00aeff;
|
||||||
margin-top: -19px;
|
}
|
||||||
background-color: black;
|
.button.adminbutton {
|
||||||
color: white;
|
width: 222px;
|
||||||
text-align: center;
|
height: 50px;
|
||||||
}
|
max-height: 50px;
|
||||||
.logcontainer {
|
max-width: 222px;
|
||||||
margin-top: 0px;
|
min-height: 50px;
|
||||||
}
|
min-width: 222px;
|
||||||
.loglist {
|
padding-top: 15px;
|
||||||
margin-right: 3px;
|
background-color: #cfcfcf;
|
||||||
margin-bottom: 3px;
|
color: black;
|
||||||
margin-left: 3px;
|
font-size: 20px;
|
||||||
padding-top: 0px;
|
font-weight: 700;
|
||||||
padding-left: 0px;
|
}
|
||||||
list-style-type: none;
|
.button.adminbutton:hover {
|
||||||
}
|
background-color: #00aeff;
|
||||||
.logline {
|
color: white;
|
||||||
margin: 3px 6px;
|
}
|
||||||
padding: 6px;
|
.headercontainer {
|
||||||
border: 1px solid #9e9e9e;
|
height: 50px;
|
||||||
border-radius: 3px;
|
margin-top: -19px;
|
||||||
font-family:'Source Code Pro', sans-serif;
|
background-color: black;
|
||||||
font-size: 10px;
|
color: white;
|
||||||
font-weight: 900;
|
text-align: center;
|
||||||
}
|
}
|
||||||
.logline.loga {
|
.logcontainer {
|
||||||
background-color: #ededed;
|
margin-top: 0px;
|
||||||
}
|
}
|
||||||
.logline.logb {
|
.loglist {
|
||||||
background-color: #cfcfcf;
|
margin-right: 3px;
|
||||||
}
|
margin-bottom: 3px;
|
||||||
.logline.logwarn {
|
margin-left: 3px;
|
||||||
color: #db7602;
|
padding-top: 0px;
|
||||||
}
|
padding-left: 0px;
|
||||||
.logline.logdebug {
|
list-style-type: none;
|
||||||
color: #04f;
|
}
|
||||||
}
|
.logline {
|
||||||
.logline.logerror {
|
margin: 3px 6px;
|
||||||
color: #c00;
|
padding: 6px;
|
||||||
}
|
border: 1px solid #9e9e9e;
|
||||||
.logline.loginfo {
|
border-radius: 3px;
|
||||||
color: black;
|
font-family:'Source Code Pro', sans-serif;
|
||||||
}
|
font-size: 10px;
|
||||||
.logline.logtalkative {
|
font-weight: 900;
|
||||||
color: #a3a2a2;
|
}
|
||||||
}
|
.logline.loga {
|
||||||
.logline.logsecurity {
|
background-color: #ededed;
|
||||||
color: #db4500;
|
}
|
||||||
}
|
.logline.logb {
|
||||||
.logheadercontainer {
|
background-color: #cfcfcf;
|
||||||
margin-top: 10px;
|
}
|
||||||
text-align: center;
|
.logline.logwarn {
|
||||||
}
|
color: #db7602;
|
||||||
.showposition {
|
}
|
||||||
margin-top: 10px;
|
.logline.logdebug {
|
||||||
font-size: 20px;
|
color: #04f;
|
||||||
}
|
}
|
||||||
.controlcontainer {
|
.logline.logerror {
|
||||||
margin-top: 10px;
|
color: #c00;
|
||||||
}
|
}
|
||||||
.pagecontainer {
|
.logline.loginfo {
|
||||||
margin-top: 10px;
|
color: black;
|
||||||
text-align: center;
|
}
|
||||||
list-style-type: none;
|
.logline.logtalkative {
|
||||||
}
|
color: #a3a2a2;
|
||||||
.icons {
|
}
|
||||||
position: absolute;
|
.logline.logsecurity {
|
||||||
display: block;
|
color: #db4500;
|
||||||
width: 25px;
|
}
|
||||||
height: 25px;
|
.logheadercontainer {
|
||||||
margin-top: 15px;
|
margin-top: 10px;
|
||||||
margin-left: 254px;
|
text-align: center;
|
||||||
padding-top: 0px;
|
}
|
||||||
font-family: Glyphicons, sans-serif;
|
.showposition {
|
||||||
color: black;
|
margin-top: 10px;
|
||||||
font-size: 25px;
|
font-size: 20px;
|
||||||
font-weight: 400;
|
}
|
||||||
text-decoration: none;
|
.controlcontainer {
|
||||||
}
|
margin-top: 10px;
|
||||||
.icons.oneback {
|
}
|
||||||
margin-top: 17px;
|
.pagecontainer {
|
||||||
margin-left: 219px;
|
margin-top: 10px;
|
||||||
}
|
text-align: center;
|
||||||
.icons.tofirst {
|
list-style-type: none;
|
||||||
margin-top: 17px;
|
}
|
||||||
margin-left: 255px;
|
.icons {
|
||||||
}
|
position: absolute;
|
||||||
.icons.next {
|
display: block;
|
||||||
margin-top: -38px;
|
width: 25px;
|
||||||
margin-left: 668px;
|
height: 25px;
|
||||||
}
|
margin-top: 15px;
|
||||||
.icons.tolast {
|
margin-left: 254px;
|
||||||
margin-top: -38px;
|
padding-top: 0px;
|
||||||
margin-left: 702px;
|
font-family: Glyphicons, sans-serif;
|
||||||
}
|
color: black;
|
||||||
.formfield {
|
font-size: 25px;
|
||||||
display: inline;
|
font-weight: 400;
|
||||||
margin-right: 6px;
|
text-decoration: none;
|
||||||
margin-left: 30px;
|
}
|
||||||
color: black;
|
.icons.oneback {
|
||||||
font-weight: 400;
|
margin-top: 17px;
|
||||||
}
|
margin-left: 219px;
|
||||||
.formpages {
|
}
|
||||||
display: inline;
|
.icons.tofirst {
|
||||||
}
|
margin-top: 17px;
|
||||||
.currentpage {
|
margin-left: 255px;
|
||||||
display: inline-block;
|
}
|
||||||
width: 100px;
|
.icons.next {
|
||||||
margin-top: 7px;
|
margin-top: -38px;
|
||||||
margin-right: 6px;
|
margin-left: 668px;
|
||||||
padding-top: 3px;
|
}
|
||||||
padding-bottom: 3px;
|
.icons.tolast {
|
||||||
float: none;
|
margin-top: -38px;
|
||||||
clear: none;
|
margin-left: 702px;
|
||||||
color: black;
|
}
|
||||||
text-align: center;
|
.formfield {
|
||||||
}
|
display: inline;
|
||||||
.formpageswrapper {
|
margin-right: 6px;
|
||||||
display: inline;
|
margin-left: 30px;
|
||||||
}
|
color: black;
|
||||||
.textcountpages {
|
font-weight: 400;
|
||||||
display: inline;
|
}
|
||||||
margin-right: 6px;
|
.formpages {
|
||||||
color: black;
|
display: inline;
|
||||||
}
|
}
|
||||||
.logchangepagebutton {
|
.currentpage {
|
||||||
height: 40px;
|
display: inline-block;
|
||||||
margin-left: 10px;
|
width: 100px;
|
||||||
padding-top: 3px;
|
margin-top: 7px;
|
||||||
padding-bottom: 3px;
|
margin-right: 6px;
|
||||||
background-color: #a8a8a8;
|
padding-top: 3px;
|
||||||
color: black;
|
padding-bottom: 3px;
|
||||||
font-weight: 700;
|
float: none;
|
||||||
}
|
clear: none;
|
||||||
.headercontrol {
|
color: black;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
.headeroutput {
|
.formpageswrapper {
|
||||||
text-align: center;
|
display: inline;
|
||||||
}
|
}
|
||||||
.options {
|
.textcountpages {
|
||||||
background-color: #ededed;
|
display: inline;
|
||||||
}
|
margin-right: 6px;
|
||||||
.filters {
|
color: black;
|
||||||
background-color: #ededed;
|
}
|
||||||
}
|
.logchangepagebutton {
|
||||||
.labels {
|
height: 40px;
|
||||||
display: block;
|
margin-left: 10px;
|
||||||
}
|
padding-top: 3px;
|
||||||
@media (max-width: 991px) {
|
padding-bottom: 3px;
|
||||||
.icons.oneback {
|
background-color: #a8a8a8;
|
||||||
margin-left: 113px;
|
color: black;
|
||||||
}
|
font-weight: 700;
|
||||||
.icons.tofirst {
|
}
|
||||||
margin-left: 152px;
|
.headercontrol {
|
||||||
}
|
text-align: center;
|
||||||
.icons.next {
|
}
|
||||||
margin-left: 563px;
|
.headeroutput {
|
||||||
}
|
text-align: center;
|
||||||
.icons.tolast {
|
}
|
||||||
margin-left: 602px;
|
.options {
|
||||||
}
|
background-color: #ededed;
|
||||||
}
|
}
|
||||||
@media (max-width: 767px) {
|
.filters {
|
||||||
.button.changepagebutton.pagechangesubmit {
|
background-color: #ededed;
|
||||||
margin-right: 0px;
|
}
|
||||||
}
|
.labels {
|
||||||
.icons.oneback {
|
display: block;
|
||||||
margin-left: 40px;
|
}
|
||||||
}
|
.adminsection {
|
||||||
.icons.tofirst {
|
margin-top: 30px;
|
||||||
margin-left: 73px;
|
}
|
||||||
}
|
.adminitem {
|
||||||
.icons.next {
|
min-height: 50px;
|
||||||
margin-left: 483px;
|
background-color: #cfcfcf;
|
||||||
}
|
font-size: 20px;
|
||||||
.icons.tolast {
|
font-weight: 700;
|
||||||
margin-left: 518px;
|
text-align: center;
|
||||||
}
|
}
|
||||||
.formfield {
|
.adminitemlog {
|
||||||
margin-left: 0px;
|
padding-top: 14px;
|
||||||
}
|
}
|
||||||
.newlineblock {
|
@media (max-width: 991px) {
|
||||||
height: 10px;
|
.icons.oneback {
|
||||||
}
|
margin-left: 113px;
|
||||||
}
|
}
|
||||||
@media (max-width: 479px) {
|
.icons.tofirst {
|
||||||
.button.changepagebutton.pagechangesubmit {
|
margin-left: 152px;
|
||||||
margin-right: 3px;
|
}
|
||||||
margin-bottom: 20px;
|
.icons.next {
|
||||||
text-align: center;
|
margin-left: 563px;
|
||||||
}
|
}
|
||||||
.pagecontainer {
|
.icons.tolast {
|
||||||
margin-top: 20px;
|
margin-left: 602px;
|
||||||
}
|
}
|
||||||
.icons.oneback {
|
}
|
||||||
margin-top: 113px;
|
@media (max-width: 767px) {
|
||||||
margin-left: 25px;
|
.button.changepagebutton.pagechangesubmit {
|
||||||
}
|
margin-right: 0px;
|
||||||
.icons.tofirst {
|
}
|
||||||
margin-top: 113px;
|
.icons.oneback {
|
||||||
margin-left: 62px;
|
margin-left: 40px;
|
||||||
}
|
}
|
||||||
.icons.next {
|
.icons.tofirst {
|
||||||
margin-top: 18px;
|
margin-left: 73px;
|
||||||
margin-left: 242px;
|
}
|
||||||
}
|
.icons.next {
|
||||||
.icons.tolast {
|
margin-left: 483px;
|
||||||
margin-top: 18px;
|
}
|
||||||
margin-left: 278px;
|
.icons.tolast {
|
||||||
}
|
margin-left: 518px;
|
||||||
.formfield {
|
}
|
||||||
margin-left: 0px;
|
.formfield {
|
||||||
}
|
margin-left: 0px;
|
||||||
.currentpage {
|
}
|
||||||
margin-top: 20px;
|
.newlineblock {
|
||||||
}
|
height: 10px;
|
||||||
.newlineblock {
|
}
|
||||||
display: block;
|
}
|
||||||
height: 10px;
|
@media (max-width: 479px) {
|
||||||
}
|
.button.changepagebutton.pagechangesubmit {
|
||||||
}
|
margin-right: 3px;
|
||||||
|
margin-bottom: 20px;
|
||||||
@font-face {
|
text-align: center;
|
||||||
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');
|
.pagecontainer {
|
||||||
font-weight: 400;
|
margin-top: 20px;
|
||||||
font-style: normal;
|
}
|
||||||
}`
|
.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;
|
||||||
|
}`
|
@ -1,343 +1,361 @@
|
|||||||
package Assets
|
package Assets
|
||||||
|
|
||||||
var CSSNormalize string = `
|
var CSSNormalize string = `
|
||||||
/*! normalize.css v2.1.3 | MIT License | git.io/normalize */
|
/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
|
||||||
/* ==========================================================================
|
/**
|
||||||
HTML5 display definitions
|
* 1. Set default font family to sans-serif.
|
||||||
========================================================================== */
|
* 2. Prevent iOS text size adjust after orientation change, without disabling
|
||||||
/**
|
* user zoom.
|
||||||
* Correct "block" display not defined in IE 8/9.
|
*/
|
||||||
*/
|
html {
|
||||||
article,
|
font-family: sans-serif;
|
||||||
aside,
|
/* 1 */
|
||||||
details,
|
-ms-text-size-adjust: 100%;
|
||||||
figcaption,
|
/* 2 */
|
||||||
figure,
|
-webkit-text-size-adjust: 100%;
|
||||||
footer,
|
/* 2 */
|
||||||
header,
|
}
|
||||||
hgroup,
|
/**
|
||||||
main,
|
* Remove default margin.
|
||||||
nav,
|
*/
|
||||||
section,
|
body {
|
||||||
summary {
|
margin: 0;
|
||||||
display: block;
|
}
|
||||||
}
|
/* HTML5 display definitions
|
||||||
/**
|
========================================================================== */
|
||||||
* Correct "inline-block" display not defined in IE 8/9.
|
/**
|
||||||
*/
|
* Correct 'block' display not defined for any HTML5 element in IE 8/9.
|
||||||
audio,
|
* Correct 'block' display not defined for 'details' or 'summary' in IE 10/11
|
||||||
canvas,
|
* and Firefox.
|
||||||
video {
|
* Correct 'block' display not defined for 'main' in IE 11.
|
||||||
display: inline-block;
|
*/
|
||||||
}
|
article,
|
||||||
/**
|
aside,
|
||||||
* Prevent modern browsers from displaying "audio" without controls.
|
details,
|
||||||
* Remove excess height in iOS 5 devices.
|
figcaption,
|
||||||
*/
|
figure,
|
||||||
audio:not([controls]) {
|
footer,
|
||||||
display: none;
|
header,
|
||||||
height: 0;
|
hgroup,
|
||||||
}
|
main,
|
||||||
/**
|
menu,
|
||||||
* Address "[hidden]" styling not present in IE 8/9.
|
nav,
|
||||||
* Hide the "template" element in IE, Safari, and Firefox < 22.
|
section,
|
||||||
*/
|
summary {
|
||||||
[hidden],
|
display: block;
|
||||||
template {
|
}
|
||||||
display: none;
|
/**
|
||||||
}
|
* 1. Correct 'inline-block' display not defined in IE 8/9.
|
||||||
/* ==========================================================================
|
* 2. Normalize vertical alignment of 'progress' in Chrome, Firefox, and Opera.
|
||||||
Base
|
*/
|
||||||
========================================================================== */
|
audio,
|
||||||
/**
|
canvas,
|
||||||
* 1. Set default font family to sans-serif.
|
progress,
|
||||||
* 2. Prevent iOS text size adjust after orientation change, without disabling
|
video {
|
||||||
* user zoom.
|
display: inline-block;
|
||||||
*/
|
/* 1 */
|
||||||
html {
|
vertical-align: baseline;
|
||||||
font-family: sans-serif;
|
/* 2 */
|
||||||
/* 1 */
|
}
|
||||||
-ms-text-size-adjust: 100%;
|
/**
|
||||||
/* 2 */
|
* Prevent modern browsers from displaying 'audio' without controls.
|
||||||
-webkit-text-size-adjust: 100%;
|
* Remove excess height in iOS 5 devices.
|
||||||
/* 2 */
|
*/
|
||||||
}
|
audio:not([controls]) {
|
||||||
/**
|
display: none;
|
||||||
* Remove default margin.
|
height: 0;
|
||||||
*/
|
}
|
||||||
body {
|
/**
|
||||||
margin: 0;
|
* Address '[hidden]' styling not present in IE 8/9/10.
|
||||||
}
|
* Hide the 'template' element in IE 8/9/11, Safari, and Firefox < 22.
|
||||||
/* ==========================================================================
|
*/
|
||||||
Links
|
[hidden],
|
||||||
========================================================================== */
|
template {
|
||||||
/**
|
display: none;
|
||||||
* Remove the gray background color from active links in IE 10.
|
}
|
||||||
*/
|
/* Links
|
||||||
a {
|
========================================================================== */
|
||||||
background: transparent;
|
/**
|
||||||
}
|
* Remove the gray background color from active links in IE 10.
|
||||||
/**
|
*/
|
||||||
* Address "outline" inconsistency between Chrome and other browsers.
|
a {
|
||||||
*/
|
background-color: transparent;
|
||||||
a:focus {
|
}
|
||||||
outline: thin dotted;
|
/**
|
||||||
}
|
* Improve readability when focused and also mouse hovered in all browsers.
|
||||||
/**
|
*/
|
||||||
* Improve readability when focused and also mouse hovered in all browsers.
|
a:active,
|
||||||
*/
|
a:hover {
|
||||||
a:active,
|
outline: 0;
|
||||||
a:hover {
|
}
|
||||||
outline: 0;
|
/* Text-level semantics
|
||||||
}
|
========================================================================== */
|
||||||
/* ==========================================================================
|
/**
|
||||||
Typography
|
* Address styling not present in IE 8/9/10/11, Safari, and Chrome.
|
||||||
========================================================================== */
|
*/
|
||||||
/**
|
abbr[title] {
|
||||||
* Address variable "h1" font-size and margin within "section" and "article"
|
border-bottom: 1px dotted;
|
||||||
* contexts in Firefox 4+, Safari 5, and Chrome.
|
}
|
||||||
*/
|
/**
|
||||||
h1 {
|
* Address style set to 'bolder' in Firefox 4+, Safari, and Chrome.
|
||||||
font-size: 2em;
|
*/
|
||||||
margin: 0.67em 0;
|
b,
|
||||||
}
|
strong {
|
||||||
/**
|
font-weight: bold;
|
||||||
* Address styling not present in IE 8/9, Safari 5, and Chrome.
|
}
|
||||||
*/
|
/**
|
||||||
abbr[title] {
|
* Address styling not present in Safari and Chrome.
|
||||||
border-bottom: 1px dotted;
|
*/
|
||||||
}
|
dfn {
|
||||||
/**
|
font-style: italic;
|
||||||
* Address style set to "bolder" in Firefox 4+, Safari 5, and Chrome.
|
}
|
||||||
*/
|
/**
|
||||||
b,
|
* Address variable 'h1' font-size and margin within 'section' and 'article'
|
||||||
strong {
|
* contexts in Firefox 4+, Safari, and Chrome.
|
||||||
font-weight: bold;
|
*/
|
||||||
}
|
h1 {
|
||||||
/**
|
font-size: 2em;
|
||||||
* Address styling not present in Safari 5 and Chrome.
|
margin: 0.67em 0;
|
||||||
*/
|
}
|
||||||
dfn {
|
/**
|
||||||
font-style: italic;
|
* Address styling not present in IE 8/9.
|
||||||
}
|
*/
|
||||||
/**
|
mark {
|
||||||
* Address differences between Firefox and other browsers.
|
background: #ff0;
|
||||||
*/
|
color: #000;
|
||||||
hr {
|
}
|
||||||
-moz-box-sizing: content-box;
|
/**
|
||||||
box-sizing: content-box;
|
* Address inconsistent and variable font size in all browsers.
|
||||||
height: 0;
|
*/
|
||||||
}
|
small {
|
||||||
/**
|
font-size: 80%;
|
||||||
* Address styling not present in IE 8/9.
|
}
|
||||||
*/
|
/**
|
||||||
mark {
|
* Prevent 'sub' and 'sup' affecting 'line-height' in all browsers.
|
||||||
background: #ff0;
|
*/
|
||||||
color: #000;
|
sub,
|
||||||
}
|
sup {
|
||||||
/**
|
font-size: 75%;
|
||||||
* Correct font family set oddly in Safari 5 and Chrome.
|
line-height: 0;
|
||||||
*/
|
position: relative;
|
||||||
code,
|
vertical-align: baseline;
|
||||||
kbd,
|
}
|
||||||
pre,
|
sup {
|
||||||
samp {
|
top: -0.5em;
|
||||||
font-family: monospace, serif;
|
}
|
||||||
font-size: 1em;
|
sub {
|
||||||
}
|
bottom: -0.25em;
|
||||||
/**
|
}
|
||||||
* Improve readability of pre-formatted text in all browsers.
|
/* Embedded content
|
||||||
*/
|
========================================================================== */
|
||||||
pre {
|
/**
|
||||||
white-space: pre-wrap;
|
* Remove border when inside 'a' element in IE 8/9/10.
|
||||||
}
|
*/
|
||||||
/**
|
img {
|
||||||
* Set consistent quote types.
|
border: 0;
|
||||||
*/
|
}
|
||||||
q {
|
/**
|
||||||
quotes: "\201C" "\201D" "\2018" "\2019";
|
* Correct overflow not hidden in IE 9/10/11.
|
||||||
}
|
*/
|
||||||
/**
|
svg:not(:root) {
|
||||||
* Address inconsistent and variable font size in all browsers.
|
overflow: hidden;
|
||||||
*/
|
}
|
||||||
small {
|
/* Grouping content
|
||||||
font-size: 80%;
|
========================================================================== */
|
||||||
}
|
/**
|
||||||
/**
|
* Address margin not present in IE 8/9 and Safari.
|
||||||
* Prevent "sub" and "sup" affecting "line-height" in all browsers.
|
*/
|
||||||
*/
|
figure {
|
||||||
sub,
|
margin: 1em 40px;
|
||||||
sup {
|
}
|
||||||
font-size: 75%;
|
/**
|
||||||
line-height: 0;
|
* Address differences between Firefox and other browsers.
|
||||||
position: relative;
|
*/
|
||||||
vertical-align: baseline;
|
hr {
|
||||||
}
|
-moz-box-sizing: content-box;
|
||||||
sup {
|
box-sizing: content-box;
|
||||||
top: -0.5em;
|
height: 0;
|
||||||
}
|
}
|
||||||
sub {
|
/**
|
||||||
bottom: -0.25em;
|
* Contain overflow in all browsers.
|
||||||
}
|
*/
|
||||||
/* ==========================================================================
|
pre {
|
||||||
Embedded content
|
overflow: auto;
|
||||||
========================================================================== */
|
}
|
||||||
/**
|
/**
|
||||||
* Remove border when inside "a" element in IE 8/9.
|
* Address odd 'em'-unit font size rendering in all browsers.
|
||||||
*/
|
*/
|
||||||
img {
|
code,
|
||||||
border: 0;
|
kbd,
|
||||||
}
|
pre,
|
||||||
/**
|
samp {
|
||||||
* Correct overflow displayed oddly in IE 9.
|
font-family: monospace, monospace;
|
||||||
*/
|
font-size: 1em;
|
||||||
svg:not(:root) {
|
}
|
||||||
overflow: hidden;
|
/* Forms
|
||||||
}
|
========================================================================== */
|
||||||
/* ==========================================================================
|
/**
|
||||||
Figures
|
* Known limitation: by default, Chrome and Safari on OS X allow very limited
|
||||||
========================================================================== */
|
* styling of 'select', unless a 'border' property is set.
|
||||||
/**
|
*/
|
||||||
* Address margin not present in IE 8/9 and Safari 5.
|
/**
|
||||||
*/
|
* 1. Correct color not being inherited.
|
||||||
figure {
|
* Known issue: affects color of disabled elements.
|
||||||
margin: 0;
|
* 2. Correct font properties not being inherited.
|
||||||
}
|
* 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
|
||||||
/* ==========================================================================
|
*/
|
||||||
Forms
|
button,
|
||||||
========================================================================== */
|
input,
|
||||||
/**
|
optgroup,
|
||||||
* Define consistent border, margin, and padding.
|
select,
|
||||||
*/
|
textarea {
|
||||||
fieldset {
|
color: inherit;
|
||||||
border: 1px solid #c0c0c0;
|
/* 1 */
|
||||||
margin: 0 2px;
|
font: inherit;
|
||||||
padding: 0.35em 0.625em 0.75em;
|
/* 2 */
|
||||||
}
|
margin: 0;
|
||||||
/**
|
/* 3 */
|
||||||
* 1. Correct "color" not being inherited in IE 8/9.
|
}
|
||||||
* 2. Remove padding so people aren't caught out if they zero out fieldsets.
|
/**
|
||||||
*/
|
* Address 'overflow' set to 'hidden' in IE 8/9/10/11.
|
||||||
legend {
|
*/
|
||||||
border: 0;
|
button {
|
||||||
/* 1 */
|
overflow: visible;
|
||||||
padding: 0;
|
}
|
||||||
/* 2 */
|
/**
|
||||||
}
|
* Address inconsistent 'text-transform' inheritance for 'button' and 'select'.
|
||||||
/**
|
* All other form control elements do not inherit 'text-transform' values.
|
||||||
* 1. Correct font family not being inherited in all browsers.
|
* Correct 'button' style inheritance in Firefox, IE 8/9/10/11, and Opera.
|
||||||
* 2. Correct font size not being inherited in all browsers.
|
* Correct 'select' style inheritance in Firefox.
|
||||||
* 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
|
*/
|
||||||
*/
|
button,
|
||||||
button,
|
select {
|
||||||
input,
|
text-transform: none;
|
||||||
select,
|
}
|
||||||
textarea {
|
/**
|
||||||
font-family: inherit;
|
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native 'audio'
|
||||||
/* 1 */
|
* and 'video' controls.
|
||||||
font-size: 100%;
|
* 2. Correct inability to style clickable 'input' types in iOS.
|
||||||
/* 2 */
|
* 3. Improve usability and consistency of cursor style between image-type
|
||||||
margin: 0;
|
* 'input' and others.
|
||||||
/* 3 */
|
*/
|
||||||
}
|
button,
|
||||||
/**
|
html input[type="button"],
|
||||||
* Address Firefox 4+ setting "line-height" on "input" using "!important" in
|
input[type="reset"],
|
||||||
* the UA stylesheet.
|
input[type="submit"] {
|
||||||
*/
|
-webkit-appearance: button;
|
||||||
button,
|
/* 2 */
|
||||||
input {
|
cursor: pointer;
|
||||||
line-height: normal;
|
/* 3 */
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Address inconsistent "text-transform" inheritance for "button" and "select".
|
* Re-set default cursor for disabled elements.
|
||||||
* All other form control elements do not inherit "text-transform" values.
|
*/
|
||||||
* Correct "button" style inheritance in Chrome, Safari 5+, and IE 8+.
|
button[disabled],
|
||||||
* Correct "select" style inheritance in Firefox 4+ and Opera.
|
html input[disabled] {
|
||||||
*/
|
cursor: default;
|
||||||
button,
|
}
|
||||||
select {
|
/**
|
||||||
text-transform: none;
|
* Remove inner padding and border in Firefox 4+.
|
||||||
}
|
*/
|
||||||
/**
|
button::-moz-focus-inner,
|
||||||
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native "audio"
|
input::-moz-focus-inner {
|
||||||
* and "video" controls.
|
border: 0;
|
||||||
* 2. Correct inability to style clickable "input" types in iOS.
|
padding: 0;
|
||||||
* 3. Improve usability and consistency of cursor style between image-type
|
}
|
||||||
* "input" and others.
|
/**
|
||||||
*/
|
* Address Firefox 4+ setting 'line-height' on 'input' using '!important' in
|
||||||
button,
|
* the UA stylesheet.
|
||||||
html input[type="button"],
|
*/
|
||||||
input[type="reset"],
|
input {
|
||||||
input[type="submit"] {
|
line-height: normal;
|
||||||
-webkit-appearance: button;
|
}
|
||||||
/* 2 */
|
/**
|
||||||
cursor: pointer;
|
* It's recommended that you don't attempt to style these elements.
|
||||||
/* 3 */
|
* Firefox's implementation doesn't respect box-sizing, padding, or width.
|
||||||
}
|
*
|
||||||
/**
|
* 1. Address box sizing set to 'content-box' in IE 8/9/10.
|
||||||
* Re-set default cursor for disabled elements.
|
* 2. Remove excess padding in IE 8/9/10.
|
||||||
*/
|
*/
|
||||||
button[disabled],
|
input[type="checkbox"],
|
||||||
html input[disabled] {
|
input[type="radio"] {
|
||||||
cursor: default;
|
box-sizing: border-box;
|
||||||
}
|
/* 1 */
|
||||||
/**
|
padding: 0;
|
||||||
* 1. Address box sizing set to "content-box" in IE 8/9/10.
|
/* 2 */
|
||||||
* 2. Remove excess padding in IE 8/9/10.
|
}
|
||||||
*/
|
/**
|
||||||
input[type="checkbox"],
|
* Fix the cursor style for Chrome's increment/decrement buttons. For certain
|
||||||
input[type="radio"] {
|
* 'font-size' values of the 'input', it causes the cursor style of the
|
||||||
box-sizing: border-box;
|
* decrement button to change from 'default' to 'text'.
|
||||||
/* 1 */
|
*/
|
||||||
padding: 0;
|
input[type="number"]::-webkit-inner-spin-button,
|
||||||
/* 2 */
|
input[type="number"]::-webkit-outer-spin-button {
|
||||||
}
|
height: auto;
|
||||||
/**
|
}
|
||||||
* 1. Address "appearance" set to "searchfield" in Safari 5 and Chrome.
|
/**
|
||||||
* 2. Address "box-sizing" set to "border-box" in Safari 5 and Chrome
|
* 1. Address 'appearance' set to 'searchfield' in Safari and Chrome.
|
||||||
* (include "-moz" to future-proof).
|
* 2. Address 'box-sizing' set to 'border-box' in Safari and Chrome
|
||||||
*/
|
* (include '-moz' to future-proof).
|
||||||
input[type="search"] {
|
*/
|
||||||
-webkit-appearance: textfield;
|
input[type="search"] {
|
||||||
/* 1 */
|
-webkit-appearance: textfield;
|
||||||
-moz-box-sizing: content-box;
|
/* 1 */
|
||||||
-webkit-box-sizing: content-box;
|
-moz-box-sizing: content-box;
|
||||||
/* 2 */
|
-webkit-box-sizing: content-box;
|
||||||
box-sizing: content-box;
|
/* 2 */
|
||||||
}
|
box-sizing: content-box;
|
||||||
/**
|
}
|
||||||
* Remove inner padding and search cancel button in Safari 5 and Chrome
|
/**
|
||||||
* on OS X.
|
* Remove inner padding and search cancel button in Safari and Chrome on OS X.
|
||||||
*/
|
* Safari (but not Chrome) clips the cancel button when the search input has
|
||||||
input[type="search"]::-webkit-search-cancel-button,
|
* padding (and 'textfield' appearance).
|
||||||
input[type="search"]::-webkit-search-decoration {
|
*/
|
||||||
-webkit-appearance: none;
|
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,
|
* Define consistent border, margin, and padding.
|
||||||
input::-moz-focus-inner {
|
*/
|
||||||
border: 0;
|
fieldset {
|
||||||
padding: 0;
|
border: 1px solid #c0c0c0;
|
||||||
}
|
margin: 0 2px;
|
||||||
/**
|
padding: 0.35em 0.625em 0.75em;
|
||||||
* 1. Remove default vertical scrollbar in IE 8/9.
|
}
|
||||||
* 2. Improve readability and alignment in all browsers.
|
/**
|
||||||
*/
|
* 1. Correct 'color' not being inherited in IE 8/9/10/11.
|
||||||
textarea {
|
* 2. Remove padding so people aren't caught out if they zero out fieldsets.
|
||||||
overflow: auto;
|
*/
|
||||||
/* 1 */
|
legend {
|
||||||
vertical-align: top;
|
border: 0;
|
||||||
/* 2 */
|
/* 1 */
|
||||||
}
|
padding: 0;
|
||||||
/* ==========================================================================
|
/* 2 */
|
||||||
Tables
|
}
|
||||||
========================================================================== */
|
/**
|
||||||
/**
|
* Remove default vertical scrollbar in IE 8/9/10/11.
|
||||||
* Remove most spacing between table cells.
|
*/
|
||||||
*/
|
textarea {
|
||||||
table {
|
overflow: auto;
|
||||||
border-collapse: collapse;
|
}
|
||||||
border-spacing: 0;
|
/**
|
||||||
}`
|
* Don't inherit the 'font-weight' (applied by a rule above).
|
||||||
|
* NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
|
||||||
|
*/
|
||||||
|
optgroup {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
/* Tables
|
||||||
|
========================================================================== */
|
||||||
|
/**
|
||||||
|
* Remove most spacing between table cells.
|
||||||
|
*/
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0;
|
||||||
|
}
|
||||||
|
td,
|
||||||
|
th {
|
||||||
|
padding: 0;
|
||||||
|
}`
|
File diff suppressed because it is too large
Load Diff
@ -1,11 +1,11 @@
|
|||||||
package Assets
|
package Assets
|
||||||
|
|
||||||
var JSModernizr string = `
|
var JSModernizr string = `
|
||||||
/* Modernizr 2.7.1 (Custom Build) | MIT & BSD
|
/* Modernizr 2.7.1 (Custom Build) | MIT & BSD
|
||||||
* Build: http://modernizr.com/download/#-video-touch-shiv-cssclasses-teststyles-prefixes-cssclassprefix:w!mod!
|
* 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=["­",'<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);
|
;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=["­",'<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
|
* Webflow: Custom tests
|
||||||
*/
|
*/
|
||||||
Modernizr.addTest('ios', /(ipod|iphone|ipad)/i.test(navigator.userAgent));`
|
Modernizr.addTest('ios', /(ipod|iphone|ipad)/i.test(navigator.userAgent));`
|
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
@ -1,93 +1,93 @@
|
|||||||
package Web
|
package Admin
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/SommerEngineering/Ocean/Log/Web/Assets"
|
"github.com/SommerEngineering/Ocean/Admin/Assets"
|
||||||
"github.com/SommerEngineering/Ocean/MimeTypes"
|
"github.com/SommerEngineering/Ocean/MimeTypes"
|
||||||
"github.com/SommerEngineering/Ocean/Shutdown"
|
"github.com/SommerEngineering/Ocean/Shutdown"
|
||||||
"net/http"
|
"net/http"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Handler for some CSS data for the web logger.
|
// Handler for some CSS data for the web logger.
|
||||||
func HandlerCSSNormalize(response http.ResponseWriter, request *http.Request) {
|
func HandlerCSSNormalize(response http.ResponseWriter, request *http.Request) {
|
||||||
|
|
||||||
if Shutdown.IsDown() {
|
if Shutdown.IsDown() {
|
||||||
http.NotFound(response, request)
|
http.NotFound(response, request)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
MimeTypes.Write2HTTP(response, MimeTypes.TypeWebCSS)
|
MimeTypes.Write2HTTP(response, MimeTypes.TypeWebCSS)
|
||||||
fmt.Fprint(response, Assets.CSSNormalize)
|
fmt.Fprint(response, Assets.CSSNormalize)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handler for some CSS data for the web logger.
|
// Handler for some CSS data for the web logger.
|
||||||
func HandlerCSSWebflow(response http.ResponseWriter, request *http.Request) {
|
func HandlerCSSWebflow(response http.ResponseWriter, request *http.Request) {
|
||||||
|
|
||||||
if Shutdown.IsDown() {
|
if Shutdown.IsDown() {
|
||||||
http.NotFound(response, request)
|
http.NotFound(response, request)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
MimeTypes.Write2HTTP(response, MimeTypes.TypeWebCSS)
|
MimeTypes.Write2HTTP(response, MimeTypes.TypeWebCSS)
|
||||||
fmt.Fprint(response, Assets.CSSWebflow)
|
fmt.Fprint(response, Assets.CSSWebflow)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handler for some CSS data for the web logger.
|
// Handler for some CSS data for the web logger.
|
||||||
func HandlerCSSLog(response http.ResponseWriter, request *http.Request) {
|
func HandlerCSSAdmin(response http.ResponseWriter, request *http.Request) {
|
||||||
|
|
||||||
if Shutdown.IsDown() {
|
if Shutdown.IsDown() {
|
||||||
http.NotFound(response, request)
|
http.NotFound(response, request)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
MimeTypes.Write2HTTP(response, MimeTypes.TypeWebCSS)
|
MimeTypes.Write2HTTP(response, MimeTypes.TypeWebCSS)
|
||||||
fmt.Fprint(response, Assets.CSSLog)
|
fmt.Fprint(response, Assets.CSSAdmin)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handler for some JS for the web logger.
|
// Handler for some JS for the web logger.
|
||||||
func HandlerJSModernizr(response http.ResponseWriter, request *http.Request) {
|
func HandlerJSModernizr(response http.ResponseWriter, request *http.Request) {
|
||||||
|
|
||||||
if Shutdown.IsDown() {
|
if Shutdown.IsDown() {
|
||||||
http.NotFound(response, request)
|
http.NotFound(response, request)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
MimeTypes.Write2HTTP(response, MimeTypes.TypeWebJavaScript)
|
MimeTypes.Write2HTTP(response, MimeTypes.TypeWebJavaScript)
|
||||||
fmt.Fprint(response, Assets.JSModernizr)
|
fmt.Fprint(response, Assets.JSModernizr)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handler for some JS for the web logger.
|
// Handler for some JS for the web logger.
|
||||||
func HandlerJSWebflow(response http.ResponseWriter, request *http.Request) {
|
func HandlerJSWebflow(response http.ResponseWriter, request *http.Request) {
|
||||||
|
|
||||||
if Shutdown.IsDown() {
|
if Shutdown.IsDown() {
|
||||||
http.NotFound(response, request)
|
http.NotFound(response, request)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
MimeTypes.Write2HTTP(response, MimeTypes.TypeWebJavaScript)
|
MimeTypes.Write2HTTP(response, MimeTypes.TypeWebJavaScript)
|
||||||
fmt.Fprint(response, Assets.JSWebflow)
|
fmt.Fprint(response, Assets.JSWebflow)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handler for some JS for the web logger.
|
// Handler for some JS for the web logger.
|
||||||
func HandlerJSjQuery(response http.ResponseWriter, request *http.Request) {
|
func HandlerJSjQuery(response http.ResponseWriter, request *http.Request) {
|
||||||
|
|
||||||
if Shutdown.IsDown() {
|
if Shutdown.IsDown() {
|
||||||
http.NotFound(response, request)
|
http.NotFound(response, request)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
MimeTypes.Write2HTTP(response, MimeTypes.TypeWebJavaScript)
|
MimeTypes.Write2HTTP(response, MimeTypes.TypeWebJavaScript)
|
||||||
fmt.Fprint(response, Assets.JSjQuery)
|
fmt.Fprint(response, Assets.JSjQuery)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handler for some JS for the web logger.
|
// Handler for some JS for the web logger.
|
||||||
func HandlerJSjQueryMap(response http.ResponseWriter, request *http.Request) {
|
func HandlerJSjQueryMap(response http.ResponseWriter, request *http.Request) {
|
||||||
|
|
||||||
if Shutdown.IsDown() {
|
if Shutdown.IsDown() {
|
||||||
http.NotFound(response, request)
|
http.NotFound(response, request)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
MimeTypes.Write2HTTP(response, MimeTypes.TypeWebJavaScript)
|
MimeTypes.Write2HTTP(response, MimeTypes.TypeWebJavaScript)
|
||||||
fmt.Fprint(response, Assets.JSjQueryMap)
|
fmt.Fprint(response, Assets.JSjQueryMap)
|
||||||
}
|
}
|
25
Admin/HandlerOverview.go
Normal file
25
Admin/HandlerOverview.go
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
package Admin
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/SommerEngineering/Ocean/Log"
|
||||||
|
LM "github.com/SommerEngineering/Ocean/Log/Meta"
|
||||||
|
"github.com/SommerEngineering/Ocean/MimeTypes"
|
||||||
|
"github.com/SommerEngineering/Ocean/Shutdown"
|
||||||
|
"net/http"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Handler for accessing the admin's overview.
|
||||||
|
func HandlerOverview(response http.ResponseWriter, request *http.Request) {
|
||||||
|
|
||||||
|
// Case: The system goes down now.
|
||||||
|
if Shutdown.IsDown() {
|
||||||
|
http.NotFound(response, request)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Write the MIME type and execute the template:
|
||||||
|
MimeTypes.Write2HTTP(response, MimeTypes.TypeWebHTML)
|
||||||
|
if executeError := AdminTemplates.ExecuteTemplate(response, `Overview`, nil); executeError != nil {
|
||||||
|
Log.LogFull(senderName, LM.CategorySYSTEM, LM.LevelERROR, LM.SeverityCritical, LM.ImpactCritical, LM.MessageNameEXECUTE, `Was not able to execute the admin's overview template.`, executeError.Error())
|
||||||
|
}
|
||||||
|
}
|
25
Admin/Init.go
Normal file
25
Admin/Init.go
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
package Admin
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/SommerEngineering/Ocean/Admin/Templates"
|
||||||
|
"github.com/SommerEngineering/Ocean/Log"
|
||||||
|
LM "github.com/SommerEngineering/Ocean/Log/Meta"
|
||||||
|
"html/template"
|
||||||
|
)
|
||||||
|
|
||||||
|
// The init function for this package.
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
Log.LogShort(senderName, LM.CategorySYSTEM, LM.LevelINFO, LM.MessageNameINIT, `Init the admin area.`)
|
||||||
|
defer Log.LogShort(senderName, LM.CategorySYSTEM, LM.LevelINFO, LM.MessageNameINIT, `Init the admin area done.`)
|
||||||
|
|
||||||
|
// Create the cache of all admin templates:
|
||||||
|
AdminTemplates = template.New(`root`)
|
||||||
|
if _, err := AdminTemplates.Parse(Templates.LoggingViewer); err != nil {
|
||||||
|
Log.LogFull(senderName, LM.CategorySYSTEM, LM.LevelERROR, LM.SeverityCritical, LM.ImpactUnknown, LM.MessageNamePARSE, `Was not able to parse the template for the web log viewer.`, err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, err := AdminTemplates.Parse(Templates.Overview); err != nil {
|
||||||
|
Log.LogFull(senderName, LM.CategorySYSTEM, LM.LevelERROR, LM.SeverityCritical, LM.ImpactUnknown, LM.MessageNamePARSE, `Was not able to parse the template for the admin overview.`, err.Error())
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
package Scheme
|
package Scheme
|
||||||
|
|
||||||
const (
|
const (
|
||||||
A string = `loga` // Web log line, kind A (different color for each line)
|
A string = `loga` // Web log line, kind A (different color for each line)
|
||||||
B string = `logb` // Web log line, kind B (different color for each line)
|
B string = `logb` // Web log line, kind B (different color for each line)
|
||||||
)
|
)
|
@ -1,25 +1,25 @@
|
|||||||
package Scheme
|
package Scheme
|
||||||
|
|
||||||
// The type for the web logger viewer template
|
// The type for the web logger viewer template
|
||||||
type Viewer struct {
|
type Viewer struct {
|
||||||
Title string
|
Title string
|
||||||
SetLiveView bool
|
SetLiveView bool
|
||||||
CurrentLevel string
|
CurrentLevel string
|
||||||
CurrentTimeRange string
|
CurrentTimeRange string
|
||||||
CurrentCategory string
|
CurrentCategory string
|
||||||
CurrentImpact string
|
CurrentImpact string
|
||||||
CurrentSeverity string
|
CurrentSeverity string
|
||||||
CurrentMessageName string
|
CurrentMessageName string
|
||||||
CurrentSender string
|
CurrentSender string
|
||||||
CurrentPage string
|
CurrentPage string
|
||||||
MessageNames []string
|
MessageNames []string
|
||||||
Sender []string
|
Sender []string
|
||||||
Events []LogEvent
|
Events []LogEvent
|
||||||
}
|
}
|
||||||
|
|
||||||
// Type for a log event
|
// Type for a log event
|
||||||
type LogEvent struct {
|
type LogEvent struct {
|
||||||
LogLine string
|
LogLine string
|
||||||
LogLevel string // logwarn || logdebug || logerror || loginfo || logtalkative || logsecurity
|
LogLevel string // logwarn || logdebug || logerror || loginfo || logtalkative || logsecurity
|
||||||
AB string // loga || logb
|
AB string // loga || logb
|
||||||
}
|
}
|
@ -1,7 +1,7 @@
|
|||||||
package Templates
|
package Templates
|
||||||
|
|
||||||
// The template for the web log viewer:
|
// The template for the web log viewer:
|
||||||
var Viewer string = `
|
var LoggingViewer string = `
|
||||||
{{define "WebLog"}}
|
{{define "WebLog"}}
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<!-- This site was created in Webflow. http://www.webflow.com-->
|
<!-- This site was created in Webflow. http://www.webflow.com-->
|
||||||
@ -15,14 +15,14 @@ var Viewer string = `
|
|||||||
{{end}}
|
{{end}}
|
||||||
<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="/log/css/normalize.css">
|
<link rel="stylesheet" type="text/css" href="/admin/css/normalize.css">
|
||||||
<link rel="stylesheet" type="text/css" href="/log/css/webflow.css">
|
<link rel="stylesheet" type="text/css" href="/admin/css/webflow.css">
|
||||||
<link rel="stylesheet" type="text/css" href="/log/css/log.css">
|
<link rel="stylesheet" type="text/css" href="/admin/css/admin.css">
|
||||||
<script type="text/javascript" src="/log/js/modernizr.js"></script>
|
<script type="text/javascript" src="/admin/js/modernizr.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="headercontainer">
|
<div class="headercontainer">
|
||||||
<h1>Logbook</h1>
|
<h1>Logging Viewer</h1>
|
||||||
</div>
|
</div>
|
||||||
<div class="controlsection">
|
<div class="controlsection">
|
||||||
<div class="w-row">
|
<div class="w-row">
|
||||||
@ -131,8 +131,8 @@ 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="/log/js/jquery.min.js"></script>
|
<script type="text/javascript" src="/admin/js/jquery.min.js"></script>
|
||||||
<script type="text/javascript" src="/log/js/webflow.js"></script>
|
<script type="text/javascript" src="/admin/js/webflow.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
{{end}}`
|
{{end}}`
|
36
Admin/Templates/Overview.go
Normal file
36
Admin/Templates/Overview.go
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
package Templates
|
||||||
|
|
||||||
|
var Overview = `
|
||||||
|
{{define "Overview"}}
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<!-- This site was created in Webflow. http://www.webflow.com-->
|
||||||
|
<!-- Last Published: Mon Jun 22 2015 10:36:36 GMT+0000 (UTC) -->
|
||||||
|
<html data-wf-site="547b44aa3e9ac2216ec5d048" data-wf-page="5587d2abbf862f2179c4373b">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Overview</title>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<meta name="generator" content="Webflow">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/admin/css/normalize.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/admin/css/webflow.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/admin/css/admin.css">
|
||||||
|
<script type="text/javascript" src="/admin/js/modernizr.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="w-section headercontainer">
|
||||||
|
<h1>Administration</h1>
|
||||||
|
</div>
|
||||||
|
<div class="w-container adminsection">
|
||||||
|
<div class="w-row">
|
||||||
|
<div class="w-col w-col-4"><a class="button adminbutton" href="/log">Logging Viewer</a>
|
||||||
|
</div>
|
||||||
|
<div class="w-col w-col-4"></div>
|
||||||
|
<div class="w-col w-col-4"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript" src="/admin/js/jquery.min.js"></script>
|
||||||
|
<script type="text/javascript" src="/admin/js/webflow.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
{{end}}
|
||||||
|
`
|
11
Admin/Variables.go
Normal file
11
Admin/Variables.go
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
package Admin
|
||||||
|
|
||||||
|
import (
|
||||||
|
LM "github.com/SommerEngineering/Ocean/Log/Meta"
|
||||||
|
"html/template"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
AdminTemplates *template.Template = nil // The admin templates
|
||||||
|
senderName LM.Sender = `System::Admin` // This is the name for logging event from this package
|
||||||
|
)
|
@ -1,10 +1,11 @@
|
|||||||
package Web
|
package Web
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/SommerEngineering/Ocean/Admin"
|
||||||
|
"github.com/SommerEngineering/Ocean/Admin/Scheme"
|
||||||
"github.com/SommerEngineering/Ocean/Log"
|
"github.com/SommerEngineering/Ocean/Log"
|
||||||
"github.com/SommerEngineering/Ocean/Log/DeviceDatabase"
|
"github.com/SommerEngineering/Ocean/Log/DeviceDatabase"
|
||||||
LM "github.com/SommerEngineering/Ocean/Log/Meta"
|
LM "github.com/SommerEngineering/Ocean/Log/Meta"
|
||||||
"github.com/SommerEngineering/Ocean/Log/Web/Scheme"
|
|
||||||
"github.com/SommerEngineering/Ocean/MimeTypes"
|
"github.com/SommerEngineering/Ocean/MimeTypes"
|
||||||
"github.com/SommerEngineering/Ocean/Shutdown"
|
"github.com/SommerEngineering/Ocean/Shutdown"
|
||||||
"net/http"
|
"net/http"
|
||||||
@ -26,7 +27,7 @@ func HandlerWebLog(response http.ResponseWriter, request *http.Request) {
|
|||||||
|
|
||||||
// Setup the data for the HTML template:
|
// Setup the data for the HTML template:
|
||||||
data := Scheme.Viewer{}
|
data := Scheme.Viewer{}
|
||||||
data.Title = `Web Log Viewer`
|
data.Title = `Logging Viewer`
|
||||||
data.Sender = DeviceDatabase.ReadSenderNames()
|
data.Sender = DeviceDatabase.ReadSenderNames()
|
||||||
data.MessageNames = DeviceDatabase.ReadMessageNames()
|
data.MessageNames = DeviceDatabase.ReadMessageNames()
|
||||||
|
|
||||||
@ -99,7 +100,7 @@ func HandlerWebLog(response http.ResponseWriter, request *http.Request) {
|
|||||||
|
|
||||||
// Write the MIME type and execute the template:
|
// Write the MIME type and execute the template:
|
||||||
MimeTypes.Write2HTTP(response, MimeTypes.TypeWebHTML)
|
MimeTypes.Write2HTTP(response, MimeTypes.TypeWebHTML)
|
||||||
if executeError := templates.ExecuteTemplate(response, `WebLog`, data); executeError != nil {
|
if executeError := Admin.AdminTemplates.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())
|
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())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,8 +3,6 @@ package Web
|
|||||||
import (
|
import (
|
||||||
"github.com/SommerEngineering/Ocean/Log"
|
"github.com/SommerEngineering/Ocean/Log"
|
||||||
LM "github.com/SommerEngineering/Ocean/Log/Meta"
|
LM "github.com/SommerEngineering/Ocean/Log/Meta"
|
||||||
WebTemp "github.com/SommerEngineering/Ocean/Log/Web/Templates"
|
|
||||||
"html/template"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// The init function for this package.
|
// The init function for this package.
|
||||||
@ -12,10 +10,4 @@ func init() {
|
|||||||
|
|
||||||
Log.LogShort(senderName, LM.CategorySYSTEM, LM.LevelINFO, LM.MessageNameINIT, `Init the web log.`)
|
Log.LogShort(senderName, LM.CategorySYSTEM, LM.LevelINFO, LM.MessageNameINIT, `Init the web log.`)
|
||||||
defer Log.LogShort(senderName, LM.CategorySYSTEM, LM.LevelINFO, LM.MessageNameINIT, `Init the web log done.`)
|
defer Log.LogShort(senderName, LM.CategorySYSTEM, LM.LevelINFO, LM.MessageNameINIT, `Init the web log done.`)
|
||||||
|
|
||||||
// Create the cache of all web logging templates:
|
|
||||||
templates = template.New(`root`)
|
|
||||||
if _, err := templates.Parse(WebTemp.Viewer); err != nil {
|
|
||||||
Log.LogFull(senderName, LM.CategorySYSTEM, LM.LevelERROR, LM.SeverityCritical, LM.ImpactUnknown, LM.MessageNamePARSE, `Was not able to parse the template for the web log viewer.`, err.Error())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -2,8 +2,8 @@ package Web
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"github.com/SommerEngineering/Ocean/Admin/Scheme"
|
||||||
"github.com/SommerEngineering/Ocean/Log/DeviceDatabase"
|
"github.com/SommerEngineering/Ocean/Log/DeviceDatabase"
|
||||||
"github.com/SommerEngineering/Ocean/Log/Web/Scheme"
|
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -2,8 +2,8 @@ package Web
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"github.com/SommerEngineering/Ocean/Admin/Scheme"
|
||||||
"github.com/SommerEngineering/Ocean/Log/DeviceDatabase"
|
"github.com/SommerEngineering/Ocean/Log/DeviceDatabase"
|
||||||
"github.com/SommerEngineering/Ocean/Log/Web/Scheme"
|
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -2,10 +2,8 @@ package Web
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
LM "github.com/SommerEngineering/Ocean/Log/Meta"
|
LM "github.com/SommerEngineering/Ocean/Log/Meta"
|
||||||
"html/template"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
templates *template.Template = nil // The web logging templates
|
senderName LM.Sender = `System::WebLog` // This is the name for logging event from this package
|
||||||
senderName LM.Sender = `System::WebLog` // This is the name for logging event from this package
|
|
||||||
)
|
)
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package System
|
package System
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/SommerEngineering/Ocean/Admin"
|
||||||
"github.com/SommerEngineering/Ocean/BinaryAssets"
|
"github.com/SommerEngineering/Ocean/BinaryAssets"
|
||||||
"github.com/SommerEngineering/Ocean/ConfigurationDB"
|
"github.com/SommerEngineering/Ocean/ConfigurationDB"
|
||||||
"github.com/SommerEngineering/Ocean/Handlers"
|
"github.com/SommerEngineering/Ocean/Handlers"
|
||||||
@ -51,17 +52,20 @@ func InitHandlers() {
|
|||||||
// Handler for binary assets, used for the admin pages:
|
// Handler for binary assets, used for the admin pages:
|
||||||
Handlers.AddAdminHandler(`/binaryAssets/`, BinaryAssets.HandlerBinaryAssets)
|
Handlers.AddAdminHandler(`/binaryAssets/`, BinaryAssets.HandlerBinaryAssets)
|
||||||
|
|
||||||
|
// Handler for the admin's overview:
|
||||||
|
Handlers.AddAdminHandler(`/`, Admin.HandlerOverview)
|
||||||
|
|
||||||
// Handler for the web logging:
|
// Handler for the web logging:
|
||||||
Handlers.AddAdminHandler(`/log`, Web.HandlerWebLog)
|
Handlers.AddAdminHandler(`/log`, Web.HandlerWebLog)
|
||||||
|
|
||||||
// Handler for the web logging's CSS and JS:
|
// Handler for the web logging's CSS and JS:
|
||||||
Handlers.AddAdminHandler(`/log/css/normalize.css`, Web.HandlerCSSNormalize)
|
Handlers.AddAdminHandler(`/admin/css/normalize.css`, Admin.HandlerCSSNormalize)
|
||||||
Handlers.AddAdminHandler(`/log/css/webflow.css`, Web.HandlerCSSWebflow)
|
Handlers.AddAdminHandler(`/admin/css/webflow.css`, Admin.HandlerCSSWebflow)
|
||||||
Handlers.AddAdminHandler(`/log/css/log.css`, Web.HandlerCSSLog)
|
Handlers.AddAdminHandler(`/admin/css/admin.css`, Admin.HandlerCSSAdmin)
|
||||||
Handlers.AddAdminHandler(`/log/js/modernizr.js`, Web.HandlerJSModernizr)
|
Handlers.AddAdminHandler(`/admin/js/modernizr.js`, Admin.HandlerJSModernizr)
|
||||||
Handlers.AddAdminHandler(`/log/js/jquery.min.js`, Web.HandlerJSjQuery)
|
Handlers.AddAdminHandler(`/admin/js/jquery.min.js`, Admin.HandlerJSjQuery)
|
||||||
Handlers.AddAdminHandler(`/log/js/jquery.min.map`, Web.HandlerJSjQueryMap)
|
Handlers.AddAdminHandler(`/admin/js/jquery.min.map`, Admin.HandlerJSjQueryMap)
|
||||||
Handlers.AddAdminHandler(`/log/js/webflow.js`, Web.HandlerJSWebflow)
|
Handlers.AddAdminHandler(`/admin/js/webflow.js`, Admin.HandlerJSWebflow)
|
||||||
|
|
||||||
// Are the static files mapped to the public?
|
// Are the static files mapped to the public?
|
||||||
if ConfigurationDB.Read(`MapStaticFiles2Root`) == "true" {
|
if ConfigurationDB.Read(`MapStaticFiles2Root`) == "true" {
|
||||||
|
Loading…
Reference in New Issue
Block a user