| /** |
| * @license |
| * Copyright (C) 2020 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. |
| */ |
| import {html} from '@polymer/polymer/lib/utils/html-tag.js'; |
| |
| export const htmlTemplate = html` |
| <style include="shared-styles"> |
| :host { |
| display: block; |
| } |
| :host([disabled]) { |
| opacity: .5; |
| pointer-events: none; |
| } |
| label { |
| cursor: pointer; |
| } |
| .main { |
| display: flex; |
| flex-direction: column; |
| width: 100%; |
| } |
| .main label, |
| .main input[type="text"] { |
| display: block; |
| width: 100%; |
| } |
| iron-autogrow-textarea { |
| font-family: var(--monospace-font-family); |
| font-size: var(--font-size-mono); |
| line-height: var(--line-height-mono); |
| width: 73ch; /* Add a char to account for the border. */ |
| } |
| .cherryPickTopicLayout { |
| display: flex; |
| } |
| .cherryPickSingleChange, .cherryPickTopic { |
| margin-left: var(--spacing-m); |
| margin-bottom: var(--spacing-m); |
| } |
| .cherry-pick-topic-message { |
| margin-bottom: var(--spacing-m); |
| } |
| label[for='messageInput'] , label[for='baseInput'] { |
| margin-top: var(--spacing-m); |
| } |
| .title { |
| font-weight: var(--font-weight-bold); |
| } |
| tr > td { |
| padding: var(--spacing-m); |
| } |
| th { |
| color: var(--deemphasized-text-color); |
| } |
| table { |
| border-collapse: collapse; |
| } |
| tr { |
| border-bottom: 1px solid var(--border-color); |
| } |
| .error { |
| color: var(--error-text-color); |
| } |
| .error-message { |
| color: var(--error-text-color); |
| margin: var(--spacing-m) 0 var(--spacing-m) 0; |
| } |
| </style> |
| <gr-dialog confirm-label="Cherry Pick" cancel-label="[[_computeCancelLabel(_statuses)]]" disabled\$="[[_computeDisableCherryPick(_cherryPickType, _duplicateProjectChanges, _statuses)]]" on-confirm="_handleConfirmTap" on-cancel="_handleCancelTap"> |
| <div class="header title" slot="header">Cherry Pick Change to Another Branch</div> |
| <div class="main" slot="main"> |
| |
| <template is="dom-if" if="[[_showCherryPickTopic]]"> |
| <div class="cherryPickTopicLayout"> |
| <input name="cherryPickOptions" type="radio" id="cherryPickSingleChange" on-change="_handlecherryPickSingleChangeClicked" checked=""> |
| <label for="cherryPickSingleChange" class="cherryPickSingleChange"> |
| Cherry Pick single change |
| </label> |
| </div> |
| <div class="cherryPickTopicLayout"> |
| <input name="cherryPickOptions" type="radio" id="cherryPickTopic" on-change="_handlecherryPickTopicClicked"> |
| <label for="cherryPickTopic" class="cherryPickTopic"> |
| Cherry Pick entire topic ([[_changesCount]] Changes) |
| </label> |
| </div></template> |
| |
| <label for="branchInput"> |
| Cherry Pick to branch |
| </label> |
| <gr-autocomplete id="branchInput" text="{{branch}}" query="[[_query]]" placeholder="Destination branch"> |
| </gr-autocomplete> |
| <template is="dom-if" if="[[_invalidBranch]]"> |
| <span class="error"> Branch name cannot contain space or commas. </span> |
| </template> |
| <template is="dom-if" if="[[_computeIfSinglecherryPick(_cherryPickType)]]"> |
| <label for="baseInput"> |
| Provide base commit sha1 for cherry-pick |
| </label> |
| <iron-input maxlength="40" placeholder="(optional)" bind-value="{{baseCommit}}"> |
| <input is="iron-input" id="baseCommitInput" maxlength="40" placeholder="(optional)" bind-value="{{baseCommit}}"> |
| </iron-input> |
| <label for="messageInput"> |
| Cherry Pick Commit Message |
| </label> |
| </template> |
| <template is="dom-if" if="[[_computeIfSinglecherryPick(_cherryPickType)]]"> |
| <iron-autogrow-textarea id="messageInput" class="message" autocomplete="on" rows="4" max-rows="15" bind-value="{{message}}"></iron-autogrow-textarea> |
| </template> |
| <template is="dom-if" if="[[_computeIfCherryPickTopic(_cherryPickType)]]"> |
| <span class="error-message">[[_computeTopicErrorMessage(_duplicateProjectChanges)]]</span> |
| <span class="cherry-pick-topic-message"> Commit Message will be auto generated </span> |
| <table> |
| <thead> |
| <tr> |
| <th> Change </th> |
| <th> Subject </th> |
| <th> Project </th> |
| <th> Status </th> |
| <!-- Error Message --> |
| <th></th> |
| </tr> |
| </thead> |
| <tbody> |
| <template is="dom-repeat" items="[[changes]]"> |
| <tr> |
| <td> <span> [[_getChangeId(item)]] </span> </td> |
| <td> <span> [[_getTrimmedChangeSubject(item.subject)]] </span> </td> |
| <td> <span> [[item.project]] </span> </td> |
| <td> |
| <span class\$="[[_computeStatusClass(item, _statuses)]]"> |
| [[_computeStatus(item, _statuses)]] |
| </span> |
| </td> |
| <td> <span class="error"> [[_computeError(item, _statuses)]] </span> </td> |
| </tr> |
| </template> |
| </tbody> |
| </table> |
| </template> |
| </div> |
| </gr-dialog> |
| <gr-reporting id="reporting" category="confirm-cherry-pick-dialog"></gr-reporting> |
| <gr-rest-api-interface id="restAPI"></gr-rest-api-interface> |
| `; |