cleanup + misc. fixes
[mir.git] / source / mircoders / servlet / ServletModuleAdmin.java
1 /*
2  * Copyright (C) 2001, 2002 The Mir-coders group
3  *
4  * This file is part of Mir.
5  *
6  * Mir is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * Mir is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with Mir; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  *
20  * In addition, as a special exception, The Mir-coders gives permission to link
21  * the code of this program with  any library licensed under the Apache Software License,
22  * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library
23  * (or with modified versions of the above that use the same license as the above),
24  * and distribute linked combinations including the two.  You must obey the
25  * GNU General Public License in all respects for all of the code used other than
26  * the above mentioned libraries.  If you modify this file, you may extend this
27  * exception to your version of the file, but you are not obligated to do so.
28  * If you do not wish to do so, delete this exception statement from your version.
29  */
30 package mircoders.servlet;
31
32 import mir.entity.adapter.EntityAdapterEngine;
33 import mir.servlet.AdminServletModule;
34 import mir.servlet.ServletModuleExc;
35 import mir.servlet.ServletModuleFailure;
36 import mir.util.URLBuilder;
37 import mircoders.global.MirGlobal;
38
39 import javax.servlet.http.HttpServletRequest;
40 import javax.servlet.http.HttpServletResponse;
41 import java.io.IOException;
42 import java.io.Writer;
43 import java.util.List;
44 import java.util.Map;
45
46 public class ServletModuleAdmin extends AdminServletModule {
47   public void defaultAction(HttpServletRequest aRequest, HttpServletResponse aResponse) {
48     start(aRequest, aResponse);
49   }
50
51   public void superusermenu(HttpServletRequest aRequest, HttpServletResponse aResponse) {
52     URLBuilder urlBuilder = new URLBuilder();
53
54     try {
55       Map responseData = ServletHelper.makeGenerationData(aRequest, aResponse, getLocales(aRequest));
56       urlBuilder.setValue("module", "Admin");
57       urlBuilder.setValue("do", "superusermenu");
58
59       responseData.put("thisurl" , urlBuilder.getQuery());
60
61       ServletHelper.generateResponse(aResponse.getWriter(), responseData, "superusermenu.template");
62     }
63     catch (Throwable e) {
64       throw new ServletModuleFailure(e);
65     }
66   }
67
68   /**
69    * Servlet handler method to reload the configuration for scripts.
70    * The output will be aimed at shell sripts.
71    */
72   public void reload(HttpServletRequest aRequest, HttpServletResponse aResponse) {
73     String result = "reload successfull";
74
75     try {
76       MirGlobal.reloadConfigurations();
77     }
78     catch (Throwable t) {
79       result = "error occurred while reloading: " +t.toString();
80     }
81
82     try {
83       Writer writer = aResponse.getWriter();
84       writer.write(result);
85     }
86     catch (IOException e) {
87       throw new ServletModuleFailure(e);
88     }
89   }
90
91   /**
92    * Servlet handler method to reload the configuration.
93    */
94   public void reloadconfiguration(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc {
95     try {
96       MirGlobal.reloadConfigurations();
97        ServletHelper.generateInfoMessage(aRequest, aResponse, getLocales(aRequest),
98            "bundles/admin", "etc/bundles/adminlocal", "reloadSuccessfull", "", "");
99     }
100     catch (Throwable t) {
101       ServletHelper.generateInfoMessage(aRequest, aResponse, getLocales(aRequest),
102            "bundles/admin", "etc/bundles/adminlocal", "reloadFailed", t.toString(), "");
103     }
104   }
105
106   public void start(HttpServletRequest aRequest, HttpServletResponse aResponse) {
107     String defaultStartTemplate = getConfiguration().getString("Mir.StartTemplate");
108
109     try {
110       Map templateData = ServletHelper.makeGenerationData(aRequest, aResponse, getLocales(aRequest),
111           "bundles/admin", "etc/bundles/adminlocal");
112
113       List messages = EntityAdapterEngine.retrieveAdapterList(getModel(),
114           "internalMessage", "", "webdb_create desc", 10, 0);
115
116       templateData.put("messages", messages);
117
118       templateData.put("fileeditentries",
119           ServletHelper.getServletModuleFileEdit().getEntries());
120       templateData.put("administeroperations",
121           ServletHelper.getServletModuleLocalizer().getAdministerOperations());
122
123       templateData.put("searchvalue", null);
124       templateData.put("searchfield", null);
125       templateData.put("searchispublished", null);
126       templateData.put("searcharticletype", null);
127       templateData.put("searchorder", null);
128       templateData.put("selectarticleurl", null);
129       templateData.put("recipes", MirGlobal.localizer().producers().getRecipeNames());
130
131       String startTemplate = MirGlobal.localizer().adminInterface().getAdminPageGenerator(
132           "admin.start", templateData,
133           ServletHelper.getUserAdapter(aRequest), defaultStartTemplate);
134
135       ServletHelper.generateResponse(aResponse.getWriter(), templateData, startTemplate);
136     }
137     catch (Exception e) {
138       throw new ServletModuleFailure(e);
139     }
140   }
141
142 }