diff --git a/src/khoj/interface/web/chat.html b/src/khoj/interface/web/chat.html
index 1b9f5cb1..486d6fcd 100644
--- a/src/khoj/interface/web/chat.html
+++ b/src/khoj/interface/web/chat.html
@@ -51,6 +51,7 @@
function chat() {
// Extract required fields for search from form
let query = document.getElementById("chat-input").value.trim();
+ let results_count = localStorage.getItem("khojResultsCount");
console.log(`Query: ${query}`);
// Short circuit on empty query
@@ -62,7 +63,7 @@
document.getElementById("chat-input").value = "";
// Generate backend API URL to execute query
- let url = `/api/chat?q=${encodeURIComponent(query)}&client=web`;
+ let url = `/api/chat?q=${encodeURIComponent(query)}&n=${results_count}&client=web`;
let chat_body = document.getElementById("chat-body");
let new_response = document.createElement("div");
diff --git a/src/khoj/interface/web/config.html b/src/khoj/interface/web/config.html
index 2822efff..69a2c4f4 100644
--- a/src/khoj/interface/web/config.html
+++ b/src/khoj/interface/web/config.html
@@ -169,6 +169,10 @@
+
+
+
+
@@ -276,5 +280,25 @@
reinitialize.innerHTML = "🔄 Reinitialize";
});
});
+
+ // Setup the results count slider
+ const resultsCountSlider = document.getElementById('results-count-slider');
+ const resultsCountValue = document.getElementById('results-count-value');
+
+ // Set the initial value of the slider
+ resultsCountValue.textContent = resultsCountSlider.value;
+
+ // Store the slider value in localStorage when it changes
+ resultsCountSlider.addEventListener('input', () => {
+ resultsCountValue.textContent = resultsCountSlider.value;
+ localStorage.setItem('khojResultsCount', resultsCountSlider.value);
+ });
+
+ // Get the slider value from localStorage on page load
+ const storedResultsCount = localStorage.getItem('khojResultsCount');
+ if (storedResultsCount) {
+ resultsCountSlider.value = storedResultsCount;
+ resultsCountValue.textContent = storedResultsCount;
+ }
{% endblock %}
diff --git a/src/khoj/interface/web/index.html b/src/khoj/interface/web/index.html
index 659435b0..89255d38 100644
--- a/src/khoj/interface/web/index.html
+++ b/src/khoj/interface/web/index.html
@@ -112,8 +112,8 @@
// Extract required fields for search from form
query = document.getElementById("query").value.trim();
type = document.getElementById("type").value;
- results_count = document.getElementById("results-count").value || 6;
- console.log(`Query: ${query}, Type: ${type}`);
+ results_count = localStorage.getItem("khojResultsCount");
+ console.log(`Query: ${query}, Type: ${type}, Results Count: ${results_count}`);
// Short circuit on empty query
if (query.length === 0)
@@ -191,12 +191,6 @@
window.history.pushState({}, "", url.href);
}
- function setCountFieldInUrl(results_count) {
- var url = new URL(window.location.href);
- url.searchParams.set("n", results_count.value);
- window.history.pushState({}, "", url.href);
- }
-
function setQueryFieldInUrl(query) {
var url = new URL(window.location.href);
url.searchParams.set("q", query);
@@ -207,11 +201,6 @@
// Dynamically populate type dropdown based on enabled content types and type passed as URL query parameter
populate_type_dropdown();
- // Set results count field with value passed in URL query parameters, if any.
- var results_count = new URLSearchParams(window.location.search).get("n");
- if (results_count)
- document.getElementById("results-count").value = results_count;
-
// Fill query field with value passed in URL query parameters, if any.
var query_via_url = new URLSearchParams(window.location.search).get("q");
if (query_via_url)
@@ -256,9 +245,6 @@