added the possibility to search for articles by topic
[mir.git] / source / mir / servlet / AdminServletModule.java
index 4c79040..60389f4 100755 (executable)
@@ -36,6 +36,7 @@ import mir.module.ModuleExc;
 import mir.storage.Database;
 import mir.util.HTTPRequestParser;
 import mir.util.URLBuilder;
+import mir.util.StringRoutines;
 import mircoders.global.MirGlobal;
 import mircoders.localizer.MirLocalizerExc;
 import mircoders.servlet.ServletHelper;
@@ -130,8 +131,10 @@ public abstract class AdminServletModule extends ServletModule {
     String where = requestParser.getParameter("where");
     String order = requestParser.getParameterWithDefault("order", getDefaultListOrdering());
     int offset = requestParser.getIntegerWithDefault("offset", 0);
+    String mainTablePrefix = requestParser.getParameter("mainTablePrefix");
+    String extraTables = requestParser.getParameter("extraTables");
 
-    returnList(aRequest, aResponse, where, order, offset);
+    returnList(aRequest, aResponse, where, order, offset, Collections.EMPTY_MAP, mainTablePrefix, extraTables);
   }
 
 
@@ -143,14 +146,24 @@ public abstract class AdminServletModule extends ServletModule {
   public void returnList(HttpServletRequest aRequest, HttpServletResponse aResponse,
                          String aWhereClause, String anOrderByClause, int anOffset,
                          Map anOverridingRequestParameters) throws ServletModuleExc {
+    returnList(aRequest, aResponse, aWhereClause, anOrderByClause, anOffset, anOverridingRequestParameters, "", null);
+  }
+  public void returnList(HttpServletRequest aRequest, HttpServletResponse aResponse,
+                         String aWhereClause, String anOrderByClause, int anOffset,
+                         Map anOverridingRequestParameters, String aMainTablePrefix, String someExtraTables) throws ServletModuleExc {
     HTTPRequestParser requestParser = new HTTPRequestParser(aRequest, anOverridingRequestParameters);
     URLBuilder urlBuilder = new URLBuilder();
 
     try {
       Map responseData = ServletHelper.makeGenerationData(aRequest, aResponse, getLocales(aRequest));
 
+      List extraTables = null;
+      if (someExtraTables!=null && someExtraTables.length() > 0) {
+        extraTables = StringRoutines.splitString(someExtraTables, ",");
+      }
+
       List list =
-         EntityAdapterEngine.retrieveAdapterList(model, definition, aWhereClause, anOrderByClause, nrEntitiesPerListPage, anOffset);
+         EntityAdapterEngine.retrieveAdapterList(model, definition, aMainTablePrefix, extraTables, aWhereClause, anOrderByClause, nrEntitiesPerListPage, anOffset);
 
       responseData.put("nexturl", null);
       responseData.put("prevurl", null);
@@ -160,6 +173,8 @@ public abstract class AdminServletModule extends ServletModule {
       urlBuilder.setValue("do", "list");
       urlBuilder.setValue("where", aWhereClause);
       urlBuilder.setValue("order", anOrderByClause);
+      urlBuilder.setValue("extraTables", someExtraTables);
+      urlBuilder.setValue("mainTablePrefix", aMainTablePrefix);
 
 
       urlBuilder.setValue("offset", anOffset);