diff --git a/web/static/css/app.css b/web/static/css/app.css index e9c25cb3..65509e98 100644 --- a/web/static/css/app.css +++ b/web/static/css/app.css @@ -1,3 +1,3 @@ -#social[data-v-5ce91c08]{position:fixed;right:5px;bottom:5px;padding:5px;margin:0;z-index:100}#social img[data-v-5ce91c08]{opacity:.3}#social img[data-v-5ce91c08]:hover{opacity:1}#tooltip{position:fixed;background-color:#fff;border:1px solid #d3d3d3;border-radius:4px;padding:6px;font-size:13px}#tooltip code{color:#212529;line-height:1}#tooltip .tooltip-title{font-weight:700;margin-bottom:0;display:block;margin-top:8px}#tooltip>.tooltip-title:first-child{margin-top:0}html{height:100%}body,html{background-color:#f7f9fb}#global,#results{max-width:1200px} +#social[data-v-1cbbc992]{position:fixed;right:5px;bottom:5px;padding:5px;margin:0;z-index:100}#social img[data-v-1cbbc992]{opacity:.3}#social img[data-v-1cbbc992]:hover{opacity:1}#tooltip{position:fixed;background-color:#fff;border:1px solid #d3d3d3;border-radius:4px;padding:6px;font-size:13px}#tooltip code{color:#212529;line-height:1}#tooltip .tooltip-title{font-weight:700;margin-bottom:0;display:block;margin-top:8px}#tooltip>.tooltip-title:first-child{margin-top:0}html{height:100%}body,html{background-color:#f7f9fb}#global,#results{max-width:1200px} -/*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */:root{-moz-tab-size:4;tab-size:4}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}hr{height:0;color:inherit}abbr[title]{text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],button{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:transparent;background-image:none}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{font-family:inherit;line-height:inherit}*,:after,:before{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af}button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgba(243,244,246,var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgba(229,231,235,var(--tw-bg-opacity))}.bg-red-100{--tw-bg-opacity:1;background-color:rgba(254,226,226,var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity:1;background-color:rgba(220,38,38,var(--tw-bg-opacity))}.bg-green-100{--tw-bg-opacity:1;background-color:rgba(209,250,229,var(--tw-bg-opacity))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgba(229,231,235,var(--tw-bg-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgba(209,213,219,var(--tw-border-opacity))}.border-red-500{--tw-border-opacity:1;border-color:rgba(239,68,68,var(--tw-border-opacity))}.border-green-600{--tw-border-opacity:1;border-color:rgba(5,150,105,var(--tw-border-opacity))}.rounded-none{border-radius:0}.rounded{border-radius:.25rem}.rounded-xl{border-radius:.75rem}.rounded-full{border-radius:9999px}.border-dashed{border-style:dashed}.border{border-width:1px}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.border-l{border-left-width:1px}.inline-block{display:inline-block}.flex{display:flex}.table{display:table}.hidden{display:none}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.justify-end{justify-content:flex-end}.flex-1{flex:1 1 0%}.float-right{float:right}.font-light{font-weight:300}.font-medium{font-weight:500}.font-bold{font-weight:700}.text-sm{font-size:.875rem;line-height:1.25rem}.text-lg{font-size:1.125rem}.text-lg,.text-xl{line-height:1.75rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-5xl{font-size:3rem;line-height:1}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-auto{margin-top:auto;margin-bottom:auto}.mx-auto{margin-left:auto;margin-right:auto}.mt-1{margin-top:.25rem}.mr-2{margin-right:.5rem}.mb-2{margin-bottom:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mb-4{margin-bottom:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-12{margin-top:3rem}.object-scale-down{object-fit:scale-down}.opacity-75{opacity:.75}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.p-3{padding:.75rem}.p-5{padding:1.25rem}.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:.25rem;padding-bottom:.25rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.pt-2{padding-top:.5rem}.pb-2{padding-bottom:.5rem}.pl-10{padding-left:2.5rem}.absolute{position:absolute}.relative{position:relative}.bottom-0{bottom:0}.top-2{top:.5rem}.left-2{left:.5rem}.bottom-12{bottom:3rem}.bottom-0\.5{bottom:.125rem}*{--tw-shadow:0 0 transparent}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,0.1),0 1px 2px 0 rgba(0,0,0,0.06)}.shadow,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,0.1),0 10px 10px -5px rgba(0,0,0,0.04)}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -2px rgba(0,0,0,0.05);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}*{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,0.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-black{--tw-text-opacity:1;color:rgba(0,0,0,var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgba(156,163,175,var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgba(107,114,128,var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity))}.text-red-700{--tw-text-opacity:1;color:rgba(185,28,28,var(--tw-text-opacity))}.text-yellow-400{--tw-text-opacity:1;color:rgba(251,191,36,var(--tw-text-opacity))}.text-green-600{--tw-text-opacity:1;color:rgba(5,150,105,var(--tw-text-opacity))}.text-green-700{--tw-text-opacity:1;color:rgba(4,120,87,var(--tw-text-opacity))}.hover\:text-blue-800:hover{--tw-text-opacity:1;color:rgba(30,64,175,var(--tw-text-opacity))}.invisible{visibility:hidden}.w-1\/2{width:50%}.w-1\/4{width:25%}.w-3\/4{width:75%}.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1}.transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-100{transition-duration:.1s}@keyframes spin{to{transform:rotate(1turn)}}@keyframes ping{75%,to{transform:scale(2);opacity:0}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.bg-success{background-color:#28a745}.text-monospace{font-family:Consolas,monospace}#settings[data-v-8127dc60]{position:fixed;left:5px;bottom:5px;padding:5px}#settings select[data-v-8127dc60]:focus{box-shadow:none}.service:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.service:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px;border-bottom-width:1px;border-color:#dee2e6;border-style:solid}.status{cursor:pointer;transition:all .5s ease-in-out;overflow-x:hidden;color:#fff;width:5%;font-size:75%;font-weight:700;text-align:center}.status:hover{opacity:.7;transition:opacity .1s ease-in-out;color:#000}.status-over-time{overflow:auto}.status-over-time>span:not(:first-child){margin-left:2px}.status-time-ago{color:#6a737d;opacity:.5;margin-top:5px}.status-min-max-ms{overflow-x:hidden}.service-group{cursor:pointer;user-select:none}.service-group h5:hover{color:#1b1e21!important}.service-group-content>div:first-child{border-top-left-radius:0;border-top-right-radius:0}.service[data-v-db353300]{border-bottom-left-radius:3px;border-bottom-right-radius:3px;border-bottom-width:1px;border-color:#dee2e6;border-style:solid} \ No newline at end of file +/*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */:root{-moz-tab-size:4;tab-size:4}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}hr{height:0;color:inherit}abbr[title]{text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],button{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:transparent;background-image:none}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{font-family:inherit;line-height:inherit}*,:after,:before{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af}button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgba(243,244,246,var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgba(229,231,235,var(--tw-bg-opacity))}.bg-red-100{--tw-bg-opacity:1;background-color:rgba(254,226,226,var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity:1;background-color:rgba(220,38,38,var(--tw-bg-opacity))}.bg-green-100{--tw-bg-opacity:1;background-color:rgba(209,250,229,var(--tw-bg-opacity))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgba(229,231,235,var(--tw-bg-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgba(209,213,219,var(--tw-border-opacity))}.border-red-500{--tw-border-opacity:1;border-color:rgba(239,68,68,var(--tw-border-opacity))}.border-green-600{--tw-border-opacity:1;border-color:rgba(5,150,105,var(--tw-border-opacity))}.rounded-none{border-radius:0}.rounded{border-radius:.25rem}.rounded-xl{border-radius:.75rem}.rounded-full{border-radius:9999px}.border-dashed{border-style:dashed}.border{border-width:1px}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.border-l{border-left-width:1px}.inline-block{display:inline-block}.flex{display:flex}.table{display:table}.hidden{display:none}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.justify-end{justify-content:flex-end}.flex-1{flex:1 1 0%}.float-right{float:right}.font-light{font-weight:300}.font-medium{font-weight:500}.font-bold{font-weight:700}.text-sm{font-size:.875rem;line-height:1.25rem}.text-lg{font-size:1.125rem}.text-lg,.text-xl{line-height:1.75rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-5xl{font-size:3rem;line-height:1}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-auto{margin-top:auto;margin-bottom:auto}.mx-auto{margin-left:auto;margin-right:auto}.mt-1{margin-top:.25rem}.mr-2{margin-right:.5rem}.mb-2{margin-bottom:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mb-4{margin-bottom:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-12{margin-top:3rem}.object-scale-down{object-fit:scale-down}.opacity-75{opacity:.75}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.p-3{padding:.75rem}.p-5{padding:1.25rem}.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:.25rem;padding-bottom:.25rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.pt-2{padding-top:.5rem}.pb-2{padding-bottom:.5rem}.pl-10{padding-left:2.5rem}.absolute{position:absolute}.relative{position:relative}.bottom-0{bottom:0}.top-2{top:.5rem}.left-2{left:.5rem}.bottom-12{bottom:3rem}.bottom-0\.5{bottom:.125rem}*{--tw-shadow:0 0 transparent}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,0.1),0 1px 2px 0 rgba(0,0,0,0.06)}.shadow,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,0.1),0 10px 10px -5px rgba(0,0,0,0.04)}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -2px rgba(0,0,0,0.05);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}*{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,0.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-black{--tw-text-opacity:1;color:rgba(0,0,0,var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgba(156,163,175,var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgba(107,114,128,var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity))}.text-red-700{--tw-text-opacity:1;color:rgba(185,28,28,var(--tw-text-opacity))}.text-yellow-400{--tw-text-opacity:1;color:rgba(251,191,36,var(--tw-text-opacity))}.text-green-600{--tw-text-opacity:1;color:rgba(5,150,105,var(--tw-text-opacity))}.text-green-700{--tw-text-opacity:1;color:rgba(4,120,87,var(--tw-text-opacity))}.hover\:text-blue-800:hover{--tw-text-opacity:1;color:rgba(30,64,175,var(--tw-text-opacity))}.invisible{visibility:hidden}.w-1\/2{width:50%}.w-1\/4{width:25%}.w-3\/4{width:75%}.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1}.transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-100{transition-duration:.1s}@keyframes spin{to{transform:rotate(1turn)}}@keyframes ping{75%,to{transform:scale(2);opacity:0}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.bg-success{background-color:#28a745}.text-monospace{font-family:Consolas,monospace}#settings[data-v-31e7281e]{position:fixed;left:5px;bottom:5px;padding:5px}#settings select[data-v-31e7281e]:focus{box-shadow:none}.service:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.service:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px;border-bottom-width:1px;border-color:#dee2e6;border-style:solid}.status{cursor:pointer;transition:all .5s ease-in-out;overflow-x:hidden;color:#fff;width:5%;font-size:75%;font-weight:700;text-align:center}.status:hover{opacity:.7;transition:opacity .1s ease-in-out;color:#000}.status-over-time{overflow:auto}.status-over-time>span:not(:first-child){margin-left:2px}.status-time-ago{color:#6a737d;opacity:.5;margin-top:5px}.status-min-max-ms{overflow-x:hidden}.service-group{cursor:pointer;user-select:none}.service-group h5:hover{color:#1b1e21!important}.service-group-content>div:first-child{border-top-left-radius:0;border-top-right-radius:0}.service[data-v-db353300]{border-bottom-left-radius:3px;border-bottom-right-radius:3px;border-bottom-width:1px;border-color:#dee2e6;border-style:solid} \ No newline at end of file diff --git a/web/static/index.html b/web/static/index.html index 267bb21a..f6c893ee 100644 --- a/web/static/index.html +++ b/web/static/index.html @@ -1 +1 @@ -Health Dashboard | Gatus
\ No newline at end of file +Health Dashboard | Gatus
\ No newline at end of file diff --git a/web/static/js/app.js b/web/static/js/app.js index 98fe0008..58da8353 100644 --- a/web/static/js/app.js +++ b/web/static/js/app.js @@ -1 +1 @@ -(function(e){function t(t){for(var s,c,o=t[0],a=t[1],l=t[2],h=0,d=[];h/g,">").replace(/"/g,""").replace(/'/g,"'")},reposition:function(){if(this.event&&this.event.type)if("mouseenter"===this.event.type){var e=this.event.target.getBoundingClientRect().y+30,t=this.event.target.getBoundingClientRect().x,n=this.$refs.tooltip.getBoundingClientRect();t+window.scrollX+n.width+50>document.body.getBoundingClientRect().width&&(t=this.event.target.getBoundingClientRect().x-n.width+this.event.target.getBoundingClientRect().width,t<0&&(t+=-t)),e+window.scrollY+n.height+50>document.body.getBoundingClientRect().height&&e>=0&&(e=this.event.target.getBoundingClientRect().y-(n.height+10),e<0&&(e=this.event.target.getBoundingClientRect().y+30)),this.top=e,this.left=t}else"mouseleave"===this.event.type&&(this.hidden=!0)}},watch:{event:function(e){e&&e.type&&("mouseenter"===e.type?this.hidden=!1:"mouseleave"===e.type&&(this.hidden=!0))}},updated:function(){this.reposition()},created:function(){this.reposition()},data:function(){return{hidden:!1,top:0,left:0}}};n("75d6");D.render=A;var q=D,H={name:"App",components:{Social:v,Tooltip:q},methods:{showTooltip:function(e,t){this.tooltip={result:e,event:t}}},data:function(){return{tooltip:{}}}};n("1cf9");H.render=a;var I=H,M=(n("a766"),n("6c02"));function C(e,t,n,r,i,c){var o=Object(s["y"])("Services"),a=Object(s["y"])("Settings");return Object(s["q"])(),Object(s["d"])(s["a"],null,[Object(s["h"])(o,{serviceStatuses:i.serviceStatuses,showStatusOnHover:!0,onShowTooltip:c.showTooltip},null,8,["serviceStatuses","onShowTooltip"]),Object(s["h"])(a,{onRefreshData:c.fetchData},null,8,["onRefreshData"])],64)}n("d3b7");var E=Object(s["E"])("data-v-8127dc60");Object(s["t"])("data-v-8127dc60");var $={id:"settings"},U={class:"flex bg-gray-200 rounded border border-gray-300 shadow"},_=Object(s["h"])("div",{class:"text-sm text-gray-600 rounded-xl py-1 px-2"}," ↻ ",-1),B=Object(s["f"])('',6);Object(s["r"])();var P=E((function(e,t,n,r,i,c){return Object(s["q"])(),Object(s["d"])("div",$,[Object(s["h"])("div",U,[_,Object(s["h"])("select",{class:"text-center text-gray-500 text-sm",id:"refresh-rate",ref:"refreshInterval",onChange:t[1]||(t[1]=function(){return c.handleChangeRefreshInterval&&c.handleChangeRefreshInterval.apply(c,arguments)})},[B],544)])])})),G={name:"Settings",props:{},methods:{setRefreshInterval:function(e){var t=this;this.refreshIntervalHandler=setInterval((function(){t.refreshData()}),1e3*e)},refreshData:function(){this.$emit("refreshData")},handleChangeRefreshInterval:function(){this.refreshData(),clearInterval(this.refreshIntervalHandler),this.setRefreshInterval(this.$refs.refreshInterval.value)}},created:function(){this.setRefreshInterval(this.refreshInterval)},unmounted:function(){clearInterval(this.refreshIntervalHandler)},data:function(){return{refreshInterval:30,refreshIntervalHandler:0}}};n("9d80");G.render=P,G.__scopeId="data-v-8127dc60";var L=G,N=(n("b0c0"),{id:"results"});function F(e,t,n,r,i,c){var o=Object(s["y"])("ServiceGroup");return Object(s["q"])(),Object(s["d"])("div",N,[(Object(s["q"])(!0),Object(s["d"])(s["a"],null,Object(s["w"])(i.serviceGroups,(function(t){return Object(s["x"])(e.$slots,"default",{key:t},(function(){return[Object(s["h"])(o,{services:t.services,name:t.name,onShowTooltip:c.showTooltip},null,8,["services","name","onShowTooltip"])]}))})),128))])}var Y={class:"text-monospace text-gray-400 text-xl font-medium pb-2 px-3"},J={key:0,class:"text-green-600"},V={key:1,class:"text-yellow-400"},X={class:"float-right service-group-arrow"};function K(e,t,n,r,i,c){var o=Object(s["y"])("Service");return Object(s["q"])(),Object(s["d"])("div",{class:0===n.services.length?"mt-3":"mt-4"},["undefined"!==n.name?Object(s["x"])(e.$slots,"default",{key:0},(function(){return[Object(s["h"])("div",{class:"service-group container pt-2 border",onClick:t[1]||(t[1]=function(){return c.toggleGroup&&c.toggleGroup.apply(c,arguments)})},[Object(s["h"])("h5",Y,[i.healthy?(Object(s["q"])(),Object(s["d"])("span",J,"✓")):(Object(s["q"])(),Object(s["d"])("span",V,"~")),Object(s["g"])(" "+Object(s["A"])(n.name)+" ",1),Object(s["h"])("span",X,Object(s["A"])(i.collapsed?"▼":"▲"),1)])])]})):Object(s["e"])("",!0),i.collapsed?Object(s["e"])("",!0):(Object(s["q"])(),Object(s["d"])("div",{key:1,class:"undefined"===n.name?"":"service-group-content"},[(Object(s["q"])(!0),Object(s["d"])(s["a"],null,Object(s["w"])(n.services,(function(t){return Object(s["x"])(e.$slots,"default",{key:t},(function(){return[Object(s["h"])(o,{data:t,onShowTooltip:c.showTooltip,maximumNumberOfResults:20},null,8,["data","onShowTooltip"])]}))})),128))],2))],2)}var z={key:0,class:"service container px-3 py-3 border-l border-r border-t rounded-none"},Q={class:"flex flex-wrap mb-2"},W={class:"w-3/4"},Z=Object(s["g"])(),ee={class:"text-gray-500 font-light"},te={class:"w-1/4 text-right"},ne={class:"font-light status-min-max-ms"},se={class:"status-over-time flex flex-row"},re=Object(s["h"])("span",{class:"status rounded border border-dashed"},null,-1),ie={class:"flex flex-wrap status-time-ago"},ce={class:"w-1/2"},oe={class:"w-1/2 text-right"};function ae(e,t,n,r,i,c){var o=Object(s["y"])("router-link");return n.data&&n.data.results&&n.data.results.length?(Object(s["q"])(),Object(s["d"])("div",z,[Object(s["h"])("div",Q,[Object(s["h"])("div",W,[Object(s["h"])(o,{to:c.generatePath(),class:"inline-block font-bold transform hover:scale-110 transition duration-100 ease-in-out hover:text-blue-800",title:"View detailed service health"},{default:Object(s["D"])((function(){return[Object(s["g"])(Object(s["A"])(n.data.name),1)]})),_:1},8,["to"]),Z,Object(s["h"])("span",ee,"| "+Object(s["A"])(n.data.results[n.data.results.length-1].hostname),1)]),Object(s["h"])("div",te,[Object(s["h"])("span",ne,Object(s["A"])(i.minResponseTime===i.maxResponseTime?i.minResponseTime:i.minResponseTime+"-"+i.maxResponseTime)+"ms ",1)])]),Object(s["h"])("div",null,[Object(s["h"])("div",se,[(Object(s["q"])(!0),Object(s["d"])(s["a"],null,Object(s["w"])(n.maximumNumberOfResults-n.data.results.length,(function(t){return Object(s["x"])(e.$slots,"default",{key:t},(function(){return[re]}))})),128)),(Object(s["q"])(!0),Object(s["d"])(s["a"],null,Object(s["w"])(n.data.results,(function(n){return Object(s["x"])(e.$slots,"default",{key:n},(function(){return[n.success?(Object(s["q"])(),Object(s["d"])("span",{key:0,class:"status rounded bg-success",onMouseenter:function(e){return c.showTooltip(n,e)},onMouseleave:t[1]||(t[1]=function(e){return c.showTooltip(null,e)})},"✓",40,["onMouseenter"])):(Object(s["q"])(),Object(s["d"])("span",{key:1,class:"status rounded bg-red-600",onMouseenter:function(e){return c.showTooltip(n,e)},onMouseleave:t[2]||(t[2]=function(e){return c.showTooltip(null,e)})},"X",40,["onMouseenter"]))]}))})),128))])]),Object(s["h"])("div",ie,[Object(s["h"])("div",ce,Object(s["A"])(e.generatePrettyTimeAgo(n.data.results[0].timestamp)),1),Object(s["h"])("div",oe,Object(s["A"])(e.generatePrettyTimeAgo(n.data.results[n.data.results.length-1].timestamp)),1)])])):Object(s["e"])("",!0)}n("a9e3");var le={methods:{generatePrettyTimeAgo:function(e){var t=(new Date).getTime()-new Date(e).getTime();if(t>36e5){var n=(t/36e5).toFixed(0);return n+" hour"+("1"!==n?"s":"")+" ago"}if(t>6e4){var s=(t/6e4).toFixed(0);return s+" minute"+("1"!==s?"s":"")+" ago"}return(t/1e3).toFixed(0)+" seconds ago"}}},ue={name:"Service",props:{maximumNumberOfResults:Number,data:Object},emits:["showTooltip"],mixins:[le],methods:{updateMinAndMaxResponseTimes:function(){var e=null,t=null;for(var n in this.data.results){var s=parseInt(this.data.results[n].duration/1e6);(null==e||e>s)&&(e=s),(null==t||t=0;s--){var r=t.events[s];if(s===t.events.length-1)"UNHEALTHY"===r.type?r.fancyText="Service is unhealthy":"HEALTHY"===r.type?r.fancyText="Service is healthy":"START"===r.type&&(r.fancyText="Monitoring started");else{var i=t.events[s+1];"HEALTHY"===r.type?r.fancyText="Service became healthy again":"UNHEALTHY"===r.type?r.fancyText=i?"Service was unhealthy for "+e.prettifyTimeDifference(i.timestamp,r.timestamp):"Service became unhealthy":"START"===r.type&&(r.fancyText="Monitoring started")}r.fancyTimeAgo=e.generatePrettyTimeAgo(r.timestamp),n.push(r)}e.events=n}}))},generateBadgeImageURL:function(e){return"".concat(this.serverUrl,"/api/v1/badges/uptime/").concat(e,"/").concat(this.serviceStatus.key)},prettifyUptime:function(e){return e?(100*e).toFixed(2)+"%":"0%"},prettifyTimeDifference:function(e,t){var n=Math.ceil((new Date(e)-new Date(t))/1e3/60);return n+(1===n?" minute":" minutes")},showTooltip:function(e,t){this.$emit("showTooltip",e,t)}},data:function(){return{serviceStatus:{},events:[],serverUrl:"."===nt?"..":nt}},created:function(){this.fetchData()}});n("b883");Qe.render=ze,Qe.__scopeId="data-v-db353300";var We=Qe,Ze=[{path:"/",name:"Home",component:Oe},{path:"/services/:key",name:"Details",component:We}],et=Object(M["a"])({history:Object(M["b"])("/"),routes:Ze}),tt=et,nt=".";Object(s["c"])(I).use(tt).mount("#app")},"5df7":function(e,t,n){},"5e6a":function(e,t,n){"use strict";n("f00e")},"6da3":function(e,t,n){"use strict";n("b73a")},"75d6":function(e,t,n){"use strict";n("e52e")},"7e86":function(e,t,n){},"9d80":function(e,t,n){"use strict";n("5df7")},a044:function(e,t,n){"use strict";n("b362")},a766:function(e,t,n){},b362:function(e,t,n){},b73a:function(e,t,n){},b883:function(e,t,n){"use strict";n("4810")},cf05:function(e,t,n){e.exports=n.p+"img/logo.png"},db7d:function(e,t,n){},e52e:function(e,t,n){},f00e:function(e,t,n){}}); \ No newline at end of file +(function(e){function t(t){for(var s,o,c=t[0],a=t[1],l=t[2],h=0,d=[];h/g,">").replace(/"/g,""").replace(/'/g,"'")},reposition:function(){if(this.event&&this.event.type)if("mouseenter"===this.event.type){var e=this.event.target.getBoundingClientRect().y+30,t=this.event.target.getBoundingClientRect().x,n=this.$refs.tooltip.getBoundingClientRect();t+window.scrollX+n.width+50>document.body.getBoundingClientRect().width&&(t=this.event.target.getBoundingClientRect().x-n.width+this.event.target.getBoundingClientRect().width,t<0&&(t+=-t)),e+window.scrollY+n.height+50>document.body.getBoundingClientRect().height&&e>=0&&(e=this.event.target.getBoundingClientRect().y-(n.height+10),e<0&&(e=this.event.target.getBoundingClientRect().y+30)),this.top=e,this.left=t}else"mouseleave"===this.event.type&&(this.hidden=!0)}},watch:{event:function(e){e&&e.type&&("mouseenter"===e.type?this.hidden=!1:"mouseleave"===e.type&&(this.hidden=!0))}},updated:function(){this.reposition()},created:function(){this.reposition()},data:function(){return{hidden:!1,top:0,left:0}}};n("75d6");D.render=A;var q=D,H={name:"App",components:{Social:v,Tooltip:q},methods:{showTooltip:function(e,t){this.tooltip={result:e,event:t}}},data:function(){return{tooltip:{}}}};n("1cf9");H.render=a;var I=H,M=(n("a766"),n("6c02"));function C(e,t,n,r,i,o){var c=Object(s["y"])("Services"),a=Object(s["y"])("Settings");return Object(s["q"])(),Object(s["d"])(s["a"],null,[Object(s["h"])(c,{serviceStatuses:i.serviceStatuses,showStatusOnHover:!0,onShowTooltip:o.showTooltip},null,8,["serviceStatuses","onShowTooltip"]),Object(s["h"])(a,{onRefreshData:o.fetchData},null,8,["onRefreshData"])],64)}n("d3b7");var E=Object(s["E"])("data-v-31e7281e");Object(s["t"])("data-v-31e7281e");var $={id:"settings"},U={class:"flex bg-gray-200 rounded border border-gray-300 shadow"},_=Object(s["h"])("div",{class:"text-sm text-gray-600 rounded-xl py-1 px-2"}," ↻ ",-1),B=Object(s["f"])('',6);Object(s["r"])();var P=E((function(e,t,n,r,i,o){return Object(s["q"])(),Object(s["d"])("div",$,[Object(s["h"])("div",U,[_,Object(s["h"])("select",{class:"text-center text-gray-500 text-sm",id:"refresh-rate",ref:"refreshInterval",onChange:t[1]||(t[1]=function(){return o.handleChangeRefreshInterval&&o.handleChangeRefreshInterval.apply(o,arguments)})},[B],544)])])})),G={name:"Settings",props:{},methods:{setRefreshInterval:function(e){var t=this;this.refreshIntervalHandler=setInterval((function(){t.refreshData()}),1e3*e)},refreshData:function(){this.$emit("refreshData")},handleChangeRefreshInterval:function(){this.refreshData(),clearInterval(this.refreshIntervalHandler),this.setRefreshInterval(this.$refs.refreshInterval.value)}},created:function(){this.setRefreshInterval(this.refreshInterval)},unmounted:function(){clearInterval(this.refreshIntervalHandler)},data:function(){return{refreshInterval:30,refreshIntervalHandler:0}}};n("49d2");G.render=P,G.__scopeId="data-v-31e7281e";var L=G,N=(n("b0c0"),{id:"results"});function F(e,t,n,r,i,o){var c=Object(s["y"])("ServiceGroup");return Object(s["q"])(),Object(s["d"])("div",N,[(Object(s["q"])(!0),Object(s["d"])(s["a"],null,Object(s["w"])(i.serviceGroups,(function(t){return Object(s["x"])(e.$slots,"default",{key:t},(function(){return[Object(s["h"])(c,{services:t.services,name:t.name,onShowTooltip:o.showTooltip},null,8,["services","name","onShowTooltip"])]}))})),128))])}var Y={class:"text-monospace text-gray-400 text-xl font-medium pb-2 px-3"},J={key:0,class:"text-green-600"},V={key:1,class:"text-yellow-400"},X={class:"float-right service-group-arrow"};function K(e,t,n,r,i,o){var c=Object(s["y"])("Service");return Object(s["q"])(),Object(s["d"])("div",{class:0===n.services.length?"mt-3":"mt-4"},["undefined"!==n.name?Object(s["x"])(e.$slots,"default",{key:0},(function(){return[Object(s["h"])("div",{class:"service-group container pt-2 border",onClick:t[1]||(t[1]=function(){return o.toggleGroup&&o.toggleGroup.apply(o,arguments)})},[Object(s["h"])("h5",Y,[i.healthy?(Object(s["q"])(),Object(s["d"])("span",J,"✓")):(Object(s["q"])(),Object(s["d"])("span",V,"~")),Object(s["g"])(" "+Object(s["A"])(n.name)+" ",1),Object(s["h"])("span",X,Object(s["A"])(i.collapsed?"▼":"▲"),1)])])]})):Object(s["e"])("",!0),i.collapsed?Object(s["e"])("",!0):(Object(s["q"])(),Object(s["d"])("div",{key:1,class:"undefined"===n.name?"":"service-group-content"},[(Object(s["q"])(!0),Object(s["d"])(s["a"],null,Object(s["w"])(n.services,(function(t){return Object(s["x"])(e.$slots,"default",{key:t},(function(){return[Object(s["h"])(c,{data:t,onShowTooltip:o.showTooltip,maximumNumberOfResults:20},null,8,["data","onShowTooltip"])]}))})),128))],2))],2)}var z={key:0,class:"service container px-3 py-3 border-l border-r border-t rounded-none"},Q={class:"flex flex-wrap mb-2"},W={class:"w-3/4"},Z=Object(s["g"])(),ee={class:"text-gray-500 font-light"},te={class:"w-1/4 text-right"},ne={class:"font-light status-min-max-ms"},se={class:"status-over-time flex flex-row"},re=Object(s["h"])("span",{class:"status rounded border border-dashed"},null,-1),ie={class:"flex flex-wrap status-time-ago"},oe={class:"w-1/2"},ce={class:"w-1/2 text-right"};function ae(e,t,n,r,i,o){var c=Object(s["y"])("router-link");return n.data&&n.data.results&&n.data.results.length?(Object(s["q"])(),Object(s["d"])("div",z,[Object(s["h"])("div",Q,[Object(s["h"])("div",W,[Object(s["h"])(c,{to:o.generatePath(),class:"inline-block font-bold transform hover:scale-110 transition duration-100 ease-in-out hover:text-blue-800",title:"View detailed service health"},{default:Object(s["D"])((function(){return[Object(s["g"])(Object(s["A"])(n.data.name),1)]})),_:1},8,["to"]),Z,Object(s["h"])("span",ee,"| "+Object(s["A"])(n.data.results[n.data.results.length-1].hostname),1)]),Object(s["h"])("div",te,[Object(s["h"])("span",ne,Object(s["A"])(i.minResponseTime===i.maxResponseTime?i.minResponseTime:i.minResponseTime+"-"+i.maxResponseTime)+"ms ",1)])]),Object(s["h"])("div",null,[Object(s["h"])("div",se,[(Object(s["q"])(!0),Object(s["d"])(s["a"],null,Object(s["w"])(n.maximumNumberOfResults-n.data.results.length,(function(t){return Object(s["x"])(e.$slots,"default",{key:t},(function(){return[re]}))})),128)),(Object(s["q"])(!0),Object(s["d"])(s["a"],null,Object(s["w"])(n.data.results,(function(n){return Object(s["x"])(e.$slots,"default",{key:n},(function(){return[n.success?(Object(s["q"])(),Object(s["d"])("span",{key:0,class:"status rounded bg-success",onMouseenter:function(e){return o.showTooltip(n,e)},onMouseleave:t[1]||(t[1]=function(e){return o.showTooltip(null,e)})},"✓",40,["onMouseenter"])):(Object(s["q"])(),Object(s["d"])("span",{key:1,class:"status rounded bg-red-600",onMouseenter:function(e){return o.showTooltip(n,e)},onMouseleave:t[2]||(t[2]=function(e){return o.showTooltip(null,e)})},"X",40,["onMouseenter"]))]}))})),128))])]),Object(s["h"])("div",ie,[Object(s["h"])("div",oe,Object(s["A"])(e.generatePrettyTimeAgo(n.data.results[0].timestamp)),1),Object(s["h"])("div",ce,Object(s["A"])(e.generatePrettyTimeAgo(n.data.results[n.data.results.length-1].timestamp)),1)])])):Object(s["e"])("",!0)}n("a9e3");var le={methods:{generatePrettyTimeAgo:function(e){var t=(new Date).getTime()-new Date(e).getTime();if(t>36e5){var n=(t/36e5).toFixed(0);return n+" hour"+("1"!==n?"s":"")+" ago"}if(t>6e4){var s=(t/6e4).toFixed(0);return s+" minute"+("1"!==s?"s":"")+" ago"}return(t/1e3).toFixed(0)+" seconds ago"}}},ue={name:"Service",props:{maximumNumberOfResults:Number,data:Object},emits:["showTooltip"],mixins:[le],methods:{updateMinAndMaxResponseTimes:function(){var e=null,t=null;for(var n in this.data.results){var s=parseInt(this.data.results[n].duration/1e6);(null==e||e>s)&&(e=s),(null==t||t=0;s--){var r=t.events[s];if(s===t.events.length-1)"UNHEALTHY"===r.type?r.fancyText="Service is unhealthy":"HEALTHY"===r.type?r.fancyText="Service is healthy":"START"===r.type&&(r.fancyText="Monitoring started");else{var i=t.events[s+1];"HEALTHY"===r.type?r.fancyText="Service became healthy again":"UNHEALTHY"===r.type?r.fancyText=i?"Service was unhealthy for "+e.prettifyTimeDifference(i.timestamp,r.timestamp):"Service became unhealthy":"START"===r.type&&(r.fancyText="Monitoring started")}r.fancyTimeAgo=e.generatePrettyTimeAgo(r.timestamp),n.push(r)}e.events=n}}))},generateBadgeImageURL:function(e){return"".concat(this.serverUrl,"/api/v1/badges/uptime/").concat(e,"/").concat(this.serviceStatus.key)},prettifyUptime:function(e){return e?(100*e).toFixed(2)+"%":"0%"},prettifyTimeDifference:function(e,t){var n=Math.ceil((new Date(e)-new Date(t))/1e3/60);return n+(1===n?" minute":" minutes")},showTooltip:function(e,t){this.$emit("showTooltip",e,t)}},data:function(){return{serviceStatus:{},events:[],serverUrl:"."===nt?"..":nt}},created:function(){this.fetchData()}});n("b883");Qe.render=ze,Qe.__scopeId="data-v-db353300";var We=Qe,Ze=[{path:"/",name:"Home",component:Oe},{path:"/services/:key",name:"Details",component:We}],et=Object(M["a"])({history:Object(M["b"])("/"),routes:Ze}),tt=et,nt=".";Object(s["c"])(I).use(tt).mount("#app")},"5e6a":function(e,t,n){"use strict";n("f00e")},"6da3":function(e,t,n){"use strict";n("b73a")},"75d6":function(e,t,n){"use strict";n("e52e")},"7e86":function(e,t,n){},a766:function(e,t,n){},b73a:function(e,t,n){},b883:function(e,t,n){"use strict";n("4810")},bca1:function(e,t,n){},cf05:function(e,t,n){e.exports=n.p+"img/logo.png"},db7d:function(e,t,n){},e52e:function(e,t,n){},f00e:function(e,t,n){}}); \ No newline at end of file