<!--
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">

<dom-module id="gr-comment-list">
  <template>
    <style>
      :host {
        display: block;
      }
      .file {
        border-top: 1px solid #ddd;
        font-weight: bold;
        margin: 10px 0 3px;
        padding: 10px 0 5px;
      }
      .container {
        display: flex;
        margin: 5px 0;
      }
      .lineNum {
        margin-right: .35em;
        min-width: 7em;
      }
      .message {
        flex: 1;
        white-space: pre-wrap;
        word-wrap: break-word;
      }
    </style>
    <template is="dom-repeat" items="{{_files}}" as="file">
      <div class="file">
        <a href$="[[_computeFileDiffURL(file, changeNum, patchNum)]]">[[file]]</a>:
      </div>
      <template is="dom-repeat"
                items="[[_computeCommentsForFile(file)]]" as="comment">
        <div class="container">
          <a class="lineNum"
             href$="[[_computeDiffLineURL(file, changeNum, comment.patch_set, comment)]]">
             <span hidden$="[[!comment.line]]">
               <span>[[_computePatchDisplayName(comment)]]</span>
               Line <span>[[comment.line]]</span>:
             </span>
             <span hidden$="[[comment.line]]">
               File comment:
             </span>
          </a>
          <div class="message">[[comment.message]]</div>
        </div>
      </template>
    </template>
  </template>
  <script src="gr-comment-list.js"></script>
</dom-module>
