1
1
package com.tidspr.tsr;
3
import java.io.BufferedReader;
4
3
import java.io.IOException;
5
import java.io.InputStreamReader;
6
4
import java.io.PrintWriter;
8
5
import java.text.SimpleDateFormat;
9
6
import java.util.List;
10
7
import javax.jdo.PersistenceManager;
11
import javax.servlet.ServletContext;
12
8
import javax.servlet.http.HttpServlet;
13
9
import javax.servlet.http.HttpServletRequest;
14
10
import javax.servlet.http.HttpServletResponse;
16
12
import com.google.appengine.api.datastore.KeyFactory;
17
13
import com.tidspr.tsr.entity.Mail;
14
import com.tidspr.tsr.entity.Tidder;
18
15
import com.tidspr.tsr.factory.PMF;
16
import com.tidspr.tsr.io.TidderIO;
19
17
import com.tidspr.tsr.toolbox.Miscellaneous;
21
19
public class MailList extends HttpServlet{
26
24
public void doGet(final HttpServletRequest req, final HttpServletResponse res)
26
Tidder _mpt = TidderIO.readTidder("MailTemplate");
27
if(_mpt == null) return;
28
29
String pageNumberStr = req.getParameter("page");
29
30
int pageNumber = (pageNumberStr == null || !pageNumberStr.matches("[0-9]+"))? 0 : Integer.parseInt(pageNumberStr);
30
31
final PersistenceManager pm = PMF.get().getPersistenceManager();
32
33
que.setRange(0 + 50*pageNumber, 49 + 50*pageNumber);
33
34
que.setOrdering("date descending");
34
35
final List<Mail> list = (List<Mail>) que.execute();
35
37
StringBuilder sb = new StringBuilder();
36
38
for (final Mail m : list)
38
40
String ks = KeyFactory.keyToString(m.key());
39
sb.append("<tr><td width='20em;'><a href='javascript:mailcontext(\""+ks+"\");' >"+m.getSubject()+"</a></td><td>" + encode(m.getFrom().substring(0,m.getFrom().indexOf('@')))+"</td><td>"+new SimpleDateFormat("yyyy.MM.dd hh:mm").format(m.getDate()) + "</td></tr>");
41
sb.append("<tr><td width='20em;'><a href='javascript:mailcontext(\""+ks+"\");' >"+m.getSubject()+"</a></td><td>" + Miscellaneous.INSTANCE.htmlEncode(m.getFrom().substring(0,m.getFrom().indexOf('@')))+"</td><td>"+new SimpleDateFormat("yyyy.MM.dd hh:mm").format(m.getDate()) + "</td></tr>");
44
46
res.setContentType("text/html");
45
47
res.setCharacterEncoding("UTF-8");
46
final StringBuilder msb = new StringBuilder();
49
ServletContext context = getServletContext();
50
final URL u = context.getResource("/WEB-INF/mailtmpl.txt");
51
final BufferedReader in = new BufferedReader(new InputStreamReader(u.openStream(), "UTF-8"));
53
while ((inputLine = in.readLine()) != null)
55
msb.append(inputLine + "\n");
59
catch (final IOException e1)
63
48
final PrintWriter out = res.getWriter();
64
out.write(msb.toString().replace("{{{mailtable}}}", sb.toString()).replace("{{{nextpage}}}", Integer.toString(pageNumber+1)));
49
out.write(_mpt.html().replace("{{{mailtable}}}", sb.toString()).replace("{{{nextpage}}}", Integer.toString(pageNumber+1)));
66
51
catch (final IOException e)
68
53
e.printStackTrace();
72
private String encode(final String str)
74
return str.replace("<", "<").replace(">", ">");