]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/account/MyDetailsForm.java
UPD: Move some template classes to there reightful place.
[gigi.git] / src / org / cacert / gigi / pages / account / MyDetailsForm.java
index 32e275fb47b668f9681111fd368a5f7a0a2f4545..efff2f0e82ebf92e7def05f177c544fda6acf3a9 100644 (file)
@@ -1,36 +1,36 @@
 package org.cacert.gigi.pages.account;
 
-import java.io.InputStreamReader;
 import java.io.PrintWriter;
-import java.sql.Date;
-import java.sql.SQLException;
-import java.util.Calendar;
 import java.util.Map;
-import java.util.TimeZone;
 
 import javax.servlet.http.HttpServletRequest;
 
 import org.cacert.gigi.GigiApiException;
-import org.cacert.gigi.User;
+import org.cacert.gigi.dbObjects.User;
 import org.cacert.gigi.localisation.Language;
 import org.cacert.gigi.output.DateSelector;
-import org.cacert.gigi.output.Form;
+import org.cacert.gigi.output.template.Form;
 import org.cacert.gigi.output.template.Template;
 import org.cacert.gigi.pages.Page;
 import org.cacert.gigi.util.HTMLEncoder;
 
 public class MyDetailsForm extends Form {
 
+    private static Template assured = new Template(MyDetails.class.getResource("MyDetailsFormAssured.templ"));
+
     private static Template templ;
     static {
-        templ = new Template(new InputStreamReader(MyDetailsForm.class.getResourceAsStream("MyDetailsForm.templ")));
+        templ = new Template(MyDetailsForm.class.getResource("MyDetailsForm.templ"));
     }
 
     private User target;
 
+    private DateSelector ds;
+
     public MyDetailsForm(HttpServletRequest hsr, User target) {
         super(hsr);
         this.target = target;
+        this.ds = new DateSelector("day", "month", "year", target.getDob());
     }
 
     @Override
@@ -41,28 +41,19 @@ public class MyDetailsForm extends Form {
                 String newLname = req.getParameter("lname").trim();
                 String newMname = req.getParameter("mname").trim();
                 String newSuffix = req.getParameter("suffix").trim();
-                if ((newFname.isEmpty() && !target.getFname().isEmpty()) || (newLname.isEmpty() && !target.getLname().isEmpty()) || (newMname.isEmpty() && !target.getMname().isEmpty()) || (newSuffix.isEmpty() && !target.getSuffix().isEmpty())) {
-                    throw new GigiApiException("Names couldn't be removed.");
+                if (newLname.isEmpty()) {
+                    throw new GigiApiException("Last name cannot be empty.");
                 }
                 target.setFname(newFname);
                 target.setLname(newLname);
                 target.setMname(newMname);
                 target.setSuffix(newSuffix);
-                int newYear = Integer.parseInt(req.getParameter("year"));
-                int newMonth = Integer.parseInt(req.getParameter("month"));
-                int newDay = Integer.parseInt(req.getParameter("day"));
-                Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
-                cal.set(Calendar.YEAR, newYear);
-                cal.set(Calendar.MONTH, newMonth);
-                cal.set(Calendar.DAY_OF_MONTH, newDay);
-                target.setDob(new Date(cal.getTimeInMillis()));
+                ds.update(req);
+                target.setDob(ds.getDate());
                 target.updateUserData();
             } else {
                 throw new GigiApiException("No change after assurance allowed.");
             }
-        } catch (SQLException e) {
-            new GigiApiException(e).format(out, Page.getLanguage(req));
-            return false;
         } catch (GigiApiException e) {
             e.format(out, Page.getLanguage(req));
             return false;
@@ -79,10 +70,14 @@ public class MyDetailsForm extends Form {
         vars.put("mname", target.getMname() == null ? "" : HTMLEncoder.encodeHTML(target.getMname()));
         vars.put("lname", HTMLEncoder.encodeHTML(target.getLname()));
         vars.put("suffix", target.getSuffix() == null ? "" : HTMLEncoder.encodeHTML(target.getSuffix()));
-        DateSelector ds = new DateSelector("day", "month", "year", target.getDob());
-        vars.put("DoB", ds);
         vars.put("details", "");
-        templ.output(out, l, vars);
+        if (target.getAssurancePoints() == 0) {
+            vars.put("DoB", ds);
+            templ.output(out, l, vars);
+        } else {
+            vars.put("DoB", DateSelector.getDateFormat().format(target.getDob()));
+            assured.output(out, l, vars);
+        }
     }
 
 }