Skip to content

Commit

Permalink
MID-5141 indirect assignments without popup
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Nov 8, 2019
1 parent eec2729 commit e0cf4e2
Show file tree
Hide file tree
Showing 7 changed files with 56 additions and 30 deletions.
Expand Up @@ -20,7 +20,6 @@
<div wicket:id="assignments"/>
<wicket:fragment wicket:id="buttonToolbarFragment">
<div wicket:id="newItemButton" />
<div class="btn btn-default btn-sm" wicket:id="showAllAssignmentsButton" />
</wicket:fragment>

<wicket:fragment wicket:id="specificContainersFragment">
Expand Down
Expand Up @@ -119,7 +119,6 @@ public class AssignmentPanel extends BasePanel<PrismContainerWrapper<AssignmentT
private final static String ID_ACTIVATION_PANEL = "activationPanel";
protected static final String ID_SPECIFIC_CONTAINER = "specificContainers";
private static final String ID_NEW_ITEM_BUTTON = "newItemButton";
private static final String ID_SHOW_ALL_ASSIGNMENTS_BUTTON = "showAllAssignmentsButton";
private static final String ID_BUTTON_TOOLBAR_FRAGMENT = "buttonToolbarFragment";


Expand Down Expand Up @@ -285,35 +284,9 @@ protected Fragment initCustomButtonToolbar(String contentAreaId){
MultifunctionalButton newObjectIcon = getMultivalueContainerListPanel().getNewItemButton(ID_NEW_ITEM_BUTTON);
searchContainer.add(newObjectIcon);

AjaxIconButton showAllAssignmentsButton = new AjaxIconButton(ID_SHOW_ALL_ASSIGNMENTS_BUTTON, new Model<>("fa fa-address-card"),
createStringResource("AssignmentTablePanel.menu.showAllAssignments")) {

private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget ajaxRequestTarget) {
showAllAssignments(ajaxRequestTarget);
}
};
searchContainer.addOrReplace(showAllAssignmentsButton);
showAllAssignmentsButton.setOutputMarkupId(true);
showAllAssignmentsButton.add(new VisibleBehaviour(() -> !isInducement()));
return searchContainer;
}

protected void showAllAssignments(AjaxRequestTarget target) {
PageBase pageBase = getPageBase();
List<AssignmentInfoDto> previewAssignmentsList;
if (pageBase instanceof PageAdminFocus) {
previewAssignmentsList = ((PageAdminFocus<?>) pageBase).showAllAssignmentsPerformed(target);
} else {
previewAssignmentsList = Collections.emptyList();
}
AllAssignmentsPreviewDialog assignmentsDialog = new AllAssignmentsPreviewDialog(pageBase.getMainPopupBodyId(), previewAssignmentsList,
pageBase);
pageBase.showMainPopup(assignmentsDialog, target);
}

protected List<SearchItemDefinition> createSearchableItems(PrismContainerDefinition<AssignmentType> containerDef){
List<SearchItemDefinition> defs = new ArrayList<>();

Expand Down
Expand Up @@ -28,6 +28,7 @@
<div wicket:id="entitlementAssignments" />
<div wicket:id="focusMappingAssignments" />
<!--<div wicket:id="consentAssignments" />-->
<div wicket:id="showIndirectAssignmentsButton" style="margin-left: 30px;"/>
</div>
<div wicket:id="assignmentsPanel"/>
</wicket:panel>
Expand Down
Expand Up @@ -7,14 +7,21 @@
package com.evolveum.midpoint.web.component.assignment;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import javax.xml.namespace.QName;

import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.gui.api.prism.PrismObjectWrapper;
import com.evolveum.midpoint.web.component.AjaxIconButton;
import com.evolveum.midpoint.web.component.objectdetails.AssignmentHolderTypeAssignmentsTabPanel;
import com.evolveum.midpoint.web.page.admin.PageAdminFocus;
import com.evolveum.midpoint.web.page.admin.users.component.AllAssignmentsPreviewDialog;
import com.evolveum.midpoint.web.page.admin.users.component.AssignmentInfoDto;
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.behavior.AttributeAppender;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
Expand Down Expand Up @@ -54,6 +61,7 @@ public class SwitchAssignmentTypePanel extends BasePanel<PrismContainerWrapper<A
private static final String ID_ENTITLEMENT_ASSIGNMENTS = "entitlementAssignments";
private static final String ID_FOCUS_MAPPING_ASSIGNMENTS = "focusMappingAssignments";
private static final String ID_CONSENT_ASSIGNMENTS = "consentAssignments";
private static final String ID_SHOW_INDIRECT_ASSIGNMENTS = "showIndirectAssignmentsButton";
private static final String ID_ASSIGNMENTS = "assignmentsPanel";
private static final String ID_DATA_PROTECTION_ASSIGNMENTS = "dataProtectionAssignments";

Expand All @@ -76,7 +84,8 @@ protected void onInitialize(){
private void initButtonsPanel(){
WebMarkupContainer buttonsContainer = new WebMarkupContainer(ID_ASSIGNMENT_TYPE_BUTTONS);
buttonsContainer.setOutputMarkupId(true);
buttonsContainer.add(new VisibleBehaviour(() -> getButtonsContainerVisibilityModel().getObject()));
buttonsContainer.add(new VisibleBehaviour(() -> ID_SHOW_INDIRECT_ASSIGNMENTS.equals(activeButtonId) ||
getButtonsContainerVisibilityModel().getObject()));
add(buttonsContainer);

AjaxButton allAssignmentsButton = new AjaxButton(ID_ALL_ASSIGNMENTS, createStringResource("AssignmentPanel.allLabel")) {
Expand Down Expand Up @@ -458,6 +467,37 @@ protected QName getAssignmentType() {
// };
// consentsButton.setOutputMarkupId(true);
// buttonsContainer.add(consentsButton);

AjaxIconButton showAllAssignmentsButton = new AjaxIconButton(ID_SHOW_INDIRECT_ASSIGNMENTS, new Model<>("fa fa-address-card"),
createStringResource("AssignmentTablePanel.menu.showAllAssignments")) {

private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget ajaxRequestTarget) {
showAllAssignments(ajaxRequestTarget);
}
};
showAllAssignmentsButton.add(AttributeAppender.append("class", getButtonStyleModel(ID_SHOW_INDIRECT_ASSIGNMENTS)));
showAllAssignmentsButton.setOutputMarkupId(true);

showAllAssignmentsButton.add(new VisibleBehaviour(() -> !isInducement()));
buttonsContainer.add(showAllAssignmentsButton);

}

protected void showAllAssignments(AjaxRequestTarget target) {
PageBase pageBase = getPageBase();
List<AssignmentInfoDto> previewAssignmentsList;
if (pageBase instanceof PageAdminFocus) {
previewAssignmentsList = ((PageAdminFocus<?>) pageBase).showAllAssignmentsPerformed(target);
} else {
previewAssignmentsList = Collections.emptyList();
}
AllAssignmentsPreviewDialog assignmentPanel = new AllAssignmentsPreviewDialog(ID_ASSIGNMENTS, previewAssignmentsList,
pageBase);
assignmentPanel.setOutputMarkupId(true);
switchAssignmentTypePerformed(target, assignmentPanel, ID_SHOW_INDIRECT_ASSIGNMENTS);
}

private boolean isAssignmentPanelVisible() {
Expand All @@ -480,7 +520,7 @@ protected Boolean load() {
};
}

private void switchAssignmentTypePerformed(AjaxRequestTarget target, AssignmentPanel assignmentsPanel, String buttonId){
private void switchAssignmentTypePerformed(AjaxRequestTarget target, Component assignmentsPanel, String buttonId){
activeButtonId = buttonId;
addOrReplace(assignmentsPanel);
target.add(SwitchAssignmentTypePanel.this);
Expand Down
Expand Up @@ -39,4 +39,9 @@ protected boolean showKindAndIntentColumns() {
protected boolean showRelationColumn() {
return true;
}

@Override
protected boolean showCancelButton(){
return false;
}
}
Expand Up @@ -19,6 +19,7 @@
import com.evolveum.midpoint.web.component.data.column.LinkColumn;
import com.evolveum.midpoint.web.component.dialog.Popupable;
import com.evolveum.midpoint.web.component.util.ListDataProvider;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;
import com.evolveum.midpoint.web.page.admin.resources.PageResourceWizard;
import com.evolveum.midpoint.web.page.admin.roles.PageRole;
import com.evolveum.midpoint.web.page.admin.users.PageOrgUnit;
Expand Down Expand Up @@ -96,6 +97,7 @@ public void onClick(AjaxRequestTarget ajaxRequestTarget) {
getPageBase().hideMainPopup(ajaxRequestTarget);
}
};
cancelButton.add(new VisibleBehaviour(() -> showCancelButton()));
content.add(cancelButton);
}

Expand Down Expand Up @@ -187,6 +189,7 @@ private void chooseOperationPerformed(String oid, Class clazz){
protected abstract boolean showDirectIndirectColumn();
protected abstract boolean showKindAndIntentColumns();
protected abstract boolean showRelationColumn();
protected abstract boolean showCancelButton();

@Override
public int getWidth() {
Expand Down
Expand Up @@ -45,4 +45,9 @@ protected boolean showKindAndIntentColumns() {
protected boolean showRelationColumn() {
return false;
}

@Override
protected boolean showCancelButton(){
return true;
}
}

0 comments on commit e0cf4e2

Please sign in to comment.