Sunil Mohan Adapa acd248e506
clients: Cleanup framework
- Move all utilities to a separate clients.py module. Tests too.

- Use fewer custom template tags. Actually only one tag is really required.
  Keeping custom tags minimal is a goal.

- Merge the methods to generate app store URLs.

- Implement a validator for validating client information and use that instead
  of enums.

- Internationalize the text on template page.

- Add missing RPM package case.

- Cleanup CSS. Remove unused styles, minimize the styles set.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2017-12-13 18:56:30 -05:00

166 lines
2.5 KiB
CSS

body {
padding-top: 70px;
position: relative;
}
.nav .glyphicon,
.sidebar .glyphicon {
margin-right: 4px;
}
.navbar-brand img {
float: left;
margin-top: -14px;
padding: 8px;
}
.navbar-brand {
margin-right: -30px;
}
.nav-tabs {
margin-bottom: 20px;
}
.running-status-parent {
display: inline-block;
}
.running-status {
border-radius: 50%;
border: 1px solid black;
width: 8px;
height: 8px;
display: inline-block;
}
.running-status.active {
background-color: rgb(0, 167, 0);
}
.running-status.inactive {
background-color: rgb(228, 66, 66);
}
.running-status.loading {
border: 4px solid #f3f3f3; /* Light grey */
border-top: 4px solid #3498db; /* Blue */
border-radius: 50%;
width: 16px;
height: 16px;
display: inline-block;
animation: spin 1s linear infinite;
}
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
.form-diagnostics-button {
display: inline-block;
}
/* Hide log out button if user dropdown is available */
.js #logout-nojs {
display: none;
}
/* Hide the dropdown icon when javascript is not available */
.no-js .nav .dropdown .caret {
display: none;
}
.diagnostics-results .diagnostics-result {
width: 60px;
}
/* Sticky footer styles
-------------------------------------------------- */
footer .license-info {
opacity: 0.75;
}
.footer-logo {
width: 140px;
}
html {
position: relative;
}
body,
html {
height: 100%;
}
#wrapper {
min-height: 100%;
position: relative;
}
#container-wrapper {
/*covers for footer height */
padding-bottom: 150px;
}
footer {
text-align: center;
position: absolute;
bottom: 0;
width: 100%;
height: 150px;
}
footer license-info p {
margin: 20px 0;
}
.shortcut-label {
min-height: 50px;
}
/*
* Clients information
*/
.client-icon {
display: inline-block;
width: 100%;
height: auto;
max-height: 20px;
max-width: 20px;
margin: auto;
}
#clients .btn {
width: 8em;
margin-right: 1em;
}
#clients th, #clients td {
line-height: 3.1em;
}
/* Icon when collapsible content is shown */
#clients-button .glyphicon {
margin-left: 5px;
}
#clients-button .glyphicon:before,
.no-js #clients-button.collapsed .glyphicon:before {
content: "\e114";
}
#clients-button.collapsed .glyphicon:before {
content: "\e080";
}
/* No-JS fallbacks for collapsible content in clients.html */
.no-js .collapse {
display: block;
}