d3fb11c6244cf6789d9120e66cb77b9e9d63e8de
[collection4.git] / share / collection.js
1 function format_instance(inst)
2 {
3   return ("<li class=\"instance\"><a href=\"" + location.pathname
4       + "?action=show_instance;" + inst.params + "\">" + inst.description
5       + "</a></li>");
6 }
7
8 function format_instance_list(instances)
9 {
10   var ret = "<ul class=\"instance_list\">";
11   var i;
12
13   if (instances.length == 0)
14     return ("");
15
16   for (i = 0; i < instances.length; i++)
17     ret += format_instance (instances[i]);
18   
19   ret += "</ul>";
20
21   return (ret);
22 }
23
24 function format_graph(graph)
25 {
26   return ("<li class=\"graph\">" + graph.title + format_instance_list (graph.instances) + "</li>");
27 }
28
29 function update_search_suggestions ()
30 {
31   var term = $("#search-input").val ();
32   if (term.length < 2)
33   {
34     $("#search-suggest").hide ();
35     return (true);
36   }
37
38   $("#search-suggest").show ();
39   $.getJSON ("collection.fcgi",
40     { "action": "search_json", "q": term},
41     function(data)
42     {
43       var i;
44       $("#search-suggest").html ("");
45       for (i = 0; i < data.length; i++)
46       {
47         var graph = data[i];
48         $("#search-suggest").append (format_graph (graph));
49       }
50     }
51   );
52 } /* update_search_suggestions */
53
54 $(document).ready(function() {
55     /* $("#layout-middle-right").html ("<ul id=\"search-suggest\" class=\"graph_list\"></ul>"); */
56     $("#search-form").append ("<ul id=\"search-suggest\" class=\"graph_list\"></ul>");
57     $("#search-suggest").hide ();
58
59     $("#search-input").blur (function()
60     {
61       window.setTimeout (function ()
62       {
63         $("#search-suggest").hide ();
64       }, 500);
65     });
66
67     $("#search-input").focus (function()
68     {
69       var term = $("#search-input").val ();
70       if (term.length < 2)
71       {
72         $("#search-suggest").hide ();
73       }
74       else
75       {
76         $("#search-suggest").show ();
77       }
78     });
79
80     $("#search-input").keyup (function()
81     {
82       update_search_suggestions ();
83     });
84
85     $(".graph-img").append ("<div class=\"graph-buttons presets\">"
86         + "<div class=\"graph-button\" >H</div>"
87         + "<div class=\"graph-button\" >D</div>"
88         + "<div class=\"graph-button\" >W</div>"
89         + "<div class=\"graph-button\" >M</div>"
90         + "<div class=\"graph-button\" >Y</div>"
91         + "<div class=\"graph-button\" >!</div>"
92         + "</div>"
93         + "<div class=\"graph-buttons navigation\">"
94         + "<div class=\"graph-button\" >←</div>"
95         + "<div class=\"graph-button\" >−</div>"
96         + "<div class=\"graph-button\" >+</div>"
97         + "<div class=\"graph-button\" >→</div>"
98         + "</div>"
99         );
100 });
101
102 /* vim: set sw=2 sts=2 et fdm=marker : */