X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Flocalizer%2Fbasic%2FMirBasicCommentPostingHandler.java;h=010c34e83f57faeabb9b7e08dd96ab20b4c0fbde;hb=2d3a3231809a1af4e373c3fd13902eeee26728c9;hp=7707dffcbe6494245535180a01b4a244721a0108;hpb=aa0e25363f8099782b07ad71a627da64ef65ba09;p=mir.git diff --git a/source/mircoders/localizer/basic/MirBasicCommentPostingHandler.java b/source/mircoders/localizer/basic/MirBasicCommentPostingHandler.java index 7707dffc..010c34e8 100755 --- a/source/mircoders/localizer/basic/MirBasicCommentPostingHandler.java +++ b/source/mircoders/localizer/basic/MirBasicCommentPostingHandler.java @@ -40,34 +40,35 @@ import mir.session.Response; import mir.session.Session; import mir.session.SessionExc; import mir.session.SessionFailure; -import mir.session.UploadedFile; -import mir.util.ExceptionFunctions; +import mir.session.ValidationHelper; +import mir.util.EntityUtility; import mircoders.entity.EntityComment; import mircoders.global.MirGlobal; import mircoders.media.MediaUploadProcessor; -import mircoders.module.ModuleComment; -import mircoders.module.ModuleMediaType; +import mircoders.module.ModuleCommentStatus; +import mircoders.module.ModuleMediafolder; import mircoders.storage.DatabaseComment; import mircoders.storage.DatabaseCommentToMedia; import mircoders.storage.DatabaseContent; /** - * - *

Title: Experimental session handler for comment postings

- *

Description:

- *

Copyright: Copyright (c) 2003

- *

Company:

+ * Session handler for comment postings + * * @author Zapata - * @version 1.0 */ public class MirBasicCommentPostingHandler extends MirBasicPostingSessionHandler { - protected ModuleComment commentModule = new ModuleComment(DatabaseComment.getInstance()); + protected DatabaseComment commentDatabase = DatabaseComment.getInstance(); protected DatabaseCommentToMedia commentToMedia = DatabaseCommentToMedia.getInstance(); public MirBasicCommentPostingHandler() { - super(); + this(false); + } + + + public MirBasicCommentPostingHandler(boolean aPersistentUploadedFiles) { + super(aPersistentUploadedFiles); setResponseGenerators( configuration.getString("Localizer.OpenSession.comment.EditTemplate"), @@ -79,7 +80,7 @@ public class MirBasicCommentPostingHandler extends MirBasicPostingSessionHandler protected void initializeResponseData(Request aRequest, Session aSession, Response aResponse) throws SessionExc, SessionFailure { super.initializeResponseData(aRequest, aSession, aResponse); - Iterator i = DatabaseComment.getInstance().getFields().iterator(); + Iterator i = DatabaseComment.getInstance().getFieldNames().iterator(); while (i.hasNext()) { String field = (String) i.next(); aResponse.setResponseValue(field, aRequest.getParameter(field)); @@ -89,9 +90,9 @@ public class MirBasicCommentPostingHandler extends MirBasicPostingSessionHandler public void validate(List aResults, Request aRequest, Session aSession) throws SessionExc, SessionFailure { super.validate(aResults, aRequest, aSession); - testFieldEntered(aRequest, "title", "validationerror.missing", aResults); - testFieldEntered(aRequest, "description", "validationerror.missing", aResults); - testFieldEntered(aRequest, "creator", "validationerror.missing", aResults); + ValidationHelper.testFieldEntered(aRequest, "title", "validationerror.missing", aResults); + ValidationHelper.testFieldEntered(aRequest, "description", "validationerror.missing", aResults); + ValidationHelper.testFieldEntered(aRequest, "creator", "validationerror.missing", aResults); } protected void initializeSession(Request aRequest, Session aSession) throws SessionExc, SessionFailure { @@ -102,13 +103,19 @@ public class MirBasicCommentPostingHandler extends MirBasicPostingSessionHandler throw new SessionExc("initializeSession: article id not set!"); aSession.setAttribute("to_media", articleId); - }; + } public void finalizeComment(Request aRequest, Session aSession, EntityComment aComment) throws SessionExc, SessionFailure { - aComment.setValueForProperty("is_published", "1"); - aComment.setValueForProperty("to_comment_status", "1"); - aComment.setValueForProperty("is_html","0"); - aComment.setValueForProperty("to_media", (String) aSession.getAttribute("to_media")); + try { + aComment.setFieldValue("is_published", "1"); + ModuleCommentStatus module = new ModuleCommentStatus(); + aComment.setFieldValue("to_comment_status", module.commentStatusIdForName(configuration.getString("Localizer.OpenSession.comment.DefaultCommentStatus"))); + aComment.setFieldValue("is_html", "0"); + aComment.setFieldValue("to_media", (String) aSession.getAttribute("to_media")); + } + catch (Throwable t) { + throw new SessionFailure(t); + } } public void preProcessRequest(Request aRequest, Session aSession) throws SessionExc, SessionFailure { @@ -116,8 +123,8 @@ public class MirBasicCommentPostingHandler extends MirBasicPostingSessionHandler String id; Map values = getIntersectingValues(aRequest, DatabaseComment.getInstance()); - EntityComment comment = (EntityComment) commentModule.createNew(); - comment.setValues(values); + EntityComment comment = (EntityComment) commentDatabase.createNewEntity(); + comment.setFieldValues(values); finalizeComment(aRequest, aSession, comment); id = comment.insert(); if (id == null) { @@ -131,13 +138,16 @@ public class MirBasicCommentPostingHandler extends MirBasicPostingSessionHandler } } - public void processUploadedFile(Request aRequest, Session aSession, UploadedFile aFile) throws SessionExc, SessionFailure { + public void processAttachment(Request aRequest, Session aSession, Attachment aFile) throws SessionExc, SessionFailure { try { Map values = new HashMap(); - values.put("title", aRequest.getParameter(aFile.getFieldName()+"_title")); values.put("creator", aRequest.getParameter("creator")); + values.putAll(aFile.getAllAttributes()); values.put("to_publisher", "0"); values.put("is_published", "1"); + ModuleMediafolder module = new ModuleMediafolder(); + values.put("to_media_folder", module.mediaFolderIdForName(configuration.getString("Localizer.OpenSession.comment.DefaultMediaFolder"))); + Entity mediaItem = MediaUploadProcessor.processMediaUpload(aFile, values); mediaItem.update(); commentToMedia.addMedia(((EntityComment) aSession.getAttribute("comment")).getId(), mediaItem.getId()); @@ -147,6 +157,13 @@ public class MirBasicCommentPostingHandler extends MirBasicPostingSessionHandler } } + public void processAttachmentError(Request aRequest, Session aSession, Attachment aFile, Throwable anError) { + EntityUtility.appendLineToField( ((EntityComment) aSession.getAttribute("comment")), "comment", + "error with attachment: " + anError.toString()); + + ((EntityComment) aSession.getAttribute("comment")).update(); + } + public void postProcessRequest(Request aRequest, Session aSession) throws SessionExc, SessionFailure { EntityComment comment = (EntityComment) aSession.getAttribute("comment"); @@ -157,13 +174,13 @@ public class MirBasicCommentPostingHandler extends MirBasicPostingSessionHandler catch (Throwable t) { throw new SessionFailure(t); } - DatabaseContent.getInstance().setUnproduced("id=" + comment.getValue("to_media")); + DatabaseContent.getInstance().setUnproduced("id=" + comment.getFieldValue("to_media")); logger.info("Comment posted"); - }; + } protected static class DuplicateCommentExc extends SessionExc { public DuplicateCommentExc(String aMessage) { super(aMessage); } } -} \ No newline at end of file +}