PageSourceSearch

https://theartssociety.org/sites/all/modules/custom/nad_global/js/nad_global.js?tlvm4t

js theartssociety.org collected 2026-09-24 20:54:42 UTC 4,660 bytes, 103 lines download raw bytes

1(function ($) {
2
3  Drupal.behaviors.global_js = {
4    attach: function (context,settings) {
5
6      // Homepage/what-we-do-search search box on change autocomplete and submit.
7      var submitFunction = function(el, isSubmit) {
8        $(el, context).change(function() {
9          if ($('#autocomplete', context).length) {
10            if ($('#autocomplete .selected').length) {
11              $(el, context).val($('#autocomplete .selected').text());
12            } else {
13              $(el, context).val($('#autocomplete li:first-child').text());
14            }
15          }
16          if (isSubmit) {
17            this.form.submit();
18          }
19        });
20      };
21
22      submitFunction('.page-home #edit-search-term', true);
23      submitFunction('.page-what-we-do-search #edit-combine', false);
24
25      // Gallery images.
26      $('.view-society-gallery-images .attachment-after .view-display-id-attachment_2  .field-content a').hide();
27      $('.view-society-gallery-images .attachment-after .view-display-id-attachment_2  .field-content a:lt(2)').show();
28
29      // Rearranging Miles expose filter.
30      $('#views-exposed-form-events-data-panel-pane-1 .form-item-from-miles').insertBefore('#edit-country-wrapper');
31
32      if ($('input.daterangepicker').length){
33
34        $('input.daterangepicker').each(function(index, element) {
35
36          // Enable date range for all inputs with the given class.
37          $(this).daterangepicker({
38            initialText: settings.daterangepicker.initialText,
39            applyButtonText: settings.daterangepicker.applyButtonText,
40            clearButtonText: settings.daterangepicker.clearButtonText,
41            cancelButtonText: settings.daterangepicker.cancelButtonText,
42            rangeSplitter: settings.daterangepicker.rangeSplitter,
43            dateFormat: settings.daterangepicker.dateFormat,
44            altFormat: settings.daterangepicker.altFormat,
45            datepickerOptions : {
46              numberOfMonths: settings.daterangepicker.datepickerOptions.numberOfMonths
47            }
48          });
49
50          $(this).daterangepicker({
51            presetRanges: [
52              {text: 'Today', dateStart: function() { return moment() }, dateEnd: function() { return moment() } },
53              {text: 'This Week', dateStart: function() { return moment().day(1) }, dateEnd: function() { return moment().day(7) } },
54              {text: 'This Weekend', dateStart: function() { return moment().day(6) }, dateEnd: function() { return moment().day(7) } },
55              {text: 'This Month', dateStart: function() { return moment().startOf('month') }, dateEnd: function() { return moment().endOf('month') } },
56              {text: 'This Season', dateStart: function() { return moment().startOf('month').month(7).subtract(1, 'years') }, dateEnd: function() { return moment().endOf('month').month(6) } },
57            ],
58            datepickerOptions: {
59              maxDate: '+1Y',
60              yearRange: "-20:+2",
61              firstDay: 1,
62            }
63          });
64
65          // Submit Button to work on click.
66          $('.ui-priority-primary').on('click', function(event) {
67            // Function to update query string for events search url.
68            function updateQueryStringParameter(uri, key, value) {
69              var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
70              var separator = uri.indexOf('?') !== -1 ? "&" : "?";
71              if (uri.match(re)) {
72                return uri.replace(re, '$1' + key + "=" + value + '$2');
73              }
74              else {
75                return uri + separator + key + "=" + value;
76              }
77            }
78
79            // Datepicker selected value.
80            var range = $('.daterangepicker').val();
81            if (range) {
82              var update_href = updateQueryStringParameter(window.location.href, 'range', range);
83              window.location.href = encodeURI(update_href);
84            }
85          });
86
87          // Calculate if we need to set a default value.
88          if (settings.daterangepicker.defaultValue instanceof Object) {
89            var range = {};
90            range.start = new Date(settings.daterangepicker.defaultValue.start);
91            if (settings.daterangepicker.defaultValue.end.length > 0) {
92              range.end = new Date(settings.daterangepicker.defaultValue.end);
93            }
94            $(this).daterangepicker('setRange', range);
95          }
96        });
97      }
98
99      // Adding My Society Online tab to user/%/sad page.
100      $('.page-user-sad #tasks ul.secondary', context).append('<li><a href="/my-societies">' + Drupal.t('My Society Online') + '</a></li>');
101    }
102  };
103})(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.