1 31 32 package org.opencms.workplace.tools.history; 33 34 import org.opencms.configuration.CmsSystemConfiguration; 35 import org.opencms.i18n.CmsMessages; 36 import org.opencms.jsp.CmsJspActionElement; 37 import org.opencms.main.CmsIllegalArgumentException; 38 import org.opencms.main.OpenCms; 39 import org.opencms.workplace.CmsDialog; 40 import org.opencms.workplace.CmsWorkplaceSettings; 41 42 import javax.servlet.http.HttpServletRequest ; 43 import javax.servlet.http.HttpServletResponse ; 44 import javax.servlet.jsp.JspException ; 45 import javax.servlet.jsp.PageContext ; 46 47 62 public class CmsAdminHistorySettings extends CmsDialog { 63 64 65 public static final int ACTION_SAVE_EDIT = 300; 66 67 68 public static final String DIALOG_SAVE_EDIT = "saveedit"; 69 70 71 public static final String DIALOG_TYPE = "historysettings"; 72 73 78 public CmsAdminHistorySettings(CmsJspActionElement jsp) { 79 80 super(jsp); 81 } 82 83 90 public CmsAdminHistorySettings(PageContext context, HttpServletRequest req, HttpServletResponse res) { 91 92 this(new CmsJspActionElement(context, req, res)); 93 } 94 95 101 public void actionEdit(HttpServletRequest request) throws JspException { 102 103 getJsp().getRequest().setAttribute(SESSION_WORKPLACE_CLASS, this); 105 try { 106 performEditOperation(request); 107 actionCloseDialog(); 109 } catch (CmsIllegalArgumentException e) { 110 112 includeErrorpage(this, e); 113 } 114 } 115 116 121 public String buildSettingsForm() { 122 123 StringBuffer retValue = new StringBuffer (512); 124 boolean histEnabled = OpenCms.getSystemInfo().isVersionHistoryEnabled(); 125 int maxVersions = OpenCms.getSystemInfo().getVersionHistoryMaxCount(); 126 CmsMessages messages = Messages.get().getBundle(getLocale()); 127 retValue.append("<table border=\"0\">\n"); 128 retValue.append("<tr>\n"); 129 retValue.append("<td>" + messages.key(Messages.GUI_INPUT_HISTENABLED_0) + "</td>\n"); 130 retValue.append("<td><input type=\"radio\" name=\"enable\" id=\"enabled\" value=\"true\" onclick=\"checkEnabled();\""); 131 if (histEnabled) { 132 retValue.append(" checked=\"checked\""); 133 } 134 retValue.append("></td>\n"); 135 retValue.append("<td>" + messages.key(Messages.GUI_INPUT_HISTENABLE_YES_0) + "</td>\n"); 136 retValue.append("<td> </td>\n"); 137 retValue.append("<td><input type=\"radio\" name=\"enable\" id=\"disabled\" value=\"false\" onclick=\"checkEnabled();\""); 138 if (!histEnabled) { 139 retValue.append(" checked=\"checked\""); 140 } 141 retValue.append("></td>\n"); 142 retValue.append("<td>" + messages.key(Messages.GUI_INPUT_HISTENABLE_NO_0) + "</td>\n"); 143 retValue.append("</tr>\n"); 144 retValue.append("</table>\n"); 145 146 retValue.append("<div class=\"hide\" id=\"settings\">\n"); 147 retValue.append("<table border=\"0\">\n"); 148 retValue.append("<tr>\n"); 149 retValue.append("<td>" + messages.key(Messages.GUI_INPUT_HISTNUMBER_0) + "</td>\n"); 150 retValue.append("<td colspan=\"5\"><input type=\"text\" name=\"versions\" value=\""); 151 if (maxVersions != -1) { 152 retValue.append(maxVersions); 153 } 154 retValue.append("\" onkeypress=\"event.returnValue=isDigit();\"></td>\n"); 155 retValue.append("</tr>\n"); 156 retValue.append("</table>\n"); 157 retValue.append("</div>\n"); 158 159 return retValue.toString(); 160 } 161 162 165 protected void initWorkplaceRequestValues(CmsWorkplaceSettings settings, HttpServletRequest request) { 166 167 fillParamValues(request); 169 setParamDialogtype(DIALOG_TYPE); 171 if (DIALOG_SAVE_EDIT.equals(getParamAction())) { 173 setAction(ACTION_SAVE_EDIT); 174 } else if (DIALOG_CANCEL.equals(getParamAction())) { 175 setAction(ACTION_CANCEL); 176 } else { 177 setAction(ACTION_DEFAULT); 179 setParamTitle(Messages.get().getBundle(getLocale()).key(Messages.GUI_LABEL_ADMNIN_HISTORY_SETTINGS_0)); 180 } 181 } 182 183 190 private boolean performEditOperation(HttpServletRequest request) throws CmsIllegalArgumentException { 191 192 String paramEnabled = request.getParameter("enable"); 194 String paramVersions = request.getParameter("versions"); 195 196 boolean enabled = Boolean.valueOf(paramEnabled).booleanValue(); 198 int versions = 0; 199 try { 200 versions = Integer.parseInt(paramVersions); 201 } catch (NumberFormatException e) { 202 throw new CmsIllegalArgumentException(Messages.get().container(Messages.ERR_NO_INT_ENTERED_0), e); 204 } 205 if (versions < 1) { 206 throw new CmsIllegalArgumentException(Messages.get().container(Messages.ERR_NO_POSITIVE_INT_0)); 208 } 209 210 OpenCms.getSystemInfo().setVersionHistorySettings(enabled, versions); 211 OpenCms.writeConfiguration(CmsSystemConfiguration.class); 212 213 return true; 214 } 215 216 } 217 | Popular Tags |