Index: lams_tool_forum/conf/language/ApplicationResources.properties =================================================================== diff -u -r67333d9d0d4a93667e5b86544a3fca0cf85eacb8 -rb56d90d0894b861844b15ebdb81a6587e7933e63 --- lams_tool_forum/conf/language/ApplicationResources.properties (.../ApplicationResources.properties) (revision 67333d9d0d4a93667e5b86544a3fca0cf85eacb8) +++ lams_tool_forum/conf/language/ApplicationResources.properties (.../ApplicationResources.properties) (revision b56d90d0894b861844b15ebdb81a6587e7933e63) @@ -148,8 +148,10 @@ msg.mark.released=Marks in {0} have been released. label.authoring.advance.allow.upload=Allow learners to upload file label.authoring.advance.allow.new.topics=Allow Learners to create new topics -label.authoring.advance.number.reply=Number of posting per learner per topic +label.authoring.advance.number.reply=Number of posts per learner per topic label.authoring.advance.minimum.reply=Minimum: label.authoring.advance.maximum.reply=Maximum: label.authoring.advance.no.minimum=No minimum -label.authoring.advance.no.maximum=No maximum \ No newline at end of file +label.authoring.advance.no.maximum=No maximum +error.min.less.max=The maximum number of posts must be greater than or equal to the minimum number of posts. +error.limit.char.less.zero=Limitation of input characters must be greater zero. \ No newline at end of file Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/AuthoringAction.java =================================================================== diff -u -r9dd6deeaba1a5c8b12dadb8689a7b462f0ced808 -rb56d90d0894b861844b15ebdb81a6587e7933e63 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/AuthoringAction.java (.../AuthoringAction.java) (revision 9dd6deeaba1a5c8b12dadb8689a7b462f0ced808) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/AuthoringAction.java (.../AuthoringAction.java) (revision b56d90d0894b861844b15ebdb81a6587e7933e63) @@ -45,9 +45,12 @@ import org.apache.commons.lang.math.NumberUtils; import org.apache.log4j.Logger; import org.apache.struts.action.Action; +import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; import org.apache.struts.upload.FormFile; import org.lamsfoundation.lams.authoring.web.AuthoringConstants; import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler; @@ -65,6 +68,7 @@ import org.lamsfoundation.lams.tool.forum.web.forms.ForumForm; import org.lamsfoundation.lams.tool.forum.web.forms.MessageForm; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; +import org.lamsfoundation.lams.util.UploadFileUtil; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; @@ -238,7 +242,16 @@ ToolAccessMode mode = getAccessMode(request); ForumForm forumForm = (ForumForm)(form); - + //validation + ActionMessages errors = validate(forumForm, mapping, request); + if(!errors.isEmpty()){ + saveErrors(request, errors); + if(mode.isAuthor()) + return mapping.findForward("author"); + else + return mapping.findForward("monitor"); + } + Forum forum = forumForm.getForum(); try { forumService = getForumManager(); @@ -944,4 +957,55 @@ return mode; } + /** + * Forum validation method from STRUCT interface. + * + */ + public ActionMessages validate( ForumForm form,ActionMapping mapping, javax.servlet.http.HttpServletRequest request) { + ActionMessages errors = new ActionMessages(); + + ActionMessage ae; + try { + if (StringUtils.isBlank(form.getForum().getTitle())) { + ActionMessage error = new ActionMessage("error.title.empty"); + errors.add(ActionMessages.GLOBAL_MESSAGE, error); + } + //define it later mode(TEACHER) skip below validation. + String modeStr = request.getParameter(AttributeNames.ATTR_MODE); + if(StringUtils.equals(modeStr, ToolAccessMode.TEACHER.toString())){ + mapping.setInput("/defineLater"); + return errors; + } + if(!form.getForum().isAllowRichEditor()){ + if(form.getForum().getLimitedChar() <=0){ + ActionMessage error = new ActionMessage("error.limit.char.less.zero"); + errors.add(ActionMessages.GLOBAL_MESSAGE, error); + } + } + if(!form.getForum().isAllowNewTopic()){ + if(form.getForum().getMaximumReply() < form.getForum().getMinimumReply()){ + ActionMessage error = new ActionMessage("error.min.less.max"); + errors.add(ActionMessages.GLOBAL_MESSAGE, error); + } + } + if (form.getOnlineFile() != null && !(form.getOnlineFile().getFileName().trim().equals("")) + && convertToMeg(form.getOnlineFile().getFileSize()) > UploadFileUtil.getMaxFileSize()) { + ae = new ActionMessage("error.inputFileTooLarge"); + errors.add(ActionMessages.GLOBAL_MESSAGE, ae); + } + if (form.getOfflineFile() != null && !(form.getOfflineFile().getFileName().trim().equals("")) + && convertToMeg(form.getOfflineFile().getFileSize()) > UploadFileUtil.getMaxFileSize()) { + ae = new ActionMessage("error.inputFileTooLarge"); + errors.add(ActionMessages.GLOBAL_MESSAGE, ae); + } + } catch (Exception e) { + log.error(e.toString()); + } + return errors; + } + private float convertToMeg( int numBytes ) { + return numBytes != 0 ? numBytes / 1024 / 1024 : 0; + } + + } Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/forms/ForumForm.java =================================================================== diff -u -r67333d9d0d4a93667e5b86544a3fca0cf85eacb8 -rb56d90d0894b861844b15ebdb81a6587e7933e63 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/forms/ForumForm.java (.../ForumForm.java) (revision 67333d9d0d4a93667e5b86544a3fca0cf85eacb8) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/forms/ForumForm.java (.../ForumForm.java) (revision b56d90d0894b861844b15ebdb81a6587e7933e63) @@ -34,14 +34,17 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; import org.apache.struts.upload.FormFile; -import org.apache.struts.validator.ValidatorForm; import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler; +import org.lamsfoundation.lams.tool.ToolAccessMode; import org.lamsfoundation.lams.tool.forum.persistence.Attachment; import org.lamsfoundation.lams.tool.forum.persistence.Forum; import org.lamsfoundation.lams.util.UploadFileUtil; +import org.lamsfoundation.lams.web.util.AttributeNames; /** * @@ -52,7 +55,7 @@ * Date: 10/06/2005 * Time: 15:44:36 */ -public class ForumForm extends ValidatorForm { +public class ForumForm extends ActionForm { private static final long serialVersionUID = -6054354910960460120L; private static Logger logger = Logger.getLogger(ForumForm.class.getName()); @@ -73,7 +76,7 @@ this.toolContentID = new Long(0); this.forum = new Forum(); - this.forum.setTitle("New Forum"); + this.forum.setTitle(""); this.currentTab = ""; } /** @@ -103,34 +106,7 @@ } } - /** - * Forum validation method from STRUCT interface. - * - */ - public ActionErrors validate(ActionMapping mapping, javax.servlet.http.HttpServletRequest request) { - ActionErrors errors = super.validate(mapping, request); - ActionMessage ae; - try { - if ("".equals(forum.getTitle())) { - ActionMessage error = new ActionMessage("error.valueReqd"); - errors.add("forum.title", error); - } - if (onlineFile != null && !(onlineFile.getFileName().trim().equals("")) - && convertToMeg(onlineFile.getFileSize()) > UploadFileUtil.getMaxFileSize()) { - ae = new ActionMessage("error.inputFileTooLarge"); - errors.add("onlineFile", ae); - } - if (offlineFile != null && !(offlineFile.getFileName().trim().equals("")) - && convertToMeg(offlineFile.getFileSize()) > UploadFileUtil.getMaxFileSize()) { - ae = new ActionMessage("error.inputFileTooLarge"); - errors.add("offlineFile", ae); - } - } catch (Exception e) { - logger.error("", e); - } - return errors; - } - + public void reset(ActionMapping mapping, HttpServletRequest request){ forum.setAllowEdit(false); forum.setAllowAnonym(false); @@ -161,12 +137,6 @@ return offlineFile; } - - private float convertToMeg( int numBytes ) { - return numBytes != 0 ? numBytes / 1024 / 1024 : 0; - } - - public String getCurrentTab() { return currentTab; } Index: lams_tool_forum/web/jsps/authoring/advance.jsp =================================================================== diff -u -r67333d9d0d4a93667e5b86544a3fca0cf85eacb8 -rb56d90d0894b861844b15ebdb81a6587e7933e63 --- lams_tool_forum/web/jsps/authoring/advance.jsp (.../advance.jsp) (revision 67333d9d0d4a93667e5b86544a3fca0cf85eacb8) +++ lams_tool_forum/web/jsps/authoring/advance.jsp (.../advance.jsp) (revision b56d90d0894b861844b15ebdb81a6587e7933e63) @@ -3,7 +3,8 @@ - + + - - - - + + + - - -
@@ -27,13 +28,6 @@
- - - -
@@ -61,20 +55,21 @@
+ + + +
- -