Odstranění experimentální historie.
2 const vstupniPole = 'vstupniPole';
3 const vystupniPole = 'vystupniPole';
4 const napovedniPole = 'napovedniPole';
5 const stavovePole = 'stavovePole';
9 * Aby to fungovalo i v MSIE 6.
10 * @return AJAXový objekt.
12 function getXmlHttpRequestObject() {
13 if (window.XMLHttpRequest) {
14 return new XMLHttpRequest();
15 } else if(window.ActiveXObject) {
16 return new ActiveXObject("Microsoft.XMLHTTP");
18 alert(document.lokalizace.nepodporovany.value);
24 /** Náš AJAXový objekt. */
25 var ajax = getXmlHttpRequestObject();
29 * Vrací vstup od uživatele.
30 * @return SQL příkaz zadaný uživatelem.
33 return document.aplikace.vstupniPole.value;
38 * Zobrazí text na požadovaném místě.
39 * @param text text k zobrazení. V případě formulářů prostý text, v ostatních případech HTML text.
40 * @param kde id prvku, do kterého se má text vypsat.
42 function zobraz(text, kde) {
43 if (kde == vstupniPole) {
44 document.aplikace.vstupniPole.value = text;
45 } else if (kde == stavovePole) {
46 document.aplikace.stavovePole.value = text;
48 document.getElementById(kde).innerHTML = text + '<p> <!-- Šťastné hackování ;-) --></p>';
53 /** Jednoduchá AJAXová funkce, načte obsah souboru a zobrazí ho ve výstupním okně. */
54 function ajaxVykonatSQL() {
55 if (ajax.readyState == 4 || ajax.readyState == 0) {
56 zobraz(document.lokalizace.probihaSQL.value, stavovePole);
57 ajax.open("POST", 'ajax.jspx?akce=vykonat&sql=' + encodeURIComponent(getSQL()), true);
58 ajax.onreadystatechange = function() {
59 if (ajax.readyState == 4) {
60 zobraz(ajax.responseText, vystupniPole);
61 zobraz('', stavovePole);
70 /** Jednoduchá AJAXová funkce, načte obsah souboru a zobrazí ho ve výstupním okně. */
71 function ajaxZobrazitHistorii() {
72 if (ajax.readyState == 4 || ajax.readyState == 0) {
73 zobraz(document.lokalizace.probihaHistorie.value, stavovePole);
74 ajax.open("POST", 'ajax.jspx?akce=historie', true);
75 ajax.onreadystatechange = function() {
76 if (ajax.readyState == 4) {
77 zobraz(ajax.responseText, vystupniPole);
78 zobraz('', stavovePole);
85 var pruvodceAktualniId = 0;
86 var urlOdkaz = new Array();
87 urlOdkaz['pruvodce'] = null;
89 function ajaxPruvodcePredchozi() {
90 ajaxPruvodceNaviguj('predchozi', pruvodceAktualniId, null);
93 function ajaxPruvodceZpet() {
94 /** TODO: historie navigace */
95 alert('Tato funkce se teprve připravuje.');
98 function ajaxPruvodceVpred() {
99 /** TODO: historie navigace */
100 alert('Tato funkce se teprve připravuje.');
103 function ajaxPruvodceNasledujici() {
104 ajaxPruvodceNaviguj('nasledujici', pruvodceAktualniId, null);
107 function ajaxPruvodceKod(kod) {
108 ajaxPruvodceNaviguj('podleKodu', 0, kod);
111 function ajaxPruvodceId(id) {
112 ajaxPruvodceNaviguj('podleId', id, null);
116 function ajaxPruvodceNaviguj(akcePruvodce, id, kod) {
117 if (ajax.readyState == 4 || ajax.readyState == 0) {
118 ajax.open("POST", 'ajax.jspx?akce=napoveda&pruvodce=' + encodeURIComponent(akcePruvodce) + '&idPruvodce=' + encodeURIComponent(id) + '&kodPruvodce=' + encodeURIComponent(kod), true);
119 ajax.onreadystatechange = function() {
120 if (ajax.readyState == 4) {
121 zobraz(ajax.responseText, napovedniPole);
122 /** Uložíme si do paměti ID aktuální stránky */
123 if (document.pruvodceData) {
124 pruvodceAktualniId = document.pruvodceData.id.value
126 pruvodceAktualniId = 0;
128 /** Změníme URL v prohlížeči */
129 urlOdkaz['pruvodce'] = 'pruvodce=' + encodeURIComponent(pruvodceAktualniId);
138 * Parametry si ukládáme za # do URL (window.location.hash)
139 * Můžeme měnit URL, aniž by prohlížeč obnovoval stránku.
140 * Uživatel si může URL zkopírovat a obnovit si příště stav aplikace.
141 * @param parametr jméno parametru, který hledáme
142 * @return hodnota parametr
144 function getParametr(parametr) {
145 parametr = parametr.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
146 //var regexS = "[\\?&]"+parametr+"=([^&#]*)";
147 var regexS = "[\\#&]"+parametr+"=([^&#]*)";
148 var regex = new RegExp( regexS );
149 var results = regex.exec(window.location.hash);
150 if( results == null )
153 return decodeURIComponent(results[1]);
157 * Uloží parametry (jako je SQL příkaz a stránka průvodce) do URL (za #),
158 * aby si uživatel mohl URL zkopírovat a příště si obnovit stav aplikace.
161 if (urlOdkaz['pruvodce']) {
162 window.location.hash = urlOdkaz['pruvodce'] + '&sql=' + encodeURIComponent(getSQL());
164 window.location.hash = 'sql=' + encodeURIComponent(getSQL());
168 * Načte uložený stav aplikace z URL (SQL příkaz, průvodce).
170 function nactiURL() {
171 /** Načteme uživatelův SQL příkaz z URL do vstupního pole */
172 if (getParametr('sql')) {
173 zobraz(getParametr('sql'), vstupniPole);
176 /** Načteme pozici v nápovědě */
177 if (getParametr('pruvodce')) {
178 ajaxPruvodceId(getParametr('pruvodce'));
180 ajaxPruvodceKod('vitejte');
184 window.onload = function() {