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 {
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) {
--- /dev/null
+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);
+ }
+
+}
--- /dev/null
+<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
--- /dev/null
+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);
+ }
+
+}
--- /dev/null
+<?=$pointlist?>
\ No newline at end of file