Fix: read search query from both query param and form body
This commit is contained in:
@@ -79,14 +79,17 @@ public class ArtistController {
|
|||||||
@DELETE
|
@DELETE
|
||||||
@Path("/{mbid}/from-search")
|
@Path("/{mbid}/from-search")
|
||||||
@Produces(MediaType.TEXT_HTML)
|
@Produces(MediaType.TEXT_HTML)
|
||||||
|
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
|
||||||
public TemplateInstance removeArtistFromSearch(@PathParam("mbid") String mbid,
|
public TemplateInstance removeArtistFromSearch(@PathParam("mbid") String mbid,
|
||||||
@QueryParam("q") @DefaultValue("") String q) {
|
@QueryParam("q") @DefaultValue("") String q,
|
||||||
|
@FormParam("q") @DefaultValue("") String qForm) {
|
||||||
artistService.removeArtist(mbid);
|
artistService.removeArtist(mbid);
|
||||||
|
var query = q != null && !q.isBlank() ? q : qForm;
|
||||||
List<SearchResult> results;
|
List<SearchResult> results;
|
||||||
if (q == null || q.isBlank()) {
|
if (query.isBlank()) {
|
||||||
results = List.of();
|
results = List.of();
|
||||||
} else {
|
} else {
|
||||||
results = artistService.search(q);
|
results = artistService.search(query);
|
||||||
}
|
}
|
||||||
return searchResultsTemplate.data("artists", results);
|
return searchResultsTemplate.data("artists", results);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
{#if artist.alreadyTracked}
|
{#if artist.alreadyTracked}
|
||||||
<button class="btn btn-warning btn-sm"
|
<button class="btn btn-warning btn-sm"
|
||||||
hx-delete="/api/artists/{artist.mbid}/from-search"
|
hx-delete="/api/artists/{artist.mbid}/from-search"
|
||||||
hx-vals='js:{{q: document.getElementById("search-input").value}}'
|
hx-include="#search-input"
|
||||||
hx-target="#search-results"
|
hx-target="#search-results"
|
||||||
hx-swap="innerHTML">✓ Added</button>
|
hx-swap="innerHTML">✓ Added</button>
|
||||||
{#else}
|
{#else}
|
||||||
|
|||||||
Reference in New Issue
Block a user