Merge branch 'master' into 2871-preload-objects
[arvados.git] / apps / workbench / app / assets / javascripts / event_log.js
index 6e0a47c3830e3c38f4105554ea14a4ed0bd3a991..8bfa1b067252086defb578adefa129c9a31998d0 100644 (file)
@@ -2,8 +2,7 @@
  * This js establishes a websockets connection with the API Server.
  */
 
-/* The subscribe method takes a window element id and object id.
-   Any log events for that particular object id are sent to that window element. */
+/* 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);
@@ -11,10 +10,10 @@ function subscribeToEventLog () {
     return;
   }
 
-  // grab websocket connection from window, if one exists
+  // check if websocket connection is already stored on the window
   event_log_disp = $(window).data("arv-websocket");
   if (event_log_disp == null) {
-    // create the event log dispatcher
+    // need to create new websocket and event log dispatcher
     websocket_url = $('meta[name=arv-websocket-url]').attr("content");
     if (websocket_url == null)
       return;
@@ -29,21 +28,24 @@ function subscribeToEventLog () {
   }
 }
 
-/* send subscribe message to the websockets server */
+/* Send subscribe message to the websockets server.  Without any filters
+   arguments, this subscribes to all events */
 function onEventLogDispatcherOpen(event) {
   this.send('{"method":"subscribe"}');
 }
 
-/* trigger event for all applicable elements waiting for this event */
+/* Trigger event for all applicable elements waiting for this event */
 function onEventLogDispatcherMessage(event) {
   parsedData = JSON.parse(event.data);
   object_uuid = parsedData.object_uuid;
 
   // 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-type=\"" + object_uuid.slice(6, 11) + "\"]";
+  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);
 }
 
+/* Automatically connect if there are any elements on the page that want to
+   received event log events. */
 $(document).on('ajax:complete ready', function() {
   var a = $('.arv-log-event-listener');
   if (a.length > 0) {