<!--
Copyright (C) 2015 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/keyboard-shortcut-behavior.html">
<link rel="import" href="../../../behaviors/rest-client-behavior.html">
<link rel="import" href="../../shared/gr-account-link/gr-account-link.html">
<link rel="import" href="../../shared/gr-button/gr-button.html">
<link rel="import" href="../../shared/gr-change-star/gr-change-star.html">
<link rel="import" href="../../shared/gr-date-formatter/gr-date-formatter.html">
<link rel="import" href="../../shared/gr-js-api-interface/gr-js-api-interface.html">
<link rel="import" href="../../shared/gr-linked-text/gr-linked-text.html">
<link rel="import" href="../../shared/gr-overlay/gr-overlay.html">
<link rel="import" href="../../shared/gr-rest-api-interface/gr-rest-api-interface.html">

<link rel="import" href="../gr-change-actions/gr-change-actions.html">
<link rel="import" href="../gr-change-metadata/gr-change-metadata.html">
<link rel="import" href="../gr-download-dialog/gr-download-dialog.html">
<link rel="import" href="../gr-file-list/gr-file-list.html">
<link rel="import" href="../gr-messages-list/gr-messages-list.html">
<link rel="import" href="../gr-related-changes-list/gr-related-changes-list.html">
<link rel="import" href="../gr-reply-dialog/gr-reply-dialog.html">

<dom-module id="gr-change-view">
  <template>
    <style>
      .container:not(.loading) {
        background-color: var(--view-background-color);
      }
      .container.loading {
        color: #666;
        padding: 1em var(--default-horizontal-margin);
      }
      .headerContainer {
        height: 4.1em;
        margin-bottom: .5em;
      }
      .header {
        align-items: center;
        background-color: var(--view-background-color);
        border-bottom: 1px solid #ddd;
        display: flex;
        padding: 1em var(--default-horizontal-margin);
        z-index: 99;  /* Less than gr-overlay's backdrop */
      }
      .header.pinned {
        border-bottom-color: transparent;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
        position: fixed;
        top: 0;
        transition: box-shadow 250ms linear;
        width: 100%;
      }
      .header-title {
        flex: 1;
        font-size: 1.2em;
        font-weight: bold;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
      }
      gr-change-star {
        margin-right: .25em;
        vertical-align: -.425em;
      }
      .download,
      .patchSelectLabel {
        margin-left: 1em;
      }
      .header select {
        margin-left: .5em;
      }
      .header .reply {
        margin-left: var(--default-horizontal-margin);
      }
      gr-reply-dialog {
        width: 50em;
      }
      .changeStatus {
        color: #999;
        text-transform: capitalize;
      }
      section {
        margin: 10px 0;
        padding: 10px var(--default-horizontal-margin);
      }
      /* Strong specificity here is needed due to
         https://github.com/Polymer/polymer/issues/2531 */
      .container section.changeInfo {
        border-bottom: 1px solid #ddd;
        display: flex;
        margin-top: 0;
        padding-top: 0;
      }
      .changeInfo-column:not(:last-of-type) {
        margin-right: 1em;
        padding-right: 1em;
      }
      .changeMetadata {
        border-right: 1px solid #ddd;
        font-size: .9em;
      }
      gr-change-actions {
        margin-top: 1em;
      }
      .commitMessage {
        font-family: var(--monospace-font-family);
        flex: 0 0 72ch;
        margin-right: 2em;
        margin-bottom: 1em;
        overflow-x: hidden;
      }
      .commitMessage h4 {
        font-family: var(--font-family);
        font-weight: bold;
        margin-bottom: .25em;
      }
      .commitMessage gr-linked-text {
        --linked-text-white-space: pre;
        overflow: auto;
      }
      .commitAndRelated {
        align-content: flex-start;
        display: flex;
        flex: 1;
        overflow-x: hidden;
      }
      .relatedChanges {
        flex: 1 1 auto;
        font-size: .9em;
        overflow: hidden;
      }
      gr-file-list {
        margin-bottom: 1em;
        padding: 0 var(--default-horizontal-margin);
      }
      @media screen and (max-width: 50em) {
        .headerContainer {
          height: 5.15em;
        }
        .header {
          align-items: flex-start;
          flex-direction: column;
          padding: .5em var(--default-horizontal-margin);
        }
        gr-change-star {
          vertical-align: middle;
        }
        .header-title {
          font-size: 1.1em;
        }
        .header-actions {
          align-items: center;
          display: flex;
          justify-content: space-between;
          margin-top: .5em;
        }
        gr-reply-dialog {
          min-width: initial;
          width: 90vw;
        }
        .download {
          display: none;
        }
        .patchSelectLabel {
          margin-left: 0;
          margin-right: .5em;
        }
        .header select {
          margin-left: 0;
          margin-right: .5em;
        }
        .header .reply {
          margin-left: 0;
          margin-right: .5em;
        }
        .changeInfo-column:not(:last-of-type) {
          margin-right: 0;
          padding-right: 0;
        }
        .changeInfo,
        .commitAndRelated {
          flex-direction: column;
          flex-wrap: nowrap;
        }
        .relatedChanges,
        .changeMetadata {
          font-size: 1em;
        }
        .changeMetadata {
          border-right: none;
          margin-bottom: 1em;
          margin-top: .25em;
          max-width: none;
        }
        .commitMessage {
          flex: initial;
          margin-right: 0;
        }
      }
    </style>
    <div class="container loading" hidden$="{{!_loading}}">Loading...</div>
    <div class="container" hidden$="{{_loading}}">
      <div class="headerContainer">
        <div class="header">
          <span class="header-title">
            <gr-change-star change="{{_change}}" hidden$="[[!_loggedIn]]"></gr-change-star>
            <a href$="[[_computeChangePermalink(_change._number)]]">[[_change._number]]</a><span>:</span>
            <span>[[_change.subject]]</span>
            <span class="changeStatus">[[_computeChangeStatus(_change, _patchRange.patchNum)]]</span>
          </span>
          <span class="header-actions">
            <gr-button hidden
                class="reply"
                primary$="[[_computeReplyButtonHighlighted(_diffDrafts.*)]]"
                hidden$="[[!_loggedIn]]"
                on-tap="_handleReplyTap">[[_replyButtonLabel]]</gr-button>
            <gr-button class="download" on-tap="_handleDownloadTap">Download</gr-button>
            <span>
              <label class="patchSelectLabel" for="patchSetSelect">Patch set</label>
              <select id="patchSetSelect" on-change="_handlePatchChange">
                <template is="dom-repeat" items="{{_allPatchSets}}" as="patchNumber">
                  <option value$="[[patchNumber]]" selected$="[[_computePatchIndexIsSelected(index, _patchRange.patchNum)]]">
                    <span>[[patchNumber]]</span>
                    /
                    <span>[[_computeLatestPatchNum(_change)]]</span>
                  </option>
                </template>
              </select>
            </span>
          </span>
        </div>
      </div>
      <section class="changeInfo">
        <div class="changeInfo-column changeMetadata">
          <gr-change-metadata
              change="[[_change]]"
              server-config="[[serverConfig]]"
              mutable="[[_loggedIn]]"></gr-change-metadata>
          <gr-change-actions id="actions"
              actions="[[_change.actions]]"
              change-num="[[_changeNum]]"
              patch-num="[[_patchRange.patchNum]]"
              commit-info="[[_commitInfo]]"
              on-reload-change="_handleReloadChange"></gr-change-actions>
        </div>
        <div class="changeInfo-column commitAndRelated">
          <div class="commitMessage">
            <h4>Commit message</h4>
            <gr-linked-text pre
                content="[[_commitInfo.message]]"
                config="[[_projectConfig.commentlinks]]"></gr-linked-text>
          </div>
          <div class="relatedChanges">
            <gr-related-changes-list id="relatedChanges"
                change="[[_change]]"
                patch-num="[[_patchRange.patchNum]]"></gr-related-changes-list>
          </div>
        </div>
      </section>
      <gr-file-list id="fileList"
          change-num="[[_changeNum]]"
          patch-range="[[_patchRange]]"
          comments="[[_comments]]"
          drafts="[[_diffDrafts]]"
          revisions="[[_change.revisions]]"
          projectConfig="[[projectConfig]]"
          selected-index="{{viewState.selectedFileIndex}}"></gr-file-list>
      <gr-messages-list id="messageList"
          change-num="[[_changeNum]]"
          messages="[[_change.messages]]"
          comments="[[_comments]]"
          project-config="[[_projectConfig]]"
          show-reply-buttons="[[_loggedIn]]"
          on-reply="_handleMessageReply"></gr-messages-list>
    </div>
    <gr-overlay id="downloadOverlay" with-backdrop>
      <gr-download-dialog
          change="[[_change]]"
          patch-num="[[_patchRange.patchNum]]"
          config="[[serverConfig.download]]"
          on-close="_handleDownloadDialogClose"></gr-download-dialog>
    </gr-overlay>
    <gr-overlay id="replyOverlay"
        on-iron-overlay-opened="_handleReplyOverlayOpen"
        with-backdrop>
      <gr-reply-dialog id="replyDialog"
          change-num="[[_changeNum]]"
          patch-num="[[_patchRange.patchNum]]"
          revisions="[[_change.revisions]]"
          labels="[[_change.labels]]"
          permitted-labels="[[_change.permitted_labels]]"
          diff-drafts="[[_diffDrafts]]"
          on-send="_handleReplySent"
          on-cancel="_handleReplyCancel"
          hidden$="[[!_loggedIn]]">Reply</gr-reply-dialog>
    </gr-overlay>
    <gr-js-api-interface id="jsAPI"></gr-js-api-interface>
    <gr-rest-api-interface id="restAPI"></gr-rest-api-interface>
  </template>
  <script src="gr-change-view.js"></script>
</dom-module>
