<!--
@license
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/fire-behavior/fire-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="../../core/gr-reporting/gr-reporting.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="../../shared/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">
<script src="../../../scripts/gr-display-name-utils/gr-display-name-utils.js"></script>
<script src="../../../scripts/gr-reviewer-suggestions-provider/gr-reviewer-suggestions-provider.js"></script>

<dom-module id="gr-reply-dialog">
  <template>
    <style include="shared-styles">
      :host {
        background-color: var(--dialog-background-color);
        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 var(--border-color);
        flex-shrink: 0;
        padding: .5em 1.5em;
        width: 100%;
      }
      .actions {
        background-color: var(--dialog-background-color);
        bottom: 0;
        display: flex;
        justify-content: space-between;
        position: sticky;
        /* @see Issue 8602 */
        z-index: 1;
      }
      .actions .right gr-button {
        margin-left: 1em;
      }
      .peopleContainer,
      .labelsContainer {
        flex-shrink: 0;
      }
      .peopleContainer {
        border-top: none;
        display: table;
      }
      .peopleList {
        display: flex;
        padding-top: .1em;
      }
      .peopleListLabel {
        color: var(--deemphasized-text-color);
        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-weight: var(--font-weight-bold);
      }
      .groupSize {
        font-style: italic;
      }
      .textareaContainer {
        min-height: 12em;
        position: relative;
      }
      .textareaContainer,
      #textarea,
      gr-endpoint-decorator {
        display: flex;
        width: 100%;
      }
      gr-endpoint-decorator[name="reply-label-scores"] {
        display: block;
      }
      .previewContainer gr-formatted-text {
        background: var(--table-header-background-color);
        padding: 1em;
      }
      .draftsContainer h3 {
        margin-top: .25em;
      }
      #checkingStatusLabel,
      #notLatestLabel {
        margin-left: 1em;
      }
      #checkingStatusLabel {
        color: var(--deemphasized-text-color);
        font-style: italic;
      }
      #notLatestLabel,
      #savingLabel {
        color: var(--error-text-color);
      }
      #savingLabel {
        display: none;
      }
      #savingLabel.saving {
        display: inline;
      }
      #pluginMessage {
        color: var(--deemphasized-text-color);
        margin-left: 1em;
        margin-bottom: .5em;
      }
      #pluginMessage:empty {
        display: none;
      }
    </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]]"
              filter="[[filterReviewerSuggestion]]"
              pending-confirmation="{{_reviewerPendingConfirmation}}"
              placeholder="Add reviewer..."
              on-account-text-changed="_handleAccountTextEntry"
              suggestions-provider="[[_getReviewerSuggestionsProvider(change)]]">
          </gr-account-list>
        </div>
        <div class="peopleList">
          <div class="peopleListLabel">CC</div>
          <gr-account-list
              id="ccs"
              accounts="{{_ccs}}"
              filter="[[filterCCSuggestion]]"
              pending-confirmation="{{_ccPendingConfirmation}}"
              allow-any-input
              placeholder="Add CC..."
              on-account-text-changed="_handleAccountTextEntry"
              suggestions-provider="[[_getCcSuggestionsProvider(change)]]">
          </gr-account-list>
        </div>
        <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-click="_confirmPendingReviewer">Yes</gr-button>
            <gr-button on-click="_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-endpoint-decorator name="reply-label-scores">
          <gr-label-scores
              id="labelScores"
              account="[[_account]]"
              change="[[change]]"
              on-labels-changed="_handleLabelsChanged"
              permitted-labels=[[permittedLabels]]></gr-label-scores>
        </gr-endpoint-decorator>
        <div id="pluginMessage">[[_pluginMessage]]</div>
      </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
                secondary
                disabled="[[_isState(knownLatestState, 'not-latest')]]"
                class="action save"
                has-tooltip
                title="[[_saveTooltip]]"
                on-click="_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-click="_reload">Reload</gr-button>
          </span>
        </div>
        <div class="right">
          <gr-button
              link
              id="cancelButton"
              class="action cancel"
              on-click="_cancelTapHandler">Cancel</gr-button>
          <gr-button
              id="sendButton"
              link
              primary
              disabled="[[_sendDisabled]]"
              class="action send"
              has-tooltip
              title$="[[_computeSendButtonTooltip(canBeStarted)]]"
              on-click="_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>
    <gr-reporting id="reporting"></gr-reporting>
  </template>
  <script src="gr-reply-dialog.js"></script>
</dom-module>
