PageSourceSearch

https://www.stadtkirche-selb.de/modules/custom/vk_helper/vk_helper.js?v=11.4.7

js stadtkirche-selb.de collected 2026-10-09 01:57:51 UTC 5,047 bytes, 152 lines download raw bytes

1/* Javascript document */
2(function ($, Drupal) {
3
4    $(document).ready(function () {
5
6        $('.container').on('click','.vk-colorbox-load', function(){
7
8            $.colorbox({
9                iframe: true,
10                href:$(this).attr('href'),
11                innerWidth:"900px",
12                innerHeight:"80%",
13                maxWidth:'100%'
14
15            });
16            return false;
17        });
18    });
19
20    // Mit Hilfe von KI, um Problem von Minikalender auf Mobil Gerät zu lösen
21    var mobileCloseHandler = null;
22
23    document.addEventListener('touchstart', function(e) {
24        var tdElement = e.target.closest('.ui-datepicker-calendar td');
25        if (!tdElement) return;
26
27        e.preventDefault();
28        e.stopPropagation();
29
30        // 1. Alten Schließ-Wächter sofort vernichten
31        if (mobileCloseHandler) {
32            document.removeEventListener('touchstart', mobileCloseHandler);
33            document.removeEventListener('click', mobileCloseHandler);
34        }
35
36        var $td = $(tdElement);
37        var $link = $td.find('a');
38
39        // AN-AUS-Logik für exakt dasselbe Datum
40        if ($td.hasClass('mobile-aktiv')) {
41            $td.removeClass('mobile-aktiv');
42            $link.off('mouseleave mouseout touchend');
43            $('.ui-tooltip').remove();
44            try { $(document).tooltip("disable").tooltip("enable"); } catch(err) {}
45            return;
46        }
47
48        // 2. BEIM WECHSELN: Alles gründlich aufräumen UND den jQuery UI Cache löschen!
49        $('.ui-datepicker-calendar td').removeClass('mobile-aktiv');
50        $('.ui-tooltip').remove();
51        $('.ui-datepicker-calendar td a').off('mouseleave mouseout touchend');
52
53        // WICHTIG: Das zwingt jQuery UI beim Wechseln, das alte Datum komplett zu vergessen!
54        try { $(document).tooltip("disable").tooltip("enable"); } catch(err) {}
55
56        // Das neue Feld aktivieren
57        $td.addClass('mobile-aktiv');
58
59        var picker = $.datepicker;
60        var $input = $('.hasDatepicker');
61        var inst = picker ? picker._getInst($input) : null;
62
63        if (inst) {
64            picker._datepickerShowing = true;
65            picker._curInst = inst;
66        }
67
68        // Text-Retter
69        var text = $td.attr('data-speicher') || $link.attr('data-speicher') || $link.attr('title') || $td.attr('title');
70        if (text) {
71            $td.attr('data-speicher', text);
72            $link.attr('data-speicher', text).attr('title', text);
73        }
74
75        // Events feuern
76        $link.trigger('mouseenter').trigger('mouseover');
77
78        // Schließ-Events blockieren
79        $link.on('mouseleave mouseout touchend', function(event) {
80            event.preventDefault();
81            event.stopPropagation();
82        });
83
84        // Schließ-Wächter für "woanders klicken"
85        mobileCloseHandler = function(event) {
86            if (!event.target.closest('.ui-datepicker-calendar td')) {
87                $td.removeClass('mobile-aktiv');
88                $link.off('mouseleave mouseout touchend');
89                $('.ui-tooltip').remove();
90
91                try { $(document).tooltip("disable").tooltip("enable"); } catch(err) {}
92
93                document.removeEventListener('touchstart', mobileCloseHandler);
94                document.removeEventListener('click', mobileCloseHandler);
95                mobileCloseHandler = null;
96            }
97        };
98
99        document.addEventListener('touchstart', mobileCloseHandler, { passive: false });
100        document.addEventListener('click', mobileCloseHandler);
101
102    }, { passive: false });
103
104    Drupal.theme.message = ({ text }, { type, id }) => {
105    const messagesTypes = Drupal.Message.getMessageTypeLabels();
106    const messageWrapper = document.createElement('div');
107    const userid = drupalSettings.user.uid;
108    if (type == 'error' && userid != 1) {
109      return messageWrapper;
110    }
111
112    messageWrapper.setAttribute('class', `messages messages--${type}`);
113    messageWrapper.setAttribute(
114      'role',
115      type === 'error' || type === 'warning' ? 'alert' : 'status',
116    );
117    messageWrapper.setAttribute('data-drupal-message-id', id);
118    messageWrapper.setAttribute('data-drupal-message-type', type);
119
120    messageWrapper.setAttribute('aria-label', messagesTypes[type]);
121
122    messageWrapper.innerHTML = `${text}`;
123
124    return messageWrapper;
125  };
126
127  Drupal.behaviors.entity_browser = {
128    attach: function () {
129
130      $('form[id^="node"][id$="form"]').on('keydown keypress', function (e){
131        if (e.which == 13) {
132          if (e.target == $('.geolocation-geocoder-address')[0]) {
133            e.preventDefault();
134            if (e.target.value == '') return;
135          }
136          if ($(e.target).parents('.ck-editor__main').length === 0 && e.target.type != 'textarea') {
137            e.preventDefault();
138            $('input#edit-submit').click();
139          }
140
141        }
142
143      });
144    }
145  }
146
147  Drupal.behaviors.statusmessage = {
148    attach: function () {
149      $('.messages__wrapper').addClass('container');
150    }
151  }
152})(jQuery, Drupal);

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.