Ignore:
Timestamp:
2011-05-09T14:37:04+12:00 (13 years ago)
Author:
sjm84
Message:

Updating this branch to match the latest Greenstone3 changes

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

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>
Note: See TracChangeset for help on using the changeset viewer.