JavaScript: lokalizace a zjednodušení.
authorFrantišek Kučera <franta-hg@frantovo.cz>
Sat May 30 15:35:10 2009 +0200 (2009-05-30)
changeset 22e56b79cc18a9
parent 21 b7574b90e272
child 23 6bbbd371e813
JavaScript: lokalizace a zjednodušení.
java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/preklady_cs.properties
java/sql-vyuka/web/WEB-INF/casti/aplikace.jspx
java/sql-vyuka/web/hlavni.js
java/sql-vyuka/web/styl.css
java/sql-vyuka/web/vstupniPole.js
     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;