- multiple "producer" shortcuts possible
[mir.git] / source / mircoders / servlet / ServletModuleContent.java
index 9b7ac19..c9ef69f 100755 (executable)
@@ -33,7 +33,7 @@ package mircoders.servlet;
 import java.util.GregorianCalendar;\r
 import java.util.HashMap;\r
 import java.util.Iterator;\r
-import java.util.List;\r
+import java.util.*;\r
 import java.util.Locale;\r
 import java.util.Map;\r
 import javax.servlet.http.HttpServletRequest;\r
@@ -50,7 +50,7 @@ import mir.util.CachingRewindableIterator;
 import mir.util.HTTPRequestParser;\r
 import mir.util.JDBCStringRoutines;\r
 import mir.util.SQLQueryBuilder;\r
-import mir.util.URLBuilder;\r
+import mir.util.*;\r
 import mircoders.entity.EntityContent;\r
 import mircoders.global.MirGlobal;\r
 import mircoders.module.ModuleContent;\r
@@ -61,7 +61,7 @@ import mircoders.storage.DatabaseContentToTopics;
  *  ServletModuleContent -\r
  *  deliver html for the article admin form.\r
  *\r
- * @version $Id: ServletModuleContent.java,v 1.52.2.7 2003/09/06 01:01:15 zapata Exp $\r
+ * @version $Id: ServletModuleContent.java,v 1.52.2.11 2003/09/24 02:08:04 zapata Exp $\r
  * @author rk, mir-coders\r
  *\r
  */\r
@@ -176,6 +176,8 @@ public class ServletModuleContent extends ServletModule
         withValues.remove("webdb_create");\r
 \r
       String id = mainModule.add(withValues);\r
+      logAdminUsage(aRequest, id, "object added");\r
+\r
       List topics;\r
 \r
       DatabaseContentToTopics.getInstance().setTopics(id, aRequest.getParameterValues("to_topic"));\r
@@ -212,6 +214,8 @@ public class ServletModuleContent extends ServletModule
       throw new ServletModuleFailure(e);\r
     }\r
 \r
+    logAdminUsage(aRequest, articleId, "media " + mediaIdParam + " attached");\r
+\r
     editObject(aRequest, aResponse, articleId);\r
   }\r
 \r
@@ -232,6 +236,8 @@ public class ServletModuleContent extends ServletModule
       throw new ServletModuleFailure(e);\r
     }\r
 \r
+    logAdminUsage(aRequest, articleId, "media " + midParam + " deattached");\r
+\r
     editObject(aRequest, aResponse, articleId);\r
   }\r
 \r
@@ -261,6 +267,9 @@ public class ServletModuleContent extends ServletModule
         withValues.remove("webdb_create");\r
 \r
       String id = mainModule.set(withValues);\r
+\r
+      logAdminUsage(aRequest, id, "object modified");\r
+\r
       DatabaseContentToTopics.getInstance().setTopics(aRequest.getParameter("id"), aRequest.getParameterValues("to_topic"));\r
 \r
       if (returnUrl!=null && !returnUrl.equals("")){\r
@@ -319,9 +328,61 @@ public class ServletModuleContent extends ServletModule
       }\r
       responseData.put("article", article);\r
 \r
-      responseData.put("topics",\r
-          new EntityIteratorAdapter("", configuration.getString("Mir.Localizer.Admin.TopicListOrder"),\r
-          20, MirGlobal.localizer().dataModel().adapterModel(), "topic"));\r
+      List topicsList = new Vector();\r
+\r
+      String[] topicCategories = configuration.getStringArray("Mir.Localizer.Admin.TopicLists");\r
+\r
+      if (topicCategories.length==0 ) {\r
+        Map categoryMap = new HashMap();\r
+        categoryMap.put("key", "topic");\r
+        categoryMap.put("listtype", "0");\r
+        categoryMap.put("listparameter", "3");\r
+        categoryMap.put("items",\r
+                        new EntityIteratorAdapter("", "title",\r
+            20, MirGlobal.localizer().dataModel().adapterModel(), "topic"));\r
+        topicsList.add(categoryMap);\r
+      }\r
+      else\r
+      {\r
+\r
+        for (int i = 0; i < topicCategories.length; i++) {\r
+          try {\r
+            Map categoryMap = new HashMap();\r
+            List parts = StringRoutines.splitString(topicCategories[i], ":");\r
+            String key = null;\r
+            String listtype = "0";\r
+            String listparameter = "5";\r
+            String where = "";\r
+            String order = "";\r
+\r
+            if (parts.size() > 0)\r
+              key = (String) parts.get(0);\r
+            if (parts.size() > 1)\r
+              listtype = (String) parts.get(1);\r
+            if (parts.size() > 2)\r
+              listparameter = (String) parts.get(2);\r
+            if (parts.size() > 3)\r
+              where = (String) parts.get(3);\r
+            if (parts.size() > 4)\r
+              order = (String) parts.get(4);\r
+\r
+            if (key != null) {\r
+              categoryMap.put("key", key);\r
+              categoryMap.put("listtype", listtype);\r
+              categoryMap.put("listparameter", listparameter);\r
+              categoryMap.put("items",\r
+                              new EntityIteratorAdapter(where, order,\r
+                  20, MirGlobal.localizer().dataModel().adapterModel(), "topic"));\r
+              topicsList.add(categoryMap);\r
+            }\r
+          }\r
+          catch (Throwable t) {\r
+            logger.error("error while preparing topics: " + t.toString());\r
+          }\r
+        }\r
+      }\r
+\r
+      responseData.put("topics", topicsList);\r
 \r
       responseData.put("returnurl", requestParser.getParameter("returnurl"));\r
       responseData.put("thisurl", urlBuilder.getQuery());\r
@@ -462,6 +523,7 @@ public class ServletModuleContent extends ServletModule
       article.setValueForProperty("to_content", parentId);\r
       article.setProduced(false);\r
       article.update();\r
+      logAdminUsage(aRequest, articleId, "parent set to " + parentId);\r
     }\r
     catch(Throwable e) {\r
       logger.error("ServletModuleContent.setparent: " + e.getMessage());\r
@@ -482,6 +544,7 @@ public class ServletModuleContent extends ServletModule
       article.setValueForProperty("to_content", "");\r
       article.setProduced(false);\r
       article.update();\r
+      logAdminUsage(aRequest, articleId, "parent cleared");\r
     }\r
     catch(Throwable e) {\r
       e.printStackTrace(logger.asPrintWriter(LoggerWrapper.DEBUG_MESSAGE));\r