http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-admin/src/main/resources/ui/admin-web/app/styles/theme/bootstrap-ambari.css ---------------------------------------------------------------------- diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/styles/theme/bootstrap-ambari.css b/ambari-admin/src/main/resources/ui/admin-web/app/styles/theme/bootstrap-ambari.css new file mode 100644 index 0000000..7d1ad61 --- /dev/null +++ b/ambari-admin/src/main/resources/ui/admin-web/app/styles/theme/bootstrap-ambari.css @@ -0,0 +1,1518 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +@font-face { + font-family: 'Roboto'; + font-weight: normal; + font-style: normal; + src: url('fonts/Roboto-Regular-webfont.eot'); + src: url('fonts/Roboto-Regular-webfont.eot?#iefix') format('embedded-opentype'), url('fonts/Roboto-Regular-webfont.woff') format('woff'), url('fonts/Roboto-Regular-webfont.ttf') format('truetype'), url('fonts/Roboto-Regular-webfont.svg#robotoregular') format('svg'); +} +.font-mixin { + font-family: 'Roboto', sans-serif; + font-weight: normal; + font-style: normal; + line-height: 1; + color: #333; +} +.btn, +.btn:focus { + outline: none; + font-family: 'Roboto', sans-serif; + text-transform: uppercase; + height: 34px; + font-size: 14px; + padding: 10px 20px; + line-height: 14px; +} +.btn .glyphicon, +.btn:focus .glyphicon { + top: -1px; + float: left; +} +.box-shadow { + box-shadow: 0 0 2px 0 #1391c1; +} +.btn-disabled { + opacity: 0.6; + box-shadow: none; +} +.btn-default-disabled { + opacity: 0.6; + box-shadow: none; + color: #FFF; + background-color: #808793; + border: none; +} +.btn-default, +.btn-default:focus { + color: #666; + background-color: #FFF; + border: 1px solid #CFD3D7; +} +.btn-default:hover, +.btn-default:focus:hover { + color: #FFF; + background-color: #808793; +} +.btn-default:active, +.btn-default:focus:active { + color: #666; + background-color: #FFF; + border: 1px solid #CFD3D7; + box-shadow: 0 0 2px 0 #1391c1; +} +.btn-default[disabled], +.btn-default:focus[disabled], +.btn-default.disabled, +.btn-default:focus.disabled { + opacity: 0.6; + box-shadow: none; + color: #FFF; + background-color: #808793; + border: none; +} +.btn-default[disabled]:active, +.btn-default:focus[disabled]:active, +.btn-default.disabled:active, +.btn-default:focus.disabled:active, +.btn-default[disabled].active, +.btn-default:focus[disabled].active, +.btn-default.disabled.active, +.btn-default:focus.disabled.active, +.btn-default[disabled]:hover, +.btn-default:focus[disabled]:hover, +.btn-default.disabled:hover, +.btn-default:focus.disabled:hover { + opacity: 0.6; + box-shadow: none; + color: #FFF; + background-color: #808793; + border: none; +} +.btn-primary-disabled { + opacity: 0.6; + box-shadow: none; + color: #D1E8D1; + background-color: #3FAE2A; + border: 1px solid #3FAE2A; +} +.btn-primary, +.btn-primary:focus { + color: #FFF; + background-color: #3FAE2A; + border: 1px solid #3FAE2A; +} +.btn-primary:hover, +.btn-primary:focus:hover { + color: #FFF; + background-color: #429929; + border: 1px solid #429929; +} +.btn-primary:active, +.btn-primary:focus:active, +.btn-primary.active, +.btn-primary:focus.active { + color: #FFF; + background-color: #3FAE2A; + border: 1px solid #3FAE2A; + box-shadow: 0 0 2px 0 #1391c1; +} +.btn-primary[disabled], +.btn-primary:focus[disabled], +.btn-primary.disabled, +.btn-primary:focus.disabled { + opacity: 0.6; + box-shadow: none; + color: #D1E8D1; + background-color: #3FAE2A; + border: 1px solid #3FAE2A; +} +.btn-primary[disabled]:active, +.btn-primary:focus[disabled]:active, +.btn-primary.disabled:active, +.btn-primary:focus.disabled:active, +.btn-primary[disabled].active, +.btn-primary:focus[disabled].active, +.btn-primary.disabled.active, +.btn-primary:focus.disabled.active, +.btn-primary[disabled]:hover, +.btn-primary:focus[disabled]:hover, +.btn-primary.disabled:hover, +.btn-primary:focus.disabled:hover { + opacity: 0.6; + box-shadow: none; + color: #D1E8D1; + background-color: #3FAE2A; + border: 1px solid #3FAE2A; +} +.btn-secondary-disabled { + opacity: 0.6; + box-shadow: none; + color: #D1E8D1; + background-color: #429929; + border: 1px solid #3FAE2A; +} +.btn-secondary, +.btn-secondary:focus { + color: #429929; + background-color: #FFF; + border: 1px solid #3FAE2A; +} +.btn-secondary:hover, +.btn-secondary:focus:hover { + color: #FFF; + background-color: #429929; +} +.btn-secondary:active, +.btn-secondary:focus:active { + color: #429929; + background-color: #FFF; + box-shadow: 0 0 2px 0 #1391c1; +} +.btn-secondary[disabled], +.btn-secondary:focus[disabled], +.btn-secondary.disabled, +.btn-secondary:focus.disabled { + opacity: 0.6; + box-shadow: none; + color: #D1E8D1; + background-color: #429929; + border: 1px solid #3FAE2A; +} +.btn-secondary[disabled]:active, +.btn-secondary:focus[disabled]:active, +.btn-secondary.disabled:active, +.btn-secondary:focus.disabled:active, +.btn-secondary[disabled].active, +.btn-secondary:focus[disabled].active, +.btn-secondary.disabled.active, +.btn-secondary:focus.disabled.active, +.btn-secondary[disabled]:hover, +.btn-secondary:focus[disabled]:hover, +.btn-secondary.disabled:hover, +.btn-secondary:focus.disabled:hover { + opacity: 0.6; + box-shadow: none; + color: #D1E8D1; + background-color: #429929; + border: 1px solid #3FAE2A; +} +.btn-success { + border: none; +} +.btn-regular-default-state { + background-color: #FFF; + color: #666; + border: 1px solid #cfd3d7; +} +.btn-primary-default-state { + background-color: #3FAE2A; + border: 1px solid #3FAE2A; + color: #FFF; +} +.btn-group.open .btn.dropdown-toggle, +.dropdown.open .btn.dropdown-toggle { + box-shadow: inset 0px 0px 3px 0px #1391c1; +} +.btn-group.open .btn.dropdown-toggle, +.dropdown.open .btn.dropdown-toggle, +.btn-group.open .btn.dropdown-toggle.btn-default, +.dropdown.open .btn.dropdown-toggle.btn-default { + background-color: #FFF; + color: #666; + border: 1px solid #cfd3d7; +} +.btn-group.open .btn.dropdown-toggle:hover, +.dropdown.open .btn.dropdown-toggle:hover, +.btn-group.open .btn.dropdown-toggle.btn-default:hover, +.dropdown.open .btn.dropdown-toggle.btn-default:hover { + background-color: #FFF; + color: #666; + border: 1px solid #cfd3d7; +} +.btn-group.open .btn.dropdown-toggle + .dropdown-menu > li > a:hover, +.dropdown.open .btn.dropdown-toggle + .dropdown-menu > li > a:hover, +.btn-group.open .btn.dropdown-toggle.btn-default + .dropdown-menu > li > a:hover, +.dropdown.open .btn.dropdown-toggle.btn-default + .dropdown-menu > li > a:hover { + background-color: #808793; + color: #FFF; +} +.btn-group.open .btn.dropdown-toggle.btn-primary, +.dropdown.open .btn.dropdown-toggle.btn-primary { + background-color: #3FAE2A; + border: 1px solid #3FAE2A; + color: #FFF; +} +.btn-group.open .btn.dropdown-toggle.btn-primary:hover, +.dropdown.open .btn.dropdown-toggle.btn-primary:hover { + background-color: #3FAE2A; + border: 1px solid #3FAE2A; + color: #FFF; +} +.btn-group.open .btn.dropdown-toggle.btn-primary + .dropdown-menu > li > a:hover, +.dropdown.open .btn.dropdown-toggle.btn-primary + .dropdown-menu > li > a:hover { + background-color: #429929; + color: #FFF; +} +.btn-group.open .dropdown-menu, +.dropdown.open .dropdown-menu { + font-family: 'Roboto', sans-serif; + font-weight: normal; + font-style: normal; + line-height: 1; + color: #333; + border-radius: 2px; + font-size: 14px; + min-width: 200px; + background: #FFF; + color: #666; + border: 1px solid #cfd3d7; +} +.btn-group.open .dropdown-menu > li, +.dropdown.open .dropdown-menu > li { + margin-bottom: 1px; +} +.btn-group.open .dropdown-menu > li > a, +.dropdown.open .dropdown-menu > li > a { + height: 24px; +} +.btn-group .btn.dropdown-toggle:first-child, +.dropdown .btn.dropdown-toggle:first-child { + min-width: 80px; +} +.btn-group .btn.dropdown-toggle.disabled, +.dropdown .btn.dropdown-toggle.disabled, +.btn-group .btn.dropdown-toggle[disabled], +.dropdown .btn.dropdown-toggle[disabled] { + opacity: 0.6; +} +input.form-control { + font-size: 14px; + border-radius: 2px; + color: #666; + border: 1px solid #CFD3D7; + height: 34px; + padding: 10px; +} +input.form-control:focus { + border-color: #1291c1; + box-shadow: none; +} +.help-block { + color: #999999; + font-size: 14px; +} +.help-block.validation-block { + color: #999999; + margin-top: 10px; +} +.help-block.validation-block::before { + position: relative; + top: 2px; + margin-right: 5px; + font-family: 'Glyphicons Halflings'; +} +.has-success input.form-control { + color: #666; + border: 1px solid #1EB475; +} +.has-success input.form-control:focus { + border-color: #1EB475; + box-shadow: none; +} +.has-success .help-block.validation-block::before { + content: '\e084'; + color: #1EB475; +} +.has-error input.form-control { + color: #666; + border: 1px solid #EF6162; +} +.has-error input.form-control:focus { + border-color: #EF6162; + box-shadow: none; +} +.has-error .help-block.validation-block::before { + content: '\e083'; + color: #EF6162; +} +.has-warning input.form-control { + color: #666; + border: 1px solid #E98A40; +} +.has-warning input.form-control:focus { + border-color: #E98A40; + box-shadow: none; +} +.has-warning .help-block.validation-block::before { + content: '\e101'; + color: #E98A40; +} +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + color: #999999; + border-color: #cccccc; + background-color: #dddddd; +} +h2.table-title { + font-family: 'Roboto', sans-serif; + font-weight: normal; + font-style: normal; + line-height: 1; + color: #333; + margin-top: 10px; + font-size: 20px; +} +.table { + color: #666; + font-size: 13px; +} +.table thead, +.table tfoot { + color: #999; +} +.table input[type="checkbox"] + label { + position: relative; + line-height: 1.3em; + font-size: initial; + top: 4px; + margin-bottom: 0; +} +.table thead > tr > th { + border-bottom-color: #EEE; +} +.table tfoot > tr:first-of-type > td { + border-top-width: 2px; + border-top-color: #EEE; +} +.table > tbody > tr > td { + border-top-color: #EEE; +} +.table > tbody > tr.active { + background-color: #EEE; +} +.table > tbody > tr.active > td { + background-color: #EEE; +} +.table.table-hover .action { + visibility: hidden; + padding: 0; + line-height: 1; +} +.table.table-hover .action:hover { + text-decoration: none; +} +.table.table-hover > tbody > tr { + border-width: 0 1px 1px; + border-style: solid; + border-color: #EEE transparent; +} +.table.table-hover > tbody > tr > td { + border-width: 0; +} +.table.table-hover > tbody > tr:hover { + border-color: #A7DFF2; + background-color: #E7F6FC; +} +.table.table-hover > tbody > tr:hover > td { + border-top: 1px solid #A7DFF2; + background-color: #E7F6FC; +} +.table.table-hover > tbody > tr:hover > td .action { + visibility: visible; +} +.table.table-hover > tbody > tr:first-of-type > td { + border-top: 1px solid transparent; +} +.table.table-hover > tbody > tr:first-of-type:hover > td { + border-color: #A7DFF2; +} +.pagination-block .pagination-block-item { + float: left; + padding: 0 5px; +} +.pagination-block .pagination-block-item a, +.pagination-block .pagination-block-item a:visited, +.pagination-block .pagination-block-item a:focus { + text-decoration: none; +} +.pagination-block .pagination-block-item select { + border: none; + background-color: transparent; + color: #1491C1; +} +.nav.nav-tabs { + border: none; + margin-bottom: 20px; +} +.nav.nav-tabs li a { + border-width: 0; + border-radius: 0; + border-bottom: 3px solid transparent; + color: #6B6C6C; + text-transform: uppercase; +} +.nav.nav-tabs li a:hover, +.nav.nav-tabs li a:active, +.nav.nav-tabs li a:focus { + color: #333; + border-top-width: 0; + border-left-width: 0; + border-right-width: 0; + background: none; +} +.nav.nav-tabs li a .badge.badge-important { + display: inline; + vertical-align: baseline; +} +.nav.nav-tabs li.active a { + color: #333; + border-bottom: 3px solid #3FAE2A; + padding-bottom: 2px; +} +.nav-tabs-left li, +.nav-tabs-right li { + float: none; + margin-bottom: 3px; +} +.nav-tabs-left li a, +.nav-tabs-right li a { + margin-right: 0; +} +.nav-tabs-left li { + margin-right: -1px; +} +.nav-tabs-left li a { + border: 3px solid transparent !important; +} +.nav-tabs-left li.active a, +.nav-tabs-left li.active a:hover, +.nav-tabs-left li.active a:active, +.nav-tabs-left li.active a:focus { + border-right: 3px solid #3FAE2A !important; +} +.nav-tabs-right li { + margin-left: -1px; +} +.nav-tabs-right li a { + border: 3px solid transparent !important; +} +.nav-tabs-right li.active a, +.nav-tabs-right li.active a:hover, +.nav-tabs-right li.active a:active, +.nav-tabs-right li.active a:focus { + border-left: 3px solid #3FAE2A !important; +} +.wizard { + border: 2px solid #ebecf1; +} +.wizard .wizard-header h3 { + font-family: 'Roboto', sans-serif; + font-weight: normal; + font-style: normal; + line-height: 1; + font-size: 20px; + color: #333; + margin: 15px 20px; +} +.wizard .wizard-body { + overflow: hidden; + margin: 0; +} +.wizard .wizard-body .wizard-content { + background: #ebecf1; + padding-top: 25px; + float: left; + margin-bottom: -99999px; + padding-bottom: 99999px; +} +.wizard .wizard-body .wizard-content .step-title { + font-family: 'Roboto', sans-serif; + font-weight: normal; + font-style: normal; + line-height: 1; + color: #333; + font-weight: bold; + font-size: 18px; + color: #666; +} +.wizard .wizard-body .wizard-content .step-description { + font-family: 'Roboto', sans-serif; + font-weight: normal; + font-style: normal; + line-height: 1; + color: #333; + font-size: 14px; + line-height: 1.4; + color: #999; +} +.wizard .wizard-body .wizard-content .panel.panel-default { + border: none; + box-shadow: none; + margin-top: 20px; +} +.wizard .wizard-body .wizard-content .panel.panel-default .panel-body { + padding: 30px 20px; +} +.wizard .wizard-body .wizard-nav { + min-height: 550px; + padding-top: 25px; + background-color: #323544; + float: left; + margin-bottom: -99999px; + padding-bottom: 99999px; +} +.wizard .wizard-body .wizard-nav .nav li { + padding: 0px 15px; +} +.wizard .wizard-body .wizard-nav .nav li a { + height: 48px; + padding: 0px 5px; + display: table-cell; + vertical-align: middle; +} +.wizard .wizard-body .wizard-nav .nav li .step-marker { + position: absolute; + top: 9px; + line-height: 16px; + text-align: center; + width: 20px; + height: 20px; + border: 2px solid #1EB475; + border-radius: 50%; + font-size: 12px; + font-style: inherit; + color: #1EB475; + background-color: #323544; +} +.wizard .wizard-body .wizard-nav .nav li .step-name { + font-family: 'Roboto', sans-serif; + font-weight: normal; + font-style: normal; + line-height: 1; + color: #333; + font-size: 14px; + color: #999; + margin-left: 30px; +} +.wizard .wizard-body .wizard-nav .nav li .step-index { + line-height: 18px; +} +.wizard .wizard-body .wizard-nav .nav li .step-description { + font-family: 'Roboto', sans-serif; + font-weight: normal; + font-style: normal; + line-height: 1; + color: #333; + font-size: 12px; + color: #999; + margin-left: 30px; +} +.wizard .wizard-body .wizard-nav .nav li.completed .step-marker { + background-color: #1EB475; + color: white; + font-size: 10px; + padding-left: 2px; +} +.wizard .wizard-body .wizard-nav .nav li.completed .step-marker .step-index { + display: none; +} +.wizard .wizard-body .wizard-nav .nav li.completed .step-marker:after { + font-family: "Glyphicons Halflings"; + content: "\e013"; + position: relative; + top: 1px; + left: -1px; +} +.wizard .wizard-body .wizard-nav .nav li.completed:after { + width: 2px; + height: 100%; + position: absolute; + background-color: #1EB475; + content: ""; + top: 25px; + left: 29px; +} +.wizard .wizard-body .wizard-nav .nav li.completed:last-child:after { + content: none; +} +.wizard .wizard-body .wizard-nav .nav li.active .step-name { + font-weight: bold; +} +.wizard .wizard-body .wizard-nav .nav li.disabled .step-marker { + color: #666; + border-color: #666; +} +.wizard .wizard-body .wizard-nav .nav li.disabled .step-name, +.wizard .wizard-body .wizard-nav .nav li.disabled .step-description { + color: #666; +} +.wizard .wizard-body .wizard-nav .nav li.disabled.completed .step-marker { + background-color: #1EB475; + border: 2px solid #1EB475; + color: white; +} +.wizard .wizard-body .wizard-nav .nav-pills > li.active > a, +.wizard .wizard-body .wizard-nav .nav-pills > li.active > a:focus, +.wizard .wizard-body .wizard-nav .nav-pills > li.active > a:hover, +.wizard .wizard-body .wizard-nav .nav > li > a:focus, +.wizard .wizard-body .wizard-nav .nav > li > a:hover { + background-color: inherit; +} +.wizard .wizard-body .wizard-footer { + background: white; + padding: 15px 20px; +} +.wizard .wizard-body .wizard-footer button { + margin: 0 10px; +} +.checkbox-disabled-style { + background-color: #b2b8c1; + border-color: #b2b8c1; +} +input[type="checkbox"]:not(:checked), +input[type="radio"]:not(:checked), +input[type="checkbox"]:checked, +input[type="radio"]:checked { + display: none; +} +input[type="checkbox"]:not(:checked) + label, +input[type="radio"]:not(:checked) + label, +input[type="checkbox"]:checked + label, +input[type="radio"]:checked + label { + position: relative; + padding-left: 20px; +} +input[type="checkbox"]:not(:checked) + label:hover:before, +input[type="radio"]:not(:checked) + label:hover:before, +input[type="checkbox"]:checked + label:hover:before, +input[type="radio"]:checked + label:hover:before { + border-color: #1491C1; + background-color: #1491C1; +} +input[type="checkbox"]:checked + label:before, +input[type="radio"]:checked + label:before { + background-color: #1491C1; + border-color: #1491C1; +} +input[type="checkbox"][disabled] + label:before, +input[type="radio"][disabled] + label:before, +input[type="checkbox"].disabled + label:before, +input[type="radio"].disabled + label:before, +input[type="checkbox"][disabled] + label:hover:before, +input[type="radio"][disabled] + label:hover:before, +input[type="checkbox"].disabled + label:hover:before, +input[type="radio"].disabled + label:hover:before { + background-color: #b2b8c1; + border-color: #b2b8c1; +} +input[type="checkbox"] + label:before { + content: ''; + position: absolute; + left: 0; + top: 4px; + width: 10px; + height: 10px; + box-sizing: border-box; + border-radius: 2px; + border-width: 1px; + border-style: solid; + border-color: #ddd; +} +input[type="checkbox"]:checked + label:after { + content: '\2714'; + color: #FFF; + position: absolute; + top: 0; + left: 2px; + font-size: 9px; +} +input[type="radio"] + label:before, +input.radio + label:before { + content: ''; + position: absolute; + left: 0; + top: 0; + width: 12px; + height: 12px; + box-sizing: border-box; + border-radius: 12px; + border-width: 1px; + border-style: solid; + border-color: #ddd; +} +input[type="radio"]:checked + label:after, +input.radio:checked + label:after { + content: ''; + background-color: #FFF; + position: absolute; + top: 3px; + left: 3px; + width: 6px; + height: 6px; + border-radius: 6px; +} +.navigation-bar-container { + height: auto; + width: 230px; + background-color: #323544; + padding: 0; + -ms-overflow-style: none; + transition: width 0.5s ease-out; + -webkit-font-smoothing: antialiased; +} +.navigation-bar-container ul.nav.side-nav-header { + width: 230px; + transition: width 0.5s ease-out; +} +.navigation-bar-container ul.nav.side-nav-header li.navigation-header { + background: #313d54; + padding: 15px 5px 15px 25px; + height: 55px; +} +.navigation-bar-container ul.nav.side-nav-header li.navigation-header > a.ambari-logo { + padding: 0; +} +.navigation-bar-container ul.nav.side-nav-header li.navigation-header > a.ambari-logo > img { + height: 25px; + float: left; + margin-left: -3px; +} +.navigation-bar-container ul.nav.side-nav-header li.navigation-header .btn-group { + cursor: pointer; + margin-top: 3px; +} +.navigation-bar-container ul.nav.side-nav-header li.navigation-header .btn-group:hover span.ambari-header { + color: #fff; +} +.navigation-bar-container ul.nav.side-nav-header li.navigation-header .btn-group span.ambari-header { + font-family: 'Roboto', sans-serif; + font-weight: normal; + font-style: normal; + line-height: 1; + color: #333; + font-size: 20px; + width: 55px; + display: inline; + color: #b8bec4; + padding: 0 8px 0 10px; +} +.navigation-bar-container ul.nav.side-nav-header li.navigation-header .btn-group span.toggle-icon { + margin-bottom: 5px; + font-size: 13px; + display: inline-block; + vertical-align: middle; + color: #43AD49; +} +.navigation-bar-container ul.nav.side-nav-header li.navigation-header .btn-group.open .dropdown-toggle { + -webkit-box-shadow: none; + box-shadow: none; +} +.navigation-bar-container ul.nav.side-nav-header li.navigation-header ul.dropdown-menu { + top: 30px; +} +.navigation-bar-container ul.nav.side-nav-header li.navigation-header ul.dropdown-menu li > a { + font-family: 'Roboto', sans-serif; + font-weight: normal; + font-style: normal; + line-height: 1; + color: #333; + font-size: 14px; + color: #666; + line-height: 1.42; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.navigation-bar-container ul.nav.side-nav-header li.navigation-header ul.dropdown-menu li > a:hover { + background: #f5f5f5; +} +.navigation-bar-container ul.nav.side-nav-menu, +.navigation-bar-container ul.nav.side-nav-footer { + background-color: #323544; + width: 230px; + transition: width 0.5s ease-out; +} +.navigation-bar-container ul.nav.side-nav-menu li, +.navigation-bar-container ul.nav.side-nav-footer li { + padding: 0; + margin: 0; +} +.navigation-bar-container ul.nav.side-nav-menu li.navigation-footer > a, +.navigation-bar-container ul.nav.side-nav-footer li.navigation-footer > a, +.navigation-bar-container ul.nav.side-nav-menu li.submenu-li > a, +.navigation-bar-container ul.nav.side-nav-footer li.submenu-li > a, +.navigation-bar-container ul.nav.side-nav-menu li.mainmenu-li > a, +.navigation-bar-container ul.nav.side-nav-footer li.mainmenu-li > a { + display: table-cell; + vertical-align: middle; + width: 230px; + border-radius: 0; + -moz-border-radius: 0; + -webkit-border-radius: 0; + white-space: nowrap; +} +.navigation-bar-container ul.nav.side-nav-menu li.navigation-footer > a .navigation-menu-item, +.navigation-bar-container ul.nav.side-nav-footer li.navigation-footer > a .navigation-menu-item, +.navigation-bar-container ul.nav.side-nav-menu li.submenu-li > a .navigation-menu-item, +.navigation-bar-container ul.nav.side-nav-footer li.submenu-li > a .navigation-menu-item, +.navigation-bar-container ul.nav.side-nav-menu li.mainmenu-li > a .navigation-menu-item, +.navigation-bar-container ul.nav.side-nav-footer li.mainmenu-li > a .navigation-menu-item { + font-family: 'Roboto', sans-serif; + font-weight: normal; + font-style: normal; + line-height: 1; + color: #333; + font-size: 14px; + color: #b8bec4; + padding-left: 8px; +} +.navigation-bar-container ul.nav.side-nav-menu li.navigation-footer > a .navigation-icon, +.navigation-bar-container ul.nav.side-nav-footer li.navigation-footer > a .navigation-icon, +.navigation-bar-container ul.nav.side-nav-menu li.submenu-li > a .navigation-icon, +.navigation-bar-container ul.nav.side-nav-footer li.submenu-li > a .navigation-icon, +.navigation-bar-container ul.nav.side-nav-menu li.mainmenu-li > a .navigation-icon, +.navigation-bar-container ul.nav.side-nav-footer li.mainmenu-li > a .navigation-icon { + line-height: 18px; + font-size: 16px; + color: #b8bec4; +} +.navigation-bar-container ul.nav.side-nav-menu li.navigation-footer > a .toggle-icon, +.navigation-bar-container ul.nav.side-nav-footer li.navigation-footer > a .toggle-icon, +.navigation-bar-container ul.nav.side-nav-menu li.submenu-li > a .toggle-icon, +.navigation-bar-container ul.nav.side-nav-footer li.submenu-li > a .toggle-icon, +.navigation-bar-container ul.nav.side-nav-menu li.mainmenu-li > a .toggle-icon, +.navigation-bar-container ul.nav.side-nav-footer li.mainmenu-li > a .toggle-icon { + line-height: 14px; + font-size: 14px; + color: #b8bec4; + padding: 3px 5px 3px 10px; +} +.navigation-bar-container ul.nav.side-nav-menu li.mainmenu-li > a, +.navigation-bar-container ul.nav.side-nav-footer li.mainmenu-li > a { + padding: 10px 5px 10px 20px; +} +.navigation-bar-container ul.nav.side-nav-menu li.navigation-footer > a, +.navigation-bar-container ul.nav.side-nav-footer li.navigation-footer > a { + padding: 14px 5px 14px 20px; +} +.navigation-bar-container ul.nav.side-nav-menu li.submenu-li > a, +.navigation-bar-container ul.nav.side-nav-footer li.submenu-li > a { + padding: 10px 5px 10px 25px; +} +.navigation-bar-container ul.nav.side-nav-menu li.navigation-footer, +.navigation-bar-container ul.nav.side-nav-footer li.navigation-footer { + background: #313d54; + height: 48px; +} +.navigation-bar-container ul.nav.side-nav-menu li.navigation-footer a .navigation-icon, +.navigation-bar-container ul.nav.side-nav-footer li.navigation-footer a .navigation-icon { + color: #3fae2a; + font-size: 19px; + position: relative; + padding: 0 15px; + left: calc(30%); +} +.navigation-bar-container ul.nav.side-nav-menu li.navigation-footer a .navigation-icon:hover, +.navigation-bar-container ul.nav.side-nav-footer li.navigation-footer a .navigation-icon:hover { + color: #fff; +} +.navigation-bar-container ul.nav.side-nav-menu li > ul > li, +.navigation-bar-container ul.nav.side-nav-footer li > ul > li { + background-color: #323544; +} +.navigation-bar-container ul.nav.side-nav-menu li > ul > li a, +.navigation-bar-container ul.nav.side-nav-footer li > ul > li a { + font-family: 'Roboto', sans-serif; + font-weight: normal; + font-style: normal; + line-height: 1; + color: #333; + font-size: 14px; + color: #999; +} +.navigation-bar-container ul.nav.side-nav-menu li > ul > li a .submenu-icon, +.navigation-bar-container ul.nav.side-nav-footer li > ul > li a .submenu-icon { + line-height: 14px; + font-size: 14px; +} +.navigation-bar-container ul.nav.side-nav-menu li > ul > li > a:hover, +.navigation-bar-container ul.nav.side-nav-footer li > ul > li > a:hover, +.navigation-bar-container ul.nav.side-nav-menu li > a:hover, +.navigation-bar-container ul.nav.side-nav-footer li > a:hover { + background: #404351; + cursor: pointer; + color: #fff; +} +.navigation-bar-container ul.nav.side-nav-menu li > ul > li > a:hover .navigation-menu-item, +.navigation-bar-container ul.nav.side-nav-footer li > ul > li > a:hover .navigation-menu-item, +.navigation-bar-container ul.nav.side-nav-menu li > a:hover .navigation-menu-item, +.navigation-bar-container ul.nav.side-nav-footer li > a:hover .navigation-menu-item, +.navigation-bar-container ul.nav.side-nav-menu li > ul > li > a:hover .navigation-icon, +.navigation-bar-container ul.nav.side-nav-footer li > ul > li > a:hover .navigation-icon, +.navigation-bar-container ul.nav.side-nav-menu li > a:hover .navigation-icon, +.navigation-bar-container ul.nav.side-nav-footer li > a:hover .navigation-icon, +.navigation-bar-container ul.nav.side-nav-menu li > ul > li > a:hover .toggle-icon, +.navigation-bar-container ul.nav.side-nav-footer li > ul > li > a:hover .toggle-icon, +.navigation-bar-container ul.nav.side-nav-menu li > a:hover .toggle-icon, +.navigation-bar-container ul.nav.side-nav-footer li > a:hover .toggle-icon, +.navigation-bar-container ul.nav.side-nav-menu li > ul > li > a:hover .submenu-item, +.navigation-bar-container ul.nav.side-nav-footer li > ul > li > a:hover .submenu-item, +.navigation-bar-container ul.nav.side-nav-menu li > a:hover .submenu-item, +.navigation-bar-container ul.nav.side-nav-footer li > a:hover .submenu-item { + color: #fff; +} +.navigation-bar-container ul.nav.side-nav-menu li.active:not(.has-sub-menu), +.navigation-bar-container ul.nav.side-nav-footer li.active:not(.has-sub-menu), +.navigation-bar-container ul.nav.side-nav-menu li.active.collapsed, +.navigation-bar-container ul.nav.side-nav-footer li.active.collapsed { + background: #404351; + cursor: pointer; +} +.navigation-bar-container ul.nav.side-nav-menu li.active:not(.has-sub-menu) > a, +.navigation-bar-container ul.nav.side-nav-footer li.active:not(.has-sub-menu) > a, +.navigation-bar-container ul.nav.side-nav-menu li.active.collapsed > a, +.navigation-bar-container ul.nav.side-nav-footer li.active.collapsed > a { + color: #fff; +} +.navigation-bar-container ul.nav.side-nav-menu li.active:not(.has-sub-menu) > a .navigation-menu-item, +.navigation-bar-container ul.nav.side-nav-footer li.active:not(.has-sub-menu) > a .navigation-menu-item, +.navigation-bar-container ul.nav.side-nav-menu li.active.collapsed > a .navigation-menu-item, +.navigation-bar-container ul.nav.side-nav-footer li.active.collapsed > a .navigation-menu-item, +.navigation-bar-container ul.nav.side-nav-menu li.active:not(.has-sub-menu) > a .submenu-item, +.navigation-bar-container ul.nav.side-nav-footer li.active:not(.has-sub-menu) > a .submenu-item, +.navigation-bar-container ul.nav.side-nav-menu li.active.collapsed > a .submenu-item, +.navigation-bar-container ul.nav.side-nav-footer li.active.collapsed > a .submenu-item, +.navigation-bar-container ul.nav.side-nav-menu li.active:not(.has-sub-menu) > a .navigation-icon, +.navigation-bar-container ul.nav.side-nav-footer li.active:not(.has-sub-menu) > a .navigation-icon, +.navigation-bar-container ul.nav.side-nav-menu li.active.collapsed > a .navigation-icon, +.navigation-bar-container ul.nav.side-nav-footer li.active.collapsed > a .navigation-icon, +.navigation-bar-container ul.nav.side-nav-menu li.active:not(.has-sub-menu) > a .toggle-icon, +.navigation-bar-container ul.nav.side-nav-footer li.active:not(.has-sub-menu) > a .toggle-icon, +.navigation-bar-container ul.nav.side-nav-menu li.active.collapsed > a .toggle-icon, +.navigation-bar-container ul.nav.side-nav-footer li.active.collapsed > a .toggle-icon { + color: #fff; +} +.navigation-bar-container ul.nav.side-nav-menu li.active:not(.has-sub-menu) > a:after, +.navigation-bar-container ul.nav.side-nav-footer li.active:not(.has-sub-menu) > a:after, +.navigation-bar-container ul.nav.side-nav-menu li.active.collapsed > a:after, +.navigation-bar-container ul.nav.side-nav-footer li.active.collapsed > a:after { + left: 0; + top: 50%; + border: solid transparent; + border-width: 10px 7px; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; + border-color: transparent; + border-left-color: #3fae2a; + margin-top: -12px; +} +.navigation-bar-container ul.nav.side-nav-menu .more-actions, +.navigation-bar-container ul.nav.side-nav-footer .more-actions { + display: block; + position: absolute; + top: 14px; + right: 33px; + line-height: 25px; + width: 20px; + text-align: center; + font-size: 14px; + cursor: pointer; + vertical-align: middle; + color: #fff; +} +.navigation-bar-container ul.nav.side-nav-menu .more-actions .dropdown-menu > li > a, +.navigation-bar-container ul.nav.side-nav-footer .more-actions .dropdown-menu > li > a { + color: #666; +} +.navigation-bar-container ul.nav.side-nav-menu .more-actions .dropdown-menu > li > a i, +.navigation-bar-container ul.nav.side-nav-footer .more-actions .dropdown-menu > li > a i { + color: #666; +} +.navigation-bar-container ul.nav.side-nav-menu .more-actions .dropdown-menu > li > a:hover, +.navigation-bar-container ul.nav.side-nav-footer .more-actions .dropdown-menu > li > a:hover { + background: #f5f5f5; +} +.navigation-bar-container ul.nav.side-nav-menu .menu-item-name, +.navigation-bar-container ul.nav.side-nav-footer .menu-item-name { + display: inline-block; + vertical-align: bottom; + max-width: 100px; + overflow: hidden; + text-overflow: ellipsis; + -o-text-overflow: ellipsis; + -ms-text-overflow: ellipsis; + white-space: nowrap; +} +.navigation-bar-container .nav-pills > li.active > a, +.navigation-bar-container .nav-pills > li.active > a:focus, +.navigation-bar-container .nav-pills > li.active > a:hover, +.navigation-bar-container .nav > li > a:focus, +.navigation-bar-container .nav > li > a:hover { + background-color: inherit; +} +.navigation-bar-container.collapsed { + width: 50px; +} +.navigation-bar-container.collapsed ul.nav.side-nav-header { + width: 50px; +} +.navigation-bar-container.collapsed ul.nav.side-nav-header li.navigation-header { + padding: 15px 0 15px 15px; +} +.navigation-bar-container.collapsed ul.nav.side-nav-header li.navigation-header span.ambari-header, +.navigation-bar-container.collapsed ul.nav.side-nav-header li.navigation-header span.toggle-icon, +.navigation-bar-container.collapsed ul.nav.side-nav-header li.navigation-header .dropdown-menu { + display: none; +} +.navigation-bar-container.collapsed ul.nav.side-nav-menu, +.navigation-bar-container.collapsed ul.nav.side-nav-footer { + width: 50px; +} +.navigation-bar-container.collapsed ul.nav.side-nav-menu li a, +.navigation-bar-container.collapsed ul.nav.side-nav-footer li a { + padding: 15px 0 15px 15px; + width: 50px; +} +.navigation-bar-container.collapsed ul.nav.side-nav-menu li a .navigation-menu-item, +.navigation-bar-container.collapsed ul.nav.side-nav-footer li a .navigation-menu-item, +.navigation-bar-container.collapsed ul.nav.side-nav-menu li a .toggle-icon, +.navigation-bar-container.collapsed ul.nav.side-nav-footer li a .toggle-icon { + display: none; +} +.navigation-bar-container.collapsed ul.nav.side-nav-menu li a .navigation-icon, +.navigation-bar-container.collapsed ul.nav.side-nav-footer li a .navigation-icon { + font-size: 19px; +} +.navigation-bar-container.collapsed ul.nav.side-nav-menu li.navigation-footer a .navigation-icon, +.navigation-bar-container.collapsed ul.nav.side-nav-footer li.navigation-footer a .navigation-icon { + padding: 0 5px; + left: 0; +} +.navigation-bar-container.collapsed ul.nav.side-nav-menu li ul.sub-menu, +.navigation-bar-container.collapsed ul.nav.side-nav-footer li ul.sub-menu { + display: none; + width: 230px; + position: absolute; + z-index: 100; + top: 0; + left: 50px; +} +.navigation-bar-container.collapsed ul.nav.side-nav-menu li.submenu-li > a, +.navigation-bar-container.collapsed ul.nav.side-nav-footer li.submenu-li > a { + padding: 10px 5px 10px 25px; + width: 230px; +} +.navigation-bar-container.collapsed ul.nav.side-nav-menu li.active, +.navigation-bar-container.collapsed ul.nav.side-nav-footer li.active { + background: #404351; + cursor: pointer; +} +.navigation-bar-container.collapsed ul.nav.side-nav-menu li.active > a, +.navigation-bar-container.collapsed ul.nav.side-nav-footer li.active > a { + color: #fff; +} +.navigation-bar-container.collapsed ul.nav.side-nav-menu li.active > a .navigation-menu-item, +.navigation-bar-container.collapsed ul.nav.side-nav-footer li.active > a .navigation-menu-item, +.navigation-bar-container.collapsed ul.nav.side-nav-menu li.active > a .submenu-item, +.navigation-bar-container.collapsed ul.nav.side-nav-footer li.active > a .submenu-item, +.navigation-bar-container.collapsed ul.nav.side-nav-menu li.active > a .navigation-icon, +.navigation-bar-container.collapsed ul.nav.side-nav-footer li.active > a .navigation-icon, +.navigation-bar-container.collapsed ul.nav.side-nav-menu li.active > a .toggle-icon, +.navigation-bar-container.collapsed ul.nav.side-nav-footer li.active > a .toggle-icon { + color: #fff; +} +.navigation-bar-container.collapsed ul.nav.side-nav-menu li.active > a:after, +.navigation-bar-container.collapsed ul.nav.side-nav-footer li.active > a:after { + left: 0; + top: 50%; + border: solid transparent; + border-width: 12px 6px; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; + border-color: transparent; + border-left-color: #3fae2a; + margin-top: -12px; +} +.navigation-bar-container.collapsed ul.nav.side-nav-menu .more-actions, +.navigation-bar-container.collapsed ul.nav.side-nav-footer .more-actions { + display: none; +} +.navigation-bar-fit-height { + position: fixed; + top: 0; + bottom: 0; + left: 0; + z-index: 2079; +} +.navigation-bar-fit-height .side-nav-header { + position: absolute; + top: 0; +} +.navigation-bar-fit-height .side-nav-menu { + position: absolute; + top: 55px; + bottom: 50px; +} +.navigation-bar-fit-height .side-nav-footer { + position: absolute; + bottom: 0; +} +.navigation-bar-fit-height .more-actions .dropdown-menu { + position: fixed; + top: auto; + left: auto; +} +.navigation-bar-fit-height .navigation-bar-container { + height: 100%; +} +.navigation-bar-fit-height .navigation-bar-container .side-nav-menu { + overflow-y: auto; +} +.notifications-group { + position: relative; + top: 1px; +} +.notifications-dropdown, +#notifications-dropdown.dropdown-menu { + min-width: 400px; + max-width: 400px; + min-height: 150px; + padding: 0px; + z-index: 1000; + right: -50px; + left: auto; + top: 260%; + border: none; + -webkit-box-shadow: 0px 2px 10px 2px rgba(0, 0, 0, 0.29); + -moz-box-shadow: 0px 2px 10px 2px rgba(0, 0, 0, 0.29); + box-shadow: 0px 2px 10px 2px rgba(0, 0, 0, 0.29); +} +.notifications-dropdown .popup-arrow-up, +#notifications-dropdown.dropdown-menu .popup-arrow-up { + position: absolute; + right: 37px; + top: -40px; + width: 40px; + height: 40px; + overflow: hidden; +} +.notifications-dropdown .popup-arrow-up:after, +#notifications-dropdown.dropdown-menu .popup-arrow-up:after { + content: ""; + position: absolute; + width: 20px; + height: 20px; + background: #fff; + transform: rotate(45deg); + top: 30px; + left: 10px; + box-shadow: -1px -1px 10px -2px rgba(0, 0, 0, 0.5); +} +.notifications-dropdown .notifications-header, +#notifications-dropdown.dropdown-menu .notifications-header { + border-bottom: 1px solid #eee; + padding: 15px 20px; +} +.notifications-dropdown .notifications-header .notifications-title, +#notifications-dropdown.dropdown-menu .notifications-header .notifications-title { + font-family: 'Roboto', sans-serif; + font-weight: normal; + font-style: normal; + line-height: 1; + color: #333; + font-size: 16px; +} +.notifications-dropdown .notifications-body, +#notifications-dropdown.dropdown-menu .notifications-body { + padding: 0px 15px; + overflow: auto; + max-height: 500px; +} +.notifications-dropdown .notifications-body .no-alert-text, +#notifications-dropdown.dropdown-menu .notifications-body .no-alert-text { + padding: 15px 5px; +} +.notifications-dropdown .notifications-body .table-controls, +#notifications-dropdown.dropdown-menu .notifications-body .table-controls { + padding: 10px 0px; + margin: 0px; + border-bottom: 1px solid #eee; +} +.notifications-dropdown .notifications-body .table-controls .state-filter, +#notifications-dropdown.dropdown-menu .notifications-body .table-controls .state-filter { + padding: 0px; + font-family: 'Roboto', sans-serif; + font-weight: normal; + font-style: normal; + line-height: 1; + color: #333; + font-size: 12px; + color: #666; + position: relative; +} +.notifications-dropdown .notifications-body .table-controls .state-filter .form-control.filter-select, +#notifications-dropdown.dropdown-menu .notifications-body .table-controls .state-filter .form-control.filter-select { + font-size: 12px; + color: #666; + height: 25px; +} +.notifications-dropdown .notifications-body .table.alerts-table, +#notifications-dropdown.dropdown-menu .notifications-body .table.alerts-table { + margin-top: 0px; +} +.notifications-dropdown .notifications-body .table.alerts-table tbody tr, +#notifications-dropdown.dropdown-menu .notifications-body .table.alerts-table tbody tr { + cursor: pointer; +} +.notifications-dropdown .notifications-body .table.alerts-table tbody tr.no-alert-tr:hover, +#notifications-dropdown.dropdown-menu .notifications-body .table.alerts-table tbody tr.no-alert-tr:hover { + cursor: default; + border-color: transparent; + border-bottom-color: #eee; +} +.notifications-dropdown .notifications-body .table.alerts-table tbody tr.no-alert-tr:hover > td, +#notifications-dropdown.dropdown-menu .notifications-body .table.alerts-table tbody tr.no-alert-tr:hover > td { + border-color: transparent; + background-color: white; +} +.notifications-dropdown .notifications-body .table.alerts-table tbody td.status, +#notifications-dropdown.dropdown-menu .notifications-body .table.alerts-table tbody td.status { + width: 9%; + padding: 15px 3px; +} +.notifications-dropdown .notifications-body .table.alerts-table tbody td.status .alert-state-CRITICAL, +#notifications-dropdown.dropdown-menu .notifications-body .table.alerts-table tbody td.status .alert-state-CRITICAL { + color: #EF6162; +} +.notifications-dropdown .notifications-body .table.alerts-table tbody td.status .alert-state-WARNING, +#notifications-dropdown.dropdown-menu .notifications-body .table.alerts-table tbody td.status .alert-state-WARNING { + color: #E98A40; +} +.notifications-dropdown .notifications-body .table.alerts-table tbody td.content, +#notifications-dropdown.dropdown-menu .notifications-body .table.alerts-table tbody td.content { + width: 90%; + padding: 15px 3px 10px 3px; + font-family: 'Roboto', sans-serif; + font-weight: normal; + font-style: normal; + line-height: 1; + color: #333; + line-height: 1.3; +} +.notifications-dropdown .notifications-body .table.alerts-table tbody td.content .name, +#notifications-dropdown.dropdown-menu .notifications-body .table.alerts-table tbody td.content .name { + font-weight: bold; + font-size: 14px; + color: #333; + margin-bottom: 5px; +} +.notifications-dropdown .notifications-body .table.alerts-table tbody td.content .description, +#notifications-dropdown.dropdown-menu .notifications-body .table.alerts-table tbody td.content .description { + font-size: 12px; + color: #666; + margin-bottom: 4px; + display: block; + display: -webkit-box; + -webkit-line-clamp: 3; + max-height: 47px; + /* For firefox */ + -webkit-box-orient: vertical; + overflow: hidden; + text-overflow: ellipsis; + /* Break long urls*/ + overflow-wrap: break-word; + word-wrap: break-word; + -ms-word-break: break-all; + word-break: break-all; + word-break: break-word; + /* Adds a hyphen where the word breaks*/ + -ms-hyphens: auto; + -moz-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} +.notifications-dropdown .notifications-body .table.alerts-table tbody td.content .timestamp, +#notifications-dropdown.dropdown-menu .notifications-body .table.alerts-table tbody td.content .timestamp { + text-align: right; + font-size: 11px; + color: #999; +} +.notifications-dropdown .notifications-footer, +#notifications-dropdown.dropdown-menu .notifications-footer { + border-top: 1px solid #eee; + padding: 15px; +} +.modal-backdrop { + background-color: #808080; +} +.modal .modal-content { + border-radius: 2px; +} +.modal .modal-content .modal-header, +.modal .modal-content .modal-body, +.modal .modal-content .modal-footer { + padding-left: 20px; + padding-right: 20px; +} +.modal .modal-content .modal-header { + border-bottom: none; + padding-top: 20px; + color: #666; + font-size: 20px; +} +.modal .modal-content .modal-header h4 { + margin: 0; + color: inherit; + font-size: inherit; +} +.modal .modal-content .modal-body { + color: #666; + font-size: 12px; +} +.modal .modal-content .modal-footer { + border-top: none; + padding-bottom: 20px; +} +.modal .modal-content .modal-footer .btn ~ .btn { + margin-left: 10px; +} +.accordion .panel-group, +.wizard .wizard-body .wizard-content .accordion .panel-group { + margin-bottom: 0; +} +.accordion .panel-group .panel, +.wizard .wizard-body .wizard-content .accordion .panel-group .panel { + border-radius: 0; + border: none; + margin-top: 0; + padding: 0 10px; +} +.accordion .panel-group .panel .panel-heading, +.wizard .wizard-body .wizard-content .accordion .panel-group .panel .panel-heading { + height: 50px; + padding: 15px 10px; + border: 1px solid; + border-color: #ddd transparent; + border-top: none; + background: #fff; +} +.accordion .panel-group .panel .panel-heading .panel-title, +.wizard .wizard-body .wizard-content .accordion .panel-group .panel .panel-heading .panel-title { + font-family: 'Roboto', sans-serif; + font-weight: normal; + font-style: normal; + line-height: 1; + color: #333; +} +.accordion .panel-group .panel .panel-heading .panel-title > a, +.wizard .wizard-body .wizard-content .accordion .panel-group .panel .panel-heading .panel-title > a { + font-size: 18px; + color: #333; +} +.accordion .panel-group .panel .panel-heading .panel-title > i, +.wizard .wizard-body .wizard-content .accordion .panel-group .panel .panel-heading .panel-title > i { + font-size: 20px; + color: #1491c1; +} +.accordion .panel-group .panel .panel-heading:hover, +.wizard .wizard-body .wizard-content .accordion .panel-group .panel .panel-heading:hover { + background: #f3faff; + cursor: pointer; +} +.accordion .panel-group .panel .panel-body, +.wizard .wizard-body .wizard-content .accordion .panel-group .panel .panel-body { + padding: 15px 10px 20px 20px; +} +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-family: 'Roboto', sans-serif; +} +h1, +.h1 { + font-size: 24px; +} +h2, +.h2 { + font-size: 18px; +} +body, +.body { + font-family: 'Roboto', sans-serif; + font-weight: normal; + font-style: normal; + line-height: 1; + color: #333; + font-size: 14px; +} +.description { + font-family: 'Roboto', sans-serif; + font-size: 12px; + color: #000; +} +a, +a:visited, +a:focus { + color: #1491C1; + text-decoration: none; +} +a:hover, +a:visited:hover, +a:focus:hover { + text-decoration: underline; +} +a:active, +a:visited:active, +a:focus:active { + text-decoration: none; +} +a[disabled], +a:visited[disabled], +a:focus[disabled], +a.disabled, +a:visited.disabled, +a:focus.disabled { + cursor: not-allowed; + color: #666; + text-decoration: none; +} +a[disabled]:hover, +a:visited[disabled]:hover, +a:focus[disabled]:hover, +a.disabled:hover, +a:visited.disabled:hover, +a:focus.disabled:hover { + text-decoration: none; +}
http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-admin/src/main/resources/ui/admin-web/app/styles/top-nav.css ---------------------------------------------------------------------- diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/styles/top-nav.css b/ambari-admin/src/main/resources/ui/admin-web/app/styles/top-nav.css new file mode 100644 index 0000000..327dc7f --- /dev/null +++ b/ambari-admin/src/main/resources/ui/admin-web/app/styles/top-nav.css @@ -0,0 +1,200 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#top-nav .navbar.navbar-static-top { + background: #fff; + border-top: 1px solid #e3e3e3; + border-bottom: 1px solid #e3e3e3; + margin-bottom: 10px; + min-height: 55px; +} + +#top-nav .breadcrumb li { + padding: 15px 0; +} + +#top-nav .navbar-text { + padding: 2px 0; +} + +#top-nav .navbar-right { + font-size: 16px; +} + +#top-nav .container { + background: #fff; +} + +/** Override bootstrap styles **/ +@media (min-width: 0) { + .navbar-nav { + float: left; + margin: 0; + } + .navbar-nav > li { + float: left; + } + .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; + } + .navbar-left { + float: left !important; + } + .navbar-right { + float: right !important; + margin-right: -15px; + } + .navbar-right ~ .navbar-right { + margin-right: 0; + } + .navbar-right .dropdown-menu { + right: 0; + left: auto; + } + .navbar-right .dropdown-menu-left { + right: auto; + left: 0; + } + .navbar { + border-radius: 4px; + } + .navbar-header { + float: left; + } + .container > .navbar-header, + .container-fluid > .navbar-header, + .container > .navbar-collapse, + .container-fluid > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } + .navbar-static-top { + border-radius: 0; + } + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; + } + .navbar > .container .navbar-brand, + .navbar > .container-fluid .navbar-brand { + margin-left: -15px; + } + .navbar-toggle { + display: none; + } + .navbar-text { + float: left; + margin-right: 15px; + margin-left: 15px; + } + .navbar-header { + float: left; + } + .navbar-collapse { + width: auto; + border-top: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + .navbar-collapse.in { + overflow-y: visible; + } + .navbar-fixed-top .navbar-collapse, + .navbar-static-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + padding-right: 0; + padding-left: 0; + } + .navbar { + border-radius: 4px; + } + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .navbar-form .form-control-static { + display: inline-block; + } + .navbar-form .input-group { + display: inline-table; + vertical-align: middle; + } + .navbar-form .input-group .input-group-addon, + .navbar-form .input-group .input-group-btn, + .navbar-form .input-group .form-control { + width: auto; + } + .navbar-form .input-group > .form-control { + width: 100%; + } + .navbar-form .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio, + .navbar-form .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio label, + .navbar-form .checkbox label { + padding-left: 0; + } + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .navbar-form .has-feedback .form-control-feedback { + top: 0; + } + .navbar-form { + width: auto; + padding-top: 0; + padding-bottom: 0; + margin-right: 0; + margin-left: 0; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } +} + +@media (max-width: 767px) { + .navbar-nav .open .dropdown-menu { + position: absolute; + } +} + + http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-admin/src/main/resources/ui/admin-web/app/styles/user-management.css ---------------------------------------------------------------------- diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/styles/user-management.css b/ambari-admin/src/main/resources/ui/admin-web/app/styles/user-management.css new file mode 100644 index 0000000..3c9756e --- /dev/null +++ b/ambari-admin/src/main/resources/ui/admin-web/app/styles/user-management.css @@ -0,0 +1,43 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#user-management .table th { + vertical-align: baseline; +} + +#user-management .nav.nav-tabs { + margin-bottom: 0; +} + +#user-management .users-pane, +#user-management .groups-pane { + margin-top: -35px; +} + +#group-edit .roles-label, +#user-edit .roles-label { + line-height: 30px; +} + +#create-user-form .roles-label i, +#create-group-form .roles-label i, +#group-edit .roles-label i, +#user-edit .roles-label i { + margin-right: -10px; + cursor: pointer; +} http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-admin/src/main/resources/ui/admin-web/app/styles/views.css ---------------------------------------------------------------------- diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/styles/views.css b/ambari-admin/src/main/resources/ui/admin-web/app/styles/views.css new file mode 100644 index 0000000..9bb84df --- /dev/null +++ b/ambari-admin/src/main/resources/ui/admin-web/app/styles/views.css @@ -0,0 +1,105 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#create-instance-form i { + cursor: pointer; +} + +#create-instance-form .modal-body { + max-height: 600px; + overflow-y: auto; + overflow-x: hidden; +} + +#create-instance-form button.active { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} + +input[type="checkbox"] + label { + line-height: 18px; +} + +.viewstatus { + display: inline-block; +} + +.viewstatus.pending { + width: 12px; + height: 12px; + border: 2px solid black; + border-radius: 50%; + vertical-align: middle; + position: relative; +} + +.viewstatus.pending:before, .viewstatus.pending:after { + content: ''; + position: absolute; + left: 4px; + top: 3px; + width: 5px; + height: 2px; + background: black; +} + +.viewstatus.pending:after { + top: -3px; + left: 3px; + width: 2px; + height: 2px; + border-radius: 100%; +} + +.viewstatus.pending:before { + -webkit-transform-origin: 0% 50%; + -moz-transform-origin: 0% 50%; + -ms-transform-origin: 0% 50%; + -o-transform-origin: 0% 50%; + transform-origin: 0% 50%; + + animation: rotate 2.0s infinite linear; + -webkit-animation: rotate 2.0s infinite linear; +} + +.viewstatus.deploying { + width: 17px; + height: 12px; + text-align: center; + vertical-align: text-top; +} + +.viewstatus.deploying > div { + background: black; + height: 100%; + width: 3px; + display: inline-block; + -webkit-animation: stretchdelay 1.2s infinite ease-in-out; + animation: stretchdelay 1.2s infinite ease-in-out; +} + +.viewstatus.deploying .rect2 { + -webkit-animation-delay: -1.1s; + animation-delay: -1.1s; +} + +.viewstatus.deploying .rect3 { + -webkit-animation-delay: -1.0s; + animation-delay: -1.0s; +} http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/create.html ---------------------------------------------------------------------- diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/create.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/create.html deleted file mode 100644 index 25f1487..0000000 --- a/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/create.html +++ /dev/null @@ -1,204 +0,0 @@ -<!-- -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. ---> -<ol class="breadcrumb"> - <li><a href="#/views">{{'common.views' | translate}}</a></li> - <li class="active"> {{isClone ? 'views.clone' : 'views.create' | translate}}</li> -</ol> -<hr> -<form class="form-horizontal create-view-form" role="form" name="form.instanceCreateForm" novalidate> - <div class="view-header"> - <div class="form-group"> - <div class="col-sm-2"> - <label for="" class="control-label">{{'common.view' | translate}}</label> - </div> - <div class="col-sm-10"><label for="" class="control-label">{{view.ViewVersionInfo.view_name}}</label></div> - </div> - <div class="form-group"> - <div class="col-sm-2"><label for="" class="control-label">{{'common.version' | translate}}</label></div> - <div class="col-sm-3"> - <select ng-model="version" class="instanceversion-input form-control" ng-change="versionChanged()" ng-options="o as o for o in versions"></select> - </div> - </div> - </div> - - <div class="panel panel-default"> - <div class="panel-heading"> - <h3 class="panel-title">{{'common.details' | translate}}</h3> - </div> - <div class="panel-body"> - <div class="form-group" - ng-class="{'has-error' : ( (form.instanceCreateForm.instanceNameInput.$error.required || form.instanceCreateForm.instanceNameInput.$error.pattern) && form.instanceCreateForm.submitted) || instanceExists }" - > - <label for="" class="control-label col-sm-3">{{'views.instanceName' | translate}}*</label> - <div class="col-sm-9"> - <input type="text" class="form-control instancename-input" name="instanceNameInput" ng-pattern="nameValidationPattern" required ng-model="instance.instance_name" autocomplete="off"> - - <div class="alert alert-danger no-margin-bottom top-margin" ng-show='form.instanceCreateForm.instanceNameInput.$error.required && form.instanceCreateForm.submitted'>{{'common.alerts.fieldIsRequired' | translate}}</div> - <div class="alert alert-danger no-margin-bottom top-margin" ng-show='form.instanceCreateForm.instanceNameInput.$error.pattern && form.instanceCreateForm.submitted'>{{'views.alerts.noSpecialCharsOrSpaces' | translate}}</div> - <div class="alert alert-danger no-margin-bottom top-margin" ng-show='instanceExists'>{{'views.alerts.instanceExists' | translate}}</div> - </div> - </div> - <div class="form-group" - ng-class="{'has-error' : ( (form.instanceCreateForm.displayLabel.$error.required || form.instanceCreateForm.displayLabel.$error.pattern) && form.instanceCreateForm.submitted)}"> - <label for="" class="control-label col-sm-3">{{'views.displayName' | translate}}*</label> - <div class="col-sm-9"> - <input type="text" class="form-control instancelabel-input" name="displayLabel" ng-model="instance.label" required ng-pattern="/^([a-zA-Z0-9._\s]+)$/" autocomplete="off"> - - <div class="alert alert-danger no-margin-bottom top-margin" ng-show='form.instanceCreateForm.displayLabel.$error.required && form.instanceCreateForm.submitted'> - {{'common.alerts.fieldIsRequired' | translate}} - </div> - <div class="alert alert-danger no-margin-bottom top-margin" ng-show='form.instanceCreateForm.displayLabel.$error.pattern && form.instanceCreateForm.submitted'> - {{'views.alerts.noSpecialChars' | translate}} - </div> - </div> - </div> - <div class="form-group" ng-class="{'has-error' : form.instanceCreateForm.description.$error.required && form.instanceCreateForm.submitted }"> - <label for="" class="control-label col-sm-3">{{'views.description' | translate}}*</label> - <div class="col-sm-9"> - <input type="text" class="form-control" name="description" ng-model="instance.description" maxlength="140" required> - <div class="alert alert-danger no-margin-bottom top-margin" ng-show='form.instanceCreateForm.description.$error.required && form.instanceCreateForm.submitted'> - {{'common.alerts.fieldIsRequired' | translate}} - </div> - </div> - </div> - - <div class="form-group"> - <div class="col-sm-10 col-sm-offset-3"> - <div class="checkbox"> - <label> - <input type="checkbox" ng-model='instance.visible' class="visibilityCheckbox"> {{'views.visible' | translate}} - </label> - </div> - </div> - </div> - </div> - </div> - - <div class="panel panel-default" ng-hide="!numberOfSettingConfigs"> - <div class="panel-heading"> - <h3 class="panel-title">{{'views.settings' | translate}}</h3> - </div> - <div class="panel-body"> - <div class="form-group" ng-repeat="parameter in instance.properties | filter:{clusterConfig:false}" - ng-class="{'has-error' : ((form.instanceCreateForm[parameter.name].$error.required && form.instanceCreateForm.submitted) || form.instanceCreateForm[parameter.name].validationError)}" > - <label for="" class="col-sm-3 control-label" ng-class="{'not-required': !parameter.required}">{{parameter.label || parameter.displayName}}{{parameter.required ? '*' : ''}}</label> - <div ng-switch="parameter.type"> - <div class="col-sm-9 checkbox" ng-switch-when="boolean"> - <input type="checkbox" class="viewproperty-input" name="{{parameter.name}}" ng-required="parameter.required" ng-model="parameter.value" popover="{{parameter.description}}" popover-title="{{parameter.name}}" popover-trigger="mouseenter"> - </div> - <div class="col-sm-9" ng-switch-default> - <input type="{{parameter.masked ? 'password' : 'text'}}" class="form-control viewproperty-input" name="{{parameter.name}}" ng-change="form.instanceCreateForm[parameter.name].validationError=''" ng-required="parameter.required" ng-model="parameter.value" autocomplete="off" popover="{{parameter.description}}" popover-title="{{parameter.name}}" popover-trigger="mouseenter" placeholder="{{parameter.placeholder}}"> - <div class="alert alert-danger no-margin-bottom top-margin" ng-show='form.instanceCreateForm[parameter.name].$error.required && form.instanceCreateForm.submitted'> - {{'common.alerts.fieldIsRequired' | translate}} - </div> - <div class="alert alert-danger no-margin-bottom top-margin" ng-show='form.instanceCreateForm[parameter.name].validationError'> - {{form.instanceCreateForm[parameter.name].validationMessage}} - </div> - </div> - </div> - </div> - </div> - </div> - - <div class="panel panel-default" ng-hide="!numberOfClusterConfigs && !clusterConfigurable"> - <div class="panel-heading"> - <h3 class="panel-title">{{'views.clusterConfiguration' | translate}}</h3> - </div> - - <div class="panel-body property-form" popover="{{clusterConfigurableErrorMsg}}" popover-trigger="mouseenter"> - <div class="checkbox create-checkbox-cluster"> - <label> - <input type="radio" ng-disabled="!clusterConfigurable || noLocalClusterAvailible" ng-model="instance.clusterType" ng-change="enableLocalCluster()" value="LOCAL_AMBARI" class="visibilityCheckbox"> {{'views.localCluster' | translate}} - </label> - </div> - - <div class="form-horizontal property-form"> - <div class="form-group"> - - <label for="" class="control-label col-sm-3 ng-binding not-required" >{{'views.clusterName' | translate}}</label> - <div> - <div class="col-sm-9"> - <select ng-model="cluster" ng-disabled="instance.clusterType != 'LOCAL_AMBARI' || noLocalClusterAvailible" ng-change="onClusterChange()" class="clusters-name-dropdown form-control" ng-options="o as o.name for o in clusters"></select> - </div> - </div> - </div> - </div> - - </div> - - <div class="panel-body property-form" popover="{{clusterConfigurableErrorMsg}}" popover-trigger="mouseenter"> - <div class="checkbox create-checkbox-cluster"> - <label> - <input type="radio" ng-disabled="!clusterConfigurable || noRemoteClusterAvailible" ng-model="instance.clusterType" ng-change="enableLocalCluster()" value="REMOTE_AMBARI" class="visibilityCheckbox"> {{'views.remoteCluster' | translate}} - </label> - </div> - - <div class="form-horizontal property-form"> - <div class="form-group"> - - <label for="" class="control-label col-sm-3 ng-binding not-required" >{{'views.clusterName' | translate}}</label> - <div> - <div class="col-sm-9"> - <select ng-model="data.remoteCluster" ng-disabled="instance.clusterType != 'REMOTE_AMBARI' || noRemoteClusterAvailable" ng-change="onClusterChange()" class="clusters-name-dropdown form-control" ng-options="o as o.name for o in remoteClusters"></select> - </div> - </div> - </div> - </div> - - </div> - - <div class="panel-body property-form" ng-hide="!numberOfClusterConfigs"> - <div class="checkbox"> - <label> - <input type="radio" ng-model="instance.clusterType" value="NONE" class="visibilityCheckbox"> {{'views.custom' | translate}} - </label> - </div> - <div class="alert alert-danger bottom-margin top-margin" ng-show='form.instanceCreateForm.generalValidationError'> - {{form.instanceCreateForm.generalValidationError}} - </div> - <div class="form-group" ng-repeat="parameter in instance.properties | filter:{clusterConfig:true}" - ng-class="{'has-error' : ((form.instanceCreateForm[parameter.name].$error.required && form.instanceCreateForm.submitted) || form.instanceCreateForm[parameter.name].validationError)}" > - <label for="" class="col-sm-3 control-label" ng-class="{'not-required': !parameter.required}">{{parameter.label || parameter.displayName}}{{parameter.required ? '*' : ''}}</label> - <div ng-switch="parameter.type"> - <div class="col-sm-9 checkbox" ng-switch-when="boolean"> - <input type="checkbox" class="viewproperty-input" name="{{parameter.name}}" ng-disabled="instance.clusterType == 'NONE'" ng-required="parameter.required && (instance.clusterType == 'NONE')" ng-model="parameter.value" popover="{{parameter.description}}" popover-title="{{parameter.name}}" popover-trigger="mouseenter"> - </div> - <div class="col-sm-9" ng-switch-default> - <input type="{{parameter.masked ? 'password' : 'text'}}" class="form-control viewproperty-input" name="{{parameter.name}}" ng-disabled="instance.clusterType != 'NONE'" ng-change="form.instanceCreateForm[parameter.name].validationError=''" ng-required="parameter.required && (instance.clusterType == 'NONE')" ng-model="parameter.value" autocomplete="off" popover="{{parameter.description}}" popover-title="{{parameter.name}}" popover-trigger="mouseenter" placeholder="{{parameter.placeholder}}"> - <div class="alert alert-danger no-margin-bottom top-margin" ng-show="form.instanceCreateForm[parameter.name].$error.required && form.instanceCreateForm.submitted && (instance.clusterType == 'NONE')"> - {{'common.alerts.fieldIsRequired' | translate}} - </div> - <div class="alert alert-danger no-margin-bottom top-margin" ng-show='form.instanceCreateForm[parameter.name].validationError'> - {{form.instanceCreateForm[parameter.name].validationMessage}} - </div> - </div> - </div> - </div> - <div ng-show="!instance.properties.length"> - <div class="alert alert-info">{{'views.alerts.notDefined' | translate: '{term: constants.props}'}}</div> - </div> - </div> - </div> - - <div class="col-sm-12 "> - <button class="btn btn-primary pull-right left-margin save-button" - ng-class="{'disabled' : (form.instanceCreateForm.isSaving)}" ng-click="save()" type="submit">{{'common.controls.save' | translate}}</button> - <a href ng-click="cancel()" class="btn btn-default pull-right cancel-button">{{'common.controls.cancel' | translate}}</a> - </div> - -</form> http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/edit.html ---------------------------------------------------------------------- diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/edit.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/edit.html index f91862d..a86e285 100644 --- a/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/edit.html +++ b/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/edit.html @@ -107,9 +107,8 @@ <div class="form-group"> <div class="col-sm-offset-3 col-sm-10"> <div class="checkbox"> - <label> - <input type="checkbox" ng-model="settings.visible" ng-class="instancevisibility-input"> {{'views.visible' | translate}} - </label> + <input type="checkbox" class="form-control" ng-model="settings.visible" id="visible" ng-class="instancevisibility-input"> + <label for="visible">{{'views.visible' | translate}}</label> </div> </div> </div> @@ -173,9 +172,8 @@ </div> <div class="panel-body property-form" popover="{{clusterConfigurableErrorMsg}}" popover-trigger="mouseenter"> <div class="checkbox"> - <label> - <input type="radio" ng-model="data.clusterType" ng-change="enableLocalCluster()" ng-disabled="!clusterConfigurable || editConfigurationDisabled || noLocalClusterAvailible" value="LOCAL_AMBARI" class="visibilityCheckbox"> {{'views.localCluster' | translate}} - </label> + <input type="radio" id="local-cluster" ng-model="data.clusterType" ng-change="enableLocalCluster()" ng-disabled="!clusterConfigurable || editConfigurationDisabled || noLocalClusterAvailible" value="LOCAL_AMBARI" class="visibilityCheckbox form-control"> + <label for="local-cluster">{{'views.localCluster' | translate}}</label> </div> <div class="form-horizontal property-form"> <div class="form-group"> @@ -189,9 +187,8 @@ </div> <p> </p> <div class="checkbox"> - <label> - <input type="radio" ng-model="data.clusterType" ng-change="enableLocalCluster()" ng-disabled="!clusterConfigurable || editConfigurationDisabled || noRemoteClusterAvailible" value="REMOTE_AMBARI" class="visibilityCheckbox"> {{'views.remoteCluster' | translate}} - </label> + <input type="radio" id="remote-cluster" ng-model="data.clusterType" ng-change="enableLocalCluster()" ng-disabled="!clusterConfigurable || editConfigurationDisabled || noRemoteClusterAvailible" value="REMOTE_AMBARI" class="visibilityCheckbox form-control"> + <label for="remote-cluster">{{'views.remoteCluster' | translate}}</label> </div> <div class="form-horizontal property-form"> <div class="form-group"> @@ -205,15 +202,14 @@ </div> <p> </p> <div class="checkbox" ng-hide="isConfigurationEmpty"> - <label> - <input type="radio" - ng-model="data.clusterType" - ng-disabled="editConfigurationDisabled" - value="NONE" - ng-change="disableLocalCluster()" - class="visibilityCheckbox"> - {{'views.custom' | translate}} - </label> + <input type="radio" + id="custom-view" + ng-model="data.clusterType" + ng-disabled="editConfigurationDisabled" + value="NONE" + ng-change="disableLocalCluster()" + class="visibilityCheckbox"> + <label for="custom-view">{{'views.custom' | translate}}</label> </div> </div> <div class="panel-body edit-view-custom-wrap"> @@ -289,9 +285,8 @@ <div class="col-sm-offset-2 col-sm-10"> <div class="checkbox col-sm-12" ng-repeat="key in permissionRoles"> <div ng-init="i18nKey = 'views.clusterPermissions.' + key.split('.').join('').toLowerCase()"> - <label> - <input type="checkbox" ng-model="permissionsEdit['VIEW.USER']['ROLE'][key]"> {{i18nKey | translate}} - </label> + <input ng-attr-id="{{i18nKey}}" type="checkbox" class="form-control" ng-model="permissionsEdit['VIEW.USER']['ROLE'][key]"> + <label ng-attr-for="{{i18nKey}}">{{i18nKey | translate}}</label> </div> </div> <a href ng-click="checkAllRoles()">{{'common.controls.checkAll' | translate}}</a> | <a href ng-click="clearAllRoles()">{{'common.controls.clearAll' | translate}}</a> http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/listTable.html ---------------------------------------------------------------------- diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/listTable.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/listTable.html deleted file mode 100644 index 91b9a93..0000000 --- a/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/listTable.html +++ /dev/null @@ -1,110 +0,0 @@ -<!-- -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. ---> - -<div class="views-list-table"> - <div class="clearfix"> - <ol class="breadcrumb pull-left"> - <li class="active">{{'common.views' | translate}}</li> - <button ng-click="reloadViews()" - class="btn btn-xs"> - <i class="glyphicon glyphicon-refresh"></i> - </button> - </ol> - <div class="pull-right col-sm-4"> - <div class="input-group search-container"> - <input type="text" class="form-control search-input" placeholder="{{'common.search' | translate}}" ng-model="viewsFilter" ng-change="getFilteredViews()"> - <button type="button" class="close clear-search" ng-show="viewsFilter" ng-click="viewsFilter=''; getFilteredViews()"><span aria-hidden="true">×</span><span class="sr-only">{{"common.controls.close" | translate}}</span></button> - <span class="input-group-addon"> - <span class="glyphicon glyphicon-search"></span> - </span> - </div> - </div> - </div> - <hr> - <div class="row"> - <div class="col-sm-3 padding-left-30"><h4>{{'views.viewName' | translate}}</h4></div> - <div class="col-sm-3"><h4>{{'views.instances' | translate}}</h4></div> - <div class="col-sm-6"><h4></h4></div> - </div> - <accordion close-others="false"> - <accordion-group ng-repeat="view in filteredViews" is-open="view.isOpened"> - <accordion-heading> - <div class="row"> - <div class="col-sm-4"> - <i class="glyphicon glyphicon-chevron-right" ng-class="{'opened': view.isOpened}"></i> - {{view.view_name}} - </div> - <div class="col-sm-3"> - <span ng-repeat="(version, vData) in view.versions"> - {{version}} - <span ng-switch="vData.status"> - <span ng-switch-when="PENDING" class="viewstatus pending" ng-switch-when="true" tooltip="{{'views.pending' | translate}}"></span> - <div class="viewstatus deploying" ng-switch-when="DEPLOYING" tooltip="{{'views.deploying' | translate}}"> - <div class="rect1"></div> - <div class="rect2"></div> - <div class="rect3"></div> - </div> - <span ng-switch-when="DEPLOYED">({{vData.count}})</span> - <span ng-switch-when="ERROR" tooltip="{{'views.alerts.deployError' | translate}}"><i class="fa fa-exclamation-triangle"></i></span> - </span> - {{$last ? '' : ', '}} - </span> - </div> - <div class="col-sm-6">{{view.description}}</div> - </div> - </accordion-heading> - <table class="table instances-table"> - <tbody> - <tr ng-repeat="instance in view.instances"> - <td class="col-sm-1"></td> - <td class="col-sm-5"> - <a href="#/views/{{view.view_name}}/versions/{{instance.ViewInstanceInfo.version}}/instances/{{instance.ViewInstanceInfo.instance_name}}/edit" class="instance-link">{{instance.label}}</a> - </td> - <td class="col-sm-5">{{instance.ViewInstanceInfo.version}}</td> - <td class="col-sm-5 " ><div class="description-column" tooltip="{{instance.ViewInstanceInfo.description}}">{{instance.ViewInstanceInfo.description || 'No description'}}</div> - </td> - <td class="col-sm-1"> - <a class="instance-link ng-scope ng-binding" href="#/views/{{view.view_name}}/versions/{{instance.ViewInstanceInfo.version}}/instances/{{instance.ViewInstanceInfo.instance_name}}/clone"><i class="fa fa-copy"></i></a> - </td> - <td class="col-sm-1"> - <a class="instance-link ng-scope ng-binding" href ng-click="deleteInstance(instance)"><i class="fa fa-trash-o"></i></a> - </td> - </tr> - </tbody> - <tfoot> - <tr> - <td class="col-sm-4"></td> - <td class="col-sm-3 padding-left-30"> - <a tooltip="{{view.canCreateInstance ? '' : constants.unable}}" class="btn btn-default createisntance-btn {{view.canCreateInstance ? '' : 'disabled'}}" href ng-click="gotoCreate(view.view_name, view.canCreateInstance);"><span class="glyphicon glyphicon-plus"></span> {{'views.create' | translate}}</a> - </td> - <td class="col-sm-3"></td> - <td class="col-sm-3"> - </td> - </tr> - </tfoot> - </table> - </accordion-group> - <div ng-if="isLoadingViews" class="spinner-container"> - <i class="fa fa-2x fa-spinner fa-spin" aria-hidden="true"></i> - </div> - <div class="alert alert-info" ng-show="views && !filteredViews.length && !isLoadingViews"> - {{'common.alerts.nothingToDisplay' | translate: '{term: constants.views}'}} - </div> - - </accordion> -</div> http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/listUrls.html ---------------------------------------------------------------------- diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/listUrls.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/listUrls.html deleted file mode 100644 index 13ff311..0000000 --- a/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/listUrls.html +++ /dev/null @@ -1,117 +0,0 @@ -<!-- -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. ---> - -<div class="views-urls-table" data-ng-init="initViewUrls()"> - - - <div class="clearfix"> - <ol class="breadcrumb pull-left"> - <li class="active">{{'common.viewUrls' | translate}}</li> - </ol> - <div class="pull-right top-margin-4"> - <div class="tooltip-wrapper" tooltip="{{(createUrlDisabled)? ('urls.noViewInstances' | translate) : ''}}"> - <link-to ng-disabled="createUrlDisabled" route="views.createViewUrl" class="btn btn-primary createuser-btn"><span class="glyphicon glyphicon-plus"></span> {{'urls.createNewUrl' | translate}}</link-to> - </div> - </div> - </div> - <hr> - <table class="table table-striped table-hover"> - <thead> - <tr class="fix-bottom"> - - <th class="fix-bottom col-md-2"> - <span>{{'urls.name' | translate}}</span> - </th> - <th class="fix-bottom col-md-3"> - <span>{{'urls.url' | translate}}</span> - </th> - <th class="fix-bottom col-md-2"> - <span >{{'urls.view' | translate}}</span> - </th> - <th class="fix-bottom col-md-2"> - <span>{{'urls.viewInstance' | translate}}</span> - </th> - </tr> - - <tr> - - <th class="fix-top"> - <div class="search-container"> - <input type="text" class="form-control namefilter" placeholder="{{'common.any' | translate}}" ng-model="urlNameFilter" ng-change="resetPagination()"> - <button type="button" class="close clearfilter" ng-show="urlNameFilter" ng-click="urlNameFilter=''; resetPagination()"><span class="pull-right" aria-hidden="true">×</span><span class="sr-only">{{'common.controls.close' | translate}}</span></button> - </div> - </th> - <th class="fix-top"> - <div class="search-container"> - <input type="text" class="form-control namefilter" placeholder="{{'common.any' | translate}}" ng-model="urlSuffixfilter" ng-change="resetPagination()"> - <button type="button" class="close clearfilter" ng-show="urlSuffixfilter" ng-click="urlSuffixfilter=''; resetPagination()"><span class="pull-right" aria-hidden="true">×</span><span class="sr-only">{{'common.controls.close' | translate}}</span></button> - </div> - </th> - <th class="fix-top"> - <select class="form-control typefilter v-small-input" - ng-model="instanceTypeFilter" - ng-options="item.label for item in typeFilterOptions" - ng-change="resetPagination()"> - </select> - </th> - <th class="fix-top"> - </th> - </tr> - - </thead> - <tbody> - <tr ng-repeat="url in urls.items"> - - <td> - <a href="#/urls/edit/{{url.ViewUrlInfo.url_name}}">{{url.ViewUrlInfo.url_name}}</a> - </td> - <td> - <a target="_blank" href="{{fromSiteRoot('/#/main/view/' + url.ViewUrlInfo.view_instance_common_name + '/' + url.ViewUrlInfo.url_suffix)}}">/main/view/{{url.ViewUrlInfo.view_instance_common_name}}/{{url.ViewUrlInfo.url_suffix}} - <i class="fa fa-external-link" aria-hidden="true"></i></a> - - </td> - <td> - <span>{{url.ViewUrlInfo.view_instance_common_name}} {{"{"+url.ViewUrlInfo.view_instance_version+"}"}} </span> - </td> - <td> - <span>{{url.ViewUrlInfo.view_instance_name}}</span> - </td> - - </tr> - </tbody> - </table> - <div ng-if="isLoadingUrls" class="spinner-container"> - <i class="fa fa-2x fa-spinner fa-spin" aria-hidden="true"></i> - </div> - <div class="alert alert-info col-sm-12" ng-show="!urls.items.length && !isLoadingUrls"> - {{'urls.noUrlsToDisplay'| translate}} - </div> - <div class="col-sm-12 table-bar"> - <div class="pull-left filtered-info"> - <span>{{'common.filterInfo' | translate: '{showed: tableInfo.showed, total: tableInfo.total, term: urs.urls}'}}</span> - <span ng-show="isNotEmptyFilter">- <a href ng-click="clearFilters()">{{'common.controls.clearFilters' | translate}}</a></span> - </div> - <div class="pull-right left-margin"> - <pagination class="paginator" total-items="totalUrls" max-size="maxVisiblePages" items-per-page="urlsPerPage" ng-model="currentPage" ng-change="pageChanged()"></pagination> - </div> - <div class="pull-right"> - <select class="form-control" ng-model="urlsPerPage" ng-change="urlsPerPageChanged()" ng-options="currOption for currOption in [10, 25, 50, 100]"></select> - </div> - </div> - -</div>
