links:gema
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
| links:gema [22/03/2026 10:50] – Eric Weber | links:gema [02/04/2026 10:24] (aktuell) – Eric Weber | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== GEMA-Pauschalvertrag ====== | ====== GEMA-Pauschalvertrag ====== | ||
| - | ;;# | ||
| - | Stand: 22.03.26 | ||
| - | ;;# | ||
| ### | ### | ||
| Zeile 14: | Zeile 11: | ||
| < | < | ||
| - | <!-- PapaParse (CSV Parser) --> | ||
| <script src=" | <script src=" | ||
| < | < | ||
| - | /* ---------- Grunddesign ---------- | + | /* ========================= |
| + | NUR INNERHALB VON #gema-app | ||
| + | | ||
| - | body { | + | # |
| font-family: | font-family: | ||
| - | background:#f4f6f9; | + | background: |
| - | | + | |
| } | } | ||
| - | input { | + | # |
| width:100%; | width:100%; | ||
| max-width: | max-width: | ||
| Zeile 36: | Zeile 34: | ||
| } | } | ||
| - | #info { | + | # |
| font-weight: | font-weight: | ||
| margin-bottom: | margin-bottom: | ||
| } | } | ||
| - | /* ---------- | + | #gema-app #lastUpdate { |
| + | margin-bottom: | ||
| + | color:# | ||
| + | } | ||
| + | |||
| + | /* Button */ | ||
| + | |||
| + | #gema-app .toggle-btn { | ||
| + | margin-bottom: | ||
| + | padding:8px 14px; | ||
| + | border: | ||
| + | border-radius: | ||
| + | background:# | ||
| + | color: | ||
| + | cursor: | ||
| + | } | ||
| + | |||
| + | #gema-app .toggle-btn:hover { | ||
| + | background:# | ||
| + | } | ||
| + | |||
| + | #gema-app .toggle-btn: | ||
| + | #gema-app .toggle-btn:active { | ||
| + | background:# | ||
| + | outline: | ||
| + | } | ||
| + | |||
| + | #gema-app .toggle-btn:focus-visible { | ||
| + | outline:3px solid #1a5fd1; | ||
| + | } | ||
| + | |||
| + | /* Tabelle | ||
| - | .table-wrapper { | + | # |
| overflow-x: | overflow-x: | ||
| } | } | ||
| - | table { | + | # |
| border-collapse: | border-collapse: | ||
| width:100%; | width:100%; | ||
| Zeile 56: | Zeile 85: | ||
| } | } | ||
| - | th { | + | # |
| padding: | padding: | ||
| background: | background: | ||
| Zeile 63: | Zeile 92: | ||
| } | } | ||
| - | td { | + | # |
| padding: | padding: | ||
| border-bottom: | border-bottom: | ||
| } | } | ||
| - | tr:hover { | + | # |
| background:# | background:# | ||
| } | } | ||
| - | /* ---------- Button ---------- | + | /* Kartenansicht |
| - | .toggle-btn { | + | #gema-app.card-view table, |
| - | margin-bottom: | + | #gema-app.card-view thead, |
| - | padding:8px 14px; | + | #gema-app.card-view tbody, |
| - | border: | + | #gema-app.card-view th, |
| - | border-radius: | + | #gema-app.card-view td, |
| - | background:#2c7be5; | + | #gema-app.card-view tr { |
| - | color: | + | |
| - | cursor: | + | |
| - | } | + | |
| - | + | ||
| - | .toggle-btn:hover { | + | |
| - | background:# | + | |
| - | } | + | |
| - | + | ||
| - | .toggle-btn: | + | |
| - | .toggle-btn: | + | |
| - | background:# | + | |
| - | color: | + | |
| - | outline: | + | |
| - | } | + | |
| - | + | ||
| - | .toggle-btn: | + | |
| - | outline:3px solid #1a5fd1; | + | |
| - | } | + | |
| - | + | ||
| - | /* ---------- Karten ---------- */ | + | |
| - | + | ||
| - | .card-view table, | + | |
| - | .card-view thead, | + | |
| - | .card-view tbody, | + | |
| - | .card-view th, | + | |
| - | .card-view td, | + | |
| - | .card-view tr { | + | |
| display: | display: | ||
| } | } | ||
| - | .card-view thead { | + | #gema-app.card-view thead { |
| display: | display: | ||
| } | } | ||
| - | .card-view tr { | + | #gema-app.card-view tr { |
| margin-bottom: | margin-bottom: | ||
| background: | background: | ||
| Zeile 123: | Zeile 125: | ||
| } | } | ||
| - | .card-view td { | + | #gema-app.card-view td { |
| display: | display: | ||
| gap:10px; | gap:10px; | ||
| Zeile 129: | Zeile 131: | ||
| } | } | ||
| - | .card-view td:before { | + | #gema-app.card-view td:before { |
| content: attr(data-label); | content: attr(data-label); | ||
| font-weight: | font-weight: | ||
| Zeile 136: | Zeile 138: | ||
| } | } | ||
| - | /* ---------- | + | /* Mobile |
| @media (max-width: | @media (max-width: | ||
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| display: | display: | ||
| } | } | ||
| - | | + | |
| display: | display: | ||
| } | } | ||
| - | | + | |
| margin-bottom: | margin-bottom: | ||
| background: | background: | ||
| Zeile 160: | Zeile 162: | ||
| } | } | ||
| - | | + | |
| display: | display: | ||
| gap:10px; | gap:10px; | ||
| Zeile 166: | Zeile 168: | ||
| } | } | ||
| - | | + | |
| content: attr(data-label); | content: attr(data-label); | ||
| font-weight: | font-weight: | ||
| Zeile 175: | Zeile 177: | ||
| </ | </ | ||
| </ | </ | ||
| + | |||
| < | < | ||
| + | |||
| + | <div id=" | ||
| <input type=" | <input type=" | ||
| + | |||
| + | <div id=" | ||
| <div id=" | <div id=" | ||
| Zeile 194: | Zeile 201: | ||
| < | < | ||
| </ | </ | ||
| + | </ | ||
| + | |||
| </ | </ | ||
| < | < | ||
| - | /* -------- Google Sheets URL -------- */ | + | const sheetURL = " |
| - | + | ||
| - | const sheetURL = " | + | |
| - | + | ||
| - | /* -------- Daten laden (PapaParse) -------- */ | + | |
| Papa.parse(sheetURL, | Papa.parse(sheetURL, | ||
| download: true, | download: true, | ||
| - | | + | skipEmptyLines: |
| - | | + | |
| complete: function(results) { | complete: function(results) { | ||
| - | const data = results.data; | + | const allRows |
| - | const tbody = document.querySelector("# | + | |
| + | // 👉 F2 = [1][5] | ||
| + | const lastUpdate = allRows[1]? | ||
| + | document.querySelector("# | ||
| + | " | ||
| + | |||
| + | // 👉 Header + Daten trennen | ||
| + | const headers = allRows[0]; | ||
| + | const dataRows = allRows.slice(1); | ||
| + | |||
| + | const tbody = document.querySelector(" | ||
| + | |||
| + | dataRows.forEach(row => { | ||
| - | data.forEach(row => { | + | const rowObj = {}; |
| + | headers.forEach((h, i) => rowObj[h] = row[i]); | ||
| const tr = document.createElement(" | const tr = document.createElement(" | ||
| tr.innerHTML = ` | tr.innerHTML = ` | ||
| - | <td data-label=" | + | <td data-label=" |
| - | <td data-label=" | + | <td data-label=" |
| - | <td data-label=" | + | <td data-label=" |
| - | <td data-label=" | + | <td data-label=" |
| `; | `; | ||
| - | tr.dataset.search = Object.values(row).join(" | + | tr.dataset.search = Object.values(rowObj).join(" |
| tbody.appendChild(tr); | tbody.appendChild(tr); | ||
| Zeile 232: | Zeile 249: | ||
| }); | }); | ||
| - | /* -------- GEMA Icons -------- */ | + | /* -------- GEMA Ampel -------- */ |
| function getGemaIcon(status) { | function getGemaIcon(status) { | ||
| Zeile 254: | Zeile 271: | ||
| } | } | ||
| - | /* -------- Suche (schnell) | + | /* -------- Suche -------- */ |
| function debounce(func, | function debounce(func, | ||
| Zeile 264: | Zeile 281: | ||
| } | } | ||
| - | document.getElementById(" | + | document.querySelector("#gema-app #searchInput" |
| + | .addEventListener(" | ||
| let filter = this.value.toLowerCase(); | let filter = this.value.toLowerCase(); | ||
| - | let rows = document.querySelectorAll("# | + | let rows = document.querySelectorAll("# |
| let visibleCount = 0; | let visibleCount = 0; | ||
| Zeile 279: | Zeile 297: | ||
| }); | }); | ||
| - | document.getElementById(" | + | document.querySelector("#gema-app #info" |
| visibleCount + " Schule(n) gefunden"; | visibleCount + " Schule(n) gefunden"; | ||
| Zeile 287: | Zeile 305: | ||
| function sortTable(n) { | function sortTable(n) { | ||
| - | let table = document.getElementById(" | + | let table = document.querySelector("#gema-app #schoolTable" |
| let rows = Array.from(table.tBodies[0].rows); | let rows = Array.from(table.tBodies[0].rows); | ||
| let asc = table.getAttribute(" | let asc = table.getAttribute(" | ||
| Zeile 301: | Zeile 319: | ||
| } | } | ||
| - | /* -------- Ansicht | + | /* -------- Ansicht -------- */ |
| function toggleView() { | function toggleView() { | ||
| - | document.body.classList.toggle(" | + | document.getElementById(" |
| - | document.body.classList.toggle(" | + | document.getElementById(" |
| } | } | ||
links/gema.1774173030.txt.gz · Zuletzt geändert: von Eric Weber
