]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/GigiApiException.java
upd: transform existing mails into mail templates
[gigi.git] / src / org / cacert / gigi / GigiApiException.java
index 944fe645ece5618fb2dc93afc5318d164be6c84b..7b3a990938ad0df650ec2b9c5079124f6d7286ee 100644 (file)
@@ -13,6 +13,8 @@ import org.cacert.gigi.output.template.TranslateCommand;
 
 public class GigiApiException extends Exception {
 
+    private static final Language PLAIN_LANGUAGE = Language.getInstance(Locale.ENGLISH);
+
     private static final long serialVersionUID = -164928670180852588L;
 
     private SQLException e;
@@ -49,25 +51,43 @@ public class GigiApiException extends Exception {
     }
 
     public void format(PrintWriter out, Language language) {
-        out.println("<div class='formError'>");
+        out.println("<div class='alert alert-danger error-msgs'>");
         if (isInternalError()) {
             e.printStackTrace();
-            out.print("<div>");
-            out.println(language.getTranslation("An internal error ouccured."));
-            out.println("</div>");
+            out.print("<p>");
+            out.println(language.getTranslation("An internal error occurred."));
+            out.println("</p>");
         }
         HashMap<String, Object> map = new HashMap<>();
         for (Outputable message : messages) {
             map.clear();
 
-            out.print("<div>");
+            out.print("<p>");
             message.output(out, language, map);
-            out.println("</div>");
+            out.println("</p>");
         }
         out.println("</div>");
 
     }
 
+    public void formatPlain(PrintWriter out) {
+        if (isInternalError()) {
+            out.println(PLAIN_LANGUAGE.getTranslation("An internal error occurred."));
+        }
+        HashMap<String, Object> map = new HashMap<>();
+        for (Outputable message : messages) {
+            if (message instanceof TranslateCommand) {
+                String m = ((TranslateCommand) message).getRaw();
+                // Skip HTML Entities
+                out.println(PLAIN_LANGUAGE.getTranslation(m));
+            } else {
+                map.clear();
+                message.output(out, PLAIN_LANGUAGE, map);
+                out.println();
+            }
+        }
+    }
+
     public boolean isEmpty() {
         return e == null && messages.size() == 0;
     }
@@ -81,7 +101,7 @@ public class GigiApiException extends Exception {
             HashMap<String, Object> map = new HashMap<>();
             for (Outputable message : messages) {
                 map.clear();
-                message.output(pw, Language.getInstance(Locale.ENGLISH), map);
+                message.output(pw, PLAIN_LANGUAGE, map);
             }
             pw.flush();