\r
.type-inlist { width:80px; border-left:1px solid #008AC8; border-bottom:1px solid #008AC8; padding:4px; }\r
\r
- .buttonBold{ font-weight:bold; width:200px;}\r
- .menuButtons{ display: flex; justify-content: space-between; padding:5px 10px 5px 10px; }\r
- .menuButtons >button{ width:200px; }\r
- .z-messagebox-window{ top:40% !important; width:30% !important; }\r
+ .buttonBold{ font-weight:bold; width:200px;} .menuButtons{ display: flex; justify-content: space-between; padding:5px 10px 5px 10px; } .menuButtons\r
+ >button{ width:200px; } .z-messagebox-window{ top:40% !important; width:30% !important; }\r
</style>\r
<div id="scdiv" width="100%" height="100%" apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('user.jobengine.zk.model.SearchModel')">\r
<timer id="timer" delay="1" repeats="false" onTimer="@command('uiTick')" />\r
</vlayout>\r
</hbox>\r
</vlayout>\r
- <hbox width="100%" pack="center" align="center">\r
- <textbox hflex="1" focus="true" instant="true" value="@bind(vm.searchValue)"\r
- tooltiptext="Gépelje be a keresendő kifejezést és nyomja meg az Enter-t." onOK="@command('doSearch')" />\r
+ <hbox width="100%" pack="center" align="left">\r
+ <combobox id="search" hflex="1" focus="true" model="@load(vm.searchHistory)" autodrop="true"\r
+ tooltiptext="Gépelje be a keresendő kifejezést és nyomja meg az Enter-t." onSelect="@command('doSearch')" onOK="@command('doSearch')">\r
+ <template name="model">\r
+ <comboitem label="${each}" />\r
+ </template>\r
+ </combobox>\r
<button hflex="min" image="/img/ic_search_black_18dp.png" onClick="@command('doSearch')" style="width:40px" />\r
</hbox>\r
</groupbox>\r
</vlayout>\r
</popup>\r
<groupbox vflex="true" closable="false">\r
- <!-- \r
- onAfterRender='Events.sendEvent("onAfterDataLoading", self, null);'\r
- onAfterDataLoading="@command('afterDataLoading')"\r
-\r
--->\r
<grid id="itemsGrid" sizedByContent="false" span="true" vflex="true" hflex="true" mold="paging" autopaging="false"\r
- model="@load(vm.searchResult)" emptyMessage="Nincs találat!" \r
- pageSize="50"\r
- onAfterRender="@command('onAfterRenderGrid')"\r
+ model="@load(vm.searchResult)" emptyMessage="Nincs találat!" pageSize="50" onAfterRender="@command('onAfterRenderGrid')"\r
style="border: none; background: white !important;" oddRowSclass="listbox-odd-style">\r
<columns>\r
<column hflex="min">\r
<label style="font:20px Century Gothic; color:#008AC8;" value="@load(each.item.title)" />\r
</hlayout>\r
<html sclass="relevant">\r
-\r
-\r
-\r
- \r
<![CDATA[ <div style='width: 90%'>${each.relevant}</div> ]]>\r
- \r
- \r
- \r
- \r
</html>\r
</div>\r
</hlayout>\r
<center border="none">\r
\r
<groupbox closable="false" mold="3d" width="100%" height="100%">\r
-<!-- <div> -->\r
-<!-- <button label="Visszaugrás a kijelölt videóhoz" onClick="@command('jumpToPosition')" autodisable="self" disabled="@load(vm.selectedObject eq null)" -->\r
-<!-- width="min" id="backToVideoButton"/> -->\r
-<!-- </div> -->\r
<div width="100%" sclass="menuButtons">\r
- <toolbar vflex="min" width="100%" style="font-size:8px">\r
- <toolbarbutton image="/img/ic_compare_arrows_black_18dp.png" autodisable="self" onClick="@command('showInResults')" \r
- disabled="@load(vm.selectedObject eq null)"\r
- label="Szinkronizálás" hflex="min"/>\r
- <toolbarbutton image="/img/ic_shopping_cart_black_18dp.png" autodisable="self" onClick="@command('downloadMedia')" \r
- disabled="@load(not vm.hasTSMMediaFile)" hflex="min"\r
- label="Visszatöltés" />\r
- <toolbarbutton image="/img/baseline_share_black_18dp.png" autodisable="self" onClick="@command('copyMediaIdToClipboard')"\r
- disabled="@load(not sessionScope.userPrincipal.editor or sessionScope.userPrincipal.anonymous or vm.selectedObject eq null)"\r
- label="Megosztás" hflex="min"/>\r
- \r
- <toolbarbutton image="/img/baseline_edit_black_18dp.png" autodisable="self" onClick="@command('openMetaDataDialog')"\r
- disabled="@load(not sessionScope.userPrincipal.editor or sessionScope.userPrincipal.anonymous or vm.selectedObject eq null)"\r
- label="Szerkesztés" hflex="min"/>\r
- </toolbar>\r
- \r
- <!-- <button label="Kosárba" onClick="@command('downloadMedia')" autodisable="self" disabled="@load(not vm.hasTSMMediaFile)"\r
- sclass="buttonBold" />\r
- <button id="copyMediaIdButton" label="Email kiküldése" onClick="@command('copyMediaIdToClipboard')" autodisable="self"\r
- disabled="@load(not sessionScope.userPrincipal.editor or sessionScope.userPrincipal.anonymous or vm.selectedObject eq null)" />\r
- <button id="metadataButton" label="Szerkesztés" onClick="@command('openMetaDataDialog')" autodisable="self"\r
- disabled="@load(not sessionScope.userPrincipal.editor or sessionScope.userPrincipal.anonymous or vm.selectedObject eq null)" />-->\r
+ <toolbar vflex="min" width="100%" style="font-size:8px">\r
+ <toolbarbutton image="/img/ic_compare_arrows_black_18dp.png" autodisable="self" onClick="@command('showInResults')"\r
+ disabled="@load(vm.selectedObject eq null)" label="Szinkronizálás" hflex="min" />\r
+ <toolbarbutton image="/img/ic_shopping_cart_black_18dp.png" autodisable="self" onClick="@command('downloadMedia')"\r
+ disabled="@load(not vm.hasTSMMediaFile)" hflex="min" label="Visszatöltés" />\r
+ <toolbarbutton image="/img/baseline_share_black_18dp.png" autodisable="self" onClick="@command('copyMediaIdToClipboard')"\r
+ disabled="@load(not sessionScope.userPrincipal.editor or sessionScope.userPrincipal.anonymous or vm.selectedObject eq null)" label="Megosztás"\r
+ hflex="min" />\r
+ <toolbarbutton image="/img/baseline_edit_black_18dp.png" autodisable="self" onClick="@command('openMetaDataDialog')"\r
+ disabled="@load(not sessionScope.userPrincipal.editor or sessionScope.userPrincipal.anonymous or vm.selectedObject eq null)" label="Szerkesztés"\r
+ hflex="min" />\r
+ </toolbar>\r
</div>\r
\r
<div width="100%" height="90%" style="padding: 4px; overflow:auto; background-color: white">\r
import org.zkoss.zul.Button;\r
import org.zkoss.zul.Checkbox;\r
import org.zkoss.zul.Column;\r
+import org.zkoss.zul.Combobox;\r
import org.zkoss.zul.Detail;\r
import org.zkoss.zul.Grid;\r
import org.zkoss.zul.Hlayout;\r
+import org.zkoss.zul.ListModelList;\r
import org.zkoss.zul.Messagebox;\r
import org.zkoss.zul.Row;\r
import org.zkoss.zul.Timer;\r
Grid itemsGrid;\r
@Wire\r
Button backToVideoButton;\r
+ @Wire\r
+ Combobox search;\r
+\r
private String orderBy;\r
private boolean orderAscending;\r
\r
private volatile boolean preventAfterRender;\r
private Row lastSelectedRow;\r
private int positionToScroll;\r
+ private ListModelList<String> searchHistory;\r
\r
public SearchModel() {\r
typeFilters = new LinkedHashMap<>();\r
}\r
}\r
};\r
+\r
+ searchHistory = new ListModelList<>(SessionUtil.getUserSearchHistory());\r
}\r
\r
private void addTypeFilter(TypeFilter typeFilter) {\r
}\r
\r
@Command\r
- @NotifyChange({ "searchResult", "selectedObject", "hasLowresMediaFile", "lowresMediaFilePath" })\r
+ @NotifyChange({ "searchResult", "selectedObject", "hasTSMMediaFile", "hasLowresMediaFile", "lowresMediaFilePath" })\r
public void doSearch() {\r
try {\r
- this.selectedObject = null;\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
\r
List<String> searchFilters = getSelectedFilters();\r
searchResult = new CachedListModel(searchValue, searchFilters, orderBy, orderAscending);\r
+ setSelectedObject(null);\r
+\r
+ if (!searchHistory.contains(searchValue)) {\r
+ searchHistory.add(0, searchValue);\r
+ SessionUtil.putUserSearchHistory(searchHistory);\r
+ }\r
+\r
} catch (Exception e) {\r
Messagebox.show(e.getMessage(), "Hiba", Messagebox.OK, Messagebox.ERROR);\r
logger.catching(e);\r
return result;\r
}\r
\r
- public CachedListModel getSearchResult() {\r
- return searchResult;\r
+ public ListModelList<String> getSearchHistory() {\r
+ return searchHistory;\r
}\r
\r
- public String getSearchValue() {\r
- return searchValue;\r
+ public CachedListModel getSearchResult() {\r
+ return searchResult;\r
}\r
\r
private List<String> getSelectedFilters() {\r
this.rowsExpanded = rowsExpanded;\r
}\r
\r
- public void setSearchValue(String searchValue) {\r
- this.searchValue = searchValue;\r
+ public void setSearchHistory(ListModelList<String> searchHistory) {\r
+ this.searchHistory = searchHistory;\r
}\r
\r
@NotifyChange({ "selectedObject", "hasLowresMediaFile", "hasTSMMediaFile", "lowresMediaFilePath" })\r
import java.io.FileInputStream;\r
import java.io.InputStream;\r
import java.util.ArrayList;\r
+import java.util.Arrays;\r
import java.util.Collections;\r
import java.util.List;\r
import java.util.Map;\r
import user.jobengine.zk.model.IndexModel;\r
\r
public class SessionUtil {\r
+ private static final String SEARCH_HISTORY = "searchHistory";\r
private static final String USER_NAME = "userName";\r
private static final String USER_SETTINGS = "userSettings";\r
private static Logger logger = LogManager.getLogger();\r
return (UserPrincipal) getAttribute(USERPRINCIPAL);\r
}\r
\r
+ public static List<String> getUserSearchHistory() {\r
+ BasicDBObject userSettings = getUserSettings();\r
+ String[] history = (String[]) userSettings.get(SEARCH_HISTORY);\r
+ return (history == null) ? new ArrayList<>() : Arrays.asList(history);\r
+ }\r
+\r
static private BasicDBObject getUserSettings() {\r
BasicDBObject result = (BasicDBObject) getAttribute(USER_SETTINGS);\r
if (result == null) {\r
if (result == null)\r
result = new BasicDBObject(USER_NAME, userPrincipal.getAccount());\r
}\r
+ setAttribute(USER_SETTINGS, result);\r
return result;\r
}\r
\r
history.add(new BasicDBObject("action", action).append("query", query));\r
}\r
\r
+ public static void putUserSearchHistory(List<String> searchHistory) {\r
+ BasicDBObject userSettings = getUserSettings();\r
+ userSettings.put(SEARCH_HISTORY, searchHistory.toArray(new String[searchHistory.size()]));\r
+ putUserSettings();\r
+ }\r
+\r
static private void putUserSettings() {\r
BasicDBObject userSettings = (BasicDBObject) getAttribute(USER_SETTINGS);\r
if (userSettings != null)\r