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čí :-).
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> <!-- Šť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('<', '<', 'g');
3.56 + vysledek = vysledek.replace('>', '>', 'g');
3.57 + vysledek = vysledek.replace('&', '&', 'g');
3.58 + return vysledek;
3.59 +
3.60 +}