internationalized admin templates
[mir.git] / source / mircoders / servlet / ServletModuleLinksImcs.java
1 package mircoders.servlet;
2
3 import java.io.*;
4 import java.sql.*;
5 import java.util.*;
6 import java.net.*;
7 import javax.servlet.*;
8 import javax.servlet.http.*;
9
10 import freemarker.template.*;
11
12 import mir.servlet.*;
13 import mir.module.*;
14 import mir.misc.*;
15 import mir.entity.*;
16 import mir.storage.*;
17
18 import mircoders.entity.*;
19 import mircoders.storage.*;
20 import mircoders.module.*;
21
22 /*
23  *  ServletModuleLinksImcs -
24  *  liefert HTML fuer LinksImcs
25  *
26  *
27  * @author RK
28  */
29
30 public class ServletModuleLinksImcs extends ServletModule
31 {
32   private ModuleLanguage languageModule;
33
34   // Singelton / Kontruktor
35   private static ServletModuleLinksImcs instance = new ServletModuleLinksImcs();
36   public static ServletModule getInstance() { return instance; }
37
38
39   private ServletModuleLinksImcs() {
40     theLog = Logfile.getInstance(MirConfig.getProp("Home") + MirConfig.getProp("ServletModule.LinksImcs.Logfile"));
41     templateListString = MirConfig.getProp("ServletModule.LinksImcs.ListTemplate");
42     templateObjektString = MirConfig.getProp("ServletModule.LinksImcs.ObjektTemplate");
43     templateConfirmString = MirConfig.getProp("ServletModule.LinksImcs.ConfirmTemplate");
44
45     try {
46       mainModule = new ModuleLinksImcs(DatabaseLinksImcs.getInstance());
47       languageModule = new ModuleLanguage(DatabaseLanguage.getInstance());
48     } catch (StorageObjectException e) {
49       theLog.printDebugInfo("ServletModuleLinksImcs konnte nicht initialisiert werden");
50     }
51   }
52
53   public void add(HttpServletRequest req, HttpServletResponse res)
54     throws ServletModuleException {
55     try {
56       SimpleHash modelRoot = new SimpleHash();
57       EntityList   theParentList;
58       EntityList   theLanguageList;
59       int offset = 0;
60
61       theParentList = mainModule.getByWhereClause("to_parent_id=NULL", "title", offset, 1000);
62       theLanguageList = languageModule.getByWhereClause(null, "name", 0);
63
64       modelRoot.put("new", "1");
65       modelRoot.put("parentlist",theParentList);
66       modelRoot.put("languagelist",theLanguageList);
67
68       if (theParentList == null || theParentList.getCount() == 0 || theParentList.getCount()>1){
69         HTMLTemplateProcessor.process(res, templateObjektString, modelRoot, res.getWriter(), getLocale(req));
70       } else {
71         deliver(req, res, modelRoot, templateObjektString);
72       }
73
74     } catch(ModuleException e) {
75       throw new ServletModuleException(e.toString());
76     } catch (HTMLParseException e) {
77       throw new ServletModuleException(e.toString());
78     } catch (IOException e) {
79       throw new ServletModuleException(e.toString());
80     }
81   }
82
83   public void list(HttpServletRequest req, HttpServletResponse res)
84     throws ServletModuleException {
85     try {
86
87       SimpleHash   modelRoot = new SimpleHash();
88       EntityList   theParentList;
89       EntityList   theImcsList;
90       EntityList   theLanguageList;
91       String       offsetParam = req.getParameter("offset");
92       String       where = "";
93       String       offset = "";
94       PrintWriter  out = res.getWriter();
95
96       // Parameter auswerten
97       String query_text = req.getParameter("query_text");
98       modelRoot.put("query_text",query_text);
99       if (query_text!=null) modelRoot.put("query_text_encoded",URLEncoder.encode(query_text));
100       String query_field = req.getParameter("query_field");
101                         modelRoot.put("query_field",query_field);
102       String parent = req.getParameter("to_parent_id");
103                         modelRoot.put("to_parent_id",parent);
104       String language = req.getParameter("to_language");
105                         modelRoot.put("to_language",language);
106       modelRoot.put("language", getLanguage(req));
107
108       String whereClause=""; boolean isFirst=true;
109                         if (query_text!=null && !query_text.equalsIgnoreCase("")) {
110                                 whereClause += "lower("+query_field+") like lower('%"+query_text+"%')"; isFirst=false;}
111                         if (parent != null && !parent.equals("")) {
112                                 if (isFirst==false) whereClause+=" and ";
113                                 whereClause += "to_parent_id='"+parent+"'";
114                                 isFirst=false;
115                         }
116       if (language != null && !language.equals("")) {
117                                 if (isFirst==false) whereClause+=" and ";
118                                 whereClause += "to_language='"+language+"'";
119                                 isFirst=false;
120                         }
121
122       // hier offsetcode bearbeiten
123       if (offsetParam != null && !offsetParam.equals("")){
124         offset = offsetParam;
125       }
126       if (req.getParameter("next") != null){
127           offset= req.getParameter("nextoffset");
128       } else {
129           if (req.getParameter("prev") != null){
130             offset = req.getParameter("prevoffset");
131           }
132       }
133
134                         if (offset==null || offset.equals("")) offset="0";
135                         modelRoot.put("offset",(new Integer(offset)).toString());
136
137       theParentList = mainModule.getByWhereClause("to_parent_id=NULL", "title", 0, 1000);
138       theImcsList = mainModule.getByWhereClause(whereClause, "title", (new Integer(offset)).intValue());
139       theLanguageList = languageModule.getByWhereClause(null, "name", 0);
140
141       modelRoot.put("parentlist",theParentList);
142       modelRoot.put("imcslist",theImcsList);
143       modelRoot.put("languagelist",theLanguageList);
144       modelRoot.put("count", (new Integer(theImcsList.getCount())).toString());
145                         modelRoot.put("from", (new Integer(theImcsList.getFrom())).toString());
146                         modelRoot.put("to", (new Integer(theImcsList.getTo())).toString());
147       if (theImcsList.hasNextBatch())
148                                 modelRoot.put("next", (new Integer(theImcsList.getNextBatch())).toString());
149                         if (theImcsList.hasPrevBatch())
150                                 modelRoot.put("prev", (new Integer(theImcsList.getPrevBatch())).toString());
151
152       HTMLTemplateProcessor.process(res, templateListString, modelRoot, res.getWriter(), getLocale(req));
153
154       } catch (Exception e) {
155       throw new ServletModuleException(e.toString());
156     }
157   }
158
159   public void edit(HttpServletRequest req, HttpServletResponse res)
160     throws ServletModuleException {
161     try {
162
163       SimpleHash modelRoot = new SimpleHash();
164       EntityList   parentList;
165       EntityList   theLanguageList;
166       int offset = 0;
167       String idParam = req.getParameter("id");
168       String where = "";
169
170       parentList = mainModule.getByWhereClause("to_parent_id=NULL", "title", offset, 1000);
171       theLanguageList = languageModule.getByWhereClause(null, "name", 0);
172
173       modelRoot.put("parentlist",parentList);
174       modelRoot.put("languagelist",theLanguageList);
175       modelRoot.put("entity", mainModule.getById(idParam));
176       deliver(req, res, modelRoot, templateObjektString);
177
178     } catch(ModuleException e) {
179       throw new ServletModuleException(e.toString());
180     }
181   }
182
183 }
184