<!--
@license
Copyright (C) 2016 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/rest-client-behavior/rest-client-behavior.html">
<link rel="import" href="../../../styles/shared-styles.html">
<link rel="import" href="../../../styles/gr-voting-styles.html">
<link rel="import" href="../../core/gr-navigation/gr-navigation.html">
<link rel="import" href="../../plugins/gr-endpoint-decorator/gr-endpoint-decorator.html">
<link rel="import" href="../../plugins/gr-endpoint-param/gr-endpoint-param.html">
<link rel="import" href="../../plugins/gr-external-style/gr-external-style.html">
<link rel="import" href="../../shared/gr-account-chip/gr-account-chip.html">
<link rel="import" href="../../shared/gr-account-link/gr-account-link.html">
<link rel="import" href="../../shared/gr-date-formatter/gr-date-formatter.html">
<link rel="import" href="../../shared/gr-editable-label/gr-editable-label.html">
<link rel="import" href="../../shared/gr-limited-text/gr-limited-text.html">
<link rel="import" href="../../shared/gr-linked-chip/gr-linked-chip.html">
<link rel="import" href="../../shared/gr-tooltip-content/gr-tooltip-content.html">
<link rel="import" href="../../shared/gr-rest-api-interface/gr-rest-api-interface.html">
<link rel="import" href="../gr-change-requirements/gr-change-requirements.html">
<link rel="import" href="../gr-commit-info/gr-commit-info.html">
<link rel="import" href="../gr-reviewer-list/gr-reviewer-list.html">

<dom-module id="gr-change-metadata">
  <template>
    <style include="shared-styles">
      :host {
        display: table;
      }
      section {
        display: table-row;
      }
      section:not(:first-of-type) .title,
      section:not(:first-of-type) .value {
        padding-top: .5em;
      }
      section:not(:first-of-type) {
        margin-top: 1em;
      }
      .title,
      .value {
        display: table-cell;
      }
      .title {
        color: var(--deemphasized-text-color);
        font-weight: var(--font-weight-bold);
        max-width: 20em;
        padding-left: var(--metadata-horizontal-padding);
        padding-right: .5em;
        word-break: break-word;
      }
      .value {
        padding-right: var(--metadata-horizontal-padding);
      }
      gr-change-requirements {
        --requirements-horizontal-padding: var(--metadata-horizontal-padding);
      }
      gr-account-link {
        max-width: 20ch;
        overflow: hidden;
        text-overflow: ellipsis;
        vertical-align: middle;
        white-space: nowrap;
      }
      gr-editable-label {
        max-width: 9em;
      }
      .webLink {
        display: block;
      }
      /* CSS Mixins should be applied last. */
      section.assignee {
        @apply --change-metadata-assignee;
      }
      section.strategy {
        @apply --change-metadata-strategy;
      }
      section.topic {
        @apply --change-metadata-topic;
      }
      gr-account-chip[disabled],
      gr-linked-chip[disabled] {
        opacity: 0;
        pointer-events: none;
      }
      .hashtagChip {
        margin-bottom: .5em;
      }
      #externalStyle {
        display: block;
      }
      .parentList.merge {
        list-style-type: decimal;
        padding-left: 1em;
      }
      .parentList gr-commit-info {
        display: inline-block;
      }
      .hideDisplay,
      #parentNotCurrentMessage {
        display: none;
      }
      .parentList.notCurrent.nonMerge #parentNotCurrentMessage {
        --arrow-color: #ffa62f;
        display: inline-block;
      }
      .separatedSection {
        border-top: 1px solid var(--border-color);
        margin-top: .5em;
        padding: .5em 0;
      }
    </style>
    <gr-external-style id="externalStyle" name="change-metadata">
      <section>
        <span class="title">Updated</span>
        <span class="value">
          <gr-date-formatter
              has-tooltip
              date-str="[[change.updated]]"></gr-date-formatter>
        </span>
      </section>
      <section>
        <span class="title">Owner</span>
        <span class="value">
          <gr-account-link account="[[change.owner]]"></gr-account-link>
        </span>
      </section>
      <section class$="[[_computeShowUploaderHide(change)]]">
        <span class="title">Uploader</span>
        <span class="value">
          <gr-account-link
              account="[[_computeShowUploader(change)]]"></gr-account-link>
        </span>
      </section>
      <section class="assignee">
        <span class="title">Assignee</span>
        <span class="value">
          <gr-account-list
              max-count="1"
              id="assigneeValue"
              placeholder="Set assignee..."
              accounts="{{_assignee}}"
              change="[[change]]"
              readonly="[[_computeAssigneeReadOnly(_mutable, change)]]"
              allow-any-user></gr-account-list>
        </span>
      </section>
      <template is="dom-if" if="[[_showReviewersByState]]">
        <section>
          <span class="title">Reviewers</span>
          <span class="value">
            <gr-reviewer-list
                change="{{change}}"
                mutable="[[_mutable]]"
                reviewers-only
                max-reviewers-displayed="3"></gr-reviewer-list>
          </span>
        </section>
        <section>
          <span class="title">CC</span>
          <span class="value">
            <gr-reviewer-list
                change="{{change}}"
                mutable="[[_mutable]]"
                ccs-only
                max-reviewers-displayed="3"></gr-reviewer-list>
          </span>
        </section>
      </template>
      <template is="dom-if" if="[[!_showReviewersByState]]">
        <section>
          <span class="title">Reviewers</span>
          <span class="value">
            <gr-reviewer-list
                change="{{change}}"
                mutable="[[_mutable]]"></gr-reviewer-list>
          </span>
        </section>
      </template>
      <section>
        <span class="title">Repo</span>
        <span class="value">
          <a href$="[[_computeProjectURL(change.project)]]">
            <gr-limited-text limit="40" text="[[change.project]]"></gr-limited-text>
          </a>
        </span>
      </section>
      <section>
        <span class="title">Branch</span>
        <span class="value">
          <a href$="[[_computeBranchURL(change.project, change.branch)]]">
            <gr-limited-text limit="40" text="[[change.branch]]"></gr-limited-text>
          </a>
        </span>
      </section>
      <section>
        <span class="title">[[_computeParentsLabel(_currentParents)]]</span>
        <span class="value">
          <ol class$="[[_computeParentListClass(_currentParents, parentIsCurrent)]]">
            <template is="dom-repeat" items="[[_currentParents]]" as="parent">
              <li>
                <gr-commit-info
                    change="[[change]]"
                    commit-info="[[parent]]"
                    server-config="[[serverConfig]]"></gr-commit-info>
                <gr-tooltip-content
                    id="parentNotCurrentMessage"
                    has-tooltip
                    show-icon
                    title$="[[_notCurrentMessage]]"></gr-tooltip-content>
              </li>
            </template>
          </ol>
        </span>
      </section>
      <section class="topic">
        <span class="title">Topic</span>
        <span class="value">
          <template
              is="dom-if"
              if="[[_showTopicChip(change.*, _settingTopic)]]">
            <gr-linked-chip
                text="[[change.topic]]"
                limit="40"
                href="[[_computeTopicURL(change.topic)]]"
                removable="[[!_topicReadOnly]]"
                on-remove="_handleTopicRemoved"></gr-linked-chip>
          </template>
          <template
              is="dom-if"
              if="[[_showAddTopic(change.*, _settingTopic)]]">
            <gr-editable-label
                label-text="Add a topic"
                value="[[change.topic]]"
                max-length="1024"
                placeholder="[[_computeTopicPlaceholder(_topicReadOnly)]]"
                read-only="[[_topicReadOnly]]"
                on-changed="_handleTopicChanged"></gr-editable-label>
          </template>
        </span>
      </section>
      <section class="strategy" hidden$="[[_computeHideStrategy(change)]]" hidden>
        <span class="title">Strategy</span>
        <span class="value">[[_computeStrategy(change)]]</span>
      </section>
      <template is="dom-if" if="[[serverConfig.note_db_enabled]]">
        <section class="hashtag">
          <span class="title">Hashtags</span>
          <span class="value">
            <template is="dom-repeat" items="[[change.hashtags]]">
              <gr-linked-chip
                  class="hashtagChip"
                  text="[[item]]"
                  href="[[_computeHashtagURL(item)]]"
                  removable="[[!_hashtagReadOnly]]"
                  on-remove="_handleHashtagRemoved">
              </gr-linked-chip>
            </template>
            <template is="dom-if" if="[[!_hashtagReadOnly]]">
              <gr-editable-label
                  uppercase
                  label-text="Add a hashtag"
                  value="{{_newHashtag}}"
                  placeholder="[[_computeHashtagPlaceholder(_hashtagReadOnly)]]"
                  read-only="[[_hashtagReadOnly]]"
                  on-changed="_handleHashtagChanged"></gr-editable-label>
            </template>
          </span>
        </section>
      </template>
      <div class="separatedSection">
        <gr-change-requirements
            change="{{change}}"
            account="[[account]]"
            mutable="[[_mutable]]"></gr-change-requirements>
      </div>
      <section id="webLinks" hidden$="[[!_computeWebLinks(commitInfo)]]">
        <span class="title">Links</span>
        <span class="value">
          <template is="dom-repeat"
              items="[[_computeWebLinks(commitInfo)]]" as="link">
            <a href="[[link.url]]" class="webLink" rel="noopener" target="_blank">
              [[link.name]]
            </a>
          </template>
        </span>
      </section>
      <gr-endpoint-decorator name="change-metadata-item">
        <gr-endpoint-param name="labels" value="[[labels]]"></gr-endpoint-param>
        <gr-endpoint-param name="change" value="[[change]]"></gr-endpoint-param>
        <gr-endpoint-param name="revision" value="[[revision]]"></gr-endpoint-param>
      </gr-endpoint-decorator>
    </gr-external-style>
    <gr-rest-api-interface id="restAPI"></gr-rest-api-interface>
  </template>
  <script src="gr-change-metadata.js"></script>
</dom-module>
