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 @@
- - -
@@ -304,7 +290,7 @@ #options { padding: 0; display: grid; - grid-template-columns: 1fr minmax(70px, 0.5fr); + grid-template-columns: 1fr; } #options > * { padding: 15px; @@ -315,9 +301,6 @@ .option:hover { box-shadow: 0 0 11px #aaa; } - #options > select { - margin-right: 10px; - } #options > button { margin-right: 10px; }