diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/PageCertDecisions.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/PageCertDecisions.java index a307ce3f7d9..0274f5949c8 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/PageCertDecisions.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/PageCertDecisions.java @@ -31,6 +31,7 @@ import com.evolveum.midpoint.web.page.admin.certification.dto.*; import com.evolveum.midpoint.web.page.admin.certification.helpers.AvailableResponses; import com.evolveum.midpoint.web.page.admin.configuration.component.HeaderMenuAction; +import com.evolveum.midpoint.web.session.CertDecisionsStorage; import com.evolveum.midpoint.web.session.UserProfileStorage; import com.evolveum.midpoint.web.util.OnePageParameterEncoder; import com.evolveum.midpoint.web.util.TooltipBehavior; @@ -56,6 +57,7 @@ import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; import org.apache.wicket.request.mapper.parameter.PageParameters; +import org.apache.xpath.operations.Bool; import javax.xml.datatype.XMLGregorianCalendar; import java.util.ArrayList; @@ -95,9 +97,12 @@ public class PageCertDecisions extends PageAdminCertification { private CertDecisionHelper helper = new CertDecisionHelper(); - private IModel showNotDecidedOnlyModel = new Model<>(false); - public PageCertDecisions() { + } + + @Override + protected void onInitialize(){ + super.onInitialize(); initLayout(); } @@ -141,7 +146,8 @@ private void initLayout() { @Override protected WebMarkupContainer createHeader(String headerId) { - return new SearchFragment(headerId, ID_TABLE_HEADER, PageCertDecisions.this, showNotDecidedOnlyModel); + return new SearchFragment(headerId, ID_TABLE_HEADER, PageCertDecisions.this, + Model.of(getCertDecisionsStorage().getShowNotDecidedOnly())); } }; table.setShowPaging(true); @@ -512,7 +518,7 @@ private void searchFilterPerformed(AjaxRequestTarget target) { DataTable table = panel.getDataTable(); CertWorkItemDtoProvider provider = (CertWorkItemDtoProvider) table.getDataProvider(); provider.setQuery(query); - provider.setNotDecidedOnly(Boolean.TRUE.equals(showNotDecidedOnlyModel.getObject())); + provider.setNotDecidedOnly(getCertDecisionsStorage().getShowNotDecidedOnly().booleanValue()); table.setCurrentPage(0); target.add(getFeedbackPanel()); @@ -542,6 +548,10 @@ private void searchFilterPerformed(AjaxRequestTarget target) { // } // } + private CertDecisionsStorage getCertDecisionsStorage(){ + return getSessionStorage().getCertDecisions(); + } + private static class SearchFragment extends Fragment { public SearchFragment(String id, String markupId, MarkupContainer markupProvider, @@ -570,7 +580,9 @@ private AjaxFormComponentUpdatingBehavior createFilterAjaxBehaviour() { @Override protected void onUpdate(AjaxRequestTarget target) { PageCertDecisions page = (PageCertDecisions) getPage(); + page.getCertDecisionsStorage().setShowNotDecidedOnly((Boolean) getDefaultModelObject()); page.searchFilterPerformed(target); + } }; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/session/CertDecisionsStorage.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/session/CertDecisionsStorage.java new file mode 100644 index 00000000000..1ac29a0a6e1 --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/session/CertDecisionsStorage.java @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2010-2020 Evolveum and contributors + * + * This work is dual-licensed under the Apache License 2.0 + * and European Union Public License. See LICENSE file for details. + */ +package com.evolveum.midpoint.web.session; + +import com.evolveum.midpoint.prism.query.ObjectPaging; +import com.evolveum.midpoint.util.DebugUtil; +import com.evolveum.midpoint.web.component.search.Search; + +/** + * @author honchar + * */ +public class CertDecisionsStorage implements PageStorage { + private static final long serialVersionUID = 1L; + + private ObjectPaging certDecisionsPaging; + private Search search; + private Boolean showNotDecidedOnly = Boolean.TRUE; + + public Boolean getShowNotDecidedOnly() { + return showNotDecidedOnly; + } + + public void setShowNotDecidedOnly(Boolean showNotDecidedOnly) { + this.showNotDecidedOnly = showNotDecidedOnly; + } + + @Override + public ObjectPaging getPaging() { + return certDecisionsPaging; + } + + @Override + public void setPaging(ObjectPaging certDecisionsPaging) { + this.certDecisionsPaging = certDecisionsPaging; + } + + @Override + public Search getSearch() { + return search; + } + + @Override + public void setSearch(Search search) { + this.search = search; + } + + @Override + public String debugDump() { + return debugDump(0); + } + + @Override + public String debugDump(int indent) { + StringBuilder sb = new StringBuilder(); + DebugUtil.indentDebugDump(sb, indent); + sb.append("CertDecisionsStorage\n"); + DebugUtil.debugDumpWithLabelLn(sb, "showNotDecidedOnly", showNotDecidedOnly, indent+1); + DebugUtil.debugDumpWithLabelLn(sb, "campaignsPaging", certDecisionsPaging, indent+1); + DebugUtil.debugDumpWithLabel(sb, "search", search, indent+1); + return sb.toString(); + } + +} diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/session/SessionStorage.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/session/SessionStorage.java index 7918f61d046..63115436085 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/session/SessionStorage.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/session/SessionStorage.java @@ -59,6 +59,7 @@ public class SessionStorage implements Serializable, DebugDumpable { private static final String KEY_TASKS = "tasks"; private static final String KEY_SUBTASKS = "subtasks"; private static final String KEY_CERT_CAMPAIGNS = "certCampaigns"; + private static final String KEY_CERT_DECISIONS = "certDecisions"; /** * Contains state for first level menu items. Key is menu label text, value if true then @@ -234,6 +235,13 @@ public CertCampaignsStorage getCertCampaigns() { return (CertCampaignsStorage)pageStorageMap.get(KEY_CERT_CAMPAIGNS); } + public CertDecisionsStorage getCertDecisions() { + if (pageStorageMap.get(KEY_CERT_DECISIONS) == null) { + pageStorageMap.put(KEY_CERT_DECISIONS, new CertDecisionsStorage()); + } + return (CertDecisionsStorage)pageStorageMap.get(KEY_CERT_DECISIONS); + } + public UserProfileStorage getUserProfile(){ if(userProfile == null){ userProfile = new UserProfileStorage();