Uživatel může kliknout myší na SQL kód v průvodci a snadno si ho překopírovat do vstupního pole (aby nemusel opisovat příklady).
authorFrantišek Kučera <franta-hg@frantovo.cz>
Sun, 26 Jul 2009 23:03:28 +0200
changeset 60d6930d123889
parent 59 17e45eef6da0
child 61 9e60af36a9df
Uživatel může kliknout myší na SQL kód v průvodci a snadno si ho překopírovat do vstupního pole (aby nemusel opisovat příklady).
No jo, ale to budou ti uživatelé úplně líní a nic se nenaučí :-).
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
     1.1 --- a/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/preklady_cs.properties	Sun Jul 26 21:13:51 2009 +0200
     1.2 +++ b/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/preklady_cs.properties	Sun Jul 26 23:03:28 2009 +0200
     1.3 @@ -15,6 +15,7 @@
     1.4  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.5  js.probihaSQL=Prob\u00EDh\u00E1 zpracov\u00E1n\u00ED SQL p\u0159\u00EDkazu\u2026
     1.6  js.probihaHistorie=Na\u010D\u00EDt\u00E1 se historie\u2026
     1.7 +js.klikniProNacteniPrikladu=Klikni pro na\u010Dten\u00ED p\u0159\u00EDkaldu.
     1.8  
     1.9  licence.program=Program je vyd\u00E1n pod licenc\u00ED:
    1.10  licence.agpl=GNU Affero GPL
     2.1 --- a/java/sql-vyuka/web/WEB-INF/casti/aplikace.jspx	Sun Jul 26 21:13:51 2009 +0200
     2.2 +++ b/java/sql-vyuka/web/WEB-INF/casti/aplikace.jspx	Sun Jul 26 23:03:28 2009 +0200
     2.3 @@ -107,6 +107,7 @@
     2.4              <textarea name="nepodporovany" cols="128" rows="1"><fmt:message key="js.nepodporovany"/></textarea>
     2.5              <textarea name="probihaSQL" cols="128" rows="1"><fmt:message key="js.probihaSQL"/></textarea>
     2.6              <textarea name="probihaHistorie" cols="128" rows="1"><fmt:message key="js.probihaHistorie"/></textarea>
     2.7 +            <textarea name="klikniProNacteniPrikladu" cols="128" rows="1"><fmt:message key="js.klikniProNacteniPrikladu"/></textarea>
     2.8          </fieldset>
     2.9      </form>
    2.10  </jsp:root>
    2.11 \ No newline at end of file
     3.1 --- a/java/sql-vyuka/web/hlavni.js	Sun Jul 26 21:13:51 2009 +0200
     3.2 +++ b/java/sql-vyuka/web/hlavni.js	Sun Jul 26 23:03:28 2009 +0200
     3.3 @@ -41,9 +41,9 @@
     3.4   **/
     3.5  function zobraz(text, kde) {
     3.6      if (kde == vstupniPole) {
     3.7 -        document.getElementById('aplikace').vstupniPole.value = text;
     3.8 +        document.getElementById('aplikace').vstupniPole.value = vratEntity(text);
     3.9      } else if (kde == stavovePole)  {
    3.10 -        document.getElementById('aplikace').stavovePole.value = text;
    3.11 +        document.getElementById('aplikace').stavovePole.value = vratEntity(text);
    3.12      } else {
    3.13          document.getElementById(kde).innerHTML = text + '<p>&nbsp;<!-- Šťastné hackování ;-) --></p>';
    3.14      }
    3.15 @@ -129,6 +129,7 @@
    3.16                  urlOdkaz['pruvodce']  = 'pruvodce=' + encodeURIComponent(pruvodceAktualniId);
    3.17                  ulozURL();
    3.18                  sestavStromy();
    3.19 +                aktivujPruvodce();
    3.20              }
    3.21          };
    3.22          ajax.send(null);
    3.23 @@ -184,4 +185,35 @@
    3.24  
    3.25  window.onload = function() {
    3.26      nactiURL();
    3.27 -}
    3.28 \ No newline at end of file
    3.29 +}
    3.30 +
    3.31 +/**
    3.32 + * Přidá <pre> elementům v průvodci akci onclick,
    3.33 + * která se postará o načtení obsahu daného elementu do vstupního pole,
    3.34 + * aby uživatel tento kód nemusel opisovat.
    3.35 + */
    3.36 +function aktivujPruvodce() {
    3.37 +    elementy = document.getElementsByTagName("pre");
    3.38 +    for (var i = 0; i < elementy.length; i++) {
    3.39 +        if (elementy[i].parentNode.id == napovedniPole) {
    3.40 +            elementy[i].title = document.getElementById('lokalizace').klikniProNacteniPrikladu.value;
    3.41 +            elementy[i].onclick = function() {
    3.42 +                zobraz(this.innerHTML, 'vstupniPole');
    3.43 +                return true;
    3.44 +            };
    3.45 +        }
    3.46 +    }
    3.47 +}
    3.48 +
    3.49 +/**
    3.50 + * Převede HTML entity zpět na znaky,
    3.51 + * aby se správně zobrazily ve vstupním nebo stavovém poli.
    3.52 + */
    3.53 +function vratEntity (text) {
    3.54 +    var vysledek = text;
    3.55 +    vysledek = vysledek.replace('&lt;', '<', 'g');
    3.56 +    vysledek = vysledek.replace('&gt;', '>', 'g');
    3.57 +    vysledek = vysledek.replace('&amp;', '&', 'g');
    3.58 +    return vysledek;
    3.59 +
    3.60 +}