horizon/openstack_dashboard/static/dashboard/scss/horizon.scss

1431 lines
26 KiB
SCSS

// Custom Theme Variables
@import "/custom/variables";
// Horizon Variables
@import "variables";
// Horizon Mixins
@import "mixins";
// Horizon Util
@import "util";
// Vendor Components
@import "/bootstrap/scss/bootstrap";
@import "/horizon/lib/font-awesome/scss/font-awesome.scss";
@import "/horizon/lib/magic_search/magic_search.scss";
// Dashboard Components
@import "components/login";
@import "components/resource_browser";
@import "components/sidebar";
@import "components/navbar";
@import "components/inline_edit";
@import "components/charts";
@import "components/workflow";
@import "components/network_topology";
@import "components/context_selection";
@import "components/pie_charts";
@import "/framework/framework";
@import "components/tables";
@import "components/table_actions";
/* new clearfix */
.clearfix:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
* html .clearfix {
zoom: 1;
} // IE6
*:first-child+html .clearfix {
zoom: 1;
} // IE7
// Basic Page Layout
// Make the sidebar span the entire page, instead of just the Viewport
// Display Table is not ideal, but it will allow dynamic resizing of
// the sidebar while growing its container to fill the entire window
html, body, #container {
height: 100%;
}
// Theme Note:
// The following 1px is the default 1px for nav border in Bootstrap. If
// this value is customized, then this value must change to compensate
$navbar-border-size: 1px !default;
$navbar-true-height: $navbar-height + $navbar-border-size !default;
#main_content {
height: 100%; /* fallback if needed --> its scrolls, but it works */
height: calc(100% - #{$navbar-true-height});
display: table;
}
#content_body,
#sidebar {
display: table-cell;
vertical-align: top;
}
#content_body {
width: 100%;
padding-left: $content-body-padding;
padding-right: $content-body-padding;
}
// Basic Page Layout End
small {
font-size: 11px;
}
a {
color: $link-color;
text-decoration: none;
}
a:hover,
a:focus {
color: $link-hover-color;
text-decoration: underline;
}
ul {
list-style: none;
margin: 0;
}
// Disc-styled list. This list should be used to build bullet-items lists.
.list-bullet {
list-style: disc;
}
/* Used to build compact node groups and tags tables */
.small-padding {
padding-left: 0;
padding-right: 5px;
padding-bottom: 5px;
}
dt {
font-weight: bold;
}
.page-header {
margin: 0 0 5px 0;
padding: 10px 0 5px 0;
border-bottom: 0;
height: auto;
width: 100%;
h1 {
margin: 0;
}
}
h2 {
color: $headings-color;
font-size: 30px;
font-weight: normal;
}
#create_container_form .modal-footer{
margin-top: 190px;
}
/* Tenant Dropdown */
a.current_item {
width: 163px;
float: left;
}
a.current_item:hover {
text-decoration: none;
}
a.current_item:hover h3,
a.current_item:hover h4 {
color: $link-hover-color;
border-radius: 4px;
}
#usage {
margin-bottom: 25px;
height: 125px;
}
.main_nav {
list-style: none;
width: 222px;
margin: 10px 0 20px 0;
}
.main_nav a {
color: #999;
width: 185px;
padding: 10px;
display: block;
margin-left: 20px;
}
.main_nav a.active {
background: #fff;
border: 2px solid #d8d8d8;
border-right: 0;
border-bottom-color: #ccc;
}
.messages {
position: fixed;
z-index: 9999;
top: 20px;
right: 20px;
width: 300px;
.alert {
@include box-shadow(0 3px 7px rgba(0, 0, 0, 0.3));
}
.alert.alert-danger {
border-width: 1px;
border-style: solid;
border-color: darken($brand-danger, 5%);
}
.alert.alert-success {
border-width: 1px;
border-style: solid;
border-color: darken($brand-success, 5%);
}
}
.alert .alert-actions {
margin-top: -23px;
margin-right: -23px;
}
.modal > form,
.alert-actions > form {
margin-bottom: 0;
}
.alert p {
overflow: hidden;
word-wrap: break-word;
}
.alert p:last-child {
margin-bottom: 0;
}
#actions.single {
width: 90px;
}
.inspect {
float: left;
display: block;
margin-top: 5px;
margin-right: 25px;
}
.hidden {
display: none;
}
.overview {
font-size: 24px;
}
#monitoring {
background: $body-bg;
font-size: 14px;
height: 20px;
margin: -18px 0 25px;
padding: 10px;
border: 1px solid $border-color;
}
#monitoring h3 {
font-size: 14px;
font-weight: normal;
float: left;
line-height: 18px;
}
#external_links, #external_links li {
float: left;
}
#external_links li { margin: 0 0 0 15px; }
/* Forms */
.datepicker {
z-index: $zindex-popover !important;
}
.datepicker input{
@extend .form-control;
}
.modal.fullscreen .modal-dialog {
width: 90%;
margin: auto;
left: 5%;
}
.modal.loading .modal-dialog {
width: 170px;
.modal-body {
height: 170px;
}
}
.modal.loading p {
text-align: center;
position: absolute;
bottom: 0;
width: 150px;
}
.modal-body {
overflow-y: visible;
max-height: none;
}
.modal-body textarea{
resize: vertical;
}
.modal-body table {
margin-bottom: 30px;
}
.modal-body ~ hr {
margin-bottom: 0;
}
.static_page {
float: left; //should be removed (jtomasek)
background-color: $body-bg; //should be removed (jtomasek)
> form {
margin-bottom: 0;
}
}
// should be removed and replaced by row + col-sm-6 in template
.left, .right {
@extend .col-sm-6;
}
.clear {
clear: both;
width: 0;
height: 0;
padding: 0;
margin: 0;
}
// Fixes issue with bootstrap positioning of modal container
.modal {
top: 0 !important;
}
.modal-footer {
input {
width: auto;
}
.footer-row {
margin-right: 0px;
margin-left: 0px;
}
a.close {
margin-top: 0;
margin-right: 5px;
font-size: $font-size-base;
line-height: $line-height-base;
color: #666;
font-weight: normal;
filter: alpha(opacity=100);
-khtml-opacity: 1;
-moz-opacity: 1;
opacity: 1;
}
a.close:hover {
color: #333;
text-decoration: none;
}
}
.modal-body .modal-footer {
width: 670px;
margin-left: -25px;
margin-right: -15px;
}
.modal-body .help-block {
text-align: left;
float: left;
width: 100%;
margin-bottom: 10px;
}
#create_keypair_modal .clearfix {
margin-bottom: 115px;
}
#actions {
width: 90px;
}
#actions .btn {
margin-bottom: 5px;
}
#actions a.btn {
width: 70px;
}
#actions input.btn {
text-align: left;
}
#images #actions {
width: 100px;
}
/*New List Patches*/
.details-modal .modal-body {
padding-bottom: 20px;
}
.form-inline {
display: inline;
input, button, a.btn, .btn-group {
margin-left: 5px;
}
}
/* Actions dropdown */
.actions_column {
white-space: nowrap;
padding: 10px;
position: relative;
width: 1em;
background-clip: padding-box;
// We want the actions column to be a small button, but
// we can't get to the class attribute yet to customize
// that outside of every action, including table header
.btn {
@extend .btn-sm;
}
}
form.actions_column {
width: auto;
font-family: $font-family-base;
}
// TODO(hurgleburgler): We need to fix this, we still support IE8+
.actions_column .btn-group {
display: inline-flex;
display: -ms-inline-flexbox;
-ms-flex-direction: row;
display: -webkit-inline-flex;
display: -moz-inline-flex;
}
.actions_column .row_actions a,
.actions_column .row_actions input,
.actions_column .row_actions button,
div.table_actions_menu .dropdown-menu a,
div.table_actions_menu .dropdown-menu input,
div.table_actions_menu .dropdown-menu button {
background: none;
float: none;
display: block;
padding: 5px 10px;
color: $text-color;
text-align: left;
border-radius: 0;
border: 0 none;
@include box-shadow(none);
}
.actions_column .row_actions .hide {
display: none;
}
.actions_column .btn-action-required {
font-weight: bold;
}
.tab-content {
overflow: visible;
}
/* Makes size consistent across browsers when mixing "btn-group" and "small" */
.btn.hide, .btn-group .hide {
display: none;
}
.btn-group .dropdown-toggle:focus {
outline: none;
}
.dropdown-menu button {
line-height: 18px; /* Matches rule for ".dropdown-menu a" in bootstrap */
width: 100%;
}
.btn-group .dropdown-menu .btn {
border-radius: 0;
}
.dropdown-menu .btn.btn-danger,
.dropdown-menu .btn.btn-danger:hover,
.dropdown-menu .btn.btn-success,
.dropdown-menu .btn.btn-success:hover,
.dropdown-menu .btn.btn-info,
.dropdown-menu .btn.btn-info:hover {
text-shadow: none; /* remove default bootstrap shadowing from button text. */
}
.dropdown-menu li:hover {
background: none;
}
.actions_column .dropdown-menu a:hover,
.actions_column .dropdown-menu button:hover,
div.table_actions_menu .dropdown-menu a:hover,
div.table_actions_menu .dropdown-menu button:hover {
background-color: $gray-lighter;
}
.dropdown-menu .btn.btn-danger {
color: $brand-danger;
}
.dropdown-menu .btn.btn-danger:hover {
background-color: $gray-lighter;
}
/* Overrides for single-action rows (no dropdown) */
tr .actions_column ul.row_actions.single,
tr:hover .actions_column ul.row_actions.single,
.actions_column ul.row_actions.single,
.actions_column ul.row_actions.single:hover {
border: none;
}
.actions_column ul.row_actions.single li.action {
display: block;
}
.actions_column ul.row_actions.single li.action:hover {
background-color: transparent;
}
.actions_column ul.row_actions.single a,
.actions_column ul.row_actions.single input,
.actions_column ul.row_actions.single button {
color: $brand-info;
}
.actions_column ul.row_actions.single a:hover,
.actions_column ul.row_actions.single input:hover,
.actions_column ul.row_actions.single button:hover {
color: $text-color;
}
div.input input[type="checkbox"] {
float: left;
width: 25px;
}
tr.deleted {
color: #999999;
}
#main_content {
min-width: $main-content-min-width;
}
.javascript_disabled_alert {
@extend .alert-danger;
border-bottom-style: solid;
border-bottom-width: 1px;
padding: 8px;
text-align: center;
}
.tab_wrapper {
padding-top: 50px;
}
/* Fix tooltip z-index to show above modals. Bootstrap bug 582*/
.tooltip {
z-index: 12000;
word-wrap: break-word;
}
/* Region selector in header */
iframe {
border: none;
}
.item_detail ul li label {
color: $text-color;
font-weight: bold;
display: block;
margin-top: 5px;
}
.progress_bar {
height: 100%;
width: 100%;
border: 1px solid $gray-light;
background-color: $gray-light;
}
.progress_bar_fill,
.progress_bar_selected {
height: 100%;
float: left;
}
.progress_bar_fill {
background-color: $gray;
}
.progress_bar_selected {
background-color: $brand-primary;
width: 0;
}
.progress_bar_over {
background-color: $brand-danger;
}
.d3_quota_bar {
width: 20%;
margin-bottom: 8px;
margin-top: 10px;
float: left;
text-align: center;
}
.quota-dynamic {
overflow: hidden;
margin-bottom: 8px;
}
.quota-heading {
font-weight: normal;
font-size: 24px;
margin-bottom: 10px;
}
.quota_title {
color: $gray-light;
padding-bottom: 0;
margin-bottom: 8px;
}
.quota_title strong {
color: $text-color;
}
.quota_title strong span {
font-weight: normal;
}
.quota_title p {
float: right;
margin-bottom: 0;
}
.quota_bar {
margin: -8px 0 8px;
}
div .flavor_table {
border: 1px solid $table-border-color;
width: 100%;
margin-bottom: 14px;
}
.flavor_table .flavor_name {
white-space: nowrap;
font-weight: bold;
text-align: left;
padding: 7px 12px 7px 7px;
width: 160px;
}
.version_label {
position: relative;
text-align: right;
}
.header_rule {
margin: 0 0 8px;
}
.item_detail .detail_section {
margin-bottom: 25px;
float: left;
margin-right: 50px;
}
.has-error .help-block, .dynamic-error {
padding: 10px;
}
.dynamic-error {
background: $body-bg;
border: 1px solid $border-color;
color: $brand-danger;
margin-bottom: 0.5em;
}
label.log-length {
line-height: 28px;
margin-right: 10px;
}
.progress-success.bar {
background-color: #5eb95e;
background-image: -moz-linear-gradient(top, #62c462, #57a957);
background-image: -ms-linear-gradient(top, #62c462, #57a957);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));
background-image: -webkit-linear-gradient(top, #62c462, #57a957);
background-image: -o-linear-gradient(top, #62c462, #57a957);
background-image: linear-gradient(top, #62c462, #57a957);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);
}
.progress_bar_fill.progress-warning.bar {
background-color: #898989;
background-image: -moz-linear-gradient(top, #999999, #333333);
background-image: -ms-linear-gradient(top, #999999, #333333);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#999999), to(#333333));
background-image: -webkit-linear-gradient(top, #999999, #333333);
background-image: -o-linear-gradient(top, #999999, #333333);
background-image: linear-gradient(top, #999999, #333333);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#999999', endColorstr='#333333', GradientType=0);
}
.progress_bar_over.bar {
background-color: #dd514c;
background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));
background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
background-image: linear-gradient(top, #ee5f5b, #c43c35);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);
}
.split_five div.form-group input[type="text"],
.split_five div.form-group select {
width: 120px;
}
.warning {
background-color: $body-bg;
border-bottom: 1px solid $brand-danger;
padding: 5px 10px;
.warning-text {
text-align: center;
h3, a {
display: inline-block;
}
h3 {
vertical-align: bottom;
}
}
}
#admin_warning_detail {
ul {
list-style: circle;
padding-left: 20px;
margin-bottom: 10px;
}
}
.no_split {
margin-top: -60px;
}
/* Membership widget UI */
.membership {
min-height: 200px;
/* Header */
.help_text {
margin-bottom: 15px;
}
.fake_table_header {
padding: 8px;
border: 1px solid $table-border-color;
border-bottom: none;
overflow: hidden;
}
.members_title {
color: $gray;
font-weight: bold;
float: left;
padding: 6px 0;
}
input.filter {
width: 120px;
float: right;
&[type="text"]:disabled {
background-color: $gray-lighter;
& + span.search-icon {
color: $gray-light;
}
}
}
.form-control-feedback { top: 0; }
.no_results {
border: 1px solid $table-border-color;
padding: 9px 10px 8px 10px;
opacity: 0.5;
}
li.scope input{
background: none;
margin-top: 10px;
margin-bottom: 10px;
width: 120px;
margin-left: 10px;
}
li.select_resource {
margin-left: 5px;
margin-top: 15px;
}
li.display_name {
width: 130px;
margin: 15px 7px 15px 10px;
}
/* Member lists */
.update_members_filterable {
overflow-y: auto;
height: 500px;
}
.members, .available_members {
padding: 0;
.btn-primary {
@include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border);
}
// reset nav-pills display to block
ul.nav-pills {
display: block;
& > li > a {
border-radius: $border-radius-base;
}
}
ul.btn-group {
margin-left:0;
padding: $members-list-padding;
margin-bottom: 0;
border: $members-list-border;
border-bottom: none;
&.last_stripe {
border-bottom: 1px solid $table-border-color;
}
&.light_stripe {
background-color: $table-bg;
}
&.dark_stripe {
background-color: $table-bg-accent;
}
&:hover {
background-color: $border-color;
}
li.active {
float: right;
a:hover {
background-color: $link-hover-color;
}
}
.member,
.role_options .roles_display {
overflow: hidden;
text-overflow: ellipsis;
}
.member {
padding: $nav-link-padding;
padding-right: 0;
padding-left: $padding-base-vertical;
max-width: $members-list-item-width;
}
.role_options {
margin-left: 0;
& > a {
padding: nth($nav-link-padding, 1) $padding-small-horizontal;
.roles_display {
display: inline-block;
max-width: $members-list-roles-width;
line-height: 1;
padding-right: $padding-base-vertical;
}
}
.role_dropdown > li {
word-break: break-all;
}
}
}
}
/* Role dropdown menus */
.role_dropdown {
right: 0;
left: auto;
& > li {
.fa-check {
visibility: hidden;
}
&.selected .fa-check {
visibility: visible;
}
}
}
.nav .role_options {
float: right;
}
}
/* Inline member creation */
.add_member_btn {
display: inline;
}
#add_member {
clear: both;
}
.add_member {
float: right;
margin-top: 10px;
margin-right: 15px;
}
.resource-types {
.membership {
li .scope {
background: none;
margin-top: 10px;
margin-bottom: 10px;
}
li .select_resource {
margin-left: 5px;
margin-top: 15px;
}
li .display_name {
width: 130px;
margin-left: 10px;
margin-top: 15px;
margin-bottom: 15px;
}
}
}
/* Fixes overflow on dropdowns in modal */
.dropdown_fix {
overflow: visible;
}
/* Replaces CPU hungry spin.js with animated gif */
.loading_gif {
margin-right: 0.5em;
float: left;
}
/* Styling for inline object creation buttons */
.btn-inline {
margin-bottom: 9px;
}
.modal-body fieldset .form-field select[data-add-item-url] {
width: 275px;
margin-right: 2px;
}
/* Styling for draged network object */
#networkListSortContainer {
display: none;
}
.networklist {
padding: 6px;
background: #eee;
border: 1px solid $border-color;
min-height: 2em;
width: auto !important;
@include box-sizing(border-box);
li {
width: 80%;
list-style-type: none;
margin: 6px auto;
padding: 3px;
background: $body-bg;
border: 1px solid #aaa;
line-height: 18px;
border-radius: 3px;
cursor: move;
padding-left: 23px;
background: $body-bg url(../img/drag.png) no-repeat 11px 50%;
em {
font-size: 0.5em;
line-height: 1em;
color:#999;
font-style: normal;
margin-left: 0.8em;
}
i {
margin-right: 5px;
vertical-align: middle;
}
a.btn {
@include box-sizing(border-box);
font-size: 11px;
line-height: 12px;
padding: 2px 5px 3px;
margin-right: 1px;
width: 18px;
text-align: center;
right:5px;
vertical-align: middle;
float: right;
&:before {
content: "+";
}
}
}
li.ui-sortable-helper {
background-color: #def;
}
li.ui-state-highlight {
border: 1px dotted $gray-light;
background: #efefef;
height: 0.5em;
}
li:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
}
#selected_network {
margin-bottom: 1.5em;
counter-reset:v1 0;
background: #edf9ff;
border:1px solid #c0d9e4;
li {
position: relative;
a.btn:before {
content: "-";
}
}
li:before {
content:"NIC:"counter(v1);
counter-increment:v1;
display: inline-block;
margin-right: 5px;
background: $gray;
color: $body-bg;
font-size: 90%;
padding: 0px 4px;
vertical-align: middle;
border-radius: 2px;
position: absolute;
left: -2em;
}
&.dragging {
li:before {
content:"NIC:";
background-color:rgba(102,102,102,0.5);
padding-right: 10px;
}
li.ui-state-highlight:before {
content:"";
background:transparent;
}
}
}
/**** Resource Topology CSS ****/
.link {
stroke: #999;
stroke-width: 1.5px;
}
.node {
cursor:pointer;
}
.node text {
font: 12px sans-serif;
}
#resource_container {
position:relative;
}
#stack_box {
position: absolute;
width: 300px;
top: 10px;
left: 10px;
}
#stack_box h3 {
font-size: 11pt;
line-height: 20px;
}
#stack_box p {
margin: 0;
font-size: 9pt;
line-height: 14px;
}
#stack_box a {
margin: 0;
font-size: 9pt;
line-height: 14px;
}
#stack_box img {
float:left;
}
#stack_box #stack_info {
float:left;
white-space:normal;
width:200px;
}
#info_box {
position: absolute;
width: 300px;
top: 100px;
left: 10px;
}
#info_box h3 {
font-size: 9pt;
line-height: 20px;
}
#info_box p {
margin: 0;
font-size: 9pt;
line-height: 14px;
}
#info_box a {
margin: 0;
font-size: 9pt;
line-height: 14px;
}
#info_box .error {
color: darken($brand-danger, 20%);
}
/* Styling for draged firewall rule object */
#ruleListSortContainer {
display: none;
}
.rulelist {
padding: 6px;
background: #eee;
border: 1px solid $border-color;
min-height: 2em;
width: auto !important;
@include box-sizing(border-box);
li {
width: 226px;
list-style-type: none;
margin: 6px auto;
padding: 3px;
background: $body-bg;
border: 1px solid $border-color;
line-height: 18px;
border-radius: 3px;
cursor: move;
padding-left: 23px;
background: $body-bg url(../img/drag.png) no-repeat 11px 50%;
em {
font-size: 0.5em;
line-height: 1em;
color:#999;
font-style: normal;
margin-left: 0.8em;
}
i {
margin-right: 5px;
vertical-align: middle;
}
a.btn {
@include box-sizing(border-box);
font-size: 11px;
line-height: 12px;
padding: 2px 5px 3px;
margin-right: 1px;
width: 18px;
text-align: center;
//position: absolute;
right:5px;
vertical-align: middle;
float: right;
&:before {
content: "+";
}
}
}
li.ui-sortable-helper {
background-color: #def;
}
li.ui-state-highlight {
border: 1px dotted $border-color;
background: #efefef;
height: 0.5em;
}
li:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
}
#selected_rule {
margin-bottom: 1.5em;
counter-reset:v1 0;
background: #edf9ff;
border:1px solid $border-color;
li {
position: relative;
a.btn {
&:before {
content: "-";
}
}
}
li:before {
content:"rule:"counter(v1);
counter-increment:v1;
display: inline-block;
margin-right: 5px;
background: $gray;
color:$body-bg;
font-size: 90%;
padding: 0px 4px;
vertical-align: middle;
border-radius: 2px;
position: absolute;
left: -2em;
}
&.dragging {
li:before {
content:"rule:";
background-color:rgba(102,102,102,0.5);
padding-right: 10px;
}
li.ui-state-highlight:before {
content:"";
background:transparent;
}
}
}
/* Styling for draged firewall router object */
#routerListSortContainer {
display: none;
}
.routerlist {
padding: 6px;
background: #eee;
border: 1px solid $border-color;
min-height: 2em;
width: auto !important;
@include box-sizing(border-box);
li {
width: 226px;
list-style-type: none;
margin: 6px auto;
padding: 3px;
background: $body-bg;
border: 1px solid $border-color;
line-height: 18px;
border-radius: 3px;
cursor: move;
padding-left: 23px;
background: $body-bg url(../img/drag.png) no-repeat 11px 50%;
em {
font-size: 0.5em;
line-height: 1em;
color:#999;
font-style: normal;
margin-left: 0.8em;
}
i {
margin-right: 5px;
vertical-align: middle;
}
a.btn {
@include box-sizing(border-box);
font-size: 11px;
line-height: 12px;
padding: 2px 5px 3px;
margin-right: 1px;
width: 18px;
text-align: center;
//position: absolute;
right:5px;
vertical-align: middle;
float: right;
&:before {
content: "+";
}
}
}
li.ui-sortable-helper {
background-color: #def;
}
li.ui-state-highlight {
border: 1px dotted $border-color;
background: #efefef;
height: 0.5em;
}
li:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
}
#selected_router {
margin-bottom: 1.5em;
counter-reset:v1 0;
background: #edf9ff;
border:1px solid $border-color;
li {
position: relative;
a.btn {
&:before {
content: "-";
}
}
}
li:before {
content:"router:"counter(v1);
counter-increment:v1;
display: inline-block;
margin-right: 5px;
background: $gray;
color:$body-bg;
font-size: 90%;
padding: 0px 4px;
vertical-align: middle;
border-radius: 2px;
position: absolute;
left: -2em;
}
&.dragging {
li:before {
content:"router:";
background-color:rgba(102,102,102,0.5);
padding-right: 10px;
}
li.ui-state-highlight:before {
content:"";
background:transparent;
}
}
}
/* Read only text fields */
.form-control[readonly], .view-credentials input {
cursor: text;
}
/**** Popover ****/
a.link-popover { cursor: default; }
a:hover.link-popover { text-decoration: none; }
/* Fix for password fields reveal icon */
.form-group span.form-control-feedback.fa {
line-height: 32px;
}
.has-feedback .form-control-feedback {
top: 0;
}
/**** Details Override ****/
.page-header > .breadcrumb {
font-size: $font-size-h3;
margin-bottom: 0;
.actions_column {
padding: 0;
}
}
.detail {
ul {
padding-left: 0;
}
dt, dd {
text-align: left;
line-height: $line-height-small;
}
}
input::-ms-clear, input::-ms-reveal {
display: none;
}
/* public key text area */
textarea.key_text {
width: 55em;
height: 11em;
resize: none;
border: none;
}
/**** Form Horizontal Override ****/
.form-horizontal {
.form-group {
margin-right: 0px !important;
}
.form-control-feedback {
right: 0px !important;
}
}