/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library 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 library 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.
*/
package com.liferay.wiki.web.internal.display.context.util;
import com.liferay.portal.kernel.util.Constants;
import com.liferay.portal.kernel.util.StringPool;
import com.liferay.wiki.configuration.WikiGroupServiceConfiguration;
import com.liferay.wiki.model.WikiNode;
import javax.portlet.ActionRequest;
import javax.portlet.PortletURL;
import javax.portlet.RenderResponse;
/**
* @author Adolfo PĂ©rez
*/
public class WikiURLHelper {
public WikiURLHelper(
WikiRequestHelper wikiRequestHelper, RenderResponse renderResponse,
WikiGroupServiceConfiguration wikiGroupServiceConfiguration) {
_wikiRequestHelper = wikiRequestHelper;
_renderResponse = renderResponse;
_wikiGroupServiceConfiguration = wikiGroupServiceConfiguration;
}
public PortletURL getBackToNodeURL(WikiNode wikiNode) {
return getWikiNodeBaseURL(wikiNode);
}
public PortletURL getBackToViewPagesURL(WikiNode node) {
PortletURL viewPagesURL = _renderResponse.createRenderURL();
viewPagesURL.setParameter("mvcRenderCommandName", "/wiki/view_pages");
viewPagesURL.setParameter("navigation", "all-pages");
viewPagesURL.setParameter("nodeId", String.valueOf(node.getNodeId()));
return viewPagesURL;
}
public PortletURL getFrontPageURL(WikiNode wikiNode) {
PortletURL frontPageURL = getWikiNodeBaseURL(wikiNode);
frontPageURL.setParameter("mvcRenderCommandName", "/wiki/view");
frontPageURL.setParameter(
"title", _wikiGroupServiceConfiguration.frontPageName());
frontPageURL.setParameter("tag", StringPool.BLANK);
return frontPageURL;
}
public PortletURL getSearchURL() {
PortletURL searchURL = _renderResponse.createRenderURL();
searchURL.setParameter("mvcRenderCommandName", "/wiki/search");
return searchURL;
}
public PortletURL getUndoTrashURL() {
PortletURL undoTrashURL = _renderResponse.createActionURL();
undoTrashURL.setParameter(ActionRequest.ACTION_NAME, "/wiki/edit_page");
undoTrashURL.setParameter(Constants.CMD, Constants.RESTORE);
return undoTrashURL;
}
public PortletURL getViewDraftPagesURL(WikiNode wikiNode) {
PortletURL viewDraftPagesURL = getWikiNodeBaseURL(wikiNode);
viewDraftPagesURL.setParameter(
"mvcRenderCommandName", "/wiki/view_draft_pages");
return viewDraftPagesURL;
}
public PortletURL getViewFrontPagePageURL(WikiNode wikiNode) {
return getViewPageURL(
wikiNode, _wikiGroupServiceConfiguration.frontPageName());
}
public PortletURL getViewOrphanPagesURL(WikiNode wikiNode) {
PortletURL viewOrphanPagesURL = getWikiNodeBaseURL(wikiNode);
viewOrphanPagesURL.setParameter(
"mvcRenderCommandName", "/wiki/view_orphan_pages");
return viewOrphanPagesURL;
}
public PortletURL getViewPagesURL(WikiNode wikiNode) {
PortletURL viewPagesURL = getWikiNodeBaseURL(wikiNode);
viewPagesURL.setParameter("mvcRenderCommandName", "/wiki/view_pages");
return viewPagesURL;
}
public PortletURL getViewPageURL(WikiNode wikiNode, String title) {
PortletURL viewPageURL = _renderResponse.createRenderURL();
viewPageURL.setParameter("mvcRenderCommandName", "/wiki/view");
viewPageURL.setParameter("nodeName", wikiNode.getName());
viewPageURL.setParameter("title", title);
return viewPageURL;
}
public PortletURL getViewRecentChangesURL(WikiNode wikiNode) {
PortletURL viewRecentChangesURL = getWikiNodeBaseURL(wikiNode);
viewRecentChangesURL.setParameter(
"mvcRenderCommandName", "/wiki/view_recent_changes");
return viewRecentChangesURL;
}
protected PortletURL getWikiNodeBaseURL(WikiNode node) {
PortletURL portletURL = _renderResponse.createRenderURL();
portletURL.setParameter("nodeName", node.getName());
long categoryId = _wikiRequestHelper.getCategoryId();
if (categoryId > 0) {
portletURL.setParameter("categoryId", "0");
}
return portletURL;
}
private final RenderResponse _renderResponse;
private final WikiGroupServiceConfiguration _wikiGroupServiceConfiguration;
private final WikiRequestHelper _wikiRequestHelper;
}