Show
Ignore:
Timestamp:
06/18/09 20:09:50 (5 years ago)
Author:
Umar Farooq <umar@omniti.com>
git-committer:
Umar Farooq <umar@omniti.com> 1245355790 +0000
git-parent:

[8c5d79c983896af6a81c6b761a4e12258a6765e7]

git-author:
Umar Farooq <umar@omniti.com> 1245355790 +0000
Message:

cleaning up streaming code

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • ui/web/htdocs/graph_panel.inc

    r8c5d79c r291cb6c  
    44var current_graph_id = ''; 
    55var debug_graph_edit = false; 
    6 var graphinfo= {}; 
     6var graphinfo= {streaming: false}; //this streaming boolean keeps track of the graphpanel stream button 
    77var displayinfo = { start : 14*86400, cnt: '', end: '' }; 
    88var color_pool = Array('#33aa33','#4a00dc','#caac00','#3377cc','#00acfa','#cc3333') 
    99var color_sel = 0; 
    1010var locked = true; 
    11 var gstreaming = false; 
    1211 
    1312function graph_locked(warning) {                 
     
    5756} 
    5857 
    59 function graph_stream_data() { 
    60  
    61 polltime = 2000; 
    62 time_width = 300000; 
    63 stream_object = maingraph; 
    64 stream_dirty = false; 
    65 maingraph.ReconGraphPrepareStream(time_width, polltime); 
    66  
    67  
    68 sids = "";  
    69 var sidneed = new Object(); 
    70 for(var i=0; i<graphinfo.datapoints.length; i++) { 
    71     if(graphinfo.datapoints[i].sid) { 
    72       sidneed[graphinfo.datapoints[i].sid] = polltime; 
    73     } 
    74 
    75 for(var sid in sidneed) { 
    76     sids+= "/"+sid+"@"+sidneed[sid]; 
    77 
    78  
    79 maingraph.everyTime(2000, function() { 
    80                            
    81     if(!gstreaming) {    
    82        $('#gstreambox').html(''); 
    83        maingraph.stopTime(); 
    84     } 
    85     else { 
    86     if(stream_dirty){ 
    87         maingraph.ReconGraphPlotPoints();      
    88         stream_dirty=false; 
    89    } 
    90 
    91 }); 
    92  
    93 //console.log("sids requestd from noit server = ", sids); 
    94  
    95 $('#gstreambox').html('<iframe src="http://' + recon_realtime_hostname + '/data'+sids+'"></iframe>'); 
    96      
    97 
     58function stop_streaming_graph (){ 
     59         graphinfo.streaming = false; 
     60         streaming = false; 
     61         $('#streambox').html(''); 
     62         $(".streamData").html('Stream Data').fadeIn('slow'); 
     63         $(".stream-log").attr("style", "display:none;"); 
     64
     65 
    9866function set_current_graph_id(id) { 
    9967  $(".rememberGraph").fadeOut('fast'); 
     
    10169    graphinfo.saved = true; 
    10270    locked = true; 
    103     gstreaming = false; 
    10471    lock_forms(); 
    10572    $(".editGraph").html('Edit Graph').fadeIn('slow');     
    106     $('#gstreambox').html(''); 
    107     $(".streamData").html('Stream Data').fadeIn('slow'); 
    108     $(".stream-log").attr("style", "display:none;"); 
    10973  } 
    11074  else {         
     
    11276    unlock_forms();     
    11377    $(".editGraph").html('Editing!').fadeIn('slow'); 
    114     $('#gstreambox').html(''); 
     78    $('#streambox').html(''); 
    11579    $(".streamData").html('Stream Data').fadeIn('slow'); 
    11680    $(".stream-log").attr("style", "display:none;"); 
     
    12387function update_current_graph(redraw, f) { 
    12488  if(recurse > 0) return; 
    125   gstreaming = false; 
    126   $('#gstreambox').html(''); 
    127   $(".streamData").html('Stream Data').fadeIn('slow'); 
    128   $(".stream-log").attr("style", "display:none;"); 
     89  stop_streaming_graph(); 
    12990 
    13091  var str = JSON.stringify(graphinfo); 
     
    400361        var state = false; 
    401362 
    402         $(".editGraph").click(function() {               
     363        //only allow graph editing if not streaming 
     364        $(".editGraph").click(function() {       
     365            if(!graphinfo.streaming){ 
    403366                if(locked){ 
    404367                    locked = false;                  
     
    410373                    lock_forms(); 
    411374                    $(".editGraph").html('Edit Graph').fadeIn('slow'); 
    412                     if(gstreaming) {  
    413                       gstreaming = false; 
    414                       $('#gstreambox').html(''); 
    415                       $(".streamData").html('Stream Data').fadeIn('slow'); 
    416                       $(".stream-log").attr("style", "display:none;"); 
    417                       update_current_graph(true);  
    418                       } 
    419375                } 
     376            } 
    420377        }); 
    421378 
     
    430387       });                                               
    431388         
     389        //only allow stream toggling if the graph is locked and saved 
    432390        $(".streamData").click(function() { 
    433                if(!graph_locked("Unlock by clicking 'Edit Graph'.") && graphinfo.id) {             
    434                     if(!gstreaming) { 
    435                         gstreaming = true; 
     391               if(locked && graphinfo.saved) { 
     392                    if(!graphinfo.streaming) { 
     393                       graphinfo.streaming = true; 
    436394                        $(this).html('Streaming!').fadeIn('slow'); 
    437395                        $(".stream-log").removeAttr("style").html("stream log_"); 
    438                        graph_stream_data(); 
     396                       stream_data(graphinfo.id, maingraph, $('#streambox')); 
    439397                    } 
    440                     else if(gstreaming) { 
    441                         gstreaming = false; 
    442                         $('#gstreambox').html(''); 
    443                         $(this).html('Stream Data').fadeIn('slow'); 
    444                         $(".stream-log").attr("style", "display:none;"); 
     398                    else if(graphinfo.streaming) { 
     399                        stop_streaming_graph(); 
    445400                        update_current_graph(true); 
    446401                    } 
    447                
     402             
    448403        }); 
    449404        $("#graph_datetool .btn-slide").click(function(){ 
     
    504459 
    505460        $("span.blankGraph").click(function() { 
     461 
     462          stop_streaming_graph(); 
     463 
    506464          // current graph is saved, so just give a new one. 
    507465          if(graphinfo.saved) set_current_graph_id(''); 
     
    553511        </div> 
    554512</div> 
    555 <div id="gstreambox" style="display:none"></div> 
    556513 
    557514<div> 
  • ui/web/htdocs/js/recon.js

    r8c5d79c r291cb6c  
    66var stream_dirty; 
    77var recon_realtime_hostname = ''; 
     8var streaming = false; 
    89 
    910//set the global streaming object to the local ReconGraph object to use, 
     
    1718    $(".stream-log").html(message).fadeIn('slow'); 
    1819} 
    19  
    2020 
    2121//this will copy data only, ignoring other series variables 
     
    510510              ReconGraphPlotPoints: ReconGraph.PlotPoints 
    511511              }); 
    512 })(jQuery); 
     512  })(jQuery); 
    513513 
    514514function perform_graph_search_add(params) { 
     
    723723} 
    724724 
     725//call this function when you wish to stream a graph 
     726//graphid: the id, used to retrieve the graph's metric to request 
     727//stream_graph: the dom element to update with the stream 
     728//streambox: the hidden element to insert the iframe remote calls 
     729function stream_data(graph_id, stream_graph, streambox) { 
     730    if(streaming) { 
     731        modal_warning("Stream Error!", "You can only stream one thing at a time!"); 
     732        return; 
     733    } 
     734    //this should be the only place we set streaming to true 
     735    streaming = true; 
     736 
     737    polltime = 2000; 
     738    timewindow = 300000; 
     739    stream_object = stream_graph; 
     740    stream_dirty = false; 
     741    stream_graph.ReconGraphPrepareStream(timewindow, polltime); 
     742 
     743//setup functionality so that every 2 seconds check if we are streaming and dirty, plot if true 
     744    stream_graph.everyTime(2000, function() { 
     745      if(!streaming) { 
     746       streambox.html(''); 
     747       $(".stream-log").attr("style", "display:none;"); 
     748       stream_graph.stopTime(); 
     749      } 
     750      else { 
     751        if(stream_dirty){ 
     752          stream_graph.ReconGraphPlotPoints(); 
     753          stream_dirty=false; 
     754        } 
     755      } 
     756        }); 
     757 
     758    $.getJSON("json/graph/info/" + graph_id, 
     759      function(g) { 
     760 
     761        sids = ""; 
     762        var sidneed = new Object(); 
     763 
     764        for(var i=0; i<g.datapoints.length; i++) { 
     765          if(g.datapoints[i].sid) { 
     766            sidneed[g.datapoints[i].sid] = polltime; 
     767          } 
     768        } 
     769        for(var sid in sidneed) { 
     770          sids+= "/"+sid+"@"+sidneed[sid]; 
     771        } 
     772        //console.log("sids request: http://" +recon_realtime_hostname+"/data"+sids); 
     773        streambox.html('<iframe src="http://' + recon_realtime_hostname + '/data'+sids+'"></iframe>'); 
     774     }); 
     775  } 
     776 
     777 
    725778/////////////////////////// 
    726779// Worksheet manipulation 
     
    731784  var wsinfo = {}; 
    732785  var locked = true; 
    733   var streaming = false; 
     786  streaming = false;  //precautionary...should be set to false wherever we use it when weere done 
    734787  var stream_graph; 
    735788 
     
    744797    } 
    745798    return locked; 
    746   } 
    747  
    748   function stream_data(graph_id) { 
    749  
    750     polltime = 2000; 
    751     timewindow = 300000; 
    752     stream_object = stream_graph; 
    753     stream_dirty = false; 
    754     stream_graph.ReconGraphPrepareStream(timewindow, polltime); 
    755  
    756     streaming = true; 
    757  
    758 //setup functionality so that every 2 seconds check if we are streaming and dirty, plot if true 
    759     stream_graph.everyTime(2000, function() { 
    760       if(!streaming) { 
    761        $('#streambox').html(''); 
    762        $(".stream-log").attr("style", "display:none;"); 
    763        stream_graph.stopTime(); 
    764       } 
    765       else { 
    766         if(stream_dirty){ 
    767           stream_graph.ReconGraphPlotPoints(); 
    768           stream_dirty=false; 
    769         } 
    770       } 
    771         }); 
    772  
    773     $.getJSON("json/graph/info/" + graph_id, 
    774       function(g) { 
    775  
    776         sids = ""; 
    777         var sidneed = new Object(); 
    778  
    779         for(var i=0; i<g.datapoints.length; i++) { 
    780           if(g.datapoints[i].sid) { 
    781             sidneed[g.datapoints[i].sid] = polltime; 
    782           } 
    783         } 
    784         for(var sid in sidneed) { 
    785           sids+= "/"+sid+"@"+sidneed[sid]; 
    786         } 
    787         //console.log("sids request: http://" +recon_realtime_hostname+"/data"+sids); 
    788         $('#streambox').html('<iframe src="http://' + recon_realtime_hostname + '/data'+sids+'"></iframe>'); 
    789      }); 
    790799  } 
    791800 
     
    860869      <br style="clear:left" />\ 
    861870      </div>    \ 
    862         <div id="streambox" style="display:none"></div> \ 
    863871          <div style="display:none">\ 
    864872         <div id="maingraph-template">\ 
     
    876884 
    877885  function render_graph_inpage(divid, id, start, end) { 
     886      var ginpage_streaming = false; 
    878887 
    879888$.getJSON("json/graph/info/" + id, function (ginfo) { 
    880               var streaming = false; 
     889              streaming = false;  //precautionary 
    881890              stream_graph = $('#'+divid); 
    882891              stream_graph.ReconGraph({graphid: ginfo.id, type: ginfo.type}); 
     
    904913 
    905914    $(".streamData").click(function() { 
    906       if(!streaming)
    907         streaming = true; 
     915     if(!ginpage_streaming)
     916        ginpage_streaming = true; 
    908917        $(this).html('Streaming!').fadeIn('slow'); 
    909918        $(".stream-log").removeAttr("style").html("stream log_"); 
    910         stream_data(ginfo.id); 
     919        stream_data(ginfo.id, stream_graph, $('#streambox')); 
    911920      } 
    912       else if(streaming) { 
     921      else if(ginpage_streaming){ 
     922        ginpage_streaming = false; 
    913923        streaming = false; 
    914924        $('#streambox').html(''); 
     
    931941  function zoom_modal (id, gtype) { 
    932942 
     943  var zmodal_streaming = false; 
    933944  if(id) $.getJSON("json/graph/info/" + id, function (ginfo) { 
    934945 
     
    980991 
    981992    $(".zoomStream").click(function() { 
    982       if(!streaming)
    983         streaming = true; 
     993    if(!zmodal_streaming)
     994       zmodal_streaming = true; 
    984995        $(".zoomStream").html('Streaming!').fadeIn('slow'); 
    985996        $(".stream-log").removeAttr("style").html("stream log_"); 
    986         stream_data(ginfo.id); 
     997        stream_data(ginfo.id, stream_graph, $('#streambox')); 
    987998      } 
    988       else if(streaming) { 
     999    else if(zmodal_streaming){ 
     1000        zmodal_streaming = false; 
    9891001        streaming = false; 
    9901002        $('#streambox').html('');