Ignore:
Timestamp:
2011-03-25T11:12:23+13:00 (13 years ago)
Author:
sjm84
Message:

Lots of upgrades to the oran skin, getting it ready to be the default skin for Greenstone3

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/web/interfaces/oran/transform/pages/pref.xsl

    r20405 r23813  
    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                   
     31            function assembleURLFromForm(formElem)
     32            {
     33                var url = "dev";
     34                var selectNodes = formElem.getElementsByTagName("select");
     35                var inputNodes = formElem.getElementsByTagName("input");
     36
     37                for (var i = 0; i &lt; selectNodes.length; i++)
     38                {
     39                    var current = selectNodes[i];
     40                    url += (url == "dev") ? "?" : "&amp;";
     41                    url += current.name + "=";
     42                    url += current.options[current.selectedIndex].text;
     43                }
     44               
     45                for (var i = 0; i &lt; inputNodes.length; i++)
     46                {
     47                    var current = inputNodes[i];
     48                    if (current.type == "hidden" || current.type == "text")
     49                    {
     50                        url += (url == "dev") ? "?" : "&amp;";
     51                        url += current.name + "=";
     52                        url += current.value;
     53                    }
     54                }
     55                return url;
     56            }
     57                   
     58            function checkModified(e)
     59            {
     60                if (modified)
     61                {
     62                    var ok = confirm("Would you like to save your preferences?");
     63                   
     64                    if (ok)
     65                    {
     66                        var formElem = document.getElementById("prefform");
     67                        formElem.submit();
     68                        var xmlhttp;
     69                        if (window.XMLHttpRequest)
     70                        {
     71                            xmlhttp=new XMLHttpRequest();
     72                        }
     73                        else
     74                        {
     75                            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
     76                        }
     77                        //assembleURLFromForm(formElem);
     78                        xmlhttp.open("GET",assembleURLFromForm(formElem),false);
     79                        xmlhttp.send();
     80                    }
     81                }
     82            }
     83           
     84            function changed()
     85            {
     86                modified = true;
     87            }
     88           
     89            function pageLoad()
     90            {
     91                var formElem = document.getElementById("prefform");
     92           
     93                var selectNodes = formElem.getElementsByTagName("select");
     94                var inputNodes = formElem.getElementsByTagName("input");
     95
     96                YAHOO.util.Event.addListener(selectNodes, 'change', changed);
     97               
     98                for(var i = 0; i &lt; inputNodes.length; i++)
     99                {
     100                    current = inputNodes[i];
     101                    if(current.getAttribute("type") == null)
     102                    {
     103                        YAHOO.util.Event.on(current, 'keyup', changed);
     104                    }
     105                }
     106            }
     107           
     108            YAHOO.util.Event.addListener(window, 'load', pageLoad);
     109            YAHOO.util.Event.addListener(window, 'beforeunload', checkModified);
     110        </xsl:text></script>
    21111
    22112        <xsl:variable name="collName" select="/page/pageRequest/paramList/param[@name='c']/@value"/>
     
    24114
    25115        <div id="queryform">
    26             <form name="PrefForm" method="get" action="{$library_name}">
     116            <form name="PrefForm" method="get" action="{$library_name}" id="prefform">
    27117
    28118                <input type='hidden' name='a' value='p'/>
     
    89179                <h3><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.searchpref')"/></h3>
    90180                <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>
     181                    <xsl:variable name="hits">
     182                        <xsl:choose>
     183                            <xsl:when test="/page/pageRequest/paramList/param[@name='hitsPerPage']">
     184                                <xsl:value-of select="/page/pageRequest/paramList/param[@name='hitsPerPage']/@value"/>
     185                            </xsl:when>
     186                            <xsl:otherwise>
     187                                20
     188                            </xsl:otherwise>
     189                        </xsl:choose>
     190                    </xsl:variable>
    92191                    <div class="paramLabel">
    93192                        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.hitsperpage')"/>
     
    95194                    <div class="paramValue">
    96195                        <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>
     196                            <option value="20">
     197                                <xsl:if test="$hits=20">
     198                                    <xsl:attribute name="selected" />
     199                                </xsl:if>
     200                                20
     201                            </option>
     202                            <option value="50">
     203                                <xsl:if test="$hits=50">
     204                                    <xsl:attribute name="selected" />
     205                                </xsl:if>
     206                                50
     207                            </option>
     208                            <option value="100">
     209                                <xsl:if test="$hits=100">
     210                                    <xsl:attribute name="selected" />
     211                                </xsl:if>
     212                                100
     213                            </option>
     214                            <option value="-1">
     215                                <xsl:if test="$hits=-1">
     216                                    <xsl:attribute name="selected" />
     217                                </xsl:if>
     218                                <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.all')"/>
     219                            </option>
     220                        </select>
     221                    </div>
     222                   
     223                    <br class="clear"/>
     224                   
     225                    <xsl:variable name="mdocs">
     226                        <xsl:choose>
     227                            <xsl:when test="/page/pageRequest/paramList/param[@name='maxDocs']">
     228                                <xsl:value-of select="/page/pageRequest/paramList/param[@name='maxDocs']/@value"/>
     229                            </xsl:when>
     230                            <xsl:otherwise>100</xsl:otherwise>
     231                        </xsl:choose>
     232                    </xsl:variable>
     233                    <div class="paramLabel">
     234                        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.maxDocs')"/>
     235                    </div>
     236                    <div class="paramValue">
     237                        <input name="maxDocs" size="3" value="{$mdocs}" />
     238                    </div>
     239                   
    103240                    <br class="clear"/>
    104241                </div>
Note: See TracChangeset for help on using the changeset viewer.