1 package org.cacert.gigi.output;
3 import java.io.PrintWriter;
4 import java.text.ParseException;
5 import java.text.SimpleDateFormat;
6 import java.util.Calendar;
8 import java.util.GregorianCalendar;
10 import java.util.TimeZone;
12 import javax.servlet.http.HttpServletRequest;
14 import org.cacert.gigi.localisation.Language;
16 public class CertificateValiditySelector implements Outputable {
18 SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
20 private static final int DAY = 1000 * 60 * 60 * 24;
26 public CertificateValiditySelector() {
27 fmt.setTimeZone(TimeZone.getTimeZone("UTC"));
32 public void output(PrintWriter out, Language l, Map<String, Object> vars) {
33 out.print("<select name='validFrom'><option value='now'");
35 out.print(" selected='selected'");
38 out.print(l.getTranslation("now"));
39 out.print("</option>");
40 long base = getCurrentDayBase();
41 for (int i = 0; i < 14; i++) {
42 long date = base + DAY * i;
43 String d = fmt.format(new Date(date));
44 out.print("<option value='");
47 if (from != null && from.getTime() == date) {
48 out.print(" selected='selected'");
52 out.println("</option>");
54 out.println("</select>");
56 out.print("<select name='validity'>");
57 out.print("<option value='6m'");
58 if ("0.5m".equals(val)) {
59 out.print(" selected='selected'");
61 out.println(">6 months</option>");
63 out.print("<option value='1y'");
64 if ("1y".equals(val)) {
65 out.print(" selected='selected'");
67 out.println(">1 year</option>");
69 out.print("<option value='2y'");
70 if ("2y".equals(val)) {
71 out.print(" selected='selected'");
73 out.println(">2 years</option>");
74 out.println("</select>");
80 Calendar c = GregorianCalendar.getInstance();
82 if ("6m".equals(val)) {
83 c.add(Calendar.MONTH, 6);
84 } else if ("1y".equals(val)) {
85 c.add(Calendar.YEAR, 1);
86 } else if ("2y".equals(val)) {
87 c.add(Calendar.YEAR, 2);
89 out.println("From: " + fmt.format(from));
90 out.println("To: " + fmt.format(c.getTime()));
93 private long getCurrentDayBase() {
94 long base = System.currentTimeMillis();
100 public void update(HttpServletRequest r) {
101 String from = r.getParameter("validFrom");
102 if (from == null || "now".equals(from)) {
106 this.from = fmt.parse(from);
107 } catch (ParseException e) {
111 val = r.getParameter("validity");