Show
Ignore:
Timestamp:
09/22/08 12:04:14 (6 years ago)
Author:
Theo Schlossnagle <jesus@omniti.com>
git-committer:
Theo Schlossnagle <jesus@omniti.com> 1222085054 +0000
git-parent:

[df2e366438418c6f91a256714a461d0642f7deb5]

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

search, albeit useless, refs #22

Files:

Legend:

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

    r9478c46 r362040a  
    66RewriteRule ^json/graph/store$ graph_store.php [PT,QSA] 
    77RewriteRule ^amcharts/graph/settings/([^/]+) graph_settings.php?id=$1 [PT,QSA] 
    8  
     8RewriteRule ^json/datapoint/search$ datapoint_search_json.php [PT,QSA] 
  • ui/web/htdocs/css/style.css

    r9478c46 r362040a  
    199199 
    200200/* search list */ 
    201 #searchlist {height:450px;overflow:auto;} 
     201#searchlist {overflow:auto;} 
    202202#searchlist ul a {list-style:none;} 
    203203#searchlist ul li {display:block;padding:2px 0;margin-bottom:4px;} 
     
    207207/* browse list */ 
    208208#browselist span {display:block; white-space: nowrap;} 
    209 #browselist {height:600px;overflow:auto;} 
     209#browselist {overflow:auto;} 
    210210#browselist ul {list-style:none;} 
    211211#searchlist ul li {display:block;padding:2px 0;} 
     
    231231 
    232232/* graph list */ 
    233 #graphlist {height:450px;overflow:auto;} 
     233#graphlist {overflow:auto;} 
    234234#graphlist ul {list-style:none;} 
    235235#graphlist ul li {display:block;padding:2px 0;margin-bottom:4px;} 
  • ui/web/htdocs/graph_controls.inc

    r9478c46 r362040a  
    2222  } 
    2323} 
    24 function update_current_graph() { 
     24function update_current_graph(redraw) { 
    2525  if(recurse > 0) return; 
    2626  var str = JSON.stringify(graphinfo); 
     
    3737           recurse--; 
    3838           //$("#payload").html(JSON.stringify(graphinfo)); 
    39            redraw_current_graph(); 
     39           if(redraw) redraw_current_graph(); 
    4040         }, 'json'); 
    4141} 
     
    4545  graphinfo.datapoints.push(d); 
    4646  gtool_add_datapoint(d); 
    47   update_current_graph(); 
     47  update_current_graph(true); 
    4848} 
    4949function gtool_add_datapoint(d) { 
     
    5656    $(this).addClass("axison"); 
    5757    d.axis = $(this).hasClass("axisl") ? "l" : "r"; 
    58     update_current_graph(); 
     58    update_current_graph(true); 
    5959  }); 
    6060  if(!d.hidden){o.find('input[@name="view"]').attr("checked","checked");} 
    6161  o.find('input[@name="view"]').change(function(){ 
    6262    d.hidden = !($(this).attr("checked")); 
    63     update_current_graph(); 
     63    update_current_graph(true); 
    6464  }).change(); 
    6565 
     
    7171      } 
    7272    } 
    73     update_current_graph(); 
     73    update_current_graph(true); 
    7474    refresh_graph_from_json(graphinfo); 
    7575    return false; 
     
    8484    o.find('input[@name="derive"]').change(function(){ 
    8585      d.derive = ($(this).attr("checked")); 
    86       update_current_graph(); 
     86      update_current_graph(true); 
    8787    }).change(); 
    8888 
     
    9090    o.find('input[@name="math1"]').change(function(){ 
    9191      d.math1 = $(this).val(); 
    92       update_current_graph(); 
     92      update_current_graph(true); 
    9393    }); 
    9494    o.find('input[@name="math2"]').val(d.math2); 
    9595    o.find('input[@name="math2"]').change(function(){ 
    9696      d.math2 = $(this).val(); 
    97       update_current_graph(); 
     97      update_current_graph(true); 
    9898    }); 
    9999  } 
    100100 
    101   o.find(".datatitle").html("[" + d.sid + "-" + d.metric_name + "] " + d.name); 
     101  o.find(".datatitle").html(d.name); 
    102102  recurse--; 
    103103  $("#gtool #dataPoints").append(o.children()); 
    104104} 
    105105function refresh_graph_from_json(j) { 
    106    graphinfo = j; 
    107    if(graphinfo.datapoints == undefined) graphinfo.datapoints = Array(); 
    108    $("h2#graphTitle").html(graphinfo.title); 
    109    $("input[@name='graphtype']:checked").removeAttr("checked"); 
    110    $("input[@name='graphtype']") 
    111      .filter(function(i){return $(this).val() == graphinfo.type;}) 
    112      .attr("checked","checked"); 
    113    $("#dataPoints").empty(); 
    114    for(var i=0; i<graphinfo.datapoints.length; i++) { 
    115      gtool_add_datapoint(graphinfo.datapoints[i]); 
    116    } 
    117    redraw_current_graph(); 
     106  graphinfo = j; 
     107  if(graphinfo.datapoints == undefined) graphinfo.datapoints = Array(); 
     108  $("h2#graphTitle").html(graphinfo.title ? graphinfo.title : 'Graph Title (click to edit)'); 
     109  $("h2#graphTitle").editable(function(value, settings) {  
     110      graphinfo.title = value; 
     111      update_current_graph(false); 
     112      return(value); 
     113    }, { }); 
     114  $("input[@name='graphtype']:checked").removeAttr("checked"); 
     115  $("input[@name='graphtype']") 
     116    .filter(function(i){return $(this).val() == graphinfo.type;}) 
     117    .attr("checked","checked"); 
     118  $("#dataPoints").empty(); 
     119  for(var i=0; i<graphinfo.datapoints.length; i++) { 
     120    gtool_add_datapoint(graphinfo.datapoints[i]); 
     121  } 
     122  redraw_current_graph(); 
    118123} 
    119124function fetch_graph_info(id) { 
     
    151156        $(".graphType").change(function(){ 
    152157                graphinfo.type = $(this).val(); 
    153                 update_current_graph(); 
     158                update_current_graph(true); 
    154159        }); 
    155160        $("#gtool-error").click(function(){ 
  • ui/web/htdocs/main.php

    r9478c46 r362040a  
    77<script src="js/json2.js"></script> 
    88<script src="js/jquery.min.js"></script> 
     9<script src="js/jquery.jeditable.pack.js"></script> 
    910<script src="js/jquery.cookie.js" type="text/javascript"></script> 
    1011<script src="js/jquery.treeview.js" type="text/javascript"></script> 
  • ui/web/htdocs/search_simple.inc

    r2a9ba1d r362040a  
    1                                         <!--h2>Search</h2--> 
    2                                         <h4>&quot;ngm&quot; and &quot;my shot&quot;</h4> 
    3                                         <p>5360 data points found</p> 
    4                                         <div id="searchform" style="margin:.5em 0 2em 0;padding-bottom:1em;border-bottom: solid 1px #e6e4e5;"> 
    5                                          <form name="form2" id="form2"> 
    6                                                 <fieldset> 
    7                                                 <legend style="display:none;">Search</legend> 
    8                                                 <label for="search_new"><input type="radio" name="search_new" id="search_new" value="New Search" /> New Search</label> &nbsp;&nbsp;&nbsp; 
    9                                                 <label for="search_within"><input type="radio" name="search_within" id="search_within" value="Search within Result" /> Search within Result</label><br /> 
    10                                                 <label for="keyword" style="display:none;">Keyword</label> <input type="text" id="keyword" style="width:220px;" /> <input type="submit" value="Submit" /> 
    11                                                 </fieldset> 
    12                                         </form> 
    13                                         </div> 
    14                                         <div id="searchlist"> 
    15                                                 <ul> 
    16                                                         <li><a href="#">sed do eiusmod tempor incididunt ut labore</a></li> 
    17                                                         <li><a href="#">sed do eiusmod tempor incididunt ut labore</a></li> 
    18                                                         <li><a href="#">sed do eiusmod tempor incididunt ut labore</a></li> 
    19                                                         <li><a href="#">sed do eiusmod tempor incididunt ut labore</a></li> 
    20                                                         <li><a href="#">sed do eiusmod tempor incididunt ut labore</a></li> 
    21                                                         <li><a href="#">sed do eiusmod tempor incididunt ut labore</a></li> 
    22                                                         <li class="txt"><a href="#">text data sed do eiusmod tempor incididunt ut labore</a></li> 
    23                                                         <li class="txt"><a href="#">text data sed do eiusmod tempor incididunt ut labore</a></li> 
    24                                                         <li><a href="#">sed do eiusmod tempor incididunt ut labore</a></li> 
    25                                                         <li><a href="#">sed do eiusmod tempor incididunt ut labore</a></li> 
    26                                                         <li><a href="#">sed do eiusmod tempor incididunt ut labore</a></li> 
    27                                                         <li class="txt"><a href="#">text data sed do eiusmod tempor incididunt ut labore</a></li> 
    28                                                         <li class="txt"><a href="#">text data sed do eiusmod tempor incididunt ut labore</a></li> 
    29                                                         <li><a href="#">sed do eiusmod tempor incididunt ut labore</a></li> 
    30                                                         <li><a href="#">sed do eiusmod tempor incididunt ut labore</a></li> 
    31                                                         <li class="txt"><a href="#">text data sed do eiusmod tempor incididunt ut labore</a></li> 
    32                                                         <li class="txt"><a href="#">text data sed do eiusmod tempor incididunt ut labore</a></li> 
    33                                                         <li><a href="#">sed do eiusmod tempor incididunt ut labore</a></li> 
    34                                                         <li><a href="#">sed do eiusmod tempor incididunt ut labore</a></li> 
    35                                                         <li><a href="#">sed do eiusmod tempor incididunt ut labore</a></li> 
    36                                                         <li class="txt"><a href="#">text data sed do eiusmod tempor incididunt ut labore</a></li> 
    37                                                         <li class="txt"><a href="#">text data sed do eiusmod tempor incididunt ut labore</a></li> 
    38                                                         <li><a href="#">sed do eiusmod tempor incididunt ut labore</a></li> 
    39                                                         <li><a href="#">sed do eiusmod tempor incididunt ut labore</a></li> 
    40                                                 </ul> 
    41                                         </div> 
     1<script type="text/javascript"> 
     2<!-- 
     3function perform_datapoint_search(string, offset, limit) { 
     4  $.getJSON('json/datapoint/search', 
     5            { 'q' : string, 'o' : offset, 'l' : limit }, 
     6            function(r) { 
     7              $("#searchresults > li").remove(); 
     8              for(var i=0; i<r.results.length; i++) { 
     9                var ds = r.results[i]; 
     10                var a = $('<a href="#"/>'); 
     11                var li = $('<li/>'); 
     12                a.html(ds.target + '`' + ds.name + '`' + ds.metric_name); 
     13                a.click( 
     14                  (function(ds_c) { 
     15                      return function() { 
     16                        graph_add_datapoint({'sid':ds_c.sid, 
     17                                             'metric_name':ds_c.metric_name, 
     18                                             'metric_type':ds_c.metric_type 
     19                                            }); 
     20                        return false; 
     21                      } 
     22                   })(ds) 
     23                ); 
     24                if(ds.metric_type == 'text') li.addClass('txt'); 
     25                $("#searchresults").append(li.append(a)); 
     26              } 
     27            }); 
     28
     29$(document).ready(function(){ 
     30        $("#datapoint-searchform").submit(function() { 
     31                perform_datapoint_search($("#searchinput").val(), 0, 25); 
     32                return false; 
     33        }); 
     34}); 
     35--> 
     36</script> 
     37<h4 id="searchterms"></h4> 
     38<p id="searchsummary"></p> 
     39<div id="datapoint-searchform-container" style="margin:.5em 0 2em 0;padding-bottom:1em;border-bottom: solid 1px #e6e4e5;"> 
     40<form id="datapoint-searchform"> 
     41  <fieldset> 
     42  <legend style="display:none;">Search</legend> 
     43  <label for="keyword" style="display:none;">Keyword</label> <input type="text" id="searchinput" style="width:220px;" />  
     44  </fieldset> 
     45</form> 
     46</div> 
     47<div id="searchlist"> 
     48  <ul id="searchresults"> 
     49  </ul> 
     50</div> 
  • ui/web/lib/Reconnoiter_DB.php

    r9478c46 r362040a  
    6464  function valid_source_variables() { 
    6565    return array('module', 'remote_address', 'target', 'name', 'metric_name'); 
     66  } 
     67  function get_datapoints($searchstring, $offset, $limit) { 
     68    $sth = $this->db->prepare(" 
     69      select * 
     70        from stratcon.mv_loading_dock_check_s c 
     71        join stratcon.metric_name_summary m using (sid) 
     72       where active = true 
     73    order by target, module, name, remote_address 
     74       limit ? 
     75      offset ?"); 
     76    $sth->execute(array($limit, $offset)); 
     77    $a = array(); 
     78    while($row = $sth->fetch()) $a[] = $row; 
     79    return $a; 
    6680  } 
    6781  function get_sources($want, $fixate, $active = true) { 
     
    217231      if($id) { 
    218232        $sth = $this->db->prepare("update prism.saved_graphs 
    219                                       set json=?, title=? where graphid=?"); 
     233                                      set json=?, title=?, 
     234                                          last_update=current_timestamp 
     235                                    where graphid=?"); 
    220236        $sth->execute(array($json,$graph['title'],$id)); 
    221237        if($sth->rowCount() != 1) throw(new Exception('No such graph: '.$id)); 
     
    227243        $id = Reconnoiter_UUID::generate(); 
    228244        $sth = $this->db->prepare("insert into prism.saved_graphs 
    229                                                (graphid, json, title) 
    230                                         values (?, ?, ?)"); 
     245                                               (graphid, json, title, 
     246                                                last_update) 
     247                                        values (?, ?, ?, current_timestamp)"); 
    231248        $sth->execute(array($id, $json, $graph['title'])); 
    232249      }