Formátování kódu, důsledné používání tabulátorů, drobné úpravy, StringBuilder 15. díl
authorFrantišek Kučera <franta-hg@frantovo.cz>
Sun Jun 20 14:46:47 2010 +0200 (2010-06-20)
changeset 1450efefbf5f8b6
parent 144 3ea50a264ce0
child 146 61fb2c0fbcbc
Formátování kódu, důsledné používání tabulátorů, drobné úpravy, StringBuilder
java/nekurak.net-ear/nbproject/project.properties
java/nekurak.net-ejb/nbproject/project.properties
java/nekurak.net-ejb/src/conf/Clanek.hbm.xml
java/nekurak.net-ejb/src/conf/Fotka.hbm.xml
java/nekurak.net-ejb/src/conf/Komentar.hbm.xml
java/nekurak.net-ejb/src/conf/Podnik.hbm.xml
java/nekurak.net-ejb/src/conf/Uzivatel.hbm.xml
java/nekurak.net-ejb/src/conf/persistence.xml
java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/ClanekDAO.java
java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/DAO.java
java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/PodnikDAO.java
java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/PodnikDAO.sql.xml
java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/UzivatelDAO.java
java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/ClanekEJB.java
java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/PodnikEJB.java
java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/UzivatelEJB.java
java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/email/Adresa.java
java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/email/Postak.java
java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ext/Geo.java
java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ext/Texy.java
java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ext/package-info.java
java/nekurak.net-ejb/test/cz/frantovo/nekurak/ext/GeoTest.java
java/nekurak.net-ejb/test/cz/frantovo/nekurak/ext/TexyTest.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Clanek.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Fotka.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Komentar.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Podnik.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/PozadavekNaRegistraciUzivatele.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Uzivatel.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/VysledekHlasovani.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/ClanekRemote.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/PodnikRemote.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/UzivatelRemote.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/preklady_cs.properties
java/nekurak.net-lib/src/cz/frantovo/nekurak/util/Hash.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/util/HttpPozadavek.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/util/Komentare.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/vyjimky/KomentarovaVyjimka.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/vyjimky/NecekanaVyjimka.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/vyjimky/NekurakVyjimka.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/vyjimky/TexyVyjimka.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/web/HledacSluzby.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/xml/ClanekXML.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/xml/HlasXML.java
java/nekurak.net-lib/src/cz/frantovo/nekurak/xml/package-info.java
java/nekurak.net-lib/test/cz/frantovo/nekurak/util/HashTest.java
java/nekurak.net-lib/test/cz/frantovo/nekurak/util/KomentareTest.java
java/nekurak.net-rest/nbproject/project.properties
java/nekurak.net-rest/src/java/cz/frantovo/nekurak/rest/ClankyREST.java
java/nekurak.net-rest/web/WEB-INF/sun-web.xml
java/nekurak.net-rest/web/WEB-INF/web.xml
java/nekurak.net-rest/web/index.jsp
java/nekurak.net-web/src/java/cz/frantovo/nekurak/rest/HlasovaniREST.java
java/nekurak.net-web/src/java/cz/frantovo/nekurak/servlet/Fotky.java
java/nekurak.net-web/src/java/cz/frantovo/nekurak/servlet/Komentare.java
java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Atom.java
java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Detail.java
java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/FunkceEL.java
java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Hlasovani.java
java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/OdeslatKomentar.java
java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/PridatPodnik.java
java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/RegistraceUzivatele.java
java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Uvod.java
java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/UzivatelPredRegistraci.java
java/nekurak.net-web/web/WEB-INF/atom/atom.jsp
java/nekurak.net-web/web/WEB-INF/casti/ajaxKomentare/chyba.jsp
java/nekurak.net-web/web/WEB-INF/casti/ajaxKomentare/nahled.jsp
java/nekurak.net-web/web/WEB-INF/casti/ajaxKomentare/odeslano.jsp
java/nekurak.net-web/web/WEB-INF/casti/detail.jsp
java/nekurak.net-web/web/WEB-INF/casti/odeslatKomentar.jsp
java/nekurak.net-web/web/WEB-INF/casti/pridatPodnik.jsp
java/nekurak.net-web/web/WEB-INF/casti/prihlaseni.jsp
java/nekurak.net-web/web/WEB-INF/casti/registrovatUzivatele.jsp
java/nekurak.net-web/web/WEB-INF/casti/uvod.jsp
java/nekurak.net-web/web/WEB-INF/chyby/404.jsp
java/nekurak.net-web/web/WEB-INF/chyby/500.jsp
java/nekurak.net-web/web/WEB-INF/nekurakFunkce.tld
java/nekurak.net-web/web/WEB-INF/sun-web.xml
java/nekurak.net-web/web/WEB-INF/tags/nekurak/fotkyPodniku.tag
java/nekurak.net-web/web/WEB-INF/tags/nekurak/hlasovani.tag
java/nekurak.net-web/web/WEB-INF/tags/nekurak/komentareVypis.tag
java/nekurak.net-web/web/WEB-INF/tags/nekurak/prepinaniJazyku.tag
java/nekurak.net-web/web/WEB-INF/tags/nekurak/stranka.tag
java/nekurak.net-web/web/WEB-INF/web.xml
java/nekurak.net-web/web/hlasovani-svg.jsp
java/nekurak.net-web/web/index.jsp
java/nekurak.net-web/web/js/fotkyPodniku.js
java/nekurak.net-web/web/js/hlasovani.js
java/nekurak.net-web/web/js/komentare.js
java/nekurak.net-web/web/kaptcha.jsp
java/nekurak.net-web/web/sprava/index.jsp
java/nekurak.net-ws/nbproject/project.properties
java/nekurak.net-ws/src/java/cz/frantovo/nekurak/ws/Podnik.java
java/nekurak.net-ws/src/java/cz/frantovo/nekurak/ws/Pokus.java
java/nekurak.net-ws/web/WEB-INF/sun-web.xml
java/nekurak.net-ws/web/WEB-INF/web.xml
java/nekurak.net-ws/web/index.jsp
xml/komentář.xsd
     1.1 --- a/java/nekurak.net-ear/nbproject/project.properties	Sat Jun 19 14:37:11 2010 +0200
     1.2 +++ b/java/nekurak.net-ear/nbproject/project.properties	Sun Jun 20 14:46:47 2010 +0200
     1.3 @@ -12,7 +12,7 @@
     1.4  j2ee.appclient.mainclass.args=${j2ee.appclient.tool.args}
     1.5  j2ee.deploy.on.save=false
     1.6  j2ee.platform=1.6
     1.7 -j2ee.platform.classpath=${j2ee.server.home}/modules/javax.servlet.jar:${j2ee.server.home}/modules/jstl-impl.jar:${j2ee.server.home}/modules/javax.ejb.jar:${j2ee.server.home}/modules/javax.enterprise.deploy.jar:${j2ee.server.home}/modules/javax.security.jacc.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.transaction.jar:${j2ee.server.home}/modules/jsr311-api.jar:${j2ee.server.home}/modules/jsf-api.jar:${j2ee.server.home}/modules/javax.security.auth.message.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/endorsed/javax.annotation.jar:${j2ee.server.home}/modules/javax.management.j2ee.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api-osgi.jar:${j2ee.server.home}/modules/javax.jms.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.resource.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.home}/modules/jsf-impl.jar:${j2ee.server.home}/modules/mail.jar
     1.8 +j2ee.platform.classpath=
     1.9  j2ee.platform.embeddableejb.classpath=${j2ee.server.home}/lib/embedded/glassfish-embedded-static-shell.jar
    1.10  j2ee.platform.wscompile.classpath=${j2ee.server.home}/modules/webservices-osgi.jar
    1.11  j2ee.platform.wsgen.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api-osgi.jar:${j2ee.server.home}/modules/javax.ejb.jar
     2.1 --- a/java/nekurak.net-ejb/nbproject/project.properties	Sat Jun 19 14:37:11 2010 +0200
     2.2 +++ b/java/nekurak.net-ejb/nbproject/project.properties	Sun Jun 20 14:46:47 2010 +0200
     2.3 @@ -24,7 +24,7 @@
     2.4  includes=**
     2.5  j2ee.deploy.on.save=false
     2.6  j2ee.platform=1.6
     2.7 -j2ee.platform.classpath=${j2ee.server.home}/modules/javax.servlet.jar:${j2ee.server.home}/modules/jstl-impl.jar:${j2ee.server.home}/modules/javax.ejb.jar:${j2ee.server.home}/modules/javax.enterprise.deploy.jar:${j2ee.server.home}/modules/javax.security.jacc.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.transaction.jar:${j2ee.server.home}/modules/jsr311-api.jar:${j2ee.server.home}/modules/jsf-api.jar:${j2ee.server.home}/modules/javax.security.auth.message.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/endorsed/javax.annotation.jar:${j2ee.server.home}/modules/javax.management.j2ee.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api-osgi.jar:${j2ee.server.home}/modules/javax.jms.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.resource.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.home}/modules/jsf-impl.jar:${j2ee.server.home}/modules/mail.jar
     2.8 +j2ee.platform.classpath=
     2.9  j2ee.platform.embeddableejb.classpath=${j2ee.server.home}/lib/embedded/glassfish-embedded-static-shell.jar
    2.10  j2ee.platform.wscompile.classpath=${j2ee.server.home}/modules/webservices-osgi.jar
    2.11  j2ee.platform.wsgen.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api-osgi.jar:${j2ee.server.home}/modules/javax.ejb.jar
     3.1 --- a/java/nekurak.net-ejb/src/conf/Clanek.hbm.xml	Sat Jun 19 14:37:11 2010 +0200
     3.2 +++ b/java/nekurak.net-ejb/src/conf/Clanek.hbm.xml	Sun Jun 20 14:46:47 2010 +0200
     3.3 @@ -2,13 +2,13 @@
     3.4  <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     3.5  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     3.6  <hibernate-mapping>
     3.7 -    <class name="cz.frantovo.nekurak.dto.Clanek" table="clanek">
     3.8 -	<id name="id" column="id" type="integer">
     3.9 -	    <generator class="sequence">
    3.10 -		<param name="sequence">clanek_seq</param>
    3.11 -	    </generator>
    3.12 -	</id>
    3.13 -	<property name="nadpis" column="nadpis"/>
    3.14 -	<property name="text" column="text"/>
    3.15 -    </class>
    3.16 +	<class name="cz.frantovo.nekurak.dto.Clanek" table="clanek">
    3.17 +		<id name="id" column="id" type="integer">
    3.18 +			<generator class="sequence">
    3.19 +				<param name="sequence">clanek_seq</param>
    3.20 +			</generator>
    3.21 +		</id>
    3.22 +		<property name="nadpis" column="nadpis"/>
    3.23 +		<property name="text" column="text"/>
    3.24 +	</class>
    3.25  </hibernate-mapping>
    3.26 \ No newline at end of file
     4.1 --- a/java/nekurak.net-ejb/src/conf/Fotka.hbm.xml	Sat Jun 19 14:37:11 2010 +0200
     4.2 +++ b/java/nekurak.net-ejb/src/conf/Fotka.hbm.xml	Sun Jun 20 14:46:47 2010 +0200
     4.3 @@ -2,13 +2,13 @@
     4.4  <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     4.5  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     4.6  <hibernate-mapping>
     4.7 -    <class name="cz.frantovo.nekurak.dto.Fotka" table="fotka">
     4.8 -	<id name="id" column="id" type="integer">
     4.9 -	    <generator class="sequence">
    4.10 -		<param name="sequence">fotka_seq</param>
    4.11 -	    </generator>
    4.12 -	</id>
    4.13 -	<property name="popis" column="popis"/>
    4.14 -	<property name="poradi" column="poradi"/>
    4.15 -    </class>
    4.16 +	<class name="cz.frantovo.nekurak.dto.Fotka" table="fotka">
    4.17 +		<id name="id" column="id" type="integer">
    4.18 +			<generator class="sequence">
    4.19 +				<param name="sequence">fotka_seq</param>
    4.20 +			</generator>
    4.21 +		</id>
    4.22 +		<property name="popis" column="popis"/>
    4.23 +		<property name="poradi" column="poradi"/>
    4.24 +	</class>
    4.25  </hibernate-mapping>
    4.26 \ No newline at end of file
     5.1 --- a/java/nekurak.net-ejb/src/conf/Komentar.hbm.xml	Sat Jun 19 14:37:11 2010 +0200
     5.2 +++ b/java/nekurak.net-ejb/src/conf/Komentar.hbm.xml	Sun Jun 20 14:46:47 2010 +0200
     5.3 @@ -2,16 +2,16 @@
     5.4  <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     5.5  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     5.6  <hibernate-mapping>
     5.7 -    <class name="cz.frantovo.nekurak.dto.Komentar" table="komentar">
     5.8 -	<id name="id" column="id" type="integer">
     5.9 -	    <generator class="sequence">
    5.10 -		<param name="sequence">komentar_seq</param>
    5.11 -	    </generator>
    5.12 -	</id>
    5.13 -	<property name="podnik" column="podnik"/>
    5.14 -	<property name="uzivatel" column="uzivatel"/>
    5.15 -	<property name="datum" column="datum"/>
    5.16 -	<property name="nadpis" column="nadpis"/>
    5.17 -	<property name="komentar" column="komentar"/>
    5.18 -    </class>
    5.19 +	<class name="cz.frantovo.nekurak.dto.Komentar" table="komentar">
    5.20 +		<id name="id" column="id" type="integer">
    5.21 +			<generator class="sequence">
    5.22 +				<param name="sequence">komentar_seq</param>
    5.23 +			</generator>
    5.24 +		</id>
    5.25 +		<property name="podnik" column="podnik"/>
    5.26 +		<property name="uzivatel" column="uzivatel"/>
    5.27 +		<property name="datum" column="datum"/>
    5.28 +		<property name="nadpis" column="nadpis"/>
    5.29 +		<property name="komentar" column="komentar"/>
    5.30 +	</class>
    5.31  </hibernate-mapping>
    5.32 \ No newline at end of file
     6.1 --- a/java/nekurak.net-ejb/src/conf/Podnik.hbm.xml	Sat Jun 19 14:37:11 2010 +0200
     6.2 +++ b/java/nekurak.net-ejb/src/conf/Podnik.hbm.xml	Sun Jun 20 14:46:47 2010 +0200
     6.3 @@ -2,31 +2,31 @@
     6.4  <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     6.5  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     6.6  <hibernate-mapping>
     6.7 -    <class name="cz.frantovo.nekurak.dto.Podnik" table="podnik">
     6.8 -	<id name="id" column="id" type="integer">
     6.9 -	    <generator class="sequence">
    6.10 -		<param name="sequence">podnik_seq</param>
    6.11 -	    </generator>
    6.12 -	</id>
    6.13 -	<property name="nazev" column="nazev"/>
    6.14 -	<property name="popis" column="popis"/>
    6.15 -	<property name="url" column="url"/>
    6.16 -	<property name="datum" column="datum"/>
    6.17 -	<property name="ulice" column="ulice"/>
    6.18 -	<property name="cisloPopisne" column="cislo_popisne"/>
    6.19 -	<property name="mesto" column="mesto"/>
    6.20 -	<property name="spravce" column="spravce"/>
    6.21 -	<list name="fotky" table="fotka" lazy="false">
    6.22 -	    <key column="podnik" foreign-key="id"/>
    6.23 -	    <list-index column="poradi"/>
    6.24 -	    <one-to-many class="cz.frantovo.nekurak.dto.Fotka"/>
    6.25 -	</list>
    6.26 -	<set name="komentare" table="komentar" lazy="false">
    6.27 -	    <key column="podnik" foreign-key="id"/>
    6.28 -	    <one-to-many class="cz.frantovo.nekurak.dto.Komentar"/>
    6.29 -	</set>
    6.30 -	<property name="sirka" column="sirka"/>
    6.31 -	<property name="delka" column="delka"/>
    6.32 +	<class name="cz.frantovo.nekurak.dto.Podnik" table="podnik">
    6.33 +		<id name="id" column="id" type="integer">
    6.34 +			<generator class="sequence">
    6.35 +				<param name="sequence">podnik_seq</param>
    6.36 +			</generator>
    6.37 +		</id>
    6.38 +		<property name="nazev" column="nazev"/>
    6.39 +		<property name="popis" column="popis"/>
    6.40 +		<property name="url" column="url"/>
    6.41 +		<property name="datum" column="datum"/>
    6.42 +		<property name="ulice" column="ulice"/>
    6.43 +		<property name="cisloPopisne" column="cislo_popisne"/>
    6.44 +		<property name="mesto" column="mesto"/>
    6.45 +		<property name="spravce" column="spravce"/>
    6.46 +		<list name="fotky" table="fotka" lazy="false">
    6.47 +			<key column="podnik" foreign-key="id"/>
    6.48 +			<list-index column="poradi"/>
    6.49 +			<one-to-many class="cz.frantovo.nekurak.dto.Fotka"/>
    6.50 +		</list>
    6.51 +		<set name="komentare" table="komentar" lazy="false">
    6.52 +			<key column="podnik" foreign-key="id"/>
    6.53 +			<one-to-many class="cz.frantovo.nekurak.dto.Komentar"/>
    6.54 +		</set>
    6.55 +		<property name="sirka" column="sirka"/>
    6.56 +		<property name="delka" column="delka"/>
    6.57  
    6.58 -    </class>
    6.59 +	</class>
    6.60  </hibernate-mapping>
    6.61 \ No newline at end of file
     7.1 --- a/java/nekurak.net-ejb/src/conf/Uzivatel.hbm.xml	Sat Jun 19 14:37:11 2010 +0200
     7.2 +++ b/java/nekurak.net-ejb/src/conf/Uzivatel.hbm.xml	Sun Jun 20 14:46:47 2010 +0200
     7.3 @@ -2,17 +2,17 @@
     7.4  <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     7.5  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     7.6  <hibernate-mapping>
     7.7 -    <class name="cz.frantovo.nekurak.dto.Uzivatel" table="uzivatel">
     7.8 -	<id name="id" column="id" type="integer">
     7.9 -	    <generator class="sequence">
    7.10 -		<param name="sequence">uzivatel_seq</param>
    7.11 -	    </generator>
    7.12 -	</id>
    7.13 -	<property name="prezdivka" column="prezdivka" unique="true"/>
    7.14 -	<property name="heslo" column="heslo"/>
    7.15 -	<property name="jmeno" column="jmeno"/>
    7.16 -	<property name="prijmeni" column="prijmeni"/>
    7.17 -	<property name="email" column="email"/>
    7.18 -	<property name="datum" column="datum"/>
    7.19 -    </class>
    7.20 +	<class name="cz.frantovo.nekurak.dto.Uzivatel" table="uzivatel">
    7.21 +		<id name="id" column="id" type="integer">
    7.22 +			<generator class="sequence">
    7.23 +				<param name="sequence">uzivatel_seq</param>
    7.24 +			</generator>
    7.25 +		</id>
    7.26 +		<property name="prezdivka" column="prezdivka" unique="true"/>
    7.27 +		<property name="heslo" column="heslo"/>
    7.28 +		<property name="jmeno" column="jmeno"/>
    7.29 +		<property name="prijmeni" column="prijmeni"/>
    7.30 +		<property name="email" column="email"/>
    7.31 +		<property name="datum" column="datum"/>
    7.32 +	</class>
    7.33  </hibernate-mapping>
    7.34 \ No newline at end of file
     8.1 --- a/java/nekurak.net-ejb/src/conf/persistence.xml	Sat Jun 19 14:37:11 2010 +0200
     8.2 +++ b/java/nekurak.net-ejb/src/conf/persistence.xml	Sun Jun 20 14:46:47 2010 +0200
     8.3 @@ -1,17 +1,17 @@
     8.4  <?xml version="1.0" encoding="UTF-8"?>
     8.5  <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
     8.6 -  <persistence-unit name="nekurak.net-PU" transaction-type="JTA">
     8.7 -    <provider>org.hibernate.ejb.HibernatePersistence</provider>
     8.8 -    <jta-data-source>jdbc/nekurak</jta-data-source>
     8.9 -    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    8.10 -    <properties>
    8.11 -      <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
    8.12 -      <property name="hibernate.hbm2ddl.auto" value="validate"/>
    8.13 -      <property name="hibernate.max_fetch_depth " value="3"/>
    8.14 -      <property name="hibernate.default_batch_fetch_size" value="16"/>
    8.15 -      <property name="hibernate.order_updates" value="true"/>
    8.16 -      <property name="hibernate.order_inserts" value="true"/>
    8.17 -      <property name="hibernate.show_sql" value="false"/>
    8.18 -    </properties>
    8.19 -  </persistence-unit>
    8.20 +	<persistence-unit name="nekurak.net-PU" transaction-type="JTA">
    8.21 +		<provider>org.hibernate.ejb.HibernatePersistence</provider>
    8.22 +		<jta-data-source>jdbc/nekurak</jta-data-source>
    8.23 +		<exclude-unlisted-classes>false</exclude-unlisted-classes>
    8.24 +		<properties>
    8.25 +			<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
    8.26 +			<property name="hibernate.hbm2ddl.auto" value="validate"/>
    8.27 +			<property name="hibernate.max_fetch_depth " value="3"/>
    8.28 +			<property name="hibernate.default_batch_fetch_size" value="16"/>
    8.29 +			<property name="hibernate.order_updates" value="true"/>
    8.30 +			<property name="hibernate.order_inserts" value="true"/>
    8.31 +			<property name="hibernate.show_sql" value="false"/>
    8.32 +		</properties>
    8.33 +	</persistence-unit>
    8.34  </persistence>
     9.1 --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/ClanekDAO.java	Sat Jun 19 14:37:11 2010 +0200
     9.2 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/ClanekDAO.java	Sun Jun 20 14:46:47 2010 +0200
     9.3 @@ -16,30 +16,30 @@
     9.4  @LocalBean
     9.5  public class ClanekDAO {
     9.6  
     9.7 -    @PersistenceContext(unitName = DAO.PU)
     9.8 -    private EntityManager em;
     9.9 +	@PersistenceContext(unitName = DAO.PU)
    9.10 +	private EntityManager em;
    9.11  
    9.12 -    public Clanek getClanek(int id) {
    9.13 -	return em.find(Clanek.class, id);
    9.14 -    }
    9.15 +	public Clanek getClanek(int id) {
    9.16 +		return em.find(Clanek.class, id);
    9.17 +	}
    9.18  
    9.19 -    public Collection<Clanek> getClanky() {
    9.20 -	Query dotaz = em.createQuery("FROM " + DAO.t(Clanek.class) + " c ORDER BY id");
    9.21 -	return dotaz.getResultList();
    9.22 -    }
    9.23 +	public Collection<Clanek> getClanky() {
    9.24 +		Query dotaz = em.createQuery("FROM " + DAO.t(Clanek.class) + " c ORDER BY id");
    9.25 +		return dotaz.getResultList();
    9.26 +	}
    9.27  
    9.28 -    public int zalozClanek(Clanek clanek) {
    9.29 -	em.persist(clanek);
    9.30 -	return clanek.getId();
    9.31 -    }
    9.32 +	public int zalozClanek(Clanek clanek) {
    9.33 +		em.persist(clanek);
    9.34 +		return clanek.getId();
    9.35 +	}
    9.36  
    9.37 -    public void upravClanek(Clanek clanek) {
    9.38 -	System.out.println("XXXXXXX: upravuji článek: " + clanek.getId());
    9.39 -	em.merge(clanek);
    9.40 -    }
    9.41 +	public void upravClanek(Clanek clanek) {
    9.42 +		System.out.println("XXXXXXX: upravuji článek: " + clanek.getId());
    9.43 +		em.merge(clanek);
    9.44 +	}
    9.45  
    9.46 -    public void smazClanek(Clanek clanek) {
    9.47 -	clanek = em.merge(clanek);
    9.48 -	em.remove(clanek);
    9.49 -    }
    9.50 +	public void smazClanek(Clanek clanek) {
    9.51 +		clanek = em.merge(clanek);
    9.52 +		em.remove(clanek);
    9.53 +	}
    9.54  }
    10.1 --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/DAO.java	Sat Jun 19 14:37:11 2010 +0200
    10.2 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/DAO.java	Sun Jun 20 14:46:47 2010 +0200
    10.3 @@ -2,9 +2,9 @@
    10.4  
    10.5  public class DAO {
    10.6  
    10.7 -    public static final String PU = "nekurak.net-PU";
    10.8 +	public static final String PU = "nekurak.net-PU";
    10.9  
   10.10 -    public static String t(Class trida) {
   10.11 -	return trida.getSimpleName();
   10.12 -    }
   10.13 +	public static String t(Class trida) {
   10.14 +		return trida.getSimpleName();
   10.15 +	}
   10.16  }
    11.1 --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/PodnikDAO.java	Sat Jun 19 14:37:11 2010 +0200
    11.2 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/PodnikDAO.java	Sun Jun 20 14:46:47 2010 +0200
    11.3 @@ -21,85 +21,85 @@
    11.4  @LocalBean
    11.5  public class PodnikDAO extends SuperDAO {
    11.6  
    11.7 -    @PersistenceContext(unitName = DAO.PU)
    11.8 -    private EntityManager em;
    11.9 +	@PersistenceContext(unitName = DAO.PU)
   11.10 +	private EntityManager em;
   11.11  
   11.12 -    private enum SQL {
   11.13 +	private enum SQL {
   11.14  
   11.15 -	HLASOVANI_INSERT,
   11.16 -	HLASOVANI_SELECT
   11.17 -    }
   11.18 -
   11.19 -    public Collection<Podnik> getPodniky() {
   11.20 -	Query dotaz = em.createQuery("FROM " + DAO.t(Podnik.class) + " o ORDER BY datum DESC");
   11.21 -	return dotaz.getResultList();
   11.22 -    }
   11.23 -
   11.24 -    /**
   11.25 -     * @return podniky, které nemají souřadnice (null, null)
   11.26 -     */
   11.27 -    public Collection<Podnik> getPodnikyBezSouradnic() {
   11.28 -	Query dotaz = em.createQuery("FROM " + DAO.t(Podnik.class) + " o WHERE sirka IS NULL AND delka IS NULL");
   11.29 -	return dotaz.getResultList();
   11.30 -    }
   11.31 -
   11.32 -    public Podnik getPodnik(int id) {
   11.33 -	return em.find(Podnik.class, id);
   11.34 -    }
   11.35 -
   11.36 -    public void zaloz(Podnik p) {
   11.37 -	if (p.getDatum() == null) {
   11.38 -	    p.setDatum(new Date());
   11.39 +		HLASOVANI_INSERT,
   11.40 +		HLASOVANI_SELECT
   11.41  	}
   11.42  
   11.43 -	em.persist(p);
   11.44 -    }
   11.45 -
   11.46 -    public void uloz(Podnik p) {
   11.47 -	if (p.getDatum() == null) {
   11.48 -	    p.setDatum(new Date());
   11.49 +	public Collection<Podnik> getPodniky() {
   11.50 +		Query dotaz = em.createQuery("FROM " + DAO.t(Podnik.class) + " o ORDER BY datum DESC");
   11.51 +		return dotaz.getResultList();
   11.52  	}
   11.53  
   11.54 -	em.merge(p);
   11.55 -    }
   11.56 -
   11.57 -    public void zaloz(Komentar k) {
   11.58 -	if (k.getDatum() == null) {
   11.59 -	    k.setDatum(new Date());
   11.60 -	}
   11.61 -	
   11.62 -	em.persist(k);
   11.63 -    }
   11.64 -
   11.65 -    /**
   11.66 -     * Zaznamená hlas uživatele, zda se v podniku má nebo nemá kouřit
   11.67 -     * @param podnik podnik o kterém se hlasuje
   11.68 -     * @param hlas true = kouřit | false = nekouřit
   11.69 -     * @param ipAdresa identifikujeme pomocí ní uživatele
   11.70 -     */
   11.71 -    public void hlasuj(int podnik, boolean hlas, String ipAdresa) {
   11.72 -	Query insert = em.createNativeQuery(getSQL(SQL.HLASOVANI_INSERT));
   11.73 -	insert.setParameter("podnik", podnik);
   11.74 -	insert.setParameter("hlas", hlas);
   11.75 -	insert.setParameter("ip_adresa", ipAdresa);
   11.76 -	insert.executeUpdate();
   11.77 -    }
   11.78 -
   11.79 -    public VysledekHlasovani getVysledekHlasovani(int podnik) {
   11.80 -	VysledekHlasovani vysledek = new VysledekHlasovani();
   11.81 -	Query select = em.createNativeQuery(getSQL(SQL.HLASOVANI_SELECT));
   11.82 -	select.setParameter("podnik", podnik);
   11.83 -	List<Object[]> vysledekDotazu = select.getResultList();
   11.84 -
   11.85 -	for (Object[] radek : vysledekDotazu) {
   11.86 -	    /** Transponujeme výsledek dotazu */
   11.87 -	    if ((Boolean) radek[0]) {
   11.88 -		vysledek.setHlasuAno((Integer) radek[1]);
   11.89 -	    } else {
   11.90 -		vysledek.setHlasuNe((Integer) radek[1]);
   11.91 -	    }
   11.92 +	/**
   11.93 +	 * @return podniky, které nemají souřadnice (null, null)
   11.94 +	 */
   11.95 +	public Collection<Podnik> getPodnikyBezSouradnic() {
   11.96 +		Query dotaz = em.createQuery("FROM " + DAO.t(Podnik.class) + " o WHERE sirka IS NULL AND delka IS NULL");
   11.97 +		return dotaz.getResultList();
   11.98  	}
   11.99  
  11.100 -	return vysledek;
  11.101 -    }
  11.102 +	public Podnik getPodnik(int id) {
  11.103 +		return em.find(Podnik.class, id);
  11.104 +	}
  11.105 +
  11.106 +	public void zaloz(Podnik p) {
  11.107 +		if (p.getDatum() == null) {
  11.108 +			p.setDatum(new Date());
  11.109 +		}
  11.110 +
  11.111 +		em.persist(p);
  11.112 +	}
  11.113 +
  11.114 +	public void uloz(Podnik p) {
  11.115 +		if (p.getDatum() == null) {
  11.116 +			p.setDatum(new Date());
  11.117 +		}
  11.118 +
  11.119 +		em.merge(p);
  11.120 +	}
  11.121 +
  11.122 +	public void zaloz(Komentar k) {
  11.123 +		if (k.getDatum() == null) {
  11.124 +			k.setDatum(new Date());
  11.125 +		}
  11.126 +
  11.127 +		em.persist(k);
  11.128 +	}
  11.129 +
  11.130 +	/**
  11.131 +	 * Zaznamená hlas uživatele, zda se v podniku má nebo nemá kouřit
  11.132 +	 * @param podnik podnik o kterém se hlasuje
  11.133 +	 * @param hlas true = kouřit | false = nekouřit
  11.134 +	 * @param ipAdresa identifikujeme pomocí ní uživatele
  11.135 +	 */
  11.136 +	public void hlasuj(int podnik, boolean hlas, String ipAdresa) {
  11.137 +		Query insert = em.createNativeQuery(getSQL(SQL.HLASOVANI_INSERT));
  11.138 +		insert.setParameter("podnik", podnik);
  11.139 +		insert.setParameter("hlas", hlas);
  11.140 +		insert.setParameter("ip_adresa", ipAdresa);
  11.141 +		insert.executeUpdate();
  11.142 +	}
  11.143 +
  11.144 +	public VysledekHlasovani getVysledekHlasovani(int podnik) {
  11.145 +		VysledekHlasovani vysledek = new VysledekHlasovani();
  11.146 +		Query select = em.createNativeQuery(getSQL(SQL.HLASOVANI_SELECT));
  11.147 +		select.setParameter("podnik", podnik);
  11.148 +		List<Object[]> vysledekDotazu = select.getResultList();
  11.149 +
  11.150 +		for (Object[] radek : vysledekDotazu) {
  11.151 +			/** Transponujeme výsledek dotazu */
  11.152 +			if ((Boolean) radek[0]) {
  11.153 +				vysledek.setHlasuAno((Integer) radek[1]);
  11.154 +			} else {
  11.155 +				vysledek.setHlasuNe((Integer) radek[1]);
  11.156 +			}
  11.157 +		}
  11.158 +
  11.159 +		return vysledek;
  11.160 +	}
  11.161  }
    12.1 --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/PodnikDAO.sql.xml	Sat Jun 19 14:37:11 2010 +0200
    12.2 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/PodnikDAO.sql.xml	Sun Jun 20 14:46:47 2010 +0200
    12.3 @@ -1,31 +1,31 @@
    12.4  <?xml version="1.0" encoding="UTF-8"?>
    12.5  <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    12.6  <properties>
    12.7 -    <entry key="HLASOVANI_INSERT">
    12.8 +	<entry key="HLASOVANI_INSERT">
    12.9  	INSERT INTO hlasovani
   12.10  	(podnik, hlas, ip_adresa)
   12.11  	VALUES (:podnik, :hlas, :ip_adresa);
   12.12 -    </entry>
   12.13 -    <entry key="HLASOVANI_SELECT">
   12.14 +	</entry>
   12.15 +	<entry key="HLASOVANI_SELECT">
   12.16  	<!--
   12.17 -	    Osoby identifikujeme na základě IP adres.
   12.18 -	    Každá osoba může hlasovat kolikrát chce (všechny její hlasy zaznamenáme).
   12.19 -	    Ale do výsledků se počítá vždy jen její poslední hlas v daném dni
   12.20 -	    (může efektivně hlasovat každý den jednou).
   12.21 +		Osoby identifikujeme na základě IP adres.
   12.22 +		Každá osoba může hlasovat kolikrát chce (všechny její hlasy zaznamenáme).
   12.23 +		Ale do výsledků se počítá vždy jen její poslední hlas v daném dni
   12.24 +		(může efektivně hlasovat každý den jednou).
   12.25  	-->
   12.26  	SELECT	hlas,
   12.27 -	    int4(count(*))
   12.28 +		int4(count(*))
   12.29  	FROM (
   12.30 -	    SELECT DISTINCT ON (ip_adresa, date(datum))
   12.31 +		SELECT DISTINCT ON (ip_adresa, date(datum))
   12.32  		hlas
   12.33 -	    FROM hlasovani
   12.34 -	    WHERE podnik = :podnik
   12.35 -	    ORDER BY ip_adresa, date(datum), id DESC
   12.36 +		FROM hlasovani
   12.37 +		WHERE podnik = :podnik
   12.38 +		ORDER BY ip_adresa, date(datum), id DESC
   12.39  	) AS hlasy
   12.40  	GROUP BY hlas;
   12.41  	<!--
   12.42 -	    Poznámka k přetypování int4(count(*)):
   12.43 -	    maximum je: 2 147 483 647 (tolik hlasů v součtu snad mít nikdy nebudeme :-)
   12.44 +		Poznámka k přetypování int4(count(*)):
   12.45 +		maximum je: 2 147 483 647 (tolik hlasů v součtu snad mít nikdy nebudeme :-)
   12.46  	-->
   12.47 -    </entry>
   12.48 +	</entry>
   12.49  </properties>
   12.50 \ No newline at end of file
    13.1 --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/UzivatelDAO.java	Sat Jun 19 14:37:11 2010 +0200
    13.2 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/UzivatelDAO.java	Sun Jun 20 14:46:47 2010 +0200
    13.3 @@ -15,22 +15,22 @@
    13.4  @LocalBean
    13.5  public class UzivatelDAO {
    13.6  
    13.7 -    @PersistenceContext(unitName = DAO.PU)
    13.8 -    private EntityManager em;
    13.9 +	@PersistenceContext(unitName = DAO.PU)
   13.10 +	private EntityManager em;
   13.11  
   13.12 -    public void zaloz(Uzivatel u) {
   13.13 -	if (u.getDatum() == null) {
   13.14 -	    u.setDatum(new Date());
   13.15 +	public void zaloz(Uzivatel u) {
   13.16 +		if (u.getDatum() == null) {
   13.17 +			u.setDatum(new Date());
   13.18 +		}
   13.19 +
   13.20 +		em.persist(u);
   13.21  	}
   13.22  
   13.23 -	em.persist(u);
   13.24 -    }
   13.25 +	public void uloz(Uzivatel u) {
   13.26 +		if (u.getDatum() == null) {
   13.27 +			u.setDatum(new Date());
   13.28 +		}
   13.29  
   13.30 -    public void uloz(Uzivatel u) {
   13.31 -	if (u.getDatum() == null) {
   13.32 -	    u.setDatum(new Date());
   13.33 +		em.merge(u);
   13.34  	}
   13.35 -
   13.36 -	em.merge(u);
   13.37 -    }
   13.38  }
    14.1 --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/ClanekEJB.java	Sat Jun 19 14:37:11 2010 +0200
    14.2 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/ClanekEJB.java	Sun Jun 20 14:46:47 2010 +0200
    14.3 @@ -14,29 +14,29 @@
    14.4  @Stateless
    14.5  public class ClanekEJB implements ClanekRemote {
    14.6  
    14.7 -    @EJB
    14.8 -    private ClanekDAO clanekDAO;
    14.9 +	@EJB
   14.10 +	private ClanekDAO clanekDAO;
   14.11  
   14.12 -    public Clanek getClanek(int id) {
   14.13 -	return clanekDAO.getClanek(id);
   14.14 -    }
   14.15 +	public Clanek getClanek(int id) {
   14.16 +		return clanekDAO.getClanek(id);
   14.17 +	}
   14.18  
   14.19 -    public Collection<Clanek> getClanky() {
   14.20 -	return clanekDAO.getClanky();
   14.21 -    }
   14.22 +	public Collection<Clanek> getClanky() {
   14.23 +		return clanekDAO.getClanky();
   14.24 +	}
   14.25  
   14.26 -    @RolesAllowed("redaktor")
   14.27 -    public int zalozClanek(Clanek clanek) {
   14.28 -	return clanekDAO.zalozClanek(clanek);
   14.29 -    }
   14.30 +	@RolesAllowed("redaktor")
   14.31 +	public int zalozClanek(Clanek clanek) {
   14.32 +		return clanekDAO.zalozClanek(clanek);
   14.33 +	}
   14.34  
   14.35 -    @RolesAllowed("redaktor")
   14.36 -    public void upravClanek(Clanek clanek) {
   14.37 -	clanekDAO.upravClanek(clanek);
   14.38 -    }
   14.39 +	@RolesAllowed("redaktor")
   14.40 +	public void upravClanek(Clanek clanek) {
   14.41 +		clanekDAO.upravClanek(clanek);
   14.42 +	}
   14.43  
   14.44 -    @RolesAllowed("redaktor")
   14.45 -    public void smazClanek(Clanek clanek) {
   14.46 -	clanekDAO.smazClanek(clanek);
   14.47 -    }
   14.48 +	@RolesAllowed("redaktor")
   14.49 +	public void smazClanek(Clanek clanek) {
   14.50 +		clanekDAO.smazClanek(clanek);
   14.51 +	}
   14.52  }
    15.1 --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/PodnikEJB.java	Sat Jun 19 14:37:11 2010 +0200
    15.2 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/PodnikEJB.java	Sun Jun 20 14:46:47 2010 +0200
    15.3 @@ -25,96 +25,95 @@
    15.4  @Stateless
    15.5  public class PodnikEJB implements PodnikRemote {
    15.6  
    15.7 -    private static final Logger log = Logger.getLogger(PodnikEJB.class.getSimpleName());
    15.8 -    @EJB
    15.9 -    private PodnikDAO podnikDAO;
   15.10 -    @Resource
   15.11 -    private SessionContext ctx;
   15.12 -    private Komentare komentare = new Komentare();
   15.13 +	private static final Logger log = Logger.getLogger(PodnikEJB.class.getSimpleName());
   15.14 +	@EJB
   15.15 +	private PodnikDAO podnikDAO;
   15.16 +	@Resource
   15.17 +	private SessionContext ctx;
   15.18  
   15.19 -    public Collection<Podnik> getPodniky() {
   15.20 -	Collection<Podnik> vysledek = podnikDAO.getPodniky();
   15.21 -	return vysledek;
   15.22 -    }
   15.23 -
   15.24 -    public Podnik getPodnik(int id) {
   15.25 -	return podnikDAO.getPodnik(id);
   15.26 -    }
   15.27 -
   15.28 -    @RolesAllowed("opravneny")
   15.29 -    public void zalozPodnik(Podnik p) {
   15.30 -	p.setSpravce(ctx.getCallerPrincipal().getName());
   15.31 -	podnikDAO.zaloz(p);
   15.32 -    }
   15.33 -
   15.34 -    @RolesAllowed("opravneny")
   15.35 -    public void upravPodnik(Podnik p) {
   15.36 -	podnikDAO.uloz(p);
   15.37 -    }
   15.38 -
   15.39 -    public int dopocitejSouradnice() {
   15.40 -	/**
   15.41 -	 * TODO: refaktorovat, změnit datové typy, souřadnice…
   15.42 -	 */
   15.43 -	Geo g = new Geo();
   15.44 -	int pocetAktualizovanych = 0;
   15.45 -
   15.46 -	for (Podnik p : podnikDAO.getPodnikyBezSouradnic()) {
   15.47 -	    Souradnice s = g.getSouradnice(p.getUlice() + " " + p.getCisloPopisne() + ", " + p.getMesto());
   15.48 -	    if (s != null) {
   15.49 -		pocetAktualizovanych++;
   15.50 -		p.setSirka(s.getSirka());
   15.51 -		p.setDelka(s.getDelka());
   15.52 -		podnikDAO.uloz(p);
   15.53 -	    }
   15.54 +	public Collection<Podnik> getPodniky() {
   15.55 +		Collection<Podnik> vysledek = podnikDAO.getPodniky();
   15.56 +		return vysledek;
   15.57  	}
   15.58  
   15.59 -	return pocetAktualizovanych;
   15.60 -    }
   15.61 -
   15.62 -    public void hlasuj(int podnik, boolean hlas, String ipAdresa) {
   15.63 -
   15.64 -	podnikDAO.hlasuj(podnik, hlas, ipAdresa);
   15.65 -    }
   15.66 -
   15.67 -    public VysledekHlasovani getVysledekHlasovani(int podnik) {
   15.68 -	return podnikDAO.getVysledekHlasovani(podnik);
   15.69 -    }
   15.70 -
   15.71 -    private void kontrolaKomentare(Komentar k) throws TexyVyjimka, KomentarovaVyjimka {
   15.72 -	k.setUzivatel(ctx.getCallerPrincipal().getName());
   15.73 -	k.setDatum(null);
   15.74 -
   15.75 -	if (k.getKomentar() == null || k.getKomentar().length() < 1) {
   15.76 -	    throw new KomentarovaVyjimka("Nechceme prázdné komentáře.", null);
   15.77 +	public Podnik getPodnik(int id) {
   15.78 +		return podnikDAO.getPodnik(id);
   15.79  	}
   15.80  
   15.81 -	/** Převedeme na XML */
   15.82 -	switch (k.getTyp()) {
   15.83 -	    case PROSTY_TEXT:
   15.84 -		k.setKomentar(Komentare.upravProstyText(k.getKomentar()));
   15.85 -		break;
   15.86 -	    case TEXY:
   15.87 -		Texy t = new Texy();
   15.88 -		k.setKomentar(t.preved(k.getKomentar()));
   15.89 -		break;
   15.90 -	    case XHTML:
   15.91 -		k.setKomentar(Komentare.upravXHTML(k.getKomentar()));
   15.92 -		break;
   15.93 +	@RolesAllowed("opravneny")
   15.94 +	public void zalozPodnik(Podnik p) {
   15.95 +		p.setSpravce(ctx.getCallerPrincipal().getName());
   15.96 +		podnikDAO.zaloz(p);
   15.97  	}
   15.98 -	/** Přidáme kořenový element */
   15.99 -	k.setKomentar(Komentare.obal(k.getKomentar()));
  15.100  
  15.101 -	/** Zkontrolujeme XML */
  15.102 -	Komentare.zkontroluj(k.getKomentar());
  15.103 -    }
  15.104 +	@RolesAllowed("opravneny")
  15.105 +	public void upravPodnik(Podnik p) {
  15.106 +		podnikDAO.uloz(p);
  15.107 +	}
  15.108  
  15.109 -    @RolesAllowed("opravneny")
  15.110 -    public Komentar komentuj(Komentar k, boolean uloz) throws KomentarovaVyjimka, TexyVyjimka {
  15.111 -	kontrolaKomentare(k);
  15.112 -	if (uloz) {
  15.113 -	    podnikDAO.zaloz(k);
  15.114 +	public int dopocitejSouradnice() {
  15.115 +		/**
  15.116 +		 * TODO: refaktorovat, změnit datové typy, souřadnice…
  15.117 +		 */
  15.118 +		Geo g = new Geo();
  15.119 +		int pocetAktualizovanych = 0;
  15.120 +
  15.121 +		for (Podnik p : podnikDAO.getPodnikyBezSouradnic()) {
  15.122 +			Souradnice s = g.getSouradnice(p.getUlice() + " " + p.getCisloPopisne() + ", " + p.getMesto());
  15.123 +			if (s != null) {
  15.124 +				pocetAktualizovanych++;
  15.125 +				p.setSirka(s.getSirka());
  15.126 +				p.setDelka(s.getDelka());
  15.127 +				podnikDAO.uloz(p);
  15.128 +			}
  15.129 +		}
  15.130 +
  15.131 +		return pocetAktualizovanych;
  15.132  	}
  15.133 -	return k;
  15.134 -    }
  15.135 +
  15.136 +	public void hlasuj(int podnik, boolean hlas, String ipAdresa) {
  15.137 +
  15.138 +		podnikDAO.hlasuj(podnik, hlas, ipAdresa);
  15.139 +	}
  15.140 +
  15.141 +	public VysledekHlasovani getVysledekHlasovani(int podnik) {
  15.142 +		return podnikDAO.getVysledekHlasovani(podnik);
  15.143 +	}
  15.144 +
  15.145 +	private void kontrolaKomentare(Komentar k) throws TexyVyjimka, KomentarovaVyjimka {
  15.146 +		k.setUzivatel(ctx.getCallerPrincipal().getName());
  15.147 +		k.setDatum(null);
  15.148 +
  15.149 +		if (k.getKomentar() == null || k.getKomentar().length() < 1) {
  15.150 +			throw new KomentarovaVyjimka("Nechceme prázdné komentáře.", null);
  15.151 +		}
  15.152 +
  15.153 +		/** Převedeme na XML */
  15.154 +		switch (k.getTyp()) {
  15.155 +			case PROSTY_TEXT:
  15.156 +				k.setKomentar(Komentare.upravProstyText(k.getKomentar()));
  15.157 +				break;
  15.158 +			case TEXY:
  15.159 +				Texy t = new Texy();
  15.160 +				k.setKomentar(t.preved(k.getKomentar()));
  15.161 +				break;
  15.162 +			case XHTML:
  15.163 +				k.setKomentar(Komentare.upravXHTML(k.getKomentar()));
  15.164 +				break;
  15.165 +		}
  15.166 +		/** Přidáme kořenový element */
  15.167 +		k.setKomentar(Komentare.obal(k.getKomentar()));
  15.168 +
  15.169 +		/** Zkontrolujeme XML */
  15.170 +		Komentare.zkontroluj(k.getKomentar());
  15.171 +	}
  15.172 +
  15.173 +	@RolesAllowed("opravneny")
  15.174 +	public Komentar komentuj(Komentar k, boolean uloz) throws KomentarovaVyjimka, TexyVyjimka {
  15.175 +		kontrolaKomentare(k);
  15.176 +		if (uloz) {
  15.177 +			podnikDAO.zaloz(k);
  15.178 +		}
  15.179 +		return k;
  15.180 +	}
  15.181  }
    16.1 --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/UzivatelEJB.java	Sat Jun 19 14:37:11 2010 +0200
    16.2 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/UzivatelEJB.java	Sun Jun 20 14:46:47 2010 +0200
    16.3 @@ -27,58 +27,58 @@
    16.4  @Stateless
    16.5  public class UzivatelEJB implements UzivatelRemote {
    16.6  
    16.7 -    @EJB
    16.8 -    private UzivatelDAO uzivatelDao;
    16.9 -    @EJB
   16.10 -    private Postak postak;
   16.11 -    private static final Logger log = Logger.getLogger(UzivatelEJB.class.getSimpleName());
   16.12 -    private Map<Locale, ResourceBundle> lokalizace = new HashMap<Locale, ResourceBundle>();
   16.13 +	@EJB
   16.14 +	private UzivatelDAO uzivatelDao;
   16.15 +	@EJB
   16.16 +	private Postak postak;
   16.17 +	private static final Logger log = Logger.getLogger(UzivatelEJB.class.getSimpleName());
   16.18 +	private Map<Locale, ResourceBundle> lokalizace = new HashMap<Locale, ResourceBundle>();
   16.19  
   16.20 -    /** Uživatele může zakládat kdokoli – uživatel se registruje sám. */
   16.21 -    public void registrujUzivatele(PozadavekNaRegistraciUzivatele p) throws NekurakVyjimka {
   16.22 -	try {
   16.23 -	    Uzivatel u = p.getUzivatel();
   16.24 -	    /** Heslo musíme před uložení zahashovat, aby se uživatel mohl přihlásit. */
   16.25 -	    u.setHeslo(Hash.hashuj(u.getHeslo()));
   16.26 -	    uzivatelDao.zaloz(u);
   16.27 -	    posliRegistracniEmail(p);
   16.28 -	} catch (NoSuchAlgorithmException e) {
   16.29 -	    /** Nemělo by nastat */
   16.30 -	    throw new NecekanaVyjimka("Neexistující hashovací algoritmus.", e);
   16.31 -	} catch (UnsupportedEncodingException e) {
   16.32 -	    /** Nemělo by nastat */
   16.33 -	    throw new NecekanaVyjimka("Nepodporované kódování znaků.", e);
   16.34 -	}
   16.35 -    }
   16.36 -
   16.37 -    private ResourceBundle getLokalizace(Locale jazyk) {
   16.38 -	if (jazyk == null) {
   16.39 -	    jazyk = Locale.getDefault();
   16.40 +	/** Uživatele může zakládat kdokoli – uživatel se registruje sám. */
   16.41 +	public void registrujUzivatele(PozadavekNaRegistraciUzivatele p) throws NekurakVyjimka {
   16.42 +		try {
   16.43 +			Uzivatel u = p.getUzivatel();
   16.44 +			/** Heslo musíme před uložení zahashovat, aby se uživatel mohl přihlásit. */
   16.45 +			u.setHeslo(Hash.hashuj(u.getHeslo()));
   16.46 +			uzivatelDao.zaloz(u);
   16.47 +			posliRegistracniEmail(p);
   16.48 +		} catch (NoSuchAlgorithmException e) {
   16.49 +			/** Nemělo by nastat */
   16.50 +			throw new NecekanaVyjimka("Neexistující hashovací algoritmus.", e);
   16.51 +		} catch (UnsupportedEncodingException e) {
   16.52 +			/** Nemělo by nastat */
   16.53 +			throw new NecekanaVyjimka("Nepodporované kódování znaků.", e);
   16.54 +		}
   16.55  	}
   16.56  
   16.57 -	if (lokalizace.get(jazyk) == null) {
   16.58 -	    lokalizace.put(jazyk, ResourceBundle.getBundle("cz.frantovo.nekurak.preklady", jazyk));
   16.59 +	private ResourceBundle getLokalizace(Locale jazyk) {
   16.60 +		if (jazyk == null) {
   16.61 +			jazyk = Locale.getDefault();
   16.62 +		}
   16.63 +
   16.64 +		if (lokalizace.get(jazyk) == null) {
   16.65 +			lokalizace.put(jazyk, ResourceBundle.getBundle("cz.frantovo.nekurak.preklady", jazyk));
   16.66 +		}
   16.67 +
   16.68 +		return lokalizace.get(jazyk);
   16.69  	}
   16.70  
   16.71 -	return lokalizace.get(jazyk);
   16.72 -    }
   16.73 -
   16.74 -    private void posliRegistracniEmail(PozadavekNaRegistraciUzivatele p) {
   16.75 -	try {
   16.76 -	    String email = p.getEmail();
   16.77 -	    if (Postak.isAdresaOk(email)) {
   16.78 -		ResourceBundle rb = getLokalizace(p.getJazyk());
   16.79 -		String jmeno = p.getJmeno() + " " + p.getPrijmeni();
   16.80 -		String predmet = rb.getString("registrace.email.predmet");
   16.81 -		Object[] hodnotyTextu = {jmeno, p.getPrezdivka()};
   16.82 -		String text = new MessageFormat(rb.getString("registrace.email.text"), p.getJazyk()).format(hodnotyTextu);
   16.83 -		postak.odesliZpravu(new Adresa(email, jmeno), null, predmet, text);
   16.84 -	    } else {
   16.85 -		log.log(Level.WARNING, "E-mailová adresa buď chybí nebo je chybná → neodesíláme registrační e-mail. Uživatel: " + p.getPrezdivka());
   16.86 -	    }
   16.87 -	} catch (NekurakVyjimka e) {
   16.88 -	    /** e-mail je jen informační → pokud se ho nepodaří odeslat, nemusíme stornovat registraci. */
   16.89 -	    log.log(Level.WARNING, "Chyba při posílání registračního e-mailu. Uživatel: " + p.getPrezdivka(), e);
   16.90 +	private void posliRegistracniEmail(PozadavekNaRegistraciUzivatele p) {
   16.91 +		try {
   16.92 +			String email = p.getEmail();
   16.93 +			if (Postak.isAdresaOk(email)) {
   16.94 +				ResourceBundle rb = getLokalizace(p.getJazyk());
   16.95 +				String jmeno = p.getJmeno() + " " + p.getPrijmeni();
   16.96 +				String predmet = rb.getString("registrace.email.predmet");
   16.97 +				Object[] hodnotyTextu = {jmeno, p.getPrezdivka()};
   16.98 +				String text = new MessageFormat(rb.getString("registrace.email.text"), p.getJazyk()).format(hodnotyTextu);
   16.99 +				postak.odesliZpravu(new Adresa(email, jmeno), null, predmet, text);
  16.100 +			} else {
  16.101 +				log.log(Level.WARNING, "E-mailová adresa buď chybí nebo je chybná → neodesíláme registrační e-mail. Uživatel: {0}", p.getPrezdivka());
  16.102 +			}
  16.103 +		} catch (NekurakVyjimka e) {
  16.104 +			/** e-mail je jen informační → pokud se ho nepodaří odeslat, nemusíme stornovat registraci. */
  16.105 +			log.log(Level.WARNING, "Chyba při posílání registračního e-mailu. Uživatel: " + p.getPrezdivka(), e);
  16.106 +		}
  16.107  	}
  16.108 -    }
  16.109  }
    17.1 --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/email/Adresa.java	Sat Jun 19 14:37:11 2010 +0200
    17.2 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/email/Adresa.java	Sun Jun 20 14:46:47 2010 +0200
    17.3 @@ -11,19 +11,19 @@
    17.4   */
    17.5  public class Adresa {
    17.6  
    17.7 -    private String jmeno;
    17.8 -    private String email;
    17.9 +	private String jmeno;
   17.10 +	private String email;
   17.11  
   17.12 -    public Adresa(String email, String jmeno) {
   17.13 -	this.email = email;
   17.14 -	this.jmeno = jmeno;
   17.15 -    }
   17.16 +	public Adresa(String email, String jmeno) {
   17.17 +		this.email = email;
   17.18 +		this.jmeno = jmeno;
   17.19 +	}
   17.20  
   17.21 -    public InternetAddress getInternetAddress() throws NekurakVyjimka {
   17.22 -	try {
   17.23 -	    return new InternetAddress(email, jmeno);
   17.24 -	} catch (UnsupportedEncodingException e) {
   17.25 -	    throw new NekurakVyjimka("Chyba při převodu na InternetAddress", e);
   17.26 +	public InternetAddress getInternetAddress() throws NekurakVyjimka {
   17.27 +		try {
   17.28 +			return new InternetAddress(email, jmeno);
   17.29 +		} catch (UnsupportedEncodingException e) {
   17.30 +			throw new NekurakVyjimka("Chyba při převodu na InternetAddress", e);
   17.31 +		}
   17.32  	}
   17.33 -    }
   17.34  }
    18.1 --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/email/Postak.java	Sat Jun 19 14:37:11 2010 +0200
    18.2 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/email/Postak.java	Sun Jun 20 14:46:47 2010 +0200
    18.3 @@ -1,6 +1,7 @@
    18.4  package cz.frantovo.nekurak.email;
    18.5  
    18.6  import cz.frantovo.nekurak.vyjimky.NekurakVyjimka;
    18.7 +import java.util.logging.Level;
    18.8  import java.util.logging.Logger;
    18.9  import java.util.regex.Pattern;
   18.10  import javax.annotation.Resource;
   18.11 @@ -19,36 +20,36 @@
   18.12  @LocalBean
   18.13  public class Postak {
   18.14  
   18.15 -    @Resource(lookup = "mail/nekurak.net")
   18.16 -    Session smtpRelace;
   18.17 -    private static final Logger log = Logger.getLogger(Postak.class.getSimpleName());
   18.18 -    private static String REGULARNI_EMAIL = "^[_a-zA-Z0-9\\.\\-]+@[_a-zA-Z0-9\\.\\-]+\\.[a-zA-Z]{2,4}$";
   18.19 +	@Resource(lookup = "mail/nekurak.net")
   18.20 +	Session smtpRelace;
   18.21 +	private static final Logger log = Logger.getLogger(Postak.class.getSimpleName());
   18.22 +	private static String REGULARNI_EMAIL = "^[_a-zA-Z0-9\\.\\-]+@[_a-zA-Z0-9\\.\\-]+\\.[a-zA-Z]{2,4}$";
   18.23  
   18.24 -    public void odesliZpravu(Adresa komu, Adresa od, String predmet, String text) throws NekurakVyjimka {
   18.25 +	public void odesliZpravu(Adresa komu, Adresa od, String predmet, String text) throws NekurakVyjimka {
   18.26  
   18.27 -	try {
   18.28 -	    MimeMessage mimeZprava = new MimeMessage(smtpRelace);
   18.29 +		try {
   18.30 +			MimeMessage mimeZprava = new MimeMessage(smtpRelace);
   18.31  
   18.32 -	    mimeZprava.addRecipient(RecipientType.TO, komu.getInternetAddress());
   18.33 -	    if (od != null) {
   18.34 -		mimeZprava.setFrom(od.getInternetAddress());
   18.35 -	    }
   18.36 -	    mimeZprava.setSubject(predmet);
   18.37 -	    mimeZprava.setText(text, "UTF-8");
   18.38 +			mimeZprava.addRecipient(RecipientType.TO, komu.getInternetAddress());
   18.39 +			if (od != null) {
   18.40 +				mimeZprava.setFrom(od.getInternetAddress());
   18.41 +			}
   18.42 +			mimeZprava.setSubject(predmet);
   18.43 +			mimeZprava.setText(text, "UTF-8");
   18.44  
   18.45 -	    Transport.send(mimeZprava);
   18.46 -	    log.info("Zpráva pro " + komu + " byla odeslána.");
   18.47 -	} catch (Exception e) {
   18.48 -	    throw new NekurakVyjimka("Selhalo odesílání e-mailu pro: " + komu.getInternetAddress(), e);
   18.49 +			Transport.send(mimeZprava);
   18.50 +			log.log(Level.INFO, "Zpráva pro {0} byla odeslána.", komu);
   18.51 +		} catch (Exception e) {
   18.52 +			throw new NekurakVyjimka("Selhalo odesílání e-mailu pro: " + komu.getInternetAddress(), e);
   18.53 +		}
   18.54  	}
   18.55 -    }
   18.56  
   18.57 -    /**
   18.58 -     * Zkontroluje e-mailovou adresu
   18.59 -     * @param email adresa typu abcd@example.com
   18.60 -     * @return true, pokud e-mail vyhovuje regulárnímu výrazu pro e-maily
   18.61 -     */
   18.62 -    public static boolean isAdresaOk(String email) {
   18.63 -	return email != null && Pattern.matches(REGULARNI_EMAIL, email);
   18.64 -    }
   18.65 +	/**
   18.66 +	 * Zkontroluje e-mailovou adresu
   18.67 +	 * @param email adresa typu abcd@example.com
   18.68 +	 * @return true, pokud e-mail vyhovuje regulárnímu výrazu pro e-maily
   18.69 +	 */
   18.70 +	public static boolean isAdresaOk(String email) {
   18.71 +		return email != null && Pattern.matches(REGULARNI_EMAIL, email);
   18.72 +	}
   18.73  }
    19.1 --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ext/Geo.java	Sat Jun 19 14:37:11 2010 +0200
    19.2 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ext/Geo.java	Sun Jun 20 14:46:47 2010 +0200
    19.3 @@ -16,104 +16,104 @@
    19.4   */
    19.5  public class Geo {
    19.6  
    19.7 -    private static final Logger log = Logger.getLogger(Geo.class.getSimpleName());
    19.8 +	private static final Logger log = Logger.getLogger(Geo.class.getSimpleName());
    19.9  
   19.10 -    /**
   19.11 -     * Převede poštovní adresu na zeměpisné souřadnice.
   19.12 -     * @param adresa
   19.13 -     * @return souřadnice k dané adrese nebo null, v případě chyby.
   19.14 -     */
   19.15 -    public Souradnice getSouradnice(String adresa) {
   19.16 -	try {
   19.17 +	/**
   19.18 +	 * Převede poštovní adresu na zeměpisné souřadnice.
   19.19 +	 * @param adresa
   19.20 +	 * @return souřadnice k dané adrese nebo null, v případě chyby.
   19.21 +	 */
   19.22 +	public Souradnice getSouradnice(String adresa) {
   19.23 +		try {
   19.24  
   19.25 -	    /**
   19.26 -	     * TODO: naprosto zprasené → předělat →
   19.27 -	     * http://code.google.com/intl/cs/apis/maps/documentation/geocoding/#XMLParsing
   19.28 -	     */
   19.29 -	    DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
   19.30 -	    Document d = db.parse(sestavURL(adresa));
   19.31 -	    NodeList mista = d.getElementsByTagName("location");
   19.32 -	    Node misto = mista.item(0);
   19.33 -	    NodeList potomci = misto.getChildNodes();
   19.34 -	    String delka = null;
   19.35 -	    String sirka = null;
   19.36 -	    for (int i = 0; i < potomci.getLength(); i++) {
   19.37 -		Node p = potomci.item(i);
   19.38 -		if ("lat".equals(p.getNodeName())) {
   19.39 -		    sirka = p.getTextContent();
   19.40 +			/**
   19.41 +			 * TODO: naprosto zprasené → předělat →
   19.42 +			 * http://code.google.com/intl/cs/apis/maps/documentation/geocoding/#XMLParsing
   19.43 +			 */
   19.44 +			DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
   19.45 +			Document d = db.parse(sestavURL(adresa));
   19.46 +			NodeList mista = d.getElementsByTagName("location");
   19.47 +			Node misto = mista.item(0);
   19.48 +			NodeList potomci = misto.getChildNodes();
   19.49 +			String delka = null;
   19.50 +			String sirka = null;
   19.51 +			for (int i = 0; i < potomci.getLength(); i++) {
   19.52 +				Node p = potomci.item(i);
   19.53 +				if ("lat".equals(p.getNodeName())) {
   19.54 +					sirka = p.getTextContent();
   19.55 +				}
   19.56 +				if ("lng".equals(p.getNodeName())) {
   19.57 +					delka = p.getTextContent();
   19.58 +				}
   19.59 +			}
   19.60 +
   19.61 +			if (sirka == null || delka == null) {
   19.62 +				log.log(Level.WARNING, "Selhalo zjišťování souřadnic – šířka nebo délka jsou null – pro adresu: " + adresa);
   19.63 +				return null;
   19.64 +			} else {
   19.65 +				return new Souradnice(Double.parseDouble(sirka), Double.parseDouble(delka));
   19.66 +			}
   19.67 +		} catch (Exception e) {
   19.68 +			log.log(Level.WARNING, "Selhalo zjišťování souřadnic pro adresu: " + adresa, e);
   19.69 +			return null;
   19.70  		}
   19.71 -		if ("lng".equals(p.getNodeName())) {
   19.72 -		    delka = p.getTextContent();
   19.73 -		}
   19.74 -	    }
   19.75 -
   19.76 -	    if (sirka == null || delka == null) {
   19.77 -		log.log(Level.WARNING, "Selhalo zjišťování souřadnic – šířka nebo délka jsou null – pro adresu: " + adresa);
   19.78 -		return null;
   19.79 -	    } else {
   19.80 -		return new Souradnice(Double.parseDouble(sirka), Double.parseDouble(delka));
   19.81 -	    }
   19.82 -	} catch (Exception e) {
   19.83 -	    log.log(Level.WARNING, "Selhalo zjišťování souřadnic pro adresu: " + adresa, e);
   19.84 -	    return null;
   19.85 -	}
   19.86 -    }
   19.87 -
   19.88 -    private static String sestavURL(String adresa) throws UnsupportedEncodingException {
   19.89 -	return "http://maps.google.com/maps/api/geocode/xml?sensor=false&address=" + URLEncoder.encode(adresa, "UTF-8");
   19.90 -    }
   19.91 -
   19.92 -    public class Souradnice {
   19.93 -
   19.94 -	private double sirka;
   19.95 -	private double delka;
   19.96 -
   19.97 -	@Override
   19.98 -	public String toString() {
   19.99 -	    return "šířka = " + sirka + "; délka = " + delka + ";";
  19.100  	}
  19.101  
  19.102 -	@Override
  19.103 -	public boolean equals(Object o) {
  19.104 -	    if (o instanceof Souradnice) {
  19.105 -		Souradnice s = (Souradnice)o;
  19.106 -		return s.sirka == sirka && s.delka == delka;
  19.107 -	    } else {
  19.108 -		return false;
  19.109 -	    }
  19.110 +	private static String sestavURL(String adresa) throws UnsupportedEncodingException {
  19.111 +		return "http://maps.google.com/maps/api/geocode/xml?sensor=false&address=" + URLEncoder.encode(adresa, "UTF-8");
  19.112  	}
  19.113  
  19.114 -	@Override
  19.115 -	public int hashCode() {
  19.116 -	    int hash = 5;
  19.117 -	    hash = 79 * hash + (int) (Double.doubleToLongBits(this.sirka) ^ (Double.doubleToLongBits(this.sirka) >>> 32));
  19.118 -	    hash = 79 * hash + (int) (Double.doubleToLongBits(this.delka) ^ (Double.doubleToLongBits(this.delka) >>> 32));
  19.119 -	    return hash;
  19.120 +	public class Souradnice {
  19.121 +
  19.122 +		private double sirka;
  19.123 +		private double delka;
  19.124 +
  19.125 +		@Override
  19.126 +		public String toString() {
  19.127 +			return "šířka = " + sirka + "; délka = " + delka + ";";
  19.128 +		}
  19.129 +
  19.130 +		@Override
  19.131 +		public boolean equals(Object o) {
  19.132 +			if (o instanceof Souradnice) {
  19.133 +				Souradnice s = (Souradnice) o;
  19.134 +				return s.sirka == sirka && s.delka == delka;
  19.135 +			} else {
  19.136 +				return false;
  19.137 +			}
  19.138 +		}
  19.139 +
  19.140 +		@Override
  19.141 +		public int hashCode() {
  19.142 +			int hash = 5;
  19.143 +			hash = 79 * hash + (int) (Double.doubleToLongBits(this.sirka) ^ (Double.doubleToLongBits(this.sirka) >>> 32));
  19.144 +			hash = 79 * hash + (int) (Double.doubleToLongBits(this.delka) ^ (Double.doubleToLongBits(this.delka) >>> 32));
  19.145 +			return hash;
  19.146 +		}
  19.147 +
  19.148 +		public Souradnice(double sirka, double delka) {
  19.149 +			this.sirka = sirka;
  19.150 +			this.delka = delka;
  19.151 +		}
  19.152 +
  19.153 +		public String getLoc() {
  19.154 +			return "Loc: " + sirka + ", " + delka;
  19.155 +		}
  19.156 +
  19.157 +		public double getDelka() {
  19.158 +			return delka;
  19.159 +		}
  19.160 +
  19.161 +		public double getSirka() {
  19.162 +			return sirka;
  19.163 +		}
  19.164 +
  19.165 +		public void setDelka(double delka) {
  19.166 +			this.delka = delka;
  19.167 +		}
  19.168 +
  19.169 +		public void setSirka(double sirka) {
  19.170 +			this.sirka = sirka;
  19.171 +		}
  19.172  	}
  19.173 -
  19.174 -	public Souradnice(double sirka, double delka) {
  19.175 -	    this.sirka = sirka;
  19.176 -	    this.delka = delka;
  19.177 -	}
  19.178 -
  19.179 -	public String getLoc() {
  19.180 -	    return "Loc: " + sirka + ", " + delka;
  19.181 -	}
  19.182 -
  19.183 -	public double getDelka() {
  19.184 -	    return delka;
  19.185 -	}
  19.186 -
  19.187 -	public double getSirka() {
  19.188 -	    return sirka;
  19.189 -	}
  19.190 -
  19.191 -	public void setDelka(double delka) {
  19.192 -	    this.delka = delka;
  19.193 -	}
  19.194 -
  19.195 -	public void setSirka(double sirka) {
  19.196 -	    this.sirka = sirka;
  19.197 -	}
  19.198 -    }
  19.199  }
    20.1 --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ext/Texy.java	Sat Jun 19 14:37:11 2010 +0200
    20.2 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ext/Texy.java	Sun Jun 20 14:46:47 2010 +0200
    20.3 @@ -18,46 +18,46 @@
    20.4   */
    20.5  public class Texy {
    20.6  
    20.7 -    /** TODO: parametrizovatelnost */
    20.8 -    private static final String URL_SLUZBY = "http://nekurak.net/texy/http/";
    20.9 -    private static final String KODOVANI = "UTF-8";
   20.10 -    private static final Logger log = Logger.getLogger(Texy.class.getSimpleName());
   20.11 +	/** TODO: parametrizovatelnost */
   20.12 +	private static final String URL_SLUZBY = "http://nekurak.net/texy/http/";
   20.13 +	private static final String KODOVANI = "UTF-8";
   20.14 +	private static final Logger log = Logger.getLogger(Texy.class.getSimpleName());
   20.15  
   20.16 -    public String preved(String text) throws TexyVyjimka {
   20.17 -	OutputStreamWriter wr = null;
   20.18 -	BufferedReader rd = null;
   20.19 -	try {
   20.20 -	    URL url = new URL(URL_SLUZBY);
   20.21 -	    URLConnection spojeni = url.openConnection();
   20.22 -	    spojeni.setDoOutput(true);
   20.23 +	public String preved(String text) throws TexyVyjimka {
   20.24 +		OutputStreamWriter wr = null;
   20.25 +		BufferedReader rd = null;
   20.26 +		try {
   20.27 +			URL url = new URL(URL_SLUZBY);
   20.28 +			URLConnection spojeni = url.openConnection();
   20.29 +			spojeni.setDoOutput(true);
   20.30  
   20.31 -	    /** Odešleme data */
   20.32 -	    wr = new OutputStreamWriter(spojeni.getOutputStream());
   20.33 -	    wr.write(URLEncoder.encode(text, KODOVANI));
   20.34 -	    wr.flush();
   20.35 +			/** Odešleme data */
   20.36 +			wr = new OutputStreamWriter(spojeni.getOutputStream());
   20.37 +			wr.write(URLEncoder.encode(text, KODOVANI));
   20.38 +			wr.flush();
   20.39  
   20.40 -	    /** Přijmeme odpověď */
   20.41 -	    rd = new BufferedReader(new InputStreamReader(spojeni.getInputStream(), KODOVANI));
   20.42 -	    StringBuffer vysledek = new StringBuffer();
   20.43 -	    String radka;
   20.44 -	    while ((radka = rd.readLine()) != null) {
   20.45 -		vysledek.append(radka);
   20.46 -	    }
   20.47 +			/** Přijmeme odpověď */
   20.48 +			rd = new BufferedReader(new InputStreamReader(spojeni.getInputStream(), KODOVANI));
   20.49 +			StringBuilder vysledek = new StringBuilder();
   20.50 +			String radka;
   20.51 +			while ((radka = rd.readLine()) != null) {
   20.52 +				vysledek.append(radka);
   20.53 +			}
   20.54  
   20.55 -	    return vysledek.toString();
   20.56 -	} catch (Exception e) {
   20.57 -	    throw new TexyVyjimka("Chyba při zpracovávání textu: " + text, e);
   20.58 -	} finally {
   20.59 -	    try {
   20.60 -		wr.close();
   20.61 -	    } catch (IOException e) {
   20.62 -		log.log(Level.WARNING, "Selhalo zavírání OutputStreamWriteru", e);
   20.63 -	    }
   20.64 -	    try {
   20.65 -		rd.close();
   20.66 -	    } catch (IOException e) {
   20.67 -		log.log(Level.WARNING, "Selhalo zavírání BufferedReaderu", e);
   20.68 -	    }
   20.69 +			return vysledek.toString();
   20.70 +		} catch (Exception e) {
   20.71 +			throw new TexyVyjimka("Chyba při zpracovávání textu: " + text, e);
   20.72 +		} finally {
   20.73 +			try {
   20.74 +				wr.close();
   20.75 +			} catch (IOException e) {
   20.76 +				log.log(Level.WARNING, "Selhalo zavírání OutputStreamWriteru", e);
   20.77 +			}
   20.78 +			try {
   20.79 +				rd.close();
   20.80 +			} catch (IOException e) {
   20.81 +				log.log(Level.WARNING, "Selhalo zavírání BufferedReaderu", e);
   20.82 +			}
   20.83 +		}
   20.84  	}
   20.85 -    }
   20.86  }
    21.1 --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ext/package-info.java	Sat Jun 19 14:37:11 2010 +0200
    21.2 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ext/package-info.java	Sun Jun 20 14:46:47 2010 +0200
    21.3 @@ -2,4 +2,3 @@
    21.4   * Napojení na externí služby.
    21.5   */
    21.6  package cz.frantovo.nekurak.ext;
    21.7 -
    22.1 --- a/java/nekurak.net-ejb/test/cz/frantovo/nekurak/ext/GeoTest.java	Sat Jun 19 14:37:11 2010 +0200
    22.2 +++ b/java/nekurak.net-ejb/test/cz/frantovo/nekurak/ext/GeoTest.java	Sun Jun 20 14:46:47 2010 +0200
    22.3 @@ -10,38 +10,38 @@
    22.4   */
    22.5  public class GeoTest {
    22.6  
    22.7 -    private Geo geo = new Geo();
    22.8 -    private static final int CASOVY_LIMIT = 1000;
    22.9 +	private Geo geo = new Geo();
   22.10 +	private static final int CASOVY_LIMIT = 1000;
   22.11  
   22.12 -    @Test(timeout = CASOVY_LIMIT)
   22.13 -    public void praha() {
   22.14 -	testuj("Praha, Czech Republic", 50.0878114, 14.4204598);
   22.15 -    }
   22.16 +	@Test(timeout = CASOVY_LIMIT)
   22.17 +	public void praha() {
   22.18 +		testuj("Praha, Czech Republic", 50.0878114, 14.4204598);
   22.19 +	}
   22.20  
   22.21 -    @Test(timeout = CASOVY_LIMIT)
   22.22 -    public void sanghaj() {
   22.23 -	// https://frantovo.cz/blog/?q=cina-sanghaj-mesto-lide :-)
   22.24 -	testuj("Shanghai, China", 31.230708, 121.472916);
   22.25 -    }
   22.26 +	@Test(timeout = CASOVY_LIMIT)
   22.27 +	public void sanghaj() {
   22.28 +		// https://frantovo.cz/blog/?q=cina-sanghaj-mesto-lide :-)
   22.29 +		testuj("Shanghai, China", 31.230708, 121.472916);
   22.30 +	}
   22.31  
   22.32 -    @Test(timeout = CASOVY_LIMIT)
   22.33 -    public void dallas() {
   22.34 -	testuj("Dallas, TX", 32.802955, -96.769923);
   22.35 -    }
   22.36 +	@Test(timeout = CASOVY_LIMIT)
   22.37 +	public void dallas() {
   22.38 +		testuj("Dallas, TX", 32.802955, -96.769923);
   22.39 +	}
   22.40  
   22.41 -    @Test(timeout = CASOVY_LIMIT)
   22.42 -    public void moskva() {
   22.43 -	testuj("Moscow, Russia", 55.755786, 37.617633);
   22.44 -    }
   22.45 +	@Test(timeout = CASOVY_LIMIT)
   22.46 +	public void moskva() {
   22.47 +		testuj("Moscow, Russia", 55.755786, 37.617633);
   22.48 +	}
   22.49  
   22.50 -    @Test
   22.51 -    public void loc() {
   22.52 -	Souradnice s = geo.new Souradnice(55.755786, 37.617633);
   22.53 -	assertEquals("Loc: 55.755786, 37.617633", s.getLoc());
   22.54 -    }
   22.55 +	@Test
   22.56 +	public void loc() {
   22.57 +		Souradnice s = geo.new Souradnice(55.755786, 37.617633);
   22.58 +		assertEquals("Loc: 55.755786, 37.617633", s.getLoc());
   22.59 +	}
   22.60  
   22.61 -    private void testuj(String vstup, double pozadovanaSirka, double pozadovanaDelka) {
   22.62 -	Souradnice vystup = geo.getSouradnice(vstup);
   22.63 -	assertEquals(geo.new Souradnice(pozadovanaSirka, pozadovanaDelka), vystup);
   22.64 -    }
   22.65 +	private void testuj(String vstup, double pozadovanaSirka, double pozadovanaDelka) {
   22.66 +		Souradnice vystup = geo.getSouradnice(vstup);
   22.67 +		assertEquals(geo.new Souradnice(pozadovanaSirka, pozadovanaDelka), vystup);
   22.68 +	}
   22.69  }
    23.1 --- a/java/nekurak.net-ejb/test/cz/frantovo/nekurak/ext/TexyTest.java	Sat Jun 19 14:37:11 2010 +0200
    23.2 +++ b/java/nekurak.net-ejb/test/cz/frantovo/nekurak/ext/TexyTest.java	Sun Jun 20 14:46:47 2010 +0200
    23.3 @@ -12,22 +12,22 @@
    23.4   */
    23.5  public class TexyTest {
    23.6  
    23.7 -    private Texy texy = new Texy();
    23.8 -    private static final int CASOVY_LIMIT = 1000;
    23.9 +	private Texy texy = new Texy();
   23.10 +	private static final int CASOVY_LIMIT = 1000;
   23.11  
   23.12 -    @Test(timeout = CASOVY_LIMIT)
   23.13 -    public void prostyText() throws TexyVyjimka {
   23.14 -	testuj("", "");
   23.15 -	testuj("ahoj", "<p>ahoj</p>");
   23.16 -    }
   23.17 +	@Test(timeout = CASOVY_LIMIT)
   23.18 +	public void prostyText() throws TexyVyjimka {
   23.19 +		testuj("", "");
   23.20 +		testuj("ahoj", "<p>ahoj</p>");
   23.21 +	}
   23.22  
   23.23 -    @Test(timeout = CASOVY_LIMIT)
   23.24 -    public void nadpisy() throws TexyVyjimka {
   23.25 -	testuj("===Nadpis===", "<h1>Nadpis</h1>");
   23.26 -    }
   23.27 +	@Test(timeout = CASOVY_LIMIT)
   23.28 +	public void nadpisy() throws TexyVyjimka {
   23.29 +		testuj("===Nadpis===", "<h1>Nadpis</h1>");
   23.30 +	}
   23.31  
   23.32 -    private void testuj(String vstup, String pozadovanyVystup) throws TexyVyjimka {
   23.33 -	String vystup = texy.preved(vstup);
   23.34 -	assertEquals(pozadovanyVystup, vystup);
   23.35 -    }
   23.36 +	private void testuj(String vstup, String pozadovanyVystup) throws TexyVyjimka {
   23.37 +		String vystup = texy.preved(vstup);
   23.38 +		assertEquals(pozadovanyVystup, vystup);
   23.39 +	}
   23.40  }
    24.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Clanek.java	Sat Jun 19 14:37:11 2010 +0200
    24.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Clanek.java	Sun Jun 20 14:46:47 2010 +0200
    24.3 @@ -2,31 +2,31 @@
    24.4  
    24.5  public class Clanek {
    24.6  
    24.7 -    private int id;
    24.8 -    private String nadpis;
    24.9 -    private String text;
   24.10 +	private int id;
   24.11 +	private String nadpis;
   24.12 +	private String text;
   24.13  
   24.14 -    public int getId() {
   24.15 -	return id;
   24.16 -    }
   24.17 +	public int getId() {
   24.18 +		return id;
   24.19 +	}
   24.20  
   24.21 -    public void setId(int id) {
   24.22 -	this.id = id;
   24.23 -    }
   24.24 +	public void setId(int id) {
   24.25 +		this.id = id;
   24.26 +	}
   24.27  
   24.28 -    public String getNadpis() {
   24.29 -	return nadpis;
   24.30 -    }
   24.31 +	public String getNadpis() {
   24.32 +		return nadpis;
   24.33 +	}
   24.34  
   24.35 -    public void setNadpis(String nadpis) {
   24.36 -	this.nadpis = nadpis;
   24.37 -    }
   24.38 +	public void setNadpis(String nadpis) {
   24.39 +		this.nadpis = nadpis;
   24.40 +	}
   24.41  
   24.42 -    public String getText() {
   24.43 -	return text;
   24.44 -    }
   24.45 +	public String getText() {
   24.46 +		return text;
   24.47 +	}
   24.48  
   24.49 -    public void setText(String text) {
   24.50 -	this.text = text;
   24.51 -    }
   24.52 +	public void setText(String text) {
   24.53 +		this.text = text;
   24.54 +	}
   24.55  }
    25.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Fotka.java	Sat Jun 19 14:37:11 2010 +0200
    25.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Fotka.java	Sun Jun 20 14:46:47 2010 +0200
    25.3 @@ -2,32 +2,32 @@
    25.4  
    25.5  public class Fotka {
    25.6  
    25.7 -    /** číslo odpovídá názvu souboru na disku (+přípona) */
    25.8 -    private int id;
    25.9 -    private String popis;
   25.10 -    private int poradi;
   25.11 +	/** číslo odpovídá názvu souboru na disku (+přípona) */
   25.12 +	private int id;
   25.13 +	private String popis;
   25.14 +	private int poradi;
   25.15  
   25.16 -    public int getId() {
   25.17 -	return id;
   25.18 -    }
   25.19 +	public int getId() {
   25.20 +		return id;
   25.21 +	}
   25.22  
   25.23 -    public void setId(int id) {
   25.24 -	this.id = id;
   25.25 -    }
   25.26 +	public void setId(int id) {
   25.27 +		this.id = id;
   25.28 +	}
   25.29  
   25.30 -    public String getPopis() {
   25.31 -	return popis;
   25.32 -    }
   25.33 +	public String getPopis() {
   25.34 +		return popis;
   25.35 +	}
   25.36  
   25.37 -    public void setPopis(String popis) {
   25.38 -	this.popis = popis;
   25.39 -    }
   25.40 +	public void setPopis(String popis) {
   25.41 +		this.popis = popis;
   25.42 +	}
   25.43  
   25.44 -    public int getPoradi() {
   25.45 -	return poradi;
   25.46 -    }
   25.47 +	public int getPoradi() {
   25.48 +		return poradi;
   25.49 +	}
   25.50  
   25.51 -    public void setPoradi(int poradi) {
   25.52 -	this.poradi = poradi;
   25.53 -    }
   25.54 +	public void setPoradi(int poradi) {
   25.55 +		this.poradi = poradi;
   25.56 +	}
   25.57  }
    26.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Komentar.java	Sat Jun 19 14:37:11 2010 +0200
    26.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Komentar.java	Sun Jun 20 14:46:47 2010 +0200
    26.3 @@ -8,73 +8,74 @@
    26.4   */
    26.5  public class Komentar {
    26.6  
    26.7 -    private int id;
    26.8 -    private int podnik;
    26.9 -    private String uzivatel;
   26.10 -    private Date datum;
   26.11 -    private String nadpis;
   26.12 -    private String komentar;
   26.13 -    private TYP typ;
   26.14 +	private int id;
   26.15 +	private int podnik;
   26.16 +	private String uzivatel;
   26.17 +	private Date datum;
   26.18 +	private String nadpis;
   26.19 +	private String komentar;
   26.20 +	private TYP typ;
   26.21  
   26.22 -    public TYP getTyp() {
   26.23 -	return typ;
   26.24 -    }
   26.25 +	public TYP getTyp() {
   26.26 +		return typ;
   26.27 +	}
   26.28  
   26.29 -    public void setTyp(TYP typ) {
   26.30 -	this.typ = typ;
   26.31 -    }
   26.32 +	public void setTyp(TYP typ) {
   26.33 +		this.typ = typ;
   26.34 +	}
   26.35  
   26.36 -    public enum TYP {
   26.37 -	PROSTY_TEXT,
   26.38 -	XHTML,
   26.39 -	TEXY
   26.40 -    }
   26.41 +	public enum TYP {
   26.42  
   26.43 -    public int getId() {
   26.44 -	return id;
   26.45 -    }
   26.46 +		PROSTY_TEXT,
   26.47 +		XHTML,
   26.48 +		TEXY
   26.49 +	}
   26.50  
   26.51 -    public void setId(int id) {
   26.52 -	this.id = id;
   26.53 -    }
   26.54 +	public int getId() {
   26.55 +		return id;
   26.56 +	}
   26.57  
   26.58 -    public int getPodnik() {
   26.59 -	return podnik;
   26.60 -    }
   26.61 +	public void setId(int id) {
   26.62 +		this.id = id;
   26.63 +	}
   26.64  
   26.65 -    public void setPodnik(int podnik) {
   26.66 -	this.podnik = podnik;
   26.67 -    }
   26.68 +	public int getPodnik() {
   26.69 +		return podnik;
   26.70 +	}
   26.71  
   26.72 -    public String getUzivatel() {
   26.73 -	return uzivatel;
   26.74 -    }
   26.75 +	public void setPodnik(int podnik) {
   26.76 +		this.podnik = podnik;
   26.77 +	}
   26.78  
   26.79 -    public void setUzivatel(String uzivatel) {
   26.80 -	this.uzivatel = uzivatel;
   26.81 -    }
   26.82 +	public String getUzivatel() {
   26.83 +		return uzivatel;
   26.84 +	}
   26.85  
   26.86 -    public Date getDatum() {
   26.87 -	return datum;
   26.88 -    }
   26.89 +	public void setUzivatel(String uzivatel) {
   26.90 +		this.uzivatel = uzivatel;
   26.91 +	}
   26.92  
   26.93 -    public void setDatum(Date datum) {
   26.94 -	this.datum = datum;
   26.95 -    }
   26.96 +	public Date getDatum() {
   26.97 +		return datum;
   26.98 +	}
   26.99  
  26.100 -    public String getNadpis() {
  26.101 -	return nadpis;
  26.102 -    }
  26.103 +	public void setDatum(Date datum) {
  26.104 +		this.datum = datum;
  26.105 +	}
  26.106  
  26.107 -    public void setNadpis(String nadpis) {
  26.108 -	this.nadpis = nadpis;
  26.109 -    }
  26.110 +	public String getNadpis() {
  26.111 +		return nadpis;
  26.112 +	}
  26.113  
  26.114 -    public String getKomentar() {
  26.115 -	return komentar;
  26.116 -    }
  26.117 +	public void setNadpis(String nadpis) {
  26.118 +		this.nadpis = nadpis;
  26.119 +	}
  26.120  
  26.121 -    public void setKomentar(String komentar) {
  26.122 -	this.komentar = komentar;
  26.123 -    }
  26.124 +	public String getKomentar() {
  26.125 +		return komentar;
  26.126 +	}
  26.127 +
  26.128 +	public void setKomentar(String komentar) {
  26.129 +		this.komentar = komentar;
  26.130 +	}
  26.131  }
    27.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Podnik.java	Sat Jun 19 14:37:11 2010 +0200
    27.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Podnik.java	Sun Jun 20 14:46:47 2010 +0200
    27.3 @@ -13,129 +13,129 @@
    27.4   */
    27.5  public class Podnik implements Serializable {
    27.6  
    27.7 -    private int id;
    27.8 -    private String nazev;
    27.9 -    private String popis;
   27.10 -    private String url;
   27.11 -    private String ulice;
   27.12 -    private Date datum;
   27.13 -    private Integer cisloPopisne;
   27.14 -    private String mesto;
   27.15 -    private String spravce;
   27.16 -    private List<Fotka> fotky = new ArrayList<Fotka>();
   27.17 -    private Set<Komentar> komentare = new HashSet<Komentar>();
   27.18 -    private Double sirka;
   27.19 -    private Double delka;
   27.20 +	private int id;
   27.21 +	private String nazev;
   27.22 +	private String popis;
   27.23 +	private String url;
   27.24 +	private String ulice;
   27.25 +	private Date datum;
   27.26 +	private Integer cisloPopisne;
   27.27 +	private String mesto;
   27.28 +	private String spravce;
   27.29 +	private List<Fotka> fotky = new ArrayList<Fotka>();
   27.30 +	private Set<Komentar> komentare = new HashSet<Komentar>();
   27.31 +	private Double sirka;
   27.32 +	private Double delka;
   27.33  
   27.34 -    public Podnik() {
   27.35 -    }
   27.36 +	public Podnik() {
   27.37 +	}
   27.38  
   27.39 -    public Podnik(int id, String nazev) {
   27.40 -	this.id = id;
   27.41 -	this.nazev = nazev;
   27.42 -    }
   27.43 +	public Podnik(int id, String nazev) {
   27.44 +		this.id = id;
   27.45 +		this.nazev = nazev;
   27.46 +	}
   27.47  
   27.48 -    public int getId() {
   27.49 -	return id;
   27.50 -    }
   27.51 +	public int getId() {
   27.52 +		return id;
   27.53 +	}
   27.54  
   27.55 -    public void setId(int id) {
   27.56 -	this.id = id;
   27.57 -    }
   27.58 +	public void setId(int id) {
   27.59 +		this.id = id;
   27.60 +	}
   27.61  
   27.62 -    public String getNazev() {
   27.63 -	return nazev;
   27.64 -    }
   27.65 +	public String getNazev() {
   27.66 +		return nazev;
   27.67 +	}
   27.68  
   27.69 -    public void setNazev(String nazev) {
   27.70 -	this.nazev = nazev;
   27.71 -    }
   27.72 +	public void setNazev(String nazev) {
   27.73 +		this.nazev = nazev;
   27.74 +	}
   27.75  
   27.76 -    public String getPopis() {
   27.77 -	return popis;
   27.78 -    }
   27.79 +	public String getPopis() {
   27.80 +		return popis;
   27.81 +	}
   27.82  
   27.83 -    public void setPopis(String popis) {
   27.84 -	this.popis = popis;
   27.85 -    }
   27.86 +	public void setPopis(String popis) {
   27.87 +		this.popis = popis;
   27.88 +	}
   27.89  
   27.90 -    public String getUrl() {
   27.91 -	return url;
   27.92 -    }
   27.93 +	public String getUrl() {
   27.94 +		return url;
   27.95 +	}
   27.96  
   27.97 -    public void setUrl(String url) {
   27.98 -	this.url = url;
   27.99 -    }
  27.100 +	public void setUrl(String url) {
  27.101 +		this.url = url;
  27.102 +	}
  27.103  
  27.104 -    public String getUlice() {
  27.105 -	return ulice;
  27.106 -    }
  27.107 +	public String getUlice() {
  27.108 +		return ulice;
  27.109 +	}
  27.110  
  27.111 -    public void setUlice(String ulice) {
  27.112 -	this.ulice = ulice;
  27.113 -    }
  27.114 +	public void setUlice(String ulice) {
  27.115 +		this.ulice = ulice;
  27.116 +	}
  27.117  
  27.118 -    public Date getDatum() {
  27.119 -	return datum;
  27.120 -    }
  27.121 +	public Date getDatum() {
  27.122 +		return datum;
  27.123 +	}
  27.124  
  27.125 -    public void setDatum(Date datum) {
  27.126 -	this.datum = datum;
  27.127 -    }
  27.128 +	public void setDatum(Date datum) {
  27.129 +		this.datum = datum;
  27.130 +	}
  27.131  
  27.132 -    public int getCisloPopisne() {
  27.133 -	return cisloPopisne;
  27.134 -    }
  27.135 +	public int getCisloPopisne() {
  27.136 +		return cisloPopisne;
  27.137 +	}
  27.138  
  27.139 -    public void setCisloPopisne(int cisloPopisne) {
  27.140 -	this.cisloPopisne = cisloPopisne;
  27.141 -    }
  27.142 +	public void setCisloPopisne(int cisloPopisne) {
  27.143 +		this.cisloPopisne = cisloPopisne;
  27.144 +	}
  27.145  
  27.146 -    public String getMesto() {
  27.147 -	return mesto;
  27.148 -    }
  27.149 +	public String getMesto() {
  27.150 +		return mesto;
  27.151 +	}
  27.152  
  27.153 -    public void setMesto(String mesto) {
  27.154 -	this.mesto = mesto;
  27.155 -    }
  27.156 +	public void setMesto(String mesto) {
  27.157 +		this.mesto = mesto;
  27.158 +	}
  27.159  
  27.160 -    public String getSpravce() {
  27.161 -	return spravce;
  27.162 -    }
  27.163 +	public String getSpravce() {
  27.164 +		return spravce;
  27.165 +	}
  27.166  
  27.167 -    public void setSpravce(String spravce) {
  27.168 -	this.spravce = spravce;
  27.169 -    }
  27.170 +	public void setSpravce(String spravce) {
  27.171 +		this.spravce = spravce;
  27.172 +	}
  27.173  
  27.174 -    public List<Fotka> getFotky() {
  27.175 -	return fotky;
  27.176 -    }
  27.177 +	public List<Fotka> getFotky() {
  27.178 +		return fotky;
  27.179 +	}
  27.180  
  27.181 -    public void setFotky(List<Fotka> fotky) {
  27.182 -	this.fotky = fotky;
  27.183 -    }
  27.184 +	public void setFotky(List<Fotka> fotky) {
  27.185 +		this.fotky = fotky;
  27.186 +	}
  27.187  
  27.188 -    public Double getSirka() {
  27.189 -	return sirka;
  27.190 -    }
  27.191 +	public Double getSirka() {
  27.192 +		return sirka;
  27.193 +	}
  27.194  
  27.195 -    public void setSirka(Double sirka) {
  27.196 -	this.sirka = sirka;
  27.197 -    }
  27.198 +	public void setSirka(Double sirka) {
  27.199 +		this.sirka = sirka;
  27.200 +	}
  27.201  
  27.202 -    public Double getDelka() {
  27.203 -	return delka;
  27.204 -    }
  27.205 +	public Double getDelka() {
  27.206 +		return delka;
  27.207 +	}
  27.208  
  27.209 -    public void setDelka(Double delka) {
  27.210 -	this.delka = delka;
  27.211 -    }
  27.212 +	public void setDelka(Double delka) {
  27.213 +		this.delka = delka;
  27.214 +	}
  27.215  
  27.216 -    public Set<Komentar> getKomentare() {
  27.217 -	return komentare;
  27.218 -    }
  27.219 +	public Set<Komentar> getKomentare() {
  27.220 +		return komentare;
  27.221 +	}
  27.222  
  27.223 -    public void setKomentare(Set<Komentar> komentare) {
  27.224 -	this.komentare = komentare;
  27.225 -    }
  27.226 +	public void setKomentare(Set<Komentar> komentare) {
  27.227 +		this.komentare = komentare;
  27.228 +	}
  27.229  }
    28.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/PozadavekNaRegistraciUzivatele.java	Sat Jun 19 14:37:11 2010 +0200
    28.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/PozadavekNaRegistraciUzivatele.java	Sun Jun 20 14:46:47 2010 +0200
    28.3 @@ -11,74 +11,74 @@
    28.4   */
    28.5  public class PozadavekNaRegistraciUzivatele implements Serializable {
    28.6  
    28.7 -    /** Uživatelské jméno */
    28.8 -    private String prezdivka;
    28.9 -    /** Heslo ve tvaru, v jakém má být uloženo do databáze */
   28.10 -    private String heslo;
   28.11 -    /** Křestní jméno */
   28.12 -    private String jmeno;
   28.13 -    private String prijmeni;
   28.14 -    private String email;
   28.15 -    private Locale jazyk;
   28.16 +	/** Uživatelské jméno */
   28.17 +	private String prezdivka;
   28.18 +	/** Heslo ve tvaru, v jakém má být uloženo do databáze */
   28.19 +	private String heslo;
   28.20 +	/** Křestní jméno */
   28.21 +	private String jmeno;
   28.22 +	private String prijmeni;
   28.23 +	private String email;
   28.24 +	private Locale jazyk;
   28.25  
   28.26 -    public String getPrezdivka() {
   28.27 -	return prezdivka;
   28.28 -    }
   28.29 +	public String getPrezdivka() {
   28.30 +		return prezdivka;
   28.31 +	}
   28.32  
   28.33 -    public void setPrezdivka(String prezdivka) {
   28.34 -	this.prezdivka = prezdivka;
   28.35 -    }
   28.36 +	public void setPrezdivka(String prezdivka) {
   28.37 +		this.prezdivka = prezdivka;
   28.38 +	}
   28.39  
   28.40 -    public String getHeslo() {
   28.41 -	return heslo;
   28.42 -    }
   28.43 +	public String getHeslo() {
   28.44 +		return heslo;
   28.45 +	}
   28.46  
   28.47 -    public void setHeslo(String heslo) {
   28.48 -	this.heslo = heslo;
   28.49 -    }
   28.50 +	public void setHeslo(String heslo) {
   28.51 +		this.heslo = heslo;
   28.52 +	}
   28.53  
   28.54 -    public String getJmeno() {
   28.55 -	return jmeno;
   28.56 -    }
   28.57 +	public String getJmeno() {
   28.58 +		return jmeno;
   28.59 +	}
   28.60  
   28.61 -    public void setJmeno(String jmeno) {
   28.62 -	this.jmeno = jmeno;
   28.63 -    }
   28.64 +	public void setJmeno(String jmeno) {
   28.65 +		this.jmeno = jmeno;
   28.66 +	}
   28.67  
   28.68 -    public String getPrijmeni() {
   28.69 -	return prijmeni;
   28.70 -    }
   28.71 +	public String getPrijmeni() {
   28.72 +		return prijmeni;
   28.73 +	}
   28.74  
   28.75 -    public void setPrijmeni(String prijmeni) {
   28.76 -	this.prijmeni = prijmeni;
   28.77 -    }
   28.78 +	public void setPrijmeni(String prijmeni) {
   28.79 +		this.prijmeni = prijmeni;
   28.80 +	}
   28.81  
   28.82 -    public String getEmail() {
   28.83 -	return email;
   28.84 -    }
   28.85 +	public String getEmail() {
   28.86 +		return email;
   28.87 +	}
   28.88  
   28.89 -    public void setEmail(String email) {
   28.90 -	this.email = email;
   28.91 -    }
   28.92 +	public void setEmail(String email) {
   28.93 +		this.email = email;
   28.94 +	}
   28.95  
   28.96 -    public Locale getJazyk() {
   28.97 -	return jazyk;
   28.98 -    }
   28.99 +	public Locale getJazyk() {
  28.100 +		return jazyk;
  28.101 +	}
  28.102  
  28.103 -    public void setJazyk(Locale jazyk) {
  28.104 -	this.jazyk = jazyk;
  28.105 -    }
  28.106 +	public void setJazyk(Locale jazyk) {
  28.107 +		this.jazyk = jazyk;
  28.108 +	}
  28.109  
  28.110 -    /** Převede údaje z registrace do instance třídy Uzivatel */
  28.111 -    public Uzivatel getUzivatel() {
  28.112 -	Uzivatel u = new Uzivatel();
  28.113 +	/** Převede údaje z registrace do instance třídy Uzivatel */
  28.114 +	public Uzivatel getUzivatel() {
  28.115 +		Uzivatel u = new Uzivatel();
  28.116  
  28.117 -	u.setPrezdivka(prezdivka);
  28.118 -	u.setHeslo(heslo);
  28.119 -	u.setJmeno(jmeno);
  28.120 -	u.setPrijmeni(prijmeni);
  28.121 -	u.setEmail(email);
  28.122 +		u.setPrezdivka(prezdivka);
  28.123 +		u.setHeslo(heslo);
  28.124 +		u.setJmeno(jmeno);
  28.125 +		u.setPrijmeni(prijmeni);
  28.126 +		u.setEmail(email);
  28.127  
  28.128 -	return u;
  28.129 -    }
  28.130 +		return u;
  28.131 +	}
  28.132  }
    29.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Uzivatel.java	Sat Jun 19 14:37:11 2010 +0200
    29.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Uzivatel.java	Sun Jun 20 14:46:47 2010 +0200
    29.3 @@ -9,70 +9,70 @@
    29.4   */
    29.5  public class Uzivatel implements Serializable {
    29.6  
    29.7 -    private int id;
    29.8 -    /** Uživatelské jméno */
    29.9 -    private String prezdivka;
   29.10 -    /** Heslo ve tvaru, v jakém má být uloženo do databáze */
   29.11 -    private String heslo;
   29.12 -    /** Křestní jméno */
   29.13 -    private String jmeno;
   29.14 -    private String prijmeni;
   29.15 -    private String email;
   29.16 -    private Date datum;
   29.17 +	private int id;
   29.18 +	/** Uživatelské jméno */
   29.19 +	private String prezdivka;
   29.20 +	/** Heslo ve tvaru, v jakém má být uloženo do databáze */
   29.21 +	private String heslo;
   29.22 +	/** Křestní jméno */
   29.23 +	private String jmeno;
   29.24 +	private String prijmeni;
   29.25 +	private String email;
   29.26 +	private Date datum;
   29.27  
   29.28 -    public int getId() {
   29.29 -	return id;
   29.30 -    }
   29.31 +	public int getId() {
   29.32 +		return id;
   29.33 +	}
   29.34  
   29.35 -    public void setId(int id) {
   29.36 -	this.id = id;
   29.37 -    }
   29.38 +	public void setId(int id) {
   29.39 +		this.id = id;
   29.40 +	}
   29.41  
   29.42 -    public String getPrezdivka() {
   29.43 -	return prezdivka;
   29.44 -    }
   29.45 +	public String getPrezdivka() {
   29.46 +		return prezdivka;
   29.47 +	}
   29.48  
   29.49 -    public void setPrezdivka(String prezdivka) {
   29.50 -	this.prezdivka = prezdivka;
   29.51 -    }
   29.52 +	public void setPrezdivka(String prezdivka) {
   29.53 +		this.prezdivka = prezdivka;
   29.54 +	}
   29.55  
   29.56 -    public String getHeslo() {
   29.57 -	return heslo;
   29.58 -    }
   29.59 +	public String getHeslo() {
   29.60 +		return heslo;
   29.61 +	}
   29.62  
   29.63 -    public void setHeslo(String heslo) {
   29.64 -	this.heslo = heslo;
   29.65 -    }
   29.66 +	public void setHeslo(String heslo) {
   29.67 +		this.heslo = heslo;
   29.68 +	}
   29.69  
   29.70 -    public String getJmeno() {
   29.71 -	return jmeno;
   29.72 -    }
   29.73 +	public String getJmeno() {
   29.74 +		return jmeno;
   29.75 +	}
   29.76  
   29.77 -    public void setJmeno(String jmeno) {
   29.78 -	this.jmeno = jmeno;
   29.79 -    }
   29.80 +	public void setJmeno(String jmeno) {
   29.81 +		this.jmeno = jmeno;
   29.82 +	}
   29.83  
   29.84 -    public String getPrijmeni() {
   29.85 -	return prijmeni;
   29.86 -    }
   29.87 +	public String getPrijmeni() {
   29.88 +		return prijmeni;
   29.89 +	}
   29.90  
   29.91 -    public void setPrijmeni(String prijmeni) {
   29.92 -	this.prijmeni = prijmeni;
   29.93 -    }
   29.94 +	public void setPrijmeni(String prijmeni) {
   29.95 +		this.prijmeni = prijmeni;
   29.96 +	}
   29.97  
   29.98 -    public String getEmail() {
   29.99 -	return email;
  29.100 -    }
  29.101 +	public String getEmail() {
  29.102 +		return email;
  29.103 +	}
  29.104  
  29.105 -    public void setEmail(String email) {
  29.106 -	this.email = email;
  29.107 -    }
  29.108 +	public void setEmail(String email) {
  29.109 +		this.email = email;
  29.110 +	}
  29.111  
  29.112 -    public Date getDatum() {
  29.113 -	return datum;
  29.114 -    }
  29.115 +	public Date getDatum() {
  29.116 +		return datum;
  29.117 +	}
  29.118  
  29.119 -    public void setDatum(Date datum) {
  29.120 -	this.datum = datum;
  29.121 -    }
  29.122 +	public void setDatum(Date datum) {
  29.123 +		this.datum = datum;
  29.124 +	}
  29.125  }
    30.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/VysledekHlasovani.java	Sat Jun 19 14:37:11 2010 +0200
    30.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/VysledekHlasovani.java	Sun Jun 20 14:46:47 2010 +0200
    30.3 @@ -7,28 +7,28 @@
    30.4   */
    30.5  public class VysledekHlasovani {
    30.6  
    30.7 -    private int hlasuAno;
    30.8 -    private int hlasuNe;
    30.9 +	private int hlasuAno;
   30.10 +	private int hlasuNe;
   30.11  
   30.12 -    /**
   30.13 -     * @return počet hlasů pro kuřácký podnik
   30.14 -     */
   30.15 -    public int getHlasuAno() {
   30.16 -	return hlasuAno;
   30.17 -    }
   30.18 +	/**
   30.19 +	 * @return počet hlasů pro kuřácký podnik
   30.20 +	 */
   30.21 +	public int getHlasuAno() {
   30.22 +		return hlasuAno;
   30.23 +	}
   30.24  
   30.25 -    public void setHlasuAno(int pocet) {
   30.26 -	this.hlasuAno = pocet;
   30.27 -    }
   30.28 +	public void setHlasuAno(int pocet) {
   30.29 +		this.hlasuAno = pocet;
   30.30 +	}
   30.31  
   30.32 -    /**
   30.33 -     * @return počet hlasů pro nekuřácký podnik
   30.34 -     */
   30.35 -    public int getHlasuNe() {
   30.36 -	return hlasuNe;
   30.37 -    }
   30.38 +	/**
   30.39 +	 * @return počet hlasů pro nekuřácký podnik
   30.40 +	 */
   30.41 +	public int getHlasuNe() {
   30.42 +		return hlasuNe;
   30.43 +	}
   30.44  
   30.45 -    public void setHlasuNe(int pocet) {
   30.46 -	this.hlasuNe = pocet;
   30.47 -    }
   30.48 +	public void setHlasuNe(int pocet) {
   30.49 +		this.hlasuNe = pocet;
   30.50 +	}
   30.51  }
    31.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/ClanekRemote.java	Sat Jun 19 14:37:11 2010 +0200
    31.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/ClanekRemote.java	Sun Jun 20 14:46:47 2010 +0200
    31.3 @@ -11,13 +11,13 @@
    31.4  @Remote
    31.5  public interface ClanekRemote {
    31.6  
    31.7 -    public Clanek getClanek(int id);
    31.8 +	public Clanek getClanek(int id);
    31.9  
   31.10 -    public int zalozClanek(Clanek clanek);
   31.11 +	public int zalozClanek(Clanek clanek);
   31.12  
   31.13 -    public void upravClanek(Clanek clanek);
   31.14 +	public void upravClanek(Clanek clanek);
   31.15  
   31.16 -    public Collection<Clanek> getClanky();
   31.17 +	public Collection<Clanek> getClanky();
   31.18  
   31.19 -    public void smazClanek(Clanek clanek);
   31.20 +	public void smazClanek(Clanek clanek);
   31.21  }
    32.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/PodnikRemote.java	Sat Jun 19 14:37:11 2010 +0200
    32.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/PodnikRemote.java	Sun Jun 20 14:46:47 2010 +0200
    32.3 @@ -15,33 +15,33 @@
    32.4  @Remote
    32.5  public interface PodnikRemote {
    32.6  
    32.7 -    public Collection<Podnik> getPodniky();
    32.8 +	public Collection<Podnik> getPodniky();
    32.9  
   32.10 -    public void zalozPodnik(Podnik p);
   32.11 +	public void zalozPodnik(Podnik p);
   32.12  
   32.13 -    public void upravPodnik(Podnik p);
   32.14 +	public void upravPodnik(Podnik p);
   32.15  
   32.16 -    public Podnik getPodnik(int id);
   32.17 +	public Podnik getPodnik(int id);
   32.18  
   32.19 -    public int dopocitejSouradnice();
   32.20 +	public int dopocitejSouradnice();
   32.21  
   32.22 -    /**
   32.23 -     * Zaznamená hlas uživatele
   32.24 -     * @param podnik ID podniku
   32.25 -     * @param hlas true = kuřácký | false = nekuřácký
   32.26 -     * @param ipAdresa IP adresa uživatele, který hlasuje
   32.27 -     */
   32.28 -    public void hlasuj(int podnik, boolean hlas, String ipAdresa);
   32.29 +	/**
   32.30 +	 * Zaznamená hlas uživatele
   32.31 +	 * @param podnik ID podniku
   32.32 +	 * @param hlas true = kuřácký | false = nekuřácký
   32.33 +	 * @param ipAdresa IP adresa uživatele, který hlasuje
   32.34 +	 */
   32.35 +	public void hlasuj(int podnik, boolean hlas, String ipAdresa);
   32.36  
   32.37 -    /**
   32.38 -     * @param podnik ID podniku
   32.39 -     * @return agregované výsledky hlasování pro daný podnik
   32.40 -     */
   32.41 -    public VysledekHlasovani getVysledekHlasovani(int podnik);
   32.42 +	/**
   32.43 +	 * @param podnik ID podniku
   32.44 +	 * @return agregované výsledky hlasování pro daný podnik
   32.45 +	 */
   32.46 +	public VysledekHlasovani getVysledekHlasovani(int podnik);
   32.47  
   32.48 -    /**
   32.49 -     * @param k komentář, který se má přidat k podniku
   32.50 -     * @param uloz true = vloží komentář | false = pouze zkontroluje (naformátuje obsah komentáře)
   32.51 -     */
   32.52 -    public Komentar komentuj(Komentar k, boolean uloz) throws KomentarovaVyjimka, TexyVyjimka;
   32.53 +	/**
   32.54 +	 * @param k komentář, který se má přidat k podniku
   32.55 +	 * @param uloz true = vloží komentář | false = pouze zkontroluje (naformátuje obsah komentáře)
   32.56 +	 */
   32.57 +	public Komentar komentuj(Komentar k, boolean uloz) throws KomentarovaVyjimka, TexyVyjimka;
   32.58  }
    33.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/UzivatelRemote.java	Sat Jun 19 14:37:11 2010 +0200
    33.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/UzivatelRemote.java	Sun Jun 20 14:46:47 2010 +0200
    33.3 @@ -11,6 +11,6 @@
    33.4  @Remote
    33.5  public interface UzivatelRemote {
    33.6  
    33.7 -    /** Registrace nového uživatele */
    33.8 -    public void registrujUzivatele(PozadavekNaRegistraciUzivatele p) throws NekurakVyjimka;
    33.9 +	/** Registrace nového uživatele */
   33.10 +	public void registrujUzivatele(PozadavekNaRegistraciUzivatele p) throws NekurakVyjimka;
   33.11  }
    34.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/preklady_cs.properties	Sat Jun 19 14:37:11 2010 +0200
    34.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/preklady_cs.properties	Sun Jun 20 14:46:47 2010 +0200
    34.3 @@ -93,13 +93,13 @@
    34.4  komentare.tlacitkoNahled=N\u00e1hled
    34.5  komentare.napsal=Napsal
    34.6  komentare.nahledNadpis=Takhle bude vypadat v\u00e1\u0161 koment\u00e1\u0159
    34.7 +komentare.nahledOdeslano=Koment\u00e1\u0159 byl \u00fasp\u011b\u0161n\u011b ulo\u017een
    34.8 +komentare.nahledChybaPrihlaseni=Koment\u00e1\u0159e mohou vkl\u00e1dat pouze p\u0159ihl\u00e1\u0161en\u00ed u\u017eivatel\u00e9.
    34.9  komentare.nahledChybaFormatu=Koment\u00e1\u0159 obsahuje nepovolen\u00e9 form\u00e1tov\u00e1n\u00ed.
   34.10 -komentare.nahledChybaPrihlaseni=Koment\u00e1\u0159e mohou vkl\u00e1dat pouze p\u0159ihl\u00e1\u0161en\u00ed u\u017eivatel\u00e9.
   34.11 -komentare.nahledOdeslano=Koment\u00e1\u0159 byl \u00fasp\u011b\u0161n\u011b ulo\u017een
   34.12 +komentar.odeslat.chyba=Koment\u00e1\u0159 obsahuje nepovolen\u00e9 form\u00e1tov\u00e1n\u00ed.
   34.13  komentar.odeslat.nadpis=Vlo\u017een\u00ed koment\u00e1\u0159e
   34.14  komentar.odeslat.ok=Koment\u00e1\u0159 byl \u00fasp\u011b\u0161n\u011b vlo\u017een
   34.15  komentar.odeslat.pokracujte=pokra\u010dujte na str\u00e1nku podniku
   34.16 -komentar.odeslat.chyba=Koment\u00e1\u0159 obsahuje nepovolen\u00e9 form\u00e1tov\u00e1n\u00ed.
   34.17  komentar.typ.prostyText=Prost\u00fd text
   34.18  komentar.typ.xhtml=XHTML form\u00e1tovan\u00fd text
   34.19  komentar.typ.xhtml.povoleneZnacky=Povolen\u00e9 zna\u010dky jsou: p, strong, em a br.
    35.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/util/Hash.java	Sat Jun 19 14:37:11 2010 +0200
    35.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/util/Hash.java	Sun Jun 20 14:46:47 2010 +0200
    35.3 @@ -10,39 +10,39 @@
    35.4   */
    35.5  public class Hash {
    35.6  
    35.7 -    private static String algoritmus = "SHA-512";
    35.8 -    private static String kodovani = "UTF-8";
    35.9 +	private static String algoritmus = "SHA-512";
   35.10 +	private static String kodovani = "UTF-8";
   35.11  
   35.12 -    private static String prevedNaHex(byte[] data) {
   35.13 -	StringBuffer vysledek = new StringBuffer();
   35.14 -	for (int i = 0; i < data.length; i++) {
   35.15 -	    int pulBajt = (data[i] >>> 4) & 0x0F;
   35.16 -	    int dvePulky = 0;
   35.17 -	    do {
   35.18 -		if ((0 <= pulBajt) && (pulBajt <= 9)) {
   35.19 -		    vysledek.append((char) ('0' + pulBajt));
   35.20 -		} else {
   35.21 -		    vysledek.append((char) ('a' + (pulBajt - 10)));
   35.22 +	private static String prevedNaHex(byte[] data) {
   35.23 +		StringBuilder vysledek = new StringBuilder();
   35.24 +		for (int i = 0; i < data.length; i++) {
   35.25 +			int pulBajt = (data[i] >>> 4) & 0x0F;
   35.26 +			int dvePulky = 0;
   35.27 +			do {
   35.28 +				if ((0 <= pulBajt) && (pulBajt <= 9)) {
   35.29 +					vysledek.append((char) ('0' + pulBajt));
   35.30 +				} else {
   35.31 +					vysledek.append((char) ('a' + (pulBajt - 10)));
   35.32 +				}
   35.33 +				pulBajt = data[i] & 0x0F;
   35.34 +			} while (dvePulky++ < 1);
   35.35  		}
   35.36 -		pulBajt = data[i] & 0x0F;
   35.37 -	    } while (dvePulky++ < 1);
   35.38 +		return vysledek.toString();
   35.39  	}
   35.40 -	return vysledek.toString();
   35.41 -    }
   35.42  
   35.43 -    /**
   35.44 -     * @param text vstupní text
   35.45 -     * @return hashovaný text v HEX tvaru
   35.46 -     * @throws NoSuchAlgorithmException neexistující hashovací algoritmus
   35.47 -     * @throws UnsupportedEncodingException nepodporované kódování znaků
   35.48 -     * @throws NullPointerException pokud je vstup null
   35.49 -     */
   35.50 -    public static String hashuj(String text) throws NoSuchAlgorithmException, UnsupportedEncodingException {
   35.51 -	MessageDigest md;
   35.52 -	md = MessageDigest.getInstance(algoritmus);
   35.53 -	byte[] hash = new byte[40];
   35.54 -	md.update(text.getBytes(kodovani), 0, text.length());
   35.55 -	hash = md.digest();
   35.56 -	return prevedNaHex(hash);
   35.57 -    }
   35.58 +	/**
   35.59 +	 * @param text vstupní text
   35.60 +	 * @return hashovaný text v HEX tvaru
   35.61 +	 * @throws NoSuchAlgorithmException neexistující hashovací algoritmus
   35.62 +	 * @throws UnsupportedEncodingException nepodporované kódování znaků
   35.63 +	 * @throws NullPointerException pokud je vstup null
   35.64 +	 */
   35.65 +	public static String hashuj(String text) throws NoSuchAlgorithmException, UnsupportedEncodingException {
   35.66 +		MessageDigest md;
   35.67 +		md = MessageDigest.getInstance(algoritmus);
   35.68 +		byte[] hash = new byte[40];
   35.69 +		md.update(text.getBytes(kodovani), 0, text.length());
   35.70 +		hash = md.digest();
   35.71 +		return prevedNaHex(hash);
   35.72 +	}
   35.73  }
    36.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/util/HttpPozadavek.java	Sat Jun 19 14:37:11 2010 +0200
    36.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/util/HttpPozadavek.java	Sun Jun 20 14:46:47 2010 +0200
    36.3 @@ -10,26 +10,26 @@
    36.4   */
    36.5  public class HttpPozadavek {
    36.6  
    36.7 -    private static List<String> mistniAdresy = new ArrayList<String>();
    36.8 +	private static final List<String> mistniAdresy = new ArrayList<String>();
    36.9  
   36.10 -    static {
   36.11 -	mistniAdresy.add("127.0.0.1");
   36.12 -	mistniAdresy.add("2a01:430:17:0:0:0:0:8");
   36.13 -    }
   36.14 +	static {
   36.15 +		mistniAdresy.add("127.0.0.1");
   36.16 +		mistniAdresy.add("2a01:430:17:0:0:0:0:8");
   36.17 +	}
   36.18  
   36.19 -    /**
   36.20 -     * @deprecated TODO: toto je dočasný HACK.
   36.21 -     * Správně bychom měli použít ventil a přepsat si IP adresu na správnou,
   36.22 -     * abychom pak normálně všude mohli používat getRemoteAddr();
   36.23 -     * @param pozadavek HTTP požadavek
   36.24 -     * @return IP adresa (x-forwarded-for)
   36.25 -     */
   36.26 -    @Deprecated
   36.27 -    public static String getIPadresa(HttpServletRequest pozadavek) {
   36.28 -	if (mistniAdresy.contains(pozadavek.getRemoteAddr())) {
   36.29 -	    return pozadavek.getHeader("x-forwarded-for");
   36.30 -	} else {
   36.31 -	    return pozadavek.getRemoteAddr();
   36.32 +	/**
   36.33 +	 * @deprecated TODO: toto je dočasný HACK.
   36.34 +	 * Správně bychom měli použít ventil a přepsat si IP adresu na správnou,
   36.35 +	 * abychom pak normálně všude mohli používat getRemoteAddr();
   36.36 +	 * @param pozadavek HTTP požadavek
   36.37 +	 * @return IP adresa (x-forwarded-for)
   36.38 +	 */
   36.39 +	@Deprecated
   36.40 +	public static String getIPadresa(HttpServletRequest pozadavek) {
   36.41 +		if (mistniAdresy.contains(pozadavek.getRemoteAddr())) {
   36.42 +			return pozadavek.getHeader("x-forwarded-for");
   36.43 +		} else {
   36.44 +			return pozadavek.getRemoteAddr();
   36.45 +		}
   36.46  	}
   36.47 -    }
   36.48  }
    37.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/util/Komentare.java	Sat Jun 19 14:37:11 2010 +0200
    37.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/util/Komentare.java	Sun Jun 20 14:46:47 2010 +0200
    37.3 @@ -20,99 +20,99 @@
    37.4   */
    37.5  public class Komentare {
    37.6  
    37.7 -    private static final Logger log = Logger.getLogger(Komentare.class.getSimpleName());
    37.8 +	private static final Logger log = Logger.getLogger(Komentare.class.getSimpleName());
    37.9  
   37.10 -    /**
   37.11 -     * Escapuje XML a doplní XHTML zalomení na konce řádků.
   37.12 -     * @param komentar prostý text zadaný uživatelem
   37.13 -     * @return XHTML komentář bez kořenového elementu
   37.14 -     */
   37.15 -    public static String upravProstyText(String komentar) {
   37.16 -	return zalomRadky(escapujXML(komentar));
   37.17 -    }
   37.18 +	/**
   37.19 +	 * Escapuje XML a doplní XHTML zalomení na konce řádků.
   37.20 +	 * @param komentar prostý text zadaný uživatelem
   37.21 +	 * @return XHTML komentář bez kořenového elementu
   37.22 +	 */
   37.23 +	public static String upravProstyText(String komentar) {
   37.24 +		return zalomRadky(escapujXML(komentar));
   37.25 +	}
   37.26  
   37.27 -    /**
   37.28 -     * Pokud uživatel zapomněl na odstavce,
   37.29 -     * zalomíme řádky a zabalíme celý odstavec do jednoho odstavce
   37.30 -     * @param komentar komentář bez odstavců
   37.31 -     * @return komentář s odstavci
   37.32 -     */
   37.33 -    public static String upravXHTML(String komentar) {
   37.34 -	if (komentar.indexOf("<p>") == -1) {
   37.35 -	    return zalomRadky(komentar);
   37.36 -	} else {
   37.37 -	    return komentar;
   37.38 +	/**
   37.39 +	 * Pokud uživatel zapomněl na odstavce,
   37.40 +	 * zalomíme řádky a zabalíme celý odstavec do jednoho odstavce
   37.41 +	 * @param komentar komentář bez odstavců
   37.42 +	 * @return komentář s odstavci
   37.43 +	 */
   37.44 +	public static String upravXHTML(String komentar) {
   37.45 +		if (komentar.indexOf("<p>") == -1) {
   37.46 +			return zalomRadky(komentar);
   37.47 +		} else {
   37.48 +			return komentar;
   37.49 +		}
   37.50  	}
   37.51 -    }
   37.52  
   37.53 -    /**
   37.54 -     * Převede konce řádků na &lt;br/&gt;
   37.55 -     * a celé zabalí do &lt;p/&gt;
   37.56 -     * @param komentar text se zalomenými řádky
   37.57 -     * @return text s &lt;br/&gt; místo konců řádků
   37.58 -     */
   37.59 -    private static String zalomRadky(String komentar) {
   37.60 -	return "<p>" + komentar.replaceAll("\n", "<br/>") + "</p>";
   37.61 -    }
   37.62 +	/**
   37.63 +	 * Převede konce řádků na &lt;br/&gt;
   37.64 +	 * a celé zabalí do &lt;p/&gt;
   37.65 +	 * @param komentar text se zalomenými řádky
   37.66 +	 * @return text s &lt;br/&gt; místo konců řádků
   37.67 +	 */
   37.68 +	private static String zalomRadky(String komentar) {
   37.69 +		return "<p>" + komentar.replaceAll("\n", "<br/>") + "</p>";
   37.70 +	}
   37.71  
   37.72 -    /**
   37.73 -     *
   37.74 -     * @param komentar vstupní XHTML
   37.75 -     * @return XHTML obalené kořenovým elementem
   37.76 -     */
   37.77 -    public static String obal(String komentar) {
   37.78 -	return "<div>" + komentar + "</div>";
   37.79 -    }
   37.80 +	/**
   37.81 +	 *
   37.82 +	 * @param komentar vstupní XHTML
   37.83 +	 * @return XHTML obalené kořenovým elementem
   37.84 +	 */
   37.85 +	public static String obal(String komentar) {
   37.86 +		return "<div>" + komentar + "</div>";
   37.87 +	}
   37.88  
   37.89 -    /**
   37.90 -     * zkontroluje komentář oproti schématu.
   37.91 -     *
   37.92 -     * TODO: omezit maximální délku?
   37.93 -     * TODO: omezit komentáře?
   37.94 -     *
   37.95 -     * @param komentar
   37.96 -     * @return jestli komentář odpovídá
   37.97 -     */
   37.98 -    public static Document zkontroluj(String komentar) throws KomentarovaVyjimka {
   37.99 -	try {
  37.100 -	    URL soubor = Komentare.class.getClassLoader().getResource("cz/frantovo/nekurak/util/komentář.xsd");
  37.101 -	    SchemaFactory tovarnaSchemat = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
  37.102 -	    Schema schema = tovarnaSchemat.newSchema(soubor);
  37.103 +	/**
  37.104 +	 * zkontroluje komentář oproti schématu.
  37.105 +	 *
  37.106 +	 * TODO: omezit maximální délku?
  37.107 +	 * TODO: omezit komentáře?
  37.108 +	 *
  37.109 +	 * @param komentar
  37.110 +	 * @return jestli komentář odpovídá
  37.111 +	 */
  37.112 +	public static Document zkontroluj(String komentar) throws KomentarovaVyjimka {
  37.113 +		try {
  37.114 +			URL soubor = Komentare.class.getClassLoader().getResource("cz/frantovo/nekurak/util/komentář.xsd");
  37.115 +			SchemaFactory tovarnaSchemat = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
  37.116 +			Schema schema = tovarnaSchemat.newSchema(soubor);
  37.117  
  37.118 -	    DocumentBuilderFactory tovarnaDB = DocumentBuilderFactory.newInstance();
  37.119 -	    tovarnaDB.setSchema(schema);
  37.120 +			DocumentBuilderFactory tovarnaDB = DocumentBuilderFactory.newInstance();
  37.121 +			tovarnaDB.setSchema(schema);
  37.122  
  37.123 -	    DocumentBuilder db = tovarnaDB.newDocumentBuilder();
  37.124 -	    db.setErrorHandler(new ErrorHandler() {
  37.125 +			DocumentBuilder db = tovarnaDB.newDocumentBuilder();
  37.126 +			db.setErrorHandler(new ErrorHandler() {
  37.127  
  37.128 -		public void warning(SAXParseException e) throws SAXException {
  37.129 -		    throw e;
  37.130 +				public void warning(SAXParseException e) throws SAXException {
  37.131 +					throw e;
  37.132 +				}
  37.133 +
  37.134 +				public void error(SAXParseException e) throws SAXException {
  37.135 +					/**
  37.136 +					 * neodpovídá schématu
  37.137 +					 * TODO: poslat hlášku, v čem je chyba
  37.138 +					 */
  37.139 +					throw e;
  37.140 +				}
  37.141 +
  37.142 +				public void fatalError(SAXParseException e) throws SAXException {
  37.143 +					/** invalidní XML – neuzavřené značky atd. */
  37.144 +					throw e;
  37.145 +				}
  37.146 +			});
  37.147 +			Document dokument = db.parse(new ByteArrayInputStream(komentar.getBytes("UTF-8")));
  37.148 +			return dokument;
  37.149 +		} catch (Exception e) {
  37.150 +			throw new KomentarovaVyjimka("Neplatný komentář: " + komentar, e);
  37.151  		}
  37.152  
  37.153 -		public void error(SAXParseException e) throws SAXException {
  37.154 -		    /**
  37.155 -		     * neodpovídá schématu
  37.156 -		     * TODO: poslat hlášku, v čem je chyba
  37.157 -		     */
  37.158 -		    throw e;
  37.159 -		}
  37.160  
  37.161 -		public void fatalError(SAXParseException e) throws SAXException {
  37.162 -		    /** invalidní XML – neuzavřené značky atd. */
  37.163 -		    throw e;
  37.164 -		}
  37.165 -	    });
  37.166 -	    Document dokument = db.parse(new ByteArrayInputStream(komentar.getBytes("UTF-8")));
  37.167 -	    return dokument;
  37.168 -	} catch (Exception e) {
  37.169 -	    throw new KomentarovaVyjimka("Neplatný komentář: " + komentar, e);
  37.170  	}
  37.171  
  37.172 +	private static String escapujXML(String str) {
  37.173 +		return str.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replaceAll("\"", "&quot;").replaceAll("'", "&apos;");
  37.174  
  37.175 -    }
  37.176 -
  37.177 -    private static String escapujXML(String str) {
  37.178 -	return str.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replaceAll("\"", "&quot;").replaceAll("'", "&apos;");
  37.179 -
  37.180 -    }
  37.181 +	}
  37.182  }
    38.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/vyjimky/KomentarovaVyjimka.java	Sat Jun 19 14:37:11 2010 +0200
    38.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/vyjimky/KomentarovaVyjimka.java	Sun Jun 20 14:46:47 2010 +0200
    38.3 @@ -6,7 +6,7 @@
    38.4   */
    38.5  public class KomentarovaVyjimka extends NekurakVyjimka {
    38.6  
    38.7 -    public KomentarovaVyjimka(String chyba, Exception e) {
    38.8 -	super(chyba, e);
    38.9 -    }
   38.10 +	public KomentarovaVyjimka(String chyba, Exception e) {
   38.11 +		super(chyba, e);
   38.12 +	}
   38.13  }
    39.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/vyjimky/NecekanaVyjimka.java	Sat Jun 19 14:37:11 2010 +0200
    39.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/vyjimky/NecekanaVyjimka.java	Sun Jun 20 14:46:47 2010 +0200
    39.3 @@ -6,7 +6,7 @@
    39.4   */
    39.5  public class NecekanaVyjimka extends NekurakVyjimka {
    39.6  
    39.7 -    public NecekanaVyjimka(String chyba, Exception e) {
    39.8 -	super(chyba, e);
    39.9 -    }
   39.10 +	public NecekanaVyjimka(String chyba, Exception e) {
   39.11 +		super(chyba, e);
   39.12 +	}
   39.13  }
    40.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/vyjimky/NekurakVyjimka.java	Sat Jun 19 14:37:11 2010 +0200
    40.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/vyjimky/NekurakVyjimka.java	Sun Jun 20 14:46:47 2010 +0200
    40.3 @@ -6,7 +6,7 @@
    40.4   */
    40.5  public class NekurakVyjimka extends Exception {
    40.6  
    40.7 -    public NekurakVyjimka(String chyba, Exception e) {
    40.8 -	super(chyba, e);
    40.9 -    }
   40.10 +	public NekurakVyjimka(String chyba, Exception e) {
   40.11 +		super(chyba, e);
   40.12 +	}
   40.13  }
    41.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/vyjimky/TexyVyjimka.java	Sat Jun 19 14:37:11 2010 +0200
    41.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/vyjimky/TexyVyjimka.java	Sun Jun 20 14:46:47 2010 +0200
    41.3 @@ -6,7 +6,7 @@
    41.4   */
    41.5  public class TexyVyjimka extends NekurakVyjimka {
    41.6  
    41.7 -    public TexyVyjimka(String chyba, Exception e) {
    41.8 -	super(chyba, e);
    41.9 -    }
   41.10 +	public TexyVyjimka(String chyba, Exception e) {
   41.11 +		super(chyba, e);
   41.12 +	}
   41.13  }
    42.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/web/HledacSluzby.java	Sat Jun 19 14:37:11 2010 +0200
    42.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/web/HledacSluzby.java	Sun Jun 20 14:46:47 2010 +0200
    42.3 @@ -16,47 +16,47 @@
    42.4   */
    42.5  public class HledacSluzby implements Serializable {
    42.6  
    42.7 -    private PodnikRemote podnikEJB;
    42.8 -    private UzivatelRemote uzivatelEJB;
    42.9 -    private ClanekRemote clanekEJB;
   42.10 -    private static final Logger log = Logger.getLogger(HledacSluzby.class.getSimpleName());
   42.11 -    
   42.12 -    public PodnikRemote getPodnikEJB() {
   42.13 -	if (podnikEJB == null) {
   42.14 -	    try {
   42.15 -		Context c = new InitialContext();
   42.16 -		podnikEJB = (PodnikRemote) c.lookup("cz.frantovo.nekurak.ejb.PodnikRemote");
   42.17 -	    } catch (NamingException e) {
   42.18 -		log.log(Level.SEVERE, "Chyba při hledání PodnikRemote", e);
   42.19 -		throw new RuntimeException(e);
   42.20 -	    }
   42.21 +	private PodnikRemote podnikEJB;
   42.22 +	private UzivatelRemote uzivatelEJB;
   42.23 +	private ClanekRemote clanekEJB;
   42.24 +	private static final Logger log = Logger.getLogger(HledacSluzby.class.getSimpleName());
   42.25 +
   42.26 +	public PodnikRemote getPodnikEJB() {
   42.27 +		if (podnikEJB == null) {
   42.28 +			try {
   42.29 +				Context c = new InitialContext();
   42.30 +				podnikEJB = (PodnikRemote) c.lookup("cz.frantovo.nekurak.ejb.PodnikRemote");
   42.31 +			} catch (NamingException e) {
   42.32 +				log.log(Level.SEVERE, "Chyba při hledání PodnikRemote", e);
   42.33 +				throw new RuntimeException(e);
   42.34 +			}
   42.35 +		}
   42.36 +		return podnikEJB;
   42.37  	}
   42.38 -	return podnikEJB;
   42.39 -    }
   42.40  
   42.41 -    public UzivatelRemote getUzivatelEJB() {
   42.42 -	if (uzivatelEJB == null) {
   42.43 -	    try {
   42.44 -		Context c = new InitialContext();
   42.45 -		uzivatelEJB = (UzivatelRemote) c.lookup("cz.frantovo.nekurak.ejb.UzivatelRemote");
   42.46 -	    } catch (NamingException e) {
   42.47 -		log.log(Level.SEVERE, "Chyba při hledání UzivatelRemote", e);
   42.48 -		throw new RuntimeException(e);
   42.49 -	    }
   42.50 +	public UzivatelRemote getUzivatelEJB() {
   42.51 +		if (uzivatelEJB == null) {
   42.52 +			try {
   42.53 +				Context c = new InitialContext();
   42.54 +				uzivatelEJB = (UzivatelRemote) c.lookup("cz.frantovo.nekurak.ejb.UzivatelRemote");
   42.55 +			} catch (NamingException e) {
   42.56 +				log.log(Level.SEVERE, "Chyba při hledání UzivatelRemote", e);
   42.57 +				throw new RuntimeException(e);
   42.58 +			}
   42.59 +		}
   42.60 +		return uzivatelEJB;
   42.61  	}
   42.62 -	return uzivatelEJB;
   42.63 -    }
   42.64  
   42.65 -    public ClanekRemote getClanekEJB() {
   42.66 -	if (clanekEJB == null) {
   42.67 -	    try {
   42.68 -		Context c = new InitialContext();
   42.69 -		clanekEJB = (ClanekRemote) c.lookup("cz.frantovo.nekurak.ejb.ClanekRemote");
   42.70 -	    } catch (NamingException e) {
   42.71 -		log.log(Level.SEVERE, "Chyba při hledání ClanekRemote", e);
   42.72 -		throw new RuntimeException(e);
   42.73 -	    }
   42.74 +	public ClanekRemote getClanekEJB() {
   42.75 +		if (clanekEJB == null) {
   42.76 +			try {
   42.77 +				Context c = new InitialContext();
   42.78 +				clanekEJB = (ClanekRemote) c.lookup("cz.frantovo.nekurak.ejb.ClanekRemote");
   42.79 +			} catch (NamingException e) {
   42.80 +				log.log(Level.SEVERE, "Chyba při hledání ClanekRemote", e);
   42.81 +				throw new RuntimeException(e);
   42.82 +			}
   42.83 +		}
   42.84 +		return clanekEJB;
   42.85  	}
   42.86 -	return clanekEJB;
   42.87 -    }
   42.88  }
    43.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/xml/ClanekXML.java	Sat Jun 19 14:37:11 2010 +0200
    43.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/xml/ClanekXML.java	Sun Jun 20 14:46:47 2010 +0200
    43.3 @@ -8,48 +8,47 @@
    43.4   * Převaděč do XML
    43.5   * @author fiki
    43.6   */
    43.7 -@XmlRootElement(name="clanek")
    43.8 +@XmlRootElement(name = "clanek")
    43.9  public class ClanekXML {
   43.10  
   43.11 -    private Clanek clanek;
   43.12 +	private Clanek clanek;
   43.13  
   43.14 -    public ClanekXML() {
   43.15 -	clanek = new Clanek();
   43.16 -    }
   43.17 +	public ClanekXML() {
   43.18 +		clanek = new Clanek();
   43.19 +	}
   43.20  
   43.21 -    public ClanekXML(Clanek clanek) {
   43.22 -	this.clanek = clanek;
   43.23 -    }
   43.24 +	public ClanekXML(Clanek clanek) {
   43.25 +		this.clanek = clanek;
   43.26 +	}
   43.27  
   43.28 -    @XmlElement
   43.29 -    public int getId() {
   43.30 -	return clanek.getId();
   43.31 -    }
   43.32 +	@XmlElement
   43.33 +	public int getId() {
   43.34 +		return clanek.getId();
   43.35 +	}
   43.36  
   43.37 -    public void setId(int id) {
   43.38 -	clanek.setId(id);
   43.39 -    }
   43.40 +	public void setId(int id) {
   43.41 +		clanek.setId(id);
   43.42 +	}
   43.43  
   43.44 -    @XmlElement
   43.45 -    public String getNadpis() {
   43.46 -	return clanek.getNadpis();
   43.47 -    }
   43.48 +	@XmlElement
   43.49 +	public String getNadpis() {
   43.50 +		return clanek.getNadpis();
   43.51 +	}
   43.52  
   43.53 -    public void setNadpis(String nadpis) {
   43.54 -	clanek.setNadpis(nadpis);
   43.55 -    }
   43.56 +	public void setNadpis(String nadpis) {
   43.57 +		clanek.setNadpis(nadpis);
   43.58 +	}
   43.59  
   43.60 -    @XmlElement
   43.61 -    public String getText() {
   43.62 -	return clanek.getText();
   43.63 -    }
   43.64 +	@XmlElement
   43.65 +	public String getText() {
   43.66 +		return clanek.getText();
   43.67 +	}
   43.68  
   43.69 -    public void setText(String text) {
   43.70 -	clanek.setText(text);
   43.71 -    }
   43.72 +	public void setText(String text) {
   43.73 +		clanek.setText(text);
   43.74 +	}
   43.75  
   43.76 -    public Clanek getClanek() {
   43.77 -	return clanek;
   43.78 -    }
   43.79 -
   43.80 +	public Clanek getClanek() {
   43.81 +		return clanek;
   43.82 +	}
   43.83  }
    44.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/xml/HlasXML.java	Sat Jun 19 14:37:11 2010 +0200
    44.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/xml/HlasXML.java	Sun Jun 20 14:46:47 2010 +0200
    44.3 @@ -7,29 +7,27 @@
    44.4   * Jeden hlas od uživatele.
    44.5   * @author fiki
    44.6   */
    44.7 -@XmlRootElement(name="hlas")
    44.8 +@XmlRootElement(name = "hlas")
    44.9  public class HlasXML {
   44.10  
   44.11 -    private int podnik;
   44.12 -    private boolean kourit;
   44.13 +	private int podnik;
   44.14 +	private boolean kourit;
   44.15  
   44.16 -    @XmlElement
   44.17 -    public int getPodnik() {
   44.18 -	return podnik;
   44.19 -    }
   44.20 +	@XmlElement
   44.21 +	public int getPodnik() {
   44.22 +		return podnik;
   44.23 +	}
   44.24  
   44.25 -    public void setPodnik(int podnik) {
   44.26 -	this.podnik = podnik;
   44.27 -    }
   44.28 +	public void setPodnik(int podnik) {
   44.29 +		this.podnik = podnik;
   44.30 +	}
   44.31  
   44.32 -    @XmlElement
   44.33 -    public boolean isKourit() {
   44.34 -	return kourit;
   44.35 -    }
   44.36 +	@XmlElement
   44.37 +	public boolean isKourit() {
   44.38 +		return kourit;
   44.39 +	}
   44.40  
   44.41 -    public void setKourit(boolean hlas) {
   44.42 -	this.kourit = hlas;
   44.43 -    }
   44.44 -    
   44.45 -
   44.46 +	public void setKourit(boolean hlas) {
   44.47 +		this.kourit = hlas;
   44.48 +	}
   44.49  }
    45.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/xml/package-info.java	Sat Jun 19 14:37:11 2010 +0200
    45.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/xml/package-info.java	Sun Jun 20 14:46:47 2010 +0200
    45.3 @@ -2,4 +2,3 @@
    45.4   * Třídy pro překlad mezi objekty a XML
    45.5   */
    45.6  package cz.frantovo.nekurak.xml;
    45.7 -
    46.1 --- a/java/nekurak.net-lib/test/cz/frantovo/nekurak/util/HashTest.java	Sat Jun 19 14:37:11 2010 +0200
    46.2 +++ b/java/nekurak.net-lib/test/cz/frantovo/nekurak/util/HashTest.java	Sun Jun 20 14:46:47 2010 +0200
    46.3 @@ -18,36 +18,36 @@
    46.4   */
    46.5  public class HashTest {
    46.6  
    46.7 -    String 外滩 = "Bund";
    46.8 -    String 南京东路 = "Nanjing Road East";
    46.9 +	String 外滩 = "Bund";
   46.10 +	String 南京东路 = "Nanjing Road East";
   46.11  
   46.12 -    @Test
   46.13 -    public void prázdnýŘetězec() throws Exception {
   46.14 -	testuj("", "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e");
   46.15 -    }
   46.16 +	@Test
   46.17 +	public void prázdnýŘetězec() throws Exception {
   46.18 +		testuj("", "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e");
   46.19 +	}
   46.20  
   46.21 -    @Test
   46.22 -    public void prázdnýŘádek() throws Exception {
   46.23 -	testuj("\n", "be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09");
   46.24 -    }
   46.25 +	@Test
   46.26 +	public void prázdnýŘádek() throws Exception {
   46.27 +		testuj("\n", "be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09");
   46.28 +	}
   46.29  
   46.30 -    @Test(expected = NullPointerException.class)
   46.31 -    public void nullHodnota() throws Exception {
   46.32 -	testuj(null, "Při null vstupu má být vyhozena NullPointerException.");
   46.33 -    }
   46.34 +	@Test(expected = NullPointerException.class)
   46.35 +	public void nullHodnota() throws Exception {
   46.36 +		testuj(null, "Při null vstupu má být vyhozena NullPointerException.");
   46.37 +	}
   46.38  
   46.39 -    @Test
   46.40 -    public void něco() throws Exception {
   46.41 -	testuj("Ahoj, jak to jde? :-)", "87e6e3c6487dc5ffee93d05cdc71a196f21181e357e61e1820d652ed9b601e179db92c1aaafc9cf57384498c1a52b89c82714dabdfd30b9eb8c7fd8d3fe53685");
   46.42 -    }
   46.43 +	@Test
   46.44 +	public void něco() throws Exception {
   46.45 +		testuj("Ahoj, jak to jde? :-)", "87e6e3c6487dc5ffee93d05cdc71a196f21181e357e61e1820d652ed9b601e179db92c1aaafc9cf57384498c1a52b89c82714dabdfd30b9eb8c7fd8d3fe53685");
   46.46 +	}
   46.47  
   46.48 -    @Test
   46.49 -    public void čeština() throws Exception {
   46.50 -	testuj("čeština a další unicode – → | @{#@$%${*&…˙×ׄ东方明珠塔“‚&‘‚“‚", "f9750a7f3fa04356510285af61bbdd40b108e04c2abad69130c5929561fa2765e263707147f779ac5f4be348005ce0fc810334822ba0a50f1d5c41719413277e");
   46.51 -    }
   46.52 +	@Test
   46.53 +	public void čeština() throws Exception {
   46.54 +		testuj("čeština a další unicode – → | @{#@$%${*&…˙×ׄ东方明珠塔“‚&‘‚“‚", "f9750a7f3fa04356510285af61bbdd40b108e04c2abad69130c5929561fa2765e263707147f779ac5f4be348005ce0fc810334822ba0a50f1d5c41719413277e");
   46.55 +	}
   46.56  
   46.57 -    private void testuj(String vstup, String pozadovanyVystup) throws Exception {
   46.58 -	String vystup = Hash.hashuj(vstup);
   46.59 -	assertEquals(pozadovanyVystup, vystup);
   46.60 -    }
   46.61 +	private void testuj(String vstup, String pozadovanyVystup) throws Exception {
   46.62 +		String vystup = Hash.hashuj(vstup);
   46.63 +		assertEquals(pozadovanyVystup, vystup);
   46.64 +	}
   46.65  }
    47.1 --- a/java/nekurak.net-lib/test/cz/frantovo/nekurak/util/KomentareTest.java	Sat Jun 19 14:37:11 2010 +0200
    47.2 +++ b/java/nekurak.net-lib/test/cz/frantovo/nekurak/util/KomentareTest.java	Sun Jun 20 14:46:47 2010 +0200
    47.3 @@ -6,60 +6,60 @@
    47.4  
    47.5  public class KomentareTest {
    47.6  
    47.7 -    Komentare komentare = new Komentare();
    47.8 +	Komentare komentare = new Komentare();
    47.9  
   47.10 -    @Test
   47.11 -    public void obal() {
   47.12 -	String vystup = Komentare.obal("asdf");
   47.13 -	String pozadovanyVystup = "<div>asdf</div>";
   47.14 -	assertEquals(pozadovanyVystup, vystup);
   47.15 -    }
   47.16 +	@Test
   47.17 +	public void obal() {
   47.18 +		String vystup = Komentare.obal("asdf");
   47.19 +		String pozadovanyVystup = "<div>asdf</div>";
   47.20 +		assertEquals(pozadovanyVystup, vystup);
   47.21 +	}
   47.22  
   47.23 -    @Test
   47.24 -    public void upravProstýTextObal() {
   47.25 -	String vystup = Komentare.upravProstyText("as\ndf");
   47.26 -	vystup = Komentare.obal(vystup);
   47.27 -	String pozadovanyVystup = "<div><p>as<br/>df</p></div>";
   47.28 -	assertEquals(pozadovanyVystup, vystup);
   47.29 -    }
   47.30 +	@Test
   47.31 +	public void upravProstýTextObal() {
   47.32 +		String vystup = Komentare.upravProstyText("as\ndf");
   47.33 +		vystup = Komentare.obal(vystup);
   47.34 +		String pozadovanyVystup = "<div><p>as<br/>df</p></div>";
   47.35 +		assertEquals(pozadovanyVystup, vystup);
   47.36 +	}
   47.37  
   47.38 -    @Test
   47.39 -    public void komentáře() throws KomentarovaVyjimka {
   47.40 -	/**
   47.41 -	 * Komentáře jsou povolené. TODO: OK?
   47.42 -	 */
   47.43 -	String výstup = Komentare.upravProstyText("aaa<!-- komentář -->bbb");
   47.44 -	výstup = Komentare.obal(výstup);
   47.45 -	komentare.zkontroluj(výstup);
   47.46 -    }
   47.47 +	@Test
   47.48 +	public void komentáře() throws KomentarovaVyjimka {
   47.49 +		/**
   47.50 +		 * Komentáře jsou povolené. TODO: OK?
   47.51 +		 */
   47.52 +		String výstup = Komentare.upravProstyText("aaa<!-- komentář -->bbb");
   47.53 +		výstup = Komentare.obal(výstup);
   47.54 +		komentare.zkontroluj(výstup);
   47.55 +	}
   47.56  
   47.57 -    @Test
   47.58 -    public void zvláštníZnaky() {
   47.59 -	String vystup = Komentare.upravProstyText("nbusr123 & | and < … > uvo\"zovky'");
   47.60 -	String pozadovanyVystup = "<p>nbusr123 &amp; | and &lt; … &gt; uvo&quot;zovky&apos;</p>";
   47.61 -	assertEquals(pozadovanyVystup, vystup);
   47.62 -    }
   47.63 +	@Test
   47.64 +	public void zvláštníZnaky() {
   47.65 +		String vystup = Komentare.upravProstyText("nbusr123 & | and < … > uvo\"zovky'");
   47.66 +		String pozadovanyVystup = "<p>nbusr123 &amp; | and &lt; … &gt; uvo&quot;zovky&apos;</p>";
   47.67 +		assertEquals(pozadovanyVystup, vystup);
   47.68 +	}
   47.69  
   47.70 -    @Test
   47.71 -    public void xmlJednoduché() throws Exception {
   47.72 -	komentare.zkontroluj("<div><p>xxx</p></div>");
   47.73 -	komentare.zkontroluj("<div><p>xxx</p><p>xxx</p></div>");
   47.74 -	komentare.zkontroluj("<div><p>xxx<strong>tučně</strong>xxx</p></div>");
   47.75 -	komentare.zkontroluj("<div><p>xxx<em>tučně</em>xxx</p></div>");
   47.76 -    }
   47.77 +	@Test
   47.78 +	public void xmlJednoduché() throws Exception {
   47.79 +		komentare.zkontroluj("<div><p>xxx</p></div>");
   47.80 +		komentare.zkontroluj("<div><p>xxx</p><p>xxx</p></div>");
   47.81 +		komentare.zkontroluj("<div><p>xxx<strong>tučně</strong>xxx</p></div>");
   47.82 +		komentare.zkontroluj("<div><p>xxx<em>tučně</em>xxx</p></div>");
   47.83 +	}
   47.84  
   47.85 -    @Test(expected = KomentarovaVyjimka.class)
   47.86 -    public void xmlChybaÚplněŠpatnéXML() throws Exception {
   47.87 -	komentare.zkontroluj("<div>xxx</p></div>");
   47.88 -    }
   47.89 +	@Test(expected = KomentarovaVyjimka.class)
   47.90 +	public void xmlChybaÚplněŠpatnéXML() throws Exception {
   47.91 +		komentare.zkontroluj("<div>xxx</p></div>");
   47.92 +	}
   47.93  
   47.94 -    @Test(expected = KomentarovaVyjimka.class)
   47.95 -    public void xmlChybaChybíOdstavec() throws Exception {
   47.96 -	komentare.zkontroluj("<div>xxx</div>");
   47.97 -    }
   47.98 +	@Test(expected = KomentarovaVyjimka.class)
   47.99 +	public void xmlChybaChybíOdstavec() throws Exception {
  47.100 +		komentare.zkontroluj("<div>xxx</div>");
  47.101 +	}
  47.102  
  47.103 -    @Test(expected = KomentarovaVyjimka.class)
  47.104 -    public void xmlChybaPřebýváAtribut() throws Exception {
  47.105 -	komentare.zkontroluj("<div omfg='xxx'><p>xxx</p></div>");
  47.106 -    }
  47.107 +	@Test(expected = KomentarovaVyjimka.class)
  47.108 +	public void xmlChybaPřebýváAtribut() throws Exception {
  47.109 +		komentare.zkontroluj("<div omfg='xxx'><p>xxx</p></div>");
  47.110 +	}
  47.111  }
    48.1 --- a/java/nekurak.net-rest/nbproject/project.properties	Sat Jun 19 14:37:11 2010 +0200
    48.2 +++ b/java/nekurak.net-rest/nbproject/project.properties	Sun Jun 20 14:46:47 2010 +0200
    48.3 @@ -29,7 +29,7 @@
    48.4  includes=**
    48.5  j2ee.deploy.on.save=false
    48.6  j2ee.platform=1.6-web
    48.7 -j2ee.platform.classpath=${j2ee.server.home}/modules/javax.servlet.jar:${j2ee.server.home}/modules/jstl-impl.jar:${j2ee.server.home}/modules/javax.ejb.jar:${j2ee.server.home}/modules/javax.enterprise.deploy.jar:${j2ee.server.home}/modules/javax.security.jacc.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.transaction.jar:${j2ee.server.home}/modules/jsr311-api.jar:${j2ee.server.home}/modules/jsf-api.jar:${j2ee.server.home}/modules/javax.security.auth.message.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/endorsed/javax.annotation.jar:${j2ee.server.home}/modules/javax.management.j2ee.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api-osgi.jar:${j2ee.server.home}/modules/javax.jms.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.resource.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.home}/modules/jsf-impl.jar:${j2ee.server.home}/modules/mail.jar
    48.8 +j2ee.platform.classpath=
    48.9  j2ee.platform.embeddableejb.classpath=${j2ee.server.home}/lib/embedded/glassfish-embedded-static-shell.jar
   48.10  j2ee.platform.wscompile.classpath=${j2ee.server.home}/modules/webservices-osgi.jar
   48.11  j2ee.platform.wsgen.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api-osgi.jar:${j2ee.server.home}/modules/javax.ejb.jar
    49.1 --- a/java/nekurak.net-rest/src/java/cz/frantovo/nekurak/rest/ClankyREST.java	Sat Jun 19 14:37:11 2010 +0200
    49.2 +++ b/java/nekurak.net-rest/src/java/cz/frantovo/nekurak/rest/ClankyREST.java	Sun Jun 20 14:46:47 2010 +0200
    49.3 @@ -17,61 +17,61 @@
    49.4  @Path("clanek")
    49.5  public class ClankyREST {
    49.6  
    49.7 -    private static final String MIME_XML = "text/xml";
    49.8 -    private static final String MIME_TEXT = "text/plain";
    49.9 -    private HledacSluzby hledac = new HledacSluzby();
   49.10 -    
   49.11 -    /** Vypíšeme seznam všech článků v systému */
   49.12 -    @GET
   49.13 -    @Path("/")
   49.14 -    @Produces(MIME_XML)
   49.15 -    public Collection<ClanekXML> seznam() {
   49.16 -	Collection<ClanekXML> vysledek = new ArrayList<ClanekXML>();
   49.17 -	Collection<Clanek> clanky = hledac.getClanekEJB().getClanky();
   49.18 +	private static final String MIME_XML = "text/xml";
   49.19 +	private static final String MIME_TEXT = "text/plain";
   49.20 +	private HledacSluzby hledac = new HledacSluzby();
   49.21  
   49.22 -	for (Clanek c : clanky) {
   49.23 -	    vysledek.add(new ClanekXML(c));
   49.24 +	/** Vypíšeme seznam všech článků v systému */
   49.25 +	@GET
   49.26 +	@Path("/")
   49.27 +	@Produces(MIME_XML)
   49.28 +	public Collection<ClanekXML> seznam() {
   49.29 +		Collection<ClanekXML> vysledek = new ArrayList<ClanekXML>();
   49.30 +		Collection<Clanek> clanky = hledac.getClanekEJB().getClanky();
   49.31 +
   49.32 +		for (Clanek c : clanky) {
   49.33 +			vysledek.add(new ClanekXML(c));
   49.34 +		}
   49.35 +
   49.36 +		return vysledek;
   49.37  	}
   49.38  
   49.39 -	return vysledek;
   49.40 -    }
   49.41 +	/** Získáme konkrétní článek */
   49.42 +	@GET
   49.43 +	@Path("/{id}")
   49.44 +	@Produces(MIME_XML)
   49.45 +	public ClanekXML ziskej(@PathParam("id") int id) {
   49.46 +		Clanek c = hledac.getClanekEJB().getClanek(id);
   49.47 +		return new ClanekXML(c);
   49.48 +	}
   49.49  
   49.50 -    /** Získáme konkrétní článek */
   49.51 -    @GET
   49.52 -    @Path("/{id}")
   49.53 -    @Produces(MIME_XML)
   49.54 -    public ClanekXML ziskej(@PathParam("id") int id) {
   49.55 -	Clanek c = hledac.getClanekEJB().getClanek(id);
   49.56 -	return new ClanekXML(c);
   49.57 -    }
   49.58 +	/**
   49.59 +	 * Vložíme nový článek
   49.60 +	 * @return ID založeného článku (návratový typ musí být String – ne int)
   49.61 +	 */
   49.62 +	@POST
   49.63 +	@Consumes(MIME_XML)
   49.64 +	@Produces(MIME_TEXT)
   49.65 +	public String zaloz(ClanekXML xml) {
   49.66 +		int id = hledac.getClanekEJB().zalozClanek(xml.getClanek());
   49.67 +		return id + "\n";
   49.68 +	}
   49.69  
   49.70 -    /**
   49.71 -     * Vložíme nový článek
   49.72 -     * @return ID založeného článku (návratový typ musí být String – ne int)
   49.73 -     */
   49.74 -    @POST
   49.75 -    @Consumes(MIME_XML)
   49.76 -    @Produces(MIME_TEXT)
   49.77 -    public String zaloz(ClanekXML xml) {
   49.78 -	int id = hledac.getClanekEJB().zalozClanek(xml.getClanek());
   49.79 -	return id + "\n";
   49.80 -    }
   49.81 +	/** Aktualizujeme článek */
   49.82 +	@PUT
   49.83 +	@Consumes(MIME_XML)
   49.84 +	@Path("/{id}")
   49.85 +	public void uprav(@PathParam("id") int id, ClanekXML xml) {
   49.86 +		xml.setId(id);
   49.87 +		hledac.getClanekEJB().upravClanek(xml.getClanek());
   49.88 +	}
   49.89  
   49.90 -    /** Aktualizujeme článek */
   49.91 -    @PUT
   49.92 -    @Consumes(MIME_XML)
   49.93 -    @Path("/{id}")
   49.94 -    public void uprav(@PathParam("id") int id, ClanekXML xml) {
   49.95 -	xml.setId(id);
   49.96 -	hledac.getClanekEJB().upravClanek(xml.getClanek());
   49.97 -    }
   49.98 -
   49.99 -    /** Smažeme článek */
  49.100 -    @DELETE
  49.101 -    @Path("/{id}")
  49.102 -    public void smaz(@PathParam("id") int id) {
  49.103 -	Clanek c = new Clanek();
  49.104 -	c.setId(id);
  49.105 -	hledac.getClanekEJB().smazClanek(c);
  49.106 -    }
  49.107 +	/** Smažeme článek */
  49.108 +	@DELETE
  49.109 +	@Path("/{id}")
  49.110 +	public void smaz(@PathParam("id") int id) {
  49.111 +		Clanek c = new Clanek();
  49.112 +		c.setId(id);
  49.113 +		hledac.getClanekEJB().smazClanek(c);
  49.114 +	}
  49.115  }
    50.1 --- a/java/nekurak.net-rest/web/WEB-INF/sun-web.xml	Sat Jun 19 14:37:11 2010 +0200
    50.2 +++ b/java/nekurak.net-rest/web/WEB-INF/sun-web.xml	Sun Jun 20 14:46:47 2010 +0200
    50.3 @@ -1,15 +1,15 @@
    50.4  <?xml version="1.0" encoding="UTF-8"?>
    50.5  <!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 Servlet 2.5//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_2_5-0.dtd">
    50.6  <sun-web-app error-url="">
    50.7 -    <context-root>/nekurak.net-rest</context-root>
    50.8 -    <class-loader delegate="true"/>
    50.9 -    <jsp-config>
   50.10 -	<property name="keepgenerated" value="true">
   50.11 -	    <description>Keep a copy of the generated servlet class' java code.</description>
   50.12 -	</property>
   50.13 -    </jsp-config>
   50.14 -    <security-role-mapping>
   50.15 -	<role-name>redaktor</role-name>
   50.16 -	<group-name>redaktor</group-name>
   50.17 -    </security-role-mapping>
   50.18 +	<context-root>/nekurak.net-rest</context-root>
   50.19 +	<class-loader delegate="true"/>
   50.20 +	<jsp-config>
   50.21 +		<property name="keepgenerated" value="true">
   50.22 +			<description>Keep a copy of the generated servlet class' java code.</description>
   50.23 +		</property>
   50.24 +	</jsp-config>
   50.25 +	<security-role-mapping>
   50.26 +		<role-name>redaktor</role-name>
   50.27 +		<group-name>redaktor</group-name>
   50.28 +	</security-role-mapping>
   50.29  </sun-web-app>
    51.1 --- a/java/nekurak.net-rest/web/WEB-INF/web.xml	Sat Jun 19 14:37:11 2010 +0200
    51.2 +++ b/java/nekurak.net-rest/web/WEB-INF/web.xml	Sun Jun 20 14:46:47 2010 +0200
    51.3 @@ -1,38 +1,38 @@
    51.4  <?xml version="1.0" encoding="UTF-8"?>
    51.5  <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    51.6 -    <servlet>
    51.7 -	<servlet-name>REST</servlet-name>
    51.8 -	<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    51.9 -	<load-on-startup>1</load-on-startup>
   51.10 -    </servlet>
   51.11 -    <servlet-mapping>
   51.12 -	<servlet-name>REST</servlet-name>
   51.13 -	<url-pattern>/*</url-pattern>
   51.14 -    </servlet-mapping>
   51.15 -    <session-config>
   51.16 -	<session-timeout>
   51.17 -	    30
   51.18 -	</session-timeout>
   51.19 -    </session-config>
   51.20 -    <!--  <zabezpečení> -->
   51.21 -    <security-role>
   51.22 -	<role-name>redaktor</role-name>
   51.23 -    </security-role>
   51.24 -    <security-constraint>
   51.25 -	<web-resource-collection>
   51.26 -	    <web-resource-name>Nekuřák.net REST API</web-resource-name>
   51.27 -	    <url-pattern>/*</url-pattern>
   51.28 -	    <http-method>PUT</http-method>
   51.29 -	    <http-method>POST</http-method>
   51.30 -	    <http-method>DELETE</http-method>
   51.31 -	</web-resource-collection>
   51.32 -	<auth-constraint>
   51.33 -	    <role-name>redaktor</role-name>
   51.34 -	</auth-constraint>
   51.35 -    </security-constraint>
   51.36 -    <login-config>
   51.37 -	<auth-method>BASIC</auth-method>
   51.38 -	<realm-name>nekurakNET</realm-name>
   51.39 -    </login-config>
   51.40 -    <!--  </zabezpečení> -->
   51.41 +	<servlet>
   51.42 +		<servlet-name>REST</servlet-name>
   51.43 +		<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
   51.44 +		<load-on-startup>1</load-on-startup>
   51.45 +	</servlet>
   51.46 +	<servlet-mapping>
   51.47 +		<servlet-name>REST</servlet-name>
   51.48 +		<url-pattern>/*</url-pattern>
   51.49 +	</servlet-mapping>
   51.50 +	<session-config>
   51.51 +		<session-timeout>
   51.52 +		30
   51.53 +		</session-timeout>
   51.54 +	</session-config>
   51.55 +	<!--  <zabezpečení> -->
   51.56 +	<security-role>
   51.57 +		<role-name>redaktor</role-name>
   51.58 +	</security-role>
   51.59 +	<security-constraint>
   51.60 +		<web-resource-collection>
   51.61 +			<web-resource-name>Nekuřák.net REST API</web-resource-name>
   51.62 +			<url-pattern>/*</url-pattern>
   51.63 +			<http-method>PUT</http-method>
   51.64 +			<http-method>POST</http-method>
   51.65 +			<http-method>DELETE</http-method>
   51.66 +		</web-resource-collection>
   51.67 +		<auth-constraint>
   51.68 +			<role-name>redaktor</role-name>
   51.69 +		</auth-constraint>
   51.70 +	</security-constraint>
   51.71 +	<login-config>
   51.72 +		<auth-method>BASIC</auth-method>
   51.73 +		<realm-name>nekurakNET</realm-name>
   51.74 +	</login-config>
   51.75 +	<!--  </zabezpečení> -->
   51.76  </web-app>
    52.1 --- a/java/nekurak.net-rest/web/index.jsp	Sat Jun 19 14:37:11 2010 +0200
    52.2 +++ b/java/nekurak.net-rest/web/index.jsp	Sun Jun 20 14:46:47 2010 +0200
    52.3 @@ -1,24 +1,24 @@
    52.4  <?xml version="1.0" encoding="UTF-8"?>
    52.5  <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    52.6 -	  xmlns:c="http://java.sun.com/jsp/jstl/core"
    52.7 -	  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    52.8 -	  version="2.0">
    52.9 -    <jsp:directive.page contentType="application/xhtml+xml"/>
   52.10 +		  xmlns:c="http://java.sun.com/jsp/jstl/core"
   52.11 +		  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
   52.12 +		  version="2.0">
   52.13 +	<jsp:directive.page contentType="application/xhtml+xml"/>
   52.14  
   52.15 -    <jsp:output doctype-system="http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd"
   52.16 -		doctype-root-element="html"
   52.17 -		omit-xml-declaration="false"/>
   52.18 +	<jsp:output doctype-system="http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd"
   52.19 +				doctype-root-element="html"
   52.20 +				omit-xml-declaration="false"/>
   52.21  
   52.22 -    <html xmlns="http://www.w3.org/1999/xhtml"
   52.23 -	  xmlns:svg="http://www.w3.org/2000/svg"
   52.24 -	  xmlns:xlink="http://www.w3.org/1999/xlink">
   52.25 -	<head>
   52.26 -	    <title>REST</title>
   52.27 -	</head>
   52.28 -	<body>
   52.29 -	    <h1>REST</h1>
   52.30 -	    <p>REST API</p>
   52.31 -	</body>
   52.32 -    </html>
   52.33 +	<html xmlns="http://www.w3.org/1999/xhtml"
   52.34 +		  xmlns:svg="http://www.w3.org/2000/svg"
   52.35 +		  xmlns:xlink="http://www.w3.org/1999/xlink">
   52.36 +		<head>
   52.37 +			<title>REST</title>
   52.38 +		</head>
   52.39 +		<body>
   52.40 +			<h1>REST</h1>
   52.41 +			<p>REST API</p>
   52.42 +		</body>
   52.43 +	</html>
   52.44  
   52.45  </jsp:root>
    53.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/rest/HlasovaniREST.java	Sat Jun 19 14:37:11 2010 +0200
    53.2 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/rest/HlasovaniREST.java	Sun Jun 20 14:46:47 2010 +0200
    53.3 @@ -13,17 +13,17 @@
    53.4  @Path("hlas")
    53.5  public class HlasovaniREST {
    53.6  
    53.7 -    @Context
    53.8 -    HttpServletRequest pozadavek;
    53.9 -    private static final String MIME_XML = "text/xml";
   53.10 -    private static final String MIME_TEXT = "text/plain";
   53.11 -    private HledacSluzby hledac = new HledacSluzby();
   53.12 +	@Context
   53.13 +	HttpServletRequest pozadavek;
   53.14 +	private static final String MIME_XML = "text/xml";
   53.15 +	private static final String MIME_TEXT = "text/plain";
   53.16 +	private HledacSluzby hledac = new HledacSluzby();
   53.17  
   53.18 -    @POST
   53.19 -    @Consumes(MIME_XML)
   53.20 -    @Produces(MIME_TEXT)
   53.21 -    public String hlasuj(HlasXML xml) {
   53.22 -	hledac.getPodnikEJB().hlasuj(xml.getPodnik(), xml.isKourit(), HttpPozadavek.getIPadresa(pozadavek));
   53.23 -	return "ok";
   53.24 -    }
   53.25 +	@POST
   53.26 +	@Consumes(MIME_XML)
   53.27 +	@Produces(MIME_TEXT)
   53.28 +	public String hlasuj(HlasXML xml) {
   53.29 +		hledac.getPodnikEJB().hlasuj(xml.getPodnik(), xml.isKourit(), HttpPozadavek.getIPadresa(pozadavek));
   53.30 +		return "ok";
   53.31 +	}
   53.32  }
    54.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/servlet/Fotky.java	Sat Jun 19 14:37:11 2010 +0200
    54.2 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/servlet/Fotky.java	Sun Jun 20 14:46:47 2010 +0200
    54.3 @@ -37,91 +37,91 @@
    54.4   */
    54.5  public class Fotky extends HttpServlet {
    54.6  
    54.7 -    /** Název inicializačního parametru */
    54.8 -    private static final String INIT_ADRESAR = "adresar";
    54.9 -    /** Název podadresáře obsahujícího fotku v plném rozlišení */
   54.10 -    public static final String PODADRESAR_ORIGINAL = "original";
   54.11 -    /** Název podadresáře obsahujícího výchozí náhled fotky */
   54.12 -    public static final String PODADRESAR_NAHLED = "nahled";
   54.13 -    public static final String PRIPONA = "jpg";
   54.14 -    private static final String LOMITKO = File.separator;
   54.15 -    /** Regulární výraz */
   54.16 -    private static final String VZOR_CESTY = "^" + LOMITKO + "(" + PODADRESAR_ORIGINAL + "|" + PODADRESAR_NAHLED + ")" + LOMITKO + "\\d+\\." + PRIPONA + "$";
   54.17 -    private static final String MIME_TYP = "image/jpeg";
   54.18 -    private File adresar;
   54.19 -    private static final Logger log = Logger.getLogger(Fotky.class.getSimpleName());
   54.20 +	/** Název inicializačního parametru */
   54.21 +	private static final String INIT_ADRESAR = "adresar";
   54.22 +	/** Název podadresáře obsahujícího fotku v plném rozlišení */
   54.23 +	public static final String PODADRESAR_ORIGINAL = "original";
   54.24 +	/** Název podadresáře obsahujícího výchozí náhled fotky */
   54.25 +	public static final String PODADRESAR_NAHLED = "nahled";
   54.26 +	public static final String PRIPONA = "jpg";
   54.27 +	private static final String LOMITKO = File.separator;
   54.28 +	/** Regulární výraz */
   54.29 +	private static final String VZOR_CESTY = "^" + LOMITKO + "(" + PODADRESAR_ORIGINAL + "|" + PODADRESAR_NAHLED + ")" + LOMITKO + "\\d+\\." + PRIPONA + "$";
   54.30 +	private static final String MIME_TYP = "image/jpeg";
   54.31 +	private File adresar;
   54.32 +	private static final Logger log = Logger.getLogger(Fotky.class.getSimpleName());
   54.33  
   54.34 -    @Override
   54.35 -    public void init() throws ServletException {
   54.36 -	super.init();
   54.37 -	String initAdresar = getServletConfig().getInitParameter(INIT_ADRESAR);
   54.38 -	adresar = new File(initAdresar);
   54.39 -	if (adresar.isDirectory()) {
   54.40 -	    log.log(Level.INFO, "Servlet „Fotka“ byl úspěšně inicializován.");
   54.41 -	    log.log(Level.INFO, "Adresář s fotkami: " + initAdresar);
   54.42 -	    log.log(Level.INFO, "RegExp cesty: " + VZOR_CESTY);
   54.43 -	} else {
   54.44 -	    throw new ServletException("Servlet „Fotka“ se nepodařilo inicializovat. Cesta: " + initAdresar);
   54.45 +	@Override
   54.46 +	public void init() throws ServletException {
   54.47 +		super.init();
   54.48 +		String initAdresar = getServletConfig().getInitParameter(INIT_ADRESAR);
   54.49 +		adresar = new File(initAdresar);
   54.50 +		if (adresar.isDirectory()) {
   54.51 +			log.log(Level.INFO, "Servlet „Fotka“ byl úspěšně inicializován.");
   54.52 +			log.log(Level.INFO, "Adresář s fotkami: {0}", initAdresar);
   54.53 +			log.log(Level.INFO, "RegExp cesty: {0}", VZOR_CESTY);
   54.54 +		} else {
   54.55 +			throw new ServletException("Servlet „Fotka“ se nepodařilo inicializovat. Cesta: " + initAdresar);
   54.56 +		}
   54.57  	}
   54.58 -    }
   54.59  
   54.60 -    /**
   54.61 -     * @param pozadavek pouze GET (není důvod podporovat POST)
   54.62 -     * @param odpoved odešleme fotku s MIME typem podle konstanty, délkou a datem podle souboru.
   54.63 -     * @throws ServletException pokud je požadovaná cesta chybná (nevyhovuje vzoru)
   54.64 -     * @throws IOException
   54.65 -     */
   54.66 -    @Override
   54.67 -    protected void doGet(HttpServletRequest pozadavek, HttpServletResponse odpoved) throws ServletException, IOException {
   54.68 +	/**
   54.69 +	 * @param pozadavek pouze GET (není důvod podporovat POST)
   54.70 +	 * @param odpoved odešleme fotku s MIME typem podle konstanty, délkou a datem podle souboru.
   54.71 +	 * @throws ServletException pokud je požadovaná cesta chybná (nevyhovuje vzoru)
   54.72 +	 * @throws IOException
   54.73 +	 */
   54.74 +	@Override
   54.75 +	protected void doGet(HttpServletRequest pozadavek, HttpServletResponse odpoved) throws ServletException, IOException {
   54.76  
   54.77 -	String cesta = zkontrolujParametr(pozadavek.getPathInfo());
   54.78 -	File soubor = new File(adresar, cesta);
   54.79 +		String cesta = zkontrolujParametr(pozadavek.getPathInfo());
   54.80 +		File soubor = new File(adresar, cesta);
   54.81  
   54.82 -	if (soubor.isFile() && soubor.canRead()) {
   54.83 +		if (soubor.isFile() && soubor.canRead()) {
   54.84  
   54.85 -	    if (soubor.lastModified() > pozadavek.getDateHeader("If-Modified-Since")) {
   54.86 -		/** Soubor se změnil nebo ho klient ještě nemá načtený. */
   54.87 -		odpoved.setContentType(MIME_TYP);
   54.88 -		odpoved.setContentLength((int) soubor.length());
   54.89 -		odpoved.setDateHeader("Last-Modified", soubor.lastModified());
   54.90 +			if (soubor.lastModified() > pozadavek.getDateHeader("If-Modified-Since")) {
   54.91 +				/** Soubor se změnil nebo ho klient ještě nemá načtený. */
   54.92 +				odpoved.setContentType(MIME_TYP);
   54.93 +				odpoved.setContentLength((int) soubor.length());
   54.94 +				odpoved.setDateHeader("Last-Modified", soubor.lastModified());
   54.95  
   54.96 -		ServletOutputStream vystup = odpoved.getOutputStream();
   54.97 -		InputStream vstup = new FileInputStream(soubor);
   54.98 +				ServletOutputStream vystup = odpoved.getOutputStream();
   54.99 +				InputStream vstup = new FileInputStream(soubor);
  54.100  
  54.101 -		try {
  54.102 -		    byte[] zasobnik = new byte[1024];
  54.103 -		    int bajtuNacteno;
  54.104 -		    while ((bajtuNacteno = vstup.read(zasobnik)) != -1) {
  54.105 -			vystup.write(zasobnik, 0, bajtuNacteno);
  54.106 -		    }
  54.107 -		} catch (Exception e) {
  54.108 -		    throw new ServletException("Chyba při odesílání obrázku klientovi.", e);
  54.109 -		} finally {
  54.110 -		    vstup.close();
  54.111 -		    vystup.close();
  54.112 +				try {
  54.113 +					byte[] zasobnik = new byte[1024];
  54.114 +					int bajtuNacteno;
  54.115 +					while ((bajtuNacteno = vstup.read(zasobnik)) != -1) {
  54.116 +						vystup.write(zasobnik, 0, bajtuNacteno);
  54.117 +					}
  54.118 +				} catch (Exception e) {
  54.119 +					throw new ServletException("Chyba při odesílání obrázku klientovi.", e);
  54.120 +				} finally {
  54.121 +					vstup.close();
  54.122 +					vystup.close();
  54.123 +				}
  54.124 +			} else {
  54.125 +				/** Soubor se od posledního načtení klientem nezměnil → není potřeba ho posílat znova. */
  54.126 +				odpoved.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
  54.127 +			}
  54.128 +
  54.129 +		} else {
  54.130 +			/** Neexistující nebo nečitelný soubor → HTTP 404 chyba */
  54.131 +			odpoved.sendError(HttpServletResponse.SC_NOT_FOUND);
  54.132  		}
  54.133 -	    } else {
  54.134 -		/** Soubor se od posledního načtení klientem nezměnil → není potřeba ho posílat znova. */
  54.135 -		odpoved.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
  54.136 -	    }
  54.137 +	}
  54.138  
  54.139 -	} else {
  54.140 -	    /** Neexistující nebo nečitelný soubor → HTTP 404 chyba */
  54.141 -	    odpoved.sendError(HttpServletResponse.SC_NOT_FOUND);
  54.142 +	/**
  54.143 +	 * @param cesta cesta požadovaná klientem: <code>request.getPathInfo()</code>
  54.144 +	 * @throws ServletException pokud cesta nevyhovuje vzoru
  54.145 +	 */
  54.146 +	private static String zkontrolujParametr(String cesta) throws ServletException {
  54.147 +		if (Pattern.matches(VZOR_CESTY, cesta)) {
  54.148 +			/** cesta je v pořádku → pokračujeme */
  54.149 +			return cesta;
  54.150 +		} else {
  54.151 +			/** Chybná cesta → HTTP 500 chyba */
  54.152 +			throw new ServletException("Chybná cesta k obrázku: " + cesta);
  54.153 +		}
  54.154  	}
  54.155 -    }
  54.156 -
  54.157 -    /**
  54.158 -     * @param cesta cesta požadovaná klientem: <code>request.getPathInfo()</code>
  54.159 -     * @throws ServletException pokud cesta nevyhovuje vzoru
  54.160 -     */
  54.161 -    private static String zkontrolujParametr(String cesta) throws ServletException {
  54.162 -	if (Pattern.matches(VZOR_CESTY, cesta)) {
  54.163 -	    /** cesta je v pořádku → pokračujeme */
  54.164 -	    return cesta;
  54.165 -	} else {
  54.166 -	    /** Chybná cesta → HTTP 500 chyba */
  54.167 -	    throw new ServletException("Chybná cesta k obrázku: " + cesta);
  54.168 -	}
  54.169 -    }
  54.170  }
    55.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/servlet/Komentare.java	Sat Jun 19 14:37:11 2010 +0200
    55.2 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/servlet/Komentare.java	Sun Jun 20 14:46:47 2010 +0200
    55.3 @@ -16,45 +16,45 @@
    55.4   */
    55.5  public class Komentare extends HttpServlet {
    55.6  
    55.7 -    @EJB
    55.8 -    PodnikRemote ejb;
    55.9 +	@EJB
   55.10 +	PodnikRemote ejb;
   55.11  
   55.12 -    @Override
   55.13 -    protected void doGet(HttpServletRequest pozadavek, HttpServletResponse odpoved) throws ServletException, IOException {
   55.14 -	doPost(pozadavek, odpoved);
   55.15 -    }
   55.16 -
   55.17 -    @Override
   55.18 -    protected void doPost(HttpServletRequest pozadavek, HttpServletResponse odpoved) throws ServletException, IOException {
   55.19 -	/** Načteme HTTP parametry */
   55.20 -	Komentar k = new Komentar();
   55.21 -	k.setPodnik(Integer.decode(pozadavek.getParameter("podnik")));
   55.22 -	k.setNadpis(pozadavek.getParameter("nadpis"));
   55.23 -	k.setKomentar(pozadavek.getParameter("komentar"));
   55.24 -	k.setTyp(Komentar.TYP.valueOf(pozadavek.getParameter("typ")));
   55.25 -	boolean ulozit = Boolean.valueOf(pozadavek.getParameter("odeslat"));
   55.26 -
   55.27 -	String jsp;
   55.28 -
   55.29 -
   55.30 -	try {
   55.31 -	    /** Komentář odešleme do nižší vrstvy ke kontrole nebo rovnou k uložení */
   55.32 -	    k = ejb.komentuj(k, ulozit);
   55.33 -	    pozadavek.setAttribute("komentar", k);
   55.34 -
   55.35 -	    if (ulozit) {
   55.36 -		jsp = "/WEB-INF/casti/ajaxKomentare/odeslano.jsp";
   55.37 -	    } else {
   55.38 -		jsp = "/WEB-INF/casti/ajaxKomentare/nahled.jsp";
   55.39 -	    }
   55.40 -	} catch (Exception e) {
   55.41 -	    /** Objekty mezi servletem a JSP si můžeme předávat pomocí atributů požadavku */
   55.42 -	    pozadavek.setAttribute("chyba", e);
   55.43 -	    jsp = "/WEB-INF/casti/ajaxKomentare/chyba.jsp";
   55.44 +	@Override
   55.45 +	protected void doGet(HttpServletRequest pozadavek, HttpServletResponse odpoved) throws ServletException, IOException {
   55.46 +		doPost(pozadavek, odpoved);
   55.47  	}
   55.48  
   55.49 -	/** O vykreslení XHTML vyýstupu se už zase postará JSP */
   55.50 -	RequestDispatcher rd = getServletContext().getRequestDispatcher(jsp);
   55.51 -	rd.forward(pozadavek, odpoved);
   55.52 -    }
   55.53 +	@Override
   55.54 +	protected void doPost(HttpServletRequest pozadavek, HttpServletResponse odpoved) throws ServletException, IOException {
   55.55 +		/** Načteme HTTP parametry */
   55.56 +		Komentar k = new Komentar();
   55.57 +		k.setPodnik(Integer.decode(pozadavek.getParameter("podnik")));
   55.58 +		k.setNadpis(pozadavek.getParameter("nadpis"));
   55.59 +		k.setKomentar(pozadavek.getParameter("komentar"));
   55.60 +		k.setTyp(Komentar.TYP.valueOf(pozadavek.getParameter("typ")));
   55.61 +		boolean ulozit = Boolean.valueOf(pozadavek.getParameter("odeslat"));
   55.62 +
   55.63 +		String jsp;
   55.64 +
   55.65 +
   55.66 +		try {
   55.67 +			/** Komentář odešleme do nižší vrstvy ke kontrole nebo rovnou k uložení */
   55.68 +			k = ejb.komentuj(k, ulozit);
   55.69 +			pozadavek.setAttribute("komentar", k);
   55.70 +
   55.71 +			if (ulozit) {
   55.72 +				jsp = "/WEB-INF/casti/ajaxKomentare/odeslano.jsp";
   55.73 +			} else {
   55.74 +				jsp = "/WEB-INF/casti/ajaxKomentare/nahled.jsp";
   55.75 +			}
   55.76 +		} catch (Exception e) {
   55.77 +			/** Objekty mezi servletem a JSP si můžeme předávat pomocí atributů požadavku */
   55.78 +			pozadavek.setAttribute("chyba", e);
   55.79 +			jsp = "/WEB-INF/casti/ajaxKomentare/chyba.jsp";
   55.80 +		}
   55.81 +
   55.82 +		/** O vykreslení XHTML vyýstupu se už zase postará JSP */
   55.83 +		RequestDispatcher rd = getServletContext().getRequestDispatcher(jsp);
   55.84 +		rd.forward(pozadavek, odpoved);
   55.85 +	}
   55.86  }
    56.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Atom.java	Sat Jun 19 14:37:11 2010 +0200
    56.2 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Atom.java	Sun Jun 20 14:46:47 2010 +0200
    56.3 @@ -10,20 +10,20 @@
    56.4   */
    56.5  public class Atom {
    56.6  
    56.7 -    private HledacSluzby hledac = new HledacSluzby();
    56.8 -    private Collection<Podnik> podniky;
    56.9 +	private HledacSluzby hledac = new HledacSluzby();
   56.10 +	private Collection<Podnik> podniky;
   56.11  
   56.12 -    public Collection<Podnik> getPodniky() {
   56.13 -	if (podniky == null) {
   56.14 -	    podniky = hledac.getPodnikEJB().getPodniky();
   56.15 +	public Collection<Podnik> getPodniky() {
   56.16 +		if (podniky == null) {
   56.17 +			podniky = hledac.getPodnikEJB().getPodniky();
   56.18 +		}
   56.19 +		return podniky;
   56.20  	}
   56.21 -	return podniky;
   56.22 -    }
   56.23  
   56.24 -    public Date getDatumAktualizace() {
   56.25 -	for (Podnik p : getPodniky()) {
   56.26 -	    return p.getDatum();
   56.27 +	public Date getDatumAktualizace() {
   56.28 +		for (Podnik p : getPodniky()) {
   56.29 +			return p.getDatum();
   56.30 +		}
   56.31 +		return new Date();
   56.32  	}
   56.33 -	return new Date();
   56.34 -    }
   56.35  }
    57.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Detail.java	Sat Jun 19 14:37:11 2010 +0200
    57.2 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Detail.java	Sun Jun 20 14:46:47 2010 +0200
    57.3 @@ -10,40 +10,40 @@
    57.4   */
    57.5  public class Detail {
    57.6  
    57.7 -    private HledacSluzby hledac = new HledacSluzby();
    57.8 -    private int id;
    57.9 -    private Podnik podnik;
   57.10 +	private HledacSluzby hledac = new HledacSluzby();
   57.11 +	private int id;
   57.12 +	private Podnik podnik;
   57.13  
   57.14 -    /**
   57.15 -     * @return URL mapy – obrázku nebo null při chybě nebo absenci souřadnic
   57.16 -     */
   57.17 -    public String getMapa() {
   57.18 -	Podnik p = getPodnik();
   57.19 +	/**
   57.20 +	 * @return URL mapy – obrázku nebo null při chybě nebo absenci souřadnic
   57.21 +	 */
   57.22 +	public String getMapa() {
   57.23 +		Podnik p = getPodnik();
   57.24  
   57.25 -	if (p == null || p.getSirka() == null || p.getDelka() == null) {
   57.26 -	    return null;
   57.27 -	} else {
   57.28 -	    try {
   57.29 -		String souradnice = URLEncoder.encode(p.getSirka() + ", " + p.getDelka(), "UTF-8");
   57.30 -		return "http://maps.google.com/maps/api/staticmap?size=400x400&sensor=false&center=" + souradnice;
   57.31 -	    } catch (UnsupportedEncodingException e) {
   57.32 -		return null;
   57.33 -	    }
   57.34 +		if (p == null || p.getSirka() == null || p.getDelka() == null) {
   57.35 +			return null;
   57.36 +		} else {
   57.37 +			try {
   57.38 +				String souradnice = URLEncoder.encode(p.getSirka() + ", " + p.getDelka(), "UTF-8");
   57.39 +				return "http://maps.google.com/maps/api/staticmap?size=400x400&sensor=false&center=" + souradnice;
   57.40 +			} catch (UnsupportedEncodingException e) {
   57.41 +				return null;
   57.42 +			}
   57.43 +		}
   57.44  	}
   57.45 -    }
   57.46  
   57.47 -    public int getId() {
   57.48 -	return id;
   57.49 -    }
   57.50 +	public int getId() {
   57.51 +		return id;
   57.52 +	}
   57.53  
   57.54 -    public void setId(int id) {
   57.55 -	this.id = id;
   57.56 -    }
   57.57 +	public void setId(int id) {
   57.58 +		this.id = id;
   57.59 +	}
   57.60  
   57.61 -    public Podnik getPodnik() {
   57.62 -	if (podnik == null) {
   57.63 -	    podnik = hledac.getPodnikEJB().getPodnik(id);
   57.64 +	public Podnik getPodnik() {
   57.65 +		if (podnik == null) {
   57.66 +			podnik = hledac.getPodnikEJB().getPodnik(id);
   57.67 +		}
   57.68 +		return podnik;
   57.69  	}
   57.70 -	return podnik;
   57.71 -    }
   57.72  }
    58.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/FunkceEL.java	Sat Jun 19 14:37:11 2010 +0200
    58.2 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/FunkceEL.java	Sun Jun 20 14:46:47 2010 +0200
    58.3 @@ -4,8 +4,6 @@
    58.4  import cz.frantovo.nekurak.servlet.Fotky;
    58.5  import cz.frantovo.nekurak.util.Komentare;
    58.6  import cz.frantovo.nekurak.vyjimky.KomentarovaVyjimka;
    58.7 -import java.util.logging.Level;
    58.8 -import java.util.logging.Logger;
    58.9  
   58.10  /**
   58.11   * Knihovna funkcí použitelná v EL
   58.12 @@ -13,28 +11,28 @@
   58.13   */
   58.14  public class FunkceEL {
   58.15  
   58.16 -    /** Musí odpovídat cestě, kam je namapovaný servlet. */
   58.17 -    private static final String SERVLET = "fotky";
   58.18 +	/** Musí odpovídat cestě, kam je namapovaný servlet. */
   58.19 +	private static final String SERVLET = "fotky";
   58.20  
   58.21 -    public static String fotka(int id, boolean nahled) {
   58.22 -	String prostredek = nahled ? Fotky.PODADRESAR_NAHLED : Fotky.PODADRESAR_ORIGINAL;
   58.23 -	return SERVLET + "/" + prostredek + "/" + id + "." + Fotky.PRIPONA;
   58.24 -    }
   58.25 +	public static String fotka(int id, boolean nahled) {
   58.26 +		String prostredek = nahled ? Fotky.PODADRESAR_NAHLED : Fotky.PODADRESAR_ORIGINAL;
   58.27 +		return SERVLET + "/" + prostredek + "/" + id + "." + Fotky.PRIPONA;
   58.28 +	}
   58.29  
   58.30 -    public static boolean maFotky(Podnik p) {
   58.31 -	return !p.getFotky().isEmpty();
   58.32 -    }
   58.33 +	public static boolean maFotky(Podnik p) {
   58.34 +		return !p.getFotky().isEmpty();
   58.35 +	}
   58.36  
   58.37 -    /**
   58.38 -     * @param komentar komentář včetně kořenové značky, XML jako text
   58.39 -     * @return true, pokud vyhovuje XML schématu
   58.40 -     */
   58.41 -    public static boolean zkontrolujKomentar(String komentar) {
   58.42 -	try {
   58.43 -	    Komentare.zkontroluj(komentar);
   58.44 -	    return true;
   58.45 -	} catch (KomentarovaVyjimka ex) {
   58.46 -	    return false;
   58.47 +	/**
   58.48 +	 * @param komentar komentář včetně kořenové značky, XML jako text
   58.49 +	 * @return true, pokud vyhovuje XML schématu
   58.50 +	 */
   58.51 +	public static boolean zkontrolujKomentar(String komentar) {
   58.52 +		try {
   58.53 +			Komentare.zkontroluj(komentar);
   58.54 +			return true;
   58.55 +		} catch (KomentarovaVyjimka ex) {
   58.56 +			return false;
   58.57 +		}
   58.58  	}
   58.59 -    }
   58.60  }
    59.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Hlasovani.java	Sat Jun 19 14:37:11 2010 +0200
    59.2 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Hlasovani.java	Sun Jun 20 14:46:47 2010 +0200
    59.3 @@ -8,19 +8,19 @@
    59.4   */
    59.5  public class Hlasovani {
    59.6  
    59.7 -    private HledacSluzby hledac = new HledacSluzby();
    59.8 -    private int podnik;
    59.9 -    private VysledekHlasovani vysledek;
   59.10 +	private HledacSluzby hledac = new HledacSluzby();
   59.11 +	private int podnik;
   59.12 +	private VysledekHlasovani vysledek;
   59.13  
   59.14 -    public void setPodnik(int podnik) {
   59.15 -	this.podnik = podnik;
   59.16 -	vysledek = null;
   59.17 -    }
   59.18 +	public void setPodnik(int podnik) {
   59.19 +		this.podnik = podnik;
   59.20 +		vysledek = null;
   59.21 +	}
   59.22  
   59.23 -    public VysledekHlasovani getVysledek() {
   59.24 -	if (vysledek == null) {
   59.25 -	    vysledek = hledac.getPodnikEJB().getVysledekHlasovani(podnik);
   59.26 +	public VysledekHlasovani getVysledek() {
   59.27 +		if (vysledek == null) {
   59.28 +			vysledek = hledac.getPodnikEJB().getVysledekHlasovani(podnik);
   59.29 +		}
   59.30 +		return vysledek;
   59.31  	}
   59.32 -	return vysledek;
   59.33 -    }
   59.34  }
    60.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/OdeslatKomentar.java	Sat Jun 19 14:37:11 2010 +0200
    60.2 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/OdeslatKomentar.java	Sun Jun 20 14:46:47 2010 +0200
    60.3 @@ -12,20 +12,20 @@
    60.4   */
    60.5  public class OdeslatKomentar {
    60.6  
    60.7 -    private HledacSluzby hledac = new HledacSluzby();
    60.8 -    private static final Logger log = Logger.getLogger(OdeslatKomentar.class.getSimpleName());
    60.9 -    private boolean ok = false;
   60.10 +	private HledacSluzby hledac = new HledacSluzby();
   60.11 +	private static final Logger log = Logger.getLogger(OdeslatKomentar.class.getSimpleName());
   60.12 +	private boolean ok = false;
   60.13  
   60.14 -    public void setKomentar(Komentar k) throws TexyVyjimka {
   60.15 -	try {
   60.16 -	    hledac.getPodnikEJB().komentuj(k, true);
   60.17 -	    ok = true;
   60.18 -	} catch (KomentarovaVyjimka e) {
   60.19 -	    log.log(Level.WARNING, "chyba při vkládání komentáře", e);
   60.20 +	public void setKomentar(Komentar k) throws TexyVyjimka {
   60.21 +		try {
   60.22 +			hledac.getPodnikEJB().komentuj(k, true);
   60.23 +			ok = true;
   60.24 +		} catch (KomentarovaVyjimka e) {
   60.25 +			log.log(Level.WARNING, "chyba při vkládání komentáře", e);
   60.26 +		}
   60.27  	}
   60.28 -    }
   60.29  
   60.30 -    public boolean isOk() {
   60.31 -	return ok;
   60.32 -    }
   60.33 +	public boolean isOk() {
   60.34 +		return ok;
   60.35 +	}
   60.36  }
    61.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/PridatPodnik.java	Sat Jun 19 14:37:11 2010 +0200
    61.2 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/PridatPodnik.java	Sun Jun 20 14:46:47 2010 +0200
    61.3 @@ -4,20 +4,19 @@
    61.4  
    61.5  public class PridatPodnik {
    61.6  
    61.7 -    private HledacSluzby hledac = new HledacSluzby();
    61.8 +	private HledacSluzby hledac = new HledacSluzby();
    61.9 +	private Podnik podnik = new Podnik();
   61.10  
   61.11 -    private Podnik podnik = new Podnik();
   61.12 +	public Podnik getPodnik() {
   61.13 +		return podnik;
   61.14 +	}
   61.15  
   61.16 -    public Podnik getPodnik() {
   61.17 -	return podnik;
   61.18 -    }
   61.19 +	public void setPodnik(Podnik podnik) {
   61.20 +		this.podnik = podnik;
   61.21 +	}
   61.22  
   61.23 -    public void setPodnik(Podnik podnik) {
   61.24 -	this.podnik = podnik;
   61.25 -    }
   61.26 -
   61.27 -    public boolean getPridano() {
   61.28 -	hledac.getPodnikEJB().zalozPodnik(podnik);
   61.29 -	return true;
   61.30 -    }
   61.31 +	public boolean getPridano() {
   61.32 +		hledac.getPodnikEJB().zalozPodnik(podnik);
   61.33 +		return true;
   61.34 +	}
   61.35  }
    62.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/RegistraceUzivatele.java	Sat Jun 19 14:37:11 2010 +0200
    62.2 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/RegistraceUzivatele.java	Sun Jun 20 14:46:47 2010 +0200
    62.3 @@ -12,44 +12,44 @@
    62.4   */
    62.5  public class RegistraceUzivatele {
    62.6  
    62.7 -    private HledacSluzby hledac = new HledacSluzby();
    62.8 -    private static final Logger log = Logger.getLogger(RegistraceUzivatele.class.getSimpleName());
    62.9 -    private Map<String, UzivatelPredRegistraci> uzivatele = Collections.synchronizedMap(new HashMap<String, UzivatelPredRegistraci>());
   62.10 -    private String token;
   62.11 +	private HledacSluzby hledac = new HledacSluzby();
   62.12 +	private static final Logger log = Logger.getLogger(RegistraceUzivatele.class.getSimpleName());
   62.13 +	private Map<String, UzivatelPredRegistraci> uzivatele = Collections.synchronizedMap(new HashMap<String, UzivatelPredRegistraci>());
   62.14 +	private String token;
   62.15  
   62.16 -    /**
   62.17 -     * Přidáme uživatelský účet do mapy místo abychom použili prostou proměnnou.
   62.18 -     * Uživatel si totiž může otevřít víc registračních formulářů,
   62.19 -     * postupně je vyplnit a pak potvrdit jeden z nich.
   62.20 -     * Takto nedojde k přepsání údajů z předchozích vyplněných formulářů.
   62.21 -     */
   62.22 -    public void setUzivatel(UzivatelPredRegistraci uzivatel) {
   62.23 -	uzivatele.put(uzivatel.getToken(), uzivatel);
   62.24 -    }
   62.25 +	/**
   62.26 +	 * Přidáme uživatelský účet do mapy místo abychom použili prostou proměnnou.
   62.27 +	 * Uživatel si totiž může otevřít víc registračních formulářů,
   62.28 +	 * postupně je vyplnit a pak potvrdit jeden z nich.
   62.29 +	 * Takto nedojde k přepsání údajů z předchozích vyplněných formulářů.
   62.30 +	 */
   62.31 +	public void setUzivatel(UzivatelPredRegistraci uzivatel) {
   62.32 +		uzivatele.put(uzivatel.getToken(), uzivatel);
   62.33 +	}
   62.34  
   62.35 -    public void setToken(String token) {
   62.36 -	this.token = token;
   62.37 -    }
   62.38 +	public void setToken(String token) {
   62.39 +		this.token = token;
   62.40 +	}
   62.41  
   62.42 -    /**
   62.43 -     * @return null, pokud je vše v pořádku.
   62.44 -     * Jinak vrací chybovou hlášku (resp. klíč k lokalizaci)
   62.45 -     */
   62.46 -    public String getDokonciRegistraci() {
   62.47 +	/**
   62.48 +	 * @return null, pokud je vše v pořádku.
   62.49 +	 * Jinak vrací chybovou hlášku (resp. klíč k lokalizaci)
   62.50 +	 */
   62.51 +	public String getDokonciRegistraci() {
   62.52  
   62.53 -	UzivatelPredRegistraci u = uzivatele.get(token);
   62.54 +		UzivatelPredRegistraci u = uzivatele.get(token);
   62.55  
   62.56 -	if (u == null) {
   62.57 -	    /** Chybný token – uživatel se snaží dokončit neexistující registraci */
   62.58 -	    return "registrace.vyjimka.token";
   62.59 -	} else {
   62.60 -	    try {
   62.61 -		hledac.getUzivatelEJB().registrujUzivatele(u.getUzivatel());
   62.62 -	    } catch (Exception e) {
   62.63 -		log.log(Level.WARNING, "Chyba při registraci uživatele.", e);
   62.64 -		return "registrace.vyjimka";
   62.65 -	    }
   62.66 -	    return null;
   62.67 +		if (u == null) {
   62.68 +			/** Chybný token – uživatel se snaží dokončit neexistující registraci */
   62.69 +			return "registrace.vyjimka.token";
   62.70 +		} else {
   62.71 +			try {
   62.72 +				hledac.getUzivatelEJB().registrujUzivatele(u.getUzivatel());
   62.73 +			} catch (Exception e) {
   62.74 +				log.log(Level.WARNING, "Chyba při registraci uživatele.", e);
   62.75 +				return "registrace.vyjimka";
   62.76 +			}
   62.77 +			return null;
   62.78 +		}
   62.79  	}
   62.80 -    }
   62.81  }
    63.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Uvod.java	Sat Jun 19 14:37:11 2010 +0200
    63.2 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Uvod.java	Sun Jun 20 14:46:47 2010 +0200
    63.3 @@ -9,9 +9,9 @@
    63.4   */
    63.5  public class Uvod {
    63.6  
    63.7 -    private HledacSluzby hledac = new HledacSluzby();
    63.8 +	private HledacSluzby hledac = new HledacSluzby();
    63.9  
   63.10 -    public Collection<Podnik> getPodniky() {
   63.11 -	return hledac.getPodnikEJB().getPodniky();
   63.12 -    }
   63.13 +	public Collection<Podnik> getPodniky() {
   63.14 +		return hledac.getPodnikEJB().getPodniky();
   63.15 +	}
   63.16  }
    64.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/UzivatelPredRegistraci.java	Sat Jun 19 14:37:11 2010 +0200
    64.2 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/UzivatelPredRegistraci.java	Sun Jun 20 14:46:47 2010 +0200
    64.3 @@ -11,32 +11,32 @@
    64.4   */
    64.5  public class UzivatelPredRegistraci {
    64.6  
    64.7 -    private static final Logger log = Logger.getLogger(UzivatelPredRegistraci.class.getSimpleName());
    64.8 -    private PozadavekNaRegistraciUzivatele uzivatel;
    64.9 -    private final String token = generujToken();
   64.10 +	private static final Logger log = Logger.getLogger(UzivatelPredRegistraci.class.getSimpleName());
   64.11 +	private PozadavekNaRegistraciUzivatele uzivatel;
   64.12 +	private final String token = generujToken();
   64.13  
   64.14 -    public PozadavekNaRegistraciUzivatele getUzivatel() {
   64.15 -	return uzivatel;
   64.16 -    }
   64.17 +	public PozadavekNaRegistraciUzivatele getUzivatel() {
   64.18 +		return uzivatel;
   64.19 +	}
   64.20  
   64.21 -    public void setUzivatel(PozadavekNaRegistraciUzivatele uzivatel) {
   64.22 -	this.uzivatel = uzivatel;
   64.23 -    }
   64.24 +	public void setUzivatel(PozadavekNaRegistraciUzivatele uzivatel) {
   64.25 +		this.uzivatel = uzivatel;
   64.26 +	}
   64.27  
   64.28 -    public String getToken() {
   64.29 -	return token;
   64.30 -    }
   64.31 +	public String getToken() {
   64.32 +		return token;
   64.33 +	}
   64.34  
   64.35 -    /**
   64.36 -     * @return náhodný token
   64.37 -     */
   64.38 -    private static String generujToken() {
   64.39 -	try {
   64.40 -	    return Hash.hashuj(String.valueOf(Math.random()));
   64.41 -	} catch (Exception e) {
   64.42 -	    log.log(Level.SEVERE, "Chyba při generování háhodného tokenu", e);
   64.43 -	    /** Nemělo by nikdy nastat :-) */
   64.44 -	    return "nbusr123";
   64.45 +	/**
   64.46 +	 * @return náhodný token
   64.47 +	 */
   64.48 +	private static String generujToken() {
   64.49 +		try {
   64.50 +			return Hash.hashuj(String.valueOf(Math.random()));
   64.51 +		} catch (Exception e) {
   64.52 +			log.log(Level.SEVERE, "Chyba při generování háhodného tokenu", e);
   64.53 +			/** Nemělo by nikdy nastat :-) */
   64.54 +			return "nbusr123";
   64.55 +		}
   64.56  	}
   64.57 -    }
   64.58  }
    65.1 --- a/java/nekurak.net-web/web/WEB-INF/atom/atom.jsp	Sat Jun 19 14:37:11 2010 +0200
    65.2 +++ b/java/nekurak.net-web/web/WEB-INF/atom/atom.jsp	Sun Jun 20 14:46:47 2010 +0200
    65.3 @@ -1,47 +1,47 @@
    65.4  <?xml version="1.0" encoding="UTF-8"?>
    65.5  <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    65.6 -	  xmlns:c="http://java.sun.com/jsp/jstl/core"
    65.7 -	  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    65.8 -	  version="2.0">
    65.9 -    <jsp:directive.page contentType="application/atom+xml"/>
   65.10 +		  xmlns:c="http://java.sun.com/jsp/jstl/core"
   65.11 +		  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
   65.12 +		  version="2.0">
   65.13 +	<jsp:directive.page contentType="application/atom+xml"/>
   65.14  
   65.15 -    <!-- <lokalizace> -->
   65.16 -    <c:if test="${param.jazyk != null}">
   65.17 -	<fmt:setLocale value="${param.jazyk}" scope="session"/>
   65.18 -    </c:if>
   65.19 -    <fmt:setBundle basename="cz.frantovo.nekurak.preklady" scope="application"/>
   65.20 -    <!-- </lokalizace> -->
   65.21 +	<!-- <lokalizace> -->
   65.22 +	<c:if test="${param.jazyk != null}">
   65.23 +		<fmt:setLocale value="${param.jazyk}" scope="session"/>
   65.24 +	</c:if>
   65.25 +	<fmt:setBundle basename="cz.frantovo.nekurak.preklady" scope="application"/>
   65.26 +	<!-- </lokalizace> -->
   65.27  
   65.28 -    <jsp:useBean id="atom" class="cz.frantovo.nekurak.web.Atom" scope="request"/>
   65.29 +	<jsp:useBean id="atom" class="cz.frantovo.nekurak.web.Atom" scope="request"/>
   65.30  
   65.31 -    <feed xmlns="http://www.w3.org/2005/Atom">
   65.32 -	<title><fmt:message key="nazev"/></title>
   65.33 -	<subtitle><fmt:message key="popis"/></subtitle>
   65.34 -	<link href="http://nekurak.net/atom/" rel="self"/>
   65.35 -	<link href="http://nekurak.net/"/>
   65.36 -	<updated>
   65.37 -	    <fmt:formatDate value="${atom.datumAktualizace}" pattern="yyyy-MM-dd'T'HH:mm:ss'Z'"/>
   65.38 -	</updated>
   65.39 -	<author>
   65.40 -	    <name>František Kučera</name>
   65.41 -	    <email>franta_nechci_spam@frantovo.cz</email>
   65.42 -	</author>
   65.43 -	<id>urn:uuid:0663f9ab-e289-47b3-893f-5bafcf8dc110</id>
   65.44 +	<feed xmlns="http://www.w3.org/2005/Atom">
   65.45 +		<title><fmt:message key="nazev"/></title>
   65.46 +		<subtitle><fmt:message key="popis"/></subtitle>
   65.47 +		<link href="http://nekurak.net/atom/" rel="self"/>
   65.48 +		<link href="http://nekurak.net/"/>
   65.49 +		<updated>
   65.50 +			<fmt:formatDate value="${atom.datumAktualizace}" pattern="yyyy-MM-dd'T'HH:mm:ss'Z'"/>
   65.51 +		</updated>
   65.52 +		<author>
   65.53 +			<name>František Kučera</name>
   65.54 +			<email>franta_nechci_spam@frantovo.cz</email>
   65.55 +		</author>
   65.56 +		<id>urn:uuid:0663f9ab-e289-47b3-893f-5bafcf8dc110</id>
   65.57  
   65.58  
   65.59 -	<c:forEach var="podnik" items="${atom.podniky}">
   65.60 -	    <entry>
   65.61 -		<title><c:out value="${podnik.nazev}"/></title>
   65.62 -		<link href="http://nekurak.net/?akce=detail&amp;amp;podnik=${podnik.id}"/>
   65.63 -		<id>urn:NekurakNET:podnik:${podnik.id}</id>
   65.64 -		<updated>
   65.65 -		    <fmt:formatDate value="${podnik.datum}" pattern="yyyy-MM-dd'T'HH:mm:ss'Z'"/>
   65.66 -		</updated>
   65.67 -		<summary><c:out value="${podnik.popis}"/></summary>
   65.68 -	    </entry>
   65.69 -	</c:forEach>
   65.70 +		<c:forEach var="podnik" items="${atom.podniky}">
   65.71 +			<entry>
   65.72 +				<title><c:out value="${podnik.nazev}"/></title>
   65.73 +				<link href="http://nekurak.net/?akce=detail&amp;amp;podnik=${podnik.id}"/>
   65.74 +				<id>urn:NekurakNET:podnik:${podnik.id}</id>
   65.75 +				<updated>
   65.76 +					<fmt:formatDate value="${podnik.datum}" pattern="yyyy-MM-dd'T'HH:mm:ss'Z'"/>
   65.77 +				</updated>
   65.78 +				<summary><c:out value="${podnik.popis}"/></summary>
   65.79 +			</entry>
   65.80 +		</c:forEach>
   65.81  
   65.82  
   65.83 -    </feed>
   65.84 +	</feed>
   65.85  
   65.86  </jsp:root>
    66.1 --- a/java/nekurak.net-web/web/WEB-INF/casti/ajaxKomentare/chyba.jsp	Sat Jun 19 14:37:11 2010 +0200
    66.2 +++ b/java/nekurak.net-web/web/WEB-INF/casti/ajaxKomentare/chyba.jsp	Sun Jun 20 14:46:47 2010 +0200
    66.3 @@ -1,21 +1,21 @@
    66.4  <?xml version="1.0" encoding="UTF-8"?>
    66.5  <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    66.6 -	  xmlns:c="http://java.sun.com/jsp/jstl/core"
    66.7 -	  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    66.8 -	  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
    66.9 -	  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   66.10 -	  version="2.0">
   66.11 +		  xmlns:c="http://java.sun.com/jsp/jstl/core"
   66.12 +		  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
   66.13 +		  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
   66.14 +		  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   66.15 +		  version="2.0">
   66.16  
   66.17 -    <div>
   66.18 -	<c:choose>
   66.19 -	    <c:when test="${chyba.class == 'class javax.ejb.EJBAccessException'}">
   66.20 -		<p class="chybovaHlaska"><fmt:message key="komentare.nahledChybaPrihlaseni"/></p>
   66.21 -	    </c:when>
   66.22 -	    <c:otherwise>
   66.23 -		<p class="chybovaHlaska"><fmt:message key="komentare.nahledChybaFormatu"/></p>
   66.24 -		<p class="informacniHlaska"><fmt:message key="komentar.typ.xhtml.povoleneZnacky"/></p>
   66.25 -	    </c:otherwise>
   66.26 -	</c:choose>
   66.27 -    </div>
   66.28 +	<div>
   66.29 +		<c:choose>
   66.30 +			<c:when test="${chyba.class == 'class javax.ejb.EJBAccessException'}">
   66.31 +				<p class="chybovaHlaska"><fmt:message key="komentare.nahledChybaPrihlaseni"/></p>
   66.32 +			</c:when>
   66.33 +			<c:otherwise>
   66.34 +				<p class="chybovaHlaska"><fmt:message key="komentare.nahledChybaFormatu"/></p>
   66.35 +				<p class="informacniHlaska"><fmt:message key="komentar.typ.xhtml.povoleneZnacky"/></p>
   66.36 +			</c:otherwise>
   66.37 +		</c:choose>
   66.38 +	</div>
   66.39  
   66.40  </jsp:root>
   66.41 \ No newline at end of file
    67.1 --- a/java/nekurak.net-web/web/WEB-INF/casti/ajaxKomentare/nahled.jsp	Sat Jun 19 14:37:11 2010 +0200
    67.2 +++ b/java/nekurak.net-web/web/WEB-INF/casti/ajaxKomentare/nahled.jsp	Sun Jun 20 14:46:47 2010 +0200
    67.3 @@ -1,15 +1,15 @@
    67.4  <?xml version="1.0" encoding="UTF-8"?>
    67.5  <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    67.6 -	  xmlns:c="http://java.sun.com/jsp/jstl/core"
    67.7 -	  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    67.8 -	  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
    67.9 -	  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   67.10 -	  version="2.0">
   67.11 +		  xmlns:c="http://java.sun.com/jsp/jstl/core"
   67.12 +		  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
   67.13 +		  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
   67.14 +		  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   67.15 +		  version="2.0">
   67.16  
   67.17 -    <div>
   67.18 -	<p class="informacniHlaska"><fmt:message key="komentare.nahledNadpis"/>:</p>
   67.19 -	<!-- XHTML je už zkontrolované: -->
   67.20 -	${requestScope['komentar'].komentar}
   67.21 -    </div>
   67.22 +	<div>
   67.23 +		<p class="informacniHlaska"><fmt:message key="komentare.nahledNadpis"/>:</p>
   67.24 +		<!-- XHTML je už zkontrolované: -->
   67.25 +		${requestScope['komentar'].komentar}
   67.26 +	</div>
   67.27  
   67.28  </jsp:root>
   67.29 \ No newline at end of file
    68.1 --- a/java/nekurak.net-web/web/WEB-INF/casti/ajaxKomentare/odeslano.jsp	Sat Jun 19 14:37:11 2010 +0200
    68.2 +++ b/java/nekurak.net-web/web/WEB-INF/casti/ajaxKomentare/odeslano.jsp	Sun Jun 20 14:46:47 2010 +0200
    68.3 @@ -1,18 +1,18 @@
    68.4  <?xml version="1.0" encoding="UTF-8"?>
    68.5  <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    68.6 -	  xmlns:c="http://java.sun.com/jsp/jstl/core"
    68.7 -	  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    68.8 -	  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
    68.9 -	  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   68.10 -	  version="2.0">
   68.11 +		  xmlns:c="http://java.sun.com/jsp/jstl/core"
   68.12 +		  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
   68.13 +		  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
   68.14 +		  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   68.15 +		  version="2.0">
   68.16  
   68.17 -    <div>
   68.18 -	<p class="informacniHlaska"><fmt:message key="komentare.nahledOdeslano"/>:</p>
   68.19 -	<!-- XHTML je už zkontrolované: -->
   68.20 -	${requestScope['komentar'].komentar}
   68.21 -	<script type="text/javascript">
   68.22 -	    $("#formularKomentuj form").get(0).reset();
   68.23 -	</script>
   68.24 -    </div>
   68.25 +	<div>
   68.26 +		<p class="informacniHlaska"><fmt:message key="komentare.nahledOdeslano"/>:</p>
   68.27 +		<!-- XHTML je už zkontrolované: -->
   68.28 +		${requestScope['komentar'].komentar}
   68.29 +		<script type="text/javascript">
   68.30 +			$("#formularKomentuj form").get(0).reset();
   68.31 +		</script>
   68.32 +	</div>
   68.33  
   68.34  </jsp:root>
   68.35 \ No newline at end of file
    69.1 --- a/java/nekurak.net-web/web/WEB-INF/casti/detail.jsp	Sat Jun 19 14:37:11 2010 +0200
    69.2 +++ b/java/nekurak.net-web/web/WEB-INF/casti/detail.jsp	Sun Jun 20 14:46:47 2010 +0200
    69.3 @@ -1,41 +1,41 @@
    69.4  <?xml version="1.0" encoding="UTF-8"?>
    69.5  <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    69.6 -	  xmlns:c="http://java.sun.com/jsp/jstl/core"
    69.7 -	  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    69.8 -	  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
    69.9 -	  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   69.10 -	  version="2.0">
   69.11 +		  xmlns:c="http://java.sun.com/jsp/jstl/core"
   69.12 +		  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
   69.13 +		  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
   69.14 +		  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   69.15 +		  version="2.0">
   69.16  
   69.17 -    <jsp:useBean id="detail" class="cz.frantovo.nekurak.web.Detail" scope="request"/>
   69.18 +	<jsp:useBean id="detail" class="cz.frantovo.nekurak.web.Detail" scope="request"/>
   69.19  
   69.20 -    <jsp:setProperty name="detail" property="id" value="${param.podnik}"/>
   69.21 +	<jsp:setProperty name="detail" property="id" value="${param.podnik}"/>
   69.22  
   69.23 -    <nk:stranka titulek="${fn:escapeXml(detail.podnik.nazev)}">
   69.24 +	<nk:stranka titulek="${fn:escapeXml(detail.podnik.nazev)}">
   69.25  
   69.26 -	<h1><c:out value="${detail.podnik.nazev}" /></h1>
   69.27 +		<h1><c:out value="${detail.podnik.nazev}" /></h1>
   69.28  
   69.29  
   69.30 -	<c:choose>
   69.31 -	    <c:when test="${detail.mapa == null}">
   69.32 -		<p>
   69.33 -		    Souřadnice tohoto podniku nejsou známé.<br/>
   69.34 -		    (možná ještě nebyl proveden jejich výpočet)
   69.35 -		</p>
   69.36 -	    </c:when>
   69.37 -	    <c:otherwise>
   69.38 -		<p>
   69.39 -		    Zeměpisná šířka: ${detail.podnik.sirka}<br/>
   69.40 -		    Zeměpisná délka: ${detail.podnik.delka}<br/>
   69.41 -		    Loc: ${detail.podnik.sirka}, ${detail.podnik.delka}<br/>
   69.42 -		</p>
   69.43 -		<p>
   69.44 -		    <img alt="mapa" src="${fn:escapeXml(detail.mapa)}"/>
   69.45 -		</p>
   69.46 -	    </c:otherwise>
   69.47 -	</c:choose>
   69.48 +		<c:choose>
   69.49 +			<c:when test="${detail.mapa == null}">
   69.50 +				<p>
   69.51 +					Souřadnice tohoto podniku nejsou známé.<br/>
   69.52 +					(možná ještě nebyl proveden jejich výpočet)
   69.53 +				</p>
   69.54 +			</c:when>
   69.55 +			<c:otherwise>
   69.56 +				<p>
   69.57 +					Zeměpisná šířka: ${detail.podnik.sirka}<br/>
   69.58 +					Zeměpisná délka: ${detail.podnik.delka}<br/>
   69.59 +					Loc: ${detail.podnik.sirka}, ${detail.podnik.delka}<br/>
   69.60 +				</p>
   69.61 +				<p>
   69.62 +					<img alt="mapa" src="${fn:escapeXml(detail.mapa)}"/>
   69.63 +				</p>
   69.64 +			</c:otherwise>
   69.65 +		</c:choose>
   69.66  
   69.67 -	<nk:komentareVypis podnik="${detail.podnik}"/>
   69.68 +		<nk:komentareVypis podnik="${detail.podnik}"/>
   69.69  
   69.70 -    </nk:stranka>
   69.71 +	</nk:stranka>
   69.72  
   69.73  </jsp:root>
    70.1 --- a/java/nekurak.net-web/web/WEB-INF/casti/odeslatKomentar.jsp	Sat Jun 19 14:37:11 2010 +0200
    70.2 +++ b/java/nekurak.net-web/web/WEB-INF/casti/odeslatKomentar.jsp	Sun Jun 20 14:46:47 2010 +0200
    70.3 @@ -1,43 +1,44 @@
    70.4  <?xml version="1.0" encoding="UTF-8"?>
    70.5  <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    70.6 -	  xmlns:c="http://java.sun.com/jsp/jstl/core"
    70.7 -	  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    70.8 -	  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
    70.9 -	  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   70.10 -	  version="2.0">
   70.11 +		  xmlns:c="http://java.sun.com/jsp/jstl/core"
   70.12 +		  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
   70.13 +		  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
   70.14 +		  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   70.15 +		  version="2.0">
   70.16  
   70.17 -    <jsp:useBean id="odeslatKomentar" class="cz.frantovo.nekurak.web.OdeslatKomentar" scope="request"/>
   70.18 -    <jsp:useBean id="komentar" class="cz.frantovo.nekurak.dto.Komentar" scope="request"/>
   70.19 +	<jsp:useBean id="odeslatKomentar" class="cz.frantovo.nekurak.web.OdeslatKomentar" scope="request"/>
   70.20 +	<jsp:useBean id="komentar" class="cz.frantovo.nekurak.dto.Komentar" scope="request"/>
   70.21  
   70.22 +	<!--
   70.23 +		Přijímá komentáře odeslané jako klasický HTTP formulář.
   70.24 +		AJAXové komentáře se zpracovávají servletem.
   70.25 +		TODO: sloučit do servletu
   70.26 +	-->
   70.27  
   70.28 -    <fmt:message key="komentar.odeslat.nadpis" var="titulekStranky"/>
   70.29 -    <nk:stranka titulek="${titulekStranky}">
   70.30 +	<fmt:message key="komentar.odeslat.nadpis" var="titulekStranky"/>
   70.31 +	<nk:stranka titulek="${titulekStranky}">
   70.32  
   70.33 -	<h1><c:out value="${titulekStranky}"/></h1>
   70.34 +		<h1><c:out value="${titulekStranky}"/></h1>
   70.35  
   70.36 -	<jsp:setProperty name="komentar" property="podnik" value="${param.podnik}"/>
   70.37 -	<jsp:setProperty name="komentar" property="nadpis" value="${param.nadpis}"/>
   70.38 -	<jsp:setProperty name="komentar" property="komentar" value="${param.komentar}"/>
   70.39 -	<jsp:setProperty name="komentar" property="typ" value="${param.typ}"/>
   70.40 -	<jsp:setProperty name="odeslatKomentar" property="komentar" value="${komentar}"/>
   70.41 +		<jsp:setProperty name="komentar" property="podnik" value="${param.podnik}"/>
   70.42 +		<jsp:setProperty name="komentar" property="nadpis" value="${param.nadpis}"/>
   70.43 +		<jsp:setProperty name="komentar" property="komentar" value="${param.komentar}"/>
   70.44 +		<jsp:setProperty name="komentar" property="typ" value="${param.typ}"/>
   70.45 +		<jsp:setProperty name="odeslatKomentar" property="komentar" value="${komentar}"/>
   70.46  
   70.47 -	<c:choose>
   70.48 -	    <c:when test="${odeslatKomentar.ok}">
   70.49 -		<p class="informacniHlaska">
   70.50 -		    <fmt:message key="komentar.odeslat.ok"/>,
   70.51 -		    <a href="?akce=detail&amp;amp;podnik=${komentar.podnik}">
   70.52 -			<fmt:message key="komentar.odeslat.pokracujte"/>
   70.53 -		    </a>.
   70.54 -		</p>
   70.55 -	    </c:when>
   70.56 -	    <c:otherwise>
   70.57 -		<p class="chybovaHlaska"><fmt:message key="komentar.odeslat.chyba"/></p>
   70.58 -	    </c:otherwise>
   70.59 -	</c:choose>
   70.60 +		<c:choose>
   70.61 +			<c:when test="${odeslatKomentar.ok}">
   70.62 +				<p class="informacniHlaska">
   70.63 +					<fmt:message key="komentar.odeslat.ok"/>,
   70.64 +					<a href="?akce=detail&amp;amp;podnik=${komentar.podnik}">
   70.65 +						<fmt:message key="komentar.odeslat.pokracujte"/>
   70.66 +					</a>.
   70.67 +				</p>
   70.68 +			</c:when>
   70.69 +			<c:otherwise>
   70.70 +				<p class="chybovaHlaska"><fmt:message key="komentar.odeslat.chyba"/></p>
   70.71 +			</c:otherwise>
   70.72 +		</c:choose>
   70.73  
   70.74 -
   70.75 -
   70.76 -
   70.77 -    </nk:stranka>
   70.78 -
   70.79 +	</nk:stranka>
   70.80  </jsp:root>
    71.1 --- a/java/nekurak.net-web/web/WEB-INF/casti/pridatPodnik.jsp	Sat Jun 19 14:37:11 2010 +0200
    71.2 +++ b/java/nekurak.net-web/web/WEB-INF/casti/pridatPodnik.jsp	Sun Jun 20 14:46:47 2010 +0200
    71.3 @@ -1,52 +1,52 @@
    71.4  <?xml version="1.0" encoding="UTF-8"?>
    71.5  <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    71.6 -	  xmlns:c="http://java.sun.com/jsp/jstl/core"
    71.7 -	  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    71.8 -	  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
    71.9 -	  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   71.10 -	  version="2.0">
   71.11 +		  xmlns:c="http://java.sun.com/jsp/jstl/core"
   71.12 +		  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
   71.13 +		  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
   71.14 +		  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   71.15 +		  version="2.0">
   71.16  
   71.17 -    <jsp:useBean id="podnik" class="cz.frantovo.nekurak.dto.Podnik" scope="request"/>
   71.18 -    <jsp:useBean id="pridatPodnik" class="cz.frantovo.nekurak.web.PridatPodnik" scope="request"/>
   71.19 +	<jsp:useBean id="podnik" class="cz.frantovo.nekurak.dto.Podnik" scope="request"/>
   71.20 +	<jsp:useBean id="pridatPodnik" class="cz.frantovo.nekurak.web.PridatPodnik" scope="request"/>
   71.21  
   71.22 -    <fmt:message key="pridatPodnik.nadpis" var="titulekStranky"/>
   71.23 -    <nk:stranka titulek="${titulekStranky}">
   71.24 +	<fmt:message key="pridatPodnik.nadpis" var="titulekStranky"/>
   71.25 +	<nk:stranka titulek="${titulekStranky}">
   71.26  
   71.27 -	<h1><c:out value="${titulekStranky}"/></h1>
   71.28 +		<h1><c:out value="${titulekStranky}"/></h1>
   71.29  
   71.30 -	<c:choose>
   71.31 -	    <c:when test="${param.akcePridat == 'pridej'}">
   71.32 -		<c:catch var="pridatPodnikChyba">
   71.33 -		    <jsp:setProperty name="podnik" property="*"/>
   71.34 -		    <jsp:setProperty name="pridatPodnik" property="podnik" value="${podnik}"/>
   71.35 -		    <c:set var="pridatPodnikOK" value="${pridatPodnik.pridano}"/>
   71.36 -		</c:catch>
   71.37  		<c:choose>
   71.38 -		    <c:when test="${pridatPodnikChyba == null}">
   71.39 -			<p><fmt:message key="pridatPodnik.bylPridan"/></p>
   71.40 -		    </c:when>
   71.41 -		    <c:otherwise>
   71.42 -			<p class="chybovaHlaska"><fmt:message key="pridatPodnik.nebylPridan"/></p>
   71.43 -		    </c:otherwise>
   71.44 +			<c:when test="${param.akcePridat == 'pridej'}">
   71.45 +				<c:catch var="pridatPodnikChyba">
   71.46 +					<jsp:setProperty name="podnik" property="*"/>
   71.47 +					<jsp:setProperty name="pridatPodnik" property="podnik" value="${podnik}"/>
   71.48 +					<c:set var="pridatPodnikOK" value="${pridatPodnik.pridano}"/>
   71.49 +				</c:catch>
   71.50 +				<c:choose>
   71.51 +					<c:when test="${pridatPodnikChyba == null}">
   71.52 +						<p><fmt:message key="pridatPodnik.bylPridan"/></p>
   71.53 +					</c:when>
   71.54 +					<c:otherwise>
   71.55 +						<p class="chybovaHlaska"><fmt:message key="pridatPodnik.nebylPridan"/></p>
   71.56 +					</c:otherwise>
   71.57 +				</c:choose>
   71.58 +			</c:when>
   71.59 +			<c:otherwise>
   71.60 +				<form method="post" action="?akce=pridatPodnik&amp;amp;akcePridat=pridej">
   71.61 +					<fieldset>
   71.62 +						<label><fmt:message key="dto.podnik.nazev"/>: <input type="text" name="nazev" maxlength="255"/></label><br/>
   71.63 +						<label><fmt:message key="dto.podnik.popis"/>: <input type="text" name="popis" maxlength="255"/></label><br/>
   71.64 +							<fmt:message key="dto.podnik.url.tip" var="urlTip"/>
   71.65 +						<label title="${urlTip}"><fmt:message key="dto.podnik.url"/>: <input type="text" name="url" maxlength="255"/></label><br/>
   71.66 +						<label><fmt:message key="dto.podnik.ulice"/>: <input type="text" name="ulice" maxlength="64"/></label><br/>
   71.67 +							<fmt:message key="dto.podnik.cisloPopisne.tip" var="cisloPopisneTip"/>
   71.68 +						<label title="${cisloPopisneTip}"><fmt:message key="dto.podnik.cisloPopisne"/>: <input type="text" name="cisloPopisne" maxlength="5"/></label><br/>
   71.69 +						<label><fmt:message key="dto.podnik.mesto"/>: <input type="text" name="mesto" maxlength="64"/></label><br/>
   71.70 +						<button value="submit"><fmt:message key="pridatPodnik.tlacitko"/></button>
   71.71 +					</fieldset>
   71.72 +				</form>
   71.73 +			</c:otherwise>
   71.74  		</c:choose>
   71.75 -	    </c:when>
   71.76 -	    <c:otherwise>
   71.77 -		<form method="post" action="?akce=pridatPodnik&amp;amp;akcePridat=pridej">
   71.78 -		    <fieldset>
   71.79 -			<label><fmt:message key="dto.podnik.nazev"/>: <input type="text" name="nazev" maxlength="255"/></label><br/>
   71.80 -			<label><fmt:message key="dto.podnik.popis"/>: <input type="text" name="popis" maxlength="255"/></label><br/>
   71.81 -			    <fmt:message key="dto.podnik.url.tip" var="urlTip"/>
   71.82 -			<label title="${urlTip}"><fmt:message key="dto.podnik.url"/>: <input type="text" name="url" maxlength="255"/></label><br/>
   71.83 -			<label><fmt:message key="dto.podnik.ulice"/>: <input type="text" name="ulice" maxlength="64"/></label><br/>
   71.84 -			    <fmt:message key="dto.podnik.cisloPopisne.tip" var="cisloPopisneTip"/>
   71.85 -			<label title="${cisloPopisneTip}"><fmt:message key="dto.podnik.cisloPopisne"/>: <input type="text" name="cisloPopisne" maxlength="5"/></label><br/>
   71.86 -			<label><fmt:message key="dto.podnik.mesto"/>: <input type="text" name="mesto" maxlength="64"/></label><br/>
   71.87 -			<button value="submit"><fmt:message key="pridatPodnik.tlacitko"/></button>
   71.88 -		    </fieldset>
   71.89 -		</form>
   71.90 -	    </c:otherwise>
   71.91 -	</c:choose>
   71.92  
   71.93 -    </nk:stranka>
   71.94 +	</nk:stranka>
   71.95  
   71.96  </jsp:root>
    72.1 --- a/java/nekurak.net-web/web/WEB-INF/casti/prihlaseni.jsp	Sat Jun 19 14:37:11 2010 +0200
    72.2 +++ b/java/nekurak.net-web/web/WEB-INF/casti/prihlaseni.jsp	Sun Jun 20 14:46:47 2010 +0200
    72.3 @@ -1,38 +1,38 @@
    72.4  <?xml version="1.0" encoding="UTF-8"?>
    72.5  <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    72.6 -	  xmlns:c="http://java.sun.com/jsp/jstl/core"
    72.7 -	  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    72.8 -	  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
    72.9 -	  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   72.10 -	  version="2.0">
   72.11 +		  xmlns:c="http://java.sun.com/jsp/jstl/core"
   72.12 +		  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
   72.13 +		  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
   72.14 +		  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   72.15 +		  version="2.0">
   72.16  
   72.17 -    <c:choose>
   72.18 -	<c:when test="${param.odhlasit == 'ano'}">
   72.19 -	    <fmt:message key="prihlaseni.nadpis.odhlaseni" var="titulekStranky"/>
   72.20 -	    <nk:stranka titulek="${titulekStranky}">
   72.21 -		<p><fmt:message key="prihlaseni.odhlaseniUspesne"/></p>
   72.22 -	    </nk:stranka>
   72.23 -	</c:when>
   72.24 -	<c:otherwise>
   72.25 -	    <fmt:message key="prihlaseni.nadpis" var="titulekStranky"/>
   72.26 -	    <nk:stranka titulek="${titulekStranky}">
   72.27 -		<h1><c:out value="${titulekStranky}"/></h1>
   72.28 -		<p><fmt:message key="prihlaseni.zadejte"/></p>
   72.29 +	<c:choose>
   72.30 +		<c:when test="${param.odhlasit == 'ano'}">
   72.31 +			<fmt:message key="prihlaseni.nadpis.odhlaseni" var="titulekStranky"/>
   72.32 +			<nk:stranka titulek="${titulekStranky}">
   72.33 +				<p><fmt:message key="prihlaseni.odhlaseniUspesne"/></p>
   72.34 +			</nk:stranka>
   72.35 +		</c:when>
   72.36 +		<c:otherwise>
   72.37 +			<fmt:message key="prihlaseni.nadpis" var="titulekStranky"/>
   72.38 +			<nk:stranka titulek="${titulekStranky}">
   72.39 +				<h1><c:out value="${titulekStranky}"/></h1>
   72.40 +				<p><fmt:message key="prihlaseni.zadejte"/></p>
   72.41  
   72.42 -		<c:if test="${param.chyba == 'ano'}">
   72.43 -		    <p class="chybovaHlaska"><fmt:message key="prihlaseni.chyba"/></p>
   72.44 -		</c:if>
   72.45 +				<c:if test="${param.chyba == 'ano'}">
   72.46 +					<p class="chybovaHlaska"><fmt:message key="prihlaseni.chyba"/></p>
   72.47 +				</c:if>
   72.48  
   72.49 -		<form method="post" action="j_security_check">
   72.50 -		    <fieldset>
   72.51 -			<label><fmt:message key="prihlaseni.jmeno"/>: <input type="text" name="j_username"/></label><br/>
   72.52 -			<label><fmt:message key="prihlaseni.heslo"/>: <input type="password" name="j_password"/></label><br/>
   72.53 -			<button value="submit"><fmt:message key="prihlaseni.tlacitko"/></button>
   72.54 -		    </fieldset>
   72.55 -		</form>
   72.56 -	    </nk:stranka>
   72.57 -	</c:otherwise>
   72.58 -    </c:choose>
   72.59 +				<form method="post" action="j_security_check">
   72.60 +					<fieldset>
   72.61 +						<label><fmt:message key="prihlaseni.jmeno"/>: <input type="text" name="j_username"/></label><br/>
   72.62 +						<label><fmt:message key="prihlaseni.heslo"/>: <input type="password" name="j_password"/></label><br/>
   72.63 +						<button value="submit"><fmt:message key="prihlaseni.tlacitko"/></button>
   72.64 +					</fieldset>
   72.65 +				</form>
   72.66 +			</nk:stranka>
   72.67 +		</c:otherwise>
   72.68 +	</c:choose>
   72.69  
   72.70  
   72.71  </jsp:root>
    73.1 --- a/java/nekurak.net-web/web/WEB-INF/casti/registrovatUzivatele.jsp	Sat Jun 19 14:37:11 2010 +0200
    73.2 +++ b/java/nekurak.net-web/web/WEB-INF/casti/registrovatUzivatele.jsp	Sun Jun 20 14:46:47 2010 +0200
    73.3 @@ -1,97 +1,97 @@
    73.4  <?xml version="1.0" encoding="UTF-8"?>
    73.5  <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    73.6 -	  xmlns:c="http://java.sun.com/jsp/jstl/core"
    73.7 -	  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    73.8 -	  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
    73.9 -	  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   73.10 -	  version="2.0">
   73.11 +		  xmlns:c="http://java.sun.com/jsp/jstl/core"
   73.12 +		  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
   73.13 +		  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
   73.14 +		  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   73.15 +		  version="2.0">
   73.16  
   73.17 -    <jsp:useBean id="uzivatel" class="cz.frantovo.nekurak.dto.PozadavekNaRegistraciUzivatele" scope="request"/>
   73.18 -    <jsp:useBean id="uzivatelPredRegistraci" class="cz.frantovo.nekurak.web.UzivatelPredRegistraci" scope="request"/>
   73.19 -    <jsp:useBean id="registraceUzivatele" class="cz.frantovo.nekurak.web.RegistraceUzivatele" scope="session"/>
   73.20 +	<jsp:useBean id="uzivatel" class="cz.frantovo.nekurak.dto.PozadavekNaRegistraciUzivatele" scope="request"/>
   73.21 +	<jsp:useBean id="uzivatelPredRegistraci" class="cz.frantovo.nekurak.web.UzivatelPredRegistraci" scope="request"/>
   73.22 +	<jsp:useBean id="registraceUzivatele" class="cz.frantovo.nekurak.web.RegistraceUzivatele" scope="session"/>
   73.23  
   73.24 -    <fmt:message key="registrace.nadpis" var="titulekStranky"/>
   73.25 -    <nk:stranka titulek="${titulekStranky}">
   73.26 +	<fmt:message key="registrace.nadpis" var="titulekStranky"/>
   73.27 +	<nk:stranka titulek="${titulekStranky}">
   73.28  
   73.29 -	<h1><c:out value="${titulekStranky}"/></h1>
   73.30 +		<h1><c:out value="${titulekStranky}"/></h1>
   73.31  
   73.32 -	<!--
   73.33 -	Registrace probíhá ve třech krocích:
   73.34 -	1) uživatel vyplňí formulář
   73.35 -	2) zobrazíme mu vyplněné údaje a on si je zkontroluje
   73.36 -	3) potvrdí registraci
   73.37 -	-->
   73.38 -
   73.39 -	<c:choose>
   73.40 -	    <c:when test="${param.akceRegistrace == 'kontrola'}">
   73.41 -		<!-- Vypíšeme uživateli údaje, které zadal do formuláře, aby si je mohl zkontrolovat. -->
   73.42 -		<c:choose>
   73.43 -		    <c:when test="${param.heslo == param.heslo_kontrola}">
   73.44 -			<jsp:setProperty name="uzivatel" property="*"/>
   73.45 -			<jsp:setProperty name="uzivatel" property="jazyk" value="${sessionScope['javax.servlet.jsp.jstl.fmt.locale.session']}"/>
   73.46 -			<jsp:setProperty name="uzivatelPredRegistraci" property="uzivatel" value="${uzivatel}"/>
   73.47 -			<jsp:setProperty name="registraceUzivatele" property="uzivatel" value="${uzivatelPredRegistraci}"/>
   73.48 -
   73.49 -			<p><fmt:message key="registrace.kontrola"/></p>
   73.50 -
   73.51 -			<p class="registraceKontrolaUdaju">
   73.52 -			    <fmt:message key="dto.uzivatel.prezdivka"/>: <c:out value="${uzivatel.prezdivka}"/><br/>
   73.53 -			    <fmt:message key="dto.uzivatel.jmeno"/>: <c:out value="${uzivatel.jmeno}"/><br/>
   73.54 -			    <fmt:message key="dto.uzivatel.prijmeni"/>: <c:out value="${uzivatel.prijmeni}"/><br/>
   73.55 -			    <fmt:message key="dto.uzivatel.email"/>: <c:out value="${uzivatel.email}"/><br/>
   73.56 -			</p>
   73.57 -
   73.58 -			<p>
   73.59 -			    <a href="?akce=registrovatUzivatele&amp;amp;akceRegistrace=dokonceni&amp;amp;token=${fn:escapeXml(uzivatelPredRegistraci.token)}">
   73.60 -				<fmt:message key="registrace.potvrdit"/>
   73.61 -			    </a>
   73.62 -			</p>
   73.63 -		    </c:when>
   73.64 -		    <c:otherwise>
   73.65 -			<p class="chybovaHlaska"><fmt:message key="registrace.vyjimka.heslaSeNeshoduji"/></p>
   73.66 -		    </c:otherwise>
   73.67 -		</c:choose>
   73.68 -	    </c:when>
   73.69 -	    <c:when test="${param.akceRegistrace == 'dokonceni'}">
   73.70 -		<!-- Uživatel si zkontroloval údaje a chce dokončit svoji registraci. -->
   73.71 -		<jsp:setProperty name="registraceUzivatele" property="token" value="${param.token}"/>
   73.72 -
   73.73 -		<c:set var="chybaRegistrace" value="${registraceUzivatele.dokonciRegistraci}"/>
   73.74 +		<!--
   73.75 +			Registrace probíhá ve třech krocích:
   73.76 +			1) uživatel vyplňí formulář
   73.77 +			2) zobrazíme mu vyplněné údaje a on si je zkontroluje
   73.78 +			3) potvrdí registraci
   73.79 +		-->
   73.80  
   73.81  		<c:choose>
   73.82 -		    <c:when test="${chybaRegistrace == null}">
   73.83 -			<!-- Registrace proběhla úspěšně. -->
   73.84 -			<p>
   73.85 -			    <fmt:message key="registrace.hotovo"/>&amp;#160;
   73.86 -			    <a href="?akce=prihlaseni">
   73.87 -				<fmt:message key="registrace.hotovo.prihlasit"/>
   73.88 -			    </a>.
   73.89 -			</p>
   73.90 -		    </c:when>
   73.91 -		    <c:otherwise>
   73.92 -			<!-- Během pokusu o registraci uživatele došlo k chybě. -->
   73.93 -			<p class="chybovaHlaska"><fmt:message key="${chybaRegistrace}"/></p>
   73.94 -		    </c:otherwise>
   73.95 +			<c:when test="${param.akceRegistrace == 'kontrola'}">
   73.96 +				<!-- Vypíšeme uživateli údaje, které zadal do formuláře, aby si je mohl zkontrolovat. -->
   73.97 +				<c:choose>
   73.98 +					<c:when test="${param.heslo == param.heslo_kontrola}">
   73.99 +						<jsp:setProperty name="uzivatel" property="*"/>
  73.100 +						<jsp:setProperty name="uzivatel" property="jazyk" value="${sessionScope['javax.servlet.jsp.jstl.fmt.locale.session']}"/>
  73.101 +						<jsp:setProperty name="uzivatelPredRegistraci" property="uzivatel" value="${uzivatel}"/>
  73.102 +						<jsp:setProperty name="registraceUzivatele" property="uzivatel" value="${uzivatelPredRegistraci}"/>
  73.103 +
  73.104 +						<p><fmt:message key="registrace.kontrola"/></p>
  73.105 +
  73.106 +						<p class="registraceKontrolaUdaju">
  73.107 +							<fmt:message key="dto.uzivatel.prezdivka"/>: <c:out value="${uzivatel.prezdivka}"/><br/>
  73.108 +							<fmt:message key="dto.uzivatel.jmeno"/>: <c:out value="${uzivatel.jmeno}"/><br/>
  73.109 +							<fmt:message key="dto.uzivatel.prijmeni"/>: <c:out value="${uzivatel.prijmeni}"/><br/>
  73.110 +							<fmt:message key="dto.uzivatel.email"/>: <c:out value="${uzivatel.email}"/><br/>
  73.111 +						</p>
  73.112 +
  73.113 +						<p>
  73.114 +							<a href="?akce=registrovatUzivatele&amp;amp;akceRegistrace=dokonceni&amp;amp;token=${fn:escapeXml(uzivatelPredRegistraci.token)}">
  73.115 +								<fmt:message key="registrace.potvrdit"/>
  73.116 +							</a>
  73.117 +						</p>
  73.118 +					</c:when>
  73.119 +					<c:otherwise>
  73.120 +						<p class="chybovaHlaska"><fmt:message key="registrace.vyjimka.heslaSeNeshoduji"/></p>
  73.121 +					</c:otherwise>
  73.122 +				</c:choose>
  73.123 +			</c:when>
  73.124 +			<c:when test="${param.akceRegistrace == 'dokonceni'}">
  73.125 +				<!-- Uživatel si zkontroloval údaje a chce dokončit svoji registraci. -->
  73.126 +				<jsp:setProperty name="registraceUzivatele" property="token" value="${param.token}"/>
  73.127 +
  73.128 +				<c:set var="chybaRegistrace" value="${registraceUzivatele.dokonciRegistraci}"/>
  73.129 +
  73.130 +				<c:choose>
  73.131 +					<c:when test="${chybaRegistrace == null}">
  73.132 +						<!-- Registrace proběhla úspěšně. -->
  73.133 +						<p>
  73.134 +							<fmt:message key="registrace.hotovo"/>&amp;#160;
  73.135 +							<a href="?akce=prihlaseni">
  73.136 +								<fmt:message key="registrace.hotovo.prihlasit"/>
  73.137 +							</a>.
  73.138 +						</p>
  73.139 +					</c:when>
  73.140 +					<c:otherwise>
  73.141 +						<!-- Během pokusu o registraci uživatele došlo k chybě. -->
  73.142 +						<p class="chybovaHlaska"><fmt:message key="${chybaRegistrace}"/></p>
  73.143 +					</c:otherwise>
  73.144 +				</c:choose>
  73.145 +			</c:when>
  73.146 +			<c:otherwise>
  73.147 +				<!-- Zobrazíme uživateli registrační formulář. -->
  73.148 +				<form method="post" action="?akce=registrovatUzivatele&amp;amp;akceRegistrace=kontrola">
  73.149 +					<fieldset>
  73.150 +						<fmt:message key="dto.uzivatel.prezdivka.tip" var="prezdivkaTip"/>
  73.151 +						<label title="${prezdivkaTip}"><fmt:message key="dto.uzivatel.prezdivka"/>: <input type="text" name="prezdivka" maxlength="255"/></label><br/>
  73.152 +						<label><fmt:message key="dto.uzivatel.heslo"/>: <input type="password" name="heslo" maxlength="255"/></label><br/>
  73.153 +						<label><fmt:message key="dto.uzivatel.heslo.kontrola"/>: <input type="password" name="heslo_kontrola" maxlength="255"/></label><br/>
  73.154 +						<br/>
  73.155 +						<label><fmt:message key="dto.uzivatel.jmeno"/>: <input type="text" name="jmeno" maxlength="255"/></label><br/>
  73.156 +						<label><fmt:message key="dto.uzivatel.prijmeni"/>: <input type="text" name="prijmeni" maxlength="255"/></label><br/>
  73.157 +						<label><fmt:message key="dto.uzivatel.email"/>: <input type="text" name="email" maxlength="255"/></label><br/>
  73.158 +						<button value="submit"><fmt:message key="registrace.tlacitko"/></button>
  73.159 +					</fieldset>
  73.160 +				</form>
  73.161 +			</c:otherwise>
  73.162  		</c:choose>
  73.163 -	    </c:when>
  73.164 -	    <c:otherwise>
  73.165 -		<!-- Zobrazíme uživateli registrační formulář. -->
  73.166 -		<form method="post" action="?akce=registrovatUzivatele&amp;amp;akceRegistrace=kontrola">
  73.167 -		    <fieldset>
  73.168 -			<fmt:message key="dto.uzivatel.prezdivka.tip" var="prezdivkaTip"/>
  73.169 -			<label title="${prezdivkaTip}"><fmt:message key="dto.uzivatel.prezdivka"/>: <input type="text" name="prezdivka" maxlength="255"/></label><br/>
  73.170 -			<label><fmt:message key="dto.uzivatel.heslo"/>: <input type="password" name="heslo" maxlength="255"/></label><br/>
  73.171 -			<label><fmt:message key="dto.uzivatel.heslo.kontrola"/>: <input type="password" name="heslo_kontrola" maxlength="255"/></label><br/>
  73.172 -			<br/>
  73.173 -			<label><fmt:message key="dto.uzivatel.jmeno"/>: <input type="text" name="jmeno" maxlength="255"/></label><br/>
  73.174 -			<label><fmt:message key="dto.uzivatel.prijmeni"/>: <input type="text" name="prijmeni" maxlength="255"/></label><br/>
  73.175 -			<label><fmt:message key="dto.uzivatel.email"/>: <input type="text" name="email" maxlength="255"/></label><br/>
  73.176 -			<button value="submit"><fmt:message key="registrace.tlacitko"/></button>
  73.177 -		    </fieldset>
  73.178 -		</form>
  73.179 -	    </c:otherwise>
  73.180 -	</c:choose>
  73.181  
  73.182 -    </nk:stranka>
  73.183 +	</nk:stranka>
  73.184  
  73.185  </jsp:root>
    74.1 --- a/java/nekurak.net-web/web/WEB-INF/casti/uvod.jsp	Sat Jun 19 14:37:11 2010 +0200
    74.2 +++ b/java/nekurak.net-web/web/WEB-INF/casti/uvod.jsp	Sun Jun 20 14:46:47 2010 +0200
    74.3 @@ -1,54 +1,54 @@
    74.4  <?xml version="1.0" encoding="UTF-8"?>
    74.5  <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    74.6 -	  xmlns:c="http://java.sun.com/jsp/jstl/core"
    74.7 -	  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    74.8 -	  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
    74.9 -	  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   74.10 -	  version="2.0">
   74.11 +		  xmlns:c="http://java.sun.com/jsp/jstl/core"
   74.12 +		  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
   74.13 +		  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
   74.14 +		  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   74.15 +		  version="2.0">
   74.16  
   74.17 -    <jsp:useBean id="uvod" class="cz.frantovo.nekurak.web.Uvod" scope="request"/>
   74.18 +	<jsp:useBean id="uvod" class="cz.frantovo.nekurak.web.Uvod" scope="request"/>
   74.19  
   74.20 -    <nk:stranka>
   74.21 +	<nk:stranka>
   74.22  
   74.23 -	<p><fmt:message key="uvod.naposledyPridanePodniky"/>:</p>
   74.24 +		<p><fmt:message key="uvod.naposledyPridanePodniky"/>:</p>
   74.25  
   74.26 -	<script type="text/javascript" src="js/fotkyPodniku.js"></script>
   74.27 +		<script type="text/javascript" src="js/fotkyPodniku.js"></script>
   74.28  
   74.29 -	<c:forEach var="p" items="${uvod.podniky}">
   74.30 -	    <div class="podnik">
   74.31 -		<!-- Tři bloky vedle sebe -->
   74.32 +		<c:forEach var="p" items="${uvod.podniky}">
   74.33 +			<div class="podnik">
   74.34 +				<!-- Tři bloky vedle sebe -->
   74.35  
   74.36 -		<!-- Název a adresa podniku -->
   74.37 -		<div class="adresa">
   74.38 -		    <h2><a href="?akce=detail&amp;amp;podnik=${p.id}"><c:out value="${p.nazev}"/></a></h2>
   74.39 -		    <p><c:out value="${p.popis}"/></p>
   74.40 -		    <p>
   74.41 -			<fmt:message key="uvod.adresa"/>:<br/>
   74.42 -			<c:out value="${p.ulice}"/>&amp;#160;
   74.43 -			<c:out value="${p.cisloPopisne}"/><br/>
   74.44 -			<c:out value="${p.mesto}"/>
   74.45 -		    </p>
   74.46 -		    <c:if test="${p.url != null}">
   74.47 -			<p><a href="${fn:escapeXml(p.url)}"><fmt:message key="uvod.www"/></a></p>
   74.48 -		    </c:if>
   74.49 -		</div>
   74.50 +				<!-- Název a adresa podniku -->
   74.51 +				<div class="adresa">
   74.52 +					<h2><a href="?akce=detail&amp;amp;podnik=${p.id}"><c:out value="${p.nazev}"/></a></h2>
   74.53 +					<p><c:out value="${p.popis}"/></p>
   74.54 +					<p>
   74.55 +						<fmt:message key="uvod.adresa"/>:<br/>
   74.56 +						<c:out value="${p.ulice}"/>&amp;#160;
   74.57 +						<c:out value="${p.cisloPopisne}"/><br/>
   74.58 +						<c:out value="${p.mesto}"/>
   74.59 +					</p>
   74.60 +					<c:if test="${p.url != null}">
   74.61 +						<p><a href="${fn:escapeXml(p.url)}"><fmt:message key="uvod.www"/></a></p>
   74.62 +					</c:if>
   74.63 +				</div>
   74.64  
   74.65 -		<!-- Hlasování a graf -->
   74.66 -		<div class="hlasovani">
   74.67 -		    <nk:hlasovani podnik="${p.id}"/>
   74.68 -		</div>
   74.69 +				<!-- Hlasování a graf -->
   74.70 +				<div class="hlasovani">
   74.71 +					<nk:hlasovani podnik="${p.id}"/>
   74.72 +				</div>
   74.73  
   74.74 -		<!-- Fotky podniku -->
   74.75 -		<div class="fotky">
   74.76 -		    <nk:fotkyPodniku podnik="${p}"/>
   74.77 -		</div>
   74.78 +				<!-- Fotky podniku -->
   74.79 +				<div class="fotky">
   74.80 +					<nk:fotkyPodniku podnik="${p}"/>
   74.81 +				</div>
   74.82  
   74.83 -	    </div>
   74.84 -	</c:forEach>
   74.85 +			</div>
   74.86 +		</c:forEach>
   74.87  
   74.88 -	<!-- konec obtékaných bloků -->
   74.89 -	<div class="cistic"></div>
   74.90 +		<!-- konec obtékaných bloků -->
   74.91 +		<div class="cistic"></div>
   74.92  
   74.93 -    </nk:stranka>
   74.94 +	</nk:stranka>
   74.95  
   74.96  </jsp:root>
    75.1 --- a/java/nekurak.net-web/web/WEB-INF/chyby/404.jsp	Sat Jun 19 14:37:11 2010 +0200
    75.2 +++ b/java/nekurak.net-web/web/WEB-INF/chyby/404.jsp	Sun Jun 20 14:46:47 2010 +0200
    75.3 @@ -1,19 +1,19 @@
    75.4  <?xml version="1.0" encoding="UTF-8"?>
    75.5  <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    75.6 -	  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    75.7 -	  xmlns:c="http://java.sun.com/jsp/jstl/core"
    75.8 -	  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
    75.9 -	  version="2.0">
   75.10 -    <jsp:directive.page contentType="application/xhtml+xml" isErrorPage="true"/>
   75.11 +		  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
   75.12 +		  xmlns:c="http://java.sun.com/jsp/jstl/core"
   75.13 +		  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   75.14 +		  version="2.0">
   75.15 +	<jsp:directive.page contentType="application/xhtml+xml" isErrorPage="true"/>
   75.16  
   75.17 -    <fmt:setBundle basename="cz.frantovo.nekurak.preklady" scope="application"/>
   75.18 +	<fmt:setBundle basename="cz.frantovo.nekurak.preklady" scope="application"/>
   75.19  
   75.20 -    <fmt:message key="chybovaStranka.404.nazev" var="nazev"/>
   75.21 -    <fmt:message key="chybovaStranka.404.popis" var="popis"/>
   75.22 +	<fmt:message key="chybovaStranka.404.nazev" var="nazev"/>
   75.23 +	<fmt:message key="chybovaStranka.404.popis" var="popis"/>
   75.24  
   75.25 -    <nk:stranka titulek="${nazev}">
   75.26 -	<h1><c:out value="${nazev}" /></h1>
   75.27 -	<p class="chybovaHlaska"><c:out value="${popis}" /></p>
   75.28 -    </nk:stranka>
   75.29 +	<nk:stranka titulek="${nazev}">
   75.30 +		<h1><c:out value="${nazev}" /></h1>
   75.31 +		<p class="chybovaHlaska"><c:out value="${popis}" /></p>
   75.32 +	</nk:stranka>
   75.33  
   75.34  </jsp:root>
    76.1 --- a/java/nekurak.net-web/web/WEB-INF/chyby/500.jsp	Sat Jun 19 14:37:11 2010 +0200
    76.2 +++ b/java/nekurak.net-web/web/WEB-INF/chyby/500.jsp	Sun Jun 20 14:46:47 2010 +0200
    76.3 @@ -1,19 +1,19 @@
    76.4  <?xml version="1.0" encoding="UTF-8"?>
    76.5  <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    76.6 -	  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    76.7 -	  xmlns:c="http://java.sun.com/jsp/jstl/core"
    76.8 -	  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
    76.9 -	  version="2.0">
   76.10 -    <jsp:directive.page contentType="application/xhtml+xml" isErrorPage="true"/>
   76.11 +		  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
   76.12 +		  xmlns:c="http://java.sun.com/jsp/jstl/core"
   76.13 +		  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   76.14 +		  version="2.0">
   76.15 +	<jsp:directive.page contentType="application/xhtml+xml" isErrorPage="true"/>
   76.16  
   76.17 -    <fmt:setBundle basename="cz.frantovo.nekurak.preklady" scope="application"/>
   76.18 +	<fmt:setBundle basename="cz.frantovo.nekurak.preklady" scope="application"/>
   76.19  
   76.20 -    <fmt:message key="chybovaStranka.500.nazev" var="nazev"/>
   76.21 -    <fmt:message key="chybovaStranka.500.popis" var="popis"/>
   76.22 +	<fmt:message key="chybovaStranka.500.nazev" var="nazev"/>
   76.23 +	<fmt:message key="chybovaStranka.500.popis" var="popis"/>
   76.24  
   76.25 -    <nk:stranka titulek="${nazev}">
   76.26 -	<h1><c:out value="${nazev}" /></h1>
   76.27 -	<p class="chybovaHlaska"><c:out value="${popis}" /></p>
   76.28 -    </nk:stranka>
   76.29 +	<nk:stranka titulek="${nazev}">
   76.30 +		<h1><c:out value="${nazev}" /></h1>
   76.31 +		<p class="chybovaHlaska"><c:out value="${popis}" /></p>
   76.32 +	</nk:stranka>
   76.33  
   76.34  </jsp:root>
    77.1 --- a/java/nekurak.net-web/web/WEB-INF/nekurakFunkce.tld	Sat Jun 19 14:37:11 2010 +0200
    77.2 +++ b/java/nekurak.net-web/web/WEB-INF/nekurakFunkce.tld	Sun Jun 20 14:46:47 2010 +0200
    77.3 @@ -1,26 +1,26 @@
    77.4  <?xml version="1.0" encoding="UTF-8"?>
    77.5  <taglib version="2.1" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd">
    77.6 -    <tlib-version>1.0</tlib-version>
    77.7 -    <short-name>nkfn</short-name>
    77.8 -    <uri>/WEB-INF/nekurakFunkce</uri>
    77.9 +	<tlib-version>1.0</tlib-version>
   77.10 +	<short-name>nkfn</short-name>
   77.11 +	<uri>/WEB-INF/nekurakFunkce</uri>
   77.12  
   77.13 -    <function>
   77.14 -	<name>fotka</name>
   77.15 -	<description>Sestaví URL na fotku s daným ID.</description>
   77.16 -	<function-class>cz.frantovo.nekurak.web.FunkceEL</function-class>
   77.17 -	<function-signature>java.lang.String fotka(int, boolean)</function-signature>
   77.18 -    </function>
   77.19 -    <function>
   77.20 -	<name>maFotky</name>
   77.21 -	<description>Zda podnik má přiřazené nějaké fotky</description>
   77.22 -	<function-class>cz.frantovo.nekurak.web.FunkceEL</function-class>
   77.23 -	<function-signature>boolean maFotky(cz.frantovo.nekurak.dto.Podnik)</function-signature>
   77.24 -    </function>
   77.25 -    <function>
   77.26 -	<name>zkontrolujKomentar</name>
   77.27 -	<description>Provede validaci komentáře oproti XML schématu</description>
   77.28 -	<function-class>cz.frantovo.nekurak.web.FunkceEL</function-class>
   77.29 -	<function-signature>boolean zkontrolujKomentar(java.lang.String)</function-signature>
   77.30 -    </function>
   77.31 +	<function>
   77.32 +		<name>fotka</name>
   77.33 +		<description>Sestaví URL na fotku s daným ID.</description>
   77.34 +		<function-class>cz.frantovo.nekurak.web.FunkceEL</function-class>
   77.35 +		<function-signature>java.lang.String fotka(int, boolean)</function-signature>
   77.36 +	</function>
   77.37 +	<function>
   77.38 +		<name>maFotky</name>
   77.39 +		<description>Zda podnik má přiřazené nějaké fotky</description>
   77.40 +		<function-class>cz.frantovo.nekurak.web.FunkceEL</function-class>
   77.41 +		<function-signature>boolean maFotky(cz.frantovo.nekurak.dto.Podnik)</function-signature>
   77.42 +	</function>
   77.43 +	<function>
   77.44 +		<name>zkontrolujKomentar</name>
   77.45 +		<description>Provede validaci komentáře oproti XML schématu</description>
   77.46 +		<function-class>cz.frantovo.nekurak.web.FunkceEL</function-class>
   77.47 +		<function-signature>boolean zkontrolujKomentar(java.lang.String)</function-signature>
   77.48 +	</function>
   77.49  
   77.50  </taglib>
    78.1 --- a/java/nekurak.net-web/web/WEB-INF/sun-web.xml	Sat Jun 19 14:37:11 2010 +0200
    78.2 +++ b/java/nekurak.net-web/web/WEB-INF/sun-web.xml	Sun Jun 20 14:46:47 2010 +0200
    78.3 @@ -1,16 +1,16 @@
    78.4  <?xml version="1.0" encoding="UTF-8"?>
    78.5  <!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 Servlet 2.5//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_2_5-0.dtd">
    78.6  <sun-web-app error-url="">
    78.7 -    <context-root>/nekurak.net-web</context-root>
    78.8 -    <class-loader delegate="true"/>
    78.9 -    <parameter-encoding default-charset="UTF-8"/>
   78.10 -    <jsp-config>
   78.11 -	<property name="keepgenerated" value="true">
   78.12 -	    <description>Keep a copy of the generated servlet class' java code.</description>
   78.13 -	</property>
   78.14 -    </jsp-config>
   78.15 -    <security-role-mapping>
   78.16 -	<role-name>opravneny</role-name>
   78.17 -	<group-name>bezny</group-name>
   78.18 -    </security-role-mapping>
   78.19 +	<context-root>/nekurak.net-web</context-root>
   78.20 +	<class-loader delegate="true"/>
   78.21 +	<parameter-encoding default-charset="UTF-8"/>
   78.22 +	<jsp-config>
   78.23 +		<property name="keepgenerated" value="true">
   78.24 +			<description>Keep a copy of the generated servlet class' java code.</description>
   78.25 +		</property>
   78.26 +	</jsp-config>
   78.27 +	<security-role-mapping>
   78.28 +		<role-name>opravneny</role-name>
   78.29 +		<group-name>bezny</group-name>
   78.30 +	</security-role-mapping>
   78.31  </sun-web-app>
    79.1 --- a/java/nekurak.net-web/web/WEB-INF/tags/nekurak/fotkyPodniku.tag	Sat Jun 19 14:37:11 2010 +0200
    79.2 +++ b/java/nekurak.net-web/web/WEB-INF/tags/nekurak/fotkyPodniku.tag	Sun Jun 20 14:46:47 2010 +0200
    79.3 @@ -1,27 +1,27 @@
    79.4  <?xml version="1.0" encoding="UTF-8"?>
    79.5  <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    79.6 -	  xmlns:c="http://java.sun.com/jsp/jstl/core"
    79.7 -	  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    79.8 -	  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
    79.9 -	  xmlns:nkfn="/WEB-INF/nekurakFunkce"
   79.10 -	  version="2.0">
   79.11 +		  xmlns:c="http://java.sun.com/jsp/jstl/core"
   79.12 +		  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
   79.13 +		  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
   79.14 +		  xmlns:nkfn="/WEB-INF/nekurakFunkce"
   79.15 +		  version="2.0">
   79.16  
   79.17 -    <jsp:directive.attribute name="podnik" type="cz.frantovo.nekurak.dto.Podnik" required="true"/>
   79.18 +	<jsp:directive.attribute name="podnik" type="cz.frantovo.nekurak.dto.Podnik" required="true"/>
   79.19  
   79.20 -    <div id="fotkyPodniku${podnik.id}">
   79.21 -	<c:forEach var="fotka" items="${podnik.fotky}">
   79.22 -	    <p>
   79.23 -		<a href="${nkfn:fotka(fotka.id, false)}">
   79.24 -		    <img src="${nkfn:fotka(fotka.id, true)}" alt="fotka" title="${fn:escapeXml(fotka.popis)}"/>
   79.25 -		</a>
   79.26 -	    </p>
   79.27 -	</c:forEach>
   79.28 -	<p><img src="grafika/fotkaPodnikuZadne.png" alt="žádné další fotografie"/></p>
   79.29 -    </div>
   79.30 +	<div id="fotkyPodniku${podnik.id}">
   79.31 +		<c:forEach var="fotka" items="${podnik.fotky}">
   79.32 +			<p>
   79.33 +				<a href="${nkfn:fotka(fotka.id, false)}">
   79.34 +					<img src="${nkfn:fotka(fotka.id, true)}" alt="fotka" title="${fn:escapeXml(fotka.popis)}"/>
   79.35 +				</a>
   79.36 +			</p>
   79.37 +		</c:forEach>
   79.38 +		<p><img src="grafika/fotkaPodnikuZadne.png" alt="žádné další fotografie"/></p>
   79.39 +	</div>
   79.40  
   79.41 -    <c:if test="${nkfn:maFotky(podnik)}">
   79.42 -	<script type="text/javascript">
   79.43 -	fotkyPodniku.aktivuj(${podnik.id});
   79.44 -	</script>
   79.45 -    </c:if>
   79.46 +	<c:if test="${nkfn:maFotky(podnik)}">
   79.47 +		<script type="text/javascript">
   79.48 +		fotkyPodniku.aktivuj(${podnik.id});
   79.49 +		</script>
   79.50 +	</c:if>
   79.51  </jsp:root>
   79.52 \ No newline at end of file
    80.1 --- a/java/nekurak.net-web/web/WEB-INF/tags/nekurak/hlasovani.tag	Sat Jun 19 14:37:11 2010 +0200
    80.2 +++ b/java/nekurak.net-web/web/WEB-INF/tags/nekurak/hlasovani.tag	Sun Jun 20 14:46:47 2010 +0200
    80.3 @@ -1,141 +1,141 @@
    80.4  <?xml version="1.0" encoding="UTF-8"?>
    80.5  <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    80.6 -	  xmlns:c="http://java.sun.com/jsp/jstl/core"
    80.7 -	  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    80.8 -	  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
    80.9 -	  version="2.0">
   80.10 +		  xmlns:c="http://java.sun.com/jsp/jstl/core"
   80.11 +		  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
   80.12 +		  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
   80.13 +		  version="2.0">
   80.14  
   80.15 -    <jsp:directive.attribute name="podnik" type="java.lang.Integer" required="true" description="ID podniku"/>
   80.16 -    <jsp:directive.attribute name="hlasuAno" type="java.lang.Integer" required="false" description="počet hlasů pro ano – aby se tu kouřilo"/>
   80.17 -    <jsp:directive.attribute name="hlasuNe" type="java.lang.Integer" required="false" description="počet hlasů pro ne – aby se tu nekouřilo"/>
   80.18 -    <jsp:directive.attribute name="svgUvnitrXhtml" type="java.lang.Boolean" required="false" description="true = SVG vložené přímo do XHTML (XML) | false = SVG jako externí obrázek – &lt;img src='…'/&gt;"/>
   80.19 +	<jsp:directive.attribute name="podnik" type="java.lang.Integer" required="true" description="ID podniku"/>
   80.20 +	<jsp:directive.attribute name="hlasuAno" type="java.lang.Integer" required="false" description="počet hlasů pro ano – aby se tu kouřilo"/>
   80.21 +	<jsp:directive.attribute name="hlasuNe" type="java.lang.Integer" required="false" description="počet hlasů pro ne – aby se tu nekouřilo"/>
   80.22 +	<jsp:directive.attribute name="svgUvnitrXhtml" type="java.lang.Boolean" required="false" description="true = SVG vložené přímo do XHTML (XML) | false = SVG jako externí obrázek – &lt;img src='…'/&gt;"/>
   80.23  
   80.24 -    <!-- výchozí hodnota -->
   80.25 -    <c:if test="${svgUvnitrXhtml == null}">
   80.26 -	<c:set var="svgUvnitrXhtml" value="${true}"/>
   80.27 -    </c:if>
   80.28 +	<!-- výchozí hodnota -->
   80.29 +	<c:if test="${svgUvnitrXhtml == null}">
   80.30 +		<c:set var="svgUvnitrXhtml" value="${true}"/>
   80.31 +	</c:if>
   80.32  
   80.33 -    <!-- hodnoty nejsou uvedeny → načteme si je -->
   80.34 -    <c:if test="${hlasuAno == null || hlasuNe == null || (hlasuAno == 0 &amp;&amp; hlasuNe == 0)}">
   80.35 -	<jsp:useBean id="hlasovani" class="cz.frantovo.nekurak.web.Hlasovani" scope="request"/>
   80.36 -	<jsp:setProperty name="hlasovani" property="podnik" value="${podnik}"/>
   80.37 -	<c:set var="hlasuAno" value="${hlasovani.vysledek.hlasuAno}"/>
   80.38 -	<c:set var="hlasuNe" value="${hlasovani.vysledek.hlasuNe}"/>
   80.39 -    </c:if>
   80.40 +	<!-- hodnoty nejsou uvedeny → načteme si je -->
   80.41 +	<c:if test="${hlasuAno == null || hlasuNe == null || (hlasuAno == 0 &amp;&amp; hlasuNe == 0)}">
   80.42 +		<jsp:useBean id="hlasovani" class="cz.frantovo.nekurak.web.Hlasovani" scope="request"/>
   80.43 +		<jsp:setProperty name="hlasovani" property="podnik" value="${podnik}"/>
   80.44 +		<c:set var="hlasuAno" value="${hlasovani.vysledek.hlasuAno}"/>
   80.45 +		<c:set var="hlasuNe" value="${hlasovani.vysledek.hlasuNe}"/>
   80.46 +	</c:if>
   80.47  
   80.48 -    <c:choose>
   80.49 -	<c:when test="${svgUvnitrXhtml}">
   80.50 -	    <svg:svg xmlns:svg="http://www.w3.org/2000/svg"
   80.51 -		     xmlns:xlink="http://www.w3.org/1999/xlink"
   80.52 -		     version="1.1" baseProfile="full"
   80.53 -		     width="200" height="200">
   80.54 +	<c:choose>
   80.55 +		<c:when test="${svgUvnitrXhtml}">
   80.56 +			<svg:svg xmlns:svg="http://www.w3.org/2000/svg"
   80.57 +					 xmlns:xlink="http://www.w3.org/1999/xlink"
   80.58 +					 version="1.1" baseProfile="full"
   80.59 +					 width="200" height="200">
   80.60  
   80.61  
   80.62 -		<svg:style type="text/css">
   80.63 -		    rect.ne {
   80.64 +				<svg:style type="text/css">
   80.65 +			rect.ne {
   80.66  			fill:  url(#ne_prechod_${podnik});
   80.67  			stroke: black;
   80.68 -		    }
   80.69 -		    rect.ano {
   80.70 +			}
   80.71 +			rect.ano {
   80.72  			fill: url(#ano_prechod_${podnik});
   80.73  			stroke: black;
   80.74 -		    }
   80.75 +			}
   80.76  
   80.77 -		    a:hover rect.ano, a:hover rect.ne {
   80.78 +			a:hover rect.ano, a:hover rect.ne {
   80.79  			fill: url(#zvyrazneny_prechod_${podnik});
   80.80 -		    }
   80.81 +			}
   80.82  
   80.83 -		    a:hover text {
   80.84 +			a:hover text {
   80.85  			fill: green;
   80.86 -		    }
   80.87 +			}
   80.88  
   80.89 -		    line.ramecek {
   80.90 +			line.ramecek {
   80.91  			stroke: black;
   80.92  			stroke-width: 2;
   80.93 -		    }
   80.94 +			}
   80.95  
   80.96  
   80.97 -		    rect.pozadi {
   80.98 +			rect.pozadi {
   80.99  			fill: url(#pozadi_prechod_${podnik});
  80.100 -		    }
  80.101 +			}
  80.102  
  80.103 -		    text {
  80.104 +			text {
  80.105  			font-size: 12px;
  80.106  			font-family: Sans;
  80.107 -		    }
  80.108 +			}
  80.109  
  80.110 -		</svg:style>
  80.111 +				</svg:style>
  80.112  
  80.113 -		<!-- pozadí – přechod -->
  80.114 -		<svg:defs>
  80.115 -		    <svg:linearGradient id="pozadi_prechod_${podnik}" x1="0%" y1="0%" x2="100%" y2="100%">
  80.116 -			<svg:stop offset="20%" style="stop-color:rgb(245,245,255); stop-opacity:0.5"/>
  80.117 -			<svg:stop offset="100%" style="stop-color:silver; stop-opacity:0.8"/>
  80.118 -		    </svg:linearGradient>
  80.119 -		</svg:defs>
  80.120 +				<!-- pozadí – přechod -->
  80.121 +				<svg:defs>
  80.122 +					<svg:linearGradient id="pozadi_prechod_${podnik}" x1="0%" y1="0%" x2="100%" y2="100%">
  80.123 +						<svg:stop offset="20%" style="stop-color:rgb(245,245,255); stop-opacity:0.5"/>
  80.124 +						<svg:stop offset="100%" style="stop-color:silver; stop-opacity:0.8"/>
  80.125 +					</svg:linearGradient>
  80.126 +				</svg:defs>
  80.127  
  80.128 -		<!-- nekuřácký graf – přechod -->
  80.129 -		<svg:defs>
  80.130 -		    <svg:linearGradient id="ne_prechod_${podnik}" x1="0%" y1="0%" x2="100%" y2="100%">
  80.131 -			<svg:stop offset="0%" style="stop-color:white; stop-opacity:1"/>
  80.132 -			<svg:stop offset="100%" style="stop-color:blue; stop-opacity:1"/>
  80.133 -		    </svg:linearGradient>
  80.134 -		</svg:defs>
  80.135 +				<!-- nekuřácký graf – přechod -->
  80.136 +				<svg:defs>
  80.137 +					<svg:linearGradient id="ne_prechod_${podnik}" x1="0%" y1="0%" x2="100%" y2="100%">
  80.138 +						<svg:stop offset="0%" style="stop-color:white; stop-opacity:1"/>
  80.139 +						<svg:stop offset="100%" style="stop-color:blue; stop-opacity:1"/>
  80.140 +					</svg:linearGradient>
  80.141 +				</svg:defs>
  80.142  
  80.143 -		<!-- zvýrazněný graf – přechod -->
  80.144 -		<svg:defs>
  80.145 -		    <svg:linearGradient id="zvyrazneny_prechod_${podnik}" x1="0%" y1="0%" x2="100%" y2="100%">
  80.146 -			<svg:stop offset="0%" style="stop-color:white; stop-opacity:1"/>
  80.147 -			<svg:stop offset="100%" style="stop-color:green; stop-opacity:1"/>
  80.148 -		    </svg:linearGradient>
  80.149 -		</svg:defs>
  80.150 +				<!-- zvýrazněný graf – přechod -->
  80.151 +				<svg:defs>
  80.152 +					<svg:linearGradient id="zvyrazneny_prechod_${podnik}" x1="0%" y1="0%" x2="100%" y2="100%">
  80.153 +						<svg:stop offset="0%" style="stop-color:white; stop-opacity:1"/>
  80.154 +						<svg:stop offset="100%" style="stop-color:green; stop-opacity:1"/>
  80.155 +					</svg:linearGradient>
  80.156 +				</svg:defs>
  80.157  
  80.158 -		<!-- kuřácký graf – přechod -->
  80.159 -		<svg:defs>
  80.160 -		    <svg:linearGradient id="ano_prechod_${podnik}" x1="0%" y1="0%" x2="100%" y2="100%">
  80.161 -			<svg:stop offset="0%" style="stop-color:white; stop-opacity:1"/>
  80.162 -			<svg:stop offset="100%" style="stop-color:red; stop-opacity:1"/>
  80.163 -		    </svg:linearGradient>
  80.164 -		</svg:defs>
  80.165 +				<!-- kuřácký graf – přechod -->
  80.166 +				<svg:defs>
  80.167 +					<svg:linearGradient id="ano_prechod_${podnik}" x1="0%" y1="0%" x2="100%" y2="100%">
  80.168 +						<svg:stop offset="0%" style="stop-color:white; stop-opacity:1"/>
  80.169 +						<svg:stop offset="100%" style="stop-color:red; stop-opacity:1"/>
  80.170 +					</svg:linearGradient>
  80.171 +				</svg:defs>
  80.172  
  80.173 -		<!-- pozadí a linka -->
  80.174 -		<svg:rect x="0" y="0" width="200" height="200" class="pozadi"/>
  80.175 -		<svg:line x1="10" y1="180" x2="190" y2="180" class="ramecek"/>
  80.176 +				<!-- pozadí a linka -->
  80.177 +				<svg:rect x="0" y="0" width="200" height="200" class="pozadi"/>
  80.178 +				<svg:line x1="10" y1="180" x2="190" y2="180" class="ramecek"/>
  80.179  
  80.180 -		<!-- nadpis grafu -->
  80.181 -		<svg:text x="60" y="20"><fmt:message key="hlasovani.graf.nadpis"/>:</svg:text>
  80.182 +				<!-- nadpis grafu -->
  80.183 +				<svg:text x="60" y="20"><fmt:message key="hlasovani.graf.nadpis"/>:</svg:text>
  80.184  
  80.185 -		<!-- žádné hlasy -->
  80.186 -		<c:if test="${hlasuAno == 0 &amp;&amp; hlasuNe == 0}">
  80.187 -		    <svg:text x="30" y="100"><fmt:message key="hlasovani.graf.zadneHlasy"/></svg:text>
  80.188 -		</c:if>
  80.189 +				<!-- žádné hlasy -->
  80.190 +				<c:if test="${hlasuAno == 0 &amp;&amp; hlasuNe == 0}">
  80.191 +					<svg:text x="30" y="100"><fmt:message key="hlasovani.graf.zadneHlasy"/></svg:text>
  80.192 +				</c:if>
  80.193  
  80.194 -		<!-- vypočteme si výšky sloupců grafu -->
  80.195 -		<c:set var="hlasuNeVyska" value="${150*hlasuNe/(hlasuAno+hlasuNe)}"/>
  80.196 -		<c:set var="hlasuAnoVyska" value="${150*hlasuAno/(hlasuAno+hlasuNe)}"/>
  80.197 +				<!-- vypočteme si výšky sloupců grafu -->
  80.198 +				<c:set var="hlasuNeVyska" value="${150*hlasuNe/(hlasuAno+hlasuNe)}"/>
  80.199 +				<c:set var="hlasuAnoVyska" value="${150*hlasuAno/(hlasuAno+hlasuNe)}"/>
  80.200  
  80.201 -		<!-- nekuřáci -->
  80.202 -		<fmt:message key="hlasovani.graf.popisSloupce" var="hlasuNeLokalizace">
  80.203 -		    <fmt:param value="${hlasuNe}"/>
  80.204 -		</fmt:message>
  80.205 -		<svg:a xlink:href="javascript:hlasovani.hlasuj(${podnik}, false);" xlink:title="${hlasuNeLokalizace}">
  80.206 -		    <svg:text x="30" y="195" class="ne"><fmt:message key="hlasovani.graf.nekourit"/></svg:text>
  80.207 -		    <svg:rect x="30" y="${180 - hlasuNeVyska}" width="50" height="${hlasuNeVyska}" class="ne"/>
  80.208 -		</svg:a>
  80.209 +				<!-- nekuřáci -->
  80.210 +				<fmt:message key="hlasovani.graf.popisSloupce" var="hlasuNeLokalizace">
  80.211 +					<fmt:param value="${hlasuNe}"/>
  80.212 +				</fmt:message>
  80.213 +				<svg:a xlink:href="javascript:hlasovani.hlasuj(${podnik}, false);" xlink:title="${hlasuNeLokalizace}">
  80.214 +					<svg:text x="30" y="195" class="ne"><fmt:message key="hlasovani.graf.nekourit"/></svg:text>
  80.215 +					<svg:rect x="30" y="${180 - hlasuNeVyska}" width="50" height="${hlasuNeVyska}" class="ne"/>
  80.216 +				</svg:a>
  80.217  
  80.218 -		<!-- kuřáci -->
  80.219 -		<fmt:message key="hlasovani.graf.popisSloupce" var="hlasuAnoLokalizace">
  80.220 -		    <fmt:param value="${hlasuAno}"/>
  80.221 -		</fmt:message>
  80.222 -		<svg:a xlink:href="javascript:hlasovani.hlasuj(${podnik}, true);" xlink:title="${hlasuAnoLokalizace}">
  80.223 -		    <svg:text x="130" y="195" class="ano"><fmt:message key="hlasovani.graf.kourit"/></svg:text>
  80.224 -		    <svg:rect x="120" y="${180 - hlasuAnoVyska}" width="50" height="${hlasuAnoVyska}" class="ano"/>
  80.225 -		</svg:a>
  80.226 -	    </svg:svg>
  80.227 -	</c:when>
  80.228 -	<c:otherwise>
  80.229 -	    <object data="hlasovani-svg.jsp?podnik=${podnik}&amp;amp;hlasuAno=${hlasuAno}&amp;amp;hlasuNe=${hlasuNe}" type="image/svg+xml"/>
  80.230 -	</c:otherwise>
  80.231 -    </c:choose>
  80.232 +				<!-- kuřáci -->
  80.233 +				<fmt:message key="hlasovani.graf.popisSloupce" var="hlasuAnoLokalizace">
  80.234 +					<fmt:param value="${hlasuAno}"/>
  80.235 +				</fmt:message>
  80.236 +				<svg:a xlink:href="javascript:hlasovani.hlasuj(${podnik}, true);" xlink:title="${hlasuAnoLokalizace}">
  80.237 +					<svg:text x="130" y="195" class="ano"><fmt:message key="hlasovani.graf.kourit"/></svg:text>
  80.238 +					<svg:rect x="120" y="${180 - hlasuAnoVyska}" width="50" height="${hlasuAnoVyska}" class="ano"/>
  80.239 +				</svg:a>
  80.240 +			</svg:svg>
  80.241 +		</c:when>
  80.242 +		<c:otherwise>
  80.243 +			<object data="hlasovani-svg.jsp?podnik=${podnik}&amp;amp;hlasuAno=${hlasuAno}&amp;amp;hlasuNe=${hlasuNe}" type="image/svg+xml"/>
  80.244 +		</c:otherwise>
  80.245 +	</c:choose>
  80.246  
  80.247  </jsp:root>
  80.248 \ No newline at end of file
    81.1 --- a/java/nekurak.net-web/web/WEB-INF/tags/nekurak/komentareVypis.tag	Sat Jun 19 14:37:11 2010 +0200
    81.2 +++ b/java/nekurak.net-web/web/WEB-INF/tags/nekurak/komentareVypis.tag	Sun Jun 20 14:46:47 2010 +0200
    81.3 @@ -1,71 +1,72 @@
    81.4  <?xml version="1.0" encoding="UTF-8"?>
    81.5  <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    81.6 -	  xmlns:c="http://java.sun.com/jsp/jstl/core"
    81.7 -	  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    81.8 -	  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
    81.9 -	  xmlns:nkfn="/WEB-INF/nekurakFunkce"
   81.10 -	  version="2.0">
   81.11 +		  xmlns:c="http://java.sun.com/jsp/jstl/core"
   81.12 +		  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
   81.13 +		  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
   81.14 +		  xmlns:nkfn="/WEB-INF/nekurakFunkce"
   81.15 +		  version="2.0">
   81.16  
   81.17 -    <jsp:directive.attribute name="podnik" type="cz.frantovo.nekurak.dto.Podnik" required="true"/>
   81.18 +	<jsp:directive.attribute name="podnik" type="cz.frantovo.nekurak.dto.Podnik" required="true"/>
   81.19  
   81.20 -    <div class="komentare">
   81.21 -	<h3><fmt:message key="komentare.vypisNadpis"/></h3>
   81.22 +	<div class="komentare">
   81.23 +		<h3><fmt:message key="komentare.vypisNadpis"/></h3>
   81.24  
   81.25 -	<!-- Zatím nikdo nekomentoval? -->
   81.26 -	<c:if test="${fn:length(podnik.komentare) == 0}">
   81.27 -	    <p><fmt:message key="komentare.zadneKomentare"/></p>
   81.28 -	</c:if>
   81.29 +		<!-- Zatím nikdo nekomentoval? -->
   81.30 +		<c:if test="${fn:length(podnik.komentare) == 0}">
   81.31 +			<p><fmt:message key="komentare.zadneKomentare"/></p>
   81.32 +		</c:if>
   81.33  
   81.34 -	<!-- Komentovat! -->
   81.35 -	<c:choose>
   81.36 -	    <c:when test="${prihlasenyUzivatel == null}">
   81.37 -		<p><fmt:message key="komentare.prihlasitSe"/></p>
   81.38 -	    </c:when>
   81.39 -	    <c:otherwise>
   81.40 -		<p><a href="javascript:komentare.zobrazFormular()"><fmt:message key="komentare.komentovat"/></a></p>
   81.41 -		<div id="formularKomentuj">
   81.42 -		    <form method="post" action="?akce=odeslatKomentar" onsubmit="javascript:komentare.odeslat(); return false;">
   81.43 -			<fieldset>
   81.44 -			    <input type="hidden" name="podnik" maxlength="255" value="${podnik.id}"/>
   81.45 -			    <label><fmt:message key="komentare.nadpis"/>: <input type="text" name="nadpis" maxlength="255"/></label>
   81.46 -			    <br/>
   81.47 -			    <textarea name="komentar" cols="30" rows="10"></textarea>
   81.48 -			    <br/>
   81.49 -			    <select name="typ">
   81.50 -				<option value="PROSTY_TEXT" selected="selected"><fmt:message key="komentar.typ.prostyText"/></option>
   81.51 -				<option value="XHTML"><fmt:message key="komentar.typ.xhtml"/></option>
   81.52 -				<option value="TEXY"><fmt:message key="komentar.typ.texy"/></option>
   81.53 -			    </select>
   81.54 -			    <br/>
   81.55 -			    <button style="display: none;" id="tlacitkoNahled" onclick="javascript:komentare.nahled(); return false;"><fmt:message key="komentare.tlacitkoNahled"/></button>
   81.56 -			    <button value="submit"><fmt:message key="komentare.tlacitkoOdeslat"/></button>
   81.57 -			</fieldset>
   81.58 -		    </form>
   81.59 -		    <div class="vystup"></div>
   81.60 -		    <div class="cistic"/>
   81.61 -		</div>
   81.62 -		<script type="text/javascript">
   81.63 -		    $("#formularKomentuj").css("display", "none");
   81.64 -		    $("#tlacitkoNahled").css("display", "inline");
   81.65 -		</script>
   81.66 -	    </c:otherwise>
   81.67 -	</c:choose>
   81.68 +		<!-- Komentovat! -->
   81.69 +		<c:choose>
   81.70 +			<c:when test="${prihlasenyUzivatel == null}">
   81.71 +				<p><fmt:message key="komentare.prihlasitSe"/></p>
   81.72 +			</c:when>
   81.73 +			<c:otherwise>
   81.74 +				<p id="formularKomentujSkryvac" style="display: none;"><a href="javascript:komentare.zobrazFormular()"><fmt:message key="komentare.komentovat"/></a></p>
   81.75 +				<div id="formularKomentuj">
   81.76 +					<form method="post" action="?akce=odeslatKomentar" onsubmit="javascript:komentare.odeslat(); return false;">
   81.77 +						<fieldset>
   81.78 +							<input type="hidden" name="podnik" maxlength="255" value="${podnik.id}"/>
   81.79 +							<label><fmt:message key="komentare.nadpis"/>: <input type="text" name="nadpis" maxlength="255"/></label>
   81.80 +							<br/>
   81.81 +							<textarea name="komentar" cols="30" rows="10"></textarea>
   81.82 +							<br/>
   81.83 +							<select name="typ">
   81.84 +								<option value="PROSTY_TEXT" selected="selected"><fmt:message key="komentar.typ.prostyText"/></option>
   81.85 +								<option value="XHTML"><fmt:message key="komentar.typ.xhtml"/></option>
   81.86 +								<option value="TEXY"><fmt:message key="komentar.typ.texy"/></option>
   81.87 +							</select>
   81.88 +							<br/>
   81.89 +							<button style="display: none;" id="tlacitkoNahled" onclick="javascript:komentare.nahled(); return false;"><fmt:message key="komentare.tlacitkoNahled"/></button>
   81.90 +							<button value="submit"><fmt:message key="komentare.tlacitkoOdeslat"/></button>
   81.91 +						</fieldset>
   81.92 +					</form>
   81.93 +					<div class="vystup"></div>
   81.94 +					<div class="cistic"/>
   81.95 +				</div>
   81.96 +				<script type="text/javascript">
   81.97 +					$("#formularKomentuj").css("display", "none");
   81.98 +					$("#tlacitkoNahled").css("display", "inline");
   81.99 +					$("#formularKomentujSkryvac").css("display", "block");
  81.100 +				</script>
  81.101 +			</c:otherwise>
  81.102 +		</c:choose>
  81.103  
  81.104 -	<!-- Výpis komentářů -->
  81.105 -	<c:forEach var="k" items="${podnik.komentare}">
  81.106 -	    <div class="komentar">
  81.107 -		<h4>
  81.108 -		    <fmt:message key="komentare.napsal"/>: <c:out value="${k.uzivatel}" />,
  81.109 -		    <fmt:formatDate value="${k.datum}" pattern="dd. MMMM yyyy HH:mm"/>
  81.110 -		    <c:if test="${k.nadpis != null &amp;&amp; k.nadpis != ''}">
  81.111 -			<br/>
  81.112 -			<fmt:message key="komentare.nadpis"/>: <c:out value="${k.nadpis}" />
  81.113 -		    </c:if>
  81.114 -		</h4>
  81.115 -		<!-- Pozor: předpokládáme, že v DB jsou pouze zkontrolovaná data -->
  81.116 -		<c:out value="${k.komentar}" escapeXml="false" />
  81.117 -	    </div>
  81.118 -	</c:forEach>
  81.119 -    </div>
  81.120 +		<!-- Výpis komentářů -->
  81.121 +		<c:forEach var="k" items="${podnik.komentare}">
  81.122 +			<div class="komentar">
  81.123 +				<h4>
  81.124 +					<fmt:message key="komentare.napsal"/>: <c:out value="${k.uzivatel}" />,
  81.125 +					<fmt:formatDate value="${k.datum}" pattern="dd. MMMM yyyy HH:mm"/>
  81.126 +					<c:if test="${k.nadpis != null &amp;&amp; k.nadpis != ''}">
  81.127 +						<br/>
  81.128 +						<fmt:message key="komentare.nadpis"/>: <c:out value="${k.nadpis}" />
  81.129 +					</c:if>
  81.130 +				</h4>
  81.131 +				<!-- Pozor: předpokládáme, že v DB jsou pouze zkontrolovaná data -->
  81.132 +				<c:out value="${k.komentar}" escapeXml="false" />
  81.133 +			</div>
  81.134 +		</c:forEach>
  81.135 +	</div>
  81.136  
  81.137  </jsp:root>
  81.138 \ No newline at end of file
    82.1 --- a/java/nekurak.net-web/web/WEB-INF/tags/nekurak/prepinaniJazyku.tag	Sat Jun 19 14:37:11 2010 +0200
    82.2 +++ b/java/nekurak.net-web/web/WEB-INF/tags/nekurak/prepinaniJazyku.tag	Sun Jun 20 14:46:47 2010 +0200
    82.3 @@ -1,20 +1,20 @@
    82.4  <?xml version="1.0" encoding="UTF-8"?>
    82.5  <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    82.6 -	  xmlns:c="http://java.sun.com/jsp/jstl/core"
    82.7 -	  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    82.8 -	  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
    82.9 -	  version="2.0">
   82.10 +		  xmlns:c="http://java.sun.com/jsp/jstl/core"
   82.11 +		  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
   82.12 +		  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
   82.13 +		  version="2.0">
   82.14  
   82.15 -    <div id="prepinaniJazyku">
   82.16 -	<fmt:message key="prepinaniJazyku.cestina" var="prepinaniJazykuCestina"/>
   82.17 -	<fmt:message key="prepinaniJazyku.cestina.tip" var="prepinaniJazykuCestinaTip"/>
   82.18 -	<fmt:message key="prepinaniJazyku.slovenstina" var="prepinaniJazykuSlovenstina"/>
   82.19 -	<fmt:message key="prepinaniJazyku.slovenstina.tip" var="prepinaniJazykuSlovenstinaTip"/>
   82.20 -	<fmt:message key="prepinaniJazyku.anglictina" var="prepinaniJazykuAnglictina"/>
   82.21 -	<fmt:message key="prepinaniJazyku.anglictina.tip" var="prepinaniJazykuAnglictinaTip"/>
   82.22 -	<a href="?jazyk=cs"><img src="grafika/jazyk_cs.png" alt="${prepinaniJazykuCestina}" title="${prepinaniJazykuCestinaTip}"/></a>
   82.23 -	<a href="?jazyk=sk"><img src="grafika/jazyk_sk.png" alt="${prepinaniJazykuSlovenstina}" title="${prepinaniJazykuSlovenstinaTip}"/></a>
   82.24 -	<a href="?jazyk=en"><img src="grafika/jazyk_en.png" alt="${prepinaniJazykuAnglictina}" title="${prepinaniJazykuAnglictinaTip}"/></a>
   82.25 -    </div>
   82.26 +	<div id="prepinaniJazyku">
   82.27 +		<fmt:message key="prepinaniJazyku.cestina" var="prepinaniJazykuCestina"/>
   82.28 +		<fmt:message key="prepinaniJazyku.cestina.tip" var="prepinaniJazykuCestinaTip"/>
   82.29 +		<fmt:message key="prepinaniJazyku.slovenstina" var="prepinaniJazykuSlovenstina"/>
   82.30 +		<fmt:message key="prepinaniJazyku.slovenstina.tip" var="prepinaniJazykuSlovenstinaTip"/>
   82.31 +		<fmt:message key="prepinaniJazyku.anglictina" var="prepinaniJazykuAnglictina"/>
   82.32 +		<fmt:message key="prepinaniJazyku.anglictina.tip" var="prepinaniJazykuAnglictinaTip"/>
   82.33 +		<a href="?jazyk=cs"><img src="grafika/jazyk_cs.png" alt="${prepinaniJazykuCestina}" title="${prepinaniJazykuCestinaTip}"/></a>
   82.34 +		<a href="?jazyk=sk"><img src="grafika/jazyk_sk.png" alt="${prepinaniJazykuSlovenstina}" title="${prepinaniJazykuSlovenstinaTip}"/></a>
   82.35 +		<a href="?jazyk=en"><img src="grafika/jazyk_en.png" alt="${prepinaniJazykuAnglictina}" title="${prepinaniJazykuAnglictinaTip}"/></a>
   82.36 +	</div>
   82.37  
   82.38  </jsp:root>
   82.39 \ No newline at end of file
    83.1 --- a/java/nekurak.net-web/web/WEB-INF/tags/nekurak/stranka.tag	Sat Jun 19 14:37:11 2010 +0200
    83.2 +++ b/java/nekurak.net-web/web/WEB-INF/tags/nekurak/stranka.tag	Sun Jun 20 14:46:47 2010 +0200
    83.3 @@ -1,87 +1,87 @@
    83.4  <?xml version="1.0" encoding="UTF-8"?>
    83.5  <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    83.6 -	  xmlns:c="http://java.sun.com/jsp/jstl/core"
    83.7 -	  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    83.8 -	  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
    83.9 -	  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   83.10 -	  xmlns:nkfn="/WEB-INF/nekurakFunkce"
   83.11 -	  version="2.0">
   83.12 +		  xmlns:c="http://java.sun.com/jsp/jstl/core"
   83.13 +		  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
   83.14 +		  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
   83.15 +		  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   83.16 +		  xmlns:nkfn="/WEB-INF/nekurakFunkce"
   83.17 +		  version="2.0">
   83.18  
   83.19 -    <jsp:directive.attribute name="titulek" type="java.lang.String" required="false"/>
   83.20 -    <jsp:directive.tag description="Obaluje všechny stránky – obsahuje XHTML záhlaví a zápatí"/>
   83.21 +	<jsp:directive.attribute name="titulek" type="java.lang.String" required="false"/>
   83.22 +	<jsp:directive.tag description="Obaluje všechny stránky – obsahuje XHTML záhlaví a zápatí"/>
   83.23  
   83.24 -    <jsp:output doctype-public="-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN"
   83.25 -		doctype-system="http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd"
   83.26 -		doctype-root-element="html"
   83.27 -		omit-xml-declaration="false"/>
   83.28 +	<jsp:output doctype-public="-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN"
   83.29 +				doctype-system="http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd"
   83.30 +				doctype-root-element="html"
   83.31 +				omit-xml-declaration="false"/>
   83.32  
   83.33 -    <html xmlns="http://www.w3.org/1999/xhtml">
   83.34 -	<head>
   83.35 -	    <c:choose>
   83.36 -		<c:when test="${titulek == null}">
   83.37 -		    <title><fmt:message key="nazev"/></title>
   83.38 -		</c:when>
   83.39 -		<c:otherwise>
   83.40 -		    <title>${fn:escapeXml(titulek)} – <fmt:message key="nazev"/></title>
   83.41 -		</c:otherwise>
   83.42 -	    </c:choose>
   83.43 -	    <link href="styl.css" type="text/css" rel="StyleSheet"/>
   83.44 -	    <script type="text/javascript" src="js/jquery.js"></script>
   83.45 -	    <script type="text/javascript" src="js/jquery.bxSlider.js"></script>
   83.46 -	    <script type="text/javascript" src="js/hlasovani.js"></script>
   83.47 -	    <script type="text/javascript" src="js/komentare.js"></script>
   83.48 -	    <link rel="alternate" type="application/atom+xml" title="podniky" href="atom/" />
   83.49 -	    <fmt:message key="meta.popis" var="metaPopis"/>
   83.50 -	    <fmt:message key="meta.klicova-slova" var="metaKlicovaSlova"/>
   83.51 -	    <fmt:message key="meta.autor" var="metaAutor"/>
   83.52 -	    <meta name="description" content="${metaPopis}"/>
   83.53 -	    <meta name="keywords" content="${metaKlicovaSlova}" />
   83.54 -	    <meta name="author" content="${metaAutor}"/>
   83.55 -	    <meta name="robots" content="index, follow" />
   83.56 -	</head>
   83.57 -	<body>
   83.58 -	    <div class="body">
   83.59 +	<html xmlns="http://www.w3.org/1999/xhtml">
   83.60 +		<head>
   83.61 +			<c:choose>
   83.62 +				<c:when test="${titulek == null}">
   83.63 +					<title><fmt:message key="nazev"/></title>
   83.64 +				</c:when>
   83.65 +				<c:otherwise>
   83.66 +					<title>${fn:escapeXml(titulek)} – <fmt:message key="nazev"/></title>
   83.67 +				</c:otherwise>
   83.68 +			</c:choose>
   83.69 +			<link href="styl.css" type="text/css" rel="StyleSheet"/>
   83.70 +			<script type="text/javascript" src="js/jquery.js"></script>
   83.71 +			<script type="text/javascript" src="js/jquery.bxSlider.js"></script>
   83.72 +			<script type="text/javascript" src="js/hlasovani.js"></script>
   83.73 +			<script type="text/javascript" src="js/komentare.js"></script>
   83.74 +			<link rel="alternate" type="application/atom+xml" title="podniky" href="atom/" />
   83.75 +			<fmt:message key="meta.popis" var="metaPopis"/>
   83.76 +			<fmt:message key="meta.klicova-slova" var="metaKlicovaSlova"/>
   83.77 +			<fmt:message key="meta.autor" var="metaAutor"/>
   83.78 +			<meta name="description" content="${metaPopis}"/>
   83.79 +			<meta name="keywords" content="${metaKlicovaSlova}" />
   83.80 +			<meta name="author" content="${metaAutor}"/>
   83.81 +			<meta name="robots" content="index, follow" />
   83.82 +		</head>
   83.83 +		<body>
   83.84 +			<div class="body">
   83.85  
   83.86 -		<div id="horniPruh">
   83.87 -		    <h1><a href="?"><fmt:message key="nazev"/></a></h1>
   83.88 -		</div>
   83.89 +				<div id="horniPruh">
   83.90 +					<h1><a href="?"><fmt:message key="nazev"/></a></h1>
   83.91 +				</div>
   83.92  
   83.93 -		<ul id="nabidka">
   83.94 -		    <li><a href="?"><fmt:message key="uvod"/></a></li>
   83.95 +				<ul id="nabidka">
   83.96 +					<li><a href="?"><fmt:message key="uvod"/></a></li>
   83.97  
   83.98 -		    <c:choose>
   83.99 -			<c:when test="${prihlasenyUzivatel == null}">
  83.100 -			    <li><a href="?akce=prihlaseni"><fmt:message key="prihlasitSe"/></a></li>
  83.101 -			    <li><a href="?akce=registrovatUzivatele"><fmt:message key="registrovatSe"/></a></li>
  83.102 -			</c:when>
  83.103 -			<c:otherwise>
  83.104 -			    <li><a href="?akce=pridatPodnik"><fmt:message key="pridatPodnik"/></a></li>
  83.105 -			    <li id="prihlasenyUzivatel"><fmt:message key="prihlasenyUzivatel"/>: ${prihlasenyUzivatel}</li>
  83.106 -			    <li><a href="?akce=prihlaseni&amp;amp;odhlasit=ano"><fmt:message key="odhlasitSe"/></a></li>
  83.107 -			</c:otherwise>
  83.108 -		    </c:choose>
  83.109 +					<c:choose>
  83.110 +						<c:when test="${prihlasenyUzivatel == null}">
  83.111 +							<li><a href="?akce=prihlaseni"><fmt:message key="prihlasitSe"/></a></li>
  83.112 +							<li><a href="?akce=registrovatUzivatele"><fmt:message key="registrovatSe"/></a></li>
  83.113 +						</c:when>
  83.114 +						<c:otherwise>
  83.115 +							<li><a href="?akce=pridatPodnik"><fmt:message key="pridatPodnik"/></a></li>
  83.116 +							<li id="prihlasenyUzivatel"><fmt:message key="prihlasenyUzivatel"/>: ${prihlasenyUzivatel}</li>
  83.117 +							<li><a href="?akce=prihlaseni&amp;amp;odhlasit=ano"><fmt:message key="odhlasitSe"/></a></li>
  83.118 +						</c:otherwise>
  83.119 +					</c:choose>
  83.120  
  83.121 -		</ul>
  83.122 +				</ul>
  83.123  
  83.124 -		<nk:prepinaniJazyku/>
  83.125 +				<nk:prepinaniJazyku/>
  83.126  
  83.127 -		<div id="obsah">
  83.128 +				<div id="obsah">
  83.129  
  83.130 -		    <!-- Vlastní obsah stránky -->
  83.131 -		    <jsp:doBody/>
  83.132 +					<!-- Vlastní obsah stránky -->
  83.133 +					<jsp:doBody/>
  83.134  
  83.135 -		</div>
  83.136 +				</div>
  83.137  
  83.138 -		<div id="paticka">
  83.139 -		    <p>
  83.140 -			<fmt:message key="licence"/>&amp;#160;
  83.141 -			<a href="nekurak.net-src.zip">nekurak.net-src.zip</a>
  83.142 -			<a href="nekurak.net-src.zip.SHA-512">.</a>
  83.143 -		    </p>
  83.144 -		</div>
  83.145 +				<div id="paticka">
  83.146 +					<p>
  83.147 +						<fmt:message key="licence"/>&amp;#160;
  83.148 +						<a href="nekurak.net-src.zip">nekurak.net-src.zip</a>
  83.149 +						<a href="nekurak.net-src.zip.SHA-512">.</a>
  83.150 +					</p>
  83.151 +				</div>
  83.152  
  83.153 -	    </div>
  83.154 -	</body>
  83.155 -    </html>
  83.156 +			</div>
  83.157 +		</body>
  83.158 +	</html>
  83.159  
  83.160  </jsp:root>
  83.161 \ No newline at end of file
    84.1 --- a/java/nekurak.net-web/web/WEB-INF/web.xml	Sat Jun 19 14:37:11 2010 +0200
    84.2 +++ b/java/nekurak.net-web/web/WEB-INF/web.xml	Sun Jun 20 14:46:47 2010 +0200
    84.3 @@ -1,109 +1,109 @@
    84.4  <?xml version="1.0" encoding="UTF-8"?>
    84.5  <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    84.6 -    <session-config>
    84.7 -	<session-timeout>30</session-timeout>
    84.8 -    </session-config>
    84.9 -    <welcome-file-list>
   84.10 -	<welcome-file>index.jsp</welcome-file>
   84.11 -    </welcome-file-list>
   84.12 +	<session-config>
   84.13 +		<session-timeout>30</session-timeout>
   84.14 +	</session-config>
   84.15 +	<welcome-file-list>
   84.16 +		<welcome-file>index.jsp</welcome-file>
   84.17 +	</welcome-file-list>
   84.18      <!-- <chybovéStránky> -->
   84.19 -    <error-page>
   84.20 +	<error-page>
   84.21  	<!-- Stránka nenalezena -->
   84.22 -	<error-code>404</error-code>
   84.23 -	<location>/WEB-INF/chyby/404.jsp</location>
   84.24 -    </error-page>
   84.25 -    <error-page>
   84.26 +		<error-code>404</error-code>
   84.27 +		<location>/WEB-INF/chyby/404.jsp</location>
   84.28 +	</error-page>
   84.29 +	<error-page>
   84.30  	<!-- Interní chyba serveru -->
   84.31 -	<error-code>500</error-code>
   84.32 -	<location>/WEB-INF/chyby/500.jsp</location>
   84.33 -    </error-page>
   84.34 +		<error-code>500</error-code>
   84.35 +		<location>/WEB-INF/chyby/500.jsp</location>
   84.36 +	</error-page>
   84.37      <!-- </chybovéStránky> -->
   84.38      <!-- <definiceServletů> -->
   84.39 -    <servlet>
   84.40 -	<servlet-name>atom</servlet-name>
   84.41 -	<jsp-file>/WEB-INF/atom/atom.jsp</jsp-file>
   84.42 -    </servlet>
   84.43 -    <servlet>
   84.44 -	<description>
   84.45 +	<servlet>
   84.46 +		<servlet-name>atom</servlet-name>
   84.47 +		<jsp-file>/WEB-INF/atom/atom.jsp</jsp-file>
   84.48 +	</servlet>
   84.49 +	<servlet>
   84.50 +		<description>
   84.51  	    Servlet zpřístupňující fotky umístěné ve zvláštním adresáři
   84.52  	    (data oddělená od aplikace).
   84.53 -	</description>
   84.54 -	<servlet-name>fotky</servlet-name>
   84.55 -	<servlet-class>cz.frantovo.nekurak.servlet.Fotky</servlet-class>
   84.56 -	<init-param>
   84.57 -	    <description>
   84.58 +		</description>
   84.59 +		<servlet-name>fotky</servlet-name>
   84.60 +		<servlet-class>cz.frantovo.nekurak.servlet.Fotky</servlet-class>
   84.61 +		<init-param>
   84.62 +			<description>
   84.63  		Adresář na disku, který obsahuje fotky podniků.
   84.64  		Musí existovat při startu aplikace.
   84.65 -	    </description>
   84.66 -	    <param-name>adresar</param-name>
   84.67 -	    <param-value>/var/www/nekurak.net/fotky</param-value>
   84.68 -	</init-param>
   84.69 -	<load-on-startup>1</load-on-startup>
   84.70 -    </servlet>
   84.71 -    <servlet>
   84.72 -	<servlet-name>kaptcha</servlet-name>
   84.73 -	<servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>
   84.74 -    </servlet>
   84.75 -    <servlet>
   84.76 -	<description>Veřejné REST API (pak máme ještě jedno soukromé, kde musí být uživatel přihlášený)</description>
   84.77 -	<servlet-name>REST</servlet-name>
   84.78 -	<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
   84.79 -	<load-on-startup>1</load-on-startup>
   84.80 -    </servlet>
   84.81 -    <servlet>
   84.82 -	<description>Odesílání a náhledy komentářů pomocí AJAXu.</description>
   84.83 -	<servlet-name>komentare</servlet-name>
   84.84 -	<servlet-class>cz.frantovo.nekurak.servlet.Komentare</servlet-class>
   84.85 -    </servlet>
   84.86 +			</description>
   84.87 +			<param-name>adresar</param-name>
   84.88 +			<param-value>/var/www/nekurak.net/fotky</param-value>
   84.89 +		</init-param>
   84.90 +		<load-on-startup>1</load-on-startup>
   84.91 +	</servlet>
   84.92 +	<servlet>
   84.93 +		<servlet-name>kaptcha</servlet-name>
   84.94 +		<servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>
   84.95 +	</servlet>
   84.96 +	<servlet>
   84.97 +		<description>Veřejné REST API (pak máme ještě jedno soukromé, kde musí být uživatel přihlášený)</description>
   84.98 +		<servlet-name>REST</servlet-name>
   84.99 +		<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
  84.100 +		<load-on-startup>1</load-on-startup>
  84.101 +	</servlet>
  84.102 +	<servlet>
  84.103 +		<description>Odesílání a náhledy komentářů pomocí AJAXu.</description>
  84.104 +		<servlet-name>komentare</servlet-name>
  84.105 +		<servlet-class>cz.frantovo.nekurak.servlet.Komentare</servlet-class>
  84.106 +	</servlet>
  84.107      <!-- </definiceServletů> -->
  84.108      <!-- <mapováníServletů> -->
  84.109 -    <servlet-mapping>
  84.110 -	<servlet-name>fotky</servlet-name>
  84.111 -	<url-pattern>/fotky/*</url-pattern>
  84.112 -    </servlet-mapping>
  84.113 -    <servlet-mapping>
  84.114 -	<servlet-name>atom</servlet-name>
  84.115 -	<url-pattern>/atom/*</url-pattern>
  84.116 -    </servlet-mapping>
  84.117 -    <servlet-mapping>
  84.118 -	<servlet-name>kaptcha</servlet-name>
  84.119 -	<url-pattern>/kaptcha.jpg</url-pattern>
  84.120 -    </servlet-mapping>
  84.121 -    <servlet-mapping>
  84.122 +	<servlet-mapping>
  84.123 +		<servlet-name>fotky</servlet-name>
  84.124 +		<url-pattern>/fotky/*</url-pattern>
  84.125 +	</servlet-mapping>
  84.126 +	<servlet-mapping>
  84.127 +		<servlet-name>atom</servlet-name>
  84.128 +		<url-pattern>/atom/*</url-pattern>
  84.129 +	</servlet-mapping>
  84.130 +	<servlet-mapping>
  84.131 +		<servlet-name>kaptcha</servlet-name>
  84.132 +		<url-pattern>/kaptcha.jpg</url-pattern>
  84.133 +	</servlet-mapping>
  84.134 +	<servlet-mapping>
  84.135  	<!-- Veřejné REST API -->
  84.136 -	<servlet-name>REST</servlet-name>
  84.137 -	<url-pattern>/zdroje/*</url-pattern>
  84.138 -    </servlet-mapping>
  84.139 -    <servlet-mapping>
  84.140 -	<servlet-name>komentare</servlet-name>
  84.141 -	<url-pattern>/komentare</url-pattern>
  84.142 -    </servlet-mapping>
  84.143 +		<servlet-name>REST</servlet-name>
  84.144 +		<url-pattern>/zdroje/*</url-pattern>
  84.145 +	</servlet-mapping>
  84.146 +	<servlet-mapping>
  84.147 +		<servlet-name>komentare</servlet-name>
  84.148 +		<url-pattern>/komentare</url-pattern>
  84.149 +	</servlet-mapping>
  84.150      <!-- </mapováníServletů> -->
  84.151 -    <context-param>
  84.152 +	<context-param>
  84.153  	<!-- Pro případ, že chybí hlavička „Accept-language“ v HTTP požadavku -->
  84.154 -	<param-name>javax.servlet.jsp.jstl.fmt.fallbackLocale</param-name>
  84.155 -	<param-value>cs</param-value>
  84.156 -    </context-param>
  84.157 +		<param-name>javax.servlet.jsp.jstl.fmt.fallbackLocale</param-name>
  84.158 +		<param-value>cs</param-value>
  84.159 +	</context-param>
  84.160      <!--  <zabezpečení> -->
  84.161 -    <security-role>
  84.162 -	<role-name>opravneny</role-name>
  84.163 -    </security-role>
  84.164 -    <security-constraint>
  84.165 -	<web-resource-collection>
  84.166 -	    <web-resource-name>Správa Nekuřák.net</web-resource-name>
  84.167 -	    <url-pattern>/sprava/*</url-pattern>
  84.168 -	</web-resource-collection>
  84.169 -	<auth-constraint>
  84.170 -	    <role-name>opravneny</role-name>
  84.171 -	</auth-constraint>
  84.172 -    </security-constraint>
  84.173 -    <login-config>
  84.174 -	<auth-method>FORM</auth-method>
  84.175 -	<realm-name>nekurakNET</realm-name>
  84.176 -	<form-login-config>
  84.177 -	    <form-login-page>/?akce=prihlaseni</form-login-page>
  84.178 -	    <form-error-page>/?akce=prihlaseni&amp;chyba=ano</form-error-page>
  84.179 -	</form-login-config>
  84.180 -    </login-config>
  84.181 +	<security-role>
  84.182 +		<role-name>opravneny</role-name>
  84.183 +	</security-role>
  84.184 +	<security-constraint>
  84.185 +		<web-resource-collection>
  84.186 +			<web-resource-name>Správa Nekuřák.net</web-resource-name>
  84.187 +			<url-pattern>/sprava/*</url-pattern>
  84.188 +		</web-resource-collection>
  84.189 +		<auth-constraint>
  84.190 +			<role-name>opravneny</role-name>
  84.191 +		</auth-constraint>
  84.192 +	</security-constraint>
  84.193 +	<login-config>
  84.194 +		<auth-method>FORM</auth-method>
  84.195 +		<realm-name>nekurakNET</realm-name>
  84.196 +		<form-login-config>
  84.197 +			<form-login-page>/?akce=prihlaseni</form-login-page>
  84.198 +			<form-error-page>/?akce=prihlaseni&amp;chyba=ano</form-error-page>
  84.199 +		</form-login-config>
  84.200 +	</login-config>
  84.201      <!--  </zabezpečení> -->
  84.202  </web-app>
    85.1 --- a/java/nekurak.net-web/web/hlasovani-svg.jsp	Sat Jun 19 14:37:11 2010 +0200
    85.2 +++ b/java/nekurak.net-web/web/hlasovani-svg.jsp	Sun Jun 20 14:46:47 2010 +0200
    85.3 @@ -1,16 +1,16 @@
    85.4  <?xml version="1.0" encoding="UTF-8"?>
    85.5  <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    85.6 -	  xmlns:c="http://java.sun.com/jsp/jstl/core"
    85.7 -	  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    85.8 -	  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
    85.9 -	  xmlns:svg="http://www.w3.org/2000/svg"
   85.10 -	  xmlns:xlink="http://www.w3.org/1999/xlink"
   85.11 -	  version="2.0">
   85.12 -    <jsp:directive.page contentType="image/svg+xml"/>
   85.13 +		  xmlns:c="http://java.sun.com/jsp/jstl/core"
   85.14 +		  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
   85.15 +		  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   85.16 +		  xmlns:svg="http://www.w3.org/2000/svg"
   85.17 +		  xmlns:xlink="http://www.w3.org/1999/xlink"
   85.18 +		  version="2.0">
   85.19 +	<jsp:directive.page contentType="image/svg+xml"/>
   85.20  
   85.21 -    <fmt:setBundle basename="cz.frantovo.nekurak.preklady" scope="application"/>
   85.22 +	<fmt:setBundle basename="cz.frantovo.nekurak.preklady" scope="application"/>
   85.23  
   85.24 -    <!-- na této úrovni nemusíme ošetřovat vstup – jako parametry projdou jen správné datové typy -->
   85.25 -    <nk:hlasovani svgUvnitrXhtml="true" hlasuAno="${param.hlasuAno}" hlasuNe="${param.hlasuNe}" podnik="${param.podnik}"/>
   85.26 +	<!-- na této úrovni nemusíme ošetřovat vstup – jako parametry projdou jen správné datové typy -->
   85.27 +	<nk:hlasovani svgUvnitrXhtml="true" hlasuAno="${param.hlasuAno}" hlasuNe="${param.hlasuNe}" podnik="${param.podnik}"/>
   85.28  
   85.29  </jsp:root>
   85.30 \ No newline at end of file
    86.1 --- a/java/nekurak.net-web/web/index.jsp	Sat Jun 19 14:37:11 2010 +0200
    86.2 +++ b/java/nekurak.net-web/web/index.jsp	Sun Jun 20 14:46:47 2010 +0200
    86.3 @@ -1,52 +1,52 @@
    86.4  <?xml version="1.0" encoding="UTF-8"?>
    86.5  <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    86.6 -	  xmlns:c="http://java.sun.com/jsp/jstl/core"
    86.7 -	  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    86.8 -	  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
    86.9 -	  version="2.0">
   86.10 -    <jsp:directive.page contentType="application/xhtml+xml"/>
   86.11 +		  xmlns:c="http://java.sun.com/jsp/jstl/core"
   86.12 +		  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
   86.13 +		  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   86.14 +		  version="2.0">
   86.15 +	<jsp:directive.page contentType="application/xhtml+xml"/>
   86.16  
   86.17 -    <!-- <lokalizace> -->
   86.18 -    <c:if test="${param.jazyk != null}">
   86.19 -	<fmt:setLocale value="${param.jazyk}" scope="session"/>
   86.20 -    </c:if>
   86.21 -    <fmt:setBundle basename="cz.frantovo.nekurak.preklady" scope="application"/>
   86.22 -    <!-- </lokalizace> -->
   86.23 +	<!-- <lokalizace> -->
   86.24 +	<c:if test="${param.jazyk != null}">
   86.25 +		<fmt:setLocale value="${param.jazyk}" scope="session"/>
   86.26 +	</c:if>
   86.27 +	<fmt:setBundle basename="cz.frantovo.nekurak.preklady" scope="application"/>
   86.28 +	<!-- </lokalizace> -->
   86.29  
   86.30 -    <!-- <autentizace> -->
   86.31 -    <c:set var="prihlasenyUzivatel" scope="request" value="${pageContext.request.userPrincipal.name}"/>
   86.32 -    <c:if test="${param.akce == 'prihlaseni' &amp;&amp; param.odhlasit == 'ano'}">
   86.33 -	<!--
   86.34 -	    Uživatele musíme odhlásit dřív, než vykreslíme nabídku,
   86.35 -	    která závisí na tom, zda je uživatel přihlášený nebo ne.
   86.36 -	    „prihlaseni.jsp?odhlasit=ano“ už vypíše jen hlášku, že byl odhlášen.
   86.37 -	-->
   86.38 -	<jsp:scriptlet>session.invalidate();</jsp:scriptlet>
   86.39 -	<c:set var="prihlasenyUzivatel" scope="request" value="${null}"/>
   86.40 -    </c:if>
   86.41 -    <!-- </autentizace> -->
   86.42 +	<!-- <autentizace> -->
   86.43 +	<c:set var="prihlasenyUzivatel" scope="request" value="${pageContext.request.userPrincipal.name}"/>
   86.44 +	<c:if test="${param.akce == 'prihlaseni' &amp;&amp; param.odhlasit == 'ano'}">
   86.45 +		<!--
   86.46 +			Uživatele musíme odhlásit dřív, než vykreslíme nabídku,
   86.47 +			která závisí na tom, zda je uživatel přihlášený nebo ne.
   86.48 +			„prihlaseni.jsp?odhlasit=ano“ už vypíše jen hlášku, že byl odhlášen.
   86.49 +		-->
   86.50 +		<jsp:scriptlet>session.invalidate();</jsp:scriptlet>
   86.51 +		<c:set var="prihlasenyUzivatel" scope="request" value="${null}"/>
   86.52 +	</c:if>
   86.53 +	<!-- </autentizace> -->
   86.54  
   86.55 -    <!-- <výběrStránky> -->
   86.56 -    <c:choose>
   86.57 -	<c:when test="${param.akce == 'detail'}">
   86.58 -	    <jsp:include page="/WEB-INF/casti/detail.jsp" flush="false"/>
   86.59 -	</c:when>
   86.60 -	<c:when test="${param.akce == 'pridatPodnik'}">
   86.61 -	    <jsp:include page="/WEB-INF/casti/pridatPodnik.jsp" flush="false"/>
   86.62 -	</c:when>
   86.63 -	<c:when test="${param.akce == 'registrovatUzivatele'}">
   86.64 -	    <jsp:include page="/WEB-INF/casti/registrovatUzivatele.jsp" flush="false"/>
   86.65 -	</c:when>
   86.66 -	<c:when test="${param.akce == 'prihlaseni'}">
   86.67 -	    <jsp:include page="/WEB-INF/casti/prihlaseni.jsp" flush="false"/>
   86.68 -	</c:when>
   86.69 -	<c:when test="${param.akce == 'odeslatKomentar'}">
   86.70 -	    <jsp:include page="/WEB-INF/casti/odeslatKomentar.jsp" flush="false"/>
   86.71 -	</c:when>
   86.72 -	<c:otherwise>
   86.73 -	    <jsp:include page="/WEB-INF/casti/uvod.jsp" flush="false"/>
   86.74 -	</c:otherwise>
   86.75 -    </c:choose>
   86.76 -    <!-- </výběrStránky> -->
   86.77 +	<!-- <výběrStránky> -->
   86.78 +	<c:choose>
   86.79 +		<c:when test="${param.akce == 'detail'}">
   86.80 +			<jsp:include page="/WEB-INF/casti/detail.jsp" flush="false"/>
   86.81 +		</c:when>
   86.82 +		<c:when test="${param.akce == 'pridatPodnik'}">
   86.83 +			<jsp:include page="/WEB-INF/casti/pridatPodnik.jsp" flush="false"/>
   86.84 +		</c:when>
   86.85 +		<c:when test="${param.akce == 'registrovatUzivatele'}">
   86.86 +			<jsp:include page="/WEB-INF/casti/registrovatUzivatele.jsp" flush="false"/>
   86.87 +		</c:when>
   86.88 +		<c:when test="${param.akce == 'prihlaseni'}">
   86.89 +			<jsp:include page="/WEB-INF/casti/prihlaseni.jsp" flush="false"/>
   86.90 +		</c:when>
   86.91 +		<c:when test="${param.akce == 'odeslatKomentar'}">
   86.92 +			<jsp:include page="/WEB-INF/casti/odeslatKomentar.jsp" flush="false"/>
   86.93 +		</c:when>
   86.94 +		<c:otherwise>
   86.95 +			<jsp:include page="/WEB-INF/casti/uvod.jsp" flush="false"/>
   86.96 +		</c:otherwise>
   86.97 +	</c:choose>
   86.98 +	<!-- </výběrStránky> -->
   86.99  
  86.100  </jsp:root>
    87.1 --- a/java/nekurak.net-web/web/js/fotkyPodniku.js	Sat Jun 19 14:37:11 2010 +0200
    87.2 +++ b/java/nekurak.net-web/web/js/fotkyPodniku.js	Sun Jun 20 14:46:47 2010 +0200
    87.3 @@ -1,12 +1,12 @@
    87.4  var fotkyPodniku = {};
    87.5  
    87.6  fotkyPodniku.aktivuj = function (id) {
    87.7 -    $("#fotkyPodniku" + id).bxSlider({
    87.8 -	mode: "slide",
    87.9 -	speed: 250,
   87.10 -	controls: true,
   87.11 -	next_text: "→",
   87.12 -	prev_text: "←",
   87.13 -	wrapper_class: "fotkyPodniku"
   87.14 -    });
   87.15 +	$("#fotkyPodniku" + id).bxSlider({
   87.16 +		mode: "slide",
   87.17 +		speed: 250,
   87.18 +		controls: true,
   87.19 +		next_text: "→",
   87.20 +		prev_text: "←",
   87.21 +		wrapper_class: "fotkyPodniku"
   87.22 +	});
   87.23  };
    88.1 --- a/java/nekurak.net-web/web/js/hlasovani.js	Sat Jun 19 14:37:11 2010 +0200
    88.2 +++ b/java/nekurak.net-web/web/js/hlasovani.js	Sun Jun 20 14:46:47 2010 +0200
    88.3 @@ -1,23 +1,23 @@
    88.4  var hlasovani = {};
    88.5  
    88.6  hlasovani.hlasuj = function (podnik, hlas) {
    88.7 -    var pozadavek = "<hlas><kourit>" + hlas + "</kourit><podnik>" + podnik + "</podnik></hlas>";
    88.8 +	var pozadavek = "<hlas><kourit>" + hlas + "</kourit><podnik>" + podnik + "</podnik></hlas>";
    88.9  
   88.10 -    $.ajax({
   88.11 -	type: "POST",
   88.12 -	url: "zdroje/hlas/",
   88.13 -	data: pozadavek,
   88.14 -	contentType: "text/xml",
   88.15 -	dataType: "text",
   88.16 -	success: function(odpoved) {
   88.17 -	    if (odpoved == "ok") {
   88.18 -		/** TODO: předělat informaci – nepoužívat alert ale text v SVG */
   88.19 -		/** TODO: Lokalizace */
   88.20 -		alert("Váš hlas byl přijat.");
   88.21 -	    } else {
   88.22 -		/** TODO: předělat ošetřování chyb */
   88.23 -		alert("Při hlasování došlo k chybě.");
   88.24 -	    }
   88.25 -	}
   88.26 -    });
   88.27 +	$.ajax({
   88.28 +		type: "POST",
   88.29 +		url: "zdroje/hlas/",
   88.30 +		data: pozadavek,
   88.31 +		contentType: "text/xml",
   88.32 +		dataType: "text",
   88.33 +		success: function(odpoved) {
   88.34 +			if (odpoved == "ok") {
   88.35 +				/** TODO: předělat informaci – nepoužívat alert ale text v SVG */
   88.36 +				/** TODO: Lokalizace */
   88.37 +				alert("Váš hlas byl přijat.");
   88.38 +			} else {
   88.39 +				/** TODO: předělat ošetřování chyb */
   88.40 +				alert("Při hlasování došlo k chybě.");
   88.41 +			}
   88.42 +		}
   88.43 +	});
   88.44  };
    89.1 --- a/java/nekurak.net-web/web/js/komentare.js	Sat Jun 19 14:37:11 2010 +0200
    89.2 +++ b/java/nekurak.net-web/web/js/komentare.js	Sun Jun 20 14:46:47 2010 +0200
    89.3 @@ -1,13 +1,13 @@
    89.4  var komentare = {};
    89.5  
    89.6  komentare.zobrazFormular = function () {
    89.7 -    $("#formularKomentuj").toggle();
    89.8 +	$("#formularKomentuj").toggle();
    89.9  };
   89.10  
   89.11  komentare.nahled = function() {
   89.12 -    $("#formularKomentuj .vystup").load("komentare", $("#formularKomentuj form").serialize());
   89.13 +	$("#formularKomentuj .vystup").load("komentare", $("#formularKomentuj form").serialize());
   89.14  };
   89.15  
   89.16  komentare.odeslat = function() {
   89.17 -    $("#formularKomentuj .vystup").load("komentare?odeslat=true", $("#formularKomentuj form").serialize());
   89.18 +	$("#formularKomentuj .vystup").load("komentare?odeslat=true", $("#formularKomentuj form").serialize());
   89.19  };
    90.1 --- a/java/nekurak.net-web/web/kaptcha.jsp	Sat Jun 19 14:37:11 2010 +0200
    90.2 +++ b/java/nekurak.net-web/web/kaptcha.jsp	Sun Jun 20 14:46:47 2010 +0200
    90.3 @@ -1,72 +1,72 @@
    90.4  <?xml version="1.0" encoding="UTF-8"?>
    90.5  <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    90.6 -	  xmlns:c="http://java.sun.com/jsp/jstl/core"
    90.7 -	  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    90.8 -	  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
    90.9 -	  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   90.10 -	  version="2.0">
   90.11 +		  xmlns:c="http://java.sun.com/jsp/jstl/core"
   90.12 +		  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
   90.13 +		  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
   90.14 +		  xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
   90.15 +		  version="2.0">
   90.16  
   90.17 -    <jsp:directive.page contentType="application/xhtml+xml"/>
   90.18 +	<jsp:directive.page contentType="application/xhtml+xml"/>
   90.19  
   90.20 -    <!-- <lokalizace> -->
   90.21 -    <c:if test="${param.jazyk != null}">
   90.22 -	<fmt:setLocale value="${param.jazyk}" scope="session"/>
   90.23 -    </c:if>
   90.24 -    <fmt:setBundle basename="cz.frantovo.nekurak.preklady" scope="application"/>
   90.25 -    <!-- </lokalizace> -->
   90.26 +	<!-- <lokalizace> -->
   90.27 +	<c:if test="${param.jazyk != null}">
   90.28 +		<fmt:setLocale value="${param.jazyk}" scope="session"/>
   90.29 +	</c:if>
   90.30 +	<fmt:setBundle basename="cz.frantovo.nekurak.preklady" scope="application"/>
   90.31 +	<!-- </lokalizace> -->
   90.32  
   90.33 -    <nk:stranka titulek="Kaptcha">
   90.34 +	<nk:stranka titulek="Kaptcha">
   90.35  
   90.36 -	<h1><c:out value="Kaptcha – ukázka"/></h1>
   90.37 -
   90.38 -	<c:choose>
   90.39 -	    <c:when test="${param.akce == 'odeslat'}">
   90.40 -		<p>Odeslané údaje:</p>
   90.41 -
   90.42 -		<p>Políčko 1: <c:out value="${param.policko1}"/></p>
   90.43 -		<p>Políčko 2: <c:out value="${param.policko2}"/></p>
   90.44 -		<p>Kaptcha: <c:out value="${param.kaptcha}"/></p>
   90.45 -
   90.46 -		<p>Očekávaná hodnota: <c:out value="${sessionScope['KAPTCHA_SESSION_KEY']}"/></p>
   90.47 +		<h1><c:out value="Kaptcha – ukázka"/></h1>
   90.48  
   90.49  		<c:choose>
   90.50 -		    <c:when test="${sessionScope['KAPTCHA_SESSION_KEY'] == param.kaptcha}">
   90.51 -			<p class="informacniHlaska">Správně opsaný kód z obrázku.</p>
   90.52 -		    </c:when>
   90.53 -		    <c:otherwise>
   90.54 -			<p class="chybovaHlaska">Špatně obsaný kód z obrázku.</p>
   90.55 -		    </c:otherwise>
   90.56 +			<c:when test="${param.akce == 'odeslat'}">
   90.57 +				<p>Odeslané údaje:</p>
   90.58 +
   90.59 +				<p>Políčko 1: <c:out value="${param.policko1}"/></p>
   90.60 +				<p>Políčko 2: <c:out value="${param.policko2}"/></p>
   90.61 +				<p>Kaptcha: <c:out value="${param.kaptcha}"/></p>
   90.62 +
   90.63 +				<p>Očekávaná hodnota: <c:out value="${sessionScope['KAPTCHA_SESSION_KEY']}"/></p>
   90.64 +
   90.65 +				<c:choose>
   90.66 +					<c:when test="${sessionScope['KAPTCHA_SESSION_KEY'] == param.kaptcha}">
   90.67 +						<p class="informacniHlaska">Správně opsaný kód z obrázku.</p>
   90.68 +					</c:when>
   90.69 +					<c:otherwise>
   90.70 +						<p class="chybovaHlaska">Špatně obsaný kód z obrázku.</p>
   90.71 +					</c:otherwise>
   90.72 +				</c:choose>
   90.73 +
   90.74 +
   90.75 +
   90.76 +			</c:when>
   90.77 +			<c:otherwise>
   90.78 +				<!-- Zobrazíme uživateli registrační formulář. -->
   90.79 +				<p>Nějaký formulář, který chceme ochránit proti spamu:</p>
   90.80 +				<form method="post" action="kaptcha.jsp?akce=odeslat">
   90.81 +					<fieldset>
   90.82 +						<label>Políčko 1: <input type="text" name="policko1" maxlength="255"/></label><br/>
   90.83 +						<label>Políčko 2: <input type="text" name="policko2" maxlength="255"/></label><br/>
   90.84 +					</fieldset>
   90.85 +					<fieldset>
   90.86 +						<!-- Kaptcha -->
   90.87 +						<img src="kaptcha.jpg" alt="ochrana proti spamu" id="kaptchaIMG" title="klikněte pro vygenerování nového obrázku"/><br/>
   90.88 +						<script type="text/javascript">
   90.89 +							$(function(){
   90.90 +								$('#kaptchaIMG').click(function () { $(this).attr('src', 'kaptcha.jpg?' + Math.floor(Math.random()*100) ); })
   90.91 +							});
   90.92 +						</script>
   90.93 +
   90.94 +						<label>Opište: <input type="text" name="kaptcha" maxlength="255"/></label><br/>
   90.95 +					</fieldset>
   90.96 +					<fieldset>
   90.97 +						<button value="submit">Odeslat</button>
   90.98 +					</fieldset>
   90.99 +				</form>
  90.100 +			</c:otherwise>
  90.101  		</c:choose>
  90.102  
  90.103 -
  90.104 -
  90.105 -	    </c:when>
  90.106 -	    <c:otherwise>
  90.107 -		<!-- Zobrazíme uživateli registrační formulář. -->
  90.108 -		<p>Nějaký formulář, který chceme ochránit proti spamu:</p>
  90.109 -		<form method="post" action="kaptcha.jsp?akce=odeslat">
  90.110 -		    <fieldset>
  90.111 -			<label>Políčko 1: <input type="text" name="policko1" maxlength="255"/></label><br/>
  90.112 -			<label>Políčko 2: <input type="text" name="policko2" maxlength="255"/></label><br/>
  90.113 -		    </fieldset>
  90.114 -		    <fieldset>
  90.115 -			<!-- Kaptcha -->
  90.116 -			<img src="kaptcha.jpg" alt="ochrana proti spamu" id="kaptchaIMG" title="klikněte pro vygenerování nového obrázku"/><br/>
  90.117 -			<script type="text/javascript">
  90.118 -			    $(function(){
  90.119 -				$('#kaptchaIMG').click(function () { $(this).attr('src', 'kaptcha.jpg?' + Math.floor(Math.random()*100) ); })
  90.120 -			    });
  90.121 -			</script>
  90.122 -
  90.123 -			<label>Opište: <input type="text" name="kaptcha" maxlength="255"/></label><br/>
  90.124 -		    </fieldset>
  90.125 -		    <fieldset>
  90.126 -			<button value="submit">Odeslat</button>
  90.127 -		    </fieldset>
  90.128 -		</form>
  90.129 -	    </c:otherwise>
  90.130 -	</c:choose>
  90.131 -
  90.132 -    </nk:stranka>
  90.133 +	</nk:stranka>
  90.134  
  90.135  </jsp:root>
    91.1 --- a/java/nekurak.net-web/web/sprava/index.jsp	Sat Jun 19 14:37:11 2010 +0200
    91.2 +++ b/java/nekurak.net-web/web/sprava/index.jsp	Sun Jun 20 14:46:47 2010 +0200
    91.3 @@ -3,29 +3,29 @@
    91.4  	  xmlns:c="http://java.sun.com/jsp/jstl/core"
    91.5  	  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    91.6  	  version="2.0">
    91.7 -    <jsp:directive.page contentType="application/xhtml+xml"/>
    91.8 -    <jsp:output doctype-system="http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd"
    91.9 +	<jsp:directive.page contentType="application/xhtml+xml"/>
   91.10 +	<jsp:output doctype-system="http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd"
   91.11  		doctype-root-element="html"
   91.12  		omit-xml-declaration="false"/>
   91.13  
   91.14 -    <!-- <lokalizace> -->
   91.15 -    <c:if test="${param.jazyk != null}">
   91.16 +	<!-- <lokalizace> -->
   91.17 +	<c:if test="${param.jazyk != null}">
   91.18  	<fmt:setLocale value="${param.jazyk}"/>
   91.19 -    </c:if>
   91.20 -    <fmt:setBundle basename="cz.frantovo.nekurak.preklady" scope="application"/>
   91.21 -    <!-- </lokalizace> -->
   91.22 +	</c:if>
   91.23 +	<fmt:setBundle basename="cz.frantovo.nekurak.preklady" scope="application"/>
   91.24 +	<!-- </lokalizace> -->
   91.25  
   91.26 -    <html xmlns="http://www.w3.org/1999/xhtml"
   91.27 +	<html xmlns="http://www.w3.org/1999/xhtml"
   91.28  	  xmlns:svg="http://www.w3.org/2000/svg"
   91.29  	  xmlns:xlink="http://www.w3.org/1999/xlink">
   91.30  	<head>
   91.31 -	    <title><fmt:message key="nazev"/></title>
   91.32 -	    <link href="styl.css" type="text/css" rel="StyleSheet"/>
   91.33 +		<title><fmt:message key="nazev"/></title>
   91.34 +		<link href="styl.css" type="text/css" rel="StyleSheet"/>
   91.35  	</head>
   91.36  	<body>
   91.37 -	    <h1>Správa</h1>
   91.38 -	    <p>Nějaká chráněná část aplikace, kam se nepřihlášený uživatel nedostane.</p>
   91.39 +		<h1>Správa</h1>
   91.40 +		<p>Nějaká chráněná část aplikace, kam se nepřihlášený uživatel nedostane.</p>
   91.41  	</body>
   91.42 -    </html>
   91.43 +	</html>
   91.44  
   91.45  </jsp:root>
    92.1 --- a/java/nekurak.net-ws/nbproject/project.properties	Sat Jun 19 14:37:11 2010 +0200
    92.2 +++ b/java/nekurak.net-ws/nbproject/project.properties	Sun Jun 20 14:46:47 2010 +0200
    92.3 @@ -29,7 +29,7 @@
    92.4  includes=**
    92.5  j2ee.deploy.on.save=false
    92.6  j2ee.platform=1.6-web
    92.7 -j2ee.platform.classpath=${j2ee.server.home}/modules/javax.servlet.jar:${j2ee.server.home}/modules/jstl-impl.jar:${j2ee.server.home}/modules/javax.ejb.jar:${j2ee.server.home}/modules/javax.enterprise.deploy.jar:${j2ee.server.home}/modules/javax.security.jacc.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.transaction.jar:${j2ee.server.home}/modules/jsr311-api.jar:${j2ee.server.home}/modules/jsf-api.jar:${j2ee.server.home}/modules/javax.security.auth.message.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/endorsed/javax.annotation.jar:${j2ee.server.home}/modules/javax.management.j2ee.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api-osgi.jar:${j2ee.server.home}/modules/javax.jms.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.resource.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.home}/modules/jsf-impl.jar:${j2ee.server.home}/modules/mail.jar
    92.8 +j2ee.platform.classpath=
    92.9  j2ee.platform.embeddableejb.classpath=${j2ee.server.home}/lib/embedded/glassfish-embedded-static-shell.jar
   92.10  j2ee.platform.wscompile.classpath=${j2ee.server.home}/modules/webservices-osgi.jar
   92.11  j2ee.platform.wsgen.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api-osgi.jar:${j2ee.server.home}/modules/javax.ejb.jar
    93.1 --- a/java/nekurak.net-ws/src/java/cz/frantovo/nekurak/ws/Podnik.java	Sat Jun 19 14:37:11 2010 +0200
    93.2 +++ b/java/nekurak.net-ws/src/java/cz/frantovo/nekurak/ws/Podnik.java	Sun Jun 20 14:46:47 2010 +0200
    93.3 @@ -12,17 +12,16 @@
    93.4  @WebService(serviceName = "podnikSluzba", targetNamespace = "podnikNS", portName = "podnikPort")
    93.5  public class Podnik {
    93.6  
    93.7 -    @EJB
    93.8 -    PodnikRemote ejb;
    93.9 +	@EJB
   93.10 +	PodnikRemote ejb;
   93.11  
   93.12 -    /**
   93.13 -     * Projde podniky, které nemají vyplněné souřadnice,
   93.14 -     * a pokusí se je doplnit na základě poštovní adresy podniku.
   93.15 -     * @return počet podniků, u nichž jsme doplnili souřadnice
   93.16 -     */
   93.17 -    @WebMethod(operationName = "dopocitejSouradnicePodleAdres")
   93.18 -    public int dopocitejSouradnice() {
   93.19 -	return ejb.dopocitejSouradnice();
   93.20 -    }
   93.21 -
   93.22 +	/**
   93.23 +	 * Projde podniky, které nemají vyplněné souřadnice,
   93.24 +	 * a pokusí se je doplnit na základě poštovní adresy podniku.
   93.25 +	 * @return počet podniků, u nichž jsme doplnili souřadnice
   93.26 +	 */
   93.27 +	@WebMethod(operationName = "dopocitejSouradnicePodleAdres")
   93.28 +	public int dopocitejSouradnice() {
   93.29 +		return ejb.dopocitejSouradnice();
   93.30 +	}
   93.31  }
    94.1 --- a/java/nekurak.net-ws/src/java/cz/frantovo/nekurak/ws/Pokus.java	Sat Jun 19 14:37:11 2010 +0200
    94.2 +++ b/java/nekurak.net-ws/src/java/cz/frantovo/nekurak/ws/Pokus.java	Sun Jun 20 14:46:47 2010 +0200
    94.3 @@ -17,13 +17,13 @@
    94.4  @SOAPBinding(style = SOAPBinding.Style.RPC, use = SOAPBinding.Use.ENCODED)
    94.5  public class Pokus {
    94.6  
    94.7 -    /**
    94.8 -     * Pozdraví osobu
    94.9 -     * @param koho jméno osoby v pátém pádě
   94.10 -     * @return věta – pozdrav
   94.11 -     */
   94.12 -    @WebMethod(operationName = "pozdravOsobu")
   94.13 -    public String pozdrav(@WebParam(name = "jmenoOsoby") String koho) {
   94.14 -	return "Ahoj, " + koho + "!";
   94.15 -    }
   94.16 +	/**
   94.17 +	 * Pozdraví osobu
   94.18 +	 * @param koho jméno osoby v pátém pádě
   94.19 +	 * @return věta – pozdrav
   94.20 +	 */
   94.21 +	@WebMethod(operationName = "pozdravOsobu")
   94.22 +	public String pozdrav(@WebParam(name = "jmenoOsoby") String koho) {
   94.23 +		return "Ahoj, " + koho + "!";
   94.24 +	}
   94.25  }
    95.1 --- a/java/nekurak.net-ws/web/WEB-INF/sun-web.xml	Sat Jun 19 14:37:11 2010 +0200
    95.2 +++ b/java/nekurak.net-ws/web/WEB-INF/sun-web.xml	Sun Jun 20 14:46:47 2010 +0200
    95.3 @@ -1,11 +1,11 @@
    95.4  <?xml version="1.0" encoding="UTF-8"?>
    95.5  <!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 Servlet 2.5//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_2_5-0.dtd">
    95.6  <sun-web-app error-url="">
    95.7 -  <context-root>/nekurak.net-ws</context-root>
    95.8 -  <class-loader delegate="true"/>
    95.9 -  <jsp-config>
   95.10 -    <property name="keepgenerated" value="true">
   95.11 -      <description>Keep a copy of the generated servlet class' java code.</description>
   95.12 -    </property>
   95.13 -  </jsp-config>
   95.14 +	<context-root>/nekurak.net-ws</context-root>
   95.15 +	<class-loader delegate="true"/>
   95.16 +	<jsp-config>
   95.17 +		<property name="keepgenerated" value="true">
   95.18 +			<description>Keep a copy of the generated servlet class' java code.</description>
   95.19 +		</property>
   95.20 +	</jsp-config>
   95.21  </sun-web-app>
    96.1 --- a/java/nekurak.net-ws/web/WEB-INF/web.xml	Sat Jun 19 14:37:11 2010 +0200
    96.2 +++ b/java/nekurak.net-ws/web/WEB-INF/web.xml	Sun Jun 20 14:46:47 2010 +0200
    96.3 @@ -4,9 +4,9 @@
    96.4  	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    96.5  	 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    96.6  	 version="3.0">
    96.7 -    <session-config>
    96.8 -        <session-timeout>
    96.9 -            30
   96.10 -        </session-timeout>
   96.11 -    </session-config>
   96.12 +	<session-config>
   96.13 +		<session-timeout>
   96.14 +			30
   96.15 +		</session-timeout>
   96.16 +	</session-config>
   96.17  </web-app>
    97.1 --- a/java/nekurak.net-ws/web/index.jsp	Sat Jun 19 14:37:11 2010 +0200
    97.2 +++ b/java/nekurak.net-ws/web/index.jsp	Sun Jun 20 14:46:47 2010 +0200
    97.3 @@ -1,39 +1,39 @@
    97.4  <?xml version="1.0" encoding="UTF-8"?>
    97.5  <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    97.6 -	  xmlns:c="http://java.sun.com/jsp/jstl/core"
    97.7 -	  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    97.8 -	  version="2.0">
    97.9 -    <jsp:directive.page contentType="application/xhtml+xml"/>
   97.10 +		  xmlns:c="http://java.sun.com/jsp/jstl/core"
   97.11 +		  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
   97.12 +		  version="2.0">
   97.13 +	<jsp:directive.page contentType="application/xhtml+xml"/>
   97.14  
   97.15 -    <jsp:output doctype-system="http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd"
   97.16 -		doctype-root-element="html"
   97.17 -		omit-xml-declaration="false"/>
   97.18 +	<jsp:output doctype-system="http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd"
   97.19 +				doctype-root-element="html"
   97.20 +				omit-xml-declaration="false"/>
   97.21  
   97.22 -    <html xmlns="http://www.w3.org/1999/xhtml"
   97.23 -	  xmlns:svg="http://www.w3.org/2000/svg"
   97.24 -	  xmlns:xlink="http://www.w3.org/1999/xlink">
   97.25 -	<head>
   97.26 -	    <title>WS SOAP</title>
   97.27 -	</head>
   97.28 -	<body>
   97.29 -	    <h1>WS SOAP</h1>
   97.30 -	    <p>API postavené na webových službách</p>
   97.31 +	<html xmlns="http://www.w3.org/1999/xhtml"
   97.32 +		  xmlns:svg="http://www.w3.org/2000/svg"
   97.33 +		  xmlns:xlink="http://www.w3.org/1999/xlink">
   97.34 +		<head>
   97.35 +			<title>WS SOAP</title>
   97.36 +		</head>
   97.37 +		<body>
   97.38 +			<h1>WS SOAP</h1>
   97.39 +			<p>API postavené na webových službách</p>
   97.40  
   97.41 -	    <!-- TODO: generovat dynamicky  -->
   97.42 +			<!-- TODO: generovat dynamicky  -->
   97.43  
   97.44 -	    <h2>Pokusná služba</h2>
   97.45 -	    <ul>
   97.46 -		<li><a href="pokusnaSluzba?WSDL">WSDL – popis služby</a></li>
   97.47 -		<li><a href="pokusnaSluzba?Tester">Webové rozhraní pro vyzkoušení</a></li>
   97.48 -	    </ul>
   97.49 +			<h2>Pokusná služba</h2>
   97.50 +			<ul>
   97.51 +				<li><a href="pokusnaSluzba?WSDL">WSDL – popis služby</a></li>
   97.52 +				<li><a href="pokusnaSluzba?Tester">Webové rozhraní pro vyzkoušení</a></li>
   97.53 +			</ul>
   97.54  
   97.55 -	    <h2>Podnik – služba</h2>
   97.56 -	    <ul>
   97.57 -		<li><a href="podnikSluzba?WSDL">WSDL – popis služby</a></li>
   97.58 -		<li><a href="podnikSluzba?Tester">Webové rozhraní pro vyzkoušení</a></li>
   97.59 -	    </ul>
   97.60 +			<h2>Podnik – služba</h2>
   97.61 +			<ul>
   97.62 +				<li><a href="podnikSluzba?WSDL">WSDL – popis služby</a></li>
   97.63 +				<li><a href="podnikSluzba?Tester">Webové rozhraní pro vyzkoušení</a></li>
   97.64 +			</ul>
   97.65  
   97.66 -	</body>
   97.67 -    </html>
   97.68 +		</body>
   97.69 +	</html>
   97.70  
   97.71  </jsp:root>
    98.1 --- a/xml/komentář.xsd	Sat Jun 19 14:37:11 2010 +0200
    98.2 +++ b/xml/komentář.xsd	Sun Jun 20 14:46:47 2010 +0200
    98.3 @@ -1,21 +1,21 @@
    98.4  <?xml version="1.0" encoding="UTF-8" ?>
    98.5  
    98.6  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    98.7 -
    98.8 -    <xs:element name="div">
    98.9 -	<xs:complexType>
   98.10 -	    <xs:choice minOccurs="1" maxOccurs="unbounded">
   98.11 -		<xs:element name="p">
   98.12 -		    <xs:complexType mixed="true">
   98.13 -			<xs:choice minOccurs="0" maxOccurs="unbounded">
   98.14 -			    <xs:element name="em" type="xs:string"/>
   98.15 -			    <xs:element name="strong" type="xs:string"/>
   98.16 -			    <xs:element name="br"/>
   98.17 +	
   98.18 +	<xs:element name="div">
   98.19 +		<xs:complexType>
   98.20 +			<xs:choice minOccurs="1" maxOccurs="unbounded">
   98.21 +				<xs:element name="p">
   98.22 +					<xs:complexType mixed="true">
   98.23 +						<xs:choice minOccurs="0" maxOccurs="unbounded">
   98.24 +							<xs:element name="em" type="xs:string"/>
   98.25 +							<xs:element name="strong" type="xs:string"/>
   98.26 +							<xs:element name="br"/>
   98.27 +						</xs:choice>
   98.28 +					</xs:complexType>
   98.29 +				</xs:element>
   98.30  			</xs:choice>
   98.31 -		    </xs:complexType>
   98.32 -		</xs:element>
   98.33 -	    </xs:choice>
   98.34 -	</xs:complexType>
   98.35 -    </xs:element>
   98.36 +		</xs:complexType>
   98.37 +	</xs:element>
   98.38  
   98.39  </xs:schema>