made search a POST to /search be a redirect to a GET /search/<search_term> so that it works with back/forward buttons in the browser
This commit is contained in:
26
files.py
26
files.py
@@ -238,8 +238,8 @@ def GetEntriesInFolderView( OPT, prefix ):
|
||||
################################################################################
|
||||
def GetEntries( OPT ):
|
||||
entries=[]
|
||||
if 'search_term' in request.form:
|
||||
search_term=request.form['search_term']
|
||||
if OPT.path_type == 'Search':
|
||||
search_term=OPT.search_term
|
||||
if 'AI:' in search_term:
|
||||
search_term = search_term.replace('AI:','')
|
||||
all_entries = Entry.query.join(File).join(FaceFileLink).join(Face).join(FaceRefimgLink).join(Refimg).join(PersonRefimgLink).join(Person).filter(Person.tag.ilike(f"%{search_term}%")).order_by(File.year.desc(),File.month.desc(),File.day.desc(),Entry.name).offset(OPT.offset).limit(OPT.how_many).all()
|
||||
@@ -336,20 +336,30 @@ def files_rbp():
|
||||
move_paths = MovePathDetails()
|
||||
return render_template("files.html", page_title=f"View Files ({OPT.path_type} Path)", entry_data=entries, OPT=OPT, move_paths=move_paths )
|
||||
|
||||
|
||||
################################################################################
|
||||
# /search -> show thumbnail view of files from import_path(s)
|
||||
# search -> GET version -> has search_term in the URL and is therefore able to
|
||||
# be used even if the user hits the front/back buttons in the browser.
|
||||
# func shows thumbnails of matching files.
|
||||
################################################################################
|
||||
@app.route("/search", methods=["GET","POST"])
|
||||
@app.route("/search/<search_term>", methods=["GET"])
|
||||
@login_required
|
||||
def search():
|
||||
def search(search_term):
|
||||
OPT=Options( request )
|
||||
OPT.search_term = search_term
|
||||
# always show flat results for search to start with
|
||||
OPT.folders=False
|
||||
OPT.paths=None
|
||||
entries=GetEntries( OPT )
|
||||
move_paths = MovePathDetails()
|
||||
return render_template("files.html", page_title='View Files', search_term=request.form['search_term'], entry_data=entries, OPT=OPT, move_paths=move_paths )
|
||||
return render_template("files.html", page_title='View Files', search_term=search_term, entry_data=entries, OPT=OPT, move_paths=move_paths )
|
||||
|
||||
################################################################################
|
||||
# /search -> POST version -> only used on form submit when you hit return. This
|
||||
# form just redirects to a GET of /search/<search_term> to trip route above
|
||||
################################################################################
|
||||
@app.route("/search", methods=["POST"])
|
||||
@login_required
|
||||
def search_post():
|
||||
return redirect( "/search/"+request.form['search_term'] )
|
||||
|
||||
################################################################################
|
||||
# /files/scannow -> allows us to force a check for new files
|
||||
|
||||
Reference in New Issue
Block a user