| /** |
| * @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. |
| */ |
| |
| // Element class exists in all browsers: |
| // https://developer.mozilla.org/en-US/docs/Web/API/Element |
| // Rename it to PolymerElement to avoid conflicts. Also, |
| // typescript reports the following error: |
| // error TS2451: Cannot redeclare block-scoped variable 'Element'. |
| const {html, Element: PolymerElement} = Polymer; |
| |
| class RepoCommandLow extends PolymerElement { |
| static get is() { return 'repo-command-low'; } |
| |
| static get properties() { |
| return { |
| rootUrl: String, |
| }; |
| } |
| |
| static get template() { |
| return html` |
| <style include="shared-styles"> |
| :host { |
| display: block; |
| margin-bottom: var(--spacing-xxl); |
| } |
| </style> |
| <h3>Low-level bork</h3> |
| <gr-button |
| on-click="_handleCommandTap" |
| > |
| Low-level bork |
| </gr-button> |
| `; |
| } |
| |
| connectedCallback() { |
| super.connectedCallback(); |
| console.log(this.repoName); |
| console.log(this.config); |
| this.hidden = this.repoName !== 'All-Projects'; |
| } |
| |
| _handleCommandTap() { |
| alert('(softly) bork, bork.'); |
| } |
| } |
| |
| // register the custom component |
| customElements.define(RepoCommandLow.is, RepoCommandLow); |
| |
| /** |
| * This plugin will add two new commands in command page for |
| * All-Projects. |
| * |
| * The added commands will simply alert you when click. |
| */ |
| Gerrit.install(plugin => { |
| // High-level API |
| plugin.project() |
| .createCommand('Bork', (repoName, projectConfig) => { |
| if (repoName !== 'All-Projects') { |
| return false; |
| } |
| }) |
| .onTap(() => { |
| alert('Bork, bork!'); |
| }); |
| |
| // Low-level API |
| plugin.registerCustomComponent( |
| 'repo-command', 'repo-command-low'); |
| }); |