From: Felix Dörre Date: Mon, 14 Jul 2014 20:00:09 +0000 (+0200) Subject: Fix templating. Add language to IterableDataset. X-Git-Url: https://code.wpia.club/?p=gigi.git;a=commitdiff_plain;h=aade4c55a068d4b8211d67754cb6060e6c7a42b0 Fix templating. Add language to IterableDataset. --- diff --git a/src/org/cacert/gigi/output/template/ForeachStatement.java b/src/org/cacert/gigi/output/template/ForeachStatement.java index 0b3c5269..38aad35f 100644 --- a/src/org/cacert/gigi/output/template/ForeachStatement.java +++ b/src/org/cacert/gigi/output/template/ForeachStatement.java @@ -22,7 +22,7 @@ final class ForeachStatement implements Outputable { if (o instanceof IterableDataset) { IterableDataset id = (IterableDataset) o; Map subcontext = new HashMap(vars); - while (id.next(subcontext)) { + while (id.next(l, subcontext)) { body.output(out, l, subcontext); } } diff --git a/src/org/cacert/gigi/output/template/IterableDataset.java b/src/org/cacert/gigi/output/template/IterableDataset.java index d908fccc..bd7b99b2 100644 --- a/src/org/cacert/gigi/output/template/IterableDataset.java +++ b/src/org/cacert/gigi/output/template/IterableDataset.java @@ -2,6 +2,8 @@ package org.cacert.gigi.output.template; import java.util.Map; +import org.cacert.gigi.Language; + /** * Represents some kind of data, that may be iterated over in a template. */ @@ -9,11 +11,13 @@ public interface IterableDataset { /** * Moves to the next Dataset. * + * @param l + * the language for l10n-ed strings * @param vars * the variables used in this template. They need to be updated * for each line. * @return true, iff there was a data-line "installed". False of this set is * already empty. */ - public boolean next(Map vars); + public boolean next(Language l, Map vars); } diff --git a/src/org/cacert/gigi/output/template/Template.java b/src/org/cacert/gigi/output/template/Template.java index 08f261af..b8dd7424 100644 --- a/src/org/cacert/gigi/output/template/Template.java +++ b/src/org/cacert/gigi/output/template/Template.java @@ -57,24 +57,23 @@ public class Template implements Outputable { LinkedList splitted = new LinkedList(); LinkedList commands = new LinkedList(); StringBuffer buf = new StringBuffer(); - int ch = r.read(); outer: while (true) { while (!endsWith(buf, "")) { - buf.append((char) ch); - ch = r.read(); + int ch = r.read(); if (ch == -1) { throw new EOFException(); } + buf.append((char) ch); } buf.delete(buf.length() - 2, buf.length()); String com = buf.toString().replace("\n", ""); diff --git a/src/org/cacert/gigi/pages/account/MailCertificateAdd.java b/src/org/cacert/gigi/pages/account/MailCertificateAdd.java index 769f9e1a..5a343954 100644 --- a/src/org/cacert/gigi/pages/account/MailCertificateAdd.java +++ b/src/org/cacert/gigi/pages/account/MailCertificateAdd.java @@ -12,6 +12,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.cacert.gigi.Certificate; +import org.cacert.gigi.Language; import org.cacert.gigi.User; import org.cacert.gigi.database.DatabaseConnection; import org.cacert.gigi.output.ClientCSRGenerate; @@ -40,7 +41,7 @@ public class MailCertificateAdd extends Page { vars.put("emails", new IterableDataset() { @Override - public boolean next(Map vars) { + public boolean next(Language l, Map vars) { try { if (!rs.next()) { return false;