1.1 --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/PodnikEJB.java Tue Jun 08 07:37:05 2010 +0200
1.2 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/PodnikEJB.java Tue Jun 08 09:09:17 2010 +0200
1.3 @@ -1,11 +1,15 @@
1.4 package cz.frantovo.nekurak.ejb;
1.5
1.6 import cz.frantovo.nekurak.dao.PodnikDAO;
1.7 +import cz.frantovo.nekurak.dto.Komentar;
1.8 import cz.frantovo.nekurak.dto.Podnik;
1.9 import cz.frantovo.nekurak.dto.VysledekHlasovani;
1.10 import cz.frantovo.nekurak.ext.Geo;
1.11 import cz.frantovo.nekurak.ext.Geo.Souradnice;
1.12 +import cz.frantovo.nekurak.ext.Texy;
1.13 +import cz.frantovo.nekurak.util.Komentare;
1.14 import java.util.Collection;
1.15 +import java.util.Date;
1.16 import java.util.logging.Logger;
1.17 import javax.annotation.Resource;
1.18 import javax.annotation.security.RolesAllowed;
1.19 @@ -74,4 +78,27 @@
1.20 public VysledekHlasovani getVysledekHlasovani(int podnik) {
1.21 return podnikDAO.getVysledekHlasovani(podnik);
1.22 }
1.23 +
1.24 + @RolesAllowed("opravneny")
1.25 + public void komentuj(Komentar k) {
1.26 + k.setUzivatel(ctx.getCallerPrincipal().getName());
1.27 + k.setDatum(new Date());
1.28 +
1.29 + /** Převedeme na XML */
1.30 + switch (k.getTyp()) {
1.31 + case PROSTY_TEXT:
1.32 + k.setKomentar(Komentare.upravProstyText(k.getKomentar()));
1.33 + k.setKomentar(Komentare.obal(k.getKomentar()));
1.34 + break;
1.35 + case TEXY:
1.36 + Texy t = new Texy();
1.37 + k.setKomentar(t.preved(k.getKomentar()));
1.38 + k.setKomentar(Komentare.obal(k.getKomentar()));
1.39 + break;
1.40 + }
1.41 +
1.42 +
1.43 + /** Zkontrolujeme XML */
1.44 + log.severe("Komentář: " + k.getNadpis() + " | " + k.getKomentar() + " | " + k.getTyp());
1.45 + }
1.46 }
2.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Komentar.java Tue Jun 08 07:37:05 2010 +0200
2.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Komentar.java Tue Jun 08 09:09:17 2010 +0200
2.3 @@ -14,6 +14,21 @@
2.4 private Date datum;
2.5 private String nadpis;
2.6 private String komentar;
2.7 + private TYP typ;
2.8 +
2.9 + public TYP getTyp() {
2.10 + return typ;
2.11 + }
2.12 +
2.13 + public void setTyp(TYP typ) {
2.14 + this.typ = typ;
2.15 + }
2.16 +
2.17 + public enum TYP {
2.18 + PROSTY_TEXT,
2.19 + XHTML,
2.20 + TEXY
2.21 + }
2.22
2.23 public int getId() {
2.24 return id;
3.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/PodnikRemote.java Tue Jun 08 07:37:05 2010 +0200
3.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/PodnikRemote.java Tue Jun 08 09:09:17 2010 +0200
3.3 @@ -1,5 +1,6 @@
3.4 package cz.frantovo.nekurak.ejb;
3.5
3.6 +import cz.frantovo.nekurak.dto.Komentar;
3.7 import cz.frantovo.nekurak.dto.Podnik;
3.8 import cz.frantovo.nekurak.dto.VysledekHlasovani;
3.9 import java.util.Collection;
3.10 @@ -35,4 +36,9 @@
3.11 * @return agregované výsledky hlasování pro daný podnik
3.12 */
3.13 public VysledekHlasovani getVysledekHlasovani(int podnik);
3.14 +
3.15 + /**
3.16 + * @param k komentář, který se má přidat k podniku
3.17 + */
3.18 + public void komentuj(Komentar k);
3.19 }
4.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/preklady_cs.properties Tue Jun 08 07:37:05 2010 +0200
4.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/preklady_cs.properties Tue Jun 08 09:09:17 2010 +0200
4.3 @@ -86,4 +86,11 @@
4.4 komentare.komentovat=Komentovat!
4.5 komentare.nadpis=Nadpis
4.6 komentare.tlacitkoOdeslat=Vlo\u017Eit koment\u00E1\u0159
4.7 -komentare.napsal=Napsal
4.8 \ No newline at end of file
4.9 +komentare.napsal=Napsal
4.10 +komentar.odeslat.nadpis=Vlo\u017Een\u00ED koment\u00E1\u0159e
4.11 +komentar.odeslat.ok=Koment\u00E1\u0159 byl \u00FAsp\u011B\u0161n\u011B vlo\u017Een
4.12 +komentar.odeslat.pokracujte=pokra\u010Dujte na str\u00E1nku podniku
4.13 +komentar.typ.prostyText=Prost\u00FD text
4.14 +komentar.typ.xhtml=XHTML form\u00E1tovan\u00FD text
4.15 +komentar.typ.texy=Texy form\u00E1tovan\u00FD text
4.16 +
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
5.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/util/Komentare.java Tue Jun 08 09:09:17 2010 +0200
5.3 @@ -0,0 +1,32 @@
5.4 +package cz.frantovo.nekurak.util;
5.5 +
5.6 +/**
5.7 + * Validátor komentářů
5.8 + * @author fiki
5.9 + */
5.10 +public class Komentare {
5.11 +
5.12 + /**
5.13 + * Escapuje XML a doplní XHTML zalomení na konce řádků.
5.14 + * @param komentar prostý text zadaný uživatelem
5.15 + * @return XHTML komentář bez kořenového elementu
5.16 + */
5.17 + public static String upravProstyText(String komentar) {
5.18 + komentar = escapujXML(komentar);
5.19 + return "<p>" + komentar.replaceAll("\n", "<br/>") + "</p>";
5.20 + }
5.21 +
5.22 + /**
5.23 + *
5.24 + * @param komentar vstupní XHTML
5.25 + * @return XHTML obalené kořenovým elementem
5.26 + */
5.27 + public static String obal(String komentar) {
5.28 + return "<div>" + komentar + "</div>";
5.29 + }
5.30 +
5.31 + private static String escapujXML(String str) {
5.32 + return str.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll("\"", """).replaceAll("'", "'");
5.33 +
5.34 + }
5.35 +}
6.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
6.2 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/OdeslatKomentar.java Tue Jun 08 09:09:17 2010 +0200
6.3 @@ -0,0 +1,18 @@
6.4 +package cz.frantovo.nekurak.web;
6.5 +
6.6 +import cz.frantovo.nekurak.dto.Komentar;
6.7 +import java.util.logging.Logger;
6.8 +
6.9 +/**
6.10 + *
6.11 + * @author fiki
6.12 + */
6.13 +public class OdeslatKomentar {
6.14 +
6.15 + private HledacSluzby hledac = new HledacSluzby();
6.16 + private static final Logger log = Logger.getLogger(OdeslatKomentar.class.getSimpleName());
6.17 +
6.18 + public void setKomentar(Komentar k) {
6.19 + hledac.getPodnikEJB().komentuj(k);
6.20 + }
6.21 +}
7.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
7.2 +++ b/java/nekurak.net-web/web/WEB-INF/casti/odeslatKomentar.jsp Tue Jun 08 09:09:17 2010 +0200
7.3 @@ -0,0 +1,32 @@
7.4 +<?xml version="1.0" encoding="UTF-8"?>
7.5 +<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
7.6 + xmlns:c="http://java.sun.com/jsp/jstl/core"
7.7 + xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
7.8 + xmlns:fn="http://java.sun.com/jsp/jstl/functions"
7.9 + xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
7.10 + version="2.0">
7.11 +
7.12 + <jsp:useBean id="odeslatKomentar" class="cz.frantovo.nekurak.web.OdeslatKomentar" scope="request"/>
7.13 + <jsp:useBean id="komentar" class="cz.frantovo.nekurak.dto.Komentar" scope="request"/>
7.14 +
7.15 +
7.16 + <fmt:message key="komentar.odeslat.nadpis" var="titulekStranky"/>
7.17 + <nk:stranka titulek="${titulekStranky}">
7.18 +
7.19 + <h1><c:out value="${titulekStranky}"/></h1>
7.20 +
7.21 + <jsp:setProperty name="komentar" property="podnik" value="${param.podnik}"/>
7.22 + <jsp:setProperty name="komentar" property="nadpis" value="${param.nadpis}"/>
7.23 + <jsp:setProperty name="komentar" property="komentar" value="${param.komentar}"/>
7.24 + <jsp:setProperty name="komentar" property="typ" value="${param.typ}"/>
7.25 + <jsp:setProperty name="odeslatKomentar" property="komentar" value="${komentar}"/>
7.26 +
7.27 + <p>
7.28 + <fmt:message key="komentar.odeslat.ok"/>,
7.29 + <a href="?akce=detail&amp;podnik=${komentar.podnik}"><fmt:message key="komentar.odeslat.pokracujte"/></a>.
7.30 + </p>
7.31 +
7.32 +
7.33 + </nk:stranka>
7.34 +
7.35 +</jsp:root>
8.1 --- a/java/nekurak.net-web/web/WEB-INF/tags/nekurak/komentareVypis.tag Tue Jun 08 07:37:05 2010 +0200
8.2 +++ b/java/nekurak.net-web/web/WEB-INF/tags/nekurak/komentareVypis.tag Tue Jun 08 09:09:17 2010 +0200
8.3 @@ -27,8 +27,16 @@
8.4 <form method="post" action="?akce=odeslatKomentar">
8.5 <fieldset>
8.6 <input type="hidden" name="podnik" maxlength="255" value="${podnik.id}"/>
8.7 - <label><fmt:message key="komentare.nadpis"/>: <input type="text" name="nadpis" maxlength="255"/></label><br/>
8.8 - <textarea name="komentar" cols="30" rows="10"></textarea><br/>
8.9 + <label><fmt:message key="komentare.nadpis"/>: <input type="text" name="nadpis" maxlength="255"/></label>
8.10 + <br/>
8.11 + <textarea name="komentar" cols="30" rows="10"></textarea>
8.12 + <br/>
8.13 + <select name="typ">
8.14 + <option value="PROSTY_TEXT" selected="selected"><fmt:message key="komentar.typ.prostyText"/></option>
8.15 + <option value="XHTML"><fmt:message key="komentar.typ.xhtml"/></option>
8.16 + <option value="TEXY"><fmt:message key="komentar.typ.texy"/></option>
8.17 + </select>
8.18 + <br/>
8.19 <button value="submit"><fmt:message key="komentare.tlacitkoOdeslat"/></button>
8.20 </fieldset>
8.21 </form>
9.1 --- a/java/nekurak.net-web/web/index.jsp Tue Jun 08 07:37:05 2010 +0200
9.2 +++ b/java/nekurak.net-web/web/index.jsp Tue Jun 08 09:09:17 2010 +0200
9.3 @@ -40,6 +40,9 @@
9.4 <c:when test="${param.akce == 'prihlaseni'}">
9.5 <jsp:include page="/WEB-INF/casti/prihlaseni.jsp" flush="false"/>
9.6 </c:when>
9.7 + <c:when test="${param.akce == 'odeslatKomentar'}">
9.8 + <jsp:include page="/WEB-INF/casti/odeslatKomentar.jsp" flush="false"/>
9.9 + </c:when>
9.10 <c:otherwise>
9.11 <jsp:include page="/WEB-INF/casti/uvod.jsp" flush="false"/>
9.12 </c:otherwise>