1.1 restoration
[mir.git] / source / mircoders / localizer / basic / MirBasicCommentPostingHandler.java
index 567f31e..3661b97 100755 (executable)
  */
 package mircoders.localizer.basic;
 
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
 import mir.entity.Entity;
-import mir.session.Request;
-import mir.session.Response;
-import mir.session.Session;
-import mir.session.SessionExc;
-import mir.session.SessionFailure;
-import mir.session.UploadedFile;
-import mir.session.ValidationHelper;
+import mir.session.*;
+import mir.util.EntityUtility;
 import mircoders.entity.EntityComment;
+import mircoders.entity.EntityContent;
 import mircoders.global.MirGlobal;
 import mircoders.media.MediaUploadProcessor;
 import mircoders.module.ModuleComment;
 import mircoders.module.ModuleCommentStatus;
 import mircoders.module.ModuleMediafolder;
-import mircoders.storage.DatabaseComment;
-import mircoders.storage.DatabaseCommentStatus;
-import mircoders.storage.DatabaseCommentToMedia;
-import mircoders.storage.DatabaseContent;
-import mircoders.storage.DatabaseMediafolder;
+import mircoders.storage.*;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
 
 /**
  *
@@ -65,12 +57,17 @@ import mircoders.storage.DatabaseMediafolder;
  */
 
 public class MirBasicCommentPostingHandler extends MirBasicPostingSessionHandler {
-  protected ModuleComment commentModule = new ModuleComment(DatabaseComment.getInstance());
+  protected ModuleComment commentModule = new ModuleComment();
   protected DatabaseCommentToMedia commentToMedia = DatabaseCommentToMedia.getInstance();
 
 
   public MirBasicCommentPostingHandler() {
-    super();
+    this(false);
+  }
+
+
+  public MirBasicCommentPostingHandler(boolean aPersistentUploadedFiles) {
+    super(aPersistentUploadedFiles);
 
     setResponseGenerators(
       configuration.getString("Localizer.OpenSession.comment.EditTemplate"),
@@ -82,7 +79,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));
@@ -109,11 +106,11 @@ public class MirBasicCommentPostingHandler extends MirBasicPostingSessionHandler
 
   public void finalizeComment(Request aRequest, Session aSession, EntityComment aComment) throws SessionExc, SessionFailure {
     try {
-      aComment.setValueForProperty("is_published", "1");
-      ModuleCommentStatus module = new ModuleCommentStatus(DatabaseCommentStatus.getInstance());
-      aComment.setValueForProperty("to_comment_status", module.commentStatusIdForName(configuration.getString("Localizer.OpenSession.comment.DefaultCommentStatus")));
-      aComment.setValueForProperty("is_html", "0");
-      aComment.setValueForProperty("to_media", (String) aSession.getAttribute("to_media"));
+      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);
@@ -126,7 +123,7 @@ public class MirBasicCommentPostingHandler extends MirBasicPostingSessionHandler
       Map values = getIntersectingValues(aRequest, DatabaseComment.getInstance());
 
       EntityComment comment = (EntityComment) commentModule.createNew();
-      comment.setValues(values);
+      comment.setFieldValues(values);
       finalizeComment(aRequest, aSession, comment);
       id = comment.insert();
       if (id == null) {
@@ -140,14 +137,14 @@ 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(DatabaseMediafolder.getInstance());
+      ModuleMediafolder module = new ModuleMediafolder();
       values.put("to_media_folder", module.mediaFolderIdForName(configuration.getString("Localizer.OpenSession.comment.DefaultMediaFolder")));
 
       Entity mediaItem = MediaUploadProcessor.processMediaUpload(aFile, values);
@@ -159,6 +156,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");
 
@@ -169,7 +173,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");
   };