very basic support for localized add/edit article pages
[mir.git] / source / mir / servlet / AdminServletModule.java
index 27c422d..add20ff 100755 (executable)
@@ -203,16 +203,29 @@ public abstract class AdminServletModule extends ServletModule {
     }
   }
 
-  public void editObject(HttpServletRequest aRequest, HttpServletResponse aResponse, String anId) throws ServletModuleExc {
+  /**
+   * return a page allowing the user to edit an object
+   *
+   * @param aRequest
+   * @param aResponse
+   * @param anId   the id of the object that is being edited
+   * @param aTemplate the template to use (or null to use the default template)
+   * @throws ServletModuleExc
+   */
+  public void editObject(HttpServletRequest aRequest, HttpServletResponse aResponse, String anId, String aTemplate) throws ServletModuleExc {
     try {
-      editObject(aRequest, aResponse, model.makeEntityAdapter(definition, mainModule.getById(anId)), false, anId);
+      editObject(aRequest, aResponse, model.makeEntityAdapter(definition, mainModule.getById(anId)), aTemplate, false, anId);
     }
     catch (Throwable t) {
       throw new ServletModuleFailure(t);
     }
   }
 
-  public void editObject(HttpServletRequest aRequest, HttpServletResponse aResponse, Object anObject, boolean anIsNew, String anId) throws ServletModuleExc {
+  /**
+   * return a page allowing the user to edit an object
+   */
+  public void editObject(HttpServletRequest aRequest, HttpServletResponse aResponse, Object anObject,
+                         String aTemplate, boolean anIsNew, String anId) throws ServletModuleExc {
     HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
     URLBuilder urlBuilder = new URLBuilder();
 
@@ -221,7 +234,7 @@ public abstract class AdminServletModule extends ServletModule {
 
       responseData.put("module", getName());
       responseData.put("entity", anObject);
-      responseData.put("new", new Boolean(anIsNew));
+      responseData.put("new", Boolean.valueOf(anIsNew));
 
 
       urlBuilder.setValue("module", getName());
@@ -236,7 +249,11 @@ public abstract class AdminServletModule extends ServletModule {
       responseData.put("returnurl", requestParser.getParameter("returnurl"));
       responseData.put("thisurl", urlBuilder.getQuery());
 
-      ServletHelper.generateResponse(aResponse.getWriter(), responseData, editGenerator);
+      if (aTemplate == null) {
+        aTemplate = editGenerator;
+      }
+
+      ServletHelper.generateResponse(aResponse.getWriter(), responseData, aTemplate);
     }
     catch (Throwable e) {
       throw new ServletModuleFailure(e);
@@ -252,14 +269,13 @@ public abstract class AdminServletModule extends ServletModule {
     Map object = new HashMap();
 
     Iterator i = mainModule.getStorageObject().getFieldNames().iterator();
-
     while (i.hasNext()) {
       object.put(i.next(), "");
     }
 
     initializeNewObject(object, aRequest, aResponse);
 
-    editObject(aRequest, aResponse, object, true, null);
+    editObject(aRequest, aResponse, object, null, true, null);
   }
 
   protected void initializeNewObject(Map aNewObject, HttpServletRequest aRequest, HttpServletResponse aResponse) {
@@ -276,8 +292,9 @@ public abstract class AdminServletModule extends ServletModule {
    */
   public void edit(HttpServletRequest aRequest, HttpServletResponse aResponse, String anIdentifier)
       throws ServletModuleExc, ServletModuleUserExc, ServletModuleFailure  {
+
     try {
-      editObject(aRequest, aResponse, model.makeEntityAdapter(definition, mainModule.getById(anIdentifier)), false, anIdentifier);
+      editObject(aRequest, aResponse, model.makeEntityAdapter(definition, mainModule.getById(anIdentifier)), null, false, anIdentifier);
     }
     catch (Throwable e) {
       throw new ServletModuleFailure(e);