*** empty log message ***
authortob <tob>
Wed, 6 Feb 2002 01:04:43 +0000 (01:04 +0000)
committertob <tob>
Wed, 6 Feb 2002 01:04:43 +0000 (01:04 +0000)
source/mircoders/servlet/ServletModuleContent.java
templates-dist/de/contentlist.template

index ce22cc1..85de290 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(this.getClass().getName());
       templateListString = MirConfig.getProp("ServletModule.Content.ListTemplate");
       templateOpString = MirConfig.getProp("ServletModule.Content.OpTemplate");
       templateObjektString = MirConfig.getProp("ServletModule.Content.ObjektTemplate");
@@ -146,27 +147,18 @@ 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("cannot get topics as simple list.");
-      throw new ServletModuleException(e.toString());
-    }
+    mergeData.put("themenPopupData", themenModule.getTopicsAsSimpleList());
     try {
       mergeData.put("articletypePopupData", DatabaseArticleType.getInstance().getPopupData());
     } catch (Exception e) {
       theLog.printError("articletype could not be fetched.");
-      throw new ServletModuleException("articletype could not be fetched: "
-      +e.toString());
     }
     try {
       mergeData.put("languagePopupData", DatabaseLanguage.getInstance().getPopupData());
-      mergeData.put("schwerpunktPopupData", schwerpunktModule.getSchwerpunktAsSimpleList());
     } catch (Exception e) {
-      theLog.printError("language-popup or scwerpunk list could not be fetched.");
-      throw new ServletModuleException("language/schwerpunkt list could not be fetched.: "
-        +e.toString());
+      theLog.printError("language-popup could not be fetched.");
     }
+    mergeData.put("schwerpunktPopupData", schwerpunktModule.getSchwerpunktAsSimpleList());
     mergeData.put("login_user", user);
     deliver(req, res, mergeData, templateObjektString);
   }
@@ -229,6 +221,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
@@ -265,7 +261,7 @@ public class ServletModuleContent extends ServletModule
       EntityContent entContent = (EntityContent)mainModule.getById(idParam);
       entContent.attach(mediaIdParam);
     }
-    catch(Exception e) {
+    catch(ModuleException e) {
       theLog.printError("smod content :: attach :: could not get entityContent");
     }
     _showObject(idParam, req, res);
@@ -282,7 +278,7 @@ public class ServletModuleContent extends ServletModule
       EntityContent entContent = (EntityContent)mainModule.getById(cidParam);
       entContent.dettach(cidParam,midParam);
     }
-    catch(Exception e) {
+    catch(ModuleException e) {
       theLog.printError("smod content :: dettach :: could not get entityContent");
     }
     _showObject(cidParam, req, res);
@@ -296,9 +292,8 @@ public class ServletModuleContent extends ServletModule
       EntityContent entContent = (EntityContent)mainModule.getById(idParam);
       entContent.newswire();
     }
-    catch(Exception e) {
+    catch(ModuleException e) {
       theLog.printError("smod content :: newswire :: could not get entityContent");
-      throw new ServletModuleException("smod content :: newswire :: could not get entityContent"+e.toString());
     }
     list(req, res);
   }
@@ -312,10 +307,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")));
@@ -359,7 +353,7 @@ public class ServletModuleContent extends ServletModule
       SimpleHash mergeData =  HTMLTemplateProcessor.makeSimpleHash(entContent);
       EntityList topicToContent = DatabaseContentToTopics.getInstance().getTopics(entContent);
       if (topicToContent!=null && topicToContent.size()>0){
-        //theLog.printDebugInfo("topicanzahl: "+topicToContent.size());
+        theLog.printDebugInfo("topicanzahl: "+topicToContent.size());
         Entity topics = null;
         SimpleList topicList = new SimpleList();
         for(int i=0;i<topicToContent.size();i++){
@@ -430,6 +424,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);
index 5e05196..d1059cf 100755 (executable)
@@ -29,7 +29,9 @@
                        <if entry.is_published!="0">F<else>-</if>
                        <if entry.is_html!="0">H<else>-</if>
                        </font></td>
-           <td><font face="Verdana, Arial, Helvetica, sans-serif" size="-1"><b>
+           <td><font face="Verdana, Arial, Helvetica, sans-serif" size="-1">
+           <img alt=${entry.icon_alt} border="0" height="10" src="${entry.tiny_icon}" width="12"> 
+                       <b>HALLO
                        <font size="-2">${articletypeHash[entry.to_article_type]["name"]} -- </font><if entry.place>${entry.place}: </if>${entry.title}</b><br>
                        ${entry.creator}&nbsp;
                        <a href="${actionRoot}?module=Content&do=edit&id=${entry.id}&where=${where_encoded}&order=${order_encoded}&offset=${offset}">edit</a>