<!--
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/base-url-behavior/base-url-behavior.html">
<link rel="import" href="../../../behaviors/gr-patch-set-behavior/gr-patch-set-behavior.html">
<link rel="import" href="../../../behaviors/keyboard-shortcut-behavior/keyboard-shortcut-behavior.html">
<link rel="import" href="../../../behaviors/rest-client-behavior/rest-client-behavior.html">
<link rel="import" href="../../../bower_components/iron-autogrow-textarea/iron-autogrow-textarea.html">
<link rel="import" href="../../plugins/gr-endpoint-decorator/gr-endpoint-decorator.html">
<link rel="import" href="../../shared/gr-account-chip/gr-account-chip.html">
<link rel="import" href="../../shared/gr-textarea/gr-textarea.html">
<link rel="import" href="../../shared/gr-button/gr-button.html">
<link rel="import" href="../../shared/gr-formatted-text/gr-formatted-text.html">
<link rel="import" href="../../shared/gr-js-api-interface/gr-js-api-interface.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="../../shared/gr-storage/gr-storage.html">
<link rel="import" href="../gr-account-list/gr-account-list.html">
<link rel="import" href="../gr-label-scores/gr-label-scores.html">
<link rel="import" href="../../../styles/shared-styles.html">

<dom-module id="gr-reply-dialog">
  <template>
    <style include="shared-styles">
      :host {
        display: block;
        max-height: 100%;
      }
      :host([disabled]) {
        pointer-events: none;
      }
      :host([disabled]) .container {
        opacity: .5;
      }
      .container {
        display: flex;
        flex-direction: column;
        max-height: 100%;
      }
      section {
        border-top: 1px solid #cdcdcd;
        flex-shrink: 0;
        padding: .5em 1.5em;
        width: 100%;
      }
      .actions {
        background-color: var(--view-background-color);
        bottom: 0;
        display: flex;
        justify-content: space-between;
        position: sticky;
      }
      .actions .right gr-button {
        margin-left: 1em;
      }
      .peopleContainer,
      .labelsContainer {
        flex-shrink: 0;
      }
      .peopleContainer {
        display: table;
      }
      .peopleList {
        display: flex;
        padding-top: .1em;
      }
      .peopleListLabel {
        color: #666;
        margin-top: .2em;
        min-width: 7em;
        padding-right: .5em;
      }
      gr-account-list {
        display: flex;
        flex-wrap: wrap;
        flex: 1;
        min-height: 1.8em;
      }
      #reviewerConfirmationOverlay {
        padding: 1em;
        text-align: center;
      }
      .reviewerConfirmationButtons {
        margin-top: 1em;
      }
      .groupName {
        font-family: var(--font-family-bold);
      }
      .groupSize {
        font-style: italic;
      }
      .textareaContainer {
        min-height: 12em;
        position: relative;
      }
      .textareaContainer,
      #textarea,
      gr-endpoint-decorator {
        display: flex;
        width: 100%;
      }
      .previewContainer gr-formatted-text {
        background: #f6f6f6;
        padding: 1em;
      }
      .draftsContainer h3 {
        margin-top: .25em;
      }
      #checkingStatusLabel,
      #notLatestLabel {
        margin-left: 1em;
      }
      #checkingStatusLabel {
        color: #444;
        font-style: italic;
      }
      #notLatestLabel,
      #savingLabel {
        color: red;
      }
      #savingLabel {
        display: none;
      }
      #savingLabel.saving {
        display: inline;
      }
    </style>
    <div class="container" tabindex="-1">
      <section class="peopleContainer">
        <div class="peopleList">
          <div class="peopleListLabel">Reviewers</div>
          <gr-account-list
              id="reviewers"
              accounts="{{_reviewers}}"
              removable-values="[[change.removable_reviewers]]"
              change="[[change]]"
              filter="[[filterReviewerSuggestion]]"
              pending-confirmation="{{_reviewerPendingConfirmation}}"
              placeholder="Add reviewer..."
              on-account-text-changed="_handleAccountTextEntry">
          </gr-account-list>
        </div>
        <template is="dom-if" if="[[serverConfig.note_db_enabled]]">
          <div class="peopleList">
            <div class="peopleListLabel">CC</div>
            <gr-account-list
                id="ccs"
                accounts="{{_ccs}}"
                change="[[change]]"
                filter="[[filterCCSuggestion]]"
                pending-confirmation="{{_ccPendingConfirmation}}"
                allow-any-input
                placeholder="Add CC..."
                on-account-text-changed="_handleAccountTextEntry">
            </gr-account-list>
          </div>
        </template>
        <gr-overlay
            id="reviewerConfirmationOverlay"
            on-iron-overlay-canceled="_cancelPendingReviewer">
          <div class="reviewerConfirmation">
            Group
            <span class="groupName">
              [[_pendingConfirmationDetails.group.name]]
            </span>
            has
            <span class="groupSize">
              [[_pendingConfirmationDetails.count]]
            </span>
            members.
            <br>
            Are you sure you want to add them all?
          </div>
          <div class="reviewerConfirmationButtons">
            <gr-button on-tap="_confirmPendingReviewer">Yes</gr-button>
            <gr-button on-tap="_cancelPendingReviewer">No</gr-button>
          </div>
        </gr-overlay>
      </section>
      <section class="textareaContainer">
        <gr-endpoint-decorator name="reply-text">
          <gr-textarea
              id="textarea"
              class="message"
              autocomplete="on"
              placeholder=[[_messagePlaceholder]]
              fixed-position-dropdown
              hide-border="true"
              monospace="true"
              disabled="{{disabled}}"
              rows="4"
              text="{{draft}}"
              on-bind-value-changed="_handleHeightChanged">
          </gr-textarea>
        </gr-endpoint-decorator>
      </section>
      <section class="previewContainer">
        <label>
          <input type="checkbox" checked="{{_previewFormatting::change}}">
          Preview formatting
        </label>
        <gr-formatted-text
            content="[[draft]]"
            hidden$="[[!_previewFormatting]]"
            config="[[projectConfig.commentlinks]]"></gr-formatted-text>
      </section>
      <section class="labelsContainer">
        <gr-label-scores
            id="labelScores"
            account="[[_account]]"
            change="[[change]]"
            on-labels-changed="_handleLabelsChanged"
            permitted-labels=[[permittedLabels]]></gr-label-scores>
      </section>
      <section class="draftsContainer" hidden$="[[_computeHideDraftList(diffDrafts)]]">
        <div class="includeComments">
          <input type="checkbox" id="includeComments"
              checked="{{_includeComments::change}}">
          <label for="includeComments">Publish [[_computeDraftsTitle(diffDrafts)]]</label>
        </div>
        <gr-comment-list
            id="commentList"
            comments="[[diffDrafts]]"
            change-num="[[change._number]]"
            project-config="[[projectConfig]]"
            patch-num="[[patchNum]]"
            hidden$="[[!_includeComments]]"></gr-comment-list>
        <span
            id="savingLabel"
            class$="[[_computeSavingLabelClass(_savingComments)]]">
          Saving comments...
        </span>
      </section>
      <section class="actions">
        <div class="left">
          <template is="dom-if" if="[[canBeStarted]]">
            <gr-button
                link
                tertiary
                disabled="[[_isState(knownLatestState, 'not-latest')]]"
                class="action save"
                has-tooltip
                title="[[_saveTooltip]]"
                on-tap="_saveTapHandler">Save</gr-button>
          </template>
          <span
              id="checkingStatusLabel"
              hidden$="[[!_isState(knownLatestState, 'checking')]]">
            Checking whether patch [[patchNum]] is latest...
          </span>
          <span
              id="notLatestLabel"
              hidden$="[[!_isState(knownLatestState, 'not-latest')]]">
            [[_computePatchSetWarning(patchNum, _labelsChanged)]]
            <gr-button link on-tap="_reload">Reload</gr-button>
          </span>
        </div>
        <div class="right">
          <gr-button
              link
              id="cancelButton"
              class="action cancel"
              on-tap="_cancelTapHandler">Cancel</gr-button>
          <gr-button
              link
              primary
              disabled="[[_computeSendButtonDisabled(_sendButtonLabel, diffDrafts, draft, _reviewersMutated, _labelsChanged, _includeComments)]]"
              class="action send"
              has-tooltip
              title$="[[_computeSendButtonTooltip(canBeStarted)]]"
              on-tap="_sendTapHandler">[[_sendButtonLabel]]</gr-button>
        </div>
      </section>
    </div>
    <gr-js-api-interface id="jsAPI"></gr-js-api-interface>
    <gr-rest-api-interface id="restAPI"></gr-rest-api-interface>
    <gr-storage id="storage"></gr-storage>
  </template>
  <script src="gr-reply-dialog.js"></script>
</dom-module>
