PageSourceSearch

https://acervoihpf.projetopassofundo.com.br/themes/foundation/asset/js/browse.js?v=1.5.3

js projetopassofundo.com.br collected 2026-10-02 13:49:46 UTC 3,892 bytes, 88 lines download raw bytes

1(function($) {
2
3    // Get parameter from current URL. Source: https://stackoverflow.com/questions/5448545/how-to-retrieve-get-parameters-from-javascript
4
5    function findGetParameter(parameterName) {
6        var result = null,
7            tmp = [];
8        location.search
9            .substr(1)
10            .split("&")
11            .forEach(function (item) {
12            tmp = item.split("=");
13            if (tmp[0] === parameterName) result = decodeURIComponent(tmp[1]);
14            });
15        return result;
16    }
17
18    // Replace parameter within a given URL. Source: https://stackoverflow.com/questions/7171099/how-to-replace-url-parameter-with-javascript-jquery
19
20    function replaceUrlParam(url, paramName, paramValue)
21    {
22        if (paramValue == null) {
23            paramValue = '';
24        }
25        var pattern = new RegExp('\\b('+paramName+'=).*?(&|#|$)');
26        if (url.search(pattern)>=0) {
27            return url.replace(pattern,'$1' + paramValue + '$2');
28        }
29        url = url.replace(/[?#]$/,'');
30        return url + (url.indexOf('?')>0 ? '&' : '?') + paramName + '=' + paramValue;
31    }
32
33    $(document).ready(function() {
34        var layoutSetting = findGetParameter('browse_layout');
35        var layoutHiddenInput = $('<input type="hidden" name="browse_layout">');
36
37        if (layoutSetting) {
38            $('.layout-toggle button').attr('disabled', false);
39            var currentLayoutButton = $('.layout-toggle button.' + layoutSetting);
40            currentLayoutButton.attr('disabled', true);            
41            $('.resources').attr('class', 'resources resource-' + layoutSetting);
42            if (layoutSetting == 'list') {
43                $('.resources .resource').addClass('media-object');
44                $('.resource-meta, .resource-image').addClass('media-object-section');
45            } else {
46                $('.resources .resource').removeClass('media-object');
47                $('.resource-meta, .resource-image').removeClass('media-object-section');
48            }
49        }
50
51        $('.layout-toggle button').click(function() {
52            const newLayoutName = $(this).attr('aria-label').toLowerCase();
53            $('.layout-toggle button:disabled').removeAttr('disabled');
54            $(this).attr('disabled', 'disabled');
55            $('.resources').toggleClass('resource-list').toggleClass('resource-grid');
56            $('.resources .resource').toggleClass('media-object');
57            $('.resource-meta, .resource-image').toggleClass('media-object-section');
58
59            // Update URLs.
60            var queryParams = new URLSearchParams(window.location.search);
61            queryParams.set('browse_layout', newLayoutName);
62            history.replaceState('', '', "?"+queryParams.toString());
63            $('.omeka-pagination a').each(function() {
64                var paginationLink = $(this);
65                var currentUrl = paginationLink.attr('href');
66                var newUrl = replaceUrlParam(currentUrl, 'browse_layout', newLayoutName);
67                paginationLink.attr('href', newUrl);
68            });
69            if ($('.omeka-pagination [name="browse_layout"]').length > 0) {
70                $('.omeka-pagination [name="browse_layout"]').each(function() {
71                    $(this).val(newLayoutName);
72                });
73            } else {
74                $('.omeka-pagination form').each(function() {
75                    var newLayoutHiddenInput = layoutHiddenInput.clone();
76                    newLayoutHiddenInput.val(newLayoutName);
77                    $(this).prepend(newLayoutHiddenInput);
78                });
79            }
80            $('.sorting [name="browse_layout"]').val(newLayoutName);
81        });
82        
83        $('.browse-toggle').click(function() {
84            $('.browse-controls').toggleClass('open closed');
85            $(this).toggleClass('open closed');
86        });
87    });
88})(jQuery)

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.