# HG changeset patch # User František Kučera # Date 1320694304 -3600 # Node ID 40b7aa9126d037e8d702ac61a996166ae6c82c20 # Parent 27b751390163a10f9ad65a7885de6b3faf711857 Podpora Markdown syntaxe pro komentáře. diff -r 27b751390163 -r 40b7aa9126d0 java/nekurak.net-ejb/nbproject/build-impl.xml --- a/java/nekurak.net-ejb/nbproject/build-impl.xml Mon Nov 07 20:31:08 2011 +0100 +++ b/java/nekurak.net-ejb/nbproject/build-impl.xml Mon Nov 07 20:31:44 2011 +0100 @@ -138,7 +138,10 @@ - + + + + @@ -361,7 +364,7 @@ - + @@ -614,9 +617,7 @@ - - - + @@ -636,6 +637,9 @@ Must select one file in the IDE or set run.class + + + @@ -845,7 +849,7 @@ - + diff -r 27b751390163 -r 40b7aa9126d0 java/nekurak.net-ejb/nbproject/genfiles.properties --- a/java/nekurak.net-ejb/nbproject/genfiles.properties Mon Nov 07 20:31:08 2011 +0100 +++ b/java/nekurak.net-ejb/nbproject/genfiles.properties Mon Nov 07 20:31:44 2011 +0100 @@ -4,5 +4,5 @@ # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. nbproject/build-impl.xml.data.CRC32=ec49fdf0 -nbproject/build-impl.xml.script.CRC32=7d2f29de -nbproject/build-impl.xml.stylesheet.CRC32=6cd662d4@1.28.1 +nbproject/build-impl.xml.script.CRC32=c9f547dd +nbproject/build-impl.xml.stylesheet.CRC32=2bce7fe8@1.30.1 diff -r 27b751390163 -r 40b7aa9126d0 java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/PodnikEJB.java --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/PodnikEJB.java Mon Nov 07 20:31:08 2011 +0100 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/PodnikEJB.java Mon Nov 07 20:31:44 2011 +0100 @@ -8,10 +8,10 @@ import cz.frantovo.nekurak.dto.VysledekHlasovani; import cz.frantovo.nekurak.ext.Geo; import cz.frantovo.nekurak.ext.Geo.Souradnice; -import cz.frantovo.nekurak.ext.Texy; +import cz.frantovo.nekurak.ext.WikiSyntaxProcesor; import cz.frantovo.nekurak.util.Komentare; import cz.frantovo.nekurak.vyjimky.KomentarovaVyjimka; -import cz.frantovo.nekurak.vyjimky.TexyVyjimka; +import cz.frantovo.nekurak.vyjimky.WikiSyntaxVyjimka; import java.util.Collection; import java.util.logging.Logger; import javax.annotation.Resource; @@ -32,6 +32,8 @@ private PodnikDAO podnikDAO; @Resource private SessionContext ctx; + + private WikiSyntaxProcesor wikiSyntaxProcesor = new WikiSyntaxProcesor(); @Override public Collection getPodniky() { @@ -122,7 +124,7 @@ return podnikDAO.getVysledekHlasovani(podnik); } - private void kontrolaKomentare(Komentar k) throws TexyVyjimka, KomentarovaVyjimka { + private void kontrolaKomentare(Komentar k) throws WikiSyntaxVyjimka, KomentarovaVyjimka { k.setUzivatel(ctx.getCallerPrincipal().getName()); k.setDatum(null); @@ -135,9 +137,11 @@ case PROSTY_TEXT: k.setKomentar(Komentare.upravProstyText(k.getKomentar())); break; + case MARKDOWN: + k.setKomentar(wikiSyntaxProcesor.převeď(k.getKomentar(), Komentar.TYP.MARKDOWN)); + break; case TEXY: - Texy t = new Texy(); - k.setKomentar(t.preved(k.getKomentar())); + k.setKomentar(wikiSyntaxProcesor.převeď(k.getKomentar(), Komentar.TYP.TEXY)); break; case XHTML: k.setKomentar(Komentare.upravXHTML(k.getKomentar())); @@ -152,7 +156,7 @@ @Override @RolesAllowed("opravneny") - public Komentar komentuj(Komentar k, boolean uloz) throws KomentarovaVyjimka, TexyVyjimka { + public Komentar komentuj(Komentar k, boolean uloz) throws KomentarovaVyjimka, WikiSyntaxVyjimka { kontrolaKomentare(k); if (uloz) { podnikDAO.zaloz(k); diff -r 27b751390163 -r 40b7aa9126d0 java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ext/Texy.java --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ext/Texy.java Mon Nov 07 20:31:08 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -package cz.frantovo.nekurak.ext; - -import cz.frantovo.nekurak.vyjimky.TexyVyjimka; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.net.URL; -import java.net.URLConnection; -import java.net.URLEncoder; -import java.util.logging.Level; -import java.util.logging.Logger; - -/** - * Neprovádí vlastní interpretaci Texy syntaxe, ale volá HTTP službu napsanou v PHP. - * TODO: použít webové služby, nebo něco lepšího než ruční práci s URL. - * @author fiki - */ -public class Texy { - - /** TODO: parametrizovatelnost */ - private static final String URL_SLUZBY = "http://nekurak.net/texy/http/"; - private static final String KODOVANI = "UTF-8"; - private static final Logger log = Logger.getLogger(Texy.class.getSimpleName()); - - public String preved(String text) throws TexyVyjimka { - OutputStreamWriter wr = null; - BufferedReader rd = null; - try { - URL url = new URL(URL_SLUZBY); - URLConnection spojeni = url.openConnection(); - spojeni.setDoOutput(true); - - /** Odešleme data */ - wr = new OutputStreamWriter(spojeni.getOutputStream()); - wr.write(URLEncoder.encode(text, KODOVANI)); - wr.flush(); - - /** Přijmeme odpověď */ - rd = new BufferedReader(new InputStreamReader(spojeni.getInputStream(), KODOVANI)); - StringBuilder vysledek = new StringBuilder(); - String radka; - while ((radka = rd.readLine()) != null) { - vysledek.append(radka); - } - - return vysledek.toString(); - } catch (Exception e) { - throw new TexyVyjimka("Chyba při zpracovávání textu: " + text, e); - } finally { - try { - wr.close(); - } catch (IOException e) { - log.log(Level.WARNING, "Selhalo zavírání OutputStreamWriteru", e); - } - try { - rd.close(); - } catch (IOException e) { - log.log(Level.WARNING, "Selhalo zavírání BufferedReaderu", e); - } - } - } -} diff -r 27b751390163 -r 40b7aa9126d0 java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ext/WikiSyntaxProcesor.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ext/WikiSyntaxProcesor.java Mon Nov 07 20:31:44 2011 +0100 @@ -0,0 +1,130 @@ +package cz.frantovo.nekurak.ext; + +import cz.frantovo.nekurak.dto.Komentar; +import cz.frantovo.nekurak.vyjimky.WikiSyntaxVyjimka; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.io.PrintStream; +import java.net.URL; +import java.net.URLConnection; +import java.net.URLEncoder; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * Neprovádí vlastní interpretaci wiki syntaxe syntaxe, ale volá HTTP službu napsanou v PHP nebo samostatný proces v systému. + * TODO: použít webové služby, nebo něco lepšího než ruční práci s URL. + * @author fiki + */ +public class WikiSyntaxProcesor { + + /** TODO: parametrizovatelnost */ + private static final String URL_SLUZBY = "http://nekurak.net/texy/http/"; + private static final String KODOVANI = "UTF-8"; + private static final Logger log = Logger.getLogger(WikiSyntaxProcesor.class.getSimpleName()); + private String[] markdownPříkaz = new String[]{"sudo", "-u", "markdown", "/usr/bin/markdown"}; + + public String převeď(String text, Komentar.TYP syntaxe) throws WikiSyntaxVyjimka { + switch (syntaxe) { + case MARKDOWN: + return převeďMarkdown(text); + case TEXY: + return převeďTexy(text); + default: + throw new WikiSyntaxVyjimka("Nepodporovaná wiki syntaxe.", null); + } + } + + private String převeďMarkdown(String text) throws WikiSyntaxVyjimka { + try { + Runtime r = Runtime.getRuntime(); + Process p = r.exec(markdownPříkaz); + + PrintStream processInput = new PrintStream(p.getOutputStream()); + processInput.print(text); + processInput.close(); + + String errors = načtiProud(p.getErrorStream()); + String htmlFragment = načtiProud(p.getInputStream()); + + if (errors.length() == 0) { + return htmlFragment; + } else { + throw new WikiSyntaxVyjimka("Markdown procesor vrátil chyby: " + errors, null); + } + } catch (Exception e) { + throw new WikiSyntaxVyjimka("Chyba při transformaci Markdown → XHTML", e); + } + } + + private String převeďTexy(String text) throws WikiSyntaxVyjimka { + OutputStreamWriter wr = null; + BufferedReader rd = null; + try { + URL url = new URL(URL_SLUZBY); + URLConnection spojeni = url.openConnection(); + spojeni.setDoOutput(true); + + /** Odešleme data */ + wr = new OutputStreamWriter(spojeni.getOutputStream()); + wr.write(URLEncoder.encode(text, KODOVANI)); + wr.flush(); + + /** Přijmeme odpověď */ + rd = new BufferedReader(new InputStreamReader(spojeni.getInputStream(), KODOVANI)); + StringBuilder vysledek = new StringBuilder(); + String radka; + while ((radka = rd.readLine()) != null) { + vysledek.append(radka); + } + + return vysledek.toString(); + } catch (Exception e) { + throw new WikiSyntaxVyjimka("Chyba při zpracovávání textu: " + text, e); + } finally { + try { + wr.close(); + } catch (IOException e) { + log.log(Level.WARNING, "Selhalo zavírání OutputStreamWriteru", e); + } + try { + rd.close(); + } catch (IOException e) { + log.log(Level.WARNING, "Selhalo zavírání BufferedReaderu", e); + } + } + } + + /** + * Čte proud dat dokud to jde a výsledek pak vrátí jako text. + * @param proud vstupní proud + * @return obsah proudu jako text + * @throws IOException + */ + public static String načtiProud(InputStream proud) throws IOException { + StringBuilder výsledek = new StringBuilder(); + BufferedReader buf = new BufferedReader(new InputStreamReader(proud)); + while (true) { + String radek = buf.readLine(); + if (radek == null) { + break; + } else { + výsledek.append(radek); + výsledek.append("\n"); + } + } + return výsledek.toString(); + } + + /** + * Můžeme nastavit vlastní příkaz pro transformaci Markdown syntaxe. + * Ve výchozím nastavení se Markdown procesor volá přes sudo pod uživatelem markdown. + * @param markdownPříkaz první je příkaz, následují případné parametry + */ + public void setMarkdownPříkaz(String[] markdownPříkaz) { + this.markdownPříkaz = markdownPříkaz; + } +} diff -r 27b751390163 -r 40b7aa9126d0 java/nekurak.net-ejb/test/cz/frantovo/nekurak/ext/TexyTest.java --- a/java/nekurak.net-ejb/test/cz/frantovo/nekurak/ext/TexyTest.java Mon Nov 07 20:31:08 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -package cz.frantovo.nekurak.ext; - -import cz.frantovo.nekurak.vyjimky.TexyVyjimka; -import org.junit.Test; -import static org.junit.Assert.*; - -/** - * Testuje spíš dostupnost vzdálené služby a fungování samotného Texy než implementaci javové části – - * ta buď funguje, nebo nefunguje → není potřeba testovat moc do podrobna. - * (testovat by se měla případná parametrizovatelnost – zatím žádná není) - * @author fiki - */ -public class TexyTest { - - private Texy texy = new Texy(); - private static final int CASOVY_LIMIT = 1000; - - @Test(timeout = CASOVY_LIMIT) - public void prostyText() throws TexyVyjimka { - testuj("", ""); - testuj("ahoj", "

ahoj

"); - } - - @Test(timeout = CASOVY_LIMIT) - public void nadpisy() throws TexyVyjimka { - testuj("===Nadpis===", "

Nadpis

"); - } - - private void testuj(String vstup, String pozadovanyVystup) throws TexyVyjimka { - String vystup = texy.preved(vstup); - assertEquals(pozadovanyVystup, vystup); - } -} diff -r 27b751390163 -r 40b7aa9126d0 java/nekurak.net-ejb/test/cz/frantovo/nekurak/ext/WikiSyntaxProcesorTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/nekurak.net-ejb/test/cz/frantovo/nekurak/ext/WikiSyntaxProcesorTest.java Mon Nov 07 20:31:44 2011 +0100 @@ -0,0 +1,44 @@ +package cz.frantovo.nekurak.ext; + +import cz.frantovo.nekurak.dto.Komentar.TYP; +import cz.frantovo.nekurak.vyjimky.WikiSyntaxVyjimka; +import org.junit.Before; +import org.junit.Test; +import static org.junit.Assert.*; + +/** + * Testuje spíš dostupnost vzdálené služby a fungování samotného WikiSyntaxProcesor než implementaci javové části – + * ta buď funguje, nebo nefunguje → není potřeba testovat moc do podrobna. + * (testovat by se měla případná parametrizovatelnost – zatím žádná není) + * @author fiki + */ +public class WikiSyntaxProcesorTest { + + private WikiSyntaxProcesor wikiSyntaxProcesor = new WikiSyntaxProcesor(); + private static final int CASOVY_LIMIT = 1000; + + @Before + public void setUp() { + wikiSyntaxProcesor.setMarkdownPříkaz(new String[]{"markdown"}); + } + + @Test(timeout = CASOVY_LIMIT) + public void prostyText() throws WikiSyntaxVyjimka { + testuj("", "", TYP.TEXY); + testuj("", "", TYP.MARKDOWN); + + testuj("ahoj", "

ahoj

", TYP.TEXY); + testuj("ahoj", "

ahoj

", TYP.MARKDOWN); + } + + @Test(timeout = CASOVY_LIMIT) + public void nadpisy() throws WikiSyntaxVyjimka { + testuj("===Nadpis===", "

Nadpis

", TYP.TEXY); + testuj("Nadpis\n======", "

Nadpis

", TYP.MARKDOWN); + } + + private void testuj(String vstup, String pozadovanyVystup, TYP syntaxe) throws WikiSyntaxVyjimka { + String vystup = wikiSyntaxProcesor.převeď(vstup, syntaxe); + assertEquals(pozadovanyVystup, vystup.trim()); + } +} diff -r 27b751390163 -r 40b7aa9126d0 java/nekurak.net-lib/nbproject/build-impl.xml --- a/java/nekurak.net-lib/nbproject/build-impl.xml Mon Nov 07 20:31:08 2011 +0100 +++ b/java/nekurak.net-lib/nbproject/build-impl.xml Mon Nov 07 20:31:44 2011 +0100 @@ -843,11 +843,12 @@ - + + diff -r 27b751390163 -r 40b7aa9126d0 java/nekurak.net-lib/nbproject/genfiles.properties --- a/java/nekurak.net-lib/nbproject/genfiles.properties Mon Nov 07 20:31:08 2011 +0100 +++ b/java/nekurak.net-lib/nbproject/genfiles.properties Mon Nov 07 20:31:44 2011 +0100 @@ -4,5 +4,5 @@ # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. nbproject/build-impl.xml.data.CRC32=11ce77af -nbproject/build-impl.xml.script.CRC32=2e465a03 -nbproject/build-impl.xml.stylesheet.CRC32=0c01fd8e@1.43.1.45 +nbproject/build-impl.xml.script.CRC32=455ed348 +nbproject/build-impl.xml.stylesheet.CRC32=0ae3a408@1.44.1.45 diff -r 27b751390163 -r 40b7aa9126d0 java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Komentar.java --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Komentar.java Mon Nov 07 20:31:08 2011 +0100 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Komentar.java Mon Nov 07 20:31:44 2011 +0100 @@ -28,6 +28,7 @@ PROSTY_TEXT, XHTML, + MARKDOWN, TEXY } diff -r 27b751390163 -r 40b7aa9126d0 java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/PodnikRemote.java --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/PodnikRemote.java Mon Nov 07 20:31:08 2011 +0100 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/PodnikRemote.java Mon Nov 07 20:31:44 2011 +0100 @@ -6,7 +6,7 @@ import cz.frantovo.nekurak.dto.Podnik; import cz.frantovo.nekurak.dto.VysledekHlasovani; import cz.frantovo.nekurak.vyjimky.KomentarovaVyjimka; -import cz.frantovo.nekurak.vyjimky.TexyVyjimka; +import cz.frantovo.nekurak.vyjimky.WikiSyntaxVyjimka; import java.util.Collection; import javax.ejb.Remote; @@ -52,5 +52,5 @@ * @param k komentář, který se má přidat k podniku * @param uloz true = vloží komentář | false = pouze zkontroluje (naformátuje obsah komentáře) */ - public Komentar komentuj(Komentar k, boolean uloz) throws KomentarovaVyjimka, TexyVyjimka; + public Komentar komentuj(Komentar k, boolean uloz) throws KomentarovaVyjimka, WikiSyntaxVyjimka; } diff -r 27b751390163 -r 40b7aa9126d0 java/nekurak.net-lib/src/cz/frantovo/nekurak/preklady_cs.properties --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/preklady_cs.properties Mon Nov 07 20:31:08 2011 +0100 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/preklady_cs.properties Mon Nov 07 20:31:44 2011 +0100 @@ -141,6 +141,7 @@ komentar.typ.prostyText=Prost\u00fd text komentar.typ.xhtml=XHTML form\u00e1tovan\u00fd text komentar.typ.xhtml.povoleneZnacky=Povolen\u00e9 zna\u010dky jsou: p, strong, em a br. +komentar.typ.markdown=Markdown form\u00e1tovan\u00fd text komentar.typ.texy=Texy form\u00e1tovan\u00fd text komentar.nejdeZobrazit=Tento koment\u00e1\u0159 bohu\u017eel nelze z technick\u00fdch d\u016fvod\u016f zobrazit. diff -r 27b751390163 -r 40b7aa9126d0 java/nekurak.net-lib/src/cz/frantovo/nekurak/util/Komentare.java --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/util/Komentare.java Mon Nov 07 20:31:08 2011 +0100 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/util/Komentare.java Mon Nov 07 20:31:44 2011 +0100 @@ -116,6 +116,5 @@ private static String escapujXML(String str) { return str.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll("\"", """).replaceAll("'", "'"); - } } diff -r 27b751390163 -r 40b7aa9126d0 java/nekurak.net-lib/src/cz/frantovo/nekurak/vyjimky/TexyVyjimka.java --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/vyjimky/TexyVyjimka.java Mon Nov 07 20:31:08 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -package cz.frantovo.nekurak.vyjimky; - -/** - * - * @author fiki - */ -public class TexyVyjimka extends NekurakVyjimka { - - public TexyVyjimka(String chyba, Exception e) { - super(chyba, e); - } -} diff -r 27b751390163 -r 40b7aa9126d0 java/nekurak.net-lib/src/cz/frantovo/nekurak/vyjimky/WikiSyntaxVyjimka.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/vyjimky/WikiSyntaxVyjimka.java Mon Nov 07 20:31:44 2011 +0100 @@ -0,0 +1,12 @@ +package cz.frantovo.nekurak.vyjimky; + +/** + * + * @author fiki + */ +public class WikiSyntaxVyjimka extends NekurakVyjimka { + + public WikiSyntaxVyjimka(String chyba, Exception e) { + super(chyba, e); + } +} diff -r 27b751390163 -r 40b7aa9126d0 java/nekurak.net-web/nbproject/build-impl.xml --- a/java/nekurak.net-web/nbproject/build-impl.xml Mon Nov 07 20:31:08 2011 +0100 +++ b/java/nekurak.net-web/nbproject/build-impl.xml Mon Nov 07 20:31:44 2011 +0100 @@ -191,7 +191,10 @@
- + + + + @@ -727,9 +730,7 @@ - - - + @@ -815,6 +816,9 @@ Must select one file in the IDE or set run.class + + + @@ -1049,7 +1053,7 @@ CLEANUP SECTION --> - + diff -r 27b751390163 -r 40b7aa9126d0 java/nekurak.net-web/nbproject/genfiles.properties --- a/java/nekurak.net-web/nbproject/genfiles.properties Mon Nov 07 20:31:08 2011 +0100 +++ b/java/nekurak.net-web/nbproject/genfiles.properties Mon Nov 07 20:31:44 2011 +0100 @@ -4,8 +4,8 @@ # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. nbproject/build-impl.xml.data.CRC32=28fc3c5a -nbproject/build-impl.xml.script.CRC32=37b9073f -nbproject/build-impl.xml.stylesheet.CRC32=8ca9f0e6@1.31.2.1 +nbproject/build-impl.xml.script.CRC32=fa3d6af3 +nbproject/build-impl.xml.stylesheet.CRC32=0cbf5bb7@1.33.1.1 nbproject/rest-build.xml.data.CRC32=84da1c7b nbproject/rest-build.xml.script.CRC32=3db088b3 nbproject/rest-build.xml.stylesheet.CRC32=ddd64843@1.4.1 diff -r 27b751390163 -r 40b7aa9126d0 java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/OdeslatKomentar.java --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/OdeslatKomentar.java Mon Nov 07 20:31:08 2011 +0100 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/OdeslatKomentar.java Mon Nov 07 20:31:44 2011 +0100 @@ -2,7 +2,7 @@ import cz.frantovo.nekurak.dto.Komentar; import cz.frantovo.nekurak.vyjimky.KomentarovaVyjimka; -import cz.frantovo.nekurak.vyjimky.TexyVyjimka; +import cz.frantovo.nekurak.vyjimky.WikiSyntaxVyjimka; import java.util.logging.Level; import java.util.logging.Logger; @@ -16,7 +16,7 @@ private static final Logger log = Logger.getLogger(OdeslatKomentar.class.getSimpleName()); private boolean ok = false; - public void setKomentar(Komentar k) throws TexyVyjimka { + public void setKomentar(Komentar k) throws WikiSyntaxVyjimka { try { hledac.getPodnikEJB().komentuj(k, true); ok = true; diff -r 27b751390163 -r 40b7aa9126d0 java/nekurak.net-web/web/WEB-INF/tags/nekurak/podnikKomentare.tag --- a/java/nekurak.net-web/web/WEB-INF/tags/nekurak/podnikKomentare.tag Mon Nov 07 20:31:08 2011 +0100 +++ b/java/nekurak.net-web/web/WEB-INF/tags/nekurak/podnikKomentare.tag Mon Nov 07 20:31:44 2011 +0100 @@ -34,6 +34,7 @@
diff -r 27b751390163 -r 40b7aa9126d0 java/nekurak.net-web/web/WEB-INF/web.xml --- a/java/nekurak.net-web/web/WEB-INF/web.xml Mon Nov 07 20:31:08 2011 +0100 +++ b/java/nekurak.net-web/web/WEB-INF/web.xml Mon Nov 07 20:31:44 2011 +0100 @@ -123,7 +123,7 @@ FORM - nekurakNET + nekurak.net /prihlaseni /prihlaseni?chyba=ano