| {{! |
| * 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. |
| }} |
| |
| {{#if App.enableDigitalClock}} |
| {{view App.ClockView}} |
| {{/if}} |
| |
| {{#if App.router.mainController.isClusterDataLoaded}} |
| <div id="side-nav" class="navigation-bar"> |
| <div class="navigation-bar-container"> |
| <ul class="side-nav-header nav nav-pills nav-stacked"> |
| <li class="navigation-header"> |
| <a href="#" {{action goToDashboard target="controller"}} class="ambari-logo"> |
| <img src="/img/ambari-logo.png" alt="Apache Ambari" title="Apache Ambari" {{QAAttr "ambari-logo"}}> |
| </a> |
| <div class="btn-group" {{action goToDashboard target="controller"}}> |
| <span class="ambari-header" title="Apache Ambari" {{QAAttr "ambari-title"}}>{{t app.name}}</span> |
| </div> |
| </li> |
| </ul> |
| {{view App.MainSideMenuView}} |
| <ul class="side-nav-footer nav nav-pills nav-stacked"> |
| <li class="navigation-footer"> |
| <a href="#" data-toggle="collapse-side-nav"> |
| <span class="navigation-icon icon-double-angle-left"></span> |
| </a> |
| </li> |
| </ul> |
| </div> |
| </div> |
| {{/if}} |
| |
| <div id="main"> |
| <div id="top-nav"> |
| {{#if App.router.loggedIn}} |
| <nav class="navbar navbar-default navbar-static-top"> |
| <div class="container main-container"> |
| <div class="navbar-header navbar-nav"> |
| {{view App.BreadcrumbsView}} |
| </div> |
| |
| {{! right offset. don't delete me! }} |
| <ul class="nav navbar-nav navbar-right"></ul> |
| |
| {{! user dropdown }} |
| <div class="top-nav-user navbar-right btn-group"> |
| <button {{QAAttr "user-dropdown"}} class="dropdown-toggle navbar-btn btn btn-default" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> |
| <i class="glyphicon glyphicon-user"></i> {{App.router.displayLoginName}} <span class="caret"></span> |
| </button> |
| <ul class="dropdown-menu"> |
| |
| {{! about }} |
| <li><a href="#" id="about" {{action showAboutPopup target="controller"}}>{{t app.aboutAmbari}}</a></li> |
| {{! about end }} |
| |
| {{! manage ambari }} |
| {{#if showManageAmbari}} |
| {{#isAuthorized "AMBARI.ADD_DELETE_CLUSTERS, AMBARI.ASSIGN_ROLES, AMBARI.EDIT_STACK_REPOS, AMBARI.MANAGE_GROUPS, AMBARI.MANAGE_STACK_VERSIONS, AMBARI.MANAGE_USERS, AMBARI.MANAGE_VIEWS, AMBARI.RENAME_CLUSTER, AMBARI.MANAGE_USERS"}} |
| <li> |
| <a href="#" id="manage-ambari" {{action goToAdminView target="controller"}}> |
| {{t app.manageAmbari}} |
| </a> |
| </li> |
| {{/isAuthorized}} |
| {{/if}} |
| {{! manage ambari end }} |
| |
| {{! user settings }} |
| {{#if isExistingClusterDataLoaded}} |
| {{#isAuthorized "AMBARI.MANAGE_SETTINGS"}} |
| <li> |
| <a href="#" {{action showSettingsPopup target="App.router.userSettingsController"}}> |
| {{t app.settings}} |
| </a> |
| </li> |
| {{/isAuthorized}} |
| {{/if}} |
| {{! user settings end }} |
| |
| {{! sign out }} |
| {{#if showExitLink}} |
| <li role="separator" class="divider"></li> |
| <li><a href="" id="sign-out" {{QAAttr "sign-out"}} {{action logoff}}>{{t app.signout}}</a></li> |
| {{/if}} |
| {{! sign out end }} |
| </ul> |
| </div> |
| {{! user dropdown end }} |
| |
| {{! views menu}} |
| <div class="navbar-nav navbar-right ambari-views notifications-group"> |
| {{#if enableLinks}} |
| <i class="icon-th dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></i> |
| <ul class="notifications-dropdown row dropdown-menu"> |
| <div class="popup-arrow-up"></div> |
| <div class="notifications-header col-sm-12"> |
| <div class="notifications-title">{{t common.views}}</div> |
| </div> |
| <div class="notifications-body col-sm-12"> |
| {{#if view.views.length}} |
| {{#each item in view.views}} |
| <li> |
| <a href="#" {{action "setView" item target="App.router.mainViewsController"}}>{{item.label}}</a> |
| </li> |
| {{/each}} |
| {{else}} |
| <li class="disabled"><a href="javascript:void(null);">{{t menu.item.views.noViews}}</a></li> |
| {{/if}} |
| </div> |
| </ul> |
| {{/if}} |
| </div> |
| {{!views menu end}} |
| |
| <div class="navbar-nav navbar-right cluster-notifications"> |
| {{#if enableLinks}} |
| {{! bg label }} |
| <a href="#" class="bg-label" {{action "showPopup" target="App.router.backgroundOperationsController"}}> |
| {{#with App.router.backgroundOperationsController}} |
| <span class="glyphicon glyphicon-cog"></span> |
| <span id="span-bg-operation-count" {{bindAttr class="runningOperationsCount:operations-count :numberCircle"}}> |
| {{runningOperationsCount}} |
| </span> |
| {{/with}} |
| </a> |
| {{! bg label end }} |
| |
| {{! new alerts label }} |
| {{#if App.router.clusterController.isAlertsLoaded}} |
| <span class="notifications-group"> |
| <span class="alerts-label dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" |
| aria-expanded="false"> |
| <span class="glyphicon glyphicon-bell"></span> |
| {{#if App.router.mainAlertDefinitionsController.unhealthyAlertInstancesCount}} |
| {{! alerts exist }} |
| <span {{bindAttr class=":numberCircle App.router.mainAlertDefinitionsController.isCriticalAlerts:alert-crit-count:alert-warn-count"}}> |
| {{App.router.mainAlertDefinitionsController.unhealthyAlertInstancesCount}} |
| </span> |
| {{else}} |
| {{! no alerts }} |
| <span {{translateAttr title="titlebar.alerts.noAlerts"}} class="numberCircle alerts-none-count"> |
| {{App.router.mainAlertDefinitionsController.unhealthyAlertInstancesCount}} |
| </span> |
| {{/if}} |
| </span> |
| <div id="notifications-dropdown" class="dropdown-menu row"> |
| {{view App.AlertInstancesPopupView}} |
| </div> |
| </span> |
| {{/if}} |
| {{! alerts label end }} |
| {{/if}} |
| </div> |
| |
| <div class="navbar-nav navbar-text navbar-right brand-wrapper"> |
| {{! cluster name }} |
| <div {{bindAttr title="clusterName"}} class="cluster-name"> |
| {{#unless App.isClusterUser}} |
| <span>{{clusterDisplayName}}</span> |
| {{/unless}} |
| </div> |
| {{! cluster name end }} |
| </div> |
| </div> |
| </nav> |
| {{else}} |
| <nav class="navigation-bar-container login-header"> |
| <ul class="side-nav-header nav nav-pills nav-stacked"> |
| <li class="navigation-header"> |
| <a class="ambari-logo"> |
| <img src="/img/ambari-logo.png" alt="Apache Ambari" title="Apache Ambari" {{QAAttr "ambari-logo"}}> |
| </a> |
| <div class="btn-group"> |
| <span class="ambari-header" title="Apache Ambari" {{QAAttr "ambari-title"}}>{{t app.name}}</span> |
| </div> |
| </li> |
| </ul> |
| </nav> |
| {{/if}} |
| </div> |
| |
| <div class="container main-container"> |
| <div id="content"> |
| {{#if App.wizardIsNotFinished}} |
| <div class="ru-badge row"> |
| {{#if isExistingClusterDataLoaded}} |
| <p class="col-md-4 col-md-offset-4"> |
| {{#if showUpgradeLabel}} |
| <a href="#" {{action "openUpgradeDialog" target="App.router.mainAdminStackAndUpgradeController"}}> |
| <span {{bindAttr class="upgradeMap.cls :label"}}> |
| <i {{bindAttr class="upgradeMap.icon :glyphicon"}}></i> |
| {{upgradeMap.msg}} |
| </span> |
| </a> |
| {{else}} |
| {{#if App.router.wizardWatcherController.isNonWizardUser}} |
| <span class="label upgrade-in-progress"> |
| <i class="glyphicon glyphicon-cog"></i> {{App.router.wizardWatcherController.wizardDisplayName}} |
| </span> |
| {{/if}} |
| {{/if}} |
| </p> |
| {{/if}} |
| </div> |
| <div class="row"> |
| {{#if App.router.mainAdminStackAndUpgradeController.isFinalizeItem}} |
| <p class="col-md-10 col-md-offset-1 alert alert-danger">{{t admin.stackVersions.version.upgrade.notFinalized.warning}}</p> |
| {{/if}} |
| </div> |
| {{/if}} |
| {{outlet}} |
| </div> |
| </div> |
| </div> |