Arvados-DCO-1.1-Signed-off-by: Radhika Chippada <radhika@curoverse.com>
[arvados.git] / apps / workbench / app / assets / javascripts / event_log.js
index 8bfa1b067252086defb578adefa129c9a31998d0..e576ba97a35785ec72dd4c68c9b7dd69e6cff099 100644 (file)
@@ -1,54 +1,62 @@
+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
 /*
  * This js establishes a websockets connection with the API Server.
  */
 
 /* Subscribe to websockets event log.  Do nothing if already connected. */
 function subscribeToEventLog () {
-  // if websockets are not supported by browser, do not subscribe for events
-  websocketsSupported = ('WebSocket' in window);
-  if (websocketsSupported == false) {
-    return;
-  }
-
-  // check if websocket connection is already stored on the window
-  event_log_disp = $(window).data("arv-websocket");
-  if (event_log_disp == null) {
-    // need to create new websocket and event log dispatcher
-    websocket_url = $('meta[name=arv-websocket-url]').attr("content");
-    if (websocket_url == null)
-      return;
-
-    event_log_disp = new WebSocket(websocket_url);
-
-    event_log_disp.onopen = onEventLogDispatcherOpen;
-    event_log_disp.onmessage = onEventLogDispatcherMessage;
-
-    // store websocket in window to allow reuse when multiple divs subscribe for events
-    $(window).data("arv-websocket", event_log_disp);
-  }
+    // if websockets are not supported by browser, do not subscribe for events
+    websocketsSupported = ('WebSocket' in window);
+    if (websocketsSupported == false) {
+        return;
+    }
+
+    // check if websocket connection is already stored on the window
+    event_log_disp = $(window).data("arv-websocket");
+    if (event_log_disp == null) {
+        // need to create new websocket and event log dispatcher
+        websocket_url = $('meta[name=arv-websocket-url]').attr("content");
+        if (websocket_url == null)
+            return;
+
+        event_log_disp = new WebSocket(websocket_url);
+
+        event_log_disp.onopen = onEventLogDispatcherOpen;
+        event_log_disp.onmessage = onEventLogDispatcherMessage;
+
+        // store websocket in window to allow reuse when multiple divs subscribe for events
+        $(window).data("arv-websocket", event_log_disp);
+    }
 }
 
 /* Send subscribe message to the websockets server.  Without any filters
    arguments, this subscribes to all events */
 function onEventLogDispatcherOpen(event) {
-  this.send('{"method":"subscribe"}');
+    this.send('{"method":"subscribe"}');
 }
 
 /* Trigger event for all applicable elements waiting for this event */
 function onEventLogDispatcherMessage(event) {
-  parsedData = JSON.parse(event.data);
-  object_uuid = parsedData.object_uuid;
+    parsedData = JSON.parse(event.data);
+    object_uuid = parsedData.object_uuid;
+
+    if (!object_uuid) {
+        return;
+    }
 
-  // if there are any listeners for this object uuid or "all", trigger the event
-  matches = ".arv-log-event-listener[data-object-uuid=\"" + object_uuid + "\"],.arv-log-event-listener[data-object-uuids~=\"" + object_uuid + "\"],.arv-log-event-listener[data-object-uuid=\"all\"],.arv-log-event-listener[data-object-kind=\"" + parsedData.object_kind + "\"]";
-  $(matches).trigger('arv-log-event', event.data);
+    // if there are any listeners for this object uuid or "all", trigger the event
+    matches = ".arv-log-event-listener[data-object-uuid=\"" + object_uuid + "\"],.arv-log-event-listener[data-object-uuids~=\"" + object_uuid + "\"],.arv-log-event-listener[data-object-uuid=\"all\"],.arv-log-event-listener[data-object-kind=\"" + parsedData.object_kind + "\"]";
+    $(matches).trigger('arv-log-event', parsedData);
 }
 
 /* Automatically connect if there are any elements on the page that want to
-   received event log events. */
+   receive event log events. */
 $(document).on('ajax:complete ready', function() {
-  var a = $('.arv-log-event-listener');
-  if (a.length > 0) {
-    subscribeToEventLog();
-  }
+    var a = $('.arv-log-event-listener');
+    if (a.length > 0) {
+        subscribeToEventLog();
+    }
 });