diff --git a/pom.xml b/pom.xml index 69c974c..2d03578 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.example Widerhall - 0.2.27 + 0.2.28 diff --git a/src/main/java/de/srsoftware/widerhall/web/TemplateServlet.java b/src/main/java/de/srsoftware/widerhall/web/TemplateServlet.java index 4c69da2..43eacbf 100644 --- a/src/main/java/de/srsoftware/widerhall/web/TemplateServlet.java +++ b/src/main/java/de/srsoftware/widerhall/web/TemplateServlet.java @@ -29,8 +29,10 @@ public abstract class TemplateServlet extends HttpServlet { var file = new File(path); if (!file.exists()) return t("File {} does not exist!",filename); try { - var content = Files.readString(file.toPath()); - resp.getWriter().println(content); + var content = Files.readAllBytes(file.toPath()); + var out = resp.getOutputStream(); + out.write(content); + out.flush(); } catch (IOException e) { return t("Failed to load file '{}'!",filename); } diff --git a/src/main/java/de/srsoftware/widerhall/web/Web.java b/src/main/java/de/srsoftware/widerhall/web/Web.java index b46cd29..2e76d6f 100644 --- a/src/main/java/de/srsoftware/widerhall/web/Web.java +++ b/src/main/java/de/srsoftware/widerhall/web/Web.java @@ -306,7 +306,12 @@ public class Web extends TemplateServlet { case "jquery": resp.setContentType("text/javascript"); return loadFile("jquery-3.6.0.min.js",resp); - case UNSUBSCRIBE: + case "OpenSans-Regular.woff": + resp.setContentType("font/woff"); + return loadFile("OpenSans-Regular.woff",resp); + case "Bhineka.ttf": + resp.setContentType("font/ttf"); + return loadFile("Bhineka.ttf",resp); case UNSUBSCRIBE: data.put(LIST,list.email()); return loadTemplate(path,data,resp); diff --git a/static/Bhineka.ttf b/static/Bhineka.ttf new file mode 100644 index 0000000..ce6b709 Binary files /dev/null and b/static/Bhineka.ttf differ diff --git a/static/OpenSans-Regular.woff b/static/OpenSans-Regular.woff new file mode 100644 index 0000000..a7f9ed2 Binary files /dev/null and b/static/OpenSans-Regular.woff differ diff --git a/static/templates/css.st b/static/templates/css.st index f2f2e24..79b86a2 100644 --- a/static/templates/css.st +++ b/static/templates/css.st @@ -1,3 +1,16 @@ +@font-face{ + font-family: "osans"; + src: url("OpenSans-Regular.woff") format("woff"); +} + +@font-face{ + font-family: "lofty"; + src: url("Bhineka.ttf") format("truetype"); +} + +body { + font-family: osans; +} label { display: block; margin: 5px 0; @@ -13,6 +26,35 @@ form#list_data, h1 { text-align: center; + font-family: lofty; + font-size: 64px; +} + +fieldset{ + border-radius: 15px; + background: #eefffc; + border-color: #6c57ff; + border-width: 1px; + border-style: solid; +} + +fieldset fieldset { + background: white; +} +legend { + font-family: lofty; + font-size: 24px; + border-radius: 5px; + padding: 0px 5px; + background: #eefffc; + border-color: #6c57ff; + border-width: 1px; + border-style: solid; + margin: 10px 0; +} + +fieldset fieldset>legend { + background: white; } .error{ @@ -42,4 +84,29 @@ h1 { right: 0; text-align: right; margin: 5px; +} + +tr:nth-child(2n), +tr>*:nth-child(2n){ + background: rgba(0,0,0,0.1); +} + +a, +button { + padding: 5px; + border-radius: 5px; + border-color: #2621ca; + border-width: 1px; + border-collapse: collapse; + border-style: solid; + font-size: 14px; + text-decoration: none; + margin: 10px 2px; + background: #83f9ff; + color: #1b00d7; +} + +table{ + margin: 0 0 10px; + min-width: 100%; } \ No newline at end of file