Changeset 291cb6c73899c30c7149bc6de596cf9db9693298
- Timestamp:
- 06/18/09 20:09:50 (4 years ago)
- git-parent:
- Files:
-
- ui/web/htdocs/graph_panel.inc (modified) (10 diffs)
- ui/web/htdocs/js/recon.js (modified) (11 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
ui/web/htdocs/graph_panel.inc
r8c5d79c r291cb6c 4 4 var current_graph_id = ''; 5 5 var debug_graph_edit = false; 6 var graphinfo= { };6 var graphinfo= {streaming: false}; //this streaming boolean keeps track of the graphpanel stream button 7 7 var displayinfo = { start : 14*86400, cnt: '', end: '' }; 8 8 var color_pool = Array('#33aa33','#4a00dc','#caac00','#3377cc','#00acfa','#cc3333') 9 9 var color_sel = 0; 10 10 var locked = true; 11 var gstreaming = false;12 11 13 12 function graph_locked(warning) { … … 57 56 } 58 57 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 } 58 function 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 98 66 function set_current_graph_id(id) { 99 67 $(".rememberGraph").fadeOut('fast'); … … 101 69 graphinfo.saved = true; 102 70 locked = true; 103 gstreaming = false;104 71 lock_forms(); 105 72 $(".editGraph").html('Edit Graph').fadeIn('slow'); 106 $('#gstreambox').html('');107 $(".streamData").html('Stream Data').fadeIn('slow');108 $(".stream-log").attr("style", "display:none;");109 73 } 110 74 else { … … 112 76 unlock_forms(); 113 77 $(".editGraph").html('Editing!').fadeIn('slow'); 114 $('# gstreambox').html('');78 $('#streambox').html(''); 115 79 $(".streamData").html('Stream Data').fadeIn('slow'); 116 80 $(".stream-log").attr("style", "display:none;"); … … 123 87 function update_current_graph(redraw, f) { 124 88 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(); 129 90 130 91 var str = JSON.stringify(graphinfo); … … 400 361 var state = false; 401 362 402 $(".editGraph").click(function() { 363 //only allow graph editing if not streaming 364 $(".editGraph").click(function() { 365 if(!graphinfo.streaming){ 403 366 if(locked){ 404 367 locked = false; … … 410 373 lock_forms(); 411 374 $(".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 }419 375 } 376 } 420 377 }); 421 378 … … 430 387 }); 431 388 389 //only allow stream toggling if the graph is locked and saved 432 390 $(".streamData").click(function() { 433 if(!graph_locked("Unlock by clicking 'Edit Graph'.") && graphinfo.id) { 434 if(!g streaming) {435 gstreaming = true;391 if(locked && graphinfo.saved) { 392 if(!graphinfo.streaming) { 393 graphinfo.streaming = true; 436 394 $(this).html('Streaming!').fadeIn('slow'); 437 395 $(".stream-log").removeAttr("style").html("stream log_"); 438 graph_stream_data();396 stream_data(graphinfo.id, maingraph, $('#streambox')); 439 397 } 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(); 445 400 update_current_graph(true); 446 401 } 447 }402 } 448 403 }); 449 404 $("#graph_datetool .btn-slide").click(function(){ … … 504 459 505 460 $("span.blankGraph").click(function() { 461 462 stop_streaming_graph(); 463 506 464 // current graph is saved, so just give a new one. 507 465 if(graphinfo.saved) set_current_graph_id(''); … … 553 511 </div> 554 512 </div> 555 <div id="gstreambox" style="display:none"></div>556 513 557 514 <div> ui/web/htdocs/js/recon.js
r8c5d79c r291cb6c 6 6 var stream_dirty; 7 7 var recon_realtime_hostname = ''; 8 var streaming = false; 8 9 9 10 //set the global streaming object to the local ReconGraph object to use, … … 17 18 $(".stream-log").html(message).fadeIn('slow'); 18 19 } 19 20 20 21 21 //this will copy data only, ignoring other series variables … … 510 510 ReconGraphPlotPoints: ReconGraph.PlotPoints 511 511 }); 512 })(jQuery);512 })(jQuery); 513 513 514 514 function perform_graph_search_add(params) { … … 723 723 } 724 724 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 729 function 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 725 778 /////////////////////////// 726 779 // Worksheet manipulation … … 731 784 var wsinfo = {}; 732 785 var locked = true; 733 var streaming = false;786 streaming = false; //precautionary...should be set to false wherever we use it when weere done 734 787 var stream_graph; 735 788 … … 744 797 } 745 798 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 true759 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 });790 799 } 791 800 … … 860 869 <br style="clear:left" />\ 861 870 </div> \ 862 <div id="streambox" style="display:none"></div> \863 871 <div style="display:none">\ 864 872 <div id="maingraph-template">\ … … 876 884 877 885 function render_graph_inpage(divid, id, start, end) { 886 var ginpage_streaming = false; 878 887 879 888 $.getJSON("json/graph/info/" + id, function (ginfo) { 880 var streaming = false; 889 streaming = false; //precautionary 881 890 stream_graph = $('#'+divid); 882 891 stream_graph.ReconGraph({graphid: ginfo.id, type: ginfo.type}); … … 904 913 905 914 $(".streamData").click(function() { 906 if(!streaming){907 streaming = true;915 if(!ginpage_streaming){ 916 ginpage_streaming = true; 908 917 $(this).html('Streaming!').fadeIn('slow'); 909 918 $(".stream-log").removeAttr("style").html("stream log_"); 910 stream_data(ginfo.id );919 stream_data(ginfo.id, stream_graph, $('#streambox')); 911 920 } 912 else if(streaming) { 921 else if(ginpage_streaming){ 922 ginpage_streaming = false; 913 923 streaming = false; 914 924 $('#streambox').html(''); … … 931 941 function zoom_modal (id, gtype) { 932 942 943 var zmodal_streaming = false; 933 944 if(id) $.getJSON("json/graph/info/" + id, function (ginfo) { 934 945 … … 980 991 981 992 $(".zoomStream").click(function() { 982 if(!streaming){983 streaming = true;993 if(!zmodal_streaming){ 994 zmodal_streaming = true; 984 995 $(".zoomStream").html('Streaming!').fadeIn('slow'); 985 996 $(".stream-log").removeAttr("style").html("stream log_"); 986 stream_data(ginfo.id );997 stream_data(ginfo.id, stream_graph, $('#streambox')); 987 998 } 988 else if(streaming) { 999 else if(zmodal_streaming){ 1000 zmodal_streaming = false; 989 1001 streaming = false; 990 1002 $('#streambox').html('');
