Foren

Left Navigation Query

thumbnail
Nithin KV, geändert vor 8 Jahren.

Left Navigation Query

Junior Member Beiträge: 56 Beitrittsdatum: 23.07.12 Neueste Beiträge
Hi All,

I have a query regarding Left navigation. Currently the left navigation code is written in the default render method. So everytime I click on any link in left navigation the page reloads I am able to get the value for Navitem.isChildSelected() but when i implement the same left navigation with Ajax in which i have put the left navigation code in a different method instead of default render, I am not able to get the value for Navitem.isChildSelected(). Anyone has faced this issue before ?
thumbnail
Olaf Kock, geändert vor 8 Jahren.

RE: Left Navigation Query

Liferay Legend Beiträge: 6403 Beitrittsdatum: 23.09.08 Neueste Beiträge
What do you mean with "Left navigation"? Can you share code? It's hard to argue about program code without the code.
thumbnail
Nithin KV, geändert vor 8 Jahren.

RE: Left Navigation Query

Junior Member Beiträge: 56 Beitrittsdatum: 23.07.12 Neueste Beiträge
Left Navigation is nothing but Custom Left Menu navigation portlet. Please find the attached file. This Custom portlet has been embedded in a theme. Everytime I click on the link , I am loading the content using ajax here.

Please find the below JSP code in which I am trying to change the ul attributes based on the child is selected or not.


<%
if(elmLeftNavMenu.isChildSelected()){
%>
<ul class="<%=elmLeftNavMenu.getName().replaceAll(" ","-") %> in collapse nested-ul" style="height: auto;">
<%
}else if(!elmLeftNavMenu.isChildSelected()){
%>
<ul class="<%=elmLeftNavMenu.getName().replaceAll(" ","-") %> collapse nested-ul">
<%
}
%>
thumbnail
Olaf Kock, geändert vor 8 Jahren.

RE: Left Navigation Query

Liferay Legend Beiträge: 6403 Beitrittsdatum: 23.09.08 Neueste Beiträge
well, that's a custom portlet where you don't show how it's actually implemented. As you say, the jsp works when rendering, but you don't give us a clue how you're requesting it now. Please add more code to show how it's implemented. Without code we can't help you to debug.
thumbnail
Nithin KV, geändert vor 8 Jahren.

RE: Left Navigation Query

Junior Member Beiträge: 56 Beitrittsdatum: 23.07.12 Neueste Beiträge
Hi, Here is the sample code
//ParentJSP

<portlet:renderURL var="renderSampleLeftNavURL" windowState="<%=LiferayWindowState.EXCLUSIVE.toString()%>">
<portlet:param name="render" value="renderSampleLeftNav" />
</portlet:renderURL>

<div id="sampleLeftNavPortletDiv"></div>

<script type="text/javascript">
$.ajaxSetup({cache: false});
$.get('<%=renderSampleLeftNavURL%>',{},
function(data){
$('#SampleLeftNavPortletDiv').html(data);
});
</script>


//ChildJSP

<HEAD>
<%@page pageEncoding="UTF-8"%>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</HEAD>
<portlet:defineObjects />
<div id="SampleLeftNavId">
<ul class="page-sidebar-menu page-sidebar-menu-hover-submenu1" data-keep-expanded="false" data-auto-scroll="true" data-slide-speed="200">
<%
ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);

List<NavItem> SampleDefaultNavItems = (List<NavItem>)request.getAttribute("SampleLeftNavItems");
if(SampleDefaultNavItems != null && SampleDefaultNavItems.size() >0){
for(int i=0;i<SampleDefaultNavItems.size();i++){
NavItem SampleLeftNavMenu = SampleDefaultNavItems.get(i);
if(SampleLeftNavMenu.isSelected() && !SampleLeftNavMenu.isChildSelected()){%>
<li class="active">
<%
}else{
%>
<li>
<%
}

if(SampleLeftNavMenu.hasChildren()){%>
<a data-target="<%='.'+SampleLeftNavMenu.getName().replaceAll(" ","-") %>" data-toggle="collapse" href="javascript:void(0);" class="" title="<% out.println(SampleLeftNavMenu.getName());%>">
<%
if(SampleLeftNavMenu.getURL().contains("/web/portal/message-boards")){
if(SampleLeftNavMenu.isChildSelected() || SampleLeftNavMenu.isSelected()){
%>
<img src='<c:url value="/img/active.png" />' />
<%
}else if(!SampleLeftNavMenu.isChildSelected() && !SampleLeftNavMenu.isSelected()){
%>
<img src='<c:url value="/img/inactive.png" />' />
<%
}
}
%>
</a>

<%
}

%>
</li>

<%
}
}
%>
</ul>
</div>



Controller

//Default handler
@RenderMapping
public String getDefaultSampleLeftNav(RenderRequest request, RenderResponse response, ModSampleap model){
log.info("Entered getDefaultSampleLeftNav Blank Page");
response.setContentType("text/html;charset=UTF-8");
log.info("Exit getDefaultSampleLeftNav Blank Page");
return "ParentJSP";
}


//Method for Ajax Call to render Data
@RenderMapping(params="render=renderSampleLeftNav")
public String getSampleMenu(RenderRequest request, RenderResponse response, ModSampleap model, final PortletRequest portletRequest) throws PrincipalException {
log.info("Entered into getSampleMenu() of SampleLeftNavController");
long startTime = System.currentTimeMillis();
List<NavItem> SampleDefaultNavItems = null;

try {

PortletSession portletSession = portletRequest.getPortletSession();
User user = (User) portletSession.getAttribute(CS_USER_CONTEXT, portletSession.APPLICATION_SCOPE);
ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);

String userId = null;
String partyROle = null;
if (user != null && user.getId() != null) {
userId = user.getId();
partyROle = user.getAssignedPartyRoleName();
log.info("SampleLeftNavController ::: getSampleMenu() ::: UserID" + userId);
SampleDefaultNavItems = SampleMenuService.getNavItems(request, userId,partyROle);

}
model.put("SampleLeftNavItems", SampleDefaultNavItems);
request.setAttribute("SampleLeftNavItems", SampleDefaultNavItems);

} catch (PortalException e) {
log.error("ERROR IN RENDER ::" + e.getMessage());
}

response.setContentType("text/html;charset=UTF-8");
long endTime = System.currentTimeMillis();
log.info("SampleLeftNavPortlet render Ajax method took : "+(endTime-startTime) + " milliseconds");
log.info("Exit from getSampleMenu() of SampleLeftNavController");
return "ChildJSP";

}
thumbnail
Nithin KV, geändert vor 8 Jahren.

RE: Left Navigation Query

Junior Member Beiträge: 56 Beitrittsdatum: 23.07.12 Neueste Beiträge
Hi, Please find the attached sample code
thumbnail
Nithin KV, geändert vor 8 Jahren.

RE: Left Navigation Query

Junior Member Beiträge: 56 Beitrittsdatum: 23.07.12 Neueste Beiträge
Hi.. Any update on this please ?