diff --git a/backend/init.sql b/backend/init.sql index 9c2c10a5622d178d0375490923aa1fb962d342fa..f250d2852b1c5307415c8d4c440745ec016c79f9 100644 --- a/backend/init.sql +++ b/backend/init.sql @@ -8500,7 +8500,6 @@ Aramean tribe COPY users (email, is_admin, name, password, permissions) FROM stdin; katerina.saskova@gmail.com 1 KateĹ™ina Ĺ ašková $2a$10$nTJORZk6Ik.d19SlAY1UAuPPVgIwOufmWnIMx07CjqY5VKVlCpxsu 7 -normal 0 normal $2a$10$LDUuvCXLuZ7qbv9DffOGpeCPQsLUywPriDLjBpRABs.1sOLDp1FMW 1 admin@admin.com 1 SuperAdmin $2a$10$WN7iAmrlUZiHMShI85.ScOyBbGXMMondhh.7x/WopeQ8YIMVyA8O2 7 \. diff --git a/backend/src/main/java/cz/zcu/kiv/backendapi/catalog/CatalogItemServiceImpl.java b/backend/src/main/java/cz/zcu/kiv/backendapi/catalog/CatalogItemServiceImpl.java index af94ba9159de41d59f83cf2dd26d2f40d5fafa48..059457a08a225beb8b565cee3284c0ce6532524e 100644 --- a/backend/src/main/java/cz/zcu/kiv/backendapi/catalog/CatalogItemServiceImpl.java +++ b/backend/src/main/java/cz/zcu/kiv/backendapi/catalog/CatalogItemServiceImpl.java @@ -149,6 +149,7 @@ public class CatalogItemServiceImpl implements ICatalogItemService { } String[] tokens = text.split("((?<=\\s)|(?=\\s+))"); + String lastNameAdded = null; for (String token : tokens) { if (StringUtils.isBlank(token) || token.matches(START_PUNCTUATION_REGEX)) { highlightedText.append(token); @@ -181,13 +182,16 @@ public class CatalogItemServiceImpl implements ICatalogItemService { textToFind = "<b>" + textToFind + "</b>"; } else { if (nameToCatalogItemMap.containsKey(textToFind)) { - List<CatalogItem> foundItems = nameToCatalogItemMap.get(textToFind); - if (foundItems.stream().anyMatch(c -> c.getLatitude() != null && c.getLongitude() != null)) { - textToFind = "<span style='color:green'>" + textToFind + "</span>"; - } else { - textToFind = "<span style='color:red'>" + textToFind + "</span>"; + if (lastNameAdded == null || !lastNameAdded.equals(textToFind)) { + lastNameAdded = textToFind; + List<CatalogItem> foundItems = nameToCatalogItemMap.get(textToFind); + if (foundItems.stream().anyMatch(c -> c.getLatitude() != null && c.getLongitude() != null)) { + textToFind = "<span style='color:green'>" + textToFind + "</span>"; + } else { + textToFind = "<span style='color:red'>" + textToFind + "</span>"; + } + foundCatalogItems.add(foundItems.stream().map(this::convertEntityToDto).collect(Collectors.toList())); } - foundCatalogItems.add(foundItems.stream().map(this::convertEntityToDto).collect(Collectors.toList())); } } highlightedText.append(prefix).append(textToFind).append(suffix); diff --git a/backend/src/test/java/cz/zcu/kiv/backendapi/catalog/CatalogItemServiceImplTest.java b/backend/src/test/java/cz/zcu/kiv/backendapi/catalog/CatalogItemServiceImplTest.java index 25e03004e4e3e18f2d0e90b99d25baca23986900..661a9b607817963997b6a7ea168790710b3f8674 100644 --- a/backend/src/test/java/cz/zcu/kiv/backendapi/catalog/CatalogItemServiceImplTest.java +++ b/backend/src/test/java/cz/zcu/kiv/backendapi/catalog/CatalogItemServiceImplTest.java @@ -365,10 +365,10 @@ class CatalogItemServiceImplTest { @Test void testSearchedTest() { // given - String text = "The city of Azbar was found in first century near the ocean. " + + String text = "The city of Azbar was found in first century near the ocean. Azbar " + "âŚU-re-me-re⌉, another town , was found " + "in 1956.\nThe location of Huga and Duga is not known, but it was probably near Puga."; - String highlightedText = "The <b>city</b> of <span style='color:green'>Azbar</span> was found in first century near the <b>ocean</b>. " + + String highlightedText = "The <b>city</b> of <span style='color:green'>Azbar</span> was found in first century near the <b>ocean</b>. Azbar " + "âŚ<span style='color:green'>U-re-me-re</span>⌉, another town , was found " + "in 1956.\nThe location of <span style='color:red'>Huga</span> and <span style='color:red'>Duga</span> is not known, but it was probably near Puga.";