PageSourceSearch

https://www.lsc-erftland.de/themes/custom/lsc_new/js/load-more.js?tk0jqt

js lsc-erftland.de collected 2026-10-06 02:25:55 UTC 2,786 bytes, 73 lines download raw bytes

1/**
2 * Load More - Views AJAX Pager
3 */
4(function (Drupal, once) {
5  'use strict';
6
7  Drupal.behaviors.loadMore = {
8    attach: function (context) {
9      once('load-more', '.btn-load-more', context).forEach(function (btn) {
10        btn.addEventListener('click', function () {
11          var currentPage = parseInt(btn.getAttribute('data-current-page') || '0');
12          var nextPage = currentPage + 1;
13          var viewId = btn.getAttribute('data-view-id');
14          var displayId = btn.getAttribute('data-display-id');
15          var itemsPerPage = parseInt(btn.getAttribute('data-items-per-page') || '6');
16          var contentWrapper = btn.closest('.view').querySelector('.view-content-wrapper');
17
18          if (!contentWrapper) return;
19
20          // Loading state
21          btn.disabled = true;
22          btn.innerHTML = '<span class="spinner-border spinner-border-sm me-2"></span>Laden...';
23
24          var url = '/views/ajax?view_name=' + viewId + '&view_display_id=' + displayId + '&page=' + nextPage;
25
26          fetch(url, { credentials: 'same-origin' })
27            .then(function (response) { return response.json(); })
28            .then(function (data) {
29              var newHtml = '';
30              data.forEach(function (cmd) {
31                if (cmd.command === 'insert' && cmd.data) {
32                  newHtml = cmd.data;
33                }
34              });
35
36              if (newHtml) {
37                var temp = document.createElement('div');
38                temp.innerHTML = newHtml;
39                var newGrid = temp.querySelector('.pages-grid');
40
41                if (newGrid && newGrid.children.length > 0) {
42                  var existingGrid = contentWrapper.querySelector('.pages-grid');
43                  if (existingGrid) {
44                    Array.from(newGrid.children).forEach(function (child) {
45                      existingGrid.appendChild(child.cloneNode(true));
46                    });
47                  }
48                  btn.setAttribute('data-current-page', nextPage);
49                  btn.disabled = false;
50                  btn.textContent = 'Weitere laden';
51
52                  if (newGrid.children.length < itemsPerPage) {
53                    btn.textContent = 'Keine weiteren Einträge';
54                    btn.disabled = true;
55                  }
56                } else {
57                  btn.textContent = 'Keine weiteren Einträge';
58                  btn.disabled = true;
59                }
60              } else {
61                btn.textContent = 'Keine weiteren Einträge';
62                btn.disabled = true;
63              }
64            })
65            .catch(function () {
66              btn.textContent = 'Fehler beim Laden';
67              btn.disabled = false;
68            });
69        });
70      });
71    }
72  };
73})(Drupal, once);

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.