Changeset 80:d900e5a112cc

Show
Ignore:
Timestamp:
05/24/12 15:47:48 (13 years ago)
Author:
František Kučera <franta-hg@…>
Branch:
default
Message:

Lepší odsazení JavaScriptu? (tabulátory).

Location:
java/sql-vyuka/web
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • java/sql-vyuka/web/hlavni.js

    r72 r80  
    1111 */ 
    1212function getXmlHttpRequestObject() { 
    13     if (window.XMLHttpRequest) { 
    14         return new XMLHttpRequest(); 
    15     } else if(window.ActiveXObject) { 
    16         return new ActiveXObject("Microsoft.XMLHTTP"); 
    17     } else { 
    18         alert(document.getElementById('lokalizace').nepodporovany.value); 
    19         return null; 
    20     } 
     13        if (window.XMLHttpRequest) { 
     14                return new XMLHttpRequest(); 
     15        } else if(window.ActiveXObject) { 
     16                return new ActiveXObject("Microsoft.XMLHTTP"); 
     17        } else { 
     18                alert(document.getElementById('lokalizace').nepodporovany.value); 
     19                return null; 
     20        } 
    2121} 
    2222 
     
    3131 **/ 
    3232function getSQL() { 
    33     return document.getElementById('aplikace').vstupniPole.value; 
     33        return document.getElementById('aplikace').vstupniPole.value; 
    3434} 
    3535 
     
    4141 **/ 
    4242function zobraz(text, kde) { 
    43     if (kde == vstupniPole) { 
    44         document.getElementById('aplikace').vstupniPole.value = vratEntity(text); 
    45     } else if (kde == stavovePole)  { 
    46         document.getElementById('aplikace').stavovePole.value = vratEntity(text); 
    47     } else { 
    48         document.getElementById(kde).innerHTML = text + '<p>&nbsp;<!-- Šťastné hackování ;-) --></p>'; 
    49     } 
     43        if (kde == vstupniPole) { 
     44                document.getElementById('aplikace').vstupniPole.value = vratEntity(text); 
     45        } else if (kde == stavovePole)  { 
     46                document.getElementById('aplikace').stavovePole.value = vratEntity(text); 
     47        } else { 
     48                document.getElementById(kde).innerHTML = text + '<p>&nbsp;<!-- Šťastné hackování ;-) --></p>'; 
     49        } 
    5050} 
    5151 
     
    5353/** Jednoduchá AJAXová funkce, načte obsah souboru a zobrazí ho ve výstupním okně. */ 
    5454function ajaxVykonatSQL() { 
    55     if (ajax.readyState == 4 || ajax.readyState == 0) { 
    56         zobraz(document.getElementById('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); 
    62             } 
    63         }; 
    64         ajax.send(null); 
    65     } 
    66     ulozURL(); 
     55        if (ajax.readyState == 4 || ajax.readyState == 0) { 
     56                zobraz(document.getElementById('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); 
     62                        } 
     63                }; 
     64                ajax.send(null); 
     65        } 
     66        ulozURL(); 
    6767} 
    6868 
     
    7070/** Jednoduchá AJAXová funkce, načte obsah souboru a zobrazí ho ve výstupním okně. */ 
    7171function ajaxZobrazitHistorii() { 
    72     if (ajax.readyState == 4 || ajax.readyState == 0) { 
    73         zobraz(document.getElementById('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); 
    79                 aktivujHistorii(); 
    80             } 
    81         }; 
     72        if (ajax.readyState == 4 || ajax.readyState == 0) { 
     73                zobraz(document.getElementById('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); 
     79                                aktivujHistorii(); 
     80                        } 
     81                }; 
    8282        ajax.send(null); 
    83     } 
     83        } 
    8484} 
    8585 
     
    8989 
    9090function ajaxPruvodcePredchozi() { 
    91     ajaxPruvodceNaviguj('predchozi', pruvodceAktualniId, null); 
     91        ajaxPruvodceNaviguj('predchozi', pruvodceAktualniId, null); 
    9292} 
    9393 
    9494function ajaxPruvodceZpet() { 
    95     try { 
    96         history.back(); 
    97         //window.back(); 
    98         nactiURL(); 
    99     } catch (e) { 
    100         alert(e); 
    101     // není historie 
    102     } 
     95        try { 
     96                history.back(); 
     97                //window.back(); 
     98                nactiURL(); 
     99        } catch (e) { 
     100                alert(e); 
     101                // není historie 
     102        } 
    103103} 
    104104 
    105105function ajaxPruvodceVpred() { 
    106     try { 
    107         history.forward(); 
    108         //window.forward(); 
    109         nactiURL(); 
    110     } catch (e) { 
    111         alert(e); 
    112     // není historie 
    113     } 
     106        try { 
     107                history.forward(); 
     108                //window.forward(); 
     109                nactiURL(); 
     110        } catch (e) { 
     111                alert(e); 
     112                // není historie 
     113        } 
    114114} 
    115115 
    116116function ajaxPruvodceNasledujici() { 
    117     ajaxPruvodceNaviguj('nasledujici', pruvodceAktualniId, null); 
     117        ajaxPruvodceNaviguj('nasledujici', pruvodceAktualniId, null); 
    118118} 
    119119 
    120120function ajaxPruvodceKod(kod) { 
    121     ajaxPruvodceNaviguj('podleKodu', 0, kod); 
     121        ajaxPruvodceNaviguj('podleKodu', 0, kod); 
    122122} 
    123123 
    124124function ajaxPruvodceId(id) { 
    125     ajaxPruvodceNaviguj('podleId', id, null); 
     125        ajaxPruvodceNaviguj('podleId', id, null); 
    126126 
    127127} 
    128128 
    129129function ajaxPruvodceNaviguj(akcePruvodce, id, kod) { 
    130     if (ajax.readyState == 4 || ajax.readyState == 0) { 
    131         ajax.open("POST", 'ajax.jspx?akce=napoveda&pruvodce=' + encodeURIComponent(akcePruvodce) + '&idPruvodce=' + encodeURIComponent(id) + '&kodPruvodce=' + encodeURIComponent(kod), true); 
    132         ajax.onreadystatechange = function() { 
    133             if (ajax.readyState == 4) { 
    134                 zobraz(ajax.responseText, napovedniPole); 
    135                 /** Uložíme si do paměti ID aktuální stránky */ 
    136                 if (document.getElementById('pruvodceData')) { 
    137                     pruvodceAktualniId = document.getElementById('pruvodceData').id.value; 
    138                 } else { 
    139                     pruvodceAktualniId = 0; 
    140                 } 
    141                 /** Změníme URL v prohlížeči */ 
    142                 urlOdkaz['pruvodce']  = 'pruvodce=' + encodeURIComponent(pruvodceAktualniId); 
    143                 ulozURL(); 
    144                 sestavStromy(); 
    145                 aktivujPruvodce(); 
    146             } 
    147         }; 
     130        if (ajax.readyState == 4 || ajax.readyState == 0) { 
     131                ajax.open("POST", 'ajax.jspx?akce=napoveda&pruvodce=' + encodeURIComponent(akcePruvodce) + '&idPruvodce=' + encodeURIComponent(id) + '&kodPruvodce=' + encodeURIComponent(kod), true); 
     132                ajax.onreadystatechange = function() { 
     133                        if (ajax.readyState == 4) { 
     134                                zobraz(ajax.responseText, napovedniPole); 
     135                                /** Uložíme si do paměti ID aktuální stránky */ 
     136                                if (document.getElementById('pruvodceData')) { 
     137                                        pruvodceAktualniId = document.getElementById('pruvodceData').id.value; 
     138                                } else { 
     139                                        pruvodceAktualniId = 0; 
     140                                } 
     141                                /** Změníme URL v prohlížeči */ 
     142                                urlOdkaz['pruvodce']  = 'pruvodce=' + encodeURIComponent(pruvodceAktualniId); 
     143                                ulozURL(); 
     144                                sestavStromy(); 
     145                                aktivujPruvodce(); 
     146                        } 
     147                }; 
    148148        ajax.send(null); 
    149     } 
     149        } 
    150150} 
    151151 
     
    158158 */ 
    159159function getParametr(parametr) { 
    160     parametr = parametr.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 
    161     //var regexS = "[\\?&]"+parametr+"=([^&#]*)"; 
    162     var regexS = "[\\#&]"+parametr+"=([^&]*)"; 
    163     var regex = new RegExp( regexS ); 
    164     var results = regex.exec(window.location.hash); 
    165     if( results == null ) 
    166         return ""; 
    167     else 
    168         return decodeURIComponent(results[1]); 
     160        parametr = parametr.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 
     161        //var regexS = "[\\?&]"+parametr+"=([^&#]*)"; 
     162        var regexS = "[\\#&]"+parametr+"=([^&]*)"; 
     163        var regex = new RegExp( regexS ); 
     164        var results = regex.exec(window.location.hash); 
     165        if ( results == null ) { 
     166                return ""; 
     167        } else { 
     168                return decodeURIComponent(results[1]); 
     169        } 
    169170} 
    170171 
     
    174175 */ 
    175176function ulozURL() { 
    176     if (urlOdkaz['pruvodce']) { 
    177         window.location.hash = urlOdkaz['pruvodce'] + '&sql=' + encodeURIComponent(getSQL()); 
    178     } else { 
    179         window.location.hash = 'sql=' + encodeURIComponent(getSQL()); 
    180     } 
     177        if (urlOdkaz['pruvodce']) { 
     178                window.location.hash = urlOdkaz['pruvodce'] + '&sql=' + encodeURIComponent(getSQL()); 
     179        } else { 
     180                window.location.hash = 'sql=' + encodeURIComponent(getSQL()); 
     181        } 
    181182} 
    182183/** 
     
    184185 */ 
    185186function nactiURL() { 
    186     /** Načteme uživatelův SQL příkaz z URL do vstupního pole */ 
    187     if (getParametr('sql')) { 
    188         zobraz(getParametr('sql'), vstupniPole); 
    189     } 
    190      
    191     /** Načteme pozici v nápovědě */ 
    192     if (getParametr('pruvodce')) { 
    193         ajaxPruvodceId(getParametr('pruvodce')); 
    194     } else { 
    195         ajaxPruvodceKod('vitejte'); 
    196     } 
     187        /** Načteme uživatelův SQL příkaz z URL do vstupního pole */ 
     188        if (getParametr('sql')) { 
     189                zobraz(getParametr('sql'), vstupniPole); 
     190        } 
     191 
     192        /** Načteme pozici v nápovědě */ 
     193        if (getParametr('pruvodce')) { 
     194                ajaxPruvodceId(getParametr('pruvodce')); 
     195        } else { 
     196                ajaxPruvodceKod('vitejte'); 
     197        } 
    197198} 
    198199 
    199200window.onload = function() { 
    200     nactiURL(); 
    201     document.getElementById("zahlavi").addEventListener('click', function () { 
    202         ajaxPruvodceKod('vitejte'); 
    203     }, false); 
     201        nactiURL(); 
     202        document.getElementById("zahlavi").addEventListener('click', function () { 
     203                ajaxPruvodceKod('vitejte'); 
     204        }, false); 
    204205} 
    205206 
     
    213214 */ 
    214215function aktivujPruvodce() { 
    215     /** Ukázky SQL kódu */ 
    216     elementy = document.getElementsByTagName("pre"); 
    217     for (var i = 0; i < elementy.length; i++) { 
    218         if (elementy[i].parentNode.id == napovedniPole) { 
    219             elementy[i].title = document.getElementById('lokalizace').klikniProNacteniPrikladu.value; 
    220             elementy[i].onclick = function() { 
    221                 zobraz(this.innerHTML, 'vstupniPole'); 
    222                 return true; 
    223             }; 
    224         } 
    225     } 
    226  
    227     /** Aktivace interních odkazů na průvodce */ 
    228     elementy = document.getElementsByTagName("a"); 
    229     for (var j = 0; j < elementy.length; j++) { 
    230         var odkaz = elementy[j].getAttribute("href"); 
    231         if (odkaz.substring(0, 1) == '@') { 
    232             elementy[j].href = "javascript:ajaxPruvodceKod('" + odkaz.substring(1, odkaz.length) + "');"; 
    233         } 
    234     } 
     216        /** Ukázky SQL kódu */ 
     217        elementy = document.getElementsByTagName("pre"); 
     218        for (var i = 0; i < elementy.length; i++) { 
     219                if (elementy[i].parentNode.id == napovedniPole) { 
     220                        elementy[i].title = document.getElementById('lokalizace').klikniProNacteniPrikladu.value; 
     221                        elementy[i].onclick = function() { 
     222                                zobraz(this.innerHTML, 'vstupniPole'); 
     223                                return true; 
     224                        }; 
     225                } 
     226        } 
     227 
     228        /** Aktivace interních odkazů na průvodce */ 
     229        elementy = document.getElementsByTagName("a"); 
     230        for (var j = 0; j < elementy.length; j++) { 
     231                var odkaz = elementy[j].getAttribute("href"); 
     232                if (odkaz.substring(0, 1) == '@') { 
     233                        elementy[j].href = "javascript:ajaxPruvodceKod('" + odkaz.substring(1, odkaz.length) + "');"; 
     234                } 
     235        } 
    235236} 
    236237 
     
    241242 */ 
    242243function aktivujHistorii() { 
    243     radky = document.getElementsByTagName("tr"); 
    244     for (var i = 1; i < radky.length; i++) { 
    245         if (radky[i].parentNode.parentNode.parentNode.id == vystupniPole) { 
    246             radky[i].childNodes[1].title = document.getElementById('lokalizace').klikniProNacteniHistorie.value; 
    247             radky[i].childNodes[1].style.cursor = 'pointer'; 
    248             radky[i].childNodes[1].onclick = function() { 
    249                 zobraz(this.innerHTML, 'vstupniPole'); 
    250                 return true; 
    251             }; 
    252         } 
    253     } 
     244        radky = document.getElementsByTagName("tr"); 
     245        for (var i = 1; i < radky.length; i++) { 
     246                if (radky[i].parentNode.parentNode.parentNode.id == vystupniPole) { 
     247                        radky[i].childNodes[1].title = document.getElementById('lokalizace').klikniProNacteniHistorie.value; 
     248                        radky[i].childNodes[1].style.cursor = 'pointer'; 
     249                        radky[i].childNodes[1].onclick = function() { 
     250                                zobraz(this.innerHTML, 'vstupniPole'); 
     251                                return true; 
     252                        }; 
     253                } 
     254        } 
    254255} 
    255256 
     
    259260 */ 
    260261function vratEntity (text) { 
    261     var vysledek = text; 
    262     vysledek = vysledek.replace('&lt;', '<', 'g'); 
    263     vysledek = vysledek.replace('&gt;', '>', 'g'); 
    264     vysledek = vysledek.replace('&amp;', '&', 'g'); 
    265     vysledek = vysledek.replace('&nbsp;', ' ', 'g'); 
    266     vysledek = vysledek.replace('&#160;', ' ', 'g'); 
    267     return vysledek; 
    268  
     262        var vysledek = text; 
     263        vysledek = vysledek.replace('&lt;', '<', 'g'); 
     264        vysledek = vysledek.replace('&gt;', '>', 'g'); 
     265        vysledek = vysledek.replace('&amp;', '&', 'g'); 
     266        vysledek = vysledek.replace('&nbsp;', ' ', 'g'); 
     267        vysledek = vysledek.replace('&#160;', ' ', 'g'); 
     268        return vysledek; 
    269269} 
    270270 
     
    274274 */ 
    275275function nactiJavaScript (url) { 
    276     var element = document.createElement("script"); 
    277     element.src = url; 
    278     element.type = "text/javascript"; 
    279     document.getElementsByTagName("head")[0].appendChild(element); 
    280 } 
     276        var element = document.createElement("script"); 
     277        element.src = url; 
     278        element.type = "text/javascript"; 
     279        document.getElementsByTagName("head")[0].appendChild(element); 
     280} 
     281 
  • java/sql-vyuka/web/klavesoveZkratky.js

    r71 r80  
    44 
    55document.onkeyup = function(e) { 
    6     if(e.which == 17) { 
    7         isCtrl = false; 
    8     } 
     6        if(e.which == 17) { 
     7                isCtrl = false; 
     8        } 
    99} 
    1010 
    1111document.onkeydown = function(e) { 
    12     if(e.which == 17) { 
    13         isCtrl = true; 
    14     } 
     12        if(e.which == 17) { 
     13                isCtrl = true; 
     14        } 
    1515 
    16     if (isCtrl) { 
    17         if (e.which == 13) { 
    18             /** ctrl+enter → vykonáme SQL */ 
    19             ajaxVykonatSQL(); 
    20             return false; 
    21         } else if (e.which == 72) { 
    22             /** ctrl+h → uobrazíme historii */ 
    23             ajaxZobrazitHistorii(); 
    24             return false; 
    25         } else if (e.which == 39) { 
    26             /** doprava → následující kapitola */ 
    27             ajaxPruvodceNasledujici(); 
    28             return false; 
    29         } else if (e.which == 37) { 
    30             /** doleva → předchozí kapitola */ 
    31             ajaxPruvodcePredchozi(); 
    32             return false; 
     16        if (isCtrl) { 
     17                if (e.which == 13) { 
     18                        /** ctrl+enter → vykonáme SQL */ 
     19                        ajaxVykonatSQL(); 
     20                        return false; 
     21                } else if (e.which == 72) { 
     22                        /** ctrl+h → uobrazíme historii */ 
     23                        ajaxZobrazitHistorii(); 
     24                        return false; 
     25                } else if (e.which == 39) { 
     26                        /** doprava → následující kapitola */ 
     27                        ajaxPruvodceNasledujici(); 
     28                        return false; 
     29                } else if (e.which == 37) { 
     30                        /** doleva → předchozí kapitola */ 
     31                        ajaxPruvodcePredchozi(); 
     32                        return false; 
     33                } 
     34                return true; 
     35        } else { 
     36                return true; 
    3337        } 
    34         return true; 
    35     } else { 
    36         return true; 
    37     } 
    3838} 
  • java/sql-vyuka/web/strom.js

    r49 r80  
    33 
    44function pridejUdalost(o, e, f) { 
    5     if (o.addEventListener) { 
    6         o.addEventListener(e,f,true); 
    7         return true; 
    8     } else if (o.attachEvent) { 
    9         return o.attachEvent("on" + e, f); 
    10     } else { 
    11         return false; 
    12     } 
     5        if (o.addEventListener) { 
     6                o.addEventListener(e,f,true); 
     7                return true; 
     8        } else if (o.attachEvent) { 
     9                return o.attachEvent("on" + e, f); 
     10        } else { 
     11                return false; 
     12        } 
    1313} 
    1414 
    1515function nastavKonstantu(name, val) { 
    16     if (typeof(window[name]) == "undefined" || window[name] == null) { 
    17         window[name] = val; 
    18     } 
     16        if (typeof(window[name]) == "undefined" || window[name] == null) { 
     17                window[name] = val; 
     18        } 
    1919} 
    2020 
    2121function rozbalStrom(treeId) { 
    22     var ul = document.getElementById(treeId); 
    23     if (ul == null) { 
    24         return false; 
    25     } 
    26     rozbalSbalSeznam(ul, nodeOpenClass); 
     22        var ul = document.getElementById(treeId); 
     23        if (ul == null) { 
     24                return false; 
     25        } 
     26        rozbalSbalSeznam(ul, nodeOpenClass); 
    2727} 
    2828 
    2929function sbalStrom(treeId) { 
    30     var ul = document.getElementById(treeId); 
    31     if (ul == null) { 
    32         return false; 
    33     } 
    34     rozbalSbalSeznam(ul, nodeClosedClass); 
     30        var ul = document.getElementById(treeId); 
     31        if (ul == null) { 
     32                return false; 
     33        } 
     34        rozbalSbalSeznam(ul, nodeClosedClass); 
    3535} 
    3636 
    3737function rozbalAzNaPolozku(treeId, itemId) { 
    38     var ul = document.getElementById(treeId); 
    39     if (ul == null) { 
    40         return false; 
    41     } 
    42     var ret = rozbalSbalSeznam(ul, nodeOpenClass, itemId); 
    43     if (ret) { 
    44         var o = document.getElementById(itemId); 
    45         if (o.scrollIntoView) { 
    46             o.scrollIntoView(false); 
    47         } 
    48     } 
     38        var ul = document.getElementById(treeId); 
     39        if (ul == null) { 
     40                return false; 
     41        } 
     42        var ret = rozbalSbalSeznam(ul, nodeOpenClass, itemId); 
     43        if (ret) { 
     44                var o = document.getElementById(itemId); 
     45                if (o.scrollIntoView) { 
     46                        o.scrollIntoView(false); 
     47                } 
     48        } 
    4949} 
    5050 
    5151function rozbalSbalSeznam(ul, cName, itemId) { 
    52     if(!ul.childNodes || ul.childNodes.length==0) { 
    53         return false; 
    54     } 
    55     for (var itemi = 0; itemi < ul.childNodes.length; itemi++) { 
    56         var item = ul.childNodes[itemi]; 
     52        if(!ul.childNodes || ul.childNodes.length==0) { 
     53                return false; 
     54        } 
     55        for (var itemi = 0; itemi < ul.childNodes.length; itemi++) { 
     56                var item = ul.childNodes[itemi]; 
    5757 
    58         if (itemId != null && item.id == itemId) { 
    59             return true; 
    60         } 
     58                if (itemId != null && item.id == itemId) { 
     59                        return true; 
     60                } 
    6161 
    62         if (item.nodeName == "LI") { 
    63             var subLists = false; 
    64             for (var sitemi = 0; sitemi<item.childNodes.length; sitemi++) { 
    65                 var sitem = item.childNodes[sitemi]; 
    66                 if (sitem.nodeName=="UL") { 
    67                     subLists = true; 
    68                     var ret = rozbalSbalSeznam(sitem, cName, itemId); 
    69                     if (itemId != null && ret) { 
    70                         item.className = cName; 
    71                         return true; 
    72                     } 
    73                 } 
    74             } 
     62                if (item.nodeName == "LI") { 
     63                        var subLists = false; 
     64                        for (var sitemi = 0; sitemi<item.childNodes.length; sitemi++) { 
     65                                var sitem = item.childNodes[sitemi]; 
     66                                if (sitem.nodeName=="UL") { 
     67                                        subLists = true; 
     68                                        var ret = rozbalSbalSeznam(sitem, cName, itemId); 
     69                                        if (itemId != null && ret) { 
     70                                                item.className = cName; 
     71                                                return true; 
     72                                        } 
     73                                } 
     74                        } 
    7575 
    76             if (subLists && itemId == null) { 
    77                 item.className = cName; 
    78             } 
    79         } 
    80     } 
     76                        if (subLists && itemId == null) { 
     77                                item.className = cName; 
     78                        } 
     79                } 
     80        } 
    8181} 
    8282 
    8383function sestavStromy() { 
    84     nastavKonstantu("treeClass", "strom"); 
    85     nastavKonstantu("nodeClosedClass", "liClosed"); 
    86     nastavKonstantu("nodeOpenClass", "liOpen"); 
    87     nastavKonstantu("nodeBulletClass", "liBullet"); 
    88     nastavKonstantu("nodeLinkClass", "bullet"); 
    89     nastavKonstantu("preProcessTrees", true); 
    90     if (preProcessTrees) { 
    91         if (!document.createElement) { 
    92             return; 
    93         } 
    94         uls = document.getElementsByTagName("ul"); 
    95         for (var uli = 0; uli < uls.length; uli++) { 
    96             var ul = uls[uli]; 
    97             if (ul.nodeName == "UL" && ul.className == treeClass) { 
    98                 zpracujStrom(ul); 
    99                 ul.style.display = "block"; 
    100             } 
    101         } 
    102     } 
     84        nastavKonstantu("treeClass", "strom"); 
     85        nastavKonstantu("nodeClosedClass", "liClosed"); 
     86        nastavKonstantu("nodeOpenClass", "liOpen"); 
     87        nastavKonstantu("nodeBulletClass", "liBullet"); 
     88        nastavKonstantu("nodeLinkClass", "bullet"); 
     89        nastavKonstantu("preProcessTrees", true); 
     90        if (preProcessTrees) { 
     91                if (!document.createElement) { 
     92                        return; 
     93                } 
     94                uls = document.getElementsByTagName("ul"); 
     95                for (var uli = 0; uli < uls.length; uli++) { 
     96                        var ul = uls[uli]; 
     97                        if (ul.nodeName == "UL" && ul.className == treeClass) { 
     98                                zpracujStrom(ul); 
     99                                ul.style.display = "block"; 
     100                        } 
     101                } 
     102        } 
    103103} 
    104104 
    105105function zpracujStrom(ul) { 
    106     if (!ul.childNodes || ul.childNodes.length==0) { 
    107         return; 
    108     } 
    109     for (var itemi = 0; itemi < ul.childNodes.length; itemi++) { 
    110         var item = ul.childNodes[itemi]; 
    111         if (item.nodeName == "LI") { 
    112             var subLists = false; 
    113             for (var sitemi = 0; sitemi < item.childNodes.length; sitemi++) { 
    114                 var sitem = item.childNodes[sitemi]; 
    115                 if (sitem.nodeName == "UL") { 
    116                     subLists = true; 
    117                     zpracujStrom(sitem); 
    118                 } 
    119             } 
    120             var s = document.createElement("span"); 
    121             var t = '\u00A0'; 
    122             s.className = nodeLinkClass; 
    123             if (subLists) { 
    124                 if (item.className == null || item.className == "") { 
    125                     item.className = nodeClosedClass; 
    126                 } 
    127                 if (item.firstChild.nodeName == "#text") { 
    128                     t = t + item.firstChild.nodeValue; 
    129                     item.removeChild(item.firstChild); 
    130                 } 
    131                 s.onclick = function() { 
    132                     this.parentNode.className = (this.parentNode.className==nodeOpenClass) ? nodeClosedClass : nodeOpenClass; 
    133                     return false; 
    134                 } 
    135             } else { 
    136                 item.className = nodeBulletClass; 
    137                 s.onclick = function() { 
    138                     return false; 
    139                 } 
    140             } 
    141             s.appendChild(document.createTextNode(t)); 
    142             item.insertBefore(s, item.firstChild); 
    143         } 
    144     } 
     106        if (!ul.childNodes || ul.childNodes.length==0) { 
     107                return; 
     108        } 
     109        for (var itemi = 0; itemi < ul.childNodes.length; itemi++) { 
     110                var item = ul.childNodes[itemi]; 
     111                if (item.nodeName == "LI") { 
     112                        var subLists = false; 
     113                        for (var sitemi = 0; sitemi < item.childNodes.length; sitemi++) { 
     114                                var sitem = item.childNodes[sitemi]; 
     115                                if (sitem.nodeName == "UL") { 
     116                                        subLists = true; 
     117                                        zpracujStrom(sitem); 
     118                                } 
     119                        } 
     120                        var s = document.createElement("span"); 
     121                        var t = '\u00A0'; 
     122                        s.className = nodeLinkClass; 
     123                        if (subLists) { 
     124                                if (item.className == null || item.className == "") { 
     125                                        item.className = nodeClosedClass; 
     126                                } 
     127                                if (item.firstChild.nodeName == "#text") { 
     128                                        t = t + item.firstChild.nodeValue; 
     129                                        item.removeChild(item.firstChild); 
     130                                } 
     131                                s.onclick = function() { 
     132                                        this.parentNode.className = (this.parentNode.className==nodeOpenClass) ? nodeClosedClass : nodeOpenClass; 
     133                                        return false; 
     134                                } 
     135                        } else { 
     136                                item.className = nodeBulletClass; 
     137                                s.onclick = function() { 
     138                                        return false; 
     139                                } 
     140                        } 
     141                        s.appendChild(document.createTextNode(t)); 
     142                        item.insertBefore(s, item.firstChild); 
     143                } 
     144        } 
    145145} 
     146 
  • java/sql-vyuka/web/vstupniPole.js

    r22 r80  
    55function zpracujTabulatory(evt) { 
    66 
    7     var t = evt.target; 
    8     var ss = t.selectionStart; 
    9     var se = t.selectionEnd; 
     7        var t = evt.target; 
     8        var ss = t.selectionStart; 
     9        var se = t.selectionEnd; 
    1010 
    1111 
    12     // Tabulátor 
    13     if (evt.keyCode == 9) { 
    14         evt.preventDefault(); 
     12        // Tabulátor 
     13        if (evt.keyCode == 9) { 
     14                evt.preventDefault(); 
    1515 
    16         // Víceřádkový výběr 
    17         if (ss != se && t.value.slice(ss,se).indexOf("\n") != -1) { 
    18             var pre = t.value.slice(0,ss); 
    19             var sel = t.value.slice(ss,se).replace(/\n/g,"\n"+tab); 
    20             var post = t.value.slice(se,t.value.length); 
    21             t.value = pre.concat(tab).concat(sel).concat(post); 
    22             t.selectionStart = ss + tab.length; 
    23             t.selectionEnd = se + tab.length; 
    24         } 
     16                // Víceřádkový výběr 
     17                if (ss != se && t.value.slice(ss,se).indexOf("\n") != -1) { 
     18                        var pre = t.value.slice(0,ss); 
     19                        var sel = t.value.slice(ss,se).replace(/\n/g,"\n"+tab); 
     20                        var post = t.value.slice(se,t.value.length); 
     21                        t.value = pre.concat(tab).concat(sel).concat(post); 
     22                        t.selectionStart = ss + tab.length; 
     23                        t.selectionEnd = se + tab.length; 
     24                } 
    2525 
    26         // Jednořádkový nebo žádný výběr 
    27         else { 
    28             t.value = t.value.slice(0,ss).concat(tab).concat(t.value.slice(ss,t.value.length)); 
    29             if (ss == se) { 
    30                 t.selectionStart = t.selectionEnd = ss + tab.length; 
    31             } 
    32             else { 
    33                 t.selectionStart = ss + tab.length; 
    34                 t.selectionEnd = se + tab.length; 
    35             } 
    36         } 
    37     } 
     26                // Jednořádkový nebo žádný výběr 
     27                else { 
     28                        t.value = t.value.slice(0,ss).concat(tab).concat(t.value.slice(ss,t.value.length)); 
     29                        if (ss == se) { 
     30                                t.selectionStart = t.selectionEnd = ss + tab.length; 
     31                        } 
     32                        else { 
     33                                t.selectionStart = ss + tab.length; 
     34                                t.selectionEnd = se + tab.length; 
     35                        } 
     36                } 
     37        } 
    3838 
    39     // Backspace 
    40     else if (evt.keyCode==8 && t.value.slice(ss - 4,ss) == tab) { 
    41         evt.preventDefault(); 
    42         t.value = t.value.slice(0,ss - 4).concat(t.value.slice(ss,t.value.length)); 
    43         t.selectionStart = t.selectionEnd = ss - tab.length; 
    44     } 
     39        // Backspace 
     40        else if (evt.keyCode==8 && t.value.slice(ss - 4,ss) == tab) { 
     41                evt.preventDefault(); 
     42                t.value = t.value.slice(0,ss - 4).concat(t.value.slice(ss,t.value.length)); 
     43                t.selectionStart = t.selectionEnd = ss - tab.length; 
     44        } 
    4545 
    46     // Delete 
    47     else if (evt.keyCode==46 && t.value.slice(se,se + 4) == tab) { 
    48         evt.preventDefault(); 
    49         t.value = t.value.slice(0,ss).concat(t.value.slice(ss + 4,t.value.length)); 
    50         t.selectionStart = t.selectionEnd = ss; 
    51     } 
     46        // Delete 
     47        else if (evt.keyCode==46 && t.value.slice(se,se + 4) == tab) { 
     48                evt.preventDefault(); 
     49                t.value = t.value.slice(0,ss).concat(t.value.slice(ss + 4,t.value.length)); 
     50                t.selectionStart = t.selectionEnd = ss; 
     51        } 
    5252 
    53     // Doleva 
    54     else if (evt.keyCode == 37 && t.value.slice(ss - 4,ss) == tab) { 
    55         alert("levá"); 
    56         evt.preventDefault(); 
    57         t.selectionStart = t.selectionEnd = ss - 4; 
    58     } 
     53        // Doleva 
     54        else if (evt.keyCode == 37 && t.value.slice(ss - 4,ss) == tab) { 
     55                alert("levá"); 
     56                evt.preventDefault(); 
     57                t.selectionStart = t.selectionEnd = ss - 4; 
     58        } 
    5959 
    60     // Doprava 
    61     else if (evt.keyCode == 39 && t.value.slice(ss,ss + 4) == tab) { 
    62         alert("pravá"); 
    63         evt.preventDefault(); 
    64         t.selectionStart = t.selectionEnd = ss + 4; 
    65     } 
     60        // Doprava 
     61        else if (evt.keyCode == 39 && t.value.slice(ss,ss + 4) == tab) { 
     62                alert("pravá"); 
     63                evt.preventDefault(); 
     64                t.selectionStart = t.selectionEnd = ss + 4; 
     65        } 
    6666}