Эх сурвалжийг харах

HUE-7832 [frontend] Add a publish KO binding to publish to huePubSub on click

Johan Ahlen 8 жил өмнө
parent
commit
96aa933

+ 18 - 0
desktop/core/src/desktop/static/desktop/js/ko.hue-bindings.js

@@ -142,6 +142,24 @@
     }
     }
   };
   };
 
 
+  ko.bindingHandlers.publish = {
+    init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {
+      ko.bindingHandlers.click.init(element, function () {
+        return function () {
+          var topicDetails = ko.unwrap(valueAccessor());
+          if (typeof topicDetails === 'string') {
+            huePubSub.publish(topicDetails)
+          } else if (typeof topicDetails === 'object') {
+            var keys = Object.keys(topicDetails);
+            if (keys.length === 1) {
+              huePubSub.publish(keys[0], topicDetails[keys[0]]);
+            }
+          }
+        }
+      }, allBindings, viewModel, bindingContext);
+    },
+  };
+
   ko.bindingHandlers.clickToCopy = {
   ko.bindingHandlers.clickToCopy = {
     init: function (element, valueAccessor) {
     init: function (element, valueAccessor) {
       $(element).click(function () {
       $(element).click(function () {