001
014
015 package com.liferay.portal.convert.action;
016
017 import com.liferay.portal.kernel.util.Constants;
018 import com.liferay.portal.kernel.util.GetterUtil;
019 import com.liferay.portal.kernel.util.ParamUtil;
020 import com.liferay.portal.kernel.util.StringUtil;
021 import com.liferay.portal.kernel.util.WebKeys;
022 import com.liferay.portal.theme.ThemeDisplay;
023 import com.liferay.portlet.documentlibrary.model.DLFileEntryConstants;
024 import com.liferay.portlet.documentlibrary.service.DLFileEntryLocalServiceUtil;
025 import com.liferay.portlet.expando.action.EditExpandoAction;
026 import com.liferay.portlet.expando.model.ExpandoBridge;
027 import com.liferay.portlet.expando.util.ExpandoBridgeFactoryUtil;
028
029 import javax.portlet.ActionRequest;
030 import javax.portlet.ActionResponse;
031 import javax.portlet.PortletConfig;
032 import javax.portlet.RenderRequest;
033 import javax.portlet.RenderResponse;
034
035 import org.apache.struts.action.ActionForm;
036 import org.apache.struts.action.ActionForward;
037 import org.apache.struts.action.ActionMapping;
038
039
042 public class EditDocumentLibraryExtraSettingsAction extends EditExpandoAction {
043
044 @Override
045 public void processAction(
046 ActionMapping actionMapping, ActionForm actionForm,
047 PortletConfig portletConfig, ActionRequest actionRequest,
048 ActionResponse actionResponse)
049 throws Exception {
050
051 String cmd = ParamUtil.getString(actionRequest, Constants.CMD);
052
053 if (cmd.equals("convert")) {
054 convert(actionRequest, actionResponse);
055 }
056
057 sendRedirect(actionRequest, actionResponse);
058 }
059
060 @Override
061 public ActionForward render(
062 ActionMapping actionMapping, ActionForm actionForm,
063 PortletConfig portletConfig, RenderRequest renderRequest,
064 RenderResponse renderResponse)
065 throws Exception {
066
067 return actionMapping.findForward(
068 getForward(
069 renderRequest,
070 "portlet.admin.edit_document_library_extra_settings"));
071 }
072
073 protected int addCustomField(long companyId, String name, String preset)
074 throws Exception {
075
076 ExpandoBridge expandoBridge = ExpandoBridgeFactoryUtil.getExpandoBridge(
077 companyId, DLFileEntryConstants.getClassName(), 0);
078
079 if (preset.startsWith("Preset")) {
080 return addPresetExpando(expandoBridge, preset, name);
081 }
082 else {
083 int type = GetterUtil.getInteger(preset);
084
085 expandoBridge.addAttribute(name, type);
086
087 return type;
088 }
089 }
090
091 protected void convert(
092 ActionRequest actionRequest, ActionResponse actionResponse)
093 throws Exception {
094
095 ThemeDisplay themeDisplay = (ThemeDisplay)actionRequest.getAttribute(
096 WebKeys.THEME_DISPLAY);
097
098 String[] keys = StringUtil.split(
099 ParamUtil.getString(actionRequest, "keys"));
100
101 String[] presets = new String[keys.length];
102
103 int[] types = new int[keys.length];
104
105 for (int i = 0; i < keys.length; i++) {
106 presets[i] = ParamUtil.getString(actionRequest, "type_" + keys[i]);
107
108 types[i] = addCustomField(
109 themeDisplay.getCompanyId(), keys[i], presets[i]);
110 }
111
112 DLFileEntryLocalServiceUtil.convertExtraSettings(keys);
113 }
114
115 }