]> WPIA git - gigi.git/commitdiff
Start for dynamic menu.
authorFelix Dörre <felix@dogcraft.de>
Fri, 4 Jul 2014 16:24:03 +0000 (18:24 +0200)
committerFelix Dörre <felix@dogcraft.de>
Fri, 4 Jul 2014 16:24:03 +0000 (18:24 +0200)
src/org/cacert/gigi/Gigi.java
src/org/cacert/gigi/Gigi.templ
src/org/cacert/gigi/output/Menu.java [new file with mode: 0644]
src/org/cacert/gigi/output/MenuItem.java [new file with mode: 0644]

index 78c3373e16a9c12d0f43abdf5ac5f0ba827c83eb..bdd0e9cd2a8ca7a53ba25145cdd6af4b12300308 100644 (file)
@@ -16,6 +16,8 @@ import javax.servlet.http.HttpSession;
 
 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;
@@ -37,6 +39,7 @@ public class Gigi extends HttpServlet {
        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);
@@ -57,6 +60,10 @@ public class Gigi extends HttpServlet {
                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();
 
        }
@@ -112,6 +119,7 @@ public class Gigi extends HttpServlet {
 
                                }
                        };
+                       vars.put("menu", m);
                        vars.put("title", p.getTitle());
                        vars.put("static", ServerConstants.getStaticHostNamePort());
                        vars.put("year", Calendar.getInstance().get(Calendar.YEAR));
index 13a897a6d48c5ae5a8962be0267599579bedf846..71d41a57d613187994115eee448af68c76c99062 100644 (file)
@@ -33,6 +33,7 @@
                                        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">
diff --git a/src/org/cacert/gigi/output/Menu.java b/src/org/cacert/gigi/output/Menu.java
new file mode 100644 (file)
index 0000000..09f4a21
--- /dev/null
@@ -0,0 +1,34 @@
+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>");
+       }
+}
diff --git a/src/org/cacert/gigi/output/MenuItem.java b/src/org/cacert/gigi/output/MenuItem.java
new file mode 100644 (file)
index 0000000..66d629f
--- /dev/null
@@ -0,0 +1,26 @@
+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>");
+       }
+
+}