X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=source%2Fmircoders%2Flocalizer%2Fbasic%2FMirBasicCommentPostingHandler.java;h=199fba489c58986af9e5660e6b7f2940c4c335a1;hb=259a8dadb6be28e48c7ffbd15de888eab066064c;hp=eda64b44d0adc6fcf06e60be428f81923fa256bf;hpb=cbdce7db065091bb693ae44d633c2c9c8da5be3a;p=mir.git diff --git a/source/mircoders/localizer/basic/MirBasicCommentPostingHandler.java b/source/mircoders/localizer/basic/MirBasicCommentPostingHandler.java index eda64b44..199fba48 100755 --- a/source/mircoders/localizer/basic/MirBasicCommentPostingHandler.java +++ b/source/mircoders/localizer/basic/MirBasicCommentPostingHandler.java @@ -40,36 +40,36 @@ import mir.session.Response; import mir.session.Session; import mir.session.SessionExc; import mir.session.SessionFailure; -import mir.session.UploadedFile; -import mir.session.ValidationError; import mir.session.ValidationHelper; -import mir.util.ExceptionFunctions; +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"), @@ -81,7 +81,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)); @@ -107,10 +107,16 @@ public class MirBasicCommentPostingHandler extends MirBasicPostingSessionHandler }; 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 { @@ -118,8 +124,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) { @@ -133,13 +139,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()); @@ -149,6 +158,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"); @@ -159,7 +175,7 @@ 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"); };