Compare commits
No commits in common. "9689283c0e763d5ceaf6839d38cdbe8a76e28654" and "1215b13d4746ee30fe9d95921f976ee717be29a9" have entirely different histories.
9689283c0e
...
1215b13d47
2
main.go
2
main.go
@ -29,7 +29,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
const VERSION = "v33"
|
const VERSION = "v32"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
logger *slog.Logger
|
logger *slog.Logger
|
||||||
|
@ -49,9 +49,7 @@ dialog,
|
|||||||
#acknowledged-list,
|
#acknowledged-list,
|
||||||
#values,
|
#values,
|
||||||
#services,
|
#services,
|
||||||
#notifications,
|
#notifications {
|
||||||
#group,
|
|
||||||
.table {
|
|
||||||
background-color: #fff !important;
|
background-color: #fff !important;
|
||||||
border: 1px solid #ddd;
|
border: 1px solid #ddd;
|
||||||
box-shadow: 5px 5px 8px 0px rgba(0, 0, 0, 0.25);
|
box-shadow: 5px 5px 8px 0px rgba(0, 0, 0, 0.25);
|
||||||
|
@ -1,28 +1,3 @@
|
|||||||
.table {
|
|
||||||
display: grid;
|
|
||||||
grid-gap: 6px 16px;
|
|
||||||
align-items: center;
|
|
||||||
margin-top: 32px;
|
|
||||||
margin-bottom: 32px;
|
|
||||||
background-color: #2979b8;
|
|
||||||
padding: 16px 24px;
|
|
||||||
width: min-content;
|
|
||||||
border-top-left-radius: 8px;
|
|
||||||
border-top-right-radius: 8px;
|
|
||||||
}
|
|
||||||
.table .row {
|
|
||||||
grid-column: 1 / -1;
|
|
||||||
}
|
|
||||||
.table > div {
|
|
||||||
white-space: nowrap;
|
|
||||||
line-height: 24px;
|
|
||||||
}
|
|
||||||
.table .header {
|
|
||||||
font-size: 0.85em;
|
|
||||||
font-weight: bold;
|
|
||||||
color: #7bb8eb;
|
|
||||||
line-height: unset !important;
|
|
||||||
}
|
|
||||||
html {
|
html {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
@ -258,34 +233,42 @@ label {
|
|||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
}
|
}
|
||||||
#time-selector {
|
#time-selector {
|
||||||
position: absolute;
|
|
||||||
top: 16px;
|
|
||||||
right: 16px;
|
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 8px repeat(2, min-content) 8px 1px 8px repeat(3, min-content) 8px repeat(3, min-content) 8px 1px 8px repeat(2, min-content) 8px;
|
grid-template-columns: min-content min-content;
|
||||||
grid-gap: 6px 8px;
|
grid-gap: 6px 16px;
|
||||||
align-items: center;
|
|
||||||
width: min-content;
|
width: min-content;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
border: 1px solid #2979b8;
|
border: 1px solid #2979b8;
|
||||||
|
padding: 16px;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
}
|
}
|
||||||
#time-selector.hidden {
|
#time-selector.hidden {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
#time-selector .vertical-line {
|
|
||||||
background-color: #2979b8;
|
|
||||||
}
|
|
||||||
#time-selector .header {
|
|
||||||
padding-top: 12px;
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 0.85em;
|
|
||||||
}
|
|
||||||
#time-selector button {
|
#time-selector button {
|
||||||
width: 100px;
|
width: 100px;
|
||||||
margin-top: 12px;
|
margin-top: 12px;
|
||||||
justify-self: end;
|
justify-self: end;
|
||||||
}
|
}
|
||||||
#time-selector div {
|
#time-selector #time-filter {
|
||||||
white-space: nowrap;
|
display: grid;
|
||||||
|
grid-template-columns: min-content repeat(3, min-content);
|
||||||
|
grid-gap: 16px;
|
||||||
|
margin-top: 16px;
|
||||||
|
align-items: center;
|
||||||
|
justify-items: center;
|
||||||
|
}
|
||||||
|
#time-selector #time-filter .header-1 {
|
||||||
|
font-weight: bold;
|
||||||
|
justify-self: start;
|
||||||
|
}
|
||||||
|
#time-selector #time-filter .header-2 {
|
||||||
|
font-weight: bold;
|
||||||
|
justify-self: start;
|
||||||
|
grid-column: 2 / -1;
|
||||||
|
}
|
||||||
|
#time-selector #time-filter .preset {
|
||||||
|
white-space: nowrap;
|
||||||
|
justify-self: start;
|
||||||
|
padding-right: 32px;
|
||||||
}
|
}
|
||||||
|
@ -1,45 +1,61 @@
|
|||||||
#problems-list,
|
#problems-list,
|
||||||
#acknowledged-list {
|
#acknowledged-list {
|
||||||
grid-template-columns: repeat(7, min-content);
|
display: grid;
|
||||||
|
grid-template-columns: repeat(6, min-content);
|
||||||
|
grid-gap: 4px 16px;
|
||||||
|
margin-top: 32px;
|
||||||
|
margin-bottom: 32px;
|
||||||
|
background-color: #2979b8;
|
||||||
|
padding: 16px 24px;
|
||||||
|
width: min-content;
|
||||||
|
border-top-left-radius: 8px;
|
||||||
|
border-top-right-radius: 8px;
|
||||||
|
}
|
||||||
|
#problems-list div,
|
||||||
|
#acknowledged-list div {
|
||||||
|
white-space: nowrap;
|
||||||
|
line-height: 24px;
|
||||||
|
}
|
||||||
|
#problems-list .header,
|
||||||
|
#acknowledged-list .header {
|
||||||
|
font-weight: 800;
|
||||||
|
color: #7bb8eb;
|
||||||
}
|
}
|
||||||
#problems-list .trigger,
|
#problems-list .trigger,
|
||||||
#acknowledged-list .trigger {
|
#acknowledged-list .trigger {
|
||||||
color: #1b4e78;
|
color: #1b4e78;
|
||||||
|
font-weight: 800;
|
||||||
}
|
}
|
||||||
#problems-list img.acknowledge,
|
#problems-list .acknowledge img,
|
||||||
#acknowledged-list img.acknowledge {
|
#acknowledged-list .acknowledge img {
|
||||||
height: 16px;
|
height: 16px;
|
||||||
}
|
}
|
||||||
#problems-list .info,
|
#problems-list .info,
|
||||||
#acknowledged-list .info {
|
#acknowledged-list .info {
|
||||||
margin-right: 8px;
|
margin-right: 8px;
|
||||||
}
|
}
|
||||||
#problems-list .icons,
|
|
||||||
#acknowledged-list .icons {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: min-content min-content;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
#acknowledged-list.hidden {
|
#acknowledged-list.hidden {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
#area-grouped {
|
#areas {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: 24px;
|
gap: 24px;
|
||||||
margin-top: 16px;
|
margin-top: 16px;
|
||||||
align-items: flex-start;
|
|
||||||
}
|
}
|
||||||
#area-grouped .area {
|
#areas .area .section {
|
||||||
grid-template-columns: repeat(5, min-content);
|
display: grid;
|
||||||
|
grid-template-columns: repeat(4, min-content);
|
||||||
|
grid-gap: 8px 12px;
|
||||||
}
|
}
|
||||||
#area-grouped .area .section {
|
#areas .area .section .name {
|
||||||
padding: 4px 10px;
|
color: #000;
|
||||||
border-radius: 5px;
|
grid-column: 1 / -1;
|
||||||
background: #2979b8;
|
font-weight: bold !important;
|
||||||
color: #fff;
|
line-height: 24px;
|
||||||
width: min-content;
|
}
|
||||||
margin-bottom: 8px;
|
#areas .area .section div {
|
||||||
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
.hidden {
|
.hidden {
|
||||||
display: none;
|
display: none;
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
.table {
|
|
||||||
display: grid;
|
|
||||||
grid-gap: 6px 16px;
|
|
||||||
align-items: center;
|
|
||||||
margin-top: 32px;
|
|
||||||
margin-bottom: 32px;
|
|
||||||
background-color: #2979b8;
|
|
||||||
padding: 16px 24px;
|
|
||||||
width: min-content;
|
|
||||||
border-top-left-radius: 8px;
|
|
||||||
border-top-right-radius: 8px;
|
|
||||||
}
|
|
||||||
.table .row {
|
|
||||||
grid-column: 1 / -1;
|
|
||||||
}
|
|
||||||
.table > div {
|
|
||||||
white-space: nowrap;
|
|
||||||
line-height: 24px;
|
|
||||||
}
|
|
||||||
.table .header {
|
|
||||||
font-size: 0.85em;
|
|
||||||
font-weight: bold;
|
|
||||||
color: #7bb8eb;
|
|
||||||
line-height: unset !important;
|
|
||||||
}
|
|
@ -49,9 +49,7 @@ dialog,
|
|||||||
#acknowledged-list,
|
#acknowledged-list,
|
||||||
#values,
|
#values,
|
||||||
#services,
|
#services,
|
||||||
#notifications,
|
#notifications {
|
||||||
#group,
|
|
||||||
.table {
|
|
||||||
background-color: #fff !important;
|
background-color: #fff !important;
|
||||||
border: 1px solid #ddd;
|
border: 1px solid #ddd;
|
||||||
box-shadow: 5px 5px 8px 0px rgba(0, 0, 0, 0.25);
|
box-shadow: 5px 5px 8px 0px rgba(0, 0, 0, 0.25);
|
||||||
|
@ -1,28 +1,3 @@
|
|||||||
.table {
|
|
||||||
display: grid;
|
|
||||||
grid-gap: 6px 16px;
|
|
||||||
align-items: center;
|
|
||||||
margin-top: 32px;
|
|
||||||
margin-bottom: 32px;
|
|
||||||
background-color: #333;
|
|
||||||
padding: 16px 24px;
|
|
||||||
width: min-content;
|
|
||||||
border-top-left-radius: 8px;
|
|
||||||
border-top-right-radius: 8px;
|
|
||||||
}
|
|
||||||
.table .row {
|
|
||||||
grid-column: 1 / -1;
|
|
||||||
}
|
|
||||||
.table > div {
|
|
||||||
white-space: nowrap;
|
|
||||||
line-height: 24px;
|
|
||||||
}
|
|
||||||
.table .header {
|
|
||||||
font-size: 0.85em;
|
|
||||||
font-weight: bold;
|
|
||||||
color: #777;
|
|
||||||
line-height: unset !important;
|
|
||||||
}
|
|
||||||
html {
|
html {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
@ -258,34 +233,42 @@ label {
|
|||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
}
|
}
|
||||||
#time-selector {
|
#time-selector {
|
||||||
position: absolute;
|
|
||||||
top: 16px;
|
|
||||||
right: 16px;
|
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 8px repeat(2, min-content) 8px 1px 8px repeat(3, min-content) 8px repeat(3, min-content) 8px 1px 8px repeat(2, min-content) 8px;
|
grid-template-columns: min-content min-content;
|
||||||
grid-gap: 6px 8px;
|
grid-gap: 6px 16px;
|
||||||
align-items: center;
|
|
||||||
width: min-content;
|
width: min-content;
|
||||||
background-color: #282828;
|
background-color: #282828;
|
||||||
border: 1px solid #333;
|
border: 1px solid #333;
|
||||||
|
padding: 16px;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
}
|
}
|
||||||
#time-selector.hidden {
|
#time-selector.hidden {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
#time-selector .vertical-line {
|
|
||||||
background-color: #333;
|
|
||||||
}
|
|
||||||
#time-selector .header {
|
|
||||||
padding-top: 12px;
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 0.85em;
|
|
||||||
}
|
|
||||||
#time-selector button {
|
#time-selector button {
|
||||||
width: 100px;
|
width: 100px;
|
||||||
margin-top: 12px;
|
margin-top: 12px;
|
||||||
justify-self: end;
|
justify-self: end;
|
||||||
}
|
}
|
||||||
#time-selector div {
|
#time-selector #time-filter {
|
||||||
white-space: nowrap;
|
display: grid;
|
||||||
|
grid-template-columns: min-content repeat(3, min-content);
|
||||||
|
grid-gap: 16px;
|
||||||
|
margin-top: 16px;
|
||||||
|
align-items: center;
|
||||||
|
justify-items: center;
|
||||||
|
}
|
||||||
|
#time-selector #time-filter .header-1 {
|
||||||
|
font-weight: bold;
|
||||||
|
justify-self: start;
|
||||||
|
}
|
||||||
|
#time-selector #time-filter .header-2 {
|
||||||
|
font-weight: bold;
|
||||||
|
justify-self: start;
|
||||||
|
grid-column: 2 / -1;
|
||||||
|
}
|
||||||
|
#time-selector #time-filter .preset {
|
||||||
|
white-space: nowrap;
|
||||||
|
justify-self: start;
|
||||||
|
padding-right: 32px;
|
||||||
}
|
}
|
||||||
|
@ -1,45 +1,61 @@
|
|||||||
#problems-list,
|
#problems-list,
|
||||||
#acknowledged-list {
|
#acknowledged-list {
|
||||||
grid-template-columns: repeat(7, min-content);
|
display: grid;
|
||||||
|
grid-template-columns: repeat(6, min-content);
|
||||||
|
grid-gap: 4px 16px;
|
||||||
|
margin-top: 32px;
|
||||||
|
margin-bottom: 32px;
|
||||||
|
background-color: #333;
|
||||||
|
padding: 16px 24px;
|
||||||
|
width: min-content;
|
||||||
|
border-top-left-radius: 8px;
|
||||||
|
border-top-right-radius: 8px;
|
||||||
|
}
|
||||||
|
#problems-list div,
|
||||||
|
#acknowledged-list div {
|
||||||
|
white-space: nowrap;
|
||||||
|
line-height: 24px;
|
||||||
|
}
|
||||||
|
#problems-list .header,
|
||||||
|
#acknowledged-list .header {
|
||||||
|
font-weight: 800;
|
||||||
|
color: #777;
|
||||||
}
|
}
|
||||||
#problems-list .trigger,
|
#problems-list .trigger,
|
||||||
#acknowledged-list .trigger {
|
#acknowledged-list .trigger {
|
||||||
color: #fb4934;
|
color: #fb4934;
|
||||||
|
font-weight: 800;
|
||||||
}
|
}
|
||||||
#problems-list img.acknowledge,
|
#problems-list .acknowledge img,
|
||||||
#acknowledged-list img.acknowledge {
|
#acknowledged-list .acknowledge img {
|
||||||
height: 16px;
|
height: 16px;
|
||||||
}
|
}
|
||||||
#problems-list .info,
|
#problems-list .info,
|
||||||
#acknowledged-list .info {
|
#acknowledged-list .info {
|
||||||
margin-right: 8px;
|
margin-right: 8px;
|
||||||
}
|
}
|
||||||
#problems-list .icons,
|
|
||||||
#acknowledged-list .icons {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: min-content min-content;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
#acknowledged-list.hidden {
|
#acknowledged-list.hidden {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
#area-grouped {
|
#areas {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: 24px;
|
gap: 24px;
|
||||||
margin-top: 16px;
|
margin-top: 16px;
|
||||||
align-items: flex-start;
|
|
||||||
}
|
}
|
||||||
#area-grouped .area {
|
#areas .area .section {
|
||||||
grid-template-columns: repeat(5, min-content);
|
display: grid;
|
||||||
|
grid-template-columns: repeat(4, min-content);
|
||||||
|
grid-gap: 8px 12px;
|
||||||
}
|
}
|
||||||
#area-grouped .area .section {
|
#areas .area .section .name {
|
||||||
padding: 4px 10px;
|
color: #f7edd7;
|
||||||
border-radius: 5px;
|
grid-column: 1 / -1;
|
||||||
background: #333;
|
font-weight: bold !important;
|
||||||
color: #fff;
|
line-height: 24px;
|
||||||
width: min-content;
|
}
|
||||||
margin-bottom: 8px;
|
#areas .area .section div {
|
||||||
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
.hidden {
|
.hidden {
|
||||||
display: none;
|
display: none;
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
.table {
|
|
||||||
display: grid;
|
|
||||||
grid-gap: 6px 16px;
|
|
||||||
align-items: center;
|
|
||||||
margin-top: 32px;
|
|
||||||
margin-bottom: 32px;
|
|
||||||
background-color: #333;
|
|
||||||
padding: 16px 24px;
|
|
||||||
width: min-content;
|
|
||||||
border-top-left-radius: 8px;
|
|
||||||
border-top-right-radius: 8px;
|
|
||||||
}
|
|
||||||
.table .row {
|
|
||||||
grid-column: 1 / -1;
|
|
||||||
}
|
|
||||||
.table > div {
|
|
||||||
white-space: nowrap;
|
|
||||||
line-height: 24px;
|
|
||||||
}
|
|
||||||
.table .header {
|
|
||||||
font-size: 0.85em;
|
|
||||||
font-weight: bold;
|
|
||||||
color: #777;
|
|
||||||
line-height: unset !important;
|
|
||||||
}
|
|
@ -1,67 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
width="20.000002"
|
|
||||||
height="20.000013"
|
|
||||||
viewBox="0 0 5.291667 5.2916703"
|
|
||||||
version="1.1"
|
|
||||||
id="svg8"
|
|
||||||
inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)"
|
|
||||||
sodipodi:docname="ok.svg"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
|
||||||
<defs
|
|
||||||
id="defs2" />
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="2.9208594"
|
|
||||||
inkscape:cx="9.7574023"
|
|
||||||
inkscape:cy="10.27095"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer1"
|
|
||||||
showgrid="false"
|
|
||||||
units="px"
|
|
||||||
inkscape:window-width="2190"
|
|
||||||
inkscape:window-height="1404"
|
|
||||||
inkscape:window-x="1463"
|
|
||||||
inkscape:window-y="16"
|
|
||||||
inkscape:window-maximized="0"
|
|
||||||
inkscape:showpageshadow="true"
|
|
||||||
inkscape:pagecheckerboard="0"
|
|
||||||
inkscape:deskcolor="#d6d6d6"
|
|
||||||
showborder="true" />
|
|
||||||
<metadata
|
|
||||||
id="metadata5">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:label="Layer 1"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1"
|
|
||||||
transform="translate(-90.222917,-148.43125)">
|
|
||||||
<title
|
|
||||||
id="title1">check-circle</title>
|
|
||||||
<path
|
|
||||||
d="m 92.86875,148.43125 c -1.455208,0 -2.645833,1.19063 -2.645833,2.64583 0,1.45521 1.190625,2.64584 2.645833,2.64584 1.455209,0 2.645834,-1.19063 2.645834,-2.64584 0,-1.4552 -1.190625,-2.64583 -2.645834,-2.64583 m -0.529166,3.96875 -1.322917,-1.32292 0.373062,-0.37306 0.949855,0.94721 2.008187,-2.00819 0.373063,0.37571 z"
|
|
||||||
id="path1"
|
|
||||||
style="fill:#aad400;stroke-width:0.264583" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.2 KiB |
@ -1,68 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
width="23.157846"
|
|
||||||
height="20.000013"
|
|
||||||
viewBox="0 0 6.1271801 5.2916704"
|
|
||||||
version="1.1"
|
|
||||||
id="svg8"
|
|
||||||
inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)"
|
|
||||||
sodipodi:docname="warning.svg"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
|
||||||
<defs
|
|
||||||
id="defs2" />
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="22.627417"
|
|
||||||
inkscape:cx="9.3028736"
|
|
||||||
inkscape:cy="12.772116"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer1"
|
|
||||||
showgrid="false"
|
|
||||||
units="px"
|
|
||||||
inkscape:window-width="2190"
|
|
||||||
inkscape:window-height="1404"
|
|
||||||
inkscape:window-x="1463"
|
|
||||||
inkscape:window-y="16"
|
|
||||||
inkscape:window-maximized="0"
|
|
||||||
inkscape:showpageshadow="true"
|
|
||||||
inkscape:pagecheckerboard="0"
|
|
||||||
inkscape:deskcolor="#d6d6d6"
|
|
||||||
showborder="true" />
|
|
||||||
<metadata
|
|
||||||
id="metadata5">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:label="Layer 1"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1"
|
|
||||||
transform="translate(-123.825,-155.04583)">
|
|
||||||
<title
|
|
||||||
id="title1">alert</title>
|
|
||||||
<path
|
|
||||||
d="m 127.21387,158.38793 h -0.65056 v -1.39253 h 0.65056 m 0,2.50657 h -0.65056 v -0.55701 h 0.65056 m -3.38887,1.39254 h 6.12718 l -3.06358,-5.29167 z"
|
|
||||||
id="path1"
|
|
||||||
style="fill:#ff9800;fill-opacity:1;stroke-width:0.278508"
|
|
||||||
sodipodi:nodetypes="cccccccccccc" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.1 KiB |
@ -1,67 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
width="20.000002"
|
|
||||||
height="20.000013"
|
|
||||||
viewBox="0 0 5.291667 5.2916703"
|
|
||||||
version="1.1"
|
|
||||||
id="svg8"
|
|
||||||
inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)"
|
|
||||||
sodipodi:docname="ok.svg"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
|
||||||
<defs
|
|
||||||
id="defs2" />
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="2.9208594"
|
|
||||||
inkscape:cx="9.7574023"
|
|
||||||
inkscape:cy="10.27095"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer1"
|
|
||||||
showgrid="false"
|
|
||||||
units="px"
|
|
||||||
inkscape:window-width="2190"
|
|
||||||
inkscape:window-height="1404"
|
|
||||||
inkscape:window-x="1463"
|
|
||||||
inkscape:window-y="16"
|
|
||||||
inkscape:window-maximized="0"
|
|
||||||
inkscape:showpageshadow="true"
|
|
||||||
inkscape:pagecheckerboard="0"
|
|
||||||
inkscape:deskcolor="#d6d6d6"
|
|
||||||
showborder="true" />
|
|
||||||
<metadata
|
|
||||||
id="metadata5">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:label="Layer 1"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1"
|
|
||||||
transform="translate(-90.222917,-148.43125)">
|
|
||||||
<title
|
|
||||||
id="title1">check-circle</title>
|
|
||||||
<path
|
|
||||||
d="m 92.86875,148.43125 c -1.455208,0 -2.645833,1.19063 -2.645833,2.64583 0,1.45521 1.190625,2.64584 2.645833,2.64584 1.455209,0 2.645834,-1.19063 2.645834,-2.64584 0,-1.4552 -1.190625,-2.64583 -2.645834,-2.64583 m -0.529166,3.96875 -1.322917,-1.32292 0.373062,-0.37306 0.949855,0.94721 2.008187,-2.00819 0.373063,0.37571 z"
|
|
||||||
id="path1"
|
|
||||||
style="fill:#aad400;stroke-width:0.264583" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.2 KiB |
@ -1,68 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
width="23.157846"
|
|
||||||
height="20.000013"
|
|
||||||
viewBox="0 0 6.1271801 5.2916704"
|
|
||||||
version="1.1"
|
|
||||||
id="svg8"
|
|
||||||
inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)"
|
|
||||||
sodipodi:docname="warning.svg"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
|
||||||
<defs
|
|
||||||
id="defs2" />
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="22.627417"
|
|
||||||
inkscape:cx="9.3028736"
|
|
||||||
inkscape:cy="12.772116"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer1"
|
|
||||||
showgrid="false"
|
|
||||||
units="px"
|
|
||||||
inkscape:window-width="2190"
|
|
||||||
inkscape:window-height="1404"
|
|
||||||
inkscape:window-x="1463"
|
|
||||||
inkscape:window-y="16"
|
|
||||||
inkscape:window-maximized="0"
|
|
||||||
inkscape:showpageshadow="true"
|
|
||||||
inkscape:pagecheckerboard="0"
|
|
||||||
inkscape:deskcolor="#d6d6d6"
|
|
||||||
showborder="true" />
|
|
||||||
<metadata
|
|
||||||
id="metadata5">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:label="Layer 1"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1"
|
|
||||||
transform="translate(-123.825,-155.04583)">
|
|
||||||
<title
|
|
||||||
id="title1">alert</title>
|
|
||||||
<path
|
|
||||||
d="m 127.21387,158.38793 h -0.65056 v -1.39253 h 0.65056 m 0,2.50657 h -0.65056 v -0.55701 h 0.65056 m -3.38887,1.39254 h 6.12718 l -3.06358,-5.29167 z"
|
|
||||||
id="path1"
|
|
||||||
style="fill:#ff9800;fill-opacity:1;stroke-width:0.278508"
|
|
||||||
sodipodi:nodetypes="cccccccccccc" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.1 KiB |
@ -62,7 +62,7 @@ dialog {
|
|||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
dialog, #datapoints, #problems-list, #acknowledged-list, #values, #services, #notifications, #group, .table {
|
dialog, #datapoints, #problems-list, #acknowledged-list, #values, #services, #notifications {
|
||||||
background-color: #fff !important;
|
background-color: #fff !important;
|
||||||
border: 1px solid #ddd;
|
border: 1px solid #ddd;
|
||||||
box-shadow: 5px 5px 8px 0px rgba(0,0,0,0.25);
|
box-shadow: 5px 5px 8px 0px rgba(0,0,0,0.25);
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
@import "theme-@{THEME}.less";
|
@import "theme-@{THEME}.less";
|
||||||
@import "table.less";
|
|
||||||
|
|
||||||
html {
|
html {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
@ -291,42 +290,51 @@ label {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#time-selector {
|
#time-selector {
|
||||||
position: absolute;
|
|
||||||
|
|
||||||
top: 16px;
|
|
||||||
right: 16px;
|
|
||||||
|
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 8px repeat(2,min-content) 8px 1px 8px repeat(3,min-content) 8px repeat(3,min-content) 8px 1px 8px repeat(2,min-content) 8px;
|
grid-template-columns: min-content min-content;
|
||||||
grid-gap: 6px 8px;
|
grid-gap: 6px 16px;
|
||||||
align-items: center;
|
|
||||||
|
|
||||||
width: min-content;
|
width: min-content;
|
||||||
background-color: @bg1;
|
background-color: @bg1;
|
||||||
border: 1px solid @bg3;
|
border: 1px solid @bg3;
|
||||||
|
padding: 16px;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
|
|
||||||
&.hidden {
|
&.hidden {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.vertical-line {
|
|
||||||
background-color: @bg3;
|
|
||||||
}
|
|
||||||
|
|
||||||
.header {
|
|
||||||
padding-top: 12px;
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 0.85em;
|
|
||||||
}
|
|
||||||
|
|
||||||
button {
|
button {
|
||||||
width: 100px;
|
width: 100px;
|
||||||
margin-top: 12px;
|
margin-top: 12px;
|
||||||
justify-self: end;
|
justify-self: end;
|
||||||
}
|
}
|
||||||
|
|
||||||
div {
|
#time-filter {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: min-content repeat(3, min-content);
|
||||||
|
grid-gap: 16px;
|
||||||
|
margin-top: 16px;
|
||||||
|
|
||||||
|
align-items: center;
|
||||||
|
justify-items: center;
|
||||||
|
|
||||||
|
.header-1 {
|
||||||
|
font-weight: bold;
|
||||||
|
justify-self: start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header-2 {
|
||||||
|
font-weight: bold;
|
||||||
|
justify-self: start;
|
||||||
|
grid-column: ~"2 / -1";
|
||||||
|
}
|
||||||
|
|
||||||
|
.preset {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
justify-self: start;
|
||||||
|
padding-right: 32px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -1,48 +1,69 @@
|
|||||||
@import "theme-@{THEME}.less";
|
@import "theme-@{THEME}.less";
|
||||||
|
|
||||||
#problems-list, #acknowledged-list {
|
#problems-list, #acknowledged-list {
|
||||||
grid-template-columns: repeat(7, min-content);
|
display: grid;
|
||||||
|
grid-template-columns: repeat(6, min-content);
|
||||||
|
grid-gap: 4px 16px;
|
||||||
|
margin-top: 32px;
|
||||||
|
margin-bottom: 32px;
|
||||||
|
background-color: @bg3;
|
||||||
|
padding: 16px 24px;
|
||||||
|
width: min-content;
|
||||||
|
border-top-left-radius: 8px;
|
||||||
|
border-top-right-radius: 8px;
|
||||||
|
|
||||||
|
div {
|
||||||
|
white-space: nowrap;
|
||||||
|
line-height: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header {
|
||||||
|
font-weight: @bold;
|
||||||
|
color: @text3;
|
||||||
|
}
|
||||||
|
|
||||||
.trigger {
|
.trigger {
|
||||||
color: @color1;
|
color: @color1;
|
||||||
|
font-weight: @bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
img.acknowledge {
|
.acknowledge {
|
||||||
|
img {
|
||||||
height: 16px;
|
height: 16px;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.info {
|
.info {
|
||||||
margin-right: 8px;
|
margin-right: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.icons {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: min-content min-content;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#acknowledged-list.hidden{
|
#acknowledged-list.hidden{
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
#area-grouped {
|
#areas {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: 24px;
|
gap: 24px;
|
||||||
margin-top: 16px;
|
margin-top: 16px;
|
||||||
align-items: flex-start;
|
|
||||||
|
|
||||||
.area {
|
.area {
|
||||||
grid-template-columns: repeat(5, min-content);
|
|
||||||
|
|
||||||
.section {
|
.section {
|
||||||
padding: 4px 10px;
|
display: grid;
|
||||||
border-radius: 5px;
|
grid-template-columns: repeat(4, min-content);
|
||||||
background: @bg3;
|
grid-gap: 8px 12px;
|
||||||
color: #fff;
|
|
||||||
width: min-content;
|
.name {
|
||||||
margin-bottom: 8px;
|
color: @text2;
|
||||||
|
grid-column: ~"1 / -1";
|
||||||
|
font-weight: bold !important;
|
||||||
|
line-height: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
@import "theme-@{THEME}.less";
|
|
||||||
|
|
||||||
.table {
|
|
||||||
display: grid;
|
|
||||||
grid-gap: 6px 16px;
|
|
||||||
align-items: center;
|
|
||||||
|
|
||||||
.row {
|
|
||||||
grid-column: ~"1 / -1";
|
|
||||||
}
|
|
||||||
|
|
||||||
margin-top: 32px;
|
|
||||||
margin-bottom: 32px;
|
|
||||||
background-color: @bg3;
|
|
||||||
padding: 16px 24px;
|
|
||||||
width: min-content;
|
|
||||||
border-top-left-radius: 8px;
|
|
||||||
border-top-right-radius: 8px;
|
|
||||||
|
|
||||||
& > div {
|
|
||||||
white-space: nowrap;
|
|
||||||
line-height: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.header {
|
|
||||||
font-size: 0.85em;
|
|
||||||
font-weight: bold;
|
|
||||||
color: @text3;
|
|
||||||
line-height: unset !important;
|
|
||||||
}
|
|
||||||
}
|
|
@ -19,96 +19,9 @@
|
|||||||
<input type="hidden" name="time-offset" value=0>
|
<input type="hidden" name="time-offset" value=0>
|
||||||
|
|
||||||
<div id="time-selector">
|
<div id="time-selector">
|
||||||
|
|
||||||
{{/* Row 1 */}}
|
|
||||||
<div></div>
|
|
||||||
<div class="header" style="grid-column: 2 / 4">Date and time</div>
|
|
||||||
|
|
||||||
<div></div>
|
|
||||||
<div class="vertical-line" style="grid-column: 5; grid-row: 1 / 5; height: 100%"> </div>
|
|
||||||
<div></div>
|
|
||||||
|
|
||||||
<div class="header" style="grid-column: 7 / 14">Offsets</div>
|
|
||||||
|
|
||||||
<div></div>
|
|
||||||
<div class="vertical-line" style="grid-column: 15; grid-row: 1 / 5; height: 100%"></div>
|
|
||||||
<div></div>
|
|
||||||
|
|
||||||
<div class="header" style="grid-column: 17 / 19">Presets</div>
|
|
||||||
<div></div>
|
|
||||||
|
|
||||||
|
|
||||||
{{/* Row 2 */}}
|
|
||||||
<div></div>
|
|
||||||
<div>From</div>
|
|
||||||
<input name="time-f" value="{{ .Data.TimeFrom }}" type="datetime-local">
|
|
||||||
|
|
||||||
<div></div>
|
|
||||||
{{/* Vertical line */}}
|
|
||||||
<div></div>
|
|
||||||
|
|
||||||
<div><a href="#" onclick="offsetTime(-3600)">◀</a></div>
|
|
||||||
<div>Hour</div>
|
|
||||||
<div><a href="#" onclick="offsetTime(3600)">▶</a></div>
|
|
||||||
|
|
||||||
<div></div>
|
|
||||||
|
|
||||||
<div><a href="#" onclick="offsetTime(-7 * 86400)">◀</a></div>
|
|
||||||
<div>Week</div>
|
|
||||||
<div><a href="#" onclick="offsetTime(7 * 86400)">▶</a></div>
|
|
||||||
|
|
||||||
<div></div>
|
|
||||||
{{/* Vertical line */}}
|
|
||||||
<div></div>
|
|
||||||
|
|
||||||
<div class="preset">⚫︎ <a href="#" onclick="preset(1)">Last hour</a></div>
|
|
||||||
<div class="preset">⚫︎ <a href="#" onclick="preset(24 * 7)">Last 7 days</a></div>
|
|
||||||
<div></div>
|
|
||||||
|
|
||||||
|
|
||||||
{{/* Row 3 */}}
|
|
||||||
<div></div>
|
|
||||||
<div>To</div>
|
|
||||||
<input name="time-t" value="{{ .Data.TimeTo }}" type="datetime-local">
|
|
||||||
|
|
||||||
<div></div>
|
|
||||||
{{/* Vertical line */}}
|
|
||||||
<div></div>
|
|
||||||
|
|
||||||
<div><a href="#" onclick="offsetTime(-86400)">◀</a></div>
|
|
||||||
<div>Day</div>
|
|
||||||
<div><a href="#" onclick="offsetTime(86400)">▶</a></div>
|
|
||||||
|
|
||||||
<div></div>
|
|
||||||
|
|
||||||
<div><a href="#" onclick="offsetTime(-31 * 86400)">◀</a></div>
|
|
||||||
<div>Month</div>
|
|
||||||
<div><a href="#" onclick="offsetTime(31 * 86400)">▶</a></div>
|
|
||||||
|
|
||||||
<div></div>
|
|
||||||
{{/* Vertical line */}}
|
|
||||||
<div></div>
|
|
||||||
|
|
||||||
<div class="preset">⚫︎ <a href="#" onclick="preset(24)">Last 24 hours</a></div>
|
|
||||||
<div class="preset">⚫︎ <a href="#" onclick="preset(24 * 31)">Last 31 days</a></div>
|
|
||||||
|
|
||||||
<div></div>
|
|
||||||
|
|
||||||
|
|
||||||
{{/* Row 4 */}}
|
|
||||||
<div style="grid-column: 1 / 5; height: 8px"></div>
|
|
||||||
<div style="grid-column: 6 / 15; height: 8px"></div>
|
|
||||||
<div style="grid-column: 16 / 20; height: 8px"></div>
|
|
||||||
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
<div>From</div>
|
<div>From</div>
|
||||||
<div>To</div>
|
<div>To</div>
|
||||||
|
|
||||||
<div></div>
|
|
||||||
<div style="background-color: #f0f;"></div>
|
|
||||||
<div></div>
|
|
||||||
|
|
||||||
<input name="time-f" value="{{ .Data.TimeFrom }}" type="datetime-local">
|
<input name="time-f" value="{{ .Data.TimeFrom }}" type="datetime-local">
|
||||||
<input name="time-t" value="{{ .Data.TimeTo }}" type="datetime-local">
|
<input name="time-t" value="{{ .Data.TimeTo }}" type="datetime-local">
|
||||||
|
|
||||||
@ -136,8 +49,6 @@
|
|||||||
<div><a href="#" onclick="offsetTime(7 * 86400)">▶</a></div>
|
<div><a href="#" onclick="offsetTime(7 * 86400)">▶</a></div>
|
||||||
|
|
||||||
<div class="preset"><a href="#" onclick="preset(24 * 31)">Last 31 days</a></div>
|
<div class="preset"><a href="#" onclick="preset(24 * 31)">Last 31 days</a></div>
|
||||||
<div class="preset"><a href="#" onclick="preset(24)">Last 24 hours</a></div>
|
|
||||||
<div class="preset"><a href="#" onclick="preset(24)">Last 24 hours</a></div>
|
|
||||||
|
|
||||||
<div><a href="#" onclick="offsetTime(-31 * 86400)">◀</a></div>
|
<div><a href="#" onclick="offsetTime(-31 * 86400)">◀</a></div>
|
||||||
<div>Month</div>
|
<div>Month</div>
|
||||||
@ -145,7 +56,6 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button>OK</button>
|
<button>OK</button>
|
||||||
*/}}
|
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
@ -12,7 +12,6 @@
|
|||||||
{{ if eq .Data.Datapoint.Datatype "INT" }}
|
{{ if eq .Data.Datapoint.Datatype "INT" }}
|
||||||
<div style="margin-top: 16px">
|
<div style="margin-top: 16px">
|
||||||
<input onchange="selectDisplay('graph')" name="display" type="radio" id="display-graph" {{ if $graph }} checked {{ end}}> <label for="display-graph">Graph</label>
|
<input onchange="selectDisplay('graph')" name="display" type="radio" id="display-graph" {{ if $graph }} checked {{ end}}> <label for="display-graph">Graph</label>
|
||||||
<br>
|
|
||||||
<input onchange="selectDisplay('list')" name="display" type="radio" id="display-list" {{ if not $graph }} checked {{ end }}> <label for="display-list">List</label>
|
<input onchange="selectDisplay('list')" name="display" type="radio" id="display-list" {{ if not $graph }} checked {{ end }}> <label for="display-list">List</label>
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
@ -10,133 +10,114 @@
|
|||||||
|
|
||||||
{{ block "page_label" . }}{{ end }}
|
{{ block "page_label" . }}{{ end }}
|
||||||
|
|
||||||
<div style="margin-bottom: 16px; display: grid; grid-template-columns: min-content min-content; grid-gap: 32px;">
|
<div style="margin-bottom: 16px">
|
||||||
<div style="white-space: nowrap">
|
<input {{ if eq .Data.Selection "CURRENT" }}checked{{ end }} type="radio" name="selection" id="selection-current" onclick="_ui.selectCurrent()"> <label for="selection-current">Current problems</label>
|
||||||
<b>Problem selection</b><br>
|
<input {{ if eq .Data.Selection "ALL" }}checked{{ end }} type="radio" name="selection" id="selection-all" onclick="_ui.selectAll()"> <label for="selection-all">Time-filtered problems</label>
|
||||||
<input {{ if eq .Data.Selection "CURRENT" }}checked{{ end }} type="radio" name="selection" id="selection-current" onclick="_ui.selectCurrent()"> <label for="selection-current">Current</label>
|
|
||||||
<br>
|
|
||||||
<input {{ if eq .Data.Selection "ALL" }}checked{{ end }} type="radio" name="selection" id="selection-all" onclick="_ui.selectAll()"> <label for="selection-all">All</label>
|
|
||||||
</div>
|
</div>
|
||||||
<div style="white-space: nowrap">
|
|
||||||
<b>Show</b><br>
|
<hr style="margin-bottom: 16px">
|
||||||
|
|
||||||
|
{{ block "timefilter" . }}{{ end }}
|
||||||
|
|
||||||
|
<div style="margin-top: 16px">
|
||||||
<input type="radio" name="display" id="display-table" onclick="_ui.displayAreas()"> <label for="display-table">Areas</label>
|
<input type="radio" name="display" id="display-table" onclick="_ui.displayAreas()"> <label for="display-table">Areas</label>
|
||||||
<br>
|
|
||||||
<input type="radio" name="display" id="display-list" onclick="_ui.displayList()"> <label for="display-list">List</label>
|
<input type="radio" name="display" id="display-list" onclick="_ui.displayList()"> <label for="display-list">List</label>
|
||||||
<div style="margin-top: 8px">
|
<div style="margin-top: 8px">
|
||||||
<input type="checkbox" id="show-acked" onclick="_ui.toggleAcknowledged(event)"> <label for="show-acked">Show acknowledged</label>
|
<input type="checkbox" id="show-acked" onclick="_ui.toggleAcknowledged(event)"> <label for="show-acked">Show acknowledged</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
{{ block "timefilter" . }}{{ end }}
|
|
||||||
|
|
||||||
<div class="display-list hidden">
|
<div class="display-list hidden">
|
||||||
<div id="problems-list" class="table">
|
<div id="problems-list">
|
||||||
<div class="row"><h2>Unacknowledged</h2></div>
|
<div style="grid-column: 1/-1;"><h2>Unacknowledged</h2></div>
|
||||||
|
|
||||||
<div class="header">OK</div>
|
|
||||||
<div class="header">Trigger</div>
|
<div class="header">Trigger</div>
|
||||||
<div class="header">Area</div>
|
<div class="header">Area</div>
|
||||||
<div class="header">Section</div>
|
<div class="header">Section</div>
|
||||||
<div class="header">Since</div>
|
<div class="header">Since</div>
|
||||||
<div class="header">Until</div>
|
|
||||||
<div class="header"></div>
|
|
||||||
|
|
||||||
{{ range .Data.Problems }}
|
{{ range .Data.Problems }}
|
||||||
{{ if .Acknowledged }}
|
{{ if .Acknowledged }}
|
||||||
{{ continue }}
|
{{ continue }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<div class="line"></div>
|
<div class="line"></div>
|
||||||
|
|
||||||
{{/* NODATA datapoints */}}
|
|
||||||
{{ if eq .TriggerID -1 }}
|
{{ if eq .TriggerID -1 }}
|
||||||
<div class="{{ if .Acknowledged }}acked hidden{{ end }}">{{ if .IsArchived }}<img src="/images/{{ $version }}/{{ $theme }}/ok.svg">{{ else }}<img src="/images/{{ $version }}/{{ $theme }}/warning.svg">{{ end }}</div>
|
|
||||||
<div class="trigger">{{ .TriggerName }}</div>
|
<div class="trigger">{{ .TriggerName }}</div>
|
||||||
<div class="area">{{ .AreaName }}</div>
|
<div class="area">{{ .AreaName }}</div>
|
||||||
<div class="section">{{ .SectionName }}</div>
|
<div class="section">{{ .SectionName }}</div>
|
||||||
<div class="start">{{ format_time .Start }}</div>
|
<div class="start"></div>
|
||||||
<div class="end"></div>
|
<div class="acknowledge">
|
||||||
<div class="icons">
|
|
||||||
<img class="info" src="/images/{{ $version }}/{{ $theme }}/info-outline.svg">
|
<img class="info" src="/images/{{ $version }}/{{ $theme }}/info-outline.svg">
|
||||||
<img class="acknowledge" src="/images/{{ $version }}/{{ $theme }}/acknowledge.svg">
|
<img src="/images/{{ $version }}/{{ $theme }}/acknowledge.svg">
|
||||||
</div>
|
</div>
|
||||||
{{ else }}
|
{{ else }}
|
||||||
<div class="{{ if .Acknowledged }}acked hidden{{ end }}">{{ if .IsArchived }}<img src="/images/{{ $version }}/{{ $theme }}/ok.svg">{{ else }}<img src="/images/{{ $version }}/{{ $theme }}/warning.svg">{{ end }}</div>
|
|
||||||
<div class="trigger"><a href="/trigger/edit/{{ .TriggerID }}">{{ .TriggerName }}</a></div>
|
<div class="trigger"><a href="/trigger/edit/{{ .TriggerID }}">{{ .TriggerName }}</a></div>
|
||||||
<div class="area">{{ .AreaName }}</div>
|
<div class="area">{{ .AreaName }}</div>
|
||||||
<div class="section">{{ .SectionName }}</div>
|
<div class="section">{{ .SectionName }}</div>
|
||||||
<div class="start">{{ format_time .Start }}</div>
|
<div class="start">{{ format_time .Start }}</div>
|
||||||
<div class="end">{{ if not .End.IsZero }}{{ format_time .End }}{{ else }}-{{ end }}</div>
|
<div class="acknowledge">
|
||||||
<div class="icons">
|
|
||||||
{{ if .FormattedValues }}
|
{{ if .FormattedValues }}
|
||||||
<img class="info" src="/images/{{ $version }}/{{ $theme }}/info-filled.svg" title="{{ .FormattedValues }}">
|
<img class="info" src="/images/{{ $version }}/{{ $theme }}/info-filled.svg" title="{{ .FormattedValues }}">
|
||||||
{{ else }}
|
{{ else }}
|
||||||
<img class="info" src="/images/{{ $version }}/{{ $theme }}/info-outline.svg">
|
<img class="info" src="/images/{{ $version }}/{{ $theme }}/info-outline.svg">
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
<img class="acknowledge" onclick="location.href = '/problem/acknowledge/{{ .ID }}'" src="/images/{{ $version }}/{{ $theme }}/acknowledge-filled.svg">
|
<a href="/problem/acknowledge/{{ .ID }}">
|
||||||
|
<img src="/images/{{ $version }}/{{ $theme }}/acknowledge-filled.svg">
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="acknowledged-list" class="table hidden">
|
<div id="acknowledged-list" class="hidden">
|
||||||
<div class="row"><h2>Acknowledged</h2></div>
|
<div style="grid-column: 1/-1;"><h2>Acknowledged</h2></div>
|
||||||
|
|
||||||
<div class="header">OK</div>
|
|
||||||
<div class="header">Trigger</div>
|
<div class="header">Trigger</div>
|
||||||
<div class="header">Area</div>
|
<div class="header">Area</div>
|
||||||
<div class="header">Section</div>
|
<div class="header">Section</div>
|
||||||
<div class="header">Since</div>
|
<div class="header">Since</div>
|
||||||
<div class="header">Until</div>
|
|
||||||
<div class="header"></div>
|
|
||||||
|
|
||||||
{{ range .Data.Problems }}
|
{{ range .Data.Problems }}
|
||||||
{{ if not .Acknowledged }}
|
{{ if not .Acknowledged }}
|
||||||
{{ continue }}
|
{{ continue }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<div class="line"></div>
|
<div class="line"></div>
|
||||||
<div class="{{ if .Acknowledged }}acked hidden{{ end }}">{{ if .IsArchived }}<img src="/images/{{ $version }}/{{ $theme }}/ok.svg">{{ else }}<img src="/images/{{ $version }}/{{ $theme }}/warning.svg">{{ end }}</div>
|
|
||||||
<div class="trigger"><a href="/trigger/edit/{{ .TriggerID }}">{{ .TriggerName }}</a></div>
|
<div class="trigger"><a href="/trigger/edit/{{ .TriggerID }}">{{ .TriggerName }}</a></div>
|
||||||
<div class="area">{{ .AreaName }}</div>
|
<div class="area">{{ .AreaName }}</div>
|
||||||
<div class="section">{{ .SectionName }}</div>
|
<div class="section">{{ .SectionName }}</div>
|
||||||
<div class="start">{{ format_time .Start }}</div>
|
<div class="start">{{ format_time .Start }}</div>
|
||||||
<div class="end">{{ if not .End.IsZero }}{{ format_time .End }}{{ else }}-{{ end }}</div>
|
<div class="acknowledge">
|
||||||
<div class="icons">
|
|
||||||
{{ if .FormattedValues }}
|
{{ if .FormattedValues }}
|
||||||
<img class="info" src="/images/{{ $version }}/{{ $theme }}/info-filled.svg" title="{{ .FormattedValues }}">
|
<img class="info" src="/images/{{ $version }}/{{ $theme }}/info-filled.svg" title="{{ .FormattedValues }}">
|
||||||
{{ else }}
|
{{ else }}
|
||||||
<img class="info" src="/images/{{ $version }}/{{ $theme }}/info-outline.svg">
|
<img class="info" src="/images/{{ $version }}/{{ $theme }}/info-outline.svg">
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<img class="acknowledge" onclick="location.href = '/problem/unacknowledge/{{ .ID }}'" src="/images/{{ $version }}/{{ $theme }}/acknowledge-outline.svg">
|
<a href="/problem/unacknowledge/{{ .ID }}"><img src="/images/{{ $version }}/{{ $theme }}/acknowledge-outline.svg"></a>
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="display-areas hidden">
|
<div class="display-areas hidden">
|
||||||
<div id="area-grouped">
|
<div id="areas">
|
||||||
{{ range $areaName, $sections := .Data.ProblemsGrouped }}
|
{{ range $areaName, $sections := .Data.ProblemsGrouped }}
|
||||||
<div class="area table">
|
<div class="area">
|
||||||
<div class="row"><h2>{{ $areaName }}</h2></div>
|
<div class="name">{{ $areaName }}</div>
|
||||||
|
|
||||||
{{ range $sectionName, $problems := $sections }}
|
{{ range $sectionName, $problems := $sections }}
|
||||||
<div class="section row" style="margin-top: 16px; font-weight: bold;">{{ $sectionName }}</div>
|
<div class="section problems">
|
||||||
|
<div class="name">{{ $sectionName }}</div>
|
||||||
<div class="header">OK</div>
|
|
||||||
<div class="header">Trigger</div>
|
|
||||||
<div class="header">Since</div>
|
|
||||||
<div class="header">Until</div>
|
|
||||||
<div class="header"></div>
|
|
||||||
<div class="line"></div>
|
|
||||||
|
|
||||||
{{ range $problems }}
|
{{ range $problems }}
|
||||||
<div class="{{ if .Acknowledged }}acked hidden{{ end }}">{{ if .IsArchived }}<img src="/images/{{ $version }}/{{ $theme }}/ok.svg">{{ else }}<img src="/images/{{ $version }}/{{ $theme }}/warning.svg">{{ end }}</div>
|
<div class="{{ if .Acknowledged }}acked hidden{{ end }}">{{ if .IsArchived }}<span class="ok">Archived</span>{{ else }}<span class="error">Current</span>{{ end }}</div>
|
||||||
|
|
||||||
<div class="{{ if .Acknowledged }}acked hidden{{ end }} trigger">{{ .TriggerName }}</div>
|
<div class="{{ if .Acknowledged }}acked hidden{{ end }} trigger">{{ .TriggerName }}</div>
|
||||||
|
|
||||||
<div class="{{ if .Acknowledged }}acked hidden{{ end }} since">{{ if not .Start.IsZero }}{{ format_time .Start }}{{ else }}-{{ end }}</div>
|
{{ if eq (.Start | html) "0001-01-01 00:00:00 +0000 UTC" }}
|
||||||
<div class="{{ if .Acknowledged }}acked hidden{{ end }} until">{{ if not .End.IsZero }}{{ format_time .End }}{{ else }}-{{ end }}</div>
|
<div class="{{ if .Acknowledged }}acked hidden{{ end }} since"></div>
|
||||||
|
{{ else }}
|
||||||
|
<div class="{{ if .Acknowledged }}acked hidden{{ end }} since">{{ format_time .Start }}</div>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
{{ if .FormattedValues }}
|
{{ if .FormattedValues }}
|
||||||
<div class="{{ if .Acknowledged }}acked hidden{{ end }}"><img src="/images/{{ $version }}/{{ $theme }}/info-filled.svg" title="{{ .FormattedValues }}"></div>
|
<div class="{{ if .Acknowledged }}acked hidden{{ end }}"><img src="/images/{{ $version }}/{{ $theme }}/info-filled.svg" title="{{ .FormattedValues }}"></div>
|
||||||
@ -145,6 +126,7 @@
|
|||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
Loading…
Reference in New Issue
Block a user