8061a65720
Feature: Issue 3645 Change-Id: Ic7f408069abce6005392a4a222cc2a1fd4f7573b
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>
|