import org.cacert.gigi.database.DatabaseConnection;
import org.cacert.gigi.email.EmailProvider;
+import org.cacert.gigi.output.Menu;
+import org.cacert.gigi.output.MenuItem;
import org.cacert.gigi.output.Outputable;
import org.cacert.gigi.output.Template;
import org.cacert.gigi.pages.LoginPage;
private static final long serialVersionUID = -6386785421902852904L;
private Template baseTemplate;
private HashMap<String, Page> pages = new HashMap<String, Page>();
+ Menu m;
public Gigi(Properties conf) {
EmailProvider.init(conf);
pages.put(MailAdd.DEFAULT_PATH, new MailAdd("Add new email"));
baseTemplate = new Template(new InputStreamReader(
Gigi.class.getResourceAsStream("Gigi.templ")));
+ m = new Menu("Certificates", "cert", new MenuItem(
+ MailOverview.DEFAULT_PATH, "Emails"), new MenuItem("",
+ "Client Certificates"), new MenuItem("", "Domains"),
+ new MenuItem("", "Server Certificates"));
super.init();
}
}
};
+ vars.put("menu", m);
vars.put("title", p.getTitle());
vars.put("static", ServerConstants.getStaticHostNamePort());
vars.put("year", Calendar.getInstance().get(Calendar.YEAR));
im Net-Cafe</a> <a href="/login">Anmelden
mit Zertifikat</a>
</div>
+ <?=$menu?>
<div>
<h3 class="pointer">+ Über CAcert.org</h3>
<ul class="menu hidden" id="misc">
--- /dev/null
+package org.cacert.gigi.output;
+
+import java.io.PrintWriter;
+import java.util.Map;
+
+import org.cacert.gigi.Language;
+
+public class Menu implements Outputable {
+ String menuName;
+ String id;
+ private MenuItem[] content;
+
+ public Menu(String menuName, String id, MenuItem... content) {
+ this.menuName = menuName;
+ this.id = id;
+ this.content = content;
+ }
+
+ @Override
+ public void output(PrintWriter out, Language l, Map<String, Object> vars) {
+ out.println("<div>");
+ out.print("<h3>+ ");
+ out.print(l.getTranslation(menuName));
+ out.print("</h3>");
+ out.print("<ul class=\"menu\" id=\"");
+ out.print(id);
+ out.print("\">");
+ for (MenuItem mi : content) {
+ mi.output(out, l, vars);
+ }
+
+ out.println("</ul></div>");
+ }
+}
--- /dev/null
+package org.cacert.gigi.output;
+
+import java.io.PrintWriter;
+import java.util.Map;
+
+import org.cacert.gigi.Language;
+
+public class MenuItem implements Outputable {
+ final String href;
+ final String name;
+
+ public MenuItem(String href, String name) {
+ this.href = href;
+ this.name = name;
+ }
+
+ @Override
+ public void output(PrintWriter out, Language l, Map<String, Object> vars) {
+ out.print("<li><a href=\"");
+ out.print(href);
+ out.print("\">");
+ out.print(l.getTranslation(name));
+ out.print("</a></li>");
+ }
+
+}