summaryrefslogtreecommitdiffstats
path: root/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-change-reply-js-api.js
diff options
context:
space:
mode:
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.js61
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);