select folder during search

This commit is contained in:
lelo 2025-05-06 20:24:23 +02:00
parent eccfce1a0c
commit 88c4eecb3b
2 changed files with 21 additions and 2 deletions

View File

@ -16,12 +16,18 @@ with open("app_config.json", 'r') as file:
def searchcommand(): def searchcommand():
query = request.form.get("query", "").strip() query = request.form.get("query", "").strip()
category = request.form.get("category", "").strip() category = request.form.get("category", "").strip()
searchfolder = request.form.get("folder", "").strip()
include_transcript = request.form.get("includeTranscript") in ["true", "on"] include_transcript = request.form.get("includeTranscript") in ["true", "on"]
words = [w for w in query.split() if w] words = [w for w in query.split() if w]
cursor = search_db.cursor() cursor = search_db.cursor()
allowed_basefolders = list(session['folders'].keys()) allowed_basefolders = list(session['folders'].keys())
print("Allowed base folders:", allowed_basefolders)
# if the search folder is allowed to be searched, select it
# if not just allowed_basefolders rules apply
if searchfolder != "" and searchfolder in allowed_basefolders:
allowed_basefolders = [searchfolder]
if not include_transcript: if not include_transcript:
conditions = [] conditions = []
@ -93,10 +99,12 @@ def searchcommand():
return jsonify(results=results) return jsonify(results=results)
def search(): def search():
allowed_basefolders = list(session['folders'].keys())
title_short = app_config.get('TITLE_SHORT', 'Default Title') title_short = app_config.get('TITLE_SHORT', 'Default Title')
title_long = app_config.get('TITLE_LONG' , 'Default Title') title_long = app_config.get('TITLE_LONG' , 'Default Title')
return render_template("search.html", return render_template("search.html",
title_short=title_short, title_short=title_short,
title_long=title_long title_long=title_long,
search_folders=allowed_basefolders
) )

View File

@ -88,6 +88,16 @@
</div> </div>
</div> </div>
</div> </div>
<!-- dropdown search folder-->
<div class="mb-3">
<label for="folder" class="form-label">In Ordner suchen:</label>
<select id="folder" name="folder" class="form-select">
<option value="">Alle</option>
{% for folder in search_folders %}
<option value="{{ folder }}">{{ folder }}</option>
{% endfor %}
</select>
</div>
<!-- Checkbox for transcript search --> <!-- Checkbox for transcript search -->
<div class="form-check mb-3"> <div class="form-check mb-3">
<input type="checkbox" class="form-check-input" id="includeTranscript" name="includeTranscript"> <input type="checkbox" class="form-check-input" id="includeTranscript" name="includeTranscript">
@ -198,6 +208,7 @@ document.addEventListener('DOMContentLoaded', function() {
const formData = new FormData(); const formData = new FormData();
formData.append('query', query); formData.append('query', query);
formData.append('category', category); formData.append('category', category);
formData.append('folder', document.getElementById('folder').value);
formData.append('includeTranscript', includeTranscript); formData.append('includeTranscript', includeTranscript);
fetch('/searchcommand', { fetch('/searchcommand', {