summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2012-09-24 20:15:54 -0500
committerDan McGee <dan@archlinux.org>2012-09-24 20:25:45 -0500
commitd69e30cbf2cd76bdf87de138db030209ca43b2e1 (patch)
tree88c71333f2880eadaf78e5ce349e1b04db2bbfdc
parentddaab159ad5e8735fae7f8d29301181009478d1b (diff)
downloadarchweb-d69e30cbf2cd76bdf87de138db030209ca43b2e1.tar.gz
archweb-d69e30cbf2cd76bdf87de138db030209ca43b2e1.zip
Add typeahead dropdown to front page packages search
This uses the existing OpenSearch query endpoint to perform the search and displays the results accordingly. Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--sitestatic/archweb.css25
-rw-r--r--templates/public/index.html18
2 files changed, 43 insertions, 0 deletions
diff --git a/sitestatic/archweb.css b/sitestatic/archweb.css
index 70caf8fc..905a3ecb 100644
--- a/sitestatic/archweb.css
+++ b/sitestatic/archweb.css
@@ -486,6 +486,31 @@ h3 span.arrow {
border: 1px solid #09c;
}
+ .pkgsearch-typeahead {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: 1000;
+ display: none;
+ float: left;
+ padding: 0.15em 0.1em;
+ margin: 0;
+ min-width: 10em;
+ font-size: 0.812em;
+ text-align: left;
+ list-style: none;
+ background-color: #f6f9fc;
+ border: 1px solid #09c;
+ }
+
+ .pkgsearch-typeahead li a {
+ color: #000;
+ }
+
+ .pkgsearch-typeahead li.active a {
+ color: #07b;
+ }
+
/* home: recent pkg updates */
#pkg-updates h3 {
margin: 0 0 0.3em;
diff --git a/templates/public/index.html b/templates/public/index.html
index 60ae442d..4af5995e 100644
--- a/templates/public/index.html
+++ b/templates/public/index.html
@@ -215,4 +215,22 @@
</div>
{% endcache %}
+
+{% load cdn %}{% jquery %}
+<script type="text/javascript" src="{% static "bootstrap-typeahead.js" %}"></script>
+<script type="text/javascript">
+$(document).ready(function() {
+ $('#pkgsearch-field').typeahead({
+ source: function(query, callback) {
+ $.getJSON('/opensearch/packages/suggest', {q: query}, function(data) {
+ callback(data[1]);
+ });
+ },
+ matcher: function(item) { return true; },
+ sorter: function(items) { return items; },
+ menu: '<ul class="pkgsearch-typeahead"></ul>',
+ items: 10
+ }).attr('autocomplete', 'off');
+});
+</script>
{% endblock %}