Skip to content

Commit

Permalink
Additional menu items issue fixed
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Sep 19, 2016
1 parent cd08fa7 commit aef78d7
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 7 deletions.
Expand Up @@ -28,6 +28,7 @@
import javax.management.ObjectName;

import com.evolveum.midpoint.common.SystemConfigurationHolder;
import com.evolveum.midpoint.web.component.menu.*;
import com.evolveum.midpoint.web.page.admin.configuration.*;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.Validate;
Expand Down Expand Up @@ -113,11 +114,6 @@
import com.evolveum.midpoint.web.component.breadcrumbs.BreadcrumbPageInstance;
import com.evolveum.midpoint.web.component.dialog.MainPopupDialog;
import com.evolveum.midpoint.web.component.dialog.Popupable;
import com.evolveum.midpoint.web.component.menu.MainMenuItem;
import com.evolveum.midpoint.web.component.menu.MenuItem;
import com.evolveum.midpoint.web.component.menu.SideBarMenuItem;
import com.evolveum.midpoint.web.component.menu.SideBarMenuPanel;
import com.evolveum.midpoint.web.component.menu.UserMenuPanel;
import com.evolveum.midpoint.web.component.menu.top.LocalePanel;
import com.evolveum.midpoint.web.component.message.FeedbackAlerts;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
Expand Down Expand Up @@ -1317,9 +1313,9 @@ private void createAdditionalMenu(SideBarMenuItem menu) {
if (menuList != null && menuList.size() > 0 && urlClassMap != null && urlClassMap.size() > 0) {
for (RichHyperlinkType link : menuList) {
if (link.getTargetUrl() != null && !link.getTargetUrl().trim().equals("")) {
MainMenuItem item = new MainMenuItem(link.getIcon() == null ? "" : link.getIcon().getCssClass(),
AdditionalMenuItem item = new AdditionalMenuItem(link.getIcon() == null ? "" : link.getIcon().getCssClass(),
getAdditionalMenuItemNameModel(link.getLabel()),
urlClassMap.get(link.getTargetUrl()));
link.getTargetUrl(), urlClassMap.get(link.getTargetUrl()));
menu.getItems().add(item);
}
}
Expand Down
@@ -0,0 +1,20 @@
package com.evolveum.midpoint.web.component.menu;

import com.evolveum.midpoint.gui.api.page.PageBase;
import org.apache.wicket.model.IModel;

/**
* Created by Kate on 19.09.2016.
*/
public class AdditionalMenuItem extends MainMenuItem {
private String targetUrl;

public AdditionalMenuItem(String iconClass, IModel<String> name, String targetUrl, Class<? extends PageBase> page) {
super(iconClass, name, page, null);
this.targetUrl = targetUrl;
}

public String getTargetUrl() {
return targetUrl;
}
}
Expand Up @@ -39,6 +39,7 @@
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.request.flow.RedirectToUrlException;

import java.io.Serializable;
import java.util.List;
Expand Down Expand Up @@ -101,6 +102,15 @@ public void onClick(AjaxRequestTarget target) {
mainMenuPerformed(menu);
}
};
} else if (menu instanceof AdditionalMenuItem){
link = new AjaxLink(ID_LINK) {
private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target) {
additionalMenuPerformed(menu);
}
};
} else {
link = new WebMarkupContainer(ID_LINK);
}
Expand Down Expand Up @@ -254,4 +264,16 @@ private void mainMenuPerformed(MainMenuItem menu) {
setResponsePage(menu.getPageClass(), menu.getParams());
}
}

private void additionalMenuPerformed(MainMenuItem menu) {
LOGGER.trace("additionalMenuPerformed: {}", menu);
SessionStorage storage = getPageBase().getSessionStorage();
storage.clearBreadcrumbs();

if (menu.getPageClass() != null) {
setResponsePage(menu.getPageClass());
} else {
throw new RedirectToUrlException(((AdditionalMenuItem)menu).getTargetUrl());
}
}
}

0 comments on commit aef78d7

Please sign in to comment.