From d27fec89ffdeefa392cb72695185c768e95815d4 Mon Sep 17 00:00:00 2001 From: honchar Date: Wed, 12 Oct 2016 16:22:36 +0200 Subject: [PATCH] role catalog fixes --- .../assignment/AssignmentCatalogPanel.java | 13 +++- .../assignment/CatalogItemsPanel.java | 59 +++++++++++++------ .../page/self/PageAssignmentShoppingKart.java | 1 + 3 files changed, 53 insertions(+), 20 deletions(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentCatalogPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentCatalogPanel.java index b1a0b4b716a..ea2bd23afd2 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentCatalogPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentCatalogPanel.java @@ -29,9 +29,11 @@ import com.evolveum.midpoint.web.page.self.dto.AssignmentViewType; import com.evolveum.midpoint.web.session.SessionStorage; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; +import org.apache.commons.lang.StringUtils; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.behavior.AttributeAppender; import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.model.IModel; import javax.xml.namespace.QName; @@ -65,7 +67,6 @@ public AssignmentCatalogPanel(String id, String rootOid, PageBase pageBase) { super(id); this.pageBase = pageBase; this.rootOid = rootOid; - AssignmentViewType.saveViewTypeToSession(pageBase, AssignmentViewType.ROLE_CATALOG_VIEW); initLayout(); } @@ -90,7 +91,7 @@ public void addOrReplaceLayout(){ WebMarkupContainer treePanelContainer = new WebMarkupContainer(ID_TREE_PANEL_CONTAINER); treePanelContainer.setOutputMarkupId(true); addOrReplace(treePanelContainer); - if (AssignmentViewType.ROLE_CATALOG_VIEW.equals(AssignmentViewType.getViewTypeFromSession(pageBase))) { + if (AssignmentViewType.ROLE_CATALOG_VIEW.equals(AssignmentViewType.getViewTypeFromSession(pageBase)) && StringUtils.isNotEmpty(rootOid)) { OrgTreePanel treePanel = new OrgTreePanel(ID_TREE_PANEL, new IModel() { @Override public String getObject() { @@ -179,6 +180,14 @@ public void detach() { }; } + public String getRootOid() { + return rootOid; + } + + public void setRootOid(String rootOid) { + this.rootOid = rootOid; + } + private String getRoleCatalogOid() { Task task = getPageBase().createAnonymousTask(OPERATION_LOAD_ROLE_CATALOG_REFERENCE); OperationResult result = task.getResult(); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/CatalogItemsPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/CatalogItemsPanel.java index c40424b8d1b..967f5f85dab 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/CatalogItemsPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/CatalogItemsPanel.java @@ -41,6 +41,7 @@ import com.evolveum.midpoint.web.security.SecurityUtils; import com.evolveum.midpoint.web.session.SessionStorage; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; +import org.apache.commons.lang.StringUtils; import org.apache.wicket.Component; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.form.OnChangeAjaxBehavior; @@ -148,7 +149,13 @@ private void initLayout() { initCartButton(headerPanel); initSearchPanel(headerPanel); - MultiButtonTable assignmentsTable = new MultiButtonTable(ID_MULTI_BUTTON_TABLE, itemsPerRow, itemsListModel, pageBase); + Component assignmentsTable; + if ((catalogOidModel == null || StringUtils.isEmpty(catalogOidModel.getObject())) && + AssignmentViewType.ROLE_CATALOG_VIEW.equals(AssignmentViewType.getViewTypeFromSession(pageBase))) { + assignmentsTable = new Label(ID_MULTI_BUTTON_TABLE, createStringResource("PageAssignmentShoppingKart.roleCatalogIsNotConfigured")); + } else { + assignmentsTable = new MultiButtonTable(ID_MULTI_BUTTON_TABLE, itemsPerRow, itemsListModel, pageBase); + } assignmentsTable.setOutputMarkupId(true); add(assignmentsTable); @@ -157,28 +164,32 @@ private void initLayout() { } protected void initProvider() { + if ((catalogOidModel == null || StringUtils.isEmpty(catalogOidModel.getObject())) + && AssignmentViewType.ROLE_CATALOG_VIEW.equals(AssignmentViewType.getViewTypeFromSession(pageBase))){ + provider = null; + } else { + provider = new ObjectDataProvider(pageBase, AbstractRoleType.class) { + private static final long serialVersionUID = 1L; - provider = new ObjectDataProvider(pageBase, AbstractRoleType.class) { - private static final long serialVersionUID = 1L; - - @Override - public AssignmentEditorDto createDataObjectWrapper(PrismObject obj) { - return AssignmentEditorDto.createDtoFromObject(obj.asObjectable(), UserDtoStatus.MODIFY, pageBase); - } + @Override + public AssignmentEditorDto createDataObjectWrapper(PrismObject obj) { + return AssignmentEditorDto.createDtoFromObject(obj.asObjectable(), UserDtoStatus.MODIFY, pageBase); + } - @Override - public void setQuery(ObjectQuery query) { + @Override + public void setQuery(ObjectQuery query) { - super.setQuery(query); - } + super.setQuery(query); + } - @Override - public ObjectQuery getQuery() { + @Override + public ObjectQuery getQuery() { - return createContentQuery(null); - } - }; - setCurrentPage(0); + return createContentQuery(null); + } + }; + setCurrentPage(0); + } } protected void refreshCatalogItemsPanel() { @@ -235,6 +246,12 @@ protected void onUpdate(AjaxRequestTarget target) { private void initSearchPanel(WebMarkupContainer headerPanel) { final Form searchForm = new Form(ID_SEARCH_FORM); headerPanel.add(searchForm); + searchForm.add(new VisibleEnableBehaviour(){ + public boolean isVisible(){ + return !(AssignmentViewType.ROLE_CATALOG_VIEW.equals(AssignmentViewType.getViewTypeFromSession(pageBase)) && + (catalogOidModel != null || StringUtils.isNotEmpty(catalogOidModel.getObject()))); + } + }); searchForm.setOutputMarkupId(true); SearchPanel search = new SearchPanel(ID_SEARCH, (IModel) searchModel, false) { @@ -474,6 +491,12 @@ public void onClick(AjaxRequestTarget ajaxRequestTarget) { setResponsePage(new PageAssignmentsList(loadUser())); } }; + cartButton.add(new VisibleEnableBehaviour(){ + public boolean isVisible(){ + return !(AssignmentViewType.ROLE_CATALOG_VIEW.equals(AssignmentViewType.getViewTypeFromSession(pageBase)) && + (catalogOidModel != null || StringUtils.isNotEmpty(catalogOidModel.getObject()))); + } + }); cartButton.setOutputMarkupId(true); headerPanel.add(cartButton); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentShoppingKart.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentShoppingKart.java index c32ff862c17..fb6389acce8 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentShoppingKart.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentShoppingKart.java @@ -126,6 +126,7 @@ private Component initMainPanel() { } } else { AssignmentCatalogPanel panel = new AssignmentCatalogPanel(ID_MAIN_PANEL, PageAssignmentShoppingKart.this); + panel.setRootOid(catalogOid); panel.setOutputMarkupId(true); return panel; }