From: Janis Streib Date: Sun, 24 Aug 2014 00:14:56 +0000 (+0200) Subject: ADD: Assurancedisplay X-Git-Url: https://code.wpia.club/?p=gigi.git;a=commitdiff_plain;h=822443761eabc6166cddb123a1c99a95614fa11e ADD: Assurancedisplay --- diff --git a/src/org/cacert/gigi/Gigi.java b/src/org/cacert/gigi/Gigi.java index 74bfd623..f2f19801 100644 --- a/src/org/cacert/gigi/Gigi.java +++ b/src/org/cacert/gigi/Gigi.java @@ -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 index 00000000..df9d80a6 --- /dev/null +++ b/src/org/cacert/gigi/output/AssurancesDisplay.java @@ -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 vars) { + final Assurance[] assurances = (Assurance[]) vars.get(assuranceArray); + IterableDataset assuranceGroup = new IterableDataset() { + + private int i = 0; + + @Override + public boolean next(Language l, Map 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 index 00000000..6c8cb1ee --- /dev/null +++ b/src/org/cacert/gigi/output/AssurancesDisplay.templ @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + +
\ 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 index 00000000..fc481437 --- /dev/null +++ b/src/org/cacert/gigi/pages/wot/MyPoints.java @@ -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 vars = new HashMap(); + 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 index 00000000..7822e5f1 --- /dev/null +++ b/src/org/cacert/gigi/pages/wot/MyPoints.templ @@ -0,0 +1 @@ + \ No newline at end of file