diff --git a/frontend/public/base.gohtml b/frontend/public/base.gohtml index e74795c4..c29adfcf 100644 --- a/frontend/public/base.gohtml +++ b/frontend/public/base.gohtml @@ -30,7 +30,7 @@ We're sorry but Statping doesn't work properly without JavaScript enabled. Please enable it to continue. -
+
{{if USE_CDN}} diff --git a/frontend/src/assets/scss/base.scss b/frontend/src/assets/scss/base.scss index 7ff91434..97c4883b 100644 --- a/frontend/src/assets/scss/base.scss +++ b/frontend/src/assets/scss/base.scss @@ -3,566 +3,600 @@ HTML,BODY { background-color: $background-color; - padding-bottom: 10px; } -.container { +.contain-card { + + .card-header { + font-size: 1.15rem; + } + + .dropdown-menu { + background-color: rgba(239, 239, 239, 0.65); + } + +} + +.dropup .dropdown-menu { + border-radius: 8px 8px 8px 0; + background-color: #efefef; +} + + .service_scale { + width: 60pt; + float: left !important; + margin-right: 12pt; + } + + .slide-fade-enter-active { + transition: all .5s ease; + } + .slide-fade-leave-active { + transition: all .8s cubic-bezier(1.0, 0.5, 0.8, 1.0); + } + .slide-fade-enter, .slide-fade-leave-to + /* .slide-fade-leave-active below version 2.1.8 */ { + transform: translateX(10px); + opacity: 0; + } + + .container { padding-top: 20px; padding-bottom: 25px; max-width: $max-width; box-shadow: 0 .5rem 1rem rgba(0,0,0,.15)!important; -} + } -.header-title { + .header-title { color: $title-color; -} + } -.header-desc { + .header-desc { color: $description-color; -} + } -.btn { + .btn { border-radius: $global-border-radius; -} + } -.online_list .badge { + .online_list .badge { margin-top: 0.2rem; -} + } -.navbar { + .navbar { margin-bottom: 30px; -} + } -.btn-sm { + .btn-sm { line-height: 1.3; font-size: 0.75rem; -} + } -.view_service_btn { + .view_service_btn { position: absolute; bottom: -40px; right: 40px; -} + } -.service_lower_info { + .service_lower_info { position: absolute; bottom: -40px; left: 40px; color: #d1ffca; font-size: 0.85rem; -} + } -.lg_number { + .lg_number { font-size: $service-stats-size; font-weight: bold; display: block; color: $service-stats-color; -} + } -.stats_area { + .stats_area { text-align: center; color: #a5a5a5; -} + } -.lower_canvas { + .lower_canvas { height: 3.4rem; width: 100%; padding: 15px 10px; margin-left: 0px !important; margin-right: 0px !important; -} + } -.lower_canvas SPAN { + .lower_canvas SPAN { font-size: 1rem; color: $service-description-color -} + } -.footer { + .footer { text-decoration: none; margin-top: 20px; -} + } -.footer A { + .footer A { color: $footer-text-color; text-decoration: none; -} + } -.footer A:HOVER { + .footer A:HOVER { color: #6d6d6d; -} + } -.font-0 { + .font-0 { font-size: 5pt; -} + } -.font-1 { + .font-1 { font-size: 7pt; -} + } -.font-2 { + .font-2 { font-size: 9pt; -} + } -.font-3 { + .font-3 { font-size: 11pt; -} + } -.badge { + .badge { color: white; border-radius: $global-border-radius; -} + } -.btn-group { + .btn-group { height: 25px; & A { - padding: 0.1rem .75rem; - font-size: 0.8rem; + padding: 0.1rem .75rem; + font-size: 0.8rem; } -} + } -.card-body .badge { + .card-body .badge { color: #fff; -} + } -.nav-pills .nav-link { + .nav-pills .nav-link { border-radius: $global-border-radius; -} + } -.form-control { + .form-control { border-radius: $global-border-radius; -} + } -.mini_success { - background-color: #f3f3f3; -} + .mini_success { + background-color: #f3f3f3; + } -.no-decoration { - color: black; - text-decoration: none; -} + .no-decoration { + color: black; + text-decoration: none; + } -.no-decoration:HOVER { - color: #2b2b2b; - text-decoration: none; -} + .no-decoration:HOVER { + color: #2b2b2b; + text-decoration: none; + } -.mini_error { - background-color: #ffbbbb; -} + .mini_error { + background-color: #ffbbbb; + } -.card { + .card { background-color: $service-background; border: $service-border; -} + } -.card-body { + .card-body { overflow: hidden; -} + } -.card-body H4 A { + .card-body H4 A { color: $service-title; text-decoration: none; -} + } -.card-title A { - color: $service-title; - text-decoration: none; -} + .card-title A { + color: $service-title; + text-decoration: none; + } -.chart-container { - position: relative; - height: 24.1vh; - width: 100%; - overflow: hidden; -} + .chart-container { + position: relative; + height: 24.1vh; + width: 100%; + overflow: hidden; + } -.service-chart-container { - position: relative; - height: 400px; - width: 100%; -} + .service-chart-container { + position: relative; + height: 400px; + width: 100%; + } -.service-chart-heatmap { - position: relative; - height: 300px; - width: 100%; -} + .service-chart-heatmap { + position: relative; + height: 300px; + width: 100%; + } -.inputTags-field { - border: 0; - background-color: transparent; - padding-top: .13rem; -} + .inputTags-field { + border: 0; + background-color: transparent; + padding-top: .13rem; + } -input.inputTags-field:focus { - outline-width: 0; -} + input.inputTags-field:focus { + outline-width: 0; + } -.inputTags-list { - display: block; - width: 100%; - min-height: calc(2.25rem + 2px); - padding: .2rem .35rem; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: #495057; - background-color: #fff; - background-clip: padding-box; - border: 1px solid #ced4da; - border-radius: .25rem; - transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out; -} + .inputTags-list { + display: block; + width: 100%; + min-height: calc(2.25rem + 2px); + padding: .2rem .35rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + border-radius: .25rem; + transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out; + } -.inputTags-item { - background-color: #3aba39; - margin-right: 5px; - padding: 5px 8px; - font-size: 10pt; - color: white; - border-radius: 4px; -} + .inputTags-item { + background-color: #3aba39; + margin-right: 5px; + padding: 5px 8px; + font-size: 10pt; + color: white; + border-radius: 4px; + } -.inputTags-item .close-item { - margin-left: 6px; - font-size: 13pt; - font-weight: bold; - cursor: pointer; -} + .inputTags-item .close-item { + margin-left: 6px; + font-size: 13pt; + font-weight: bold; + cursor: pointer; + } -@mixin dynamic-color-hov($color) { + @mixin dynamic-color-hov($color) { &.dyn-dark { - background-color: darken($color, 12%) !important; - border-color: darken($color, 17%) !important; + background-color: darken($color, 12%) !important; + border-color: darken($color, 17%) !important; } &.dyn-dark:HOVER { - background-color: darken($color, 17%) !important; - border-color: darken($color, 20%) !important; + background-color: darken($color, 17%) !important; + border-color: darken($color, 20%) !important; } &.dyn-light { - background-color: lighten($color, 12%) !important; - border-color: lighten($color, 17%) !important; + background-color: lighten($color, 12%) !important; + border-color: lighten($color, 17%) !important; } &.dyn-light:HOVER { - background-color: lighten($color, 17%) !important; - border-color: lighten($color, 20%) !important; + background-color: lighten($color, 17%) !important; + border-color: lighten($color, 20%) !important; } -} + } -@mixin dynamic-color($color) { + @mixin dynamic-color($color) { &.dyn-dark { - background-color: darken($color, 12%) !important; - border-color: darken($color, 17%) !important; + background-color: darken($color, 12%) !important; + border-color: darken($color, 17%) !important; } &.dyn-light { - background-color: lighten($color, 12%) !important; - border-color: lighten($color, 17%) !important; + background-color: lighten($color, 12%) !important; + border-color: lighten($color, 17%) !important; } -} + } -.btn-primary { + .btn-primary { background-color: $primary-color; border-color: darken($primary-color, 17%); color: white; @include dynamic-color($success-color); -} + } -.btn-success { + .btn-success { background-color: $success-color; @include dynamic-color($success-color); -} + } -.btn-danger { + .btn-danger { background-color: $danger-color; @include dynamic-color($danger-color); -} + } -.bg-success { + .bg-success { background-color: $success-color !important; -} + } -.bg-danger { + .bg-danger { background-color: $danger-color !important; -} + } -.bg-success .dyn-dark { + .bg-success .dyn-dark { background-color: darken($success-color, 10%) !important; -} + } -.bg-danger .dyn-dark { + .bg-danger .dyn-dark { background-color: darken($danger-color, 10%) !important; -} + } -.nav-pills .nav-link.active, .nav-pills .show>.nav-link { + .nav-pills .nav-link.active, .nav-pills .show>.nav-link { background-color: $nav-tab-color; -} + } -.nav-pills A { + .nav-pills A { color: #424242; -} + } -.nav-pills I { - margin-right: 10px; -} + .nav-pills I { + margin-right: 10px; + } -@keyframes fadeInOut { - 0% { opacity:1; } - 50% { opacity:0.3; } - 100% { opacity:1; } -} -@-o-keyframes fadeInOut { - 0% { opacity:1; } - 50% { opacity:0.3; } - 100% { opacity:1; } -} -@-moz-keyframes fadeInOut { - 0% { opacity:1; } - 50% { opacity:0.3; } - 100% { opacity:1; } -} -@-webkit-keyframes fadeInOut { - 0% { opacity:1; } - 50% { opacity:0.3; } - 100% { opacity:1; } -} -.animate-fader { - -webkit-animation: fadeInOut 1s infinite; - -moz-animation: fadeInOut 1s infinite; - -o-animation: fadeInOut 1s infinite; - animation: fadeInOut 21 infinite; -} + @keyframes fadeInOut { + 0% { opacity:1; } + 50% { opacity:0.3; } + 100% { opacity:1; } + } + @-o-keyframes fadeInOut { + 0% { opacity:1; } + 50% { opacity:0.3; } + 100% { opacity:1; } + } + @-moz-keyframes fadeInOut { + 0% { opacity:1; } + 50% { opacity:0.3; } + 100% { opacity:1; } + } + @-webkit-keyframes fadeInOut { + 0% { opacity:1; } + 50% { opacity:0.3; } + 100% { opacity:1; } + } + .animate-fader { + -webkit-animation: fadeInOut 1s infinite; + -moz-animation: fadeInOut 1s infinite; + -o-animation: fadeInOut 1s infinite; + animation: fadeInOut 21 infinite; + } -.CodeMirror { - /* Bootstrap Settings */ - box-sizing: border-box; - margin: 0; - font: inherit; - overflow: auto; - font-family: inherit; - display: block; - width: 100%; - padding: 0px; - font-size: 14px; - line-height: 1.5; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - /* Code Mirror Settings */ - font-family: monospace; - position: relative; - overflow: hidden; - height:80vh; -} + .CodeMirror { + /* Bootstrap Settings */ + box-sizing: border-box; + margin: 0; + font: inherit; + overflow: auto; + font-family: inherit; + display: block; + width: 100%; + padding: 0px; + font-size: 14px; + line-height: 1.5; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + /* Code Mirror Settings */ + font-family: monospace; + position: relative; + overflow: hidden; + height:80vh; + } -.CodeMirror-focused { - /* Bootstrap Settings */ - border-color: #66afe9; - outline: 0; - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -} + .CodeMirror-focused { + /* Bootstrap Settings */ + border-color: #66afe9; + outline: 0; + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + } -.switch { - font-size: 1rem; - position: relative; -} -.switch input { - position: absolute; - height: 1px; - width: 1px; - background: none; - border: 0; - clip: rect(0 0 0 0); - clip-path: inset(50%); - overflow: hidden; - padding: 0; -} -.switch input + label { - position: relative; - min-width: calc(calc(2.375rem * .8) * 2); - border-radius: calc(2.375rem * .8); - height: calc(2.375rem * .8); - line-height: calc(2.375rem * .8); - display: inline-block; - cursor: pointer; - outline: none; - user-select: none; - vertical-align: middle; - text-indent: calc(calc(calc(2.375rem * .8) * 2) + .5rem); -} -.switch input + label::before, -.switch input + label::after { - content: ''; - position: absolute; - top: 0; - left: 0; - width: calc(calc(2.375rem * .8) * 2); - bottom: 0; - display: block; -} -.switch input + label::before { - right: 0; - background-color: #dee2e6; - border-radius: calc(2.375rem * .8); - transition: 0.2s all; -} -.switch input + label::after { - top: 2px; - left: 2px; - width: calc(calc(2.375rem * .8) - calc(2px * 2)); - height: calc(calc(2.375rem * .8) - calc(2px * 2)); - border-radius: 50%; - background-color: white; - transition: 0.2s all; -} -.switch input:checked + label::before { - background-color: #08d; -} -.switch input:checked + label::after { - margin-left: calc(2.375rem * .8); -} -.switch input:focus + label::before { - outline: none; - box-shadow: 0 0 0 0.2rem rgba(0, 136, 221, 0.25); -} -.switch input:disabled + label { - color: #868e96; - cursor: not-allowed; -} -.switch input:disabled + label::before { - background-color: #e9ecef; -} -.switch.switch-sm { - font-size: 0.875rem; -} -.switch.switch-sm input + label { - min-width: calc(calc(1.9375rem * .8) * 2); - height: calc(1.9375rem * .8); - line-height: calc(1.9375rem * .8); - text-indent: calc(calc(calc(1.9375rem * .8) * 2) + .5rem); -} -.switch.switch-sm input + label::before { - width: calc(calc(1.9375rem * .8) * 2); -} -.switch.switch-sm input + label::after { - width: calc(calc(1.9375rem * .8) - calc(2px * 2)); - height: calc(calc(1.9375rem * .8) - calc(2px * 2)); -} -.switch.switch-sm input:checked + label::after { - margin-left: calc(1.9375rem * .8); -} -.switch.switch-lg { - font-size: 1.25rem; -} -.switch.switch-lg input + label { - min-width: calc(calc(3rem * .8) * 2); - height: calc(3rem * .8); - line-height: calc(3rem * .8); - text-indent: calc(calc(calc(3rem * .8) * 2) + .5rem); -} -.switch.switch-lg input + label::before { - width: calc(calc(3rem * .8) * 2); -} -.switch.switch-lg input + label::after { - width: calc(calc(3rem * .8) - calc(2px * 2)); - height: calc(calc(3rem * .8) - calc(2px * 2)); -} -.switch.switch-lg input:checked + label::after { - margin-left: calc(3rem * .8); -} -.switch + .switch { - margin-left: 1rem; -} + .switch { + font-size: 1rem; + position: relative; + } + .switch input { + position: absolute; + height: 1px; + width: 1px; + background: none; + border: 0; + clip: rect(0 0 0 0); + clip-path: inset(50%); + overflow: hidden; + padding: 0; + } + .switch input + label { + position: relative; + min-width: calc(calc(2.375rem * .8) * 2); + border-radius: calc(2.375rem * .8); + height: calc(2.375rem * .8); + line-height: calc(2.375rem * .8); + display: inline-block; + cursor: pointer; + outline: none; + user-select: none; + vertical-align: middle; + text-indent: calc(calc(calc(2.375rem * .8) * 2) + .5rem); + } + .switch input + label::before, + .switch input + label::after { + content: ''; + position: absolute; + top: 0; + left: 0; + width: calc(calc(2.375rem * .8) * 2); + bottom: 0; + display: block; + } + .switch input + label::before { + right: 0; + background-color: #dee2e6; + border-radius: calc(2.375rem * .8); + transition: 0.2s all; + } + .switch input + label::after { + top: 2px; + left: 2px; + width: calc(calc(2.375rem * .8) - calc(2px * 2)); + height: calc(calc(2.375rem * .8) - calc(2px * 2)); + border-radius: 50%; + background-color: white; + transition: 0.2s all; + } + .switch input:checked + label::before { + background-color: #08d; + } + .switch input:checked + label::after { + margin-left: calc(2.375rem * .8); + } + .switch input:focus + label::before { + outline: none; + box-shadow: 0 0 0 0.2rem rgba(0, 136, 221, 0.25); + } + .switch input:disabled + label { + color: #868e96; + cursor: not-allowed; + } + .switch input:disabled + label::before { + background-color: #e9ecef; + } + .switch.switch-sm { + font-size: 0.875rem; + } + .switch.switch-sm input + label { + min-width: calc(calc(1.9375rem * .8) * 2); + height: calc(1.9375rem * .8); + line-height: calc(1.9375rem * .8); + text-indent: calc(calc(calc(1.9375rem * .8) * 2) + .5rem); + } + .switch.switch-sm input + label::before { + width: calc(calc(1.9375rem * .8) * 2); + } + .switch.switch-sm input + label::after { + width: calc(calc(1.9375rem * .8) - calc(2px * 2)); + height: calc(calc(1.9375rem * .8) - calc(2px * 2)); + } + .switch.switch-sm input:checked + label::after { + margin-left: calc(1.9375rem * .8); + } + .switch.switch-lg { + font-size: 1.25rem; + } + .switch.switch-lg input + label { + min-width: calc(calc(3rem * .8) * 2); + height: calc(3rem * .8); + line-height: calc(3rem * .8); + text-indent: calc(calc(calc(3rem * .8) * 2) + .5rem); + } + .switch.switch-lg input + label::before { + width: calc(calc(3rem * .8) * 2); + } + .switch.switch-lg input + label::after { + width: calc(calc(3rem * .8) - calc(2px * 2)); + height: calc(calc(3rem * .8) - calc(2px * 2)); + } + .switch.switch-lg input:checked + label::after { + margin-left: calc(3rem * .8); + } + .switch + .switch { + margin-left: 1rem; + } -.sortable_drag { - background-color: #0000000f; -} + .sortable_drag { + background-color: #0000000f; + } -.drag_icon { - cursor: move; /* fallback if grab cursor is unsupported */ - cursor: grab; - cursor: -moz-grab; - cursor: -webkit-grab; - width: 25px; - height: 25px; - display: inline-block; - margin-right: 5px; - margin-left: -10px; - text-align: center; - color: #b1b1b1; -} + .drag_icon { + cursor: move; /* fallback if grab cursor is unsupported */ + cursor: grab; + cursor: -moz-grab; + cursor: -webkit-grab; + width: 25px; + height: 25px; + display: inline-block; + margin-right: 5px; + margin-left: -10px; + text-align: center; + color: #b1b1b1; + } -/* (Optional) Apply a "closed-hand" cursor during drag operation. */ -.drag_icon:active { - cursor: grabbing; - cursor: -moz-grabbing; - cursor: -webkit-grabbing; -} + /* (Optional) Apply a "closed-hand" cursor during drag operation. */ + .drag_icon:active { + cursor: grabbing; + cursor: -moz-grabbing; + cursor: -webkit-grabbing; + } -.switch_btn { - float: right; - margin: -1px 0px 0px 0px; - display: block; -} + .switch_btn { + float: right; + margin: -1px 0px 0px 0px; + display: block; + } -#start_container { - position: absolute; - z-index: 99999; - margin-top: 20px; -} + #start_container { + position: absolute; + z-index: 99999; + margin-top: 20px; + } -#end_container { - position: absolute; - z-index: 99999; - margin-top: 20px; - right: 0; -} + #end_container { + position: absolute; + z-index: 99999; + margin-top: 20px; + right: 0; + } -.pointer { - cursor: pointer; -} + .pointer { + cursor: pointer; + } -.jumbotron { - background-color: white; -} + .jumbotron { + background-color: white; + } -.toggle-service { - font-size: 18pt; - float: left; - margin: 2px 3px 0 0; - cursor: pointer; -} + .toggle-service { + font-size: 18pt; + float: left; + margin: 2px 3px 0 0; + cursor: pointer; + } -.list-group-item { + .list-group-item { min-height: 85pt; -} + } -.list-group-item:HOVER { - background-color: #fff; -} + .list-group-item:HOVER { + background-color: #fff; + } -.index_container { + .index_container { min-height: 980pt; -} + } -/* Enter and leave animations can use different */ -/* durations and timing functions. */ -.slide-fade-enter-active { - transition: all .3s ease; -} -.slide-fade-leave-active { - transition: all .8s cubic-bezier(1.0, 0.5, 0.8, 1.0); -} -.slide-fade-enter, .slide-fade-leave-to -/* .slide-fade-leave-active below version 2.1.8 */ { - transform: translateX(10px); - opacity: 0; -} + /* Enter and leave animations can use different */ + /* durations and timing functions. */ + .slide-fade-enter-active { + transition: all .3s ease; + } + .slide-fade-leave-active { + transition: all .8s cubic-bezier(1.0, 0.5, 0.8, 1.0); + } + .slide-fade-enter, .slide-fade-leave-to + /* .slide-fade-leave-active below version 2.1.8 */ { + transform: translateX(10px); + opacity: 0; + } -@import 'mobile'; + @import 'mobile'; diff --git a/frontend/src/assets/scss/mobile.scss b/frontend/src/assets/scss/mobile.scss index c026b51b..a7e33821 100644 --- a/frontend/src/assets/scss/mobile.scss +++ b/frontend/src/assets/scss/mobile.scss @@ -6,6 +6,10 @@ background-color: $sm-background-color; } + .index_container { + padding-top: 4.5vh !important; + } + .sm-container { margin-top: 0px !important; padding: 0 !important; @@ -20,9 +24,13 @@ font-size: 0.9rem; } + .service_li { + border: 1px solid #f3f3f3 !important; + } + .container { padding: 0px !important; - padding-top: 4vh !important; + padding-top: 0vh !important; min-height: 960pt; } @@ -34,12 +42,22 @@ margin-left: 0px; margin-top: 0px; width: 100%; - margin-bottom: 0; box-shadow: 1px 10px 20px 0px; height: 55pt; color: rgba(0, 0, 0, 0.20); + margin-bottom: 20pt; } + .navbar-collapse { + z-index: 999999; + background-color: #f9f9f9; + width: 100%; + padding: 10pt 15pt; + left: 0px; + top: 75px; + position: absolute; + } + .btn-sm { line-height: 1.4rem; font-size: 1rem; diff --git a/frontend/src/components/Dashboard/DashboardMessages.vue b/frontend/src/components/Dashboard/DashboardMessages.vue index b72dc84e..7aa1b8a5 100644 --- a/frontend/src/components/Dashboard/DashboardMessages.vue +++ b/frontend/src/components/Dashboard/DashboardMessages.vue @@ -1,7 +1,8 @@ diff --git a/frontend/src/components/Dashboard/DashboardServices.vue b/frontend/src/components/Dashboard/DashboardServices.vue index 90c965f1..0fdf460c 100644 --- a/frontend/src/components/Dashboard/DashboardServices.vue +++ b/frontend/src/components/Dashboard/DashboardServices.vue @@ -1,19 +1,19 @@