226 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			226 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!--
 | 
						|
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>
 |