| /** |
| * @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"> |
| /* Workaround for empty style block - see https://github.com/Polymer/tools/issues/408 */ |
| </style> |
| <style include="gr-form-styles"> |
| #watchedProjects .notifType { |
| text-align: center; |
| padding: 0 var(--spacing-s); |
| } |
| .notifControl { |
| cursor: pointer; |
| text-align: center; |
| } |
| .notifControl:hover { |
| outline: 1px solid var(--border-color); |
| } |
| .projectFilter { |
| color: var(--deemphasized-text-color); |
| font-style: italic; |
| margin-left: var(--spacing-l); |
| } |
| .newFilterInput { |
| width: 100%; |
| } |
| </style> |
| <div class="gr-form-styles"> |
| <table id="watchedProjects"> |
| <thead> |
| <tr> |
| <th>Repo</th> |
| <template is="dom-repeat" items="[[_getTypes()]]"> |
| <th class="notifType">[[item.name]]</th> |
| </template> |
| <th></th> |
| </tr> |
| </thead> |
| <tbody> |
| <template is="dom-repeat" items="[[_projects]]" as="project" index-as="projectIndex"> |
| <tr> |
| <td> |
| [[project.project]] |
| <template is="dom-if" if="[[project.filter]]"> |
| <div class="projectFilter">[[project.filter]]</div> |
| </template> |
| </td> |
| <template is="dom-repeat" items="[[_getTypes()]]" as="type"> |
| <td class="notifControl" on-click="_handleNotifCellClick"> |
| <input type="checkbox" data-index\$="[[projectIndex]]" data-key\$="[[type.key]]" on-change="_handleCheckboxChange" checked\$="[[_computeCheckboxChecked(project, type.key)]]"> |
| </td> |
| </template> |
| <td> |
| <gr-button link="" data-index\$="[[projectIndex]]" on-click="_handleRemoveProject">Delete</gr-button> |
| </td> |
| </tr> |
| </template> |
| </tbody> |
| <tfoot> |
| <tr> |
| <th> |
| <gr-autocomplete id="newProject" query="[[_query]]" threshold="1" allow-non-suggested-values="" tab-complete="" placeholder="Repo"></gr-autocomplete> |
| </th> |
| <th colspan\$="[[_getTypeCount()]]"> |
| <iron-input class="newFilterInput" placeholder="branch:name, or other search expression"> |
| <input id="newFilter" class="newFilterInput" is="iron-input" placeholder="branch:name, or other search expression"> |
| </iron-input> |
| </th> |
| <th> |
| <gr-button link="" on-click="_handleAddProject">Add</gr-button> |
| </th> |
| </tr> |
| </tfoot> |
| </table> |
| </div> |
| <gr-rest-api-interface id="restAPI"></gr-rest-api-interface> |
| `; |