Also some small additional changes as well: + Correct some :host selectors that were causing issues when Shadow DOM was used instead of Shady DOM. + Two of the same revisions should not be shown in side-by-side view. When two are specified via the url as /N..N/ redirect to /N/. + Added header to the diff view to give context and allow the user to go back to the top-level change. Feature: Issue 3676 Feature: Issue 3648 Feature: Issue 3649 Change-Id: Ib39bb7cb2eab26740f80971d4e00d579a2e08b0b
		
			
				
	
	
		
			129 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			129 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!--
 | 
						|
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>
 |