Show
Ignore:
Timestamp:
09.05.2011 14:37:04 (8 years ago)
Author:
sjm84
Message:

Updating this branch to match the latest Greenstone3 changes

Location:
main/branches/64_bit_Greenstone/greenstone3
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • main/branches/64_bit_Greenstone/greenstone3

  • main/branches/64_bit_Greenstone/greenstone3/web/interfaces/oran/transform/pages/pref.xsl

    r20405 r24007  
    1919    <!-- the page content --> 
    2020    <xsl:template match="/page"> 
     21     
     22        <!--  
     23        Add some javascript to the page that notices when a preference is changed  
     24        so that, if the user tries to navigate away from the page without clicking 
     25        the "Set preferences" button, it asks them if they want their preferences 
     26        saved or not  
     27        --> 
     28        <script type="text/javascript"><xsl:text disable-output-escaping="yes"> 
     29            var modified = false; 
     30            var bypass = false; 
     31                     
     32            function assembleURLFromForm(formElem) 
     33            { 
     34                var url = "dev"; 
     35                var selectNodes = formElem.getElementsByTagName("select"); 
     36                var inputNodes = formElem.getElementsByTagName("input"); 
     37 
     38                for (var i = 0; i &lt; selectNodes.length; i++) 
     39                { 
     40                    var current = selectNodes[i]; 
     41                    url += (url == "dev") ? "?" : "&amp;"; 
     42                    url += current.name + "="; 
     43                    url += current.options[current.selectedIndex].text; 
     44                } 
     45                 
     46                for (var i = 0; i &lt; inputNodes.length; i++) 
     47                { 
     48                    var current = inputNodes[i]; 
     49                    if (current.type == "hidden" || current.type == "text") 
     50                    { 
     51                        url += (url == "dev") ? "?" : "&amp;"; 
     52                        url += current.name + "="; 
     53                        url += current.value; 
     54                    } 
     55                } 
     56                return url; 
     57            } 
     58                     
     59            function checkModified(e) 
     60            { 
     61                if (modified &amp;&amp; !bypass) 
     62                { 
     63                    var ok = confirm("Would you like to save your preferences?"); 
     64                     
     65                    if (ok) 
     66                    { 
     67                        var formElem = document.getElementById("prefform"); 
     68                        formElem.submit(); 
     69                        var xmlhttp; 
     70                        if (window.XMLHttpRequest) 
     71                        { 
     72                            xmlhttp=new XMLHttpRequest(); 
     73                        } 
     74                        else 
     75                        { 
     76                            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     77                        } 
     78 
     79                        xmlhttp.open("GET",assembleURLFromForm(formElem),false); 
     80                        xmlhttp.send(); 
     81                    } 
     82                } 
     83            } 
     84             
     85            function changed() 
     86            { 
     87                modified = true; 
     88                bypass = false; 
     89            } 
     90             
     91            function pageLoad() 
     92            { 
     93                var formElem = document.getElementById("prefform"); 
     94             
     95                var selectNodes = formElem.getElementsByTagName("select"); 
     96                var inputNodes = formElem.getElementsByTagName("input"); 
     97 
     98                YAHOO.util.Event.addListener(selectNodes, 'change', changed); 
     99                 
     100                for(var i = 0; i &lt; inputNodes.length; i++) 
     101                { 
     102                    current = inputNodes[i]; 
     103                    if(current.getAttribute("type") == null) 
     104                    { 
     105                        YAHOO.util.Event.on(current, 'keyup', changed); 
     106                    } 
     107                } 
     108            } 
     109             
     110            YAHOO.util.Event.addListener(window, 'load', pageLoad); 
     111            YAHOO.util.Event.addListener(window, 'beforeunload', checkModified); 
     112        </xsl:text></script> 
    21113 
    22114        <xsl:variable name="collName" select="/page/pageRequest/paramList/param[@name='c']/@value"/> 
     
    24116 
    25117        <div id="queryform"> 
    26             <form name="PrefForm" method="get" action="{$library_name}"> 
     118            <form name="PrefForm" method="get" action="{$library_name}" id="prefform"> 
    27119 
    28120                <input type='hidden' name='a' value='p'/> 
     
    89181                <h3><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.searchpref')"/></h3> 
    90182                <div id="searchprefs"> 
    91                     <xsl:variable name="hits"><xsl:choose><xsl:when test="/page/pageRequest/paramList/param[@name='hitsPerPage']"><xsl:value-of select="/page/pageRequest/paramList/param[@name='hitsPerPage']/@value"/></xsl:when><xsl:otherwise>20</xsl:otherwise></xsl:choose></xsl:variable>  
     183                    <xsl:variable name="hits"> 
     184                        <xsl:choose> 
     185                            <xsl:when test="/page/pageRequest/paramList/param[@name='hitsPerPage']"> 
     186                                <xsl:value-of select="/page/pageRequest/paramList/param[@name='hitsPerPage']/@value"/> 
     187                            </xsl:when> 
     188                            <xsl:otherwise> 
     189                                20 
     190                            </xsl:otherwise> 
     191                        </xsl:choose> 
     192                    </xsl:variable>  
    92193                    <div class="paramLabel"> 
    93194                        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.hitsperpage')"/> 
     
    95196                    <div class="paramValue"> 
    96197                        <select name="hitsPerPage"> 
    97                             <option value="20"><xsl:if test="$hits=20"><xsl:attribute name="selected"></xsl:attribute></xsl:if>20</option>  
    98                             <option value="50"><xsl:if test="$hits=50"><xsl:attribute name="selected"></xsl:attribute></xsl:if>50</option> 
    99                             <option value="100"><xsl:if test="$hits=100"><xsl:attribute name="selected"></xsl:attribute></xsl:if>100</option> 
    100                             <option value="-1"><xsl:if test="$hits=-1"><xsl:attribute name="selected"></xsl:attribute></xsl:if><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.all')"/></option> 
    101                         </select> 
    102                     </div> 
     198                            <option value="20"> 
     199                                <xsl:if test="$hits=20"> 
     200                                    <xsl:attribute name="selected" /> 
     201                                </xsl:if> 
     202                                20 
     203                            </option>  
     204                            <option value="50"> 
     205                                <xsl:if test="$hits=50"> 
     206                                    <xsl:attribute name="selected" /> 
     207                                </xsl:if> 
     208                                50 
     209                            </option> 
     210                            <option value="100"> 
     211                                <xsl:if test="$hits=100"> 
     212                                    <xsl:attribute name="selected" /> 
     213                                </xsl:if> 
     214                                100 
     215                            </option> 
     216                            <option value="-1"> 
     217                                <xsl:if test="$hits=-1"> 
     218                                    <xsl:attribute name="selected" /> 
     219                                </xsl:if> 
     220                                <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.all')"/> 
     221                            </option> 
     222                        </select> 
     223                    </div> 
     224                     
     225                    <br class="clear"/> 
     226                     
     227                    <xsl:variable name="mdocs"> 
     228                        <xsl:choose> 
     229                            <xsl:when test="/page/pageRequest/paramList/param[@name='maxDocs']"> 
     230                                <xsl:value-of select="/page/pageRequest/paramList/param[@name='maxDocs']/@value"/> 
     231                            </xsl:when> 
     232                            <xsl:otherwise>100</xsl:otherwise> 
     233                        </xsl:choose> 
     234                    </xsl:variable>  
     235                    <div class="paramLabel"> 
     236                        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.maxDocs')"/> 
     237                    </div> 
     238                    <div class="paramValue"> 
     239                        <input name="maxDocs" size="3" value="{$mdocs}" /> 
     240                    </div> 
     241                     
    103242                    <br class="clear"/> 
    104243                </div> 
     
    106245                <br/> 
    107246 
    108                 <input type='submit'><xsl:attribute name="value"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.set_prefs')"/></xsl:attribute></input> 
     247                <input type='submit' onclick="bypass=true;"><xsl:attribute name="value"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.set_prefs')"/></xsl:attribute></input> 
    109248 
    110249            </form>