
META-INF.resources.wiki.edit_page.jsp Maven / Gradle / Ivy
<%--
/**
* 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.
*/
--%>
<%@ include file="/wiki/init.jsp" %>
<%
String redirect = ParamUtil.getString(request, "redirect");
WikiEngineRenderer wikiEngineRenderer = (WikiEngineRenderer)request.getAttribute(WikiWebKeys.WIKI_ENGINE_RENDERER);
WikiNode node = (WikiNode)request.getAttribute(WikiWebKeys.WIKI_NODE);
WikiPage wikiPage = (WikiPage)request.getAttribute(WikiWebKeys.WIKI_PAGE);
long nodeId = BeanParamUtil.getLong(wikiPage, request, "nodeId");
String title = BeanParamUtil.getString(wikiPage, request, "title");
boolean editTitle = ParamUtil.getBoolean(request, "editTitle");
String selectedFormat = BeanParamUtil.getString(wikiPage, request, "format", wikiGroupServiceOverriddenConfiguration.defaultFormat());
String parentTitle = BeanParamUtil.getString(wikiPage, request, "parentTitle");
boolean editable = false;
if (wikiPage != null) {
if (WikiPagePermissionChecker.contains(permissionChecker, wikiPage, ActionKeys.UPDATE)) {
editable = true;
}
}
else if ((wikiPage == null) && editTitle) {
editable = true;
wikiPage = new WikiPageImpl();
wikiPage.setNew(true);
wikiPage.setNodeId(node.getNodeId());
wikiPage.setFormat(selectedFormat);
wikiPage.setParentTitle(parentTitle);
}
if (Validator.isNotNull(title)) {
try {
WikiPageTitleValidator wikiPageTitleValidator = (WikiPageTitleValidator)request.getAttribute(WikiWebKeys.WIKI_PAGE_TITLE_VALIDATOR);
wikiPageTitleValidator.validate(title);
editable = true;
}
catch (PageTitleException pte) {
editTitle = true;
}
}
long templateNodeId = ParamUtil.getLong(request, "templateNodeId");
String templateTitle = ParamUtil.getString(request, "templateTitle");
WikiPage templatePage = null;
if ((templateNodeId > 0) && Validator.isNotNull(templateTitle)) {
try {
templatePage = WikiPageServiceUtil.getPage(templateNodeId, templateTitle);
if (Validator.isNull(parentTitle)) {
parentTitle = templatePage.getParentTitle();
if (wikiPage.isNew()) {
selectedFormat = templatePage.getFormat();
wikiPage.setContent(templatePage.getContent());
wikiPage.setFormat(selectedFormat);
wikiPage.setParentTitle(parentTitle);
}
}
}
catch (Exception e) {
}
}
WikiURLHelper wikiURLHelper = new WikiURLHelper(wikiRequestHelper, renderResponse, wikiGroupServiceConfiguration);
PortletURL backToViewPagesURL = wikiURLHelper.getBackToViewPagesURL(node);
if (Validator.isNull(redirect)) {
redirect = backToViewPagesURL.toString();
}
String headerTitle = ((wikiPage == null) || wikiPage.isNew()) ? LanguageUtil.get(request, "new-wiki-page") : wikiPage.getTitle();
boolean portletTitleBasedNavigation = GetterUtil.getBoolean(portletConfig.getInitParameter("portlet-title-based-navigation"));
if (portletTitleBasedNavigation) {
portletDisplay.setShowBackIcon(true);
portletDisplay.setURLBack(backToViewPagesURL.toString());
renderResponse.setTitle(headerTitle);
}
%>
>
<%
Format dateFormatDate = FastDateFormatFactoryUtil.getDateTime(locale, timeZone);
%>
<%= HtmlUtil.escape(title) %>
<%
wikiEngineRenderer.renderEditPageHTML(selectedFormat, pageContext, node, wikiPage);
%>
<%
long resourcePrimKey = 0;
if ((wikiPage != null) && !wikiPage.isNew()) {
resourcePrimKey = wikiPage.getResourcePrimKey();
}
else if (templatePage != null) {
resourcePrimKey = templatePage.getResourcePrimKey();
}
long assetEntryId = 0;
long classPK = resourcePrimKey;
if ((wikiPage != null) && !wikiPage.isNew() && !wikiPage.isApproved() && (wikiPage.getVersion() != WikiPageConstants.VERSION_DEFAULT)) {
AssetEntry assetEntry = AssetEntryLocalServiceUtil.fetchEntry(WikiPage.class.getName(), wikiPage.getPrimaryKey());
if (assetEntry != null) {
assetEntryId = assetEntry.getEntryId();
classPK = wikiPage.getPrimaryKey();
}
}
%>
<%
Collection formats = wikiEngineRenderer.getFormats();
%>
<%
for (String format : formats) {
%>
<%
}
%>
<%
boolean pending = false;
if (wikiPage != null) {
pending = wikiPage.isPending();
}
%>
<%
String saveButtonLabel = "save";
if ((wikiPage == null) || wikiPage.isDraft() || wikiPage.isApproved()) {
saveButtonLabel = "save-as-draft";
}
String publishButtonLabel = "publish";
if (WorkflowDefinitionLinkLocalServiceUtil.hasWorkflowDefinitionLink(themeDisplay.getCompanyId(), scopeGroupId, WikiPage.class.getName())) {
publishButtonLabel = "submit-for-publication";
}
%>
var form = $(document. fm);
var formatSelect = form.fm('format');
var currentFormat = formatSelect.find('option:selected').text().trim();
var currentIndex = formatSelect.prop('selectedIndex');
formatSelect.on(
'change',
function(event) {
var newFormat = formatSelect.find('option:selected').text().trim();
var confirmMessage = '<%= UnicodeLanguageUtil.get(request, "you-may-lose-formatting-when-switching-from-x-to-x") %>';
confirmMessage = _.sub(confirmMessage, currentFormat, newFormat);
if (!confirm(confirmMessage)) {
formatSelect.prop('selectedIndex', currentIndex);
return;
}
var titleEditor = window. titleEditor;
if (titleEditor) {
form.fm('title').val(titleEditor.getText());
}
var contentEditor = window. contentEditor;
if (contentEditor) {
form.fm('content').val(contentEditor.getHTML());
}
form.attr('action', '<%= editPageRenderURL %>');
submitForm(form, null, null, false);
}
);
function publishPage() {
var form = AUI.$(document. fm);
form.fm('workflowAction').val('<%= WorkflowConstants.ACTION_PUBLISH %>');
savePage();
}
function savePage() {
var form = AUI.$(document. fm);
form.fm('<%= Constants.CMD %>').val('<%= ((wikiPage == null) || wikiPage.isNew()) ? Constants.ADD : Constants.UPDATE %>');
var titleEditor = window. titleEditor;
if (titleEditor) {
form.fm('title').val(titleEditor.getText());
}
var contentEditor = window. contentEditor;
if (contentEditor) {
form.fm('content').val(contentEditor.getHTML());
}
submitForm(form);
}
<%
if ((wikiPage != null) && !wikiPage.isNew()) {
PortletURL viewPageURL = wikiURLHelper.getViewPageURL(node, title);
PortalUtil.addPortletBreadcrumbEntry(request, wikiPage.getTitle(), viewPageURL.toString());
PortalUtil.addPortletBreadcrumbEntry(request, LanguageUtil.get(request, "edit"), currentURL);
}
else {
PortalUtil.addPortletBreadcrumbEntry(request, LanguageUtil.get(request, "add-page"), currentURL);
}
%>
© 2015 - 2025 Weber Informatics LLC | Privacy Policy