Example usage for com.liferay.portal.kernel.util PropsKeys LAYOUT_CONFIGURATION_ACTION_UPDATE

List of usage examples for com.liferay.portal.kernel.util PropsKeys LAYOUT_CONFIGURATION_ACTION_UPDATE

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.util PropsKeys LAYOUT_CONFIGURATION_ACTION_UPDATE.

Prototype

String LAYOUT_CONFIGURATION_ACTION_UPDATE

To view the source code for com.liferay.portal.kernel.util PropsKeys LAYOUT_CONFIGURATION_ACTION_UPDATE.

Click Source Link

Usage

From source file:com.liferay.layout.admin.web.internal.portlet.action.EditLayoutMVCActionCommand.java

License:Open Source License

@Override
protected void doProcessAction(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception {

    UploadPortletRequest uploadPortletRequest = _portal.getUploadPortletRequest(actionRequest);

    ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY);

    long groupId = ParamUtil.getLong(actionRequest, "groupId");
    long liveGroupId = ParamUtil.getLong(actionRequest, "liveGroupId");
    long stagingGroupId = ParamUtil.getLong(actionRequest, "stagingGroupId");
    boolean privateLayout = ParamUtil.getBoolean(actionRequest, "privateLayout");
    long layoutId = ParamUtil.getLong(actionRequest, "layoutId");
    Map<Locale, String> nameMap = LocalizationUtil.getLocalizationMap(actionRequest, "name");
    Map<Locale, String> titleMap = LocalizationUtil.getLocalizationMap(actionRequest, "title");
    Map<Locale, String> descriptionMap = LocalizationUtil.getLocalizationMap(actionRequest, "description");
    Map<Locale, String> keywordsMap = LocalizationUtil.getLocalizationMap(actionRequest, "keywords");
    Map<Locale, String> robotsMap = LocalizationUtil.getLocalizationMap(actionRequest, "robots");
    String type = ParamUtil.getString(uploadPortletRequest, "type");
    boolean hidden = ParamUtil.getBoolean(uploadPortletRequest, "hidden");
    Map<Locale, String> friendlyURLMap = LocalizationUtil.getLocalizationMap(actionRequest, "friendlyURL");
    boolean deleteLogo = ParamUtil.getBoolean(actionRequest, "deleteLogo");

    byte[] iconBytes = null;

    long fileEntryId = ParamUtil.getLong(uploadPortletRequest, "fileEntryId");

    if (fileEntryId > 0) {
        FileEntry fileEntry = _dlAppLocalService.getFileEntry(fileEntryId);

        iconBytes = FileUtil.getBytes(fileEntry.getContentStream());
    }/* w w  w. j a  v a2  s .com*/

    ServiceContext serviceContext = ServiceContextFactory.getInstance(Layout.class.getName(), actionRequest);

    Layout layout = _layoutLocalService.getLayout(groupId, privateLayout, layoutId);

    String currentType = layout.getType();

    layout = _layoutService.updateLayout(groupId, privateLayout, layoutId, layout.getParentLayoutId(), nameMap,
            titleMap, descriptionMap, keywordsMap, robotsMap, type, hidden, friendlyURLMap, !deleteLogo,
            iconBytes, serviceContext);

    themeDisplay.clearLayoutFriendlyURL(layout);

    UnicodeProperties layoutTypeSettingsProperties = layout.getTypeSettingsProperties();

    UnicodeProperties formTypeSettingsProperties = PropertiesParamUtil.getProperties(actionRequest,
            "TypeSettingsProperties--");

    String linkToLayoutUuid = ParamUtil.getString(actionRequest, "linkToLayoutUuid");

    if (Validator.isNotNull(linkToLayoutUuid)) {
        Layout linkToLayout = _layoutLocalService.getLayoutByUuidAndGroupId(linkToLayoutUuid, groupId,
                privateLayout);

        formTypeSettingsProperties.put("linkToLayoutId", String.valueOf(linkToLayout.getLayoutId()));
    }

    LayoutTypePortlet layoutTypePortlet = (LayoutTypePortlet) layout.getLayoutType();

    if (type.equals(LayoutConstants.TYPE_PORTLET)) {
        String layoutTemplateId = ParamUtil.getString(uploadPortletRequest, "layoutTemplateId",
                PropsValues.DEFAULT_LAYOUT_TEMPLATE_ID);

        layoutTypePortlet.setLayoutTemplateId(themeDisplay.getUserId(), layoutTemplateId);

        layoutTypeSettingsProperties.putAll(formTypeSettingsProperties);

        boolean layoutCustomizable = GetterUtil
                .getBoolean(layoutTypeSettingsProperties.get(LayoutConstants.CUSTOMIZABLE_LAYOUT));

        if (!layoutCustomizable) {
            layoutTypePortlet.removeCustomization(layoutTypeSettingsProperties);
        }

        layout = _layoutService.updateLayout(groupId, privateLayout, layoutId,
                layoutTypeSettingsProperties.toString());

        if (!currentType.equals(LayoutConstants.TYPE_PORTLET)) {
            _portletPreferencesLocalService.deletePortletPreferences(0, PortletKeys.PREFS_OWNER_TYPE_LAYOUT,
                    layout.getPlid());
        }
    } else {
        layoutTypeSettingsProperties.putAll(formTypeSettingsProperties);

        layoutTypeSettingsProperties.putAll(layout.getTypeSettingsProperties());

        layout = _layoutService.updateLayout(groupId, privateLayout, layoutId,
                layoutTypeSettingsProperties.toString());
    }

    HttpServletResponse response = _portal.getHttpServletResponse(actionResponse);

    EventsProcessorUtil.process(PropsKeys.LAYOUT_CONFIGURATION_ACTION_UPDATE,
            layoutTypePortlet.getConfigurationActionUpdate(), uploadPortletRequest, response);

    _actionUtil.updateLookAndFeel(actionRequest, themeDisplay.getCompanyId(), liveGroupId, stagingGroupId,
            privateLayout, layout.getLayoutId(), layout.getTypeSettingsProperties());

    String redirect = ParamUtil.getString(actionRequest, "redirect");

    if (Validator.isNull(redirect)) {
        redirect = _portal.getLayoutFullURL(layout, themeDisplay);
    }

    String portletResource = ParamUtil.getString(actionRequest, "portletResource");

    MultiSessionMessages.add(actionRequest, portletResource + "layoutUpdated", layout);

    actionRequest.setAttribute(WebKeys.REDIRECT, redirect);
}

From source file:com.liferay.portlet.layoutsadmin.action.EditLayoutsAction.java

License:Open Source License

protected Object[] updateLayout(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception {

    UploadPortletRequest uploadPortletRequest = PortalUtil.getUploadPortletRequest(actionRequest);

    ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY);

    String cmd = ParamUtil.getString(uploadPortletRequest, Constants.CMD);

    long groupId = ParamUtil.getLong(actionRequest, "groupId");
    long liveGroupId = ParamUtil.getLong(actionRequest, "liveGroupId");
    long stagingGroupId = ParamUtil.getLong(actionRequest, "stagingGroupId");
    boolean privateLayout = ParamUtil.getBoolean(actionRequest, "privateLayout");
    long layoutId = ParamUtil.getLong(actionRequest, "layoutId");
    long parentLayoutId = ParamUtil.getLong(uploadPortletRequest, "parentLayoutId");
    Map<Locale, String> nameMap = LocalizationUtil.getLocalizationMap(actionRequest, "name");
    Map<Locale, String> titleMap = LocalizationUtil.getLocalizationMap(actionRequest, "title");
    Map<Locale, String> descriptionMap = LocalizationUtil.getLocalizationMap(actionRequest, "description");
    Map<Locale, String> keywordsMap = LocalizationUtil.getLocalizationMap(actionRequest, "keywords");
    Map<Locale, String> robotsMap = LocalizationUtil.getLocalizationMap(actionRequest, "robots");
    String type = ParamUtil.getString(uploadPortletRequest, "type");
    boolean hidden = ParamUtil.getBoolean(uploadPortletRequest, "hidden");

    String friendlyURL = ParamUtil.getString(uploadPortletRequest, "friendlyURL");
    boolean iconImage = ParamUtil.getBoolean(uploadPortletRequest, "iconImage");
    byte[] iconBytes = getIconBytes(uploadPortletRequest, "iconFileName");
    long layoutPrototypeId = ParamUtil.getLong(uploadPortletRequest, "layoutPrototypeId");

    ServiceContext serviceContext = ServiceContextFactory.getInstance(Layout.class.getName(), actionRequest);

    Layout layout = null;/*from w  w  w . j a v  a2  s. c om*/
    UnicodeProperties layoutTypeSettingsProperties = null;
    String oldFriendlyURL = StringPool.BLANK;

    if (cmd.equals(Constants.ADD)) {

        // Add layout

        boolean inheritFromParentLayoutId = ParamUtil.getBoolean(uploadPortletRequest,
                "inheritFromParentLayoutId");

        if (inheritFromParentLayoutId && (parentLayoutId > 0)) {
            Layout parentLayout = LayoutLocalServiceUtil.getLayout(groupId, privateLayout, parentLayoutId);

            layout = LayoutServiceUtil.addLayout(groupId, privateLayout, parentLayoutId, nameMap, titleMap,
                    descriptionMap, keywordsMap, robotsMap, parentLayout.getType(), hidden, friendlyURL,
                    serviceContext);

            LayoutServiceUtil.updateLayout(layout.getGroupId(), layout.isPrivateLayout(), layout.getLayoutId(),
                    parentLayout.getTypeSettings());

            if (parentLayout.isTypePortlet()) {
                ActionUtil.copyPreferences(actionRequest, layout, parentLayout);

                SitesUtil.copyLookAndFeel(layout, parentLayout);
            }
        } else if (layoutPrototypeId > 0) {
            LayoutPrototype layoutPrototype = LayoutPrototypeServiceUtil.getLayoutPrototype(layoutPrototypeId);

            String layoutPrototypeLinkEnabled = ParamUtil.getString(uploadPortletRequest,
                    "layoutPrototypeLinkEnabled");

            if (Validator.isNotNull(layoutPrototypeLinkEnabled)) {
                serviceContext.setAttribute("layoutPrototypeLinkEnabled", layoutPrototypeLinkEnabled);
            }

            serviceContext.setAttribute("layoutPrototypeUuid", layoutPrototype.getUuid());

            layout = LayoutServiceUtil.addLayout(groupId, privateLayout, parentLayoutId, nameMap, titleMap,
                    descriptionMap, keywordsMap, robotsMap, LayoutConstants.TYPE_PORTLET, hidden, friendlyURL,
                    serviceContext);
        } else {
            layout = LayoutServiceUtil.addLayout(groupId, privateLayout, parentLayoutId, nameMap, titleMap,
                    descriptionMap, keywordsMap, robotsMap, type, hidden, friendlyURL, serviceContext);
        }

        layoutTypeSettingsProperties = layout.getTypeSettingsProperties();
    } else {

        // Update layout

        layout = LayoutLocalServiceUtil.getLayout(groupId, privateLayout, layoutId);

        oldFriendlyURL = layout.getFriendlyURL();

        layout = LayoutServiceUtil.updateLayout(groupId, privateLayout, layoutId, layout.getParentLayoutId(),
                nameMap, titleMap, descriptionMap, keywordsMap, robotsMap, type, hidden, friendlyURL,
                Boolean.valueOf(iconImage), iconBytes, serviceContext);

        layoutTypeSettingsProperties = layout.getTypeSettingsProperties();

        if (oldFriendlyURL.equals(layout.getFriendlyURL())) {
            oldFriendlyURL = StringPool.BLANK;
        }

        UnicodeProperties formTypeSettingsProperties = PropertiesParamUtil.getProperties(actionRequest,
                "TypeSettingsProperties--");

        if (type.equals(LayoutConstants.TYPE_PORTLET)) {
            LayoutTypePortlet layoutTypePortlet = (LayoutTypePortlet) layout.getLayoutType();

            String layoutTemplateId = ParamUtil.getString(uploadPortletRequest, "layoutTemplateId",
                    PropsValues.DEFAULT_LAYOUT_TEMPLATE_ID);

            layoutTypePortlet.setLayoutTemplateId(themeDisplay.getUserId(), layoutTemplateId);

            long copyLayoutId = ParamUtil.getLong(uploadPortletRequest, "copyLayoutId");

            if ((copyLayoutId > 0) && (copyLayoutId != layout.getLayoutId())) {

                try {
                    Layout copyLayout = LayoutLocalServiceUtil.getLayout(groupId, privateLayout, copyLayoutId);

                    if (copyLayout.isTypePortlet()) {
                        layoutTypeSettingsProperties = copyLayout.getTypeSettingsProperties();

                        ActionUtil.copyPreferences(actionRequest, layout, copyLayout);

                        SitesUtil.copyLookAndFeel(layout, copyLayout);
                    }
                } catch (NoSuchLayoutException nsle) {
                }
            } else {
                layoutTypeSettingsProperties.putAll(formTypeSettingsProperties);

                LayoutServiceUtil.updateLayout(groupId, privateLayout, layoutId, layout.getTypeSettings());
            }
        } else {
            layout.setTypeSettingsProperties(formTypeSettingsProperties);

            layoutTypeSettingsProperties.putAll(layout.getTypeSettingsProperties());

            LayoutServiceUtil.updateLayout(groupId, privateLayout, layoutId, layout.getTypeSettings());
        }

        HttpServletResponse response = PortalUtil.getHttpServletResponse(actionResponse);

        LayoutSettings layoutSettings = LayoutSettings.getInstance(layout);

        EventsProcessorUtil.process(PropsKeys.LAYOUT_CONFIGURATION_ACTION_UPDATE,
                layoutSettings.getConfigurationActionUpdate(), uploadPortletRequest, response);
    }

    updateLookAndFeel(actionRequest, themeDisplay.getCompanyId(), liveGroupId, stagingGroupId, privateLayout,
            layout.getLayoutId(), layoutTypeSettingsProperties);

    updateCustomAttributes(themeDisplay.getCompanyId(), layout, uploadPortletRequest);

    return new Object[] { layout, oldFriendlyURL };
}

From source file:com.liferay.portlet.layoutsadmin.action.UpdateLayoutAction.java

License:Open Source License

protected String[] addPage(ThemeDisplay themeDisplay, HttpServletRequest request, HttpServletResponse response)
        throws Exception {

    String doAsUserId = ParamUtil.getString(request, "doAsUserId");
    String doAsUserLanguageId = ParamUtil.getString(request, "doAsUserLanguageId");

    long groupId = ParamUtil.getLong(request, "groupId");
    boolean privateLayout = ParamUtil.getBoolean(request, "privateLayout");
    long parentLayoutId = ParamUtil.getLong(request, "parentLayoutId");
    String name = ParamUtil.getString(request, "name", "New Page");
    String title = StringPool.BLANK;
    String description = StringPool.BLANK;
    String type = LayoutConstants.TYPE_PORTLET;
    boolean hidden = false;
    String friendlyURL = StringPool.BLANK;
    long layoutPrototypeId = ParamUtil.getLong(request, "layoutPrototypeId");

    ServiceContext serviceContext = ServiceContextFactory.getInstance(request);

    Layout layout = null;/*ww  w . jav a 2  s .co m*/

    if (layoutPrototypeId > 0) {
        LayoutPrototype layoutPrototype = LayoutPrototypeServiceUtil.getLayoutPrototype(layoutPrototypeId);

        serviceContext.setAttribute("layoutPrototypeLinkEnabled", true);
        serviceContext.setAttribute("layoutPrototypeUuid", layoutPrototype.getUuid());

        layout = LayoutServiceUtil.addLayout(groupId, privateLayout, parentLayoutId, name, title, description,
                LayoutConstants.TYPE_PORTLET, false, friendlyURL, serviceContext);
    } else {
        layout = LayoutServiceUtil.addLayout(groupId, privateLayout, parentLayoutId, name, title, description,
                type, hidden, friendlyURL, serviceContext);
    }

    LayoutSettings layoutSettings = LayoutSettings.getInstance(layout);

    EventsProcessorUtil.process(PropsKeys.LAYOUT_CONFIGURATION_ACTION_UPDATE,
            layoutSettings.getConfigurationActionUpdate(), request, response);

    String layoutURL = PortalUtil.getLayoutURL(layout, themeDisplay);

    if (Validator.isNotNull(doAsUserId)) {
        layoutURL = HttpUtil.addParameter(layoutURL, "doAsUserId", themeDisplay.getDoAsUserId());
    }

    if (Validator.isNotNull(doAsUserLanguageId)) {
        layoutURL = HttpUtil.addParameter(layoutURL, "doAsUserLanguageId",
                themeDisplay.getDoAsUserLanguageId());
    }

    boolean updateable = SitesUtil.isLayoutUpdateable(layout);
    boolean deleteable = updateable
            && LayoutPermissionUtil.contains(themeDisplay.getPermissionChecker(), layout, ActionKeys.DELETE);

    return new String[] { String.valueOf(layout.getLayoutId()), layoutURL, String.valueOf(deleteable),
            String.valueOf(updateable) };
}