| <!-- |
| 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-file-list"> |
| <template> |
| <style> |
| :host { |
| display: block; |
| } |
| .tableContainer { |
| overflow-x: auto; |
| } |
| table { |
| border-collapse: collapse; |
| width: 100%; |
| } |
| table a { |
| display: block; |
| } |
| td { |
| padding: 2px 0; |
| white-space: nowrap; |
| } |
| th { |
| text-align: left; |
| } |
| .status { |
| width: 20px; |
| } |
| </style> |
| <iron-ajax id="xhr" |
| url="[[_computeFilesURL(changeNum, revision)]]" |
| json-prefix=")]}'" |
| on-response="_handleResponse"></iron-ajax> |
| <div class="tableContainer"> |
| <table> |
| <tr> |
| <th></th> |
| <th></th> |
| <th>Path</th> |
| <th>Stats</th> |
| </tr> |
| <template is="dom-repeat" items="{{files}}" as="file"> |
| <tr> |
| <td></td> |
| <td class="status">[[file.status]]</td> |
| <td class="path"> |
| <a class="file" |
| href$="[[_computeDiffURL(changeNum, patchNum, file.__path)]]">[[file.__path]]</a> |
| </td> |
| <td> |
| +<span>[[file.lines_inserted]]</span> lines, |
| -<span>[[file.lines_deleted]]</span> lines |
| </td> |
| </tr> |
| </template> |
| </table> |
| </div> |
| </template> |
| <script> |
| (function() { |
| 'use strict'; |
| |
| Polymer({ |
| is: 'gr-file-list', |
| |
| properties: { |
| patchNum: Number, |
| changeNum: { |
| type: Number, |
| observer: '_changeNumOrRevisionChanged', |
| }, |
| revision: { |
| type: String, |
| observer: '_changeNumOrRevisionChanged', |
| }, |
| comments: { |
| type: Array, |
| value: [], |
| }, |
| }, |
| |
| _changeNumOrRevisionChanged: function() { |
| if (!!this.changeNum && !!this.revision) { |
| this.$.xhr.generateRequest(); |
| } |
| }, |
| |
| _computeFilesURL: function(changeNum, revision) { |
| return '/changes/' + changeNum + '/revisions/' + revision + '/files'; |
| }, |
| |
| _handleResponse: function(e, req) { |
| var result = e.detail.response; |
| var paths = Object.keys(result).sort(); |
| var files = []; |
| for (var i = 0; i < paths.length; i++) { |
| var info = result[paths[i]]; |
| info.__path = paths[i]; |
| info.lines_inserted = info.lines_inserted || 0; |
| info.lines_deleted = info.lines_deleted || 0; |
| files.push(info) |
| } |
| this.files = files; |
| }, |
| |
| _computeDiffURL: function(changeNum, patchNum, path) { |
| return '/c/' + changeNum + '/' + patchNum + '/' + path; |
| }, |
| }); |
| })(); |
| </script> |
| </dom-module> |