]> WPIA git - gigi.git/commitdiff
ADD: Domain deletion
authorJanis Streib <janis@dogcraft.de>
Tue, 29 Jul 2014 22:49:32 +0000 (00:49 +0200)
committerJanis Streib <janis@dogcraft.de>
Tue, 29 Jul 2014 22:49:32 +0000 (00:49 +0200)
src/org/cacert/gigi/pages/account/DomainManagementForm.java
src/org/cacert/gigi/pages/account/DomainManagementForm.templ
src/org/cacert/gigi/pages/account/DomainOverview.java

index 3d72dafda50a25960444ee2a05343ebfe4c7f8d8..675c6041e20b364ce993a9e1a3ee3befe39b13fd 100644 (file)
@@ -6,22 +6,44 @@ import java.util.Map;
 import javax.servlet.http.HttpServletRequest;
 
 import org.cacert.gigi.Domain;
+import org.cacert.gigi.GigiApiException;
 import org.cacert.gigi.Language;
+import org.cacert.gigi.User;
 import org.cacert.gigi.output.Form;
 import org.cacert.gigi.output.template.IterableDataset;
 import org.cacert.gigi.output.template.Template;
+import org.cacert.gigi.pages.Page;
 
 public class DomainManagementForm extends Form {
 
     private static final Template t = new Template(DomainManagementForm.class.getResource("DomainManagementForm.templ"));
 
-    public DomainManagementForm(HttpServletRequest hsr) {
+    private User target;
+
+    public DomainManagementForm(HttpServletRequest hsr, User target) {
         super(hsr);
+        this.target = target;
     }
 
     @Override
     public boolean submit(PrintWriter out, HttpServletRequest req) {
-        return false;
+        try {
+            String[] dels = req.getParameterValues("delid[]");
+            Domain[] usDomains = target.getDomains();
+            for (int i = 0; i < dels.length; i++) {
+                int delId = Integer.parseInt(dels[i]);
+                for (int j = 0; j < usDomains.length; j++) {
+                    if (usDomains[j].getId() == delId) {
+                        usDomains[j].delete();
+                        break;
+                    }
+                }
+            }
+        } catch (GigiApiException e) {
+            e.format(out, Page.getLanguage(req));
+            return false;
+        }
+        return true;
     }
 
     @Override
index 879943c7bfabd5e3ec417cf737bcb181e26cce65..574cac7c44e930cbbcae9d1e5b604682523e7b3d 100644 (file)
@@ -15,4 +15,7 @@
        <td><?=$domain?></td>
   </tr>
   <? } ?>
+  <tr>
+    <td colspan="3"><input type="submit" name="domdel" value="<?=_Delete?>"></td>
+  </tr>
 </tbody></table>
\ No newline at end of file
index cff8b28a7fd48230126f25d3e49456c5e6d969f1..4b298f87e5db08dbc2497277d3f9808291664f76 100644 (file)
@@ -21,7 +21,7 @@ public class DomainOverview extends Page {
     @Override
     public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
         User u = getUser(req);
-        DomainManagementForm domMan = new DomainManagementForm(req);
+        DomainManagementForm domMan = new DomainManagementForm(req, u);
         DomainAddForm domAdd = new DomainAddForm(req, u);
         HashMap<String, Object> vars = new HashMap<>();
         vars.put("doms", u.getDomains());
@@ -34,10 +34,14 @@ public class DomainOverview extends Page {
     public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
         if (req.getParameter("adddomain") != null) {
             DomainAddForm f = Form.getForm(req, DomainAddForm.class);
-            f.submit(resp.getWriter(), req);
-        } else if (req.getParameter("") != null) {
+            if (f.submit(resp.getWriter(), req)) {
+                resp.sendRedirect(PATH);
+            }
+        } else if (req.getParameter("domdel") != null) {
             DomainManagementForm f = Form.getForm(req, DomainManagementForm.class);
-            f.submit(resp.getWriter(), req);
+            if (f.submit(resp.getWriter(), req)) {
+                resp.sendRedirect(PATH);
+            }
         }
         super.doPost(req, resp);
     }