Changeset fcb3fa507d5b857295aaf9bbbc9a4b079e494224

Show
Ignore:
Timestamp:
03/20/09 02:13:11 (6 years ago)
Author:
Theo Schlossnagle <jesus@omniti.com>
git-committer:
Theo Schlossnagle <jesus@omniti.com> 1237515191 +0000
git-parent:

[597eebf2073ce9855ef97c5d1254358b695a6160]

git-author:
Theo Schlossnagle <jesus@omniti.com> 1237515191 +0000
Message:

first step of javascript consolidation

Files:

Legend:

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

    r462702b rfcb3fa5  
    1 <script type="text/javascript" src="js/eye/datepicker.js"></script> 
    2 <script type="text/javascript" src="js/eye/colorpicker.js"></script> 
    3 <script type="text/javascript" src="js/eye/eye.js"></script> 
    4 <script type="text/javascript" src="js/eye/utils.js"></script> 
    5 <script type="text/javascript" src="js/jquery.timers.js"></script> 
    6 <script type="text/javascript" src="js/jquery.ajaxq-0.0.1.js" ></script> 
    71<script type="text/javascript"> 
    82<!-- 
  • ui/web/htdocs/index.php

    r48908b9 rfcb3fa5  
    1919<script src="js/jquery.treeview.js" type="text/javascript"></script> 
    2020<script src="js/jquery.treeview.async.js" type="text/javascript"></script> 
     21<script src="js/eye/datepicker.js" type="text/javascript"></script> 
     22<script src="js/eye/eye.js" type="text/javascript"></script> 
     23<script src="js/eye/utils.js" type="text/javascript"></script> 
     24<script src="js/jquery.timers.js" type="text/javascript"></script> 
     25<script src="js/jquery.ajaxq-0.0.1.js" type="text/javascript"></script> 
     26<script src="js/eye/datepicker.js" type="text/javascript"></script> 
     27<script src="js/eye/colorpicker.js" type="text/javascript"></script> 
     28<script src="js/eye/eye.js" type="text/javascript"></script> 
     29<script src="js/eye/utils.js" type="text/javascript"></script> 
     30<script src="js/jquery.timers.js" type="text/javascript"></script> 
     31<script src="js/jquery.ajaxq-0.0.1.js" type="text/javascript"></script> 
    2132<script src="js/recon.js" type="text/javascript"></script> 
    2233 
     
    3849<![endif]--> 
    3950 
    40 <!--accordion--> 
    41 <script type="text/javascript"> 
    42 $(document).ready(function(){ 
    43    $(".accordion h3:first").addClass("active"); 
    44    $(".accordion span").slideUp(); 
    45    $(".accordion span:first").slideDown(); 
    46  
    47    $("div#content > div:first").siblings().slideUp(); 
    48  
    49    $(".accordion h3").click(function(){ 
    50        $(this).next("span").slideToggle("normal") 
    51        .siblings("span:visible").slideUp("normal"); 
    52        $(this).toggleClass("active"); 
    53        $(this).siblings("h3").removeClass("active"); 
    54        $(this).siblings("h3").each(function(e) { 
    55          $("#" + $(this).attr("id") + "_panel").slideUp("fast"); 
    56        }); 
    57        if($(this).hasClass("active")) 
    58          $("#" + $(this).attr("id") + "_panel").slideDown("fast"); 
    59        else 
    60          $("#" + $(this).attr("id") + "_panel").slideUp("fast"); 
    61    }); 
    62  
    63 });  
    64 </script> 
    65  
    66    <script type="text/javascript"> 
    67         jQuery(document).ready(function(){ 
    68             $("#targets").treeview({ 
    69               url: "json/ds/remote_address/target/name/metric_name", 
    70               params: {} // will become hash, indexed by id, of url params 
    71               }) 
    72         }); 
    73     </script> 
    74  
    75    <script type="text/javascript"> 
    76         jQuery(document).ready(function(){ 
    77             $("#templates").treeview({ 
    78               url: "json/templates/templateid/targetname/sid", 
    79               params: {} 
    80               }) 
    81         }); 
    82     </script> 
    83  
    84 <!-- search tabs --> 
    85 <script type="text/javascript"> 
    86         $(function () { 
    87                 var tabContainers = $('div.tabs > div'); 
    88                 tabContainers.hide().filter(':first').show(); 
    89                  
    90                 $('div.tabs ul.tabNavigation a').click(function () { 
    91                         tabContainers.hide(); 
    92                         tabContainers.filter(this.hash).show(); 
    93                         $('div.tabs ul.tabNavigation a').removeClass('selected'); 
    94                         $(this).addClass('selected'); 
    95                         return false; 
    96                 }).filter(':first').click(); 
    97  
    98                 var wstabContainers = $('div.ws-tabs > div'); 
    99                 wstabContainers.hide().filter(':first').show(); 
    100                  
    101                 $('div.ws-tabs ul.tabNavigation a').click(function () { 
    102                         wstabContainers.hide(); 
    103                         wstabContainers.filter(this.hash).show(); 
    104                         $('div.ws-tabs ul.tabNavigation a').removeClass('selected'); 
    105                         $(this).addClass('selected'); 
    106                         return false; 
    107                 }).filter(':first').click(); 
    108         }); 
    109 </script> 
    110  
    111 <!-- math box --> 
    11251</head> 
    11352 
     
    13877        </div><!-- end content --> 
    13978</div><!-- end container --> 
     79<script src="js/reconui.js" type="text/javascript"></script> 
    14080</body> 
    14181</html> 
  • ui/web/htdocs/js/recon.js

    r597eebf rfcb3fa5  
    6262        s.unshift(Math.log(s.shift())); break; 
    6363      case 'round': 
    64         r = s.shift(); 
     64        r = Math.pow(10,s.shift()); 
    6565        l = s.shift(); 
    66         s.unshift(Math.round(l, r)); 
     66        s.unshift(Math.round(r * l)/r); 
    6767        break; 
    6868      case 'floor': 
     
    116116          case 1000000000: meta.suffix = 'G'; break; 
    117117          case 1000000000000: meta.suffix = 'T'; break; 
    118           default: meta.suffic = null; break; 
     118          default: meta.suffix = null; break; 
    119119        } 
    120120        s.unshift( s.shift() / units ); 
     
    374374            if(items && items.length) { 
    375375              // Emulate opacity on white 
    376               if(! $("div.tooltip")[0]) 
     376              if(! $("div.tooltip")[0]) { 
    377377                $('<div class="tooltip"></div>').appendTo($('body')); 
     378                $("div.tooltip") 
     379                  .hover(function() {}, 
     380                         function() { $("div.tooltip").remove(); }); 
     381              } 
    378382              $("div.tooltip") 
    379383                .css( { top: items[0].pageY - 15, 
     
    392396                                        .join(',') + 
    393397                  ')'; 
     398                var val = items[i].datapoint[1]; 
     399                if(items[i].series.dataManip) { 
     400                  var meta = { _max: val }; 
     401                  val = items[i].series.dataManip(val, meta); 
     402                  if(meta.suffix) val = val + meta.suffix; 
     403                } 
    394404                var tt = $('<div><div/>') 
    395                   .html((items[i].datapoint[2] ? items[i].datapoint[2] : items[i].datapoint[1]) + " (" + items[i].series.label + ")") 
     405                  .html((items[i].datapoint[2] ? items[i].datapoint[2] : val) + " (" + items[i].series.label + ")") 
    396406                  .css( { backgroundColor: soft }); 
    397407                tt.appendTo($("div.tooltip")); 
     
    467477} 
    468478function ws_search_summary(r) { 
     479  if(r.count > 0 && r.query == '') return ''; 
    469480  return r.count + ' worksheet' + (r.count == 1 ? '' : 's' ) + ' found for \'' + htmlentities(r.query) + '\''; 
    470481} 
    471482function graph_search_summary(r) { 
     483  if(r.count > 0 && r.query == '') return ''; 
    472484  return r.count + ' graph' + (r.count == 1 ? '' : 's' ) + ' found for \'' + htmlentities(r.query) + '\''; 
    473485} 
    474486function datapoint_search_summary(r) { 
     487  if(r.count > 0 && r.query == '') return ''; 
    475488  return 'Found ' + r.count + ' data point' + (r.count == 1 ? '' : 's' ) + ' found for \'' + htmlentities(r.query) + '\''; 
    476489} 
     
    639652  li.append(a); 
    640653} 
     654 
     655/////////////////////////// 
     656// Worksheet manipulation 
     657////////////////////////// 
     658 
     659var ws_displayinfo = { start : 14*86400, cnt: '100', end: '' }; 
     660var wsinfo = {}; 
     661var locked = true; 
     662var streaming = false; 
     663var stream_graph; 
     664var time_windows = { '6h' : 3600*6, 
     665                                '12h' : 3600*12, 
     666                             '1d' : 86400*1, 
     667                             '2d' : 86400*2, 
     668                             '1w' : 86400*7, 
     669                             '2w' : 86400*14, 
     670                             '4w' : 86400*28, 
     671                             '1y' : 86400*365, 
     672                           }; 
     673 
     674function ws_locked(warning) { 
     675  if(locked) { 
     676    modal_warning("Worksheet Locked!", warning); 
     677    return locked; 
     678  } 
     679  else if($(".rememberWorksheet:visible").length != 0) { 
     680    modal_warning("Worksheet not saved!", "You must hit 'Remember' to continue editing."); 
     681    return true; 
     682  } 
     683  return locked; 
     684} 
     685 
     686function stream_data(graph_id) { 
     687 
     688  polltime = 1000; 
     689  timewindow = 300000; 
     690  stream_object = stream_graph; 
     691  stream_dirty = false; 
     692  stream_graph.ReconGraphPrepareStream(timewindow, polltime); 
     693 
     694 
     695//setup functionality so that every second check if we are streaming and dirty, plot if true 
     696  stream_graph.everyTime(1000, function() { 
     697    if(!streaming) { 
     698     $('#streambox').html(''); 
     699     $(".stream-log").attr("style", "display:none;"); 
     700     stream_graph.stopTime(); 
     701    } 
     702    else { 
     703      if(stream_dirty){ 
     704        stream_graph.ReconGraphPlotPoints(); 
     705        stream_dirty=false; 
     706      } 
     707    } 
     708  }); 
     709 
     710  $.getJSON("json/graph/info/" + graph_id, 
     711    function(g) { 
     712 
     713      sids = ""; 
     714      var sidneed = new Object(); 
     715 
     716      for(var i=0; i<g.datapoints.length; i++) { 
     717        if(g.datapoints[i].sid) { 
     718          sidneed[g.datapoints[i].sid] = polltime; 
     719        } 
     720      } 
     721      for(var sid in sidneed) { 
     722        sids+= "/"+sid+"@"+sidneed[sid]; 
     723      } 
     724 
     725       //console.log("sids requestd from noit server = ", sids); 
     726       $('#streambox').html('<iframe src="http://bob.office.omniti.com/data'+sids+'"></iframe>'); 
     727   }); 
     728} 
     729 
     730function make_ws_graph(g) { 
     731    var o = $('<div></div>').ReconGraph(g); 
     732 
     733    zb = $("<li class='zoomGraph' id='Zoom-"+g.graphid+"'><img src='images/zoom_icon.png'></li>"); 
     734    zb.attr("graphid", g.graphid); 
     735    zb.attr("graphtype", g.type); 
     736    zb.click(function() { zoom_modal($(this).attr("graphid"), $(this).attr("graphtype")); }); 
     737    mb = $("<li class='moveGraph' id='Move-"+g.graphid+"'><img src='images/drag_icon.png'></li>"); 
     738    rb = $("<li class='deleteWorksheetGraph' id='Remove-"+g.graphid+"'><img src='images/remove_icon.png'></li>"); 
     739    rb.attr("graphid", g.graphid); 
     740    rb.click( function() { 
     741                  $.getJSON('json/worksheet/deletegraph/' + wsinfo.id + '/' + $(this).attr("graphid"), 
     742                     function(r) { if(r.error) { $("#ws-tool-error").html(r.error).fadeIn('fast');  } }); 
     743                  $("#"+$(this).attr("graphid")).remove(); 
     744               }); 
     745 
     746    var ws_tbar = $('<div class="ws-toolbar"></div>').append("<ul/>").append(zb).append(mb).append(rb); 
     747 
     748    ws_tbar.attr("style", "display:none;"); 
     749 
     750    o.prepend(ws_tbar); 
     751    o.mouseover( 
     752              function() { 
     753                 o.attr("style", "outline: 1px solid #DDDDDD;"); 
     754                 ws_tbar.removeAttr("style"); 
     755              }); 
     756    o.mouseout( 
     757              function() { 
     758                o.removeAttr("style"); 
     759                ws_tbar.attr("style", "display:none;"); 
     760              }); 
     761 
     762    return o; 
     763} 
     764 
     765function zoom_modal (id, gtype) { 
     766  stream_graph = $('<div></div>').ReconGraph({graphid: id, type: gtype}); 
     767  var smod = stream_graph.modal({ 
     768      containerId: 'StreamingModalContainer', 
     769      close: 'true', 
     770      overlayCss: { 
     771        backgroundColor: '#000000', 
     772        cursor: 'wait' 
     773        }, 
     774      containerCss: { 
     775        backgroundColor: '#FFFFFF', 
     776        left: '30%', 
     777        top: '10%', 
     778        border: '2px solid #000000', 
     779        padding: '5px' 
     780      }, 
     781  }); 
     782  stream_graph.ReconGraphRefresh({graphid: id}); 
     783 
     784 
     785 var dtool =  $("<div id='mini_ws_datetool'>"); 
     786dtool.append('<div class="zoom"> \ 
     787                <dl> \ 
     788                        <dt>Zoom:</dt> \ 
     789                        <dd><a href="#" class="first datechoice">1d</a></dd> \ 
     790                        <dd><a href="#" class="datechoice">2d</a></dd> \ 
     791                        <dd><a href="#" class="datechoice">1w</a></dd> \ 
     792                        <dd><a href="#" class="selected datechoice">2w</a></dd> \ 
     793                        <dd><a href="#" class="datechoice">4w</a></dd> \ 
     794                        <dd><a href="#" class="datechoice">1y</a></dd> \ 
     795                </dl>\ 
     796        </div>\ 
     797</div>'); 
     798 
     799  var mheader = $("<div id='stream-modal-header'>").append(dtool); 
     800  mheader.append("<span class='zoomClose'>x</span>"); 
     801  mheader.append("<span class='zoomStream'>Stream Data</span><br>"); 
     802 
     803  stream_graph.prepend(mheader); 
     804 
     805  stream_graph.append("<div class='stream-log' style='display:none'></div>"); 
     806  $(".zoomClose").click(function() { 
     807     streaming = false; 
     808     $('#streambox').html(''); 
     809     smod.close(); 
     810  }); 
     811 
     812  $(".zoomStream").click(function() { 
     813     if(!streaming) { 
     814         streaming = true; 
     815         $(".zoomStream").html('Streaming!').fadeIn('slow'); 
     816         $(".stream-log").removeAttr("style").html("stream log_"); 
     817         stream_data(id); 
     818     } 
     819     else if(streaming) { 
     820         streaming = false; 
     821         $('#streambox').html(''); 
     822         $(".zoomStream").html('Stream Data').fadeIn('slow'); 
     823         $(".stream-log").attr("style", "display:none;"); 
     824         stream_graph.ReconGraphRefresh({graphid: id}); 
     825    } 
     826 }); //end stream click function 
     827 
     828$("#mini_ws_datetool .datechoice").click(function(){ 
     829        $(".datechoice").removeClass("selected"); 
     830        $(this).addClass("selected"); 
     831        stream_graph.ReconGraphRefresh({graphid: id, start: time_windows[$(this).html()], end: ''}); 
     832        return false; 
     833}); 
     834 
     835}//end zoom_modal 
     836 
     837function lock_wforms() { 
     838  $("h2#worksheetTitle").unbind(); 
     839  $("ul#worksheet-graphs").unbind(); 
     840  $(".ws-toolbar-edit").attr("class","ws-toolbar"); 
     841} 
     842 
     843function unlock_wforms() { 
     844  $("h2#worksheetTitle").editable(function(value, settings) { 
     845         wsinfo.title = value; 
     846         update_current_worksheet(); 
     847         return(value); 
     848       }, { }); 
     849 
     850  var ul = $("ul#worksheet-graphs"); 
     851  ul.sortable({ handle: '.moveGraph', 
     852                scroll: true, 
     853                stop: 
     854                  function (e,ui) { 
     855                    wsinfo.graphs = new Array(); 
     856                    ui.item.parent().find("> li > div").each( 
     857                      function(i) { 
     858                        wsinfo.graphs.push($(this).attr("id")); 
     859                      } 
     860                    ); 
     861                    update_current_worksheet(); 
     862                  } 
     863              }); 
     864 
     865  $(".ws-toolbar").attr("class","ws-toolbar-edit"); 
     866}//end unlock_wforms 
     867 
     868function update_current_worksheet(f) { 
     869  var str = JSON.stringify(wsinfo); 
     870  $.post("json/worksheet/store", 
     871         {'json':str}, 
     872         function(d) { 
     873           wsinfo.id = d.id; 
     874           if(d.error) $("#ws-tool-error").html(d.error).fadeIn('fast'); 
     875           else $("#ws-tool-error").fadeOut('fast'); 
     876           if(wsinfo.id && wsinfo.title && wsinfo.saved != true && 
     877              $(".rememberWorksheet:visible").length == 0) { 
     878             wsinfo.saved = false; 
     879             $(".rememberWorksheet").html('"Remember" this worksheet.').fadeIn('slow'); 
     880             lock_wforms(); 
     881             modal_warning("Worksheet not saved!", "You must hit 'Remember' to continue editing."); 
     882             $(".rememberWorksheet").click(function() { 
     883               wsinfo.saved = true; 
     884               update_current_worksheet(function(r) { 
     885                 if(r.error) wsinfo.saved = false; 
     886                 else { 
     887                    $(".rememberWorksheet").html('Remebered').fadeOut('slow'); 
     888                    unlock_wforms(); 
     889                 } 
     890               }); 
     891             }); 
     892           } 
     893           if(f) f(d); 
     894         }, 'json'); 
     895} 
     896 
     897function process_worksheet_json(r) { 
     898  wsinfo.id = r.sheetid; 
     899  wsinfo.title = r.title; 
     900  wsinfo.graphs = new Array(); 
     901 
     902  var ul = $("ul#worksheet-graphs"); 
     903  $("h2#worksheetTitle").html(r.title); 
     904  ul.empty(); 
     905  for(var i = 0; i < r.graphs.length; i++) { 
     906    var g = {}; 
     907    g.graphid = r.graphs[i]; 
     908    g.start = ws_displayinfo.start; 
     909    g.end = ws_displayinfo.end; 
     910    g.cnt = ws_displayinfo.cnt; 
     911 
     912    $.getJSON("json/graph/info/" + g.graphid, 
     913        function (j) { 
     914            g.type = j.type; 
     915            g.graphid = j.id; 
     916            var o = make_ws_graph(g); 
     917            ul.append($('<li/>').append(o)); 
     918            o.ReconGraphRefresh(); 
     919            wsinfo.graphs.push(g.graphid); 
     920         }); 
     921 
     922  } 
     923  ul.sortable("refresh"); 
     924} 
     925 
     926function add_graph_to_worksheet(graphid) { 
     927  if(!ws_locked("Click 'Edit Worksheet' to unlock.")){ 
     928    for(var i = 0; wsinfo.graphs && (i < wsinfo.graphs.length); i++) { 
     929      if(wsinfo.graphs[i]==graphid) { 
     930         modal_warning("", "Worksheets cannot have duplicate graphs!"); 
     931         return; 
     932      } 
     933    } 
     934    var g = { start: ws_displayinfo.start, 
     935              end: ws_displayinfo.end, 
     936              cnt: ws_displayinfo.cnt, 
     937              graphid: graphid }; 
     938 
     939     $.getJSON("json/graph/info/" + g.graphid, 
     940        function (j) { 
     941            g.type = j.type; 
     942            g.graphid = j.id; 
     943            var o = make_ws_graph(g); 
     944            var ul = $("ul#worksheet-graphs"); 
     945            ul.append($('<li/>').append(o)); 
     946            o.ReconGraphRefresh(); 
     947            ul.sortable("refresh"); 
     948            if(!wsinfo.graphs) {wsinfo.graphs = new Array();} 
     949            wsinfo.graphs.push(graphid); 
     950            update_current_worksheet(); 
     951            unlock_wforms(); 
     952        }); 
     953  } 
     954 
     955} 
     956function refresh_worksheet() { 
     957  var g = { start: ws_displayinfo.start, 
     958            end: ws_displayinfo.end, 
     959            cnt: ws_displayinfo.cnt }; 
     960  $("ul#worksheet-graphs > li > div").ReconGraphRefresh(g); 
     961} 
     962function load_worksheet(id) { 
     963  if(id==null) { 
     964    wsinfo.saved = false; 
     965    locked = false; 
     966    unlock_wforms(); 
     967    $(".editWorksheet").html('Editing!').fadeIn('slow'); 
     968    process_worksheet_json({graphs: [], title:'Worksheet Title (click to edit)', sheetid: ''}); 
     969  } 
     970  else { 
     971    wsinfo.saved = true; 
     972    locked = true; 
     973    lock_wforms(); 
     974    $(".editWorksheet").html('Edit Worksheet').fadeIn('slow'); 
     975    $.getJSON("json/worksheet/info/" + id, process_worksheet_json); 
     976  } 
     977} 
  • ui/web/htdocs/search_saved_graphs.inc

    r7c1da69 rfcb3fa5  
    1 <script type="text/javascript"> 
    2 <!-- 
    3 $(document).ready(function(){ 
    4         $("#graph-searchform").submit(function() { 
    5                 perform_graph_search_edit({ 'domid': '#graphlist', 
    6                                             'search': $("#graph-searchinput").val(), 
    7                                             'offset': 0, 
    8                                             'limit': 25 }); 
    9                 return false; 
    10         }); 
    11 }); 
    12 --> 
    13 </script> 
    141<h4 id="graph-searchterms"></h4> 
    152<div id="graph-searchform-container" style="margin:.5em 0 2em 0;padding-bottom:1em;border-bottom: solid 1px #e6e4e5;"> 
  • ui/web/htdocs/search_simple.inc

    rfd997b7 rfcb3fa5  
    1 <script type="text/javascript"> 
    2 <!-- 
    3 $(document).ready(function(){ 
    4         $("#datapoint-searchform").submit(function() { 
    5                 perform_datapoint_search_add({ domid: '#searchlist', 
    6                                                search: $("#searchinput").val(), 
    7                                                offset: 0, 
    8                                                limit: 25 }); 
    9                 return false; 
    10         }); 
    11 }); 
    12 --> 
    13 </script> 
    141<h4 id="searchterms"></h4> 
    152<div id="datapoint-searchform-container" style="margin:.5em 0 2em 0;padding-bottom:1em;border-bottom: solid 1px #e6e4e5;"> 
  • ui/web/htdocs/worksheet_panel.inc

    r54ed1f6 rfcb3fa5  
    1 <script type="text/javascript" src="js/eye/datepicker.js"></script> 
    2 <script type="text/javascript" src="js/eye/eye.js"></script> 
    3 <script type="text/javascript" src="js/eye/utils.js"></script> 
    4 <script type="text/javascript" src="js/jquery.timers.js"></script> 
    5 <script type="text/javascript" src="js/jquery.ajaxq-0.0.1.js" ></script> 
    6 <script type="text/javascript"> 
    7 <!-- 
    8  
    9 var ws_displayinfo = { start : 14*86400, cnt: '100', end: '' }; 
    10 var wsinfo = {}; 
    11 var locked = true; 
    12 var streaming = false; 
    13 var stream_graph; 
    14 var time_windows = { '6h' : 3600*6, 
    15                                 '12h' : 3600*12, 
    16                              '1d' : 86400*1, 
    17                              '2d' : 86400*2, 
    18                              '1w' : 86400*7, 
    19                              '2w' : 86400*14, 
    20                              '4w' : 86400*28, 
    21                              '1y' : 86400*365, 
    22                            }; 
    23  
    24 function ws_locked(warning) {            
    25   if(locked) { 
    26     modal_warning("Worksheet Locked!", warning); 
    27     return locked; 
    28   } 
    29   else if($(".rememberWorksheet:visible").length != 0) { 
    30     modal_warning("Worksheet not saved!", "You must hit 'Remember' to continue editing."); 
    31     return true; 
    32   } 
    33   return locked; 
    34 } 
    35  
    36 function stream_data(graph_id) { 
    37  
    38   polltime = 1000; 
    39   timewindow = 300000; 
    40   stream_object = stream_graph; 
    41   stream_dirty = false; 
    42   stream_graph.ReconGraphPrepareStream(timewindow, polltime); 
    43  
    44  
    45 //setup functionality so that every second check if we are streaming and dirty, plot if true 
    46   stream_graph.everyTime(1000, function() { 
    47     if(!streaming) {    
    48      $('#streambox').html(''); 
    49      $(".stream-log").attr("style", "display:none;"); 
    50      stream_graph.stopTime(); 
    51     } 
    52     else { 
    53       if(stream_dirty){ 
    54         stream_graph.ReconGraphPlotPoints();      
    55         stream_dirty=false; 
    56       } 
    57     } 
    58   }); 
    59  
    60   $.getJSON("json/graph/info/" + graph_id,  
    61     function(g) { 
    62  
    63       sids = "";  
    64       var sidneed = new Object(); 
    65  
    66       for(var i=0; i<g.datapoints.length; i++) { 
    67         if(g.datapoints[i].sid) { 
    68           sidneed[g.datapoints[i].sid] = polltime; 
    69         } 
    70       } 
    71       for(var sid in sidneed) { 
    72         sids+= "/"+sid+"@"+sidneed[sid]; 
    73       } 
    74  
    75        //console.log("sids requestd from noit server = ", sids); 
    76        $('#streambox').html('<iframe src="http://bob.office.omniti.com/data'+sids+'"></iframe>'); 
    77    }); 
    78  
    79 } 
    80  
    81 function make_ws_graph(g) { 
    82     var o = $('<div></div>').ReconGraph(g); 
    83  
    84     zb = $("<li class='zoomGraph' id='Zoom-"+g.graphid+"'><img src='images/zoom_icon.png'></li>"); 
    85     zb.attr("graphid", g.graphid); 
    86     zb.attr("graphtype", g.type); 
    87     zb.click(function() { zoom_modal($(this).attr("graphid"), $(this).attr("graphtype")); }); 
    88     mb = $("<li class='moveGraph' id='Move-"+g.graphid+"'><img src='images/drag_icon.png'></li>");     
    89     rb = $("<li class='deleteWorksheetGraph' id='Remove-"+g.graphid+"'><img src='images/remove_icon.png'></li>"); 
    90     rb.attr("graphid", g.graphid); 
    91     rb.click( function() { 
    92                   $.getJSON('json/worksheet/deletegraph/' + wsinfo.id + '/' + $(this).attr("graphid"), 
    93                      function(r) { if(r.error) { $("#ws-tool-error").html(r.error).fadeIn('fast');  } }); 
    94                   $("#"+$(this).attr("graphid")).remove(); 
    95                }); 
    96  
    97     var ws_tbar = $('<div class="ws-toolbar"></div>').append("<ul/>").append(zb).append(mb).append(rb); 
    98  
    99     ws_tbar.attr("style", "display:none;"); 
    100  
    101     o.prepend(ws_tbar); 
    102     o.mouseover(                   
    103               function() {  
    104                  o.attr("style", "outline: 1px solid #DDDDDD;");  
    105                  ws_tbar.removeAttr("style"); 
    106               });  
    107     o.mouseout(  
    108               function() {  
    109                 o.removeAttr("style"); 
    110                 ws_tbar.attr("style", "display:none;"); 
    111               }); 
    112  
    113     return o; 
    114 } 
    115  
    116 function zoom_modal (id, gtype) { 
    117   stream_graph = $('<div></div>').ReconGraph({graphid: id, type: gtype}); 
    118   var smod = stream_graph.modal({ 
    119       containerId: 'StreamingModalContainer', 
    120       close: 'true', 
    121       overlayCss: { 
    122         backgroundColor: '#000000', 
    123         cursor: 'wait' 
    124         }, 
    125       containerCss: { 
    126         backgroundColor: '#FFFFFF', 
    127         left: '30%', 
    128         top: '10%', 
    129         border: '2px solid #000000', 
    130         padding: '5px' 
    131       }, 
    132   }); 
    133   stream_graph.ReconGraphRefresh({graphid: id}); 
    134  
    135  
    136  var dtool =  $("<div id='mini_ws_datetool'>"); 
    137 dtool.append('<div class="zoom"> \ 
    138                 <dl> \ 
    139                         <dt>Zoom:</dt> \ 
    140                         <dd><a href="#" class="first datechoice">1d</a></dd> \ 
    141                         <dd><a href="#" class="datechoice">2d</a></dd> \ 
    142                         <dd><a href="#" class="datechoice">1w</a></dd> \ 
    143                         <dd><a href="#" class="selected datechoice">2w</a></dd> \ 
    144                         <dd><a href="#" class="datechoice">4w</a></dd> \ 
    145                         <dd><a href="#" class="datechoice">1y</a></dd> \ 
    146                 </dl>\ 
    147         </div>\ 
    148 </div>'); 
    149  
    150   var mheader = $("<div id='stream-modal-header'>").append(dtool); 
    151   mheader.append("<span class='zoomClose'>x</span>"); 
    152   mheader.append("<span class='zoomStream'>Stream Data</span><br>"); 
    153  
    154   stream_graph.prepend(mheader); 
    155  
    156   stream_graph.append("<div class='stream-log' style='display:none'></div>"); 
    157   $(".zoomClose").click(function() { 
    158      streaming = false;                         
    159      $('#streambox').html(''); 
    160      smod.close(); 
    161   }); 
    162  
    163   $(".zoomStream").click(function() { 
    164      if(!streaming) { 
    165          streaming = true; 
    166          $(".zoomStream").html('Streaming!').fadeIn('slow'); 
    167          $(".stream-log").removeAttr("style").html("stream log_"); 
    168          stream_data(id); 
    169      } 
    170      else if(streaming) { 
    171          streaming = false; 
    172          $('#streambox').html(''); 
    173          $(".zoomStream").html('Stream Data').fadeIn('slow'); 
    174          $(".stream-log").attr("style", "display:none;"); 
    175          stream_graph.ReconGraphRefresh({graphid: id}); 
    176     } 
    177  }); //end stream click function                       
    178  
    179 $("#mini_ws_datetool .datechoice").click(function(){ 
    180         $(".datechoice").removeClass("selected"); 
    181         $(this).addClass("selected"); 
    182         stream_graph.ReconGraphRefresh({graphid: id, start: time_windows[$(this).html()], end: ''}); 
    183         return false; 
    184 }); 
    185  
    186 }//end zoom_modal 
    187  
    188 function lock_wforms() { 
    189   $("h2#worksheetTitle").unbind(); 
    190   $("ul#worksheet-graphs").unbind(); 
    191   $(".ws-toolbar-edit").attr("class","ws-toolbar"); 
    192 } 
    193           
    194 function unlock_wforms() { 
    195   $("h2#worksheetTitle").editable(function(value, settings) { 
    196          wsinfo.title = value; 
    197          update_current_worksheet(); 
    198          return(value); 
    199        }, { }); 
    200  
    201   var ul = $("ul#worksheet-graphs"); 
    202   ul.sortable({ handle: '.moveGraph', 
    203                 scroll: true, 
    204                 stop: 
    205                   function (e,ui) { 
    206                     wsinfo.graphs = new Array(); 
    207                     ui.item.parent().find("> li > div").each( 
    208                       function(i) {  
    209                         wsinfo.graphs.push($(this).attr("id"));  
    210                       } 
    211                     ); 
    212                     update_current_worksheet(); 
    213                   } 
    214               }); 
    215  
    216   $(".ws-toolbar").attr("class","ws-toolbar-edit");  
    217 }//end unlock_wforms 
    218  
    219 function update_current_worksheet(f) { 
    220   var str = JSON.stringify(wsinfo); 
    221   $.post("json/worksheet/store", 
    222          {'json':str}, 
    223          function(d) { 
    224            wsinfo.id = d.id; 
    225            if(d.error) $("#ws-tool-error").html(d.error).fadeIn('fast'); 
    226            else $("#ws-tool-error").fadeOut('fast'); 
    227            if(wsinfo.id && wsinfo.title && wsinfo.saved != true && 
    228               $(".rememberWorksheet:visible").length == 0) { 
    229              wsinfo.saved = false; 
    230              $(".rememberWorksheet").html('"Remember" this worksheet.').fadeIn('slow'); 
    231              lock_wforms(); 
    232              modal_warning("Worksheet not saved!", "You must hit 'Remember' to continue editing."); 
    233              $(".rememberWorksheet").click(function() { 
    234                wsinfo.saved = true; 
    235                update_current_worksheet(function(r) { 
    236                  if(r.error) wsinfo.saved = false; 
    237                  else { 
    238                     $(".rememberWorksheet").html('Remebered').fadeOut('slow'); 
    239                     unlock_wforms(); 
    240                  } 
    241                }); 
    242              }); 
    243            } 
    244            if(f) f(d); 
    245          }, 'json'); 
    246 } 
    247    
    248 function process_worksheet_json(r) { 
    249   wsinfo.id = r.sheetid; 
    250   wsinfo.title = r.title; 
    251   wsinfo.graphs = new Array(); 
    252  
    253   var ul = $("ul#worksheet-graphs"); 
    254   $("h2#worksheetTitle").html(r.title); 
    255   ul.empty(); 
    256   for(var i = 0; i < r.graphs.length; i++) { 
    257     var g = {}; 
    258     g.graphid = r.graphs[i]; 
    259     g.start = ws_displayinfo.start; 
    260     g.end = ws_displayinfo.end; 
    261     g.cnt = ws_displayinfo.cnt; 
    262  
    263     $.getJSON("json/graph/info/" + g.graphid,  
    264         function (j) { 
    265             g.type = j.type; 
    266             g.graphid = j.id; 
    267             var o = make_ws_graph(g); 
    268             ul.append($('<li/>').append(o)); 
    269             o.ReconGraphRefresh(); 
    270             wsinfo.graphs.push(g.graphid); 
    271          }); 
    272  
    273   } 
    274   ul.sortable("refresh"); 
    275 } 
    276  
    277 function add_graph_to_worksheet(graphid) { 
    278   if(!ws_locked("Click 'Edit Worksheet' to unlock.")){ 
    279     for(var i = 0; wsinfo.graphs && (i < wsinfo.graphs.length); i++) { 
    280       if(wsinfo.graphs[i]==graphid) { 
    281          modal_warning("", "Worksheets cannot have duplicate graphs!"); 
    282          return; 
    283       } 
    284     }   
    285     var g = { start: ws_displayinfo.start, 
    286               end: ws_displayinfo.end, 
    287               cnt: ws_displayinfo.cnt, 
    288               graphid: graphid }; 
    289  
    290      $.getJSON("json/graph/info/" + g.graphid,  
    291         function (j) { 
    292             g.type = j.type; 
    293             g.graphid = j.id; 
    294             var o = make_ws_graph(g); 
    295             var ul = $("ul#worksheet-graphs"); 
    296             ul.append($('<li/>').append(o)); 
    297             o.ReconGraphRefresh(); 
    298             ul.sortable("refresh"); 
    299             if(!wsinfo.graphs) {wsinfo.graphs = new Array();} 
    300             wsinfo.graphs.push(graphid); 
    301             update_current_worksheet(); 
    302             unlock_wforms(); 
    303         }); 
    304   } 
    305  
    306 } 
    307 function refresh_worksheet() { 
    308   var g = { start: ws_displayinfo.start, 
    309             end: ws_displayinfo.end, 
    310             cnt: ws_displayinfo.cnt }; 
    311   $("ul#worksheet-graphs > li > div").ReconGraphRefresh(g); 
    312 } 
    313 function load_worksheet(id) { 
    314   if(id==null) { 
    315     wsinfo.saved = false; 
    316     locked = false; 
    317     unlock_wforms(); 
    318     $(".editWorksheet").html('Editing!').fadeIn('slow'); 
    319     process_worksheet_json({graphs: [], title:'Worksheet Title (click to edit)', sheetid: ''}); 
    320   } 
    321   else { 
    322     wsinfo.saved = true; 
    323     locked = true; 
    324     lock_wforms(); 
    325     $(".editWorksheet").html('Edit Worksheet').fadeIn('slow'); 
    326     $.getJSON("json/worksheet/info/" + id, process_worksheet_json); 
    327   } 
    328 } 
    329 --> 
    330 </script> 
    3311<span class="rememberWorksheet"></span> 
    3322<span class="blankWorksheet">New Blank</span> 
     
    3344<h2 id="worksheetTitle">Worksheet Title</h2> 
    3355<p/> 
    336 <!-- date range box --> 
    337 <script type="text/javascript"> 
    338 $(document).ready(function(){ 
    339         var state = false; 
    340  
    341         $("h2#worksheetTitle").editable(function(value, settings) { 
    342          wsinfo.title = value; 
    343          update_current_worksheet(); 
    344          return(value); 
    345        }, { }); 
    346  
    347         $(".editWorksheet").click(function() {           
    348                 if(locked){ 
    349                     locked = false;                  
    350                     unlock_wforms(); 
    351                     $(".editWorksheet").html('Editing!').fadeIn('slow'); 
    352                 } 
    353                 else if(!locked){ 
    354                     locked = true;       
    355                     lock_wforms(); 
    356                     $(".editWorksheet").html('Edit Worksheet').fadeIn('slow'); 
    357                 } 
    358         }); 
    359  
    360  
    361         $(".blankWorksheet").click(function() { 
    362                 load_worksheet();                
    363         }); 
    364  
    365         $("#ws_datetool .btn-slide").click(function(){ 
    366                 $("#ws_widgetCalendar").stop().animate({ 
    367                      height: state ? 0 : 
    368                        $('#ws_widgetCalendar div.datepicker').get(0).offsetHeight 
    369                   }, 500); 
    370                 state = !state; 
    371                 $(this).toggleClass("active"); 
    372                 return false; 
    373         }); 
    374         $("#ws_datetool .datechoice").click(function(){ 
    375                 $("#ws_datetool .range a.btn-slide").html("YYYY/MM/DD - YYYY/MM/DD"); 
    376                 $("#ws_widgetCalendar").slideUp("slow"); 
    377                 $(".datechoice").removeClass("selected"); 
    378                 ws_displayinfo.start = time_windows[$(this).html()]; 
    379                 ws_displayinfo.end = ''; 
    380                 $(this).addClass("selected"); 
    381                 refresh_worksheet(); 
    382                 return false; 
    383         }); 
    384         $('#ws_widgetCalendar').DatePicker({ 
    385                 flat: true, 
    386                 format: 'Y/m/d', 
    387                 date: [new Date(), new Date()], 
    388                 calendars: 3, 
    389                 mode: 'range', 
    390                 starts: 1, 
    391                 onChange: function(formated) { 
    392                         var dates; 
    393                         dates = formated[0].split('/'); 
    394                         var start = new Date(dates[0], dates[1]-1, dates[2], 0, 0, 0); 
    395                         dates = formated[1].split('/'); 
    396                         var end = new Date((new Date(dates[0], dates[1]-1, dates[2], 0, 0, 0)).getTime() + 86400000); 
    397                         ws_displayinfo.start = start.toUTCString(); 
    398                         ws_displayinfo.end = end.toUTCString(); 
    399                         refresh_worksheet(); 
    400                         $(".datechoice").removeClass("selected"); 
    401                         $('#ws_datetool .range a.btn-slide').get(0).innerHTML = formated.join(' - '); 
    402                 } 
    403         }); 
    404         $("#ws-tool-error").click(function(){ 
    405           $("#ws-tool-error").fadeOut("slow"); 
    406         }); 
    407  
    408 }); 
    409 </script> 
    4106 
    4117<div id="ws_datetool"> 
  • ui/web/htdocs/ws_search_graphs.inc

    r7c1da69 rfcb3fa5  
    1 <script type="text/javascript"> 
    2 <!-- 
    3 $(document).ready(function(){ 
    4         $("#ws-graph-searchform").submit(function() { 
    5                 perform_graph_search_add({ 'domid': '#ws-graphlist', 
    6                                            'search': $("#ws-graph-searchinput").val(), 
    7                                            'offset': 0, 
    8                                            'limit': 25 }); 
    9                 return false; 
    10         }); 
    11 }); 
    12 --> 
    13 </script> 
    141<h4 id="ws-graph-searchterms"></h4> 
    152<div id="ws-graph-searchform-container" style="margin:.5em 0 2em 0;padding-bottom:1em;border-bottom: solid 1px #e6e4e5;"> 
    163<form id="ws-graph-searchform"> 
    174  <fieldset> 
     5  <p class="explain">Enter a term to search for graphs.</p> 
    186  <legend style="display:none;">Search</legend> 
    197  <label for="keyword" style="display:none;">Keyword</label> <input type="text" id="ws-graph-searchinput" style="width:220px;" /> <input type="submit" value="Search" /> 
  • ui/web/htdocs/ws_search_simple.inc

    r171b238 rfcb3fa5  
    1 <script type="text/javascript"> 
    2 <!-- 
    3 $(document).ready(function(){ 
    4         $("#ws-searchform").submit(function() { 
    5                 perform_ws_search_edit({ domid: '#worksheetlist', 
    6                                          search: $("#ws-searchinput").val(), 
    7                                          offset: 0, 
    8                                          limit: 25 }); 
    9                 return false; 
    10         }); 
    11 }); 
    12 --> 
    13 </script> 
    141<h4 id="ws-searchterms"></h4> 
    152<div id="ws-searchform-container" style="margin:.5em 0 2em 0;padding-bottom:1em;border-bottom: solid 1px #e6e4e5;"> 
    163<form id="ws-searchform"> 
    174  <fieldset> 
     5  <p class="explain">Enter a term to search for worksheets.</p> 
    186  <legend style="display:none;">Search</legend> 
    197  <label for="keyword" style="display:none;">Keyword</label> <input type="text" id="ws-searchinput" style="width:220px;" /> <input type="submit" value="Search" />