Repository: amir20/dozzle (language: go)

Issue:
Only the first match of a searched query is highlighted
**Describe the bug**
Only the first match of a searched query is highlighted when it appears multiple times in the logs

**To Reproduce**
1. Go to the logs of one of the containers.
2. Open the search bar and type a query that has multiple matches within the log entries.
3. Observe the highlighted results.
4. You see "only one" match is highlighted

**Expected behavior**
All instances of the searched query should be highlighted in the logs

**Desktop (please complete the following information):**

- OS: macOS
- Docker version: 20.10.10
- Browser & version: Google Chrome - Version 122.0.6261.112 (Official Build) (arm64)
- Version: 6.2.5



Discussion / hints:
I think I'll need more details because "it works for me"™️ 

See screenshot 

![Capture-2024-03-12-082849](https://github.com/amir20/dozzle/assets/260667/250b2efa-410f-4b6c-8732-e3cff6cc13c4)

As you can see, there are multiple "found" strings in each log entry. However only one of them is highlighted in a row.

<img width="1116" alt="Screen Shot 2024-03-13 at 13 17 07" src="https://github.com/amir20/dozzle/assets/8741505/7dcba9de-714d-4a70-b826-b3657fbb2180">

Oh I see. I thought you meant the second word isn't matching. Let me check the code. 

Fix patch:
diff --git a/assets/composable/search.ts b/assets/composable/search.ts
index ce1b9d3c91f7..73cd25aa0022 100644
--- a/assets/composable/search.ts
+++ b/assets/composable/search.ts
@@ -25,7 +25,7 @@ function matchRecord(record: Record<string, any>, regex: RegExp): boolean {
 export function useSearchFilter() {
   const regex = $computed(() => {
     const isSmartCase = debouncedSearchFilter.value === debouncedSearchFilter.value.toLowerCase();
-    return new RegExp(encodeXML(debouncedSearchFilter.value), isSmartCase ? "i" : undefined);
+    return new RegExp(encodeXML(debouncedSearchFilter.value), isSmartCase ? "ig" : "g");
   });
 
   function filteredMessages(messages: Ref<LogEntry<string | JSONObject>[]>) {


Test patch: