- Timestamp:
- 2011-03-25T11:12:23+13:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/web/interfaces/oran/transform/pages/pref.xsl
r20405 r23813 19 19 <!-- the page content --> 20 20 <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 < selectNodes.length; i++) 38 { 39 var current = selectNodes[i]; 40 url += (url == "dev") ? "?" : "&"; 41 url += current.name + "="; 42 url += current.options[current.selectedIndex].text; 43 } 44 45 for (var i = 0; i < inputNodes.length; i++) 46 { 47 var current = inputNodes[i]; 48 if (current.type == "hidden" || current.type == "text") 49 { 50 url += (url == "dev") ? "?" : "&"; 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 < 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> 21 111 22 112 <xsl:variable name="collName" select="/page/pageRequest/paramList/param[@name='c']/@value"/> … … 24 114 25 115 <div id="queryform"> 26 <form name="PrefForm" method="get" action="{$library_name}" >116 <form name="PrefForm" method="get" action="{$library_name}" id="prefform"> 27 117 28 118 <input type='hidden' name='a' value='p'/> … … 89 179 <h3><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.searchpref')"/></h3> 90 180 <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> 92 191 <div class="paramLabel"> 93 192 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.hitsperpage')"/> … … 95 194 <div class="paramValue"> 96 195 <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 103 240 <br class="clear"/> 104 241 </div>
Note:
See TracChangeset
for help on using the changeset viewer.