PageSourceSearch

https://collectie.hetnoordbrabantsmuseum.nl/Scripts/Base/FacetedSearch.js

js hetnoordbrabantsmuseum.nl collected 2026-10-02 04:27:35 UTC 7,002 bytes, 175 lines download raw bytes

1var AIS = AIS || {};
2
3$(document).ready(function () {
4
5  $(this).on("click keypress", ".all-facets-script", function (event) {
6    if ((event.type == "keypress" && event.which == 13) || event.type == "click") {
7      AIS.Facets.ToggleGroups(this);
8    }
9  });
10  $(this).on("click keypress", ".facet-group-title-script", function (event) {
11    if ((event.type == "keypress" && event.which == 13) || event.type == "click") {
12      AIS.Facets.ToggleGroup(this);
13    }
14  });
15  $(this).on("click keypress", ".facet-row-script", function (event) {
16    if ((event.type == "keypress" && event.which == 13) || event.type == "click") {
17      var facetname = $(this).attr("facetname");
18      var facetindex = $(this).attr("facetindex");
19      AIS.Facets.FacetSelect(event, this, facetname, facetindex);
20    }
21  });
22  $(this).on("click keypress", ".facet-tag-script", function (event) {
23    if ((event.type == "keypress" && event.which == 13) || event.type == "click") {
24      var facetindex = $(this).attr("facetindex");
25      AIS.Facets.FacetDeselect(event, this, facetindex);
26    }
27  });
28
29});
30
31AIS.Facets = function () {
32
33  var facetSelect = function (event, elem, group, index) {
34    var url = AIS.Helpers.ResolveUrl("results/facetSelect/" + group + "/" + index);
35    $("html, #ais-master").animate({ scrollTop: 0 }, 300);
36    makeApiCall(url);
37  }
38
39  var facetDeselect = function (event, elem, index) {
40    var url = AIS.Helpers.ResolveUrl("results/facetDeselect/" + index);
41    makeApiCall(url);
42  }
43
44  var toggleGroupMore = function (element) {
45    //var oht = 0;
46    var showItem = parseInt($(element).attr("show"),10);
47    var showNextItem = parseInt(showItem, 10) + parseInt(10, 10);
48    var allItems = $(element).siblings(".facet-table").children(".facet-row").length;
49    showNextItem = allItems < showNextItem ? allItems : showNextItem;
50    if (showItem === 0) {
51      $(element).siblings(".facet-table").children(".facet-row").slice(4).slideToggle("fast");
52      $(element).attr("show", 4);
53      $(element).children(".collapseMoreIcon").toggle();
54      $(element).children(".expandMoreIcon").toggle();
55      $('html, body').animate({
56        scrollTop: $("body").offset().top
57      }, 1000);
58    }
59    else {
60      $(element).siblings(".facet-table").children(".facet-row").slice(showItem, showNextItem).slideToggle("fast");
61
62      $(element).attr("show", showNextItem);
63      if (showNextItem >= parseInt(allItems,10)) {
64        $(element).children(".collapseMoreIcon").toggle();
65        $(element).children(".expandMoreIcon").toggle();
66        $(element).attr("show", 0);
67      }
68      //for (var i = showItem; i <= showNextItem; i++) {
69      //  oht += $(element).siblings(".facet-table").children(".facet-row").eq(i).height();
70      //}
71
72      //$('html, body').animate({
73      //  scrollTop: '+='+oht+'px'
74      //}, 1000);
75
76      var ele = $(element).parents(".facet-group").next();
77      $(ele)[0].scrollIntoView({ aligntotop:false, behavior: "smooth", block: "end" });
78
79    }
80    //$(element).parent().find(".facet-table .facet-row").show();
81    //$(element).siblings(".facet-table").slideToggle("fast");
82  }
83
84  var toggleGroup = function (element) {
85    $(element).children(".group").removeClass("display-inline").removeClass("display-none");
86    if ($(element).siblings(".facet-group-content").is(":visible")) {
87      $(element).children(".collapseIcon").addClass("display-none");
88      $(element).children(".expandIcon").addClass("display-inline");
89    } else {
90      $(element).children(".collapseIcon").addClass("display-inline");
91      $(element).children(".expandIcon").addClass("display-none");
92    }
93    $(element).siblings(".facet-group-content").slideToggle("fast");
94  }
95  var toggleGroups = function (element) {
96    $(".facet-group-title").find(".group").removeClass("display-inline").removeClass("display-none");
97    $(".tools-header").find(".all").removeClass("display-inline").removeClass("display-none");
98    if ($(element).hasClass("expandIcon")) {
99      $(element).parent().find(".collapseIcon.all").addClass("display-inline");
100      $(element).parent().find(".expandIcon.all").addClass("display-none");
101      $(".facet-group-title").find(".collapseIcon.group").addClass("display-inline");
102      $(".facet-group-title").find(".expandIcon.group").addClass("display-none");
103      $(".facet-group-content").slideDown("fast");
104    } else {
105      $(element).parent().find(".collapseIcon.all").addClass("display-none");
106      $(element).parent().find(".expandIcon.all").addClass("display-inline");
107      $(".facet-group-title").find(".collapseIcon.group").addClass("display-none");
108      $(".facet-group-title").find(".expandIcon.group").addClass("display-inline");
109      $(".facet-group-content").slideUp("fast");
110    }
111  }
112
113
114  function doLogic(data) {
115    if (data.hasOwnProperty("Error")) {
116      console.log("error");
117    } else {
118      $("#ais-main-content").html(data.RecordsHtml);
119      $("#facet-search-container").html(data.FacetHtml);
120      $('.ais-brief-gallery').imagesLoaded(function () {
121        for (var i = 0; i < 5; i++) {
122          var maxHeight = 0;
123          var maxImageHeight = 0;
124          $(".ais-brief-gallery>ul>li").slice(i * 3, i * 3 + 3).each(function () {
125            var thisH = $(this).find(".content").height() + 12;
126            var thisImageH = $(this).find(".logo").height() + 12;
127            if (thisH > maxHeight) { maxHeight = thisH; }
128            if (thisImageH > maxImageHeight) { maxImageHeight = thisImageH; }
129          });
130          $(".ais-brief-gallery>ul>li").slice(i * 3, i * 3 + 3).each(function () {  //.content
131            var thisH = $(this).find(".content").height() + 12;
132            $(this).find(".content").css("padding-bottom", maxHeight - thisH);
133            $(this).find(".content").attr("max", maxHeight);
134            $(this).find(".content").attr("h", thisH);
135          });
136          $(".ais-brief-gallery>ul>li").slice(i * 3, i * 3 + 3).each(function () {//.logo
137            var thisH = $(this).find(".logo").height() + 12;
138            $(this).find(".logo").css("padding-top", maxImageHeight - thisH);
139            $(this).find(".logo").attr("max", maxImageHeight);
140            $(this).find(".logo").attr("h", thisH);
141          });
142        }
143      });
144    }
145  }
146
147  function makeApiCall(url) {
148    if (AIS.WindowManager.IsLoading()) return;
149    AIS.WindowManager.ShowResultsLoader();
150    $.ajax({
151      url: url,
152      beforeSend: function () {
153
154      },
155      complete: function () {
156        AIS.WindowManager.HideResultsLoader();
157      },
158      success: function (data) {
159        doLogic(data);
160      },
161      error: function (error) {
162
163      }
164    });
165  }
166
167
168  return {
169    FacetSelect: facetSelect,
170    FacetDeselect: facetDeselect,
171    ToggleGroup: toggleGroup,
172    ToggleGroups: toggleGroups,
173    ToggleGroupMore: toggleGroupMore
174  }
175}();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.