PageSourceSearch

https://staatstheater-hannover.de/media/scripts/dynamic_pages.js

js staatstheater-hannover.de collected 2026-09-24 09:42:38 UTC 9,847 bytes, 294 lines download raw bytes

1$(document).ready(function () {
2
3    ENV.initPodcastPlayers = function () {
4        $.each($(".podcast-player"), function (index, playerItem) {
5            console.log(playerItem.id);
6
7            playerItem.id = playerItem.id + "-" + index;
8
9            var podcastPlayer = videojs('#' + playerItem.id, {autoplay: false});
10
11            podcastPlayer.one('play', function () {
12                doxStatisticRegisterApplicationsFileDownload($(playerItem).data('podcast-file-id'));
13            });
14        });
15    };
16
17
18
19    //dynamic font size on menschen gallery
20
21    function longest(str) {
22        // Split the string using regex, now including Punkt (.) und Bindestrich (-)
23        str = str.match(/[a-zäöüßA-ZÄÖÜ0-9\.:\()]+/gi);
24        let largest = "";
25        if (!str)
26            return largest; // Falls kein Match
27
28        for (let i = 0; i < str.length; i++) {
29            if (str[i].length > largest.length) {
30                largest = str[i];
31            }
32        }
33        return largest;
34    }
35    //LGO: dynamic font size for werbekachel
36    function dynamicFontSize(path) {
37
38        document.querySelectorAll(path).forEach(el => {
39
40            const title = el.textContent;
41            const totalTitleLength = title.length;
42            const singleWordLength = longest(title).length;
43            var defaultFontSize = 0;
44
45            function setFontSize(fontSize) {
46                el.style.fontSize = fontSize + "cqw";
47            }
48
49            function totalTitlelength(defaultFontSize) {
50
51//                if (singleWordLength <= 12) {
52                switch (true) {
53//                        case totalTitleLength >= 21:
54//                            setFontSize(defaultFontSize - 4);
55//                            break
56
57                    case totalTitleLength >= 16:
58                        setFontSize(defaultFontSize - 4);
59                        break
60
61                    case totalTitleLength >= 13:
62                        setFontSize(defaultFontSize - 3);
63                        break
64
65                    case totalTitleLength >= 10:
66                        setFontSize(defaultFontSize - 2);
67                        break
68
69//                        default:
70//                            setFontSize(defaultFontSize);
71//                            break;
72                }
73//                } else {
74//                    setFontSize(defaultFontSize);
75//                }
76            }
77
78            switch (true) {
79
80                case singleWordLength <= 5 :
81                    defaultFontSize = 28;
82                    totalTitlelength(defaultFontSize);
83                    break;
84
85                case singleWordLength <= 7 :
86                    defaultFontSize = 23;
87                    totalTitlelength(defaultFontSize);
88                    break;
89
90                case singleWordLength <= 9 :
91                    defaultFontSize = 21;
92                    totalTitlelength(defaultFontSize);
93                    break;
94
95                case singleWordLength <= 11 :
96                    defaultFontSize = 18;
97                    totalTitlelength(defaultFontSize);
98                    break;
99
100                case singleWordLength <= 13 :
101                    defaultFontSize = 16;
102                    totalTitlelength(defaultFontSize);
103                    break;
104
105                case singleWordLength <= 17 :
106                    defaultFontSize = 13;
107                    totalTitlelength(defaultFontSize);
108                    break;                
109                    
110                default:
111                    defaultFontSize = 9;
112                    totalTitlelength(defaultFontSize);
113                    break;
114            }
115//            console.table({title, singleWordLength, defaultFontSize, totalTitleLength});
116        });
117
118    }
119
120    dynamicFontSize('.landing-page-blog-item.blog-item-size-6 .title');
121    dynamicFontSize('.gallery-item .title');
122    dynamicFontSize('.wrapper_recommendations .recommendation-text-wrapper .title');
123
124    $(window).resize(function (e) {
125//        e.preventDefault();
126        dynamicFontSize('.landing-page-blog-item.blog-item-size-6 .title');
127        dynamicFontSize('.gallery-item .title');
128        dynamicFontSize('.wrapper_recommendations .recommendation-text-wrapper .title');
129
130
131    });
132
133    // LGO: END
134
135//    fitty('.gallery-item .title', {
136//        minSize: 12,
137//        maxSize: 300,
138//    });
139//    fitty('.landing-page-blog-item.blog-item-size-6 .title', {
140//        minSize: 12,
141//        maxSize: 300,
142//    });
143
144//        OLD
145//    function galleryTitleSize() {
146//
147//
148//
149//        if ($("section.main-col").hasClass("view_dynamic_page_gallery")) {
150//
151//            $(".gallery-item").each(function (index) {
152//                var item_width = $(this).width();
153//                var title = $(this).find(".title");
154//                var title_width = title.width();
155//
156//                if ((title_width + 40) > item_width) {
157//
158//                    var ueberlaenge = (title_width + 40) - item_width;
159//
160//
161//
162//                    if ($(window).width() >= 1024) {
163//                        //desktop
164//                        switch (true) {
165//                            case ueberlaenge > 200:
166//                                title.css("font-size", "34px");
167//                                break;
168//                            case ueberlaenge > 150:
169//                                title.css("font-size", "41px");
170//                                break;
171//
172//                            case ueberlaenge > 100:
173//                                title.css("font-size", "43px");
174//                                break;
175//
176//                            case ueberlaenge > 80:
177//                                title.css("font-size", "46px");
178//                                break;
179//
180//                            case ueberlaenge > 60:
181//                                title.css("font-size", "51px");
182//                                break;
183//
184//                            default:
185//                                // No font size adjustment
186//                                break;
187//                        }
188//
189//                    } else {
190//                        //mobile
191//                        switch (true) {
192//                            case ueberlaenge > 150:
193//                                title.css("font-size", "34px");
194//                                break;
195//
196//                            case ueberlaenge > 100:
197//                                title.css("font-size", "32px");
198//                                break;
199//
200//                            case ueberlaenge > 80:
201//                                title.css("font-size", "35px");
202//                                break;
203//
204//                            case ueberlaenge > 60:
205//                                title.css("font-size", "36px");
206//                                break;
207//
208//                            default:
209//                                // No font size adjustment
210//                                break;
211//                        }
212//
213//
214//                    }
215//
216//
217//                } else {
218//                    title.css("font-size", "");
219//                }
220//
221//                console.table({item_width, title_width, ueberlaenge, });
222//
223//            });
224//
225//
226//
227//        }
228//    }
229
230    //galleryTitleSize();
231
232//    $(window).resize(function () {
233//        galleryTitleSize();
234//    });
235
236// ------------------------------------------------ 
237// DYNAMIC SEARCH ON DYNAMIC PAGES || GALLERY PAGE |
238// ------------------------------------------------
239
240    if ($('body').hasClass('page-dynamic') && $('body').find('.page-search-tags').length > 0) {
241        console.log('#### Page search by tags');
242        const params = new URLSearchParams(window.location.search);
243        const keyword = params.get('keyword') || 'all';
244        loadAccordion(keyword);
245    }
246
247    function loadAccordion(keyword) {
248        var currentParams = new URLSearchParams(window.location.search);
249        currentParams.set('keyword', keyword);
250        var url = location.pathname + '?' + currentParams.toString();
251
252        history.pushState('', document.title, url);
253        // 
254        var mediaItemsIds = [];
255        const mediaItems = document.querySelectorAll('.gallery-item');
256        mediaItems.forEach((item) => {
257            document.getElementById(item.id).hidden = false;
258
259            const accordionId = item.id.replace(/\D+/g, '');
260            mediaItemsIds.push(parseInt(accordionId, 10)); // cast the string to number 
261        });
262
263        $.ajax({
264            'url': ENV.link_root + '/gallery.json',
265            'data': {
266                'm': 'page_search_tags',
267                'media_items_ids': mediaItemsIds,
268                'keyword': keyword
269            }
270        })
271                .done(function (data) {
272                    CbUx.hideLoader();
273//                    console.log("API Response:", data); // Debug log
274
275                    if (!$.isEmptyObject(data) && keyword !== 'all') {
276//                        console.log('##### Results found', data);
277                        data.forEach((item) => {
278                            var itemId = "media-item-id-" + item.MediaItemId;
279//                            console.log('### Media Item Id: ', itemId);
280                            document.getElementById(itemId).hidden = true;
281                        });
282                    } else {
283                        console.log("No results found!!!");
284                    }
285
286                })
287                .fail(function (xhr, status, error) {
288                    CbUx.hideLoader();
289                    self.isLoading = false;
290                    console.error("Failed to load calendar data:", status, error);
291                    console.error("Response:", xhr.responseText);
292                });
293    }
294});

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.