Changeset 24007 for main/branches/64_bit_Greenstone/greenstone3/web/interfaces/oran/transform/pages/pref.xsl
- Timestamp:
- 2011-05-09T14:37:04+12:00 (13 years ago)
- Location:
- main/branches/64_bit_Greenstone/greenstone3
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
main/branches/64_bit_Greenstone/greenstone3
- Property svn:mergeinfo changed
-
main/branches/64_bit_Greenstone/greenstone3/web/interfaces/oran/transform/pages/pref.xsl
r20405 r24007 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 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 < selectNodes.length; i++) 39 { 40 var current = selectNodes[i]; 41 url += (url == "dev") ? "?" : "&"; 42 url += current.name + "="; 43 url += current.options[current.selectedIndex].text; 44 } 45 46 for (var i = 0; i < inputNodes.length; i++) 47 { 48 var current = inputNodes[i]; 49 if (current.type == "hidden" || current.type == "text") 50 { 51 url += (url == "dev") ? "?" : "&"; 52 url += current.name + "="; 53 url += current.value; 54 } 55 } 56 return url; 57 } 58 59 function checkModified(e) 60 { 61 if (modified && !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 < 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> 21 113 22 114 <xsl:variable name="collName" select="/page/pageRequest/paramList/param[@name='c']/@value"/> … … 24 116 25 117 <div id="queryform"> 26 <form name="PrefForm" method="get" action="{$library_name}" >118 <form name="PrefForm" method="get" action="{$library_name}" id="prefform"> 27 119 28 120 <input type='hidden' name='a' value='p'/> … … 89 181 <h3><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.searchpref')"/></h3> 90 182 <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> 92 193 <div class="paramLabel"> 93 194 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.hitsperpage')"/> … … 95 196 <div class="paramValue"> 96 197 <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 103 242 <br class="clear"/> 104 243 </div> … … 106 245 <br/> 107 246 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> 109 248 110 249 </form>
Note:
See TracChangeset
for help on using the changeset viewer.