*** empty log message ***
[mir.git] / source / mircoders / servlet / ServletModuleContent.java
index a29c854..83f1e96 100755 (executable)
@@ -11,6 +11,7 @@ import javax.servlet.http.*;
 import freemarker.template.*;
 
 import mir.servlet.*;
+import mir.media.*;
 import mir.module.*;
 import mir.misc.*;
 import mir.storage.*;
@@ -45,7 +46,7 @@ public class ServletModuleContent extends ServletModule
 
   private ServletModuleContent() {
     try {
-      theLog = Logfile.getInstance(MirConfig.getProp("Home") + MirConfig.getProp("ServletModule.Content.Logfile"));
+               theLog = Logfile.getInstance(MirConfig.getProp("Home") + MirConfig.getProp("ServletModule.Content.Logfile"));
       templateListString = MirConfig.getProp("ServletModule.Content.ListTemplate");
       templateOpString = MirConfig.getProp("ServletModule.Content.OpTemplate");
       templateObjektString = MirConfig.getProp("ServletModule.Content.ObjektTemplate");
@@ -146,7 +147,11 @@ public class ServletModuleContent extends ServletModule
     mergeData.put("is_published", "1");
     String now = StringUtil.date2webdbDate(new GregorianCalendar());
     mergeData.put("date", new SimpleScalar(now));
+    try {
     mergeData.put("themenPopupData", themenModule.getTopicsAsSimpleList());
+    } catch (ModuleException e) {
+      theLog.printError("themenPopupData could not be fetched.");
+    }
     try {
       mergeData.put("articletypePopupData", DatabaseArticleType.getInstance().getPopupData());
     } catch (Exception e) {
@@ -157,8 +162,12 @@ public class ServletModuleContent extends ServletModule
     } catch (Exception e) {
       theLog.printError("language-popup could not be fetched.");
     }
+    try {
     mergeData.put("schwerpunktPopupData", schwerpunktModule.getSchwerpunktAsSimpleList());
-    mergeData.put("login_user", HTMLTemplateProcessor.makeSimpleHash(user));
+    } catch (ModuleException e) {
+      theLog.printError("schwerpunktPopupData could not be fetched.");
+    }
+    mergeData.put("login_user", user);
     deliver(req, res, mergeData, templateObjektString);
   }
 
@@ -220,6 +229,10 @@ public class ServletModuleContent extends ServletModule
       if (confirmParam!= null && !confirmParam.equals("")) {
         try {
           mainModule.deleteById(idParam);
+
+          /** @todo the following two should be imlied in
+           *  DatabaseContent */
+
           //delete rows in the content_x_topic-table
           DatabaseContentToTopics.getInstance().deleteByContentId(idParam);
           //delete rows in the comment-table
@@ -259,6 +272,10 @@ public class ServletModuleContent extends ServletModule
     catch(ModuleException e) {
       theLog.printError("smod content :: attach :: could not get entityContent");
     }
+    catch(StorageObjectException e) {
+      theLog.printError("smod content :: attach :: could not get entityContent");
+    }
+
     _showObject(idParam, req, res);
   }
 
@@ -276,6 +293,10 @@ public class ServletModuleContent extends ServletModule
     catch(ModuleException e) {
       theLog.printError("smod content :: dettach :: could not get entityContent");
     }
+    catch(StorageObjectException e) {
+      theLog.printError("smod content :: dettach :: could not get entityContent");
+    }
+
     _showObject(cidParam, req, res);
   }
 
@@ -290,6 +311,10 @@ public class ServletModuleContent extends ServletModule
     catch(ModuleException e) {
       theLog.printError("smod content :: newswire :: could not get entityContent");
     }
+    catch(StorageObjectException e) {
+      theLog.printError("smod content :: dettach :: could not get entityContent");
+    }
+
     list(req, res);
   }
 
@@ -302,10 +327,9 @@ public class ServletModuleContent extends ServletModule
       EntityUsers   user = _getUser(req);
       if (user==null) theLog.printDebugInfo("user null!");
       String idParam = req.getParameter("id");
-      if (idParam == null) throw new ServletModuleException("Falscher Aufruf: (id) nicht angegeben");
+      if (idParam == null) throw new ServletModuleException("Wrong call: (id) is missing");
 
       HashMap withValues = getIntersectingValues(req, DatabaseContent.getInstance());
-      //String topic_id = req.getParameter("to_topic");
       String[] topic_id = req.getParameterValues("to_topic");
       String content_id = req.getParameter("id");
       // withValues.put("publish_path", StringUtil.webdbDate2path((String)withValues.get("date")));
@@ -385,7 +409,7 @@ public class ServletModuleContent extends ServletModule
       if ((offsetParam = req.getParameter("offset"))!=null) mergeData.put("offset", offsetParam);
       if ((whereParam = req.getParameter("where"))!=null) mergeData.put("where", whereParam);
       if ((orderParam = req.getParameter("order"))!=null) mergeData.put("order", orderParam);
-      mergeData.put("login_user", HTMLTemplateProcessor.makeSimpleHash(_getUser(req)));
+      mergeData.put("login_user", _getUser(req));
       deliver(req, res, mergeData, templateObjektString);
     } catch (Exception e) {
       throw new ServletModuleException(e.toString());
@@ -420,6 +444,95 @@ public class ServletModuleContent extends ServletModule
       if (theList == null || theList.getCount() == 0 || theList.getCount()>1) {
         SimpleHash modelRoot = HTMLTemplateProcessor.makeSimpleHashWithEntitylistInfos(theList);
         modelRoot.put("articletypeHash", DatabaseArticleType.getInstance().getHashData());
+
+/*    EntityContent       currentContent;
+    EntityList          upMediaEntityList;
+    EntityList          imageEntityList;
+    EntityList          currentMediaList;
+    Entity              mediaType;
+    EntityMedia         uploadedMedia;
+    SimpleList          opList;
+      String imageRoot = MirConfig.getProp("Producer.ImageRoot");
+
+    SimpleHash          contentHash;
+    Class               mediaHandlerClass=null;
+    MirMedia            mediaHandler=null;
+    String              mediaHandlerName=null;
+    Database            mediaStorage=null;
+    String              tinyIcon;
+    String              iconAlt;
+
+    opList = HTMLTemplateProcessor.makeSimpleList(theList);
+
+      for (int i=0; i < theList.size();i++) {
+        currentContent = (EntityContent)theList.elementAt(i);
+        //fetching/setting the images
+        upMediaEntityList = DatabaseContentToMedia.getInstance().getUploadedMedia(currentContent);
+        if (upMediaEntityList!=null && upMediaEntityList.getCount()>=1) {
+          tinyIcon = null;
+          iconAlt = null;
+          mediaHandler = null;
+          mediaHandlerName = null;
+          for (int n=0; n < upMediaEntityList.size();n++) {
+            uploadedMedia = (EntityMedia)upMediaEntityList.elementAt(n);
+            mediaType = uploadedMedia.getMediaType();
+
+            //must of had a non-existant to_media_type entry..
+            //let's save our ass.
+            if (mediaType != null) {
+                /*
+                 * grrr. why doesn't getId return an int! if It
+                 * did I could just compare the value of getId and
+                 * pick the biggest one. or is there
+                 * another way around this that I am missing?
+                 * can we make getIdasInt() or can we just have
+                 * another getId() that returns an Int and the VM
+                 * will handle it transparantly? -mh
+                try {
+                  mediaHandlerName = mediaType.getValue("classname");
+                  mediaHandlerClass = Class.forName("mir.media.MediaHandler"+mediaHandlerName);
+                  mediaHandler = (MirMedia)mediaHandlerClass.newInstance();
+                } catch (Exception e) {
+                  theLog.printError("ProducerStartpage:problem in reflection: "+mediaHandlerName);
+                }
+
+                //the "best" media type to show
+                if (mediaHandler.isVideo()) {
+                  tinyIcon = MirConfig.getProp("Producer.Icon.TinyVideo");
+                  iconAlt = "Video";
+                  break;
+                } else if (mediaHandler.isAudio()) {
+                  tinyIcon = MirConfig.getProp("Producer.Icon.TinyAudio");
+                  iconAlt = "Audio";
+                } else if (tinyIcon == null && !mediaHandler.isImage()) {
+                  tinyIcon = mediaHandler.getTinyIcon();
+                  iconAlt = mediaHandler.getIconAlt();
+                }
+            }
+          }
+          //it only has image(s)
+          if (tinyIcon == null) {
+            tinyIcon = MirConfig.getProp("Producer.Icon.TinyImage");
+            iconAlt = "Image";
+          }
+
+        // uploadedMedia Entity list is empty.
+        // we only have text
+        } else {
+          tinyIcon = MirConfig.getProp("Producer.Icon.TinyText");
+          iconAlt = "Text";
+        }
+
+        try{
+          //mediaList = HTMLTemplateProcessor.makeSimpleList(upMediaEntityList);
+          contentHash = (SimpleHash)opList.get(i);
+          contentHash.put("tiny_icon", imageRoot+"/"+tinyIcon);
+          contentHash.put("icon_alt", iconAlt);
+        } catch (Exception e){}
+      }
+*/
+
+
         deliver(req, res, modelRoot, templateListString);
       } else  { // count = 1
         _showObject(theList.elementAt(0).getId(), req, res);