From 243a6df519ee539ad9e5476cd6fcb51e4b0a48fe Mon Sep 17 00:00:00 2001 From: radhika Date: Wed, 14 May 2014 16:14:59 -0400 Subject: [PATCH] 2756: Use event_log.js javascript asset to subscribe to websockets --- .../app/assets/javascripts/event_log.js | 43 +++++++++++++++++++ .../_show_event_log.html.erb | 21 +-------- 2 files changed, 44 insertions(+), 20 deletions(-) create mode 100644 apps/workbench/app/assets/javascripts/event_log.js diff --git a/apps/workbench/app/assets/javascripts/event_log.js b/apps/workbench/app/assets/javascripts/event_log.js new file mode 100644 index 0000000000..f356b6a8b0 --- /dev/null +++ b/apps/workbench/app/assets/javascripts/event_log.js @@ -0,0 +1,43 @@ +/* + * This file 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 added to that window element. + */ + +var event_log_disp; + +function subscribeToEventLog (url, uuid, elementId) { + // create the event log dispatcher + event_log_disp = new WebSocket(url); + + event_log_disp.onopen = function(event) { onEventLogDispatcherOpen(event) }; + event_log_disp.onmessage = function(event) { onEventLogDispatcherMessage(event) }; + + // Add the elementId to listener map + event_log_listener_map = JSON.parse(sessionStorage.getItem("event_log_listener_map")); + if (event_log_listener_map == null) + event_log_listener_map = {}; + delete event_log_listener_map[elementId]; + event_log_listener_map[elementId] = uuid; + + sessionStorage.removeItem("event_log_listener_map"); + sessionStorage.setItem("event_log_listener_map", JSON.stringify(event_log_listener_map)); +} + +function onEventLogDispatcherOpen(event) { + event_log_disp.send('{"method":"subscribe"}'); +} + +function onEventLogDispatcherMessage(event) { + event_log_listener_map = JSON.parse(sessionStorage.getItem("event_log_listener_map")); + + for (var key in event_log_listener_map) { + value = event_log_listener_map[key]; + + eventData = JSON.parse(event.data); + if (value === eventData.object_uuid) { + $('#'+key).append(eventData.summary + " "); + } + } +} diff --git a/apps/workbench/app/views/pipeline_instances/_show_event_log.html.erb b/apps/workbench/app/views/pipeline_instances/_show_event_log.html.erb index 74806a53d2..f4061f0fc6 100644 --- a/apps/workbench/app/views/pipeline_instances/_show_event_log.html.erb +++ b/apps/workbench/app/views/pipeline_instances/_show_event_log.html.erb @@ -1,24 +1,5 @@

Log for pipeline

- +
- - -- 2.39.5