Convert to Polymer 3 Change-Id: I0e03fa6dc3727507045cb57596efa81aca5c2349
diff --git a/BUILD b/BUILD index 7939099..b3d5777 100644 --- a/BUILD +++ b/BUILD
@@ -1,3 +1,4 @@ +load("@npm//@bazel/rollup:index.bzl", "rollup_bundle") load("@rules_java//java:defs.bzl", "java_library") load( "//tools/bzl:plugin.bzl", @@ -59,9 +60,18 @@ polygerrit_plugin( name = "gr-verify-status", - srcs = [ - "gr-verify-status/gr-verify-status-panel.html", - "gr-verify-status/gr-verify-status-panel.js", + app = "gr-verify-status-bundle.js", + plugin_name = "gr-verify-status", +) + +rollup_bundle( + name = "gr-verify-status-bundle", + srcs = glob(["gr-verify-status/*.js"]), + entry_point = "gr-verify-status/plugin.js", + format = "iife", + rollup_bin = "//tools/node_tools:rollup-bin", + sourcemap = "hidden", + deps = [ + "@tools_npm//rollup-plugin-node-resolve", ], - app = "plugin.html", )
diff --git a/gr-verify-status/gr-verify-status-panel.html b/gr-verify-status/gr-verify-status-panel.html deleted file mode 100644 index e34af9c..0000000 --- a/gr-verify-status/gr-verify-status-panel.html +++ /dev/null
@@ -1,45 +0,0 @@ -<!-- -Copyright (C) 2019 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. ---> - -<dom-module id="gr-verify-status-panel"> - <template> - <style include="gr-form-styles"></style> - <style> - .u-green { - color: #388E3C; - } - .u-red { - color: #D32F2F; - } - </style> - <div id="gr-verify-status"> - <span class="u-green">Passed: [[verifyStatus.summary.passed]]</span>, - <span class="u-red">Failed: [[verifyStatus.summary.failed]]</span>, - <span class="u-black">Not done: [[verifyStatus.summary.notdone]]</span> - </div> - <div class="separatedSection style-scope gr-change-metadata" - style="margin-top: 0; padding: 0"> - <table class="test_result_table"> - <tbody> - <template is="dom-repeat" items="{{verifyStatus.results}}"> - <tr> - <td class="cell verifiedstatus"><a href$="[[item.url]]">[[item.name]]</a></td> - <td class="cell verifiedstatus verifiedstatus_value">[[item.value]]</td> - </tr> - </template> - </tbody> - </table> - </div> - </template> - <script src="gr-verify-status-panel.js"></script> -</dom-module>
diff --git a/gr-verify-status/gr-verify-status-panel.js b/gr-verify-status/gr-verify-status-panel.js index bdacdef..91b6f37 100644 --- a/gr-verify-status/gr-verify-status-panel.js +++ b/gr-verify-status/gr-verify-status-panel.js
@@ -1,75 +1,90 @@ -// Copyright (C) 2019 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. -(function() { - 'use strict'; - const Defs = {}; - /** - * @typedef {{ - * summary: Object, - * results: Array, - * }} - */ - Defs.verifyStatus; +/** + * @license + * Copyright (C) 2021 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 {htmlTemplate} from './gr-verify-status-panel_html.js'; - Polymer({ - is: 'gr-verify-status-panel', +const Defs = {}; +/** + * @typedef {{ + * summary: Object, + * results: Array, + * }} + */ +Defs.verifyStatus; - properties: { - verifyStatus: { - /** @type {Defs.verifystatus} */ - type: Object, - }, - revision: { - type: Object, - }, - change: { - type: Object, - } - }, +class GrVerifyStatusPanel extends Polymer.Element { + static get is() { + return 'gr-verify-status-panel'; + } - attached() { - this._fetchData(this.revision); - }, + static get template() { + return htmlTemplate; + } - _fetchData(revision) { - if (!revision) return; - const query ='/verify-status~verifications?sort=REPORTER&filter=CURRENT'; - const endpoint = '/changes/' + this.change.id + '/revisions/' + - revision._number + query; + static get properties() { + return { + verifyStatus: { + /** @type {Defs.verifystatus} */ + type: Object, + }, + revision: { + type: Object, + }, + change: { + type: Object, + } + }; + } - const errFn = response => { - this.fire('page-error', {response}); - }; + connectedCallback() { + super.connectedCallback(); - this.plugin.restApi().get(endpoint, errFn).then(r => { - let summary = {failed:0, passed:0, notdone:0}; - let results = []; - for (let checkid in r) { - let check= r[checkid]; - if (check.value == '0') { - summary.notdone +=1;} - else if (check.value == 1) { - summary.passed +=1; - } - else { - summary.failed +=1; - } - results.push(check); - }; + this._fetchData(this.revision); + } - this.verifyStatus = {summary, results}; - }); - }, - }); -}()); + _fetchData(revision) { + if (!revision) return; + + const query ='/verify-status~verifications?sort=REPORTER&filter=CURRENT'; + const endpoint = '/changes/' + this.change.id + '/revisions/' + + revision._number + query; + + const errFn = response => { + this.fire('page-error', {response}); + }; + + this.plugin.restApi().get(endpoint, errFn).then(r => { + let summary = {failed:0, passed:0, notdone:0}; + let results = []; + for (let checkid in r) { + let check= r[checkid]; + if (check.value == '0') { + summary.notdone +=1;} + else if (check.value == 1) { + summary.passed +=1; + } + else { + summary.failed +=1; + } + results.push(check); + }; + + this.verifyStatus = {summary, results}; + }); + } +} + +customElements.define(GrVerifyStatusPanel.is, GrVerifyStatusPanel);
diff --git a/gr-verify-status/gr-verify-status-panel_html.js b/gr-verify-status/gr-verify-status-panel_html.js new file mode 100644 index 0000000..247c564 --- /dev/null +++ b/gr-verify-status/gr-verify-status-panel_html.js
@@ -0,0 +1,45 @@ +/** + * @license + * Copyright (C) 2021 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. + */ + +export const htmlTemplate = Polymer.html` +<style include="gr-form-styles"></style> +<style> + .u-green { + color: #388E3C; + } + .u-red { + color: #D32F2F; + } +</style> +<div id="gr-verify-status"> + <span class="u-green">Passed: [[verifyStatus.summary.passed]]</span>, + <span class="u-red">Failed: [[verifyStatus.summary.failed]]</span>, + <span class="u-black">Not done: [[verifyStatus.summary.notdone]]</span> +</div> +<div class="separatedSection style-scope gr-change-metadata" + style="margin-top: 0; padding: 0"> + <table class="test_result_table"> + <tbody> + <template is="dom-repeat" items="{{verifyStatus.results}}"> + <tr> + <td class="cell verifiedstatus"><a href$="[[item.url]]">[[item.name]]</a></td> + <td class="cell verifiedstatus verifiedstatus_value">[[item.value]]</td> + </tr> + </template> + </tbody> + </table> +</div>`;
diff --git a/gr-verify-status/plugin.js b/gr-verify-status/plugin.js new file mode 100644 index 0000000..5ea53a1 --- /dev/null +++ b/gr-verify-status/plugin.js
@@ -0,0 +1,23 @@ +/** + * @license + * Copyright (C) 2021 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 './gr-verify-status-panel.js'; + +Gerrit.install(plugin => { + plugin.registerCustomComponent( + 'change-metadata-item', 'gr-verify-status-panel'); +});
diff --git a/plugin.html b/plugin.html deleted file mode 100644 index e1b3d61..0000000 --- a/plugin.html +++ /dev/null
@@ -1,28 +0,0 @@ -<!-- -Copyright (C) 2019 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="./gr-verify-status/gr-verify-status-panel.html"> - -<dom-module id="verify-status"> - <script> - if (window.Polymer) { - Gerrit.install(function(plugin) { - plugin.registerCustomComponent( - 'change-metadata-item', 'gr-verify-status-panel'); - }); - } - </script> -</dom-module>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/verifystatus/HttpModule.java b/src/main/java/com/googlesource/gerrit/plugins/verifystatus/HttpModule.java index d1f2fa5..9e4a33b 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/verifystatus/HttpModule.java +++ b/src/main/java/com/googlesource/gerrit/plugins/verifystatus/HttpModule.java
@@ -23,6 +23,6 @@ @Override protected void configureServlets() { DynamicSet.bind(binder(), WebUiPlugin.class) - .toInstance(new JavaScriptPlugin("gr-verify-status.html")); + .toInstance(new JavaScriptPlugin("gr-verify-status.js")); } }