From b97933d14782612788726e04a71e529ff8c1be84 Mon Sep 17 00:00:00 2001
From: Ben Busby <33362396+benbusby@users.noreply.github.com>
Date: Sun, 24 May 2020 13:27:36 -0600
Subject: [PATCH] Modified opensearch template and autocomplete route
- Changed opensearch suggestions to use POST request
- Added generic data fallback for autocomplete requests
- Moved auto form submit to only occur when clicking on specific result
---
app/routes.py | 6 ++++--
app/static/js/autocomplete.js | 2 +-
app/templates/opensearch.xml | 4 +++-
3 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/app/routes.py b/app/routes.py
index bc6e01c..7a4f4d2 100644
--- a/app/routes.py
+++ b/app/routes.py
@@ -93,8 +93,10 @@ def autocomplete():
request_params = request.args if request.method == 'GET' else request.form
q = request_params.get('q')
- if not q:
- return jsonify({'results': []})
+ if not q and not request.data:
+ return jsonify({'?': []})
+ elif request.data:
+ q = urlparse.unquote_plus(request.data.decode('utf-8').replace('q=', ''))
return jsonify([q, g.user_request.autocomplete(q)])
diff --git a/app/static/js/autocomplete.js b/app/static/js/autocomplete.js
index c5e2774..1a55649 100644
--- a/app/static/js/autocomplete.js
+++ b/app/static/js/autocomplete.js
@@ -42,6 +42,7 @@ const autocomplete = (searchInput, autocompleteResults) => {
autocompleteItem.addEventListener("click", function () {
searchInput.value = this.getElementsByTagName("input")[0].value;
closeAllLists();
+ document.getElementById("search-form").submit();
});
autocompleteList.appendChild(autocompleteItem);
}
@@ -93,6 +94,5 @@ const autocomplete = (searchInput, autocompleteResults) => {
// Close lists and search when user selects a suggestion
document.addEventListener("click", function (e) {
closeAllLists(e.target);
- document.getElementById("search-form").submit();
});
};
\ No newline at end of file
diff --git a/app/templates/opensearch.xml b/app/templates/opensearch.xml
index 5f2e15b..b737be7 100644
--- a/app/templates/opensearch.xml
+++ b/app/templates/opensearch.xml
@@ -7,7 +7,9 @@
-
+
+
+
{{ main_url }}/search