From 911a013810a127c0f58328475ca101b8001088f6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1s=C3=A1ry=20D=C3=A1niel?= Date: Tue, 17 Jul 2018 11:50:16 +0000 Subject: [PATCH] git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C31182 --- .../pages/searchitems.zul | 71 ++++++------------- .../user/jobengine/zk/model/SearchModel.java | 31 +++++--- .../user/jobengine/zk/util/SessionUtil.java | 15 ++++ 3 files changed, 60 insertions(+), 57 deletions(-) diff --git a/server/user.jobengine.osgi.server/pages/searchitems.zul b/server/user.jobengine.osgi.server/pages/searchitems.zul index 542b7344..2479b2d7 100644 --- a/server/user.jobengine.osgi.server/pages/searchitems.zul +++ b/server/user.jobengine.osgi.server/pages/searchitems.zul @@ -56,10 +56,8 @@ .type-inlist { width:80px; border-left:1px solid #008AC8; border-bottom:1px solid #008AC8; padding:4px; } - .buttonBold{ font-weight:bold; width:200px;} - .menuButtons{ display: flex; justify-content: space-between; padding:5px 10px 5px 10px; } - .menuButtons >button{ width:200px; } - .z-messagebox-window{ top:40% !important; width:30% !important; } + .buttonBold{ font-weight:bold; width:200px;} .menuButtons{ display: flex; justify-content: space-between; padding:5px 10px 5px 10px; } .menuButtons + >button{ width:200px; } .z-messagebox-window{ top:40% !important; width:30% !important; }
@@ -91,9 +89,13 @@ - - + + + +
]]> - - - - @@ -201,33 +188,19 @@
- - - -
- - - - - - - - - + + + + + +
diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/SearchModel.java b/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/SearchModel.java index f0525321..49dfa98f 100644 --- a/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/SearchModel.java +++ b/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/SearchModel.java @@ -33,9 +33,11 @@ import org.zkoss.zk.ui.util.Clients; import org.zkoss.zul.Button; import org.zkoss.zul.Checkbox; import org.zkoss.zul.Column; +import org.zkoss.zul.Combobox; import org.zkoss.zul.Detail; import org.zkoss.zul.Grid; import org.zkoss.zul.Hlayout; +import org.zkoss.zul.ListModelList; import org.zkoss.zul.Messagebox; import org.zkoss.zul.Row; import org.zkoss.zul.Timer; @@ -85,6 +87,9 @@ public class SearchModel extends AsyncBaseModel { Grid itemsGrid; @Wire Button backToVideoButton; + @Wire + Combobox search; + private String orderBy; private boolean orderAscending; @@ -95,6 +100,7 @@ public class SearchModel extends AsyncBaseModel { private volatile boolean preventAfterRender; private Row lastSelectedRow; private int positionToScroll; + private ListModelList searchHistory; public SearchModel() { typeFilters = new LinkedHashMap<>(); @@ -147,6 +153,8 @@ public class SearchModel extends AsyncBaseModel { } } }; + + searchHistory = new ListModelList<>(SessionUtil.getUserSearchHistory()); } private void addTypeFilter(TypeFilter typeFilter) { @@ -185,15 +193,22 @@ public class SearchModel extends AsyncBaseModel { } @Command - @NotifyChange({ "searchResult", "selectedObject", "hasLowresMediaFile", "lowresMediaFilePath" }) + @NotifyChange({ "searchResult", "selectedObject", "hasTSMMediaFile", "hasLowresMediaFile", "lowresMediaFilePath" }) public void doSearch() { try { - this.selectedObject = null; + searchValue = search.getText(); if (StringUtils.isBlank(searchValue) || searchValue.length() < 3) throw new Exception("Legalább 3 karakter megadása kötelező!"); List searchFilters = getSelectedFilters(); searchResult = new CachedListModel(searchValue, searchFilters, orderBy, orderAscending); + setSelectedObject(null); + + if (!searchHistory.contains(searchValue)) { + searchHistory.add(0, searchValue); + SessionUtil.putUserSearchHistory(searchHistory); + } + } catch (Exception e) { Messagebox.show(e.getMessage(), "Hiba", Messagebox.OK, Messagebox.ERROR); logger.catching(e); @@ -303,12 +318,12 @@ public class SearchModel extends AsyncBaseModel { return result; } - public CachedListModel getSearchResult() { - return searchResult; + public ListModelList getSearchHistory() { + return searchHistory; } - public String getSearchValue() { - return searchValue; + public CachedListModel getSearchResult() { + return searchResult; } private List getSelectedFilters() { @@ -504,8 +519,8 @@ public class SearchModel extends AsyncBaseModel { this.rowsExpanded = rowsExpanded; } - public void setSearchValue(String searchValue) { - this.searchValue = searchValue; + public void setSearchHistory(ListModelList searchHistory) { + this.searchHistory = searchHistory; } @NotifyChange({ "selectedObject", "hasLowresMediaFile", "hasTSMMediaFile", "lowresMediaFilePath" }) diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/zk/util/SessionUtil.java b/server/user.jobengine.osgi.server/src/user/jobengine/zk/util/SessionUtil.java index 7c8bacdf..94f07901 100644 --- a/server/user.jobengine.osgi.server/src/user/jobengine/zk/util/SessionUtil.java +++ b/server/user.jobengine.osgi.server/src/user/jobengine/zk/util/SessionUtil.java @@ -3,6 +3,7 @@ package user.jobengine.zk.util; import java.io.FileInputStream; import java.io.InputStream; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Map; @@ -26,6 +27,7 @@ import user.jobengine.server.JobEngine; import user.jobengine.zk.model.IndexModel; public class SessionUtil { + private static final String SEARCH_HISTORY = "searchHistory"; private static final String USER_NAME = "userName"; private static final String USER_SETTINGS = "userSettings"; private static Logger logger = LogManager.getLogger(); @@ -133,6 +135,12 @@ public class SessionUtil { return (UserPrincipal) getAttribute(USERPRINCIPAL); } + public static List getUserSearchHistory() { + BasicDBObject userSettings = getUserSettings(); + String[] history = (String[]) userSettings.get(SEARCH_HISTORY); + return (history == null) ? new ArrayList<>() : Arrays.asList(history); + } + static private BasicDBObject getUserSettings() { BasicDBObject result = (BasicDBObject) getAttribute(USER_SETTINGS); if (result == null) { @@ -141,6 +149,7 @@ public class SessionUtil { if (result == null) result = new BasicDBObject(USER_NAME, userPrincipal.getAccount()); } + setAttribute(USER_SETTINGS, result); return result; } @@ -210,6 +219,12 @@ public class SessionUtil { history.add(new BasicDBObject("action", action).append("query", query)); } + public static void putUserSearchHistory(List searchHistory) { + BasicDBObject userSettings = getUserSettings(); + userSettings.put(SEARCH_HISTORY, searchHistory.toArray(new String[searchHistory.size()])); + putUserSettings(); + } + static private void putUserSettings() { BasicDBObject userSettings = (BasicDBObject) getAttribute(USER_SETTINGS); if (userSettings != null) -- 2.54.0