From 767e677b816604b1f138922eef965b368becae5e Mon Sep 17 00:00:00 2001 From: honchar Date: Mon, 3 Apr 2017 00:52:15 +0200 Subject: [PATCH 1/2] MID-3846 back button fix for role catalog MID-3853 role details page fix --- .../midpoint/gui/api/page/PageBase.java | 6 +++++- .../web/component/data/MultiButtonTable.java | 19 +++++++++++++------ .../web/component/prism/PrismHeaderPanel.html | 2 +- .../web/component/prism/PrismHeaderPanel.java | 9 +++++++-- .../web/page/self/PageAssignmentDetails.java | 4 ++++ .../web/page/self/PageAssignmentsList.java | 6 ++++++ 6 files changed, 36 insertions(+), 10 deletions(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java index f64e4083aaf..d2548ec4292 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java @@ -1685,13 +1685,17 @@ public boolean canRedirectBack() { List breadcrumbs = getBreadcrumbs(); // first is icon (non clickable), last is for "current page" and if there // is nothing in between then we don't know where to redirect - if (breadcrumbs.size() < 3) { + if (breadcrumbs.size() < getMinimalBreadcrumbsListSize()) { return false; } return true; } + protected int getMinimalBreadcrumbsListSize(){ + return 3; + } + public Breadcrumb redirectBack() { List breadcrumbs = getBreadcrumbs(); if (!canRedirectBack()) { diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/MultiButtonTable.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/MultiButtonTable.java index fff563ec606..187aedc72d0 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/MultiButtonTable.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/MultiButtonTable.java @@ -31,8 +31,10 @@ import com.evolveum.midpoint.web.page.admin.roles.PageRole; import com.evolveum.midpoint.web.page.admin.services.PageService; import com.evolveum.midpoint.web.page.admin.users.PageOrgUnit; +import com.evolveum.midpoint.web.page.admin.workflow.PageWorkItem; import com.evolveum.midpoint.web.page.self.PageAssignmentDetails; import com.evolveum.midpoint.web.session.RoleCatalogStorage; +import com.evolveum.midpoint.web.util.OnePageParameterEncoder; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.AjaxLink; @@ -42,6 +44,7 @@ import org.apache.wicket.markup.repeater.RepeatingView; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; +import org.apache.wicket.request.mapper.parameter.PageParameters; import java.util.ArrayList; import java.util.List; @@ -255,12 +258,16 @@ private void targetObjectDetailsPerformed(final AssignmentEditorDto assignment, return; } if (!plusIconClicked) { - String targetObjectOid = assignment.getTargetRef().getOid(); - OperationResult result = new OperationResult(OPERATION_LOAD_TARGET_OBJECT); - Task task = pageBase.createSimpleTask(OPERATION_LOAD_TARGET_OBJECT); - PrismObject targetObject = WebModelServiceUtils.loadObject(AbstractRoleType.class, - targetObjectOid, pageBase, task, result); - pageBase.navigateToNext(getTargetObjectDetailsPage(assignment.getType(), targetObject)); + PageParameters parameters = new PageParameters(); + parameters.add(OnePageParameterEncoder.PARAMETER, assignment.getTargetRef().getOid()); + + if (AssignmentEditorDtoType.ORG_UNIT.equals(assignment.getType())){ + getPageBase().navigateToNext(PageOrgUnit.class, parameters); + } else if (AssignmentEditorDtoType.ROLE.equals(assignment.getType())){ + getPageBase().navigateToNext(PageRole.class, parameters); + } else if (AssignmentEditorDtoType.SERVICE.equals(assignment.getType())){ + getPageBase().navigateToNext(PageService.class, parameters); + } } else { plusIconClicked = false; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/PrismHeaderPanel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/PrismHeaderPanel.html index 606b4532a38..126a2fe544a 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/PrismHeaderPanel.html +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/PrismHeaderPanel.html @@ -20,7 +20,7 @@
- +
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/PrismHeaderPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/PrismHeaderPanel.java index 2bdbb38ce36..b5b301bd768 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/PrismHeaderPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/PrismHeaderPanel.java @@ -68,7 +68,10 @@ public boolean isVisible() { public void onClick(AjaxRequestTarget target) { ObjectWrapper objectWrapper = getObjectWrapper(model); objectWrapper.setShowEmpty(!objectWrapper.isShowEmpty()); - onButtonClick(target); +// +// target.appendJavaScript("document.getElementsByClassName('tooltip').style.visibility = 'hidden';"); + + onButtonClick(target); } @Override @@ -76,7 +79,9 @@ public boolean isOn() { return getObjectWrapper(model).isShowEmpty(); } }; - showEmptyFieldsButton.add(buttonsVisibleBehaviour); + showEmptyFieldsButton.setMarkupId(ID_SHOW_EMPTY_FIELDS); + + showEmptyFieldsButton.add(buttonsVisibleBehaviour); add(showEmptyFieldsButton); ToggleIconButton sortPropertiesButton = new ToggleIconButton(ID_SORT_PROPERTIES, diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentDetails.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentDetails.java index acdbde2c2df..dfabe4e577f 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentDetails.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentDetails.java @@ -80,5 +80,9 @@ public void onClick(AjaxRequestTarget target) { mainForm.add(addToCart); } + @Override + public boolean canRedirectBack(){ + return true; + } } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentsList.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentsList.java index 12c35866091..e468b9b5f17 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentsList.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentsList.java @@ -427,4 +427,10 @@ private Component getRequestButton(){ private TextArea getDescriptionComponent(){ return (TextArea) get(ID_FORM).get(ID_DESCRIPTION); } + + @Override + public boolean canRedirectBack(){ + return true; + } + } From 3bd2f442d5a343d5c7bac86c34d569625c395d55 Mon Sep 17 00:00:00 2001 From: honchar Date: Mon, 3 Apr 2017 13:01:42 +0200 Subject: [PATCH 2/2] fix for Back button from self service section --- .../midpoint/gui/api/page/PageBase.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java index d2548ec4292..981aae5c2df 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java @@ -1683,17 +1683,20 @@ public DeploymentInformationType loadDeploymentInformationType() { public boolean canRedirectBack() { List breadcrumbs = getBreadcrumbs(); - // first is icon (non clickable), last is for "current page" and if there - // is nothing in between then we don't know where to redirect - if (breadcrumbs.size() < getMinimalBreadcrumbsListSize()) { - return false; + if (breadcrumbs.size() > 2) { + return true; + } + if (breadcrumbs.size() == 2){ + BreadcrumbPageClass breadcrumb = null; + if ((breadcrumbs.get(breadcrumbs.size() - 2)) instanceof BreadcrumbPageClass){ + breadcrumb = (BreadcrumbPageClass) breadcrumbs.get(breadcrumbs.size() - 2); + } + if (breadcrumb != null && breadcrumb.getPage() != null){ + return true; + } } - return true; - } - - protected int getMinimalBreadcrumbsListSize(){ - return 3; + return false; } public Breadcrumb redirectBack() {