diff options
Diffstat (limited to 'polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-change-reply-js-api.js')
-rw-r--r-- | polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-change-reply-js-api.js | 61 |
1 files changed, 48 insertions, 13 deletions
diff --git a/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-change-reply-js-api.js b/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-change-reply-js-api.js index 65aa36487e..e86ba4db46 100644 --- a/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-change-reply-js-api.js +++ b/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-change-reply-js-api.js @@ -1,20 +1,36 @@ -// Copyright (C) 2016 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. +/** + * @license + * Copyright (C) 2016 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(window) { 'use strict'; /** + * Ensure GrChangeReplyInterface instance has access to gr-reply-dialog + * element and retrieve if the interface was created before element. + * @param {!GrChangeReplyInterfaceOld} api + */ + function ensureEl(api) { + if (!api._el) { + const sharedApiElement = document.createElement('gr-js-api-interface'); + api._el = sharedApiElement.getElement( + sharedApiElement.Element.REPLY_DIALOG); + } + } + + /** * @deprecated */ function GrChangeReplyInterfaceOld(el) { @@ -22,14 +38,17 @@ } GrChangeReplyInterfaceOld.prototype.getLabelValue = function(label) { + ensureEl(this); return this._el.getLabelValue(label); }; GrChangeReplyInterfaceOld.prototype.setLabelValue = function(label, value) { + ensureEl(this); this._el.setLabelValue(label, value); }; GrChangeReplyInterfaceOld.prototype.send = function(opt_includeComments) { + ensureEl(this); return this._el.send(opt_includeComments); }; @@ -57,5 +76,21 @@ }); }; + GrChangeReplyInterface.prototype.addLabelValuesChangedCallback = + function(handler) { + this.plugin.hook('reply-label-scores').onAttached(el => { + if (!el.content) { return; } + + el.content.addEventListener('labels-changed', e => { + console.log('labels-changed', e.detail); + handler(e.detail); + }); + }); + }; + + GrChangeReplyInterface.prototype.showMessage = function(message) { + return this._el.setPluginMessage(message); + }; + window.GrChangeReplyInterface = GrChangeReplyInterface; })(window); |