Changeset 38327 for main/trunk/greenstone3
- Timestamp:
- 2023-10-24T14:28:05+13:00 (8 months ago)
- Location:
- main/trunk/greenstone3/web/interfaces/default
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/web/interfaces/default/js/facet-scripts.js
r38152 r38327 1 2 1 var facetSortOptions = { 3 2 valueNames: [ 'facet', 'count' ] 4 3 } 5 4 5 function setUpFacetList(indexname) 6 { 7 var newList = new List(indexname, facetSortOptions); 8 enableMoreButtonIfNeeded(indexname); 9 } 10 11 function enableMoreButtonIfNeeded(indexname) { 12 var morelink = $(".expandFacetList" + indexname); 13 var tables = $(".facetTable"); 14 for(var i = 0; i < tables.length; i++) 15 { 16 var $current = $(tables[i]); 17 if($current.attr("indexname") == indexname) { 18 var current = $current[0]; 19 if (current.clientHeight < current.scrollHeight) { 20 morelink.css("display", "block"); 21 } 22 break; 23 } 24 } 25 26 } 6 27 7 28 function getFacetQueryString(facetsThatAreChecked) … … 20 41 var allCheckBoxes = $("#facetSelector input"); 21 42 var counts = new Array(); 22 // var facetsThatAreChecked = new Set(); 43 23 44 for(var i = 0; i < allCheckBoxes.length; i++) 24 45 { … … 99 120 // only replace the facets that haven't been selected 100 121 var $current_facets = $(".facetContainer"); 122 101 123 for (var i=0; i<$current_facets.length; i++) { 102 124 var $current = $($current_facets[i]); … … 106 128 var $newNode =$response.find('#'+indexName); 107 129 $current.replaceWith($newNode); 130 enableMoreButtonIfNeeded(indexName); 108 131 } 109 132 } … … 207 230 208 231 } 209 210 function expandFacetList(indexName, countSize) 232 var savedFacetHeight; 233 function expandFacets(indexname) 234 { 235 var tables = $(".facetTable"); 236 for(var i = 0; i < tables.length; i++) 237 { 238 var current = $(tables[i]); 239 if(current.attr("indexname") == indexname) 240 { 241 savedFacetHeight = current.css("max-height"); 242 current.css("max-height", "none"); 243 break; 244 } 245 246 } 247 248 var morelink = $(".expandFacetList" + indexname); 249 morelink.css("display", "none"); 250 var lesslink = $(".collapseFacetList" + indexname); 251 lesslink.css("display", "block"); 252 253 254 } 255 256 function collapseFacets(indexname) 257 { 258 console.log("collapse "+indexname); 259 var tables = $(".facetTable"); 260 261 for(var i = 0; i < tables.length; i++) 262 { 263 var current = $(tables[i]); 264 if(current.attr("indexname") == indexname) 265 { 266 current.css("max-height", savedFacetHeight); 267 break; 268 } 269 270 } 271 272 // the above code has hidden both the see more and see less links. 273 // display the see more one 274 var morelink = $(".expandFacetList" + indexname); 275 morelink.css("display", "block"); 276 var lesslink = $(".collapseFacetList" + indexname); 277 lesslink.css("display", "none"); 278 279 } 280 281 282 283 function expandFacetListORIG(indexName, countSize) 211 284 { 212 285 var tables = $(".facetTable"); … … 238 311 } 239 312 240 function collapseFacetList (indexName, countSize)313 function collapseFacetListORIG(indexName, countSize) 241 314 { 242 315 var tables = $(".facetTable"); -
main/trunk/greenstone3/web/interfaces/default/transform/pages/query.xsl
r38152 r38327 117 117 <xsl:template name="displayFacets"> 118 118 <script type="text/javascript" src="interfaces/{$interface_name}/js/utility_scripts.js"><xsl:text> </xsl:text></script> 119 <script type="text/javascript" src="interfaces/{$interface_name}/js/facet-scripts.js"> 120 <xsl:text> </xsl:text></script> 121 <script type="text/javascript" src="interfaces/default/js/List.js"> 122 <xsl:text> </xsl:text></script> 119 <script type="text/javascript" src="interfaces/{$interface_name}/js/facet-scripts.js"><xsl:text> </xsl:text></script> 120 <script type="text/javascript" src="interfaces/default/js/List.js"><xsl:text> </xsl:text></script> 123 121 <div id="facetSelector" > 124 122 <xsl:for-each select="/page/pageResponse/facetList/facet"> … … 131 129 <xsl:value-of select="@name"/> 132 130 </xsl:variable> 133 <xsl:variable name="countSize"> 134 <xsl:choose> 135 <xsl:when test="/page/pageResponse/format[@type='search']/gsf:option[@name='facetTableRows']"> 136 <xsl:value-of select="/page/pageResponse/format[@type='search']/gsf:option[@name='facetTableRows']/@value"/> 137 </xsl:when> 138 <xsl:otherwise>8</xsl:otherwise> 139 </xsl:choose> 140 </xsl:variable> 141 142 <li class="ui-widget-header" style="text-transform:capitalize; text-align:center;"> 131 <div class="ui-widget-header" style="text-transform:capitalize; text-align:center;"> 143 132 <xsl:value-of select="displayItem[@name='name']"/> 144 </li> 145 <input class="search" placeholder="Search" /><button class="sort" data-sort="facet">Sort by facet</button><button class="sort" data-sort="count">Sort by count</button> 133 </div> 134 <xsl:variable name="filterText"><gsf:interfaceText name="query.facet.filter"/></xsl:variable> 135 <div class="facetControls"> 136 <input class="search" placeholder="{$filterText}" /><span class="sort" data-sort="facet"><img width="15" style="width:15px;" alt="Sort" src="interfaces/{$interface_name}/images/sort.png"/><gsf:interfaceText name="query.facet.az"/> </span><span class="sort" data-sort="count"><img width="15" style="width:15px;" alt="Sort" src="interfaces/{$interface_name}/images/sort.png"/><gsf:interfaceText name="query.facet.freq"/></span></div> 146 137 <ul class="list facetTable" indexName="{@name}"> 147 138 <xsl:for-each select="count"> 148 139 <li> 149 <xsl:attribute name="style">150 <xsl:if test="position() > $countSize">display:none;<xsl:value-of select="$indexShortName"/>151 </xsl:if>152 </xsl:attribute>153 140 <input type="checkbox" onclick="performRefinedSearch();"/> 154 141 <span class="facet"><xsl:value-of select="@name"/></span> … … 157 144 </xsl:for-each> 158 145 </ul> 159 <xsl:if test="count(count) > $countSize"> 160 <li class="expandFacetList{$indexShortName}"> 161 <a class="expandFacetListLink{$indexShortName}" href="javascript:expandFacetList('{$indexShortName}', {$countSize});"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.facet.more')"/></a> 162 </li> 163 <li class="collapseFacetList{$indexShortName}" style="display: none;"> 164 <a class="collapseFacetListLink{$indexShortName}" href="javascript:collapseFacetList('{$indexShortName}', {$countSize});"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.facet.less')"/></a> 165 </li> 166 </xsl:if> 146 <!-- set up see more/less buttons, hidden to start with. Will enable them with js later --> 147 <span class="expandFacetList{$indexShortName}" style="display:none"> 148 <a class="expandFacetListLink{$indexShortName}" href="javascript:expandFacets('{$indexShortName}');"><gsf:interfaceText name="query.facet.more"/></a> 149 </span> 150 <span class="collapseFacetList{$indexShortName}" style="display: none;"> 151 <a class="collapseFacetListLink{$indexShortName}" href="javascript:collapseFacets('{$indexShortName}');"><gsf:interfaceText name="query.facet.less"/></a> 152 </span> 167 153 </div> 154 168 155 <script type="text/javascript"> 169 <xsl:text disable-output-escaping="yes">var facetList</xsl:text><xsl:value-of select="@name"/><xsl:text disable-output-escaping="yes"> = new List('</xsl:text><xsl:value-of select="@name"/><xsl:text disable-output-escaping="yes">', facetSortOptions);</xsl:text> 156 <!-- this call sets up the facets as a List (for search/sorting of the list), and displays the more button if needed --> 157 <xsl:text disable-output-escaping="yes">setUpFacetList('</xsl:text><xsl:value-of select="@name"/><xsl:text disable-output-escaping="yes">');</xsl:text> 170 158 </script> 171 159
Note:
See TracChangeset
for help on using the changeset viewer.