source: main/trunk/greenstone3/web/interfaces/default/js/facet-scripts.js@ 33186

Last change on this file since 33186 was 33154, checked in by davidb, 5 years ago

called to add back in berries (if berrybasket active)

  • Property svn:executable set to *
File size: 3.4 KB
Line 
1function performRefinedSearch()
2{
3 var allCheckBoxes = $("#facetSelector input");
4 var counts = new Array();
5 for(var i = 0; i < allCheckBoxes.length; i++)
6 {
7 var current = $(allCheckBoxes[i]);
8 if(current.prop("checked"))
9 {
10 counts.push(current.parent().parent().attr("indexName") + ":(\"" + current.siblings("span").first().html() + "\")");
11 }
12 }
13
14 var searchString = "";
15 for(var key in gs.cgiParams)
16 {
17 if (gs.cgiParams.hasOwnProperty(key))
18 {
19 searchString += key.replace(/_/g, ".") + "=" + gs.cgiParams[key] + "&";
20 }
21 }
22
23 var countsString = "s1.facetQueries=";
24 if(counts.length > 0)
25 {
26 var countsStringBuffer = "[";
27 for(var i = 0; i < counts.length; i++)
28 {
29 // escape any apostrophes in facet query terms
30 // (ext/solr's Greenstone3SearchHandler does the other half of handling them)
31 //countsStringBuffer += "\"" + encodeURI(counts[i]).replace(/'/g, "%2527") + "\"";
32 // calling makeURLSafe() here will ensure percent signs are escaped away too
33 // by the end of makeURLComponentSafe() call below
34 countsStringBuffer += "\"" + makeURLSafe(counts[i]).replace(/'/g, "%2527") + "\"";
35 if(i < counts.length - 1)
36 {
37 countsStringBuffer += ", ";
38 }
39 }
40
41 countsStringBuffer += "]";
42
43 // We need to ensure that the *value* of s1.facetQueries (so everything after
44 // s1.facetQueries= and before the connecting &) are safe, which requires escaping,
45 // and are further also escaped to not be mistaken for their reserved meaning.
46 // : is a reserved character in URLs, [] are unsafe characters. All need escaping.
47 // So call makeURLComponentSafe(), not makeURLSafe()
48 countsString = countsString + makeURLComponentSafe(countsStringBuffer, 1);
49 }
50
51 countsString += "&";
52 console.log("STRING IS " + countsString);
53
54 $.ajax(gs.xsltParams.library_name + "/collection/" + gs.cgiParams.c + "/search/" + gs.cgiParams.s + "?" + searchString + countsString + "excerptid=resultsArea")
55 .done(function(response)
56 {
57 $("#resultsArea").html("");
58 $("#resultsArea").html(response.substring(response.indexOf(">") + 1, response.lastIndexOf("<")));
59 checkout(); // called to add back in berries (if berrybasket active)
60 });
61}
62
63function expandFacetList(indexName, countSize)
64{
65 var tables = $(".facetTable");
66
67 for(var i = 0; i < tables.length; i++)
68 {
69 var current = $(tables[i]);
70 if(current.attr("indexName") == indexName)
71 {
72 var items = current.children("li");
73
74 for(var j = 0; j < items.length; j++)
75 {
76 $(items[j]).css("display", "block");
77 }
78
79 break;
80 }
81 }
82
83 // the above code has made both see more and see less links display=block, so we need to hide
84 // see more
85 var morelink = $(".expandFacetList" + indexName);
86 morelink.css("display", "none");
87
88}
89
90function collapseFacetList(indexName, countSize)
91{
92 var tables = $(".facetTable");
93
94 for(var i = 0; i < tables.length; i++)
95 {
96 var current = $(tables[i]);
97 if(current.attr("indexName") == indexName)
98 {
99 var items = current.children("li");
100
101 for(var j = 0; j < items.length; j++)
102 {
103 if(j > countSize)
104 {
105 $(items[j]).css("display", "none");
106 }
107 }
108
109 break;
110 }
111 }
112
113 // the above code has hidden both the see more and see less links.
114 // display the see more one
115 var morelink = $(".expandFacetList" + indexName);
116 morelink.css("display", "block");
117
118}
119
Note: See TracBrowser for help on using the repository browser.