root/ui/web/htdocs/search_simple.inc

Revision c2577bdc16ee3d527745efe64abf0cb906891e3c, 3.4 kB (checked in by Theo Schlossnagle <jesus@omniti.com>, 6 years ago)

pagination of search results, refs #22

  • Property mode set to 100644
Line 
1 <script type="text/javascript">
2 <!--
3 function perform_datapoint_search(string, offset, limit) {
4   $.getJSON('json/datapoint/search',
5             { 'q' : string, 'o' : offset, 'l' : limit },
6             function(r) {
7               var summary = 'Found ' + r.count + ' data point' + (r.count == 1 ? '' : 's' ) + ' found for \'' + htmlentities(r.query) + '\'';
8               if(r.error) summary = 'Error: ' + htmlentities(r.error);
9               $("#searchlist > p.search-summary").html(summary).fadeIn('fast');
10               var c = new Number(r.count);
11               var l = new Number(r.limit);
12               var o = new Number(r.offset);
13               var page = $("#searchlist > p.paginate");
14               page.html('');
15               if(c > l) {
16                 if(o > 0) {
17                   var po = Math.max(o-l, 0);
18                   $('<a/>').html( (po+1) + ' - ' + (po+l) )
19                            .click(function() {
20                              perform_datapoint_search(string,po,r.limit);
21                              return false;
22                            }).appendTo(page);
23                 }
24                 page.append($('<span/>').html((o+1) + '-' + (o+l)).addClass('searchselect'));
25                 if(o + l < c) {
26                   var po = o + l;
27                   $('<a/>').html( (po + 1) + '-' + (po+l) )
28                            .click(function() {
29                              perform_datapoint_search(string,po,r.limit);
30                              return false;
31                            }).appendTo(page);
32                 }
33                 page.slideDown('fast');
34               }
35               else page.slideUp('fast');
36               $("#searchresults > li").remove();
37               for(var i=0; r.results && i<r.results.length; i++) {
38                 var ds = r.results[i];
39                 var a = $('<a href="#"/>');
40                 var li = $('<li/>');
41                 a.html(ds.target + '`' + ds.name + '`' + ds.metric_name);
42                 a.click(
43                   (function(ds_c) {
44                       return function() {
45                         graph_add_datapoint({'sid':ds_c.sid,
46                                              'name':ds_c.target + '`' + ds_c.metric_name,
47                                              'metric_name':ds_c.metric_name,
48                                              'metric_type':ds_c.metric_type
49                                             });
50                         return false;
51                       }
52                    })(ds)
53                 );
54                 if(ds.metric_type == 'text') li.addClass('txt');
55                 $("#searchresults").append(li.append(a));
56               }
57             });
58 }
59 $(document).ready(function(){
60         $("#datapoint-searchform").submit(function() {
61                 perform_datapoint_search($("#searchinput").val(), 0, 25);
62                 return false;
63         });
64 });
65 -->
66 </script>
67 <h4 id="searchterms"></h4>
68 <div id="datapoint-searchform-container" style="margin:.5em 0 2em 0;padding-bottom:1em;border-bottom: solid 1px #e6e4e5;">
69 <form id="datapoint-searchform">
70   <fieldset>
71   <legend style="display:none;">Search</legend>
72   <label for="keyword" style="display:none;">Keyword</label> <input type="text" id="searchinput" style="width:220px;" /> <input type="submit" value="Search" />
73   </fieldset>
74 </form>
75 </div>
76 <div id="searchlist">
77   <p class="search-summary"/>
78   <p class="paginate"/>
79   <ul id="searchresults">
80   </ul>
81 </div>
Note: See TracBrowser for help on using the browser.