/** * Copyright (C) 2012 eXo Platform SAS. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.exoplatform.platform.navigation.component.help; import org.exoplatform.platform.navigation.component.utils.DashboardUtils; import org.exoplatform.platform.navigation.component.utils.NavigationUtils; import org.exoplatform.portal.mop.SiteKey; import org.exoplatform.portal.mop.user.UserNode; import org.exoplatform.portal.webui.util.Util; import org.exoplatform.services.log.ExoLogger; import org.exoplatform.services.log.Log; import org.exoplatform.social.core.space.model.Space; import org.exoplatform.social.core.space.spi.SpaceService; import org.exoplatform.social.webui.Utils; /** * @author <a href="kmenzli@exoplatform.com">Kmenzli</a> */ public class Helper { private static final Log LOG = ExoLogger.getExoLogger(Helper.class); public static final String DEFAULT_HELP_ID = "default"; public static boolean present (String theString) { boolean present = false; if (theString != null && theString.length()!=0) { present = true; } return present; } public static String getCurrentNavigation(SpaceService spaceService){ try { String nav=Util.getUIPortal().getNavPath().getName(); String url = Util.getPortalRequestContext().getRequest().getRequestURL().toString(); if((url.contains("/:spaces:"))||(url.contains("/spaces/"))) { if(url.contains("documents")) { return "space:document"; } else if(url.contains("wiki")) { return "space:wiki"; } else if(url.contains("tasks")) { return "space:tasks"; } else if((url.contains("answer"))||(url.contains("faq")) || (url.contains("poll"))) { return "space:faq_annswer"; } else if(url.contains("calendar")) { return "space:calendar"; } else if(url.contains("forum")) { return "space:forum"; } else if(nav.equals("settings")) { return "space:manager"; } else { String spaceUrl=getSelectedPageNode().getURI(); Space space = spaceService.getSpaceByUrl(spaceUrl); if (space != null) { if(space.getPrettyName().equals(nav)){ return "space:activity_stream"; } } else { return DEFAULT_HELP_ID; } } } else if(url.contains("wiki")&&(isProfileOwner())){ return "personnal:wiki"; } else if((url.contains("profile"))&&(isProfileOwner())){ return "personnal:profile"; } else if((url.contains("connections"))&&(isProfileOwner())){ return "personnal:connections"; } else if((url.contains("activities"))&&(isProfileOwner())){ return "personnal:activities"; } else if((url.contains("notifications"))&&(isProfileOwner())){ return "personnal:notifications"; } else if(url.contains("all-spaces")){ return "personnal:all-spaces"; } else if((nav!=null)&&(nav.equals("home"))){ if((SiteKey.portal(getCurrentPortal())!=null) &&(SiteKey.portal(getCurrentPortal()).getName().equals("intranet"))){ return "Company Context Home"; } } else if((nav!=null)&&(nav.equals("calendar"))){ return "Company Context Calendar"; } else if((nav!=null)&&(nav.equals("forum"))){ return "Company Context Forum"; } else if((nav!=null)&&(nav.equals("wiki"))){ return "Company Context Wiki"; } else if((nav!=null)&&(nav.equals("tasks"))){ return "Company Context Tasks"; } else if((nav!=null)&&(nav.equals("documents"))){ return "Company Context Documents"; } else if((nav!=null)&&((nav.equals("FAQ"))||(nav.equals("answers")))){ return "Company Context FAQ:Answers"; } else if((nav!=null)&&((nav.equals("connexions")))){ return "Company Context Connections"; } String dashboardUrl = DashboardUtils.getDashboardURL(); if(url.contains(dashboardUrl.substring(0, dashboardUrl.lastIndexOf("/")))){ return "dashboard"; } return DEFAULT_HELP_ID; } catch (Exception E) { LOG.warn("Can not load the currentNavigation ", E); return null; } } public static boolean isProfileOwner() { return Utils.getViewerRemoteId().equals(NavigationUtils.getCurrentUser()); } public static String getCurrentPortal() { return Util.getPortalRequestContext().getPortalOwner(); } public static UserNode getSelectedPageNode() throws Exception { return Util.getUIPortal().getSelectedUserNode(); } }