From 75814a86ebc8974ae574d379f8ec7e7d9c693811 Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Mon, 5 Oct 2026 14:37:25 +0200 Subject: [PATCH] altered tag search in order to preserve case of input re-set focus on inpt when selection option on autocomplete field Signed-off-by: Stephan Richter --- frontend/src/Components/Autocomplete.svelte | 5 +++-- .../srsoftware/umbrella/tags/TagModule.java | 19 ++++++++++++++----- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/frontend/src/Components/Autocomplete.svelte b/frontend/src/Components/Autocomplete.svelte index 4b908650..3f6b2427 100644 --- a/frontend/src/Components/Autocomplete.svelte +++ b/frontend/src/Components/Autocomplete.svelte @@ -18,7 +18,7 @@ let selected = $state(null); let candidates = $state([]); let timer = null; - let list_elem; + let input, list_elem; async function dummyGetCandidates(text){ console.warn(`getCandidates(${text}) not overridden!`); @@ -117,6 +117,7 @@ function select(index){ candidate = candidates[index]; disableDropdown(); + input.focus(); onSelect(candidate); } @@ -149,7 +150,7 @@ - + {#if candidates && candidates.length > 0}
    {#each candidates as candidate,i} diff --git a/tags/src/main/java/de/srsoftware/umbrella/tags/TagModule.java b/tags/src/main/java/de/srsoftware/umbrella/tags/TagModule.java index 7e6218f4..c06c5a20 100644 --- a/tags/src/main/java/de/srsoftware/umbrella/tags/TagModule.java +++ b/tags/src/main/java/de/srsoftware/umbrella/tags/TagModule.java @@ -40,6 +40,11 @@ public class TagModule extends BaseHandler implements TagService { tagDb.deleteEntity(module,entityId); } + @Override + public void deleteEntity(String module, long entityId, long userId) { + tagDb.deleteEntity(module,entityId,userId); + } + @Override public boolean doDelete(Path path, HttpExchange ex) throws IOException { addCors(ex); @@ -137,9 +142,11 @@ public class TagModule extends BaseHandler implements TagService { return sendContent(ex,tuples.map(t -> Map.of(TAG,t.a,COUNT,t.b))); } - @Override - public void deleteEntity(String module, long entityId, long userId) { - tagDb.deleteEntity(module,entityId,userId); + private String modifyCase(String entry, String key, String lKey) { + if (entry.toLowerCase().startsWith(lKey)) return key + entry.substring(key.length()); + var pos = entry.toLowerCase().indexOf(" "+lKey); + if (pos >= 0) entry = entry.substring(0,pos+1)+key+entry.substring(pos+key.length()+1); + return entry; } @Override @@ -158,8 +165,10 @@ public class TagModule extends BaseHandler implements TagService { return tagDb.search(key, user); } - private boolean searchTags(HttpExchange ex, String head, UmbrellaUser user) throws IOException { - return sendContent(ex, search(head, user)); + private boolean searchTags(HttpExchange ex, String key, UmbrellaUser user) throws IOException { + var tags = search(key, user); + var lKey = key.toLowerCase(); + return sendContent(ex, tags.stream().map(entry -> modifyCase(entry, key, lKey))); } @Override