4233: why pass around global variables?
authorPhil Hodgson <bitbucket@philhodgson.net>
Sat, 15 Nov 2014 13:26:52 +0000 (14:26 +0100)
committerPhil Hodgson <bitbucket@philhodgson.net>
Sat, 15 Nov 2014 13:27:23 +0000 (14:27 +0100)
apps/workbench/app/assets/javascripts/event_log.js
apps/workbench/app/views/jobs/_show_log.html.erb

index 10fe5be8f10a024b9bb0133bb18cf9ecd903e663..77ed7bf3c936205c314435df582fdf8373c61747 100644 (file)
@@ -58,7 +58,8 @@ $(document).on('ajax:complete ready', function() {
 });
 
 
-function processLogLineForChart( logLine, jobGraphSeries, jobGraphData ) {
+function processLogLineForChart( logLine ) {
+    // TODO: make this more robust: anything could go wrong in here
     var match = logLine.match(/(.*)crunchstat:(.*)-- interval(.*)/);
     if( match ) {
         var series = match[2].trim().split(' ')[0];
@@ -71,6 +72,7 @@ function processLogLineForChart( logLine, jobGraphSeries, jobGraphData ) {
         for(var i=2; i < intervalData.length; i += 2 ) {
             dsum += parseFloat(intervalData[i]);
         }
+        // TODO: why 4? what if the data is smaller than 0.0001?
         var datum = (dsum/dt).toFixed(4);
         var preamble = match[1].trim().split(' ');
         var timestamp = preamble[0].replace('_','T');
@@ -89,11 +91,11 @@ function processLogLineForChart( logLine, jobGraphSeries, jobGraphData ) {
 $(document).on('arv-log-event', '#log_graph_div', function(event, eventData) {
     if( eventData.properties.text ) {
         var series_length = jobGraphSeries.length;
-        processLogLineForChart( eventData.properties.text, jobGraphSeries, jobGraphData);
+        processLogLineForChart( eventData.properties.text );
         if( series_length < jobGraphSeries.length) {
             // series have changed, draw entirely new graph
             $('#log_graph_div').html('');
-            jobGraph = Morris.Line({
+            window.jobGraph = Morris.Line({
                 element: 'log_graph_div',
                 data: jobGraphData,
                 xkey: 't',
index 75edf59bd3bd698c391a36b748b9f47d6cc64572..efe6df443160b9215a35da43a9b7ebe1d6927a54 100644 (file)
      ></div>
 
 <%= javascript_tag do %>
-  var jobGraphData = [];
-  var jobGraphSeries = [];
+  window.jobGraphData = [];
+  window.jobGraphSeries = [];
   <% stderr_log_records([@object.uuid],[['properties','~','crunchstat:.*-- interval']])
         .each.with_index do |log_record, index| %>
     var logLine = '<%=j log_record.properties[:text] %>';
-    processLogLineForChart( logLine, jobGraphSeries, jobGraphData );
+    processLogLineForChart( logLine );
   <% end %>
-  var jobGraph = Morris.Line({
+  window.jobGraph = Morris.Line({
     element: 'log_graph_div',
     data: jobGraphData,
     xkey: 't',