Changeset e6f58b6478b569791ece58432e21361e6f2e85c2

Show
Ignore:
Timestamp:
06/19/09 22:57:40 (9 years ago)
Author:
Umar Farooq <umar@omniti.com>
git-committer:
Umar Farooq <umar@omniti.com> 1245452260 +0000
git-parent:

[1ff8feba541fcb92dc93174b0a3493fa113dab2b]

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

add some code for new streaming controls refs #146, allow for graph aggregation refs #130, and fixes nasty stacking error when removing a datapoint that was once stacked

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • ui/web/htdocs/css/style.css

    r1efd693 re6f58b6  
    902902} 
    903903span.streamData { 
     904border:1px solid #DDDDDD; 
     905float:right; 
     906margin-left:4px; 
     907padding:0 4px; 
     908font-weight: bold; 
     909color:#660000; 
     910} 
     911span.stream_controls { 
    904912border:1px solid #DDDDDD; 
    905913float:right; 
  • ui/web/htdocs/graph_panel.inc

    r1c94710 re6f58b6  
    6363         $(".stream-log").attr("style", "display:none;"); 
    6464} 
     65//overlay mode: stackadd=false: we just add new stacks for any the incoming graph has 
     66//stack mode: stackadd=trule, push new stacks onto matching stack indexes, else append 
     67function aggregate_graph(id, stackadd) { 
     68  if(!graph_locked("Click 'Edit Graph' to unlock.")){ 
     69         if(id) $.getJSON("json/graph/info/" + id, function(g) { 
     70 
     71                var max_old = (graphinfo.datapoints.length) ?  graphinfo.datapoints.length : 0; 
     72 
     73                for(var i=0; i<g.datapoints.length; i++) { 
     74                        graphinfo.datapoints.push(g.datapoints[i]); 
     75                }         
     76 
     77                //we must use indexes for datapoints that are updated 
     78                for(var i=0; i<g.stacks.length; i++) { 
     79                  for(var j=0; j<g.stacks[i].length; j++) { 
     80                    g.stacks[i][j] += max_old; 
     81                  } 
     82                } 
     83 
     84                if(stackadd) { 
     85                  for(var i=0; i<g.stacks.length; i++){ 
     86                          if(graphinfo.stacks[i]) graphinfo.stacks[i] = graphinfo.stacks[i].concat(g.stacks[i]); 
     87                          else graphinfo.stacks.push(g.stacks[i]); 
     88                  }                        
     89                }        
     90                else { 
     91                   for(var i=0; i<g.stacks.length; i++){ 
     92                           graphinfo.stacks.push(g.stacks[i]); 
     93                   } 
     94                }        
     95                update_current_graph(true); 
     96                refresh_graph_from_json(graphinfo); 
     97              }); 
     98  } 
     99} 
    65100 
    66101function set_current_graph_id(id) { 
     
    88123  if(recurse > 0) return; 
    89124  stop_streaming_graph(); 
    90  
     125  if(graphinfo.id) update_graph_permalink(current_graph_id, "", "", ""); 
    91126  var str = JSON.stringify(graphinfo); 
    92127  if(debug_graph_edit) $("#payload").html(str); 
     
    226261           var si = find_in_stacks(i); 
    227262           if(si != -1) graphinfo.stacks[si.i].splice(si.j, 1); 
     263 
     264           //we must decrement the datapoint indexes in the stack array as well 
     265           for(var k=0; k<graphinfo.stacks.length; k++) { 
     266             for(var j=0; j<graphinfo.stacks[k].length; j++) { 
     267               if(graphinfo.stacks[k][j]>i) graphinfo.stacks[k][j]-=1; 
     268             } 
     269           }        
     270 
    228271           break; 
    229272         } 
    230        } 
    231        update_current_graph(true); 
    232        refresh_graph_from_json(graphinfo); 
     273       }           
     274          update_current_graph(true); 
     275         refresh_graph_from_json(graphinfo); 
    233276       } 
    234277    return false; 
  • ui/web/htdocs/index.php

    r1fa32a0 re6f58b6  
    3535<script src="js/jquery.ajaxq-0.0.1.js" type="text/javascript"></script> 
    3636<script src="js/recon.js" type="text/javascript"></script> 
     37<script src="js//jquery.ui-1.5.2/ui/jquery.ui.all.js"></script> 
    3738<script type="text/javascript"> 
    3839<!-- 
  • ui/web/htdocs/js/jquery.flot.js

    r8c5d79c re6f58b6  
    948948        function draw() { 
    949949            drawGrid(); 
    950              
    951             var b_series = null; 
    952  
    953             for (var i = 0; i < series.length; i++) { 
    954                     var daindex = findLowerInStacks(i); 
    955                     if(daindex>-1)  b_series = series[daindex];                  
    956  
     950            for (var i = 0; i < series.length; i++) { 
     951                var b_series = null; 
     952                var daindex = findLowerInStacks(i); 
     953                if(daindex>-1)  b_series = series[daindex];                      
    957954                drawSeries(series[i], b_series); 
    958955            } 
  • ui/web/htdocs/js/recon.js

    r1c94710 re6f58b6  
    356356          this.graphinfo = $.extend({}, o.graphinfo, options||{}); 
    357357          var url = "flot/graph/settings/" + this.graphinfo.graphid; 
     358           
    358359          this.find(".plot-area") 
    359360              .html('<div class="centered"><div class="loading">&nbsp;</div></div>'); 
     
    641642    })(g.graphid, li) 
    642643            ); 
     644  var add = $('<a href="#"/>'); 
     645  add.html('stack'); 
     646  add.click( 
     647    (function(graphid) { 
     648        return function() { 
     649            aggregate_graph(graphid, true); 
     650          return false; 
     651        } 
     652     })(g.graphid) 
     653  ); 
     654 
     655  var addover = $('<a href="#"/>'); 
     656  addover.html('overlay'); 
     657  addover.click( 
     658    (function(graphid) { 
     659        return function() { 
     660            aggregate_graph(graphid, false); 
     661          return false; 
     662        } 
     663     })(g.graphid) 
     664  ); 
     665 
    643666  var ul = $('<ul/>'); 
    644667  ul.append($('<li/>').html(g.last_update)); 
    645668  ul.append($('<li/>').append(edit)); 
    646669  ul.append($('<li/>').append(del)); 
    647   li.append($('<div class="graphlist-title"/>').html(g.title)).append(ul); 
     670  ul.append($('<li/>').append(add)); 
     671  ul.append($('<li/>').append(addover)); 
     672  gtitle = $('<div class="graphlist-title"/>').html(g.title); 
     673   
     674  li.append(gtitle).append(ul); 
    648675} 
    649676function ws_for_edit(li, ws, params) { 
     
    721748  } 
    722749  return 86400*2; 
     750} 
     751 
     752function get_stream_controls() { 
     753    play_pause = $("<div class='play_pause'>PLAY</div>"); 
     754    stop = $("<div class='stopstream'>STOP</div>"); 
     755    stream_controls = $("<span class='stream_controls'></div>").append(play_pause).append(stop); 
     756    return stream_controls; 
    723757} 
    724758 
     
    907941 
    908942    var mheader = $("<div id='stream-header'>").append(dtool); 
    909     mheader.append("<span class='streamData'>Stream Data</span><br/>"); 
     943    stream_controls = get_stream_controls(); 
     944    mheader.append(stream_controls); 
     945    mheader.append("<br/>"); 
     946 
    910947    stream_graph.prepend(mheader); 
    911     stream_graph.append('<div id="streambox" style="display:none"></div>'); 
     948    stream_graph.append("<div id='streambox' style='display:none'></div>"); 
    912949    stream_graph.append("<div class='stream-log' style='display:none'></div>"); 
    913950 
    914     $(".streamData").click(function() { 
     951    $(".stopstream").click(function() { 
     952        if(ginpage_streaming){ 
     953        ginpage_streaming = false; 
     954        streaming = false; 
     955        $(".play_pause").html('PLAY'); 
     956        $('#streambox').html(''); 
     957        $(".stream-log").attr("style", "display:none;"); 
     958        stream_graph.ReconGraphRefresh({graphid: ginfo.id, stacks: ginfo.stacks}); 
     959        } 
     960     }); 
     961 
     962    $(".play_pause").click(function() { 
    915963     if(!ginpage_streaming){ 
    916964        ginpage_streaming = true; 
    917         $(this).html('Streaming!').fadeIn('slow'); 
     965        $(this).html('PAUSE'); 
    918966        $(".stream-log").removeAttr("style").html("stream log_"); 
    919967        stream_data(ginfo.id, stream_graph, $('#streambox')); 
    920       } 
    921       else if(ginpage_streaming){ 
    922         ginpage_streaming = false; 
    923         streaming = false; 
    924         $('#streambox').html(''); 
    925         $(this).html('Stream Data').fadeIn('slow'); 
    926         $(".stream-log").attr("style", "display:none;"); 
    927         stream_graph.ReconGraphRefresh({graphid: ginfo.id, stacks: ginfo.stacks}); 
    928       } 
    929     }); //end stream click function 
     968     } 
     969     else if(ginpage_streaming) { 
     970         if($(this).html() == 'PLAY') { 
     971             $(this).html('PAUSE');           
     972             //this is where we start streaming again after a pause 
     973              stream_graph.everyTime(2000, function() { 
     974                      if(!streaming) { 
     975                          streambox.html(''); 
     976                          $(".stream-log").attr("style", "display:none;"); 
     977                          stream_graph.stopTime(); 
     978                      } 
     979                      else { 
     980                          if(stream_dirty){ 
     981                              stream_graph.ReconGraphPlotPoints(); 
     982                              stream_dirty=false; 
     983                          } 
     984                      } 
     985                  }); 
     986         } 
     987         else if($(this).html() == 'PAUSE') { 
     988             $(this).html('PLAY'); 
     989             //this is where we pause for a bit 
     990             stream_graph.stopTime(); 
     991         } 
     992     } 
     993   });  
    930994 
    931995$("#mini_ws_datetool .datechoice").click(function(){