Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master' into feature/thresholds
Browse files Browse the repository at this point in the history
  • Loading branch information
katkav committed Dec 26, 2018
2 parents 4b78e74 + 92b1540 commit 2cae082
Show file tree
Hide file tree
Showing 3 changed files with 113 additions and 22 deletions.
Expand Up @@ -1802,7 +1802,20 @@ private MainMenuItem createResourcesItems() {
MainMenuItem item = new MainMenuItem(GuiStyleConstants.CLASS_OBJECT_RESOURCE_ICON_COLORED,
createStringResource("PageAdmin.menu.top.resources"), null);

addMenuItem(item, "PageAdmin.menu.top.resources.list", PageResources.class);
MenuItem menu = new MenuItem(createStringResource("PageAdmin.menu.top.resources.list"), PageResources.class){
private static final long serialVersionUID = 1L;

@Override
public boolean isMenuActive(WebPage page) {
if (getPageParameters() != null && getPageParameters().get(PARAMETER_OBJECT_COLLECTION_NAME) != null
&& getPageParameters().get(PARAMETER_OBJECT_COLLECTION_NAME).toString() != null){
return false;
} else {
return super.isMenuActive(page);
}
}
};
item.getItems().add(menu);

createFocusPageViewMenu(item.getItems(), "PageAdmin.menu.top.resources.view", PageResource.class);
createFocusPageNewEditMenu(item.getItems(), "PageAdmin.menu.top.resources.new",
Expand Down Expand Up @@ -1932,7 +1945,20 @@ private MainMenuItem createUsersItems() {
MainMenuItem item = new MainMenuItem(GuiStyleConstants.CLASS_OBJECT_USER_ICON_COLORED,
createStringResource("PageAdmin.menu.top.users"), null);

addMenuItem(item, "PageAdmin.menu.top.users.list", PageUsers.class);
MenuItem menu = new MenuItem(createStringResource("PageAdmin.menu.top.users.list"), PageUsers.class){
private static final long serialVersionUID = 1L;

@Override
public boolean isMenuActive(WebPage page) {
if (getPageParameters() != null && getPageParameters().get(PARAMETER_OBJECT_COLLECTION_NAME) != null
&& getPageParameters().get(PARAMETER_OBJECT_COLLECTION_NAME).toString() != null){
return false;
} else {
return super.isMenuActive(page);
}
}
};
item.getItems().add(menu);

createFocusPageNewEditMenu(item.getItems(), "PageAdmin.menu.top.users.new",
"PageAdmin.menu.top.users.edit", PageUser.class, true);
Expand Down Expand Up @@ -2065,7 +2091,20 @@ private MainMenuItem createRolesItems() {
MainMenuItem item = new MainMenuItem(GuiStyleConstants.CLASS_OBJECT_ROLE_ICON_COLORED,
createStringResource("PageAdmin.menu.top.roles"), null);

addMenuItem(item, "PageAdmin.menu.top.roles.list", PageRoles.class);
MenuItem menu = new MenuItem(createStringResource("PageAdmin.menu.top.roles.list"), PageRoles.class){
private static final long serialVersionUID = 1L;

@Override
public boolean isMenuActive(WebPage page) {
if (getPageParameters() != null && getPageParameters().get(PARAMETER_OBJECT_COLLECTION_NAME) != null
&& getPageParameters().get(PARAMETER_OBJECT_COLLECTION_NAME).toString() != null){
return false;
} else {
return super.isMenuActive(page);
}
}
};
item.getItems().add(menu);

createFocusPageNewEditMenu(item.getItems(), "PageAdmin.menu.top.roles.new", "PageAdmin.menu.top.roles.edit",
PageRole.class, true);
Expand All @@ -2079,7 +2118,20 @@ private MainMenuItem createServicesItems() {
MainMenuItem item = new MainMenuItem(GuiStyleConstants.CLASS_OBJECT_SERVICE_ICON_COLORED,
createStringResource("PageAdmin.menu.top.services"), null);

addMenuItem(item, "PageAdmin.menu.top.services.list", PageServices.class);
MenuItem menu = new MenuItem(createStringResource("PageAdmin.menu.top.services.list"), PageServices.class){
private static final long serialVersionUID = 1L;

@Override
public boolean isMenuActive(WebPage page) {
if (getPageParameters() != null && getPageParameters().get(PARAMETER_OBJECT_COLLECTION_NAME) != null
&& getPageParameters().get(PARAMETER_OBJECT_COLLECTION_NAME).toString() != null){
return false;
} else {
return super.isMenuActive(page);
}
}
};
item.getItems().add(menu);

createFocusPageNewEditMenu(item.getItems(), "PageAdmin.menu.top.services.new", "PageAdmin.menu.top.services.edit",
PageService.class, true);
Expand Down Expand Up @@ -2122,11 +2174,25 @@ private void addCollectionsMenuItems(List<MenuItem> menu, QName type, Class<? ex
DisplayType viewDisplayType = objectView.getDisplay();

PageParameters pageParameters = new PageParameters();
pageParameters.add(PageUsersView.PARAMETER_OBJECT_COLLECTION_NAME, objectView.getViewName());
pageParameters.add(PARAMETER_OBJECT_COLLECTION_NAME, objectView.getViewName());

MenuItem userViewMenu = new MenuItem(viewDisplayType != null && PolyStringUtils.isNotEmpty(viewDisplayType.getLabel())
? createStringResource(viewDisplayType.getLabel())
: createStringResource("MenuItem.noName"), redirectToPage, pageParameters, null);
: createStringResource("MenuItem.noName"), redirectToPage, pageParameters, null){
private static final long serialVersionUID = 1L;

@Override
public boolean isMenuActive(WebPage page) {
PageParameters params = getPageParameters();
if (params != null && params.get(PARAMETER_OBJECT_COLLECTION_NAME) != null){
StringValue collectionName = params.get(PARAMETER_OBJECT_COLLECTION_NAME);
if (objectView.getViewName().equals(collectionName.toString())) {
return true;
}
}
return false;
}
};
menu.add(userViewMenu);

});
Expand Down
Expand Up @@ -18,14 +18,14 @@
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
<div class="btn-group">
<div wicket:id="allAssignments" class="btn btn-default" />
<div wicket:id="roleTypeAssignments" class="btn btn-default" />
<div wicket:id="orgTypeAssignments" class="btn btn-default" />
<div wicket:id="serviceTypeAssignments" class="btn btn-default" />
<div wicket:id="resourceTypeAssignments" class="btn btn-default" />
<div wicket:id="policyRuleTypeAssignments" class="btn btn-default" />
<div wicket:id="entitlementAssignments" class="btn btn-default" />
<!--<div wicket:id="consentAssignments" class="btn btn-default" />-->
<div wicket:id="allAssignments" />
<div wicket:id="roleTypeAssignments" />
<div wicket:id="orgTypeAssignments" />
<div wicket:id="serviceTypeAssignments" />
<div wicket:id="resourceTypeAssignments" />
<div wicket:id="policyRuleTypeAssignments" />
<div wicket:id="entitlementAssignments" />
<!--<div wicket:id="consentAssignments" />-->
</div>
<div wicket:id="assignmentsPanel"/>
</wicket:panel>
Expand Down
Expand Up @@ -16,12 +16,15 @@
package com.evolveum.midpoint.web.component.assignment;

import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.web.component.AjaxButton;
import com.evolveum.midpoint.web.component.prism.ContainerWrapper;
import com.evolveum.midpoint.web.component.util.EnableBehaviour;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.model.IModel;

import javax.xml.namespace.QName;
Expand All @@ -42,6 +45,7 @@ public class SwitchAssignmentTypePanel extends BasePanel<ContainerWrapper<Assign
private static final String ID_CONSENT_ASSIGNMENTS = "consentAssignments";
private static final String ID_ASSIGNMENTS = "assignmentsPanel";

private String activeButtonId = ID_ALL_ASSIGNMENTS;

public SwitchAssignmentTypePanel(String id, IModel<ContainerWrapper<AssignmentType>> assignmentContainerWrapperModel) {
super(id, assignmentContainerWrapperModel);
Expand All @@ -64,9 +68,10 @@ public void onClick(AjaxRequestTarget target) {
AssignmentPanel assignmentPanel =
new AssignmentPanel(ID_ASSIGNMENTS, SwitchAssignmentTypePanel.this.getModel());
assignmentPanel.setOutputMarkupId(true);
switchAssignmentTypePerformed(target, assignmentPanel);
switchAssignmentTypePerformed(target, assignmentPanel, ID_ASSIGNMENTS);
}
};
allAssignmentsButton.add(AttributeAppender.append("class", getButtonStyleModel(ID_ALL_ASSIGNMENTS)));
allAssignmentsButton.setOutputMarkupId(true);
add(allAssignmentsButton);

Expand All @@ -84,9 +89,10 @@ protected QName getAssignmentType() {
}
};
assignmentPanel.setOutputMarkupId(true);
switchAssignmentTypePerformed(target, assignmentPanel);
switchAssignmentTypePerformed(target, assignmentPanel, ID_ROLE_TYPE_ASSIGNMENTS);
}
};
roleTypeAssignmentsButton.add(AttributeAppender.append("class", getButtonStyleModel(ID_ROLE_TYPE_ASSIGNMENTS)));
roleTypeAssignmentsButton.setOutputMarkupId(true);
add(roleTypeAssignmentsButton);

Expand All @@ -104,9 +110,10 @@ protected QName getAssignmentType() {
}
};
assignmentPanel.setOutputMarkupId(true);
switchAssignmentTypePerformed(target, assignmentPanel);
switchAssignmentTypePerformed(target, assignmentPanel, ID_ORG_TYPE_ASSIGNMENTS);
}
};
orgTypeAssignmentsButton.add(AttributeAppender.append("class", getButtonStyleModel(ID_ORG_TYPE_ASSIGNMENTS)));
orgTypeAssignmentsButton.setOutputMarkupId(true);
add(orgTypeAssignmentsButton);

Expand All @@ -124,10 +131,11 @@ protected QName getAssignmentType() {
}
};
assignmentPanel.setOutputMarkupId(true);
switchAssignmentTypePerformed(target, assignmentPanel);
switchAssignmentTypePerformed(target, assignmentPanel, ID_SERVICE_TYPE_ASSIGNMENTS);

}
};
serviceTypeAssignmentsButton.add(AttributeAppender.append("class", getButtonStyleModel(ID_SERVICE_TYPE_ASSIGNMENTS)));
serviceTypeAssignmentsButton.setOutputMarkupId(true);
add(serviceTypeAssignmentsButton);

Expand All @@ -138,9 +146,10 @@ public void onClick(AjaxRequestTarget target) {
ConstructionAssignmentPanel constructionsPanel =
new ConstructionAssignmentPanel(ID_ASSIGNMENTS, SwitchAssignmentTypePanel.this.getModel());
constructionsPanel.setOutputMarkupId(true);
switchAssignmentTypePerformed(target, constructionsPanel);
switchAssignmentTypePerformed(target, constructionsPanel, ID_RESOURCE_TYPE_ASSIGNMENTS);
}
};
resourceTypeAssignmentsButton.add(AttributeAppender.append("class", getButtonStyleModel(ID_RESOURCE_TYPE_ASSIGNMENTS)));
resourceTypeAssignmentsButton.setOutputMarkupId(true);
add(resourceTypeAssignmentsButton);

Expand All @@ -151,10 +160,11 @@ public void onClick(AjaxRequestTarget target) {
PolicyRulesPanel policyRulesPanel =
new PolicyRulesPanel(ID_ASSIGNMENTS, SwitchAssignmentTypePanel.this.getModel()) ;
policyRulesPanel.setOutputMarkupId(true);
switchAssignmentTypePerformed(target, policyRulesPanel);
switchAssignmentTypePerformed(target, policyRulesPanel, ID_POLICY_RULE_TYPE_ASSIGNMENTS);

}
};
policyRuleTypeAssignmentsButton.add(AttributeAppender.append("class", getButtonStyleModel(ID_POLICY_RULE_TYPE_ASSIGNMENTS)));
policyRuleTypeAssignmentsButton.setOutputMarkupId(true);
policyRuleTypeAssignmentsButton.add(new VisibleBehaviour(() ->
getModelObject().getObjectWrapper().getObject().asObjectable() instanceof AbstractRoleType));
Expand All @@ -167,10 +177,11 @@ public void onClick(AjaxRequestTarget target) {
InducedEntitlementsPanel entitlementAssignments =
new InducedEntitlementsPanel(ID_ASSIGNMENTS, SwitchAssignmentTypePanel.this.getModel()) ;
entitlementAssignments.setOutputMarkupId(true);
switchAssignmentTypePerformed(target, entitlementAssignments);
switchAssignmentTypePerformed(target, entitlementAssignments, ID_ENTITLEMENT_ASSIGNMENTS);

}
};
entitlementAssignmentsButton.add(AttributeAppender.append("class", getButtonStyleModel(ID_ENTITLEMENT_ASSIGNMENTS)));
entitlementAssignmentsButton.setOutputMarkupId(true);
entitlementAssignmentsButton.add(new VisibleBehaviour(() ->
(getModelObject().getObjectWrapper().getObject().asObjectable() instanceof AbstractRoleType) && isInducement()));
Expand All @@ -192,11 +203,25 @@ public void onClick(AjaxRequestTarget target) {
// add(consentsButton);
}

private void switchAssignmentTypePerformed(AjaxRequestTarget target, AssignmentPanel assignmentsPanel){
private void switchAssignmentTypePerformed(AjaxRequestTarget target, AssignmentPanel assignmentsPanel, String buttonId){
activeButtonId = buttonId;
addOrReplace(assignmentsPanel);
target.add(SwitchAssignmentTypePanel.this);
}

private LoadableModel<String> getButtonStyleModel(String buttonId){
return new LoadableModel<String>() {
@Override
protected String load() {
if (activeButtonId.equals(buttonId)){
return "btn btn-primary";
} else {
return "btn btn-default";
}
}
};
}

private void initAssignmentsPanel(){
AssignmentPanel assignmentsPanel = new AssignmentPanel(ID_ASSIGNMENTS, getModel());
assignmentsPanel.setOutputMarkupId(true);
Expand Down

0 comments on commit 2cae082

Please sign in to comment.