From c02f7c039aab8285c6431a6d8ea541ed58c9d0d8 Mon Sep 17 00:00:00 2001 From: Hubert Van De Walle Date: Fri, 21 Aug 2020 17:44:43 +0200 Subject: [PATCH] Keep search query on reload --- app/src/main/kotlin/controllers/NoteController.kt | 7 +++---- app/src/main/kotlin/views/NoteView.kt | 3 ++- app/src/main/kotlin/views/components/NoteListHeader.kt | 6 ++++-- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app/src/main/kotlin/controllers/NoteController.kt b/app/src/main/kotlin/controllers/NoteController.kt index 8d9abc0..6b8cf1b 100644 --- a/app/src/main/kotlin/controllers/NoteController.kt +++ b/app/src/main/kotlin/controllers/NoteController.kt @@ -57,10 +57,11 @@ class NoteController( } fun search(request: Request, jwtPayload: JwtPayload): Response { - val terms = request.searchTerms() + val query = request.form("search") ?: "" + val terms = parseSearchTerms(query) val notes = noteService.search(jwtPayload.userId, terms) val deletedCount = noteService.countDeleted(jwtPayload.userId) - return Response(OK).html(view.search(jwtPayload, notes, deletedCount)) + return Response(OK).html(view.search(jwtPayload, notes, query, deletedCount)) } fun note(request: Request, jwtPayload: JwtPayload): Response { @@ -132,6 +133,4 @@ class NoteController( null } } - - private fun Request.searchTerms(): SearchTerms = parseSearchTerms(form("search") ?: "") } diff --git a/app/src/main/kotlin/views/NoteView.kt b/app/src/main/kotlin/views/NoteView.kt index 6e5a6b1..8865293 100644 --- a/app/src/main/kotlin/views/NoteView.kt +++ b/app/src/main/kotlin/views/NoteView.kt @@ -71,10 +71,11 @@ class NoteView(staticFileResolver: StaticFileResolver) : View(staticFileResolver fun search( jwtPayload: JwtPayload, notes: List, + query: String, numberOfDeletedNotes: Int, ) = renderPage("Notes", jwtPayload = jwtPayload) { div("container mx-auto p-4") { - noteListHeader(numberOfDeletedNotes) + noteListHeader(numberOfDeletedNotes, query) noteTable(notes) } } diff --git a/app/src/main/kotlin/views/components/NoteListHeader.kt b/app/src/main/kotlin/views/components/NoteListHeader.kt index 9f7aefc..92be0fb 100644 --- a/app/src/main/kotlin/views/components/NoteListHeader.kt +++ b/app/src/main/kotlin/views/components/NoteListHeader.kt @@ -4,7 +4,7 @@ import kotlinx.html.* import kotlinx.html.ButtonType.submit import kotlinx.html.FormMethod.post -fun DIV.noteListHeader(numberOfDeletedNotes: Int) { +fun DIV.noteListHeader(numberOfDeletedNotes: Int, query: String = "") { div("flex justify-between mb-4") { h1("text-2xl underline") { +"Notes" } span { @@ -23,7 +23,9 @@ fun DIV.noteListHeader(numberOfDeletedNotes: Int) { input( name = "search", classes = "$colors rounded w-3/4 border appearance-none focus:outline-none text-base p-2" - ) + ) { + attributes["value"] = query + } button(type = submit, classes = "btn btn-green w-1/4") { +"search" }