96 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			3.0 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-patch-range-select">
 | 
						|
  <template>
 | 
						|
    <style>
 | 
						|
      :host {
 | 
						|
        display: block;
 | 
						|
      }
 | 
						|
      .patchRange {
 | 
						|
        display: inline-block;
 | 
						|
      }
 | 
						|
    </style>
 | 
						|
    Patch set:
 | 
						|
    <span class="patchRange">
 | 
						|
      <select id="leftPatchSelect" on-change="_handlePatchChange">
 | 
						|
        <option value="PARENT"
 | 
						|
            selected$="[[_computeLeftSelected('PARENT', patchRange)]]">Base</option>
 | 
						|
        <template is="dom-repeat" items="{{availablePatches}}" as="patchNum">
 | 
						|
          <option value$="[[patchNum]]"
 | 
						|
              selected$="[[_computeLeftSelected(patchNum, patchRange)]]"
 | 
						|
              disabled$="[[_computeLeftDisabled(patchNum, patchRange)]]">[[patchNum]]</option>
 | 
						|
        </template>
 | 
						|
      </select>
 | 
						|
    </span>
 | 
						|
    →
 | 
						|
    <span class="patchRange">
 | 
						|
      <select id="rightPatchSelect" on-change="_handlePatchChange">
 | 
						|
        <template is="dom-repeat" items="{{availablePatches}}" as="patchNum">
 | 
						|
          <option value$="[[patchNum]]"
 | 
						|
              selected$="[[_computeRightSelected(patchNum, patchRange)]]"
 | 
						|
              disabled$="[[_computeRightDisabled(patchNum, patchRange)]]">[[patchNum]]</option>
 | 
						|
        </template>
 | 
						|
      </select>
 | 
						|
    </span>
 | 
						|
  </template>
 | 
						|
  <script>
 | 
						|
  (function() {
 | 
						|
    'use strict';
 | 
						|
 | 
						|
    Polymer({
 | 
						|
      is: 'gr-patch-range-select',
 | 
						|
 | 
						|
      properties: {
 | 
						|
        availablePatches: Array,
 | 
						|
        changeNum: String,
 | 
						|
        patchRange: Object,
 | 
						|
        path: String,
 | 
						|
      },
 | 
						|
 | 
						|
      _handlePatchChange: function(e) {
 | 
						|
        var leftPatch = this.$.leftPatchSelect.value;
 | 
						|
        var rightPatch = this.$.rightPatchSelect.value;
 | 
						|
        var rangeStr = rightPatch;
 | 
						|
        if (leftPatch != 'PARENT') {
 | 
						|
          rangeStr = leftPatch + '..' + rangeStr;
 | 
						|
        }
 | 
						|
        page.show('/c/' + this.changeNum + '/' + rangeStr + '/' + this.path);
 | 
						|
      },
 | 
						|
 | 
						|
      _computeLeftSelected: function(patchNum, patchRange) {
 | 
						|
        return patchNum == patchRange.basePatchNum;
 | 
						|
      },
 | 
						|
 | 
						|
      _computeRightSelected: function(patchNum, patchRange) {
 | 
						|
        return patchNum == patchRange.patchNum;
 | 
						|
      },
 | 
						|
 | 
						|
      _computeLeftDisabled: function(patchNum, patchRange) {
 | 
						|
        return parseInt(patchNum, 10) >= parseInt(patchRange.patchNum, 10);
 | 
						|
      },
 | 
						|
 | 
						|
      _computeRightDisabled: function(patchNum, patchRange) {
 | 
						|
        if (patchRange.basePatchNum == 'PARENT') { return false; }
 | 
						|
        return parseInt(patchNum, 10) <= parseInt(patchRange.basePatchNum, 10);
 | 
						|
      },
 | 
						|
    });
 | 
						|
  })();
 | 
						|
  </script>
 | 
						|
</dom-module>
 |