Liferay 7 Clay Management Toolbar

915 Views Asked by At

How add advance search in Clay management toolbar ?

<clay:management-toolbar
            clearResultsURL="${assignmentsManagementToolbarDisplayContext.getSearchActionURL()}"
            componentId="assignmentsManagementToolbar"
            creationMenu="${assignmentsManagementToolbarDisplayContext.getCreationMenu()}"
            disabled="${assignmentCount eq 0}"
            filterDropdownItems="${assignmentsManagementToolbarDisplayContext.getFilterDropdownItems()}"
            itemsTotal="${assignmentCount}"
            searchActionURL="${assignmentsManagementToolbarDisplayContext.getSearchActionURL()}"
            searchContainerId="assignmentEntries"
            searchFormName="searchFm"
            selectable="false"          
            showInfoButton="<%= true %>"
            sortingOrder="${assignmentsManagementToolbarDisplayContext.getOrderByType()}"
            sortingURL="${assignmentsManagementToolbarDisplayContext.getSortingURL()}"
            viewTypeItems="${assignmentsManagementToolbarDisplayContext.getViewTypes()}"
            showAdvancedSearch="<%= true %>"
            searchDropdownItems="${assignmentsManagementToolbarDisplayContext.getFilterDropdownItems()}"
        />

How to add functionality of Advance Search ?

1

There are 1 best solutions below

0
On

view.jsp

<%
PortletURL portletURL = renderResponse.createRenderURL();
AssignmentsManagementToolbarDisplayContext assignmentsManagementToolbarDisplayContext = new AssignmentsManagementToolbarDisplayContext(renderRequest, renderResponse);
%>

<clay:management-toolbar
            clearResultsURL="${assignmentsManagementToolbarDisplayContext.getSearchActionURL()}"
            componentId="assignmentsManagementToolbar"
            creationMenu="${assignmentsManagementToolbarDisplayContext.getCreationMenu()}"
            disabled="${assignmentCount eq 0}"
            filterDropdownItems="${assignmentsManagementToolbarDisplayContext.getFilterDropdownItems()}"
            itemsTotal="${assignmentCount}"
            searchActionURL="${assignmentsManagementToolbarDisplayContext.getSearchActionURL()}"
            searchContainerId="assignmentEntries"
            searchFormName="searchFm"
            selectable="false"          
            showInfoButton="<%= true %>"
            sortingOrder="${assignmentsManagementToolbarDisplayContext.getOrderByType()}"
            sortingURL="${assignmentsManagementToolbarDisplayContext.getSortingURL()}"
            viewTypeItems="${assignmentsManagementToolbarDisplayContext.getViewTypes()}"
            showAdvancedSearch="<%= true %>"
            searchDropdownItems="${assignmentsManagementToolbarDisplayContext.getFilterDropdownItems()}"
        />

class -> AssignmentsManagementRequestHelper

public class AssignmentsManagementRequestHelper extends BaseRequestHelper{

    public AssignmentsManagementRequestHelper(HttpServletRequest httpServletRequest) {
        super(httpServletRequest);
        
        _renderRequest = (RenderRequest)httpServletRequest.getAttribute(JavaConstants.JAVAX_PORTLET_REQUEST);
        _portletPreferences = _renderRequest.getPreferences();
    }
    
    public PortletPreferences getPortletPreferences() {
        return _portletPreferences;
    }
    
    public RenderRequest getRenderRequest() {
        return _renderRequest;
    }
    
    private final PortletPreferences _portletPreferences;
    private final RenderRequest _renderRequest;

}

class -> AssignmentsManagementToolbarDisplayContext

public class AssignmentsManagementToolbarDisplayContext {
    
    public AssignmentsManagementToolbarDisplayContext(
            RenderRequest renderRequest,
            RenderResponse renderResponse) {
        _renderRequest = renderRequest;
        _renderResponse = renderResponse;
        _assignmentsManagementRequestHelper = new AssignmentsManagementRequestHelper(PortalUtil.getHttpServletRequest(_renderRequest));
    }

}

You can refer to Liferay portal source code for module : dynamic-data-lists.

web folder