JavaScript: lokalizace a zjednodušení.
1.1 --- a/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/preklady_cs.properties Sat May 30 14:56:39 2009 +0200
1.2 +++ b/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/preklady_cs.properties Sat May 30 15:35:10 2009 +0200
1.3 @@ -12,4 +12,8 @@
1.4
1.5 vychozi.sql=SELECT * FROM tabulka;
1.6 vychozi.vysledek=V\u00EDtejte v programu SQL v\u00FDuka!
1.7 -vychozi.napoveda=Tady bude n\u00E1pov\u011Bda
1.8 \ No newline at end of file
1.9 +vychozi.napoveda=Tady bude n\u00E1pov\u011Bda
1.10 +
1.11 +js.nepodporovany=V\u00E1\u0161 prohl\u00ED\u017Ee\u010D nepodporuje AJAX. Po\u0159i\u010Fte si m\u00E9n\u011B zastaral\u00FD prohl\u00ED\u017Ee\u010D, nejl\u00E9pe Firefox.
1.12 +js.probihaSQL=Prob\u00EDh\u00E1 zpracov\u00E1n\u00ED SQL p\u0159\u00EDkazu\u2026
1.13 +js.probihaHistorie=Na\u010D\u00EDt\u00E1 se historie\u2026
2.1 --- a/java/sql-vyuka/web/WEB-INF/casti/aplikace.jspx Sat May 30 14:56:39 2009 +0200
2.2 +++ b/java/sql-vyuka/web/WEB-INF/casti/aplikace.jspx Sat May 30 15:35:10 2009 +0200
2.3 @@ -5,19 +5,19 @@
2.4
2.5 <fmt:setBundle basename="cz.frantovo.sql.vyuka.preklady" scope="application"/>
2.6
2.7 + <!-- Logo programu -->
2.8 <div id="zahlavi"><h1><fmt:message key="nazev"/></h1></div>
2.9
2.10 <div id="bloky">
2.11 + <!-- Nápověda -->
2.12 <div class ="blok" id="napoveda">
2.13 <h2><fmt:message key="blok.napoveda"/></h2>
2.14 <div class="vnitrekBloku">
2.15 <p id="napovedniPole"><fmt:message key="vychozi.napoveda"/></p>
2.16 </div>
2.17 </div>
2.18 -
2.19 -
2.20 <div id="io">
2.21 -
2.22 + <!-- Zadávání SQL příkazů -->
2.23 <div class ="blok" id="vstup">
2.24 <h2><fmt:message key="blok.zadavani"/></h2>
2.25 <div class="vnitrekBloku">
2.26 @@ -27,7 +27,7 @@
2.27 name="vstupniPole"
2.28 rows="100"
2.29 cols="1000"
2.30 - onkeypress="javascript:checkTab(event);"><fmt:message key="vychozi.sql"/></textarea>
2.31 + onkeypress="javascript:zpracujTabulatory(event);"><fmt:message key="vychozi.sql"/></textarea>
2.32 <input id="stavovePole"
2.33 name="stavovePole"
2.34 type="text" />
2.35 @@ -47,11 +47,7 @@
2.36 </form>
2.37 </div>
2.38 </div>
2.39 -
2.40 -
2.41 -
2.42 -
2.43 -
2.44 + <!-- Zobrazování výstupu -->
2.45 <div class ="blok" id="vystup">
2.46 <h2><fmt:message key="blok.vysledek"/></h2>
2.47 <div class="vnitrekBloku" id="vystupniPole">
2.48 @@ -61,6 +57,12 @@
2.49 </div>
2.50 </div>
2.51 </div>
2.52 + </div>
2.53
2.54 - </div>
2.55 + <!-- Načteme si lokalizované texty do skrytého formuláře, aby je mohl používat JavaScript -->
2.56 + <form action="#" name="lokalizace" id="lokalizace">
2.57 + <textarea name="nepodporovany"><fmt:message key="js.nepodporovany"/></textarea>
2.58 + <textarea name="probihaSQL"><fmt:message key="js.probihaSQL"/></textarea>
2.59 + <textarea name="probihaHistorie"><fmt:message key="js.probihaHistorie"/></textarea>
2.60 + </form>
2.61 </jsp:root>
2.62 \ No newline at end of file
3.1 --- a/java/sql-vyuka/web/hlavni.js Sat May 30 14:56:39 2009 +0200
3.2 +++ b/java/sql-vyuka/web/hlavni.js Sat May 30 15:35:10 2009 +0200
3.3 @@ -15,14 +15,16 @@
3.4 } else if(window.ActiveXObject) {
3.5 return new ActiveXObject("Microsoft.XMLHTTP");
3.6 } else {
3.7 - alert("Váš prohlížeč nepodporuje AJAX. Pořiďte si méně zastaralý prohlížeč, nejlépe Firefox.");
3.8 + alert(document.lokalizace.nepodporovany.value);
3.9 return null;
3.10 }
3.11 }
3.12
3.13 +
3.14 /** Náš AJAXový objekt. */
3.15 var ajax = getXmlHttpRequestObject();
3.16
3.17 +
3.18 /**
3.19 * Vrací vstup od uživatele.
3.20 * @return SQL příkaz zadaný uživatelem.
3.21 @@ -31,10 +33,11 @@
3.22 return document.aplikace.vstupniPole.value;
3.23 }
3.24
3.25 +
3.26 /**
3.27 * Zobrazí text na požadovaném místě.
3.28 - * @param text text k zobrazení
3.29 - * @param kde id prvku, do kterého se má text vypsat
3.30 + * @param text text k zobrazení. V případě formulářů prostý text, v ostatních případech HTML text.
3.31 + * @param kde id prvku, do kterého se má text vypsat.
3.32 **/
3.33 function zobraz(text, kde) {
3.34 if (kde == vstupniPole) {
3.35 @@ -46,49 +49,16 @@
3.36 }
3.37 }
3.38
3.39 -/**
3.40 - * Zobrazí text ve výstupním poli.
3.41 - * @param text HTML text k zobrazení
3.42 - **/
3.43 -function zobrazVystup(text) {
3.44 - zobraz(text, vystupniPole);
3.45 -}
3.46 -
3.47 -/**
3.48 - * Zobrazí text ve vstupním poli.
3.49 - * Požijeme pro načtení SQL příkazu z historie.
3.50 - * @param text prostý text k zobrazení
3.51 - **/
3.52 -function zobrazVstup(text) {
3.53 - zobraz(text, vstupniPole);
3.54 -}
3.55 -
3.56 -/**
3.57 - * Zobrazí text ve vstupním poli.
3.58 - * Požijeme pro načtení SQL příkazu z historie.
3.59 - * @param text prostý text k zobrazení
3.60 - **/
3.61 -function zobrazStav(text) {
3.62 - zobraz(text, stavovePole);
3.63 -}
3.64 -
3.65 -/**
3.66 - * Zobrazí text ve poli pro nápovědu.
3.67 - * @param text text k zobrazení
3.68 - **/
3.69 -function zobrazNapovedu(text) {
3.70 - zobraz(text, napovedniPole);
3.71 -}
3.72
3.73 /** Jednoduchá AJAXová funkce, načte obsah souboru a zobrazí ho ve výstupním okně. */
3.74 function ajaxVykonatSQL() {
3.75 if (ajax.readyState == 4 || ajax.readyState == 0) {
3.76 - zobrazStav('Probíhá zpracování SQL příkazu…');
3.77 + zobraz(document.lokalizace.probihaSQL.value, stavovePole);
3.78 ajax.open("POST", 'ajax?akce=vykonat&sql=' + encodeURIComponent(getSQL()), true);
3.79 ajax.onreadystatechange = function() {
3.80 if (ajax.readyState == 4) {
3.81 - zobrazVystup(ajax.responseText);
3.82 - zobrazStav('');
3.83 + zobraz(ajax.responseText, vystupniPole);
3.84 + zobraz('', stavovePole);
3.85 }
3.86 };
3.87 ajax.send(null);
3.88 @@ -99,12 +69,12 @@
3.89 /** Jednoduchá AJAXová funkce, načte obsah souboru a zobrazí ho ve výstupním okně. */
3.90 function ajaxZobrazitHistorii() {
3.91 if (ajax.readyState == 4 || ajax.readyState == 0) {
3.92 - zobrazStav('Načítá se historie…');
3.93 + zobraz(document.lokalizace.probihaHistorie.value, stavovePole);
3.94 ajax.open("POST", 'ajax?akce=historie', true);
3.95 ajax.onreadystatechange = function() {
3.96 if (ajax.readyState == 4) {
3.97 - zobrazVystup(ajax.responseText);
3.98 - zobrazStav('');
3.99 + zobraz(ajax.responseText, vystupniPole);
3.100 + zobraz('', stavovePole);
3.101 }
3.102 };
3.103 ajax.send(null);
4.1 --- a/java/sql-vyuka/web/styl.css Sat May 30 14:56:39 2009 +0200
4.2 +++ b/java/sql-vyuka/web/styl.css Sat May 30 15:35:10 2009 +0200
4.3 @@ -202,3 +202,8 @@
4.4 color: gray;
4.5 font-style: italic;
4.6 }
4.7 +
4.8 +/** Skrytý formulář sloužící pro lokalizaci JavaScriptu */
4.9 +#lokalizace {
4.10 + display: none;
4.11 +}
5.1 --- a/java/sql-vyuka/web/vstupniPole.js Sat May 30 14:56:39 2009 +0200
5.2 +++ b/java/sql-vyuka/web/vstupniPole.js Sat May 30 15:35:10 2009 +0200
5.3 @@ -2,7 +2,7 @@
5.4
5.5 var tab = "\t";
5.6
5.7 -function checkTab(evt) {
5.8 +function zpracujTabulatory(evt) {
5.9
5.10 var t = evt.target;
5.11 var ss = t.selectionStart;