| <!-- |
| @license |
| Copyright (C) 2017 The Android Open Source Project |
| |
| Licensed 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. |
| --> |
| |
| <link rel="import" href="/bower_components/polymer/polymer.html"> |
| |
| <link rel="import" href="../../../behaviors/base-url-behavior/base-url-behavior.html"> |
| <link rel="import" href="../../../behaviors/gr-admin-nav-behavior/gr-admin-nav-behavior.html"> |
| <link rel="import" href="../../../behaviors/gr-url-encoding-behavior/gr-url-encoding-behavior.html"> |
| <link rel="import" href="../../../styles/gr-menu-page-styles.html"> |
| <link rel="import" href="../../../styles/gr-page-nav-styles.html"> |
| <link rel="import" href="../../../styles/shared-styles.html"> |
| <link rel="import" href="../../core/gr-navigation/gr-navigation.html"> |
| <link rel="import" href="../../shared/gr-dropdown-list/gr-dropdown-list.html"> |
| <link rel="import" href="../../shared/gr-icons/gr-icons.html"> |
| <link rel="import" href="../../shared/gr-js-api-interface/gr-js-api-interface.html"> |
| <link rel="import" href="../../shared/gr-page-nav/gr-page-nav.html"> |
| <link rel="import" href="../../shared/gr-rest-api-interface/gr-rest-api-interface.html"> |
| <link rel="import" href="../gr-admin-group-list/gr-admin-group-list.html"> |
| <link rel="import" href="../gr-group/gr-group.html"> |
| <link rel="import" href="../gr-group-audit-log/gr-group-audit-log.html"> |
| <link rel="import" href="../gr-group-members/gr-group-members.html"> |
| <link rel="import" href="../gr-plugin-list/gr-plugin-list.html"> |
| <link rel="import" href="../gr-repo/gr-repo.html"> |
| <link rel="import" href="../gr-repo-access/gr-repo-access.html"> |
| <link rel="import" href="../gr-repo-commands/gr-repo-commands.html"> |
| <link rel="import" href="../gr-repo-dashboards/gr-repo-dashboards.html"> |
| <link rel="import" href="../gr-repo-detail-list/gr-repo-detail-list.html"> |
| <link rel="import" href="../gr-repo-list/gr-repo-list.html"> |
| |
| <dom-module id="gr-admin-view"> |
| <template> |
| <style include="shared-styles"></style> |
| <style include="gr-menu-page-styles"></style> |
| <style include="gr-page-nav-styles"> |
| gr-dropdown-list { |
| --trigger-style: { |
| text-transform: none; |
| } |
| } |
| .breadcrumbText { |
| /* Same as dropdown trigger so chevron spacing is consistent. */ |
| padding: 5px 4px; |
| } |
| iron-icon { |
| margin: 0 var(--spacing-xs); |
| } |
| .breadcrumb { |
| align-items: center; |
| display: flex; |
| } |
| .mainHeader { |
| align-items: baseline; |
| border-bottom: 1px solid var(--border-color); |
| display: flex; |
| } |
| .selectText { |
| display: none; |
| } |
| .selectText.show { |
| display: inline-block; |
| } |
| main.breadcrumbs:not(.table) { |
| margin-top: var(--spacing-l); |
| } |
| </style> |
| <gr-page-nav class="navStyles"> |
| <ul class="sectionContent"> |
| <template id="adminNav" is="dom-repeat" items="[[_filteredLinks]]"> |
| <li class$="sectionTitle [[_computeSelectedClass(item.view, params)]]"> |
| <a class="title" href="[[_computeLinkURL(item)]]" |
| rel="noopener">[[item.name]]</a> |
| </li> |
| <template is="dom-repeat" items="[[item.children]]" as="child"> |
| <li class$="[[_computeSelectedClass(child.view, params)]]"> |
| <a href$="[[_computeLinkURL(child)]]" |
| rel="noopener">[[child.name]]</a> |
| </li> |
| </template> |
| <template is="dom-if" if="[[item.subsection]]"> |
| <!--If a section has a subsection, render that.--> |
| <li class$="[[_computeSelectedClass(item.subsection.view, params)]]"> |
| <a class="title" href$="[[_computeLinkURL(item.subsection)]]" |
| rel="noopener"> |
| [[item.subsection.name]]</a> |
| </li> |
| <!--Loop through the links in the sub-section.--> |
| <template is="dom-repeat" |
| items="[[item.subsection.children]]" as="child"> |
| <li class$="subsectionItem [[_computeSelectedClass(child.view, params, child.detailType)]]"> |
| <a href$="[[_computeLinkURL(child)]]">[[child.name]]</a> |
| </li> |
| </template> |
| </template> |
| </template> |
| </ul> |
| </gr-page-nav> |
| <template is="dom-if" if="[[_subsectionLinks.length]]"> |
| <section class="mainHeader"> |
| <span class="breadcrumb"> |
| <span class="breadcrumbText">[[_breadcrumbParentName]]</span> |
| <iron-icon icon="gr-icons:chevron-right"></iron-icon> |
| </span> |
| <gr-dropdown-list |
| lowercase |
| id="pageSelect" |
| value="[[_computeSelectValue(params)]]" |
| items="[[_subsectionLinks]]" |
| on-value-change="_handleSubsectionChange"> |
| </gr-dropdown-list> |
| </section> |
| </template> |
| <template is="dom-if" if="[[_showRepoList]]" restamp="true"> |
| <main class="table"> |
| <gr-repo-list class="table" params="[[params]]"></gr-repo-list> |
| </main> |
| </template> |
| <template is="dom-if" if="[[_showGroupList]]" restamp="true"> |
| <main class="table"> |
| <gr-admin-group-list class="table" params="[[params]]"> |
| </gr-admin-group-list> |
| </main> |
| </template> |
| <template is="dom-if" if="[[_showPluginList]]" restamp="true"> |
| <main class="table"> |
| <gr-plugin-list class="table" params="[[params]]"></gr-plugin-list> |
| </main> |
| </template> |
| <template is="dom-if" if="[[_showRepoMain]]" restamp="true"> |
| <main class="breadcrumbs"> |
| <gr-repo repo="[[params.repo]]"></gr-repo> |
| </main> |
| </template> |
| <template is="dom-if" if="[[_showGroup]]" restamp="true"> |
| <main class="breadcrumbs"> |
| <gr-group |
| group-id="[[params.groupId]]" |
| on-name-changed="_updateGroupName"></gr-group> |
| </main> |
| </template> |
| <template is="dom-if" if="[[_showGroupMembers]]" restamp="true"> |
| <main class="breadcrumbs"> |
| <gr-group-members |
| group-id="[[params.groupId]]"></gr-group-members> |
| </main> |
| </template> |
| <template is="dom-if" if="[[_showRepoDetailList]]" restamp="true"> |
| <main class="table breadcrumbs"> |
| <gr-repo-detail-list |
| params="[[params]]" |
| class="table"></gr-repo-detail-list> |
| </main> |
| </template> |
| <template is="dom-if" if="[[_showGroupAuditLog]]" restamp="true"> |
| <main class="table breadcrumbs"> |
| <gr-group-audit-log |
| group-id="[[params.groupId]]" |
| class="table"></gr-group-audit-log> |
| </main> |
| </template> |
| <template is="dom-if" if="[[_showRepoCommands]]" restamp="true"> |
| <main class="breadcrumbs"> |
| <gr-repo-commands |
| repo="[[params.repo]]"></gr-repo-commands> |
| </main> |
| </template> |
| <template is="dom-if" if="[[_showRepoAccess]]" restamp="true"> |
| <main class="breadcrumbs"> |
| <gr-repo-access |
| path="[[path]]" |
| repo="[[params.repo]]"></gr-repo-access> |
| </main> |
| </template> |
| <template is="dom-if" if="[[_showRepoDashboards]]" restamp="true"> |
| <main class="table breadcrumbs"> |
| <gr-repo-dashboards repo="[[params.repo]]"></gr-repo-dashboards> |
| </main> |
| </template> |
| <gr-rest-api-interface id="restAPI"></gr-rest-api-interface> |
| <gr-js-api-interface id="jsAPI"></gr-js-api-interface> |
| </template> |
| <script src="gr-admin-view.js"></script> |
| </dom-module> |