\r
private PreparedStatement createStatement(Connection connection, String criteria, String orderBy, boolean orderAscending, List<String> typeIDs)\r
throws SQLException {\r
- StringBuilder typeCriteria = new StringBuilder();\r
- if (typeIDs != null) {\r
- typeCriteria.append("(");\r
- for (int i = 0; i < typeIDs.size(); i++) {\r
- typeCriteria.append(typeIDs.get(i));\r
- if (i < typeIDs.size() - 1)\r
- typeCriteria.append(",");\r
- }\r
- typeCriteria.append(")");\r
- }\r
+ StringBuilder typeCriteria = getTypeCriterias(typeIDs);\r
+\r
+ String criteriasPattern = getCriteriasRegexPattern(criteria);\r
\r
StringBuilder sql = new StringBuilder();\r
sql.append("SELECT ");\r
sql.append("m.archived,");\r
sql.append("m.length,");\r
sql.append("m.itemtypeid mediaitemtypeid,");\r
- sql.append("HIGHLIGHT(md.description, '<b>', '</b>', 'valami') description,");\r
+ sql.append(String.format("HIGHLIGHT(md.description, '<span class=''rhl''>', '</span>', '%s') description,", criteriasPattern));\r
//sql.append("'blabla' description,");\r
sql.append("it.name mediaitemtypename,");\r
sql.append("m.houseid mediahouseid,");\r
return st;\r
}\r
\r
- private String[] extractCriteriaWords(String criteria) {\r
+ private String getCriteriasRegexPattern(String criteria) {\r
String[] criterias = criteria.replace("*", "").replace("+", " ").split(" ");\r
if (criteria.startsWith("\"") && criteria.endsWith("\""))\r
criterias = new String[] { criteria.replace("\"", "") };\r
- return criterias;\r
+\r
+ StringBuilder sb = new StringBuilder();\r
+ for (String word : criterias) {\r
+ if (sb.length() > 0)\r
+ sb.append("|");\r
+ sb.append(word);\r
+ }\r
+ return sb.toString();\r
+ }\r
+\r
+ private StringBuilder getTypeCriterias(List<String> typeIDs) {\r
+ StringBuilder typeCriteria = new StringBuilder();\r
+ if (typeIDs != null) {\r
+ typeCriteria.append("(");\r
+ for (int i = 0; i < typeIDs.size(); i++) {\r
+ typeCriteria.append(typeIDs.get(i));\r
+ if (i < typeIDs.size() - 1)\r
+ typeCriteria.append(",");\r
+ }\r
+ typeCriteria.append(")");\r
+ }\r
+ return typeCriteria;\r
}\r
\r
private List<String> getTypeIDs(List<String> searchFilters) {\r
\r
int maxRecords = toResult - fromResult;\r
\r
- String[] criterias = extractCriteriaWords(criteria);\r
List<ArchivedMedia> resultList = null;\r
logger.info("Processing query result, maxRecords {}", maxRecords);\r
while (rs.next() && maxRecords > 0) {\r
}\r
}\r
};\r
-\r
- searchHistory = new ListModelList<>(SessionUtil.getUserSearchHistory());\r
}\r
\r
private void addTypeFilter(TypeFilter typeFilter) {\r
Selectors.wireEventListeners(view, this);\r
configureSearchResultGrid();\r
showExternalMediaID();\r
+\r
+ searchHistory = new ListModelList<>(SessionUtil.getUserSearchHistory());\r
setSettingsPageSize(itemsGrid.getPageSize());\r
+ //TODO rendezés\r
}\r
\r
@Command\r
@NotifyChange({ "searchResult", "selectedObject", "hasTSMMediaFile", "hasLowresMediaFile", "lowresMediaFilePath" })\r
public void doSearch() {\r
try {\r
+\r
+ searchResult = null;\r
+ itemsGrid.setActivePage(0);\r
searchValue = search.getText();\r
if (StringUtils.isBlank(searchValue) || searchValue.length() < 3)\r
throw new Exception("Legalább 3 karakter megadása kötelező!");\r
int pageSize = Integer.parseInt(source.getValue());\r
setSettingsPageSize(pageSize);\r
itemsGrid.setPageSize(pageSize);\r
+ itemsGrid.setActivePage(0);\r
}\r
\r
public void setRowsExpanded(boolean rowsExpanded) {\r