| <!-- |
| 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/gr-patch-set-behavior/gr-patch-set-behavior.html"> |
| <link rel="import" href="../../../styles/shared-styles.html"> |
| <link rel="import" href="../../core/gr-navigation/gr-navigation.html"> |
| <link rel="import" href="../../diff/gr-patch-range-select/gr-patch-range-select.html"> |
| <link rel="import" href="../../shared/gr-editable-label/gr-editable-label.html"> |
| <link rel="import" href="../../shared/gr-rest-api-interface/gr-rest-api-interface.html"> |
| <link rel="import" href="../../shared/gr-select/gr-select.html"> |
| <link rel="import" href="../../shared/gr-button/gr-button.html"> |
| |
| |
| <dom-module id="gr-file-list-header"> |
| <template> |
| <style include="shared-styles"> |
| .prefsButton { |
| float: right; |
| } |
| .collapseToggleButton { |
| text-decoration: none; |
| } |
| .patchInfoEdit.patchInfo-header { |
| background-color: #fcfad6; |
| } |
| .patchInfoOldPatchSet.patchInfo-header { |
| background-color: #fff9c4; |
| } |
| .patchInfo-header { |
| background-color: #fafafa; |
| border-bottom: 1px solid #ddd; |
| border-top: 1px solid #ddd; |
| display: flex; |
| min-height: 3.2em; |
| padding: .5em var(--default-horizontal-margin); |
| } |
| .patchInfo-header-wrapper { |
| align-items: center; |
| display: flex; |
| width: 100%; |
| } |
| .patchInfo-left { |
| align-items: center; |
| display: flex; |
| flex-wrap: wrap; |
| } |
| .patchInfo-header-wrapper .container.latestPatchContainer { |
| display: none; |
| } |
| .patchInfoOldPatchSet .container.latestPatchContainer { |
| display: initial; |
| } |
| .latestPatchContainer a { |
| text-decoration: none; |
| } |
| gr-editable-label.descriptionLabel { |
| max-width: 100%; |
| } |
| .mobile { |
| display: none; |
| } |
| #diffPrefsContainer, |
| .rightControls { |
| align-self: flex-end; |
| margin: auto 0 auto auto; |
| } |
| .showOnEdit { |
| display: none; |
| } |
| .editLoaded .hideOnEdit { |
| display: none; |
| } |
| .editLoaded .showOnEdit { |
| display: initial; |
| } |
| .patchInfo-header-wrapper .container { |
| align-items: center; |
| display: flex; |
| } |
| #modeSelect { |
| margin-left: .1em; |
| } |
| .fileList-header { |
| align-items: center; |
| display: flex; |
| font-weight: bold; |
| height: 2.25em; |
| margin: 0 calc(var(--default-horizontal-margin) / 2); |
| padding: 0 .25em; |
| } |
| .rightControls { |
| align-items: center; |
| display: flex; |
| flex-wrap: wrap; |
| font-weight: normal; |
| justify-content: flex-end; |
| } |
| .separator { |
| background-color: rgba(0, 0, 0, .3); |
| height: 1.5em; |
| margin: 0 .6em; |
| width: 1px; |
| } |
| .separator.transparent { |
| background-color: transparent; |
| } |
| .expandInline { |
| padding-right: .25em; |
| } |
| .editLoaded .hideOnEdit { |
| display: none; |
| } |
| .editLoaded .showOnEdit { |
| display: initial; |
| } |
| .label { |
| font-family: var(--font-family-bold); |
| margin-right: 1em; |
| } |
| @media screen and (max-width: 50em) { |
| .patchInfo-header .desktop { |
| display: none; |
| } |
| } |
| </style> |
| <div class$="patchInfo-header [[_computeEditLoadedClass(editLoaded)]] [[_computePatchInfoClass(patchNum, allPatchSets)]]"> |
| <div class="patchInfo-header-wrapper"> |
| <div class="patchInfo-left"> |
| <h3 class="label">Files</h3> |
| <gr-patch-range-select |
| id="rangeSelect" |
| comments="[[comments]]" |
| change-num="[[changeNum]]" |
| patch-num="[[patchNum]]" |
| base-patch-num="[[basePatchNum]]" |
| available-patches="[[allPatchSets]]" |
| revisions="[[change.revisions]]" |
| on-patch-range-change="_handlePatchChange"> |
| </gr-patch-range-select> |
| <span class="separator"></span> |
| <gr-commit-info |
| change="[[change]]" |
| server-config="[[serverConfig]]" |
| commit-info="[[commitInfo]]"></gr-commit-info> |
| <span class="container latestPatchContainer"> |
| <span class="separator"></span> |
| <a href$="[[changeUrl]]">Go to latest patch set</a> |
| </span> |
| <span class="container downloadContainer desktop"> |
| <span class="separator"></span> |
| <gr-button link |
| class="download" |
| on-tap="_handleDownloadTap">Download</gr-button> |
| </span> |
| <span class="container descriptionContainer hideOnEdit"> |
| <span class="separator"></span> |
| <gr-editable-label |
| id="descriptionLabel" |
| class="descriptionLabel" |
| label-text="Add patchset description" |
| value="[[_computePatchSetDescription(change, patchNum)]]" |
| placeholder="[[_computeDescriptionPlaceholder(_descriptionReadOnly)]]" |
| read-only="[[_descriptionReadOnly]]" |
| on-changed="_handleDescriptionChanged"></gr-editable-label> |
| </span> |
| </div> |
| <span id="diffPrefsContainer" |
| class="hideOnEdit" |
| hidden$="[[_computePrefsButtonHidden(diffPrefs, loggedIn)]]" |
| hidden> |
| <gr-button link |
| class="prefsButton desktop" |
| on-tap="_handlePrefsTap">Diff Preferences</gr-button> |
| </span> |
| </div> |
| </div> |
| <div class="fileList-header"> |
| <div class="rightControls"> |
| <template is="dom-if" |
| if="[[_fileListActionsVisible(shownFileCount, _maxFilesForBulkActions)]]"> |
| <gr-button |
| id="expandBtn" |
| link |
| on-tap="_expandAllDiffs">Show diffs</gr-button> |
| <span class="separator"></span> |
| <gr-button |
| id="collapseBtn" |
| link |
| on-tap="_collapseAllDiffs">Hide diffs</gr-button> |
| </template> |
| <template is="dom-if" |
| if="[[!_fileListActionsVisible(shownFileCount, _maxFilesForBulkActions)]]"> |
| <div class="warning"> |
| Bulk actions disabled because there are too many files. |
| </div> |
| </template> |
| <span class="separator"></span> |
| <gr-select |
| id="modeSelect" |
| bind-value="{{diffViewMode}}"> |
| <select> |
| <option value="SIDE_BY_SIDE">Side By Side</option> |
| <option value="UNIFIED_DIFF">Unified</option> |
| </select> |
| </gr-select> |
| </div> |
| </div> |
| <gr-rest-api-interface id="restAPI"></gr-rest-api-interface> |
| </template> |
| <script src="gr-file-list-header.js"></script> |
| </dom-module> |