]> WPIA git - gigi.git/commitdiff
ADD: Assurancedisplay
authorJanis Streib <janis@dogcraft.de>
Sun, 24 Aug 2014 00:14:56 +0000 (02:14 +0200)
committerJanis Streib <janis@dogcraft.de>
Sun, 24 Aug 2014 00:36:06 +0000 (02:36 +0200)
src/org/cacert/gigi/Gigi.java
src/org/cacert/gigi/output/AssurancesDisplay.java [new file with mode: 0644]
src/org/cacert/gigi/output/AssurancesDisplay.templ [new file with mode: 0644]
src/org/cacert/gigi/pages/wot/MyPoints.java [new file with mode: 0644]
src/org/cacert/gigi/pages/wot/MyPoints.templ [new file with mode: 0644]

index 74bfd623218a8bb9ea0bd0e684bbf25d70674d7a..f2f1980110171ff466f68badc4f7bbdcadbd17a7 100644 (file)
@@ -35,6 +35,7 @@ import org.cacert.gigi.pages.account.MyDetails;
 import org.cacert.gigi.pages.error.PageNotFound;
 import org.cacert.gigi.pages.main.RegisterPage;
 import org.cacert.gigi.pages.wot.AssurePage;
+import org.cacert.gigi.pages.wot.MyPoints;
 import org.cacert.gigi.util.ServerConstants;
 
 public class Gigi extends HttpServlet {
@@ -83,6 +84,7 @@ public class Gigi extends HttpServlet {
             putPage(CertificateAdd.PATH, new CertificateAdd(), "Certificates");
             putPage(MailOverview.DEFAULT_PATH, new MailOverview("My email addresses"), "Certificates");
             putPage(DomainOverview.PATH, new DomainOverview("Domains"), "Certificates");
+            putPage(MyPoints.PATH, new MyPoints("My Points"), "CAcert Web of Trust");
             baseTemplate = new Template(Gigi.class.getResource("Gigi.templ"));
             rootMenu = new Menu("Main");
             for (Menu menu : categories) {
diff --git a/src/org/cacert/gigi/output/AssurancesDisplay.java b/src/org/cacert/gigi/output/AssurancesDisplay.java
new file mode 100644 (file)
index 0000000..df9d80a
--- /dev/null
@@ -0,0 +1,55 @@
+package org.cacert.gigi.output;
+
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.util.Map;
+
+import org.cacert.gigi.Assurance;
+import org.cacert.gigi.localisation.Language;
+import org.cacert.gigi.output.template.IterableDataset;
+import org.cacert.gigi.output.template.Template;
+
+public class AssurancesDisplay implements Outputable {
+
+    private static Template template;
+
+    public String assuranceArray;
+
+    static {
+        template = new Template(new InputStreamReader(AssurancesDisplay.class.getResourceAsStream("AssurancesDisplay.templ")));
+    }
+
+    public AssurancesDisplay(String assuranceArray) {
+        this.assuranceArray = assuranceArray;
+    }
+
+    @Override
+    public void output(PrintWriter out, Language l, Map<String, Object> vars) {
+        final Assurance[] assurances = (Assurance[]) vars.get(assuranceArray);
+        IterableDataset assuranceGroup = new IterableDataset() {
+
+            private int i = 0;
+
+            @Override
+            public boolean next(Language l, Map<String, Object> vars) {
+                if (i >= assurances.length) {
+                    return false;
+                } else {
+                    Assurance assurance = assurances[i];
+                    vars.put("id", assurance.getId());
+                    vars.put("method", assurance.getMethod());
+                    vars.put("from", assurance.getFrom().getName());
+                    vars.put("to", assurance.getTo().getName());
+                    vars.put("date", assurance.getDate());
+                    vars.put("location", assurance.getLocation());
+                    vars.put("points", assurance.getPoints());
+                    i++;
+                    return true;
+                }
+            }
+        };
+        vars.put("assurances", assuranceGroup);
+        template.output(out, l, vars);
+    }
+
+}
diff --git a/src/org/cacert/gigi/output/AssurancesDisplay.templ b/src/org/cacert/gigi/output/AssurancesDisplay.templ
new file mode 100644 (file)
index 0000000..6c8cb1e
--- /dev/null
@@ -0,0 +1,25 @@
+<table class="wrapper dataTable">
+<tr>
+<th colspan="7"><?=_Assurances?></th>
+</tr>
+<tr>
+<td><?=_Id?></td>
+<td><?=_Date?></td>
+<td><?=_From?></td>
+<td><?=_To?></td>
+<td><?=_Points?></td>
+<td><?=_Location?></td>
+<td><?=_Method?></td>
+</tr>
+<? foreach($assurances) {?>
+<tr>
+<td><?=$id?></td>
+<td><?=$date?></td>
+<td><?=$from?></td>
+<td><?=$to?></td>
+<td><?=$points?></td>
+<td><?=$location?></td>
+<td><?=$method?></td>
+</tr>
+<? } ?>
+</table>
\ No newline at end of file
diff --git a/src/org/cacert/gigi/pages/wot/MyPoints.java b/src/org/cacert/gigi/pages/wot/MyPoints.java
new file mode 100644 (file)
index 0000000..fc48143
--- /dev/null
@@ -0,0 +1,37 @@
+package org.cacert.gigi.pages.wot;
+
+import java.io.IOException;
+import java.sql.SQLException;
+import java.util.HashMap;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.cacert.gigi.GigiApiException;
+import org.cacert.gigi.output.AssurancesDisplay;
+import org.cacert.gigi.pages.Page;
+
+public class MyPoints extends Page {
+
+    public static final String PATH = "/wot/mypoints";
+
+    private AssurancesDisplay display = new AssurancesDisplay("asArr");
+
+    public MyPoints(String title) {
+        super(title);
+    }
+
+    @Override
+    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+        HashMap<String, Object> vars = new HashMap<String, Object>();
+        vars.put("pointlist", display);
+        try {
+            vars.put("asArr", getUser(req).getReceivedAssurances());
+        } catch (SQLException e) {
+            new GigiApiException(e).format(resp.getWriter(), getLanguage(req));
+            return;
+        }
+        getDefaultTemplate().output(resp.getWriter(), getLanguage(req), vars);
+    }
+
+}
diff --git a/src/org/cacert/gigi/pages/wot/MyPoints.templ b/src/org/cacert/gigi/pages/wot/MyPoints.templ
new file mode 100644 (file)
index 0000000..7822e5f
--- /dev/null
@@ -0,0 +1 @@
+<?=$pointlist?>
\ No newline at end of file