PageSourceSearch

https://www.krautundrueben.de/modules/contrib/dlv_piano/js/piano_login.js?tlk1pv

js krautundrueben.de collected 2026-10-02 06:24:05 UTC 1,997 bytes, 58 lines download raw bytes

1window.addEventListener('load', function () {
2  piano_checkLoginStatus();
3  piano_init_login_dropdown();
4
5  tp.push(["init", function () {
6    tp.pianoId.init({
7      loggedIn: piano_checkLoginStatus,
8      loggedOut: () => {
9        piano_checkLoginStatus();
10        location.reload();
11      }
12    });
13  }]);
14});
15
16function piano_checkLoginStatus() {
17  if (tp.pianoId.isUserValid()) {
18    document.querySelectorAll('.piano_login_button').forEach(el => el.style.display = 'none');
19    document.querySelectorAll('.piano_loggedin_dropdown').forEach(el => el.style.display = 'block');
20  } else {
21    document.querySelectorAll('.piano_login_button').forEach(el => el.style.display = 'flex');
22    document.querySelectorAll('.piano_loggedin_dropdown').forEach(el => el.style.display = 'none');
23  }
24}
25
26function piano_init_login_dropdown() {
27  const dropdownButton = document.querySelectorAll('.piano_loggedin_dropdown .piano_loggedin_button');
28
29  dropdownButton.forEach(function (button) {
30    button.addEventListener('click', () => {
31      const dropdownMenu = button.parentElement.querySelector('.piano_loggedin_dropdown_menu');
32      const dropdownIcon = button.querySelector('.piano_loggedin_status_text');
33
34      if (tp.pianoId.isUserValid()) {
35        dropdownMenu.classList.toggle('active');
36        dropdownIcon.classList.toggle('active');
37      }
38    });
39  });
40
41  document.addEventListener('click', (event) => {
42    if (!event.target.classList.contains('piano_loggedin_button') && !event.target.closest('.piano_loggedin_dropdown')) {
43      document.querySelectorAll('.piano_loggedin_dropdown .piano_loggedin_dropdown_menu').forEach(el => el.classList.remove('active'));
44      document.querySelectorAll('.piano_loggedin_dropdown .piano_loggedin_status_text').forEach(el => el.classList.remove('active'));
45    }
46  });
47}
48
49function piano_toggleLogin(event) {
50  if (event)
51    event.preventDefault();
52
53  if (tp.pianoId.isUserValid()) {
54    tp.pianoId.logout();
55  } else {
56    tp.pianoId.show();
57  }
58}

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.