Expand trade fair table to top 30 with ticket pricing and saved sorting
This commit is contained in:
@@ -1539,7 +1539,7 @@
|
|||||||
<div id="bookmarkQuickStatus" class="bookmark-status" aria-live="polite" hidden></div>
|
<div id="bookmarkQuickStatus" class="bookmark-status" aria-live="polite" hidden></div>
|
||||||
</form>
|
</form>
|
||||||
<details class="bookmark-subpage" id="tradeFairsSubpage">
|
<details class="bookmark-subpage" id="tradeFairsSubpage">
|
||||||
<summary class="bookmark-subpage__summary">📍 Top 20 Messen in Deutschland (nach Besucherzahlen)</summary>
|
<summary class="bookmark-subpage__summary">📍 Top 30 Messen in Deutschland (nach Besucherzahlen)</summary>
|
||||||
<div class="bookmark-subpage__content">
|
<div class="bookmark-subpage__content">
|
||||||
<div class="bookmark-subpage__toolbar">
|
<div class="bookmark-subpage__toolbar">
|
||||||
<label class="bookmark-panel__search">
|
<label class="bookmark-panel__search">
|
||||||
|
|||||||
@@ -1905,6 +1905,22 @@ h1 {
|
|||||||
color: #0f4bb8;
|
color: #0f4bb8;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.bookmark-subpage__messe-link {
|
||||||
|
border: none;
|
||||||
|
background: transparent;
|
||||||
|
color: #0f4bb8;
|
||||||
|
cursor: pointer;
|
||||||
|
font: inherit;
|
||||||
|
text-decoration: underline;
|
||||||
|
text-underline-offset: 2px;
|
||||||
|
padding: 0;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bookmark-subpage__messe-link:hover {
|
||||||
|
color: #1d4ed8;
|
||||||
|
}
|
||||||
|
|
||||||
.bookmark-subpage__table td:nth-child(4),
|
.bookmark-subpage__table td:nth-child(4),
|
||||||
.bookmark-subpage__table td:nth-child(15) {
|
.bookmark-subpage__table td:nth-child(15) {
|
||||||
min-width: 320px;
|
min-width: 320px;
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
const searchInput = document.getElementById('tradeFairSearchInput');
|
const searchInput = document.getElementById('tradeFairSearchInput');
|
||||||
const meta = document.getElementById('tradeFairMeta');
|
const meta = document.getElementById('tradeFairMeta');
|
||||||
const sortButtons = Array.from(document.querySelectorAll('.bookmark-subpage__sort[data-trade-sort]'));
|
const sortButtons = Array.from(document.querySelectorAll('.bookmark-subpage__sort[data-trade-sort]'));
|
||||||
|
const SORT_STATE_KEY = 'fb_trade_fairs_sort_v1';
|
||||||
|
|
||||||
if (!tableBody || !searchInput || !meta || !sortButtons.length) {
|
if (!tableBody || !searchInput || !meta || !sortButtons.length) {
|
||||||
return;
|
return;
|
||||||
@@ -19,15 +20,32 @@
|
|||||||
termin_ende: '2028-04-09',
|
termin_ende: '2028-04-09',
|
||||||
besucher: 605974,
|
besucher: 605974,
|
||||||
besucher_jahr: 2025,
|
besucher_jahr: 2025,
|
||||||
besucher_status: 'AUMA-Kennzahl 2025',
|
besucher_status: 'AUMA 2025',
|
||||||
ausstellungsflaeche_m2: 420107,
|
ausstellungsflaeche_m2: 420107,
|
||||||
ticketpreis_we_eur: null,
|
ticketpreis_we_eur: 38,
|
||||||
ticketpreis_unterderwoche_eur: null,
|
ticketpreis_unterderwoche_eur: 38,
|
||||||
notiz: 'Kennzahlen laut AUMA-Messedatenbank (Abruf 21.02.2026). Ticketpreise je Kategorie/VVK.',
|
notiz: 'Besucher laut AUMA. Tagesticket aus zuletzt verfuegbarem Preisstand (TradeFairDates, 2025).',
|
||||||
quelle_homepage: 'https://bauma.de'
|
quelle_homepage: 'https://bauma.de'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rang: 2,
|
rang: 2,
|
||||||
|
messe: 'IAA MOBILITY',
|
||||||
|
thema: 'Mobilitaet, Auto, Tech, Open Space',
|
||||||
|
stadt: 'München',
|
||||||
|
bundesland: 'Bayern',
|
||||||
|
termin_start: '2027-09-08',
|
||||||
|
termin_ende: '2027-09-12',
|
||||||
|
besucher: 500000,
|
||||||
|
besucher_jahr: 2025,
|
||||||
|
besucher_status: 'Veranstalterangabe 2025 (>500.000)',
|
||||||
|
ausstellungsflaeche_m2: null,
|
||||||
|
ticketpreis_we_eur: 39,
|
||||||
|
ticketpreis_unterderwoche_eur: 29,
|
||||||
|
notiz: 'Open Space teils frei; Ticketpreise laut IAA-Ticketseite (ab EUR 29, Family Pass ab EUR 39).',
|
||||||
|
quelle_homepage: 'https://www.iaa-mobility.com'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
rang: 3,
|
||||||
messe: 'AGRITECHNICA',
|
messe: 'AGRITECHNICA',
|
||||||
thema: 'Landtechnik und Agrartechnologie',
|
thema: 'Landtechnik und Agrartechnologie',
|
||||||
stadt: 'Hannover',
|
stadt: 'Hannover',
|
||||||
@@ -36,66 +54,83 @@
|
|||||||
termin_ende: '2027-11-20',
|
termin_ende: '2027-11-20',
|
||||||
besucher: 477055,
|
besucher: 477055,
|
||||||
besucher_jahr: 2025,
|
besucher_jahr: 2025,
|
||||||
besucher_status: 'AUMA-Kennzahl 2025',
|
besucher_status: 'AUMA 2025',
|
||||||
ausstellungsflaeche_m2: 229886,
|
ausstellungsflaeche_m2: 229886,
|
||||||
ticketpreis_we_eur: null,
|
ticketpreis_we_eur: 29,
|
||||||
ticketpreis_unterderwoche_eur: null,
|
ticketpreis_unterderwoche_eur: 29,
|
||||||
notiz: 'Kennzahlen laut AUMA-Messedatenbank (Abruf 21.02.2026). Ticketpreise je Kategorie/VVK.',
|
notiz: 'Besucher laut AUMA. Ticketpreis laut Agritechnica-Ticketseite (Tagesticket EUR 29).',
|
||||||
quelle_homepage: 'https://www.agritechnica.com'
|
quelle_homepage: 'https://www.agritechnica.com'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rang: 3,
|
rang: 4,
|
||||||
|
messe: 'IdeenExpo',
|
||||||
|
thema: 'Technik, Naturwissenschaften, Erlebnis, Ausbildung',
|
||||||
|
stadt: 'Hannover',
|
||||||
|
bundesland: 'Niedersachsen',
|
||||||
|
termin_start: '2026-06-20',
|
||||||
|
termin_ende: '2026-06-28',
|
||||||
|
besucher: 430000,
|
||||||
|
besucher_jahr: 2024,
|
||||||
|
besucher_status: 'Veranstalter/Pressestand 2024',
|
||||||
|
ausstellungsflaeche_m2: null,
|
||||||
|
ticketpreis_we_eur: 0,
|
||||||
|
ticketpreis_unterderwoche_eur: 0,
|
||||||
|
notiz: 'Eintritt frei (IdeenExpo). Besucherzahl aus dem letzten veroeffentlichten Durchgang.',
|
||||||
|
quelle_homepage: 'https://www.ideenexpo.de'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
rang: 5,
|
||||||
messe: 'gamescom',
|
messe: 'gamescom',
|
||||||
thema: 'Games, digitale Unterhaltung, Hardware/Software',
|
thema: 'Games, digitale Unterhaltung, Hardware/Software',
|
||||||
stadt: 'Köln',
|
stadt: 'Köln',
|
||||||
bundesland: 'Nordrhein-Westfalen',
|
bundesland: 'Nordrhein-Westfalen',
|
||||||
termin_start: '2026-08-26',
|
termin_start: '2026-08-26',
|
||||||
termin_ende: '2026-08-30',
|
termin_ende: '2026-08-30',
|
||||||
besucher: 357416,
|
besucher: 357000,
|
||||||
besucher_jahr: 2025,
|
besucher_jahr: 2025,
|
||||||
besucher_status: 'AUMA-Kennzahl 2025',
|
besucher_status: 'Veranstalter/Branchenpresse 2025',
|
||||||
ausstellungsflaeche_m2: 73515,
|
ausstellungsflaeche_m2: 73515,
|
||||||
ticketpreis_we_eur: null,
|
ticketpreis_we_eur: 40,
|
||||||
ticketpreis_unterderwoche_eur: null,
|
ticketpreis_unterderwoche_eur: 30.5,
|
||||||
notiz: 'Kennzahlen laut AUMA-Messedatenbank (Abruf 21.02.2026). Ticketpreise je Kategorie/VVK.',
|
notiz: 'Wochenende hoeher als Werktag (Preisstand 2025 aus Gaming-/Ticketberichten).',
|
||||||
quelle_homepage: 'https://www.gamescom.global/en'
|
quelle_homepage: 'https://www.gamescom.global/en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rang: 4,
|
rang: 6,
|
||||||
messe: 'Grüne Woche',
|
messe: 'Grüne Woche',
|
||||||
thema: 'Ernährung, Landwirtschaft, Garten, Genuss',
|
thema: 'Ernaehrung, Landwirtschaft, Garten, Genuss',
|
||||||
stadt: 'Berlin',
|
stadt: 'Berlin',
|
||||||
bundesland: 'Berlin',
|
bundesland: 'Berlin',
|
||||||
termin_start: '2027-01-15',
|
termin_start: '2027-01-15',
|
||||||
termin_ende: '2027-01-24',
|
termin_ende: '2027-01-24',
|
||||||
besucher: 307530,
|
besucher: 307000,
|
||||||
besucher_jahr: 2025,
|
besucher_jahr: 2025,
|
||||||
besucher_status: 'AUMA-Kennzahl 2025',
|
besucher_status: 'Veranstalterangabe 2025',
|
||||||
ausstellungsflaeche_m2: 42500,
|
ausstellungsflaeche_m2: 42500,
|
||||||
ticketpreis_we_eur: null,
|
ticketpreis_we_eur: 16,
|
||||||
ticketpreis_unterderwoche_eur: null,
|
ticketpreis_unterderwoche_eur: 16,
|
||||||
notiz: 'Kennzahlen laut AUMA-Messedatenbank (Abruf 21.02.2026). Ticketpreise je Kategorie/VVK.',
|
notiz: 'Tagesticket Erwachsene laut Gruene-Woche-Ticketseite (Preisstand 2025).',
|
||||||
quelle_homepage: 'https://www.gruenewoche.de'
|
quelle_homepage: 'https://www.gruenewoche.de'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rang: 5,
|
rang: 7,
|
||||||
messe: 'CARAVAN SALON DÜSSELDORF',
|
messe: 'CARAVAN SALON DUESSELDORF',
|
||||||
thema: 'Reisemobile, Caravans, Camping, Touristik',
|
thema: 'Reisemobile, Caravans, Camping, Touristik',
|
||||||
stadt: 'Düsseldorf',
|
stadt: 'Düsseldorf',
|
||||||
bundesland: 'Nordrhein-Westfalen',
|
bundesland: 'Nordrhein-Westfalen',
|
||||||
termin_start: '2026-08-28',
|
termin_start: '2026-08-28',
|
||||||
termin_ende: '2026-09-06',
|
termin_ende: '2026-09-06',
|
||||||
besucher: 270421,
|
besucher: 269000,
|
||||||
besucher_jahr: 2025,
|
besucher_jahr: 2025,
|
||||||
besucher_status: 'AUMA-Kennzahl 2025',
|
besucher_status: 'Veranstalter/Branchenpresse 2025',
|
||||||
ausstellungsflaeche_m2: 121439,
|
ausstellungsflaeche_m2: 121439,
|
||||||
ticketpreis_we_eur: null,
|
ticketpreis_we_eur: 20,
|
||||||
ticketpreis_unterderwoche_eur: null,
|
ticketpreis_unterderwoche_eur: 18,
|
||||||
notiz: 'Kennzahlen laut AUMA-Messedatenbank (Abruf 21.02.2026). Ticketpreise je Kategorie/VVK.',
|
notiz: 'Preisstand zuletzt verfuegbarer Ticketinfos (Weekend hoeher als Weekday).',
|
||||||
quelle_homepage: 'https://www.caravan-salon.de'
|
quelle_homepage: 'https://www.caravan-salon.de'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rang: 6,
|
rang: 8,
|
||||||
messe: 'Maimarkt Mannheim',
|
messe: 'Maimarkt Mannheim',
|
||||||
thema: 'Publikums-Mehrbranchenmesse',
|
thema: 'Publikums-Mehrbranchenmesse',
|
||||||
stadt: 'Mannheim',
|
stadt: 'Mannheim',
|
||||||
@@ -104,15 +139,15 @@
|
|||||||
termin_ende: '2026-05-05',
|
termin_ende: '2026-05-05',
|
||||||
besucher: 268613,
|
besucher: 268613,
|
||||||
besucher_jahr: 2025,
|
besucher_jahr: 2025,
|
||||||
besucher_status: 'AUMA-Kennzahl 2025',
|
besucher_status: 'AUMA 2025',
|
||||||
ausstellungsflaeche_m2: 52769,
|
ausstellungsflaeche_m2: 52769,
|
||||||
ticketpreis_we_eur: null,
|
ticketpreis_we_eur: 10,
|
||||||
ticketpreis_unterderwoche_eur: null,
|
ticketpreis_unterderwoche_eur: 10,
|
||||||
notiz: 'Kennzahlen laut AUMA-Messedatenbank (Abruf 21.02.2026). Ticketpreise je Kategorie/VVK.',
|
notiz: 'Tagesticket Erwachsene an der Kasse EUR 10 (VVK guenstiger).',
|
||||||
quelle_homepage: 'https://www.maimarkt.de'
|
quelle_homepage: 'https://www.maimarkt.de'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rang: 7,
|
rang: 9,
|
||||||
messe: 'CMT - Die Urlaubsmesse',
|
messe: 'CMT - Die Urlaubsmesse',
|
||||||
thema: 'Tourismus, Caravaning, Freizeit',
|
thema: 'Tourismus, Caravaning, Freizeit',
|
||||||
stadt: 'Stuttgart',
|
stadt: 'Stuttgart',
|
||||||
@@ -121,32 +156,66 @@
|
|||||||
termin_ende: '2027-01-24',
|
termin_ende: '2027-01-24',
|
||||||
besucher: 261004,
|
besucher: 261004,
|
||||||
besucher_jahr: 2025,
|
besucher_jahr: 2025,
|
||||||
besucher_status: 'AUMA-Kennzahl 2025',
|
besucher_status: 'AUMA 2025',
|
||||||
ausstellungsflaeche_m2: 75587,
|
ausstellungsflaeche_m2: 75587,
|
||||||
ticketpreis_we_eur: null,
|
ticketpreis_we_eur: 18,
|
||||||
ticketpreis_unterderwoche_eur: null,
|
ticketpreis_unterderwoche_eur: 15,
|
||||||
notiz: 'Kennzahlen laut AUMA-Messedatenbank (Abruf 21.02.2026). Ticketpreise je Kategorie/VVK.',
|
notiz: 'Preisstaffel laut CMT-Partner-/Infoseiten (Wochenende teurer).',
|
||||||
quelle_homepage: 'https://www.messe-stuttgart.de/cmt'
|
quelle_homepage: 'https://www.messe-stuttgart.de/cmt'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rang: 8,
|
rang: 10,
|
||||||
|
messe: 'Frankfurter Buchmesse',
|
||||||
|
thema: 'Buecher, Kultur, Medien, Publishing',
|
||||||
|
stadt: 'Frankfurt am Main',
|
||||||
|
bundesland: 'Hessen',
|
||||||
|
termin_start: '2026-10-07',
|
||||||
|
termin_ende: '2026-10-11',
|
||||||
|
besucher: 238000,
|
||||||
|
besucher_jahr: 2025,
|
||||||
|
besucher_status: 'Veranstalter/Branchenpresse 2025',
|
||||||
|
ausstellungsflaeche_m2: null,
|
||||||
|
ticketpreis_we_eur: 35,
|
||||||
|
ticketpreis_unterderwoche_eur: 30,
|
||||||
|
notiz: 'Preisniveau aus zuletzt veroeffentlichtem Ticketstand (Publikumstage teils teurer).',
|
||||||
|
quelle_homepage: 'https://www.buchmesse.de'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
rang: 11,
|
||||||
messe: 'Leipziger Buchmesse / Manga Comic Con',
|
messe: 'Leipziger Buchmesse / Manga Comic Con',
|
||||||
thema: 'Buchmarkt, Medien, Manga/Comic',
|
thema: 'Buchmarkt, Medien, Manga/Comic',
|
||||||
stadt: 'Leipzig',
|
stadt: 'Leipzig',
|
||||||
bundesland: 'Sachsen',
|
bundesland: 'Sachsen',
|
||||||
termin_start: '2026-03-19',
|
termin_start: '2026-03-19',
|
||||||
termin_ende: '2026-03-22',
|
termin_ende: '2026-03-22',
|
||||||
besucher: 242238,
|
besucher: 222819,
|
||||||
besucher_jahr: 2025,
|
besucher_jahr: 2025,
|
||||||
besucher_status: 'AUMA-Kennzahl 2025',
|
besucher_status: 'Veranstalter/Pressestand 2025',
|
||||||
ausstellungsflaeche_m2: 20788,
|
ausstellungsflaeche_m2: 20788,
|
||||||
ticketpreis_we_eur: null,
|
ticketpreis_we_eur: 35,
|
||||||
ticketpreis_unterderwoche_eur: null,
|
ticketpreis_unterderwoche_eur: 28,
|
||||||
notiz: 'Kennzahlen laut AUMA-Messedatenbank (Abruf 21.02.2026). Ticketpreise je Kategorie/VVK.',
|
notiz: 'Ticketpreise laut offizieller Leipzig-Messe-Preisliste 2026 (Sa am hoechsten).',
|
||||||
quelle_homepage: 'https://www.leipziger-buchmesse.de'
|
quelle_homepage: 'https://www.leipziger-buchmesse.de'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rang: 9,
|
rang: 12,
|
||||||
|
messe: 'SPIEL Essen',
|
||||||
|
thema: 'Brettspiele, Tabletop, Family Entertainment',
|
||||||
|
stadt: 'Essen',
|
||||||
|
bundesland: 'Nordrhein-Westfalen',
|
||||||
|
termin_start: '2026-10-22',
|
||||||
|
termin_ende: '2026-10-25',
|
||||||
|
besucher: 220000,
|
||||||
|
besucher_jahr: 2025,
|
||||||
|
besucher_status: 'Veranstalterangabe 2025',
|
||||||
|
ausstellungsflaeche_m2: null,
|
||||||
|
ticketpreis_we_eur: 23.5,
|
||||||
|
ticketpreis_unterderwoche_eur: 23.5,
|
||||||
|
notiz: 'Tagesticket Erwachsene laut Ticketberichten 2025 (einheitlicher Preis).',
|
||||||
|
quelle_homepage: 'https://www.spiel-essen.de'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
rang: 13,
|
||||||
messe: 'ESSEN MOTOR SHOW',
|
messe: 'ESSEN MOTOR SHOW',
|
||||||
thema: 'Performance, Tuning, Motorsport, Classic Cars',
|
thema: 'Performance, Tuning, Motorsport, Classic Cars',
|
||||||
stadt: 'Essen',
|
stadt: 'Essen',
|
||||||
@@ -155,16 +224,16 @@
|
|||||||
termin_ende: '2026-12-06',
|
termin_ende: '2026-12-06',
|
||||||
besucher: 202827,
|
besucher: 202827,
|
||||||
besucher_jahr: 2024,
|
besucher_jahr: 2024,
|
||||||
besucher_status: 'AUMA-Kennzahl 2024 (kein neuerer Wert)',
|
besucher_status: 'AUMA 2024 (letzter verfuegbarer Wert)',
|
||||||
ausstellungsflaeche_m2: 33781,
|
ausstellungsflaeche_m2: 33781,
|
||||||
ticketpreis_we_eur: null,
|
ticketpreis_we_eur: 20,
|
||||||
ticketpreis_unterderwoche_eur: null,
|
ticketpreis_unterderwoche_eur: 20,
|
||||||
notiz: 'Vorjahreswert, da kein neuerer veröffentlichter Wert in AUMA. Ticketpreise je Kategorie/VVK.',
|
notiz: 'Tagesticket aus zuletzt publiziertem Ticketstand.',
|
||||||
quelle_homepage: 'https://www.essen-motorshow.de'
|
quelle_homepage: 'https://www.essen-motorshow.de'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rang: 10,
|
rang: 14,
|
||||||
messe: 'boot Düsseldorf',
|
messe: 'boot Duesseldorf',
|
||||||
thema: 'Boote, Wassersport, Tauchen, Yachting',
|
thema: 'Boote, Wassersport, Tauchen, Yachting',
|
||||||
stadt: 'Düsseldorf',
|
stadt: 'Düsseldorf',
|
||||||
bundesland: 'Nordrhein-Westfalen',
|
bundesland: 'Nordrhein-Westfalen',
|
||||||
@@ -172,15 +241,15 @@
|
|||||||
termin_ende: '2027-01-31',
|
termin_ende: '2027-01-31',
|
||||||
besucher: 198339,
|
besucher: 198339,
|
||||||
besucher_jahr: 2025,
|
besucher_jahr: 2025,
|
||||||
besucher_status: 'AUMA-Kennzahl 2025',
|
besucher_status: 'AUMA 2025',
|
||||||
ausstellungsflaeche_m2: 94867,
|
ausstellungsflaeche_m2: 94867,
|
||||||
ticketpreis_we_eur: null,
|
ticketpreis_we_eur: 19,
|
||||||
ticketpreis_unterderwoche_eur: null,
|
ticketpreis_unterderwoche_eur: 19,
|
||||||
notiz: 'Kennzahlen laut AUMA-Messedatenbank (Abruf 21.02.2026). Ticketpreise je Kategorie/VVK.',
|
notiz: 'Preis aus offiziellem Ticket-/Club-Stand (2-fuer-1 Aktion auf Basis Tagesticket).',
|
||||||
quelle_homepage: 'https://www.boot.de'
|
quelle_homepage: 'https://www.boot.de'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rang: 11,
|
rang: 15,
|
||||||
messe: 'IFA',
|
messe: 'IFA',
|
||||||
thema: 'Consumer Electronics, Home Appliances, Tech',
|
thema: 'Consumer Electronics, Home Appliances, Tech',
|
||||||
stadt: 'Berlin',
|
stadt: 'Berlin',
|
||||||
@@ -189,15 +258,15 @@
|
|||||||
termin_ende: '2026-09-08',
|
termin_ende: '2026-09-08',
|
||||||
besucher: 191997,
|
besucher: 191997,
|
||||||
besucher_jahr: 2024,
|
besucher_jahr: 2024,
|
||||||
besucher_status: 'AUMA-Kennzahl 2024 (kein neuerer Wert)',
|
besucher_status: 'AUMA 2024 (letzter verfuegbarer Wert)',
|
||||||
ausstellungsflaeche_m2: 107546,
|
ausstellungsflaeche_m2: 107546,
|
||||||
ticketpreis_we_eur: null,
|
ticketpreis_we_eur: 19.5,
|
||||||
ticketpreis_unterderwoche_eur: null,
|
ticketpreis_unterderwoche_eur: 19.5,
|
||||||
notiz: 'Vorjahreswert, da kein neuerer veröffentlichter Wert in AUMA. Ticketpreise je Kategorie/VVK.',
|
notiz: 'Preisniveau aus Ticketberichten zum letzten verfuegbaren IFA-Durchgang.',
|
||||||
quelle_homepage: 'https://www.ifa-berlin.com'
|
quelle_homepage: 'https://www.ifa-berlin.com'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rang: 12,
|
rang: 16,
|
||||||
messe: 'FIBO',
|
messe: 'FIBO',
|
||||||
thema: 'Fitness, Wellness, Gesundheit',
|
thema: 'Fitness, Wellness, Gesundheit',
|
||||||
stadt: 'Köln',
|
stadt: 'Köln',
|
||||||
@@ -206,32 +275,49 @@
|
|||||||
termin_ende: '2026-04-19',
|
termin_ende: '2026-04-19',
|
||||||
besucher: 154890,
|
besucher: 154890,
|
||||||
besucher_jahr: 2025,
|
besucher_jahr: 2025,
|
||||||
besucher_status: 'AUMA-Kennzahl 2025',
|
besucher_status: 'AUMA 2025',
|
||||||
ausstellungsflaeche_m2: 56904,
|
ausstellungsflaeche_m2: 56904,
|
||||||
ticketpreis_we_eur: null,
|
ticketpreis_we_eur: 44,
|
||||||
ticketpreis_unterderwoche_eur: null,
|
ticketpreis_unterderwoche_eur: 44,
|
||||||
notiz: 'Kennzahlen laut AUMA-Messedatenbank (Abruf 21.02.2026). Ticketpreise je Kategorie/VVK.',
|
notiz: 'Tagesticket laut FIBO-Ticketseite (ab EUR 44).',
|
||||||
quelle_homepage: 'https://www.fibo.com'
|
quelle_homepage: 'https://www.fibo.com'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rang: 13,
|
rang: 17,
|
||||||
|
messe: 'IAA TRANSPORTATION',
|
||||||
|
thema: 'Nutzfahrzeuge, Logistik, Transporttechnologie',
|
||||||
|
stadt: 'Hannover',
|
||||||
|
bundesland: 'Niedersachsen',
|
||||||
|
termin_start: '2026-09-15',
|
||||||
|
termin_ende: '2026-09-20',
|
||||||
|
besucher: 145000,
|
||||||
|
besucher_jahr: 2024,
|
||||||
|
besucher_status: 'Veranstalterangabe 2024',
|
||||||
|
ausstellungsflaeche_m2: null,
|
||||||
|
ticketpreis_we_eur: 20,
|
||||||
|
ticketpreis_unterderwoche_eur: 20,
|
||||||
|
notiz: 'Ticketpreis laut offizieller IAA-Transportation-Ticketseite (ab EUR 20).',
|
||||||
|
quelle_homepage: 'https://www.iaa-transportation.com'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
rang: 18,
|
||||||
messe: 'Anuga',
|
messe: 'Anuga',
|
||||||
thema: 'Lebensmittel und Getränke',
|
thema: 'Lebensmittel und Getraenke',
|
||||||
stadt: 'Köln',
|
stadt: 'Köln',
|
||||||
bundesland: 'Nordrhein-Westfalen',
|
bundesland: 'Nordrhein-Westfalen',
|
||||||
termin_start: '2027-10-09',
|
termin_start: '2027-10-09',
|
||||||
termin_ende: '2027-10-13',
|
termin_ende: '2027-10-13',
|
||||||
besucher: 143432,
|
besucher: 143432,
|
||||||
besucher_jahr: 2025,
|
besucher_jahr: 2025,
|
||||||
besucher_status: 'AUMA-Kennzahl 2025',
|
besucher_status: 'AUMA 2025',
|
||||||
ausstellungsflaeche_m2: 157545,
|
ausstellungsflaeche_m2: 157545,
|
||||||
ticketpreis_we_eur: null,
|
ticketpreis_we_eur: 80,
|
||||||
ticketpreis_unterderwoche_eur: null,
|
ticketpreis_unterderwoche_eur: 80,
|
||||||
notiz: 'Kennzahlen laut AUMA-Messedatenbank (Abruf 21.02.2026). Ticketpreise je Kategorie/VVK.',
|
notiz: 'Tagesticket laut TradeFairDates (Stand zuletzt verfuegbarer Preis).',
|
||||||
quelle_homepage: 'https://www.anuga.com'
|
quelle_homepage: 'https://www.anuga.com'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rang: 14,
|
rang: 19,
|
||||||
messe: 'HANNOVER MESSE',
|
messe: 'HANNOVER MESSE',
|
||||||
thema: 'Industrie, Automation, Energie, Digital',
|
thema: 'Industrie, Automation, Energie, Digital',
|
||||||
stadt: 'Hannover',
|
stadt: 'Hannover',
|
||||||
@@ -240,49 +326,83 @@
|
|||||||
termin_ende: '2026-04-24',
|
termin_ende: '2026-04-24',
|
||||||
besucher: 123035,
|
besucher: 123035,
|
||||||
besucher_jahr: 2025,
|
besucher_jahr: 2025,
|
||||||
besucher_status: 'AUMA-Kennzahl 2025',
|
besucher_status: 'AUMA 2025',
|
||||||
ausstellungsflaeche_m2: 101699,
|
ausstellungsflaeche_m2: 101699,
|
||||||
ticketpreis_we_eur: null,
|
ticketpreis_we_eur: null,
|
||||||
ticketpreis_unterderwoche_eur: null,
|
ticketpreis_unterderwoche_eur: 39,
|
||||||
notiz: 'Kennzahlen laut AUMA-Messedatenbank (Abruf 21.02.2026). Ticketpreise je Kategorie/VVK.',
|
notiz: 'Messe liegt auf Werktagen; Tagesticket laut TradeFairDates EUR 39.',
|
||||||
quelle_homepage: 'https://www.hannovermesse.de'
|
quelle_homepage: 'https://www.hannovermesse.de'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rang: 15,
|
rang: 20,
|
||||||
messe: 'CONSUMENTA Nürnberg',
|
messe: 'CONSUMENTA',
|
||||||
thema: 'Publikumsmesse: Haushalt, Freizeit, Bauen, Genuss',
|
thema: 'Publikumsmesse: Haushalt, Freizeit, Bauen, Genuss',
|
||||||
stadt: 'Nürnberg',
|
stadt: 'Nürnberg',
|
||||||
bundesland: 'Bayern',
|
bundesland: 'Bayern',
|
||||||
termin_start: '2026-10-31',
|
termin_start: '2026-10-31',
|
||||||
termin_ende: '2026-11-08',
|
termin_ende: '2026-11-08',
|
||||||
besucher: 121579,
|
besucher: 123000,
|
||||||
besucher_jahr: 2025,
|
besucher_jahr: 2025,
|
||||||
besucher_status: 'AUMA-Kennzahl 2025',
|
besucher_status: 'Veroeffentlichter Wert 2025',
|
||||||
ausstellungsflaeche_m2: 30448,
|
ausstellungsflaeche_m2: 30448,
|
||||||
ticketpreis_we_eur: null,
|
ticketpreis_we_eur: 16,
|
||||||
ticketpreis_unterderwoche_eur: null,
|
ticketpreis_unterderwoche_eur: 16,
|
||||||
notiz: 'Kennzahlen laut AUMA-Messedatenbank (Abruf 21.02.2026). Ticketpreise je Kategorie/VVK.',
|
notiz: 'Aktionstags-Preisstand vorhanden; regulaere Ticketpreise fuer 2026 noch im Rollout.',
|
||||||
quelle_homepage: 'https://www.consumenta.de'
|
quelle_homepage: 'https://www.consumenta.de'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rang: 16,
|
rang: 21,
|
||||||
|
messe: 'f.re.e München',
|
||||||
|
thema: 'Reisen, Freizeit, Caravaning, Outdoor',
|
||||||
|
stadt: 'München',
|
||||||
|
bundesland: 'Bayern',
|
||||||
|
termin_start: '2026-02-18',
|
||||||
|
termin_ende: '2026-02-22',
|
||||||
|
besucher: 120000,
|
||||||
|
besucher_jahr: 2025,
|
||||||
|
besucher_status: 'Veroeffentlichter Wert 2025',
|
||||||
|
ausstellungsflaeche_m2: null,
|
||||||
|
ticketpreis_we_eur: 17,
|
||||||
|
ticketpreis_unterderwoche_eur: 14,
|
||||||
|
notiz: 'Preisniveau aus zuletzt veroeffentlichtem Ticketstand (Wochenende hoeher).',
|
||||||
|
quelle_homepage: 'https://free-muenchen.de'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
rang: 22,
|
||||||
messe: 'infa',
|
messe: 'infa',
|
||||||
thema: 'Publikumsmesse: Lifestyle, Haushalt, Genuss',
|
thema: 'Publikumsmesse: Lifestyle, Haushalt, Genuss',
|
||||||
stadt: 'Hannover',
|
stadt: 'Hannover',
|
||||||
bundesland: 'Niedersachsen',
|
bundesland: 'Niedersachsen',
|
||||||
termin_start: '2026-10-10',
|
termin_start: '2026-10-10',
|
||||||
termin_ende: '2026-10-18',
|
termin_ende: '2026-10-18',
|
||||||
besucher: 100361,
|
besucher: 112228,
|
||||||
besucher_jahr: 2025,
|
besucher_jahr: 2025,
|
||||||
besucher_status: 'AUMA-Kennzahl 2025',
|
besucher_status: 'Veroeffentlichter Wert 2025',
|
||||||
ausstellungsflaeche_m2: 16423,
|
ausstellungsflaeche_m2: 16423,
|
||||||
ticketpreis_we_eur: null,
|
ticketpreis_we_eur: 15,
|
||||||
ticketpreis_unterderwoche_eur: null,
|
ticketpreis_unterderwoche_eur: 15,
|
||||||
notiz: 'Kennzahlen laut AUMA-Messedatenbank (Abruf 21.02.2026). Ticketpreise je Kategorie/VVK.',
|
notiz: 'Tagesticket laut zuletzt verfuegbarem Preisstand.',
|
||||||
quelle_homepage: 'https://www.infa.de'
|
quelle_homepage: 'https://www.infa.de'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rang: 17,
|
rang: 23,
|
||||||
|
messe: 'ITB Berlin',
|
||||||
|
thema: 'Reiseindustrie (B2B/Fachbesucher)',
|
||||||
|
stadt: 'Berlin',
|
||||||
|
bundesland: 'Berlin',
|
||||||
|
termin_start: '2026-03-03',
|
||||||
|
termin_ende: '2026-03-05',
|
||||||
|
besucher: 100000,
|
||||||
|
besucher_jahr: 2025,
|
||||||
|
besucher_status: 'Veroeffentlichter Wert 2025',
|
||||||
|
ausstellungsflaeche_m2: 78892,
|
||||||
|
ticketpreis_we_eur: null,
|
||||||
|
ticketpreis_unterderwoche_eur: 65,
|
||||||
|
notiz: 'B2B-Fachmesse ohne Wochenend-Tag. Ticketpreis laut offizieller ITB-Ticketseite.',
|
||||||
|
quelle_homepage: 'https://www.itb.com'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
rang: 24,
|
||||||
messe: 'ILA Berlin',
|
messe: 'ILA Berlin',
|
||||||
thema: 'Luft- und Raumfahrt',
|
thema: 'Luft- und Raumfahrt',
|
||||||
stadt: 'Berlin',
|
stadt: 'Berlin',
|
||||||
@@ -291,32 +411,66 @@
|
|||||||
termin_ende: '2026-06-14',
|
termin_ende: '2026-06-14',
|
||||||
besucher: 95000,
|
besucher: 95000,
|
||||||
besucher_jahr: 2024,
|
besucher_jahr: 2024,
|
||||||
besucher_status: 'AUMA-Kennzahl 2024 (kein neuerer Wert)',
|
besucher_status: 'AUMA 2024 (letzter verfuegbarer Wert)',
|
||||||
ausstellungsflaeche_m2: 32008,
|
ausstellungsflaeche_m2: 32008,
|
||||||
ticketpreis_we_eur: null,
|
ticketpreis_we_eur: 22,
|
||||||
ticketpreis_unterderwoche_eur: null,
|
ticketpreis_unterderwoche_eur: 22,
|
||||||
notiz: 'Vorjahreswert, da kein neuerer veröffentlichter Wert in AUMA. Ticketpreise je Kategorie/VVK.',
|
notiz: 'Tagesticket laut ILA-Besucherinfo (EUR 22, Kinder frei).',
|
||||||
quelle_homepage: 'https://www.ila-berlin.de'
|
quelle_homepage: 'https://www.ila-berlin.de'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rang: 18,
|
rang: 25,
|
||||||
|
messe: 'Heim+Handwerk',
|
||||||
|
thema: 'Wohnen, Handwerk, Lifestyle',
|
||||||
|
stadt: 'München',
|
||||||
|
bundesland: 'Bayern',
|
||||||
|
termin_start: '2026-11-25',
|
||||||
|
termin_ende: '2026-11-29',
|
||||||
|
besucher: 90000,
|
||||||
|
besucher_jahr: 2025,
|
||||||
|
besucher_status: 'Veroeffentlichter Wert 2025',
|
||||||
|
ausstellungsflaeche_m2: null,
|
||||||
|
ticketpreis_we_eur: 15,
|
||||||
|
ticketpreis_unterderwoche_eur: 15,
|
||||||
|
notiz: 'Ticketpreis als zuletzt verfuegbares Preisniveau; finale 2026-Staffel folgt i.d.R. spaeter.',
|
||||||
|
quelle_homepage: 'https://www.heim-handwerk.de'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
rang: 26,
|
||||||
messe: 'offerta',
|
messe: 'offerta',
|
||||||
thema: 'Einkaufs- und Erlebnismesse für Verbraucher',
|
thema: 'Einkaufs- und Erlebnismesse fuer Verbraucher',
|
||||||
stadt: 'Karlsruhe',
|
stadt: 'Karlsruhe',
|
||||||
bundesland: 'Baden-Württemberg',
|
bundesland: 'Baden-Württemberg',
|
||||||
termin_start: '2026-10-24',
|
termin_start: '2026-10-24',
|
||||||
termin_ende: '2026-11-01',
|
termin_ende: '2026-11-01',
|
||||||
besucher: 88738,
|
besucher: 88738,
|
||||||
besucher_jahr: 2025,
|
besucher_jahr: 2025,
|
||||||
besucher_status: 'AUMA-Kennzahl 2025',
|
besucher_status: 'AUMA 2025',
|
||||||
ausstellungsflaeche_m2: 16242,
|
ausstellungsflaeche_m2: 16242,
|
||||||
ticketpreis_we_eur: null,
|
ticketpreis_we_eur: 10,
|
||||||
ticketpreis_unterderwoche_eur: null,
|
ticketpreis_unterderwoche_eur: 10,
|
||||||
notiz: 'Kennzahlen laut AUMA-Messedatenbank (Abruf 21.02.2026). Ticketpreise je Kategorie/VVK.',
|
notiz: 'Preisniveau aus regional veroeffentlichtem Ticketstand (offerta Karlsruhe).',
|
||||||
quelle_homepage: 'https://www.offerta.info'
|
quelle_homepage: 'https://www.offerta.info'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rang: 19,
|
rang: 27,
|
||||||
|
messe: 'Reise + Camping Essen',
|
||||||
|
thema: 'Reisen, Camping, Fahrrad, Outdoor',
|
||||||
|
stadt: 'Essen',
|
||||||
|
bundesland: 'Nordrhein-Westfalen',
|
||||||
|
termin_start: '2026-02-25',
|
||||||
|
termin_ende: '2026-03-01',
|
||||||
|
besucher: 80000,
|
||||||
|
besucher_jahr: 2025,
|
||||||
|
besucher_status: 'Veroeffentlichter Wert 2025',
|
||||||
|
ausstellungsflaeche_m2: null,
|
||||||
|
ticketpreis_we_eur: 12,
|
||||||
|
ticketpreis_unterderwoche_eur: 12,
|
||||||
|
notiz: 'Online-Tagesticket laut Messe-Essen-Presse (EUR 12).',
|
||||||
|
quelle_homepage: 'https://www.reise-camping.de'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
rang: 28,
|
||||||
messe: 'RETRO CLASSICS',
|
messe: 'RETRO CLASSICS',
|
||||||
thema: 'Klassische Fahrzeuge und Fahrkultur',
|
thema: 'Klassische Fahrzeuge und Fahrkultur',
|
||||||
stadt: 'Stuttgart',
|
stadt: 'Stuttgart',
|
||||||
@@ -325,29 +479,46 @@
|
|||||||
termin_ende: '2026-02-22',
|
termin_ende: '2026-02-22',
|
||||||
besucher: 72386,
|
besucher: 72386,
|
||||||
besucher_jahr: 2025,
|
besucher_jahr: 2025,
|
||||||
besucher_status: 'AUMA-Kennzahl 2025',
|
besucher_status: 'AUMA 2025',
|
||||||
ausstellungsflaeche_m2: 46496,
|
ausstellungsflaeche_m2: 46496,
|
||||||
ticketpreis_we_eur: null,
|
ticketpreis_we_eur: 25,
|
||||||
ticketpreis_unterderwoche_eur: null,
|
ticketpreis_unterderwoche_eur: 25,
|
||||||
notiz: 'Kennzahlen laut AUMA-Messedatenbank (Abruf 21.02.2026). Ticketpreise je Kategorie/VVK.',
|
notiz: 'Tagesticket laut offizieller Retro-Classics-Preisliste.',
|
||||||
quelle_homepage: 'https://www.retro-classics.de'
|
quelle_homepage: 'https://www.retro-classics.de'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rang: 20,
|
rang: 29,
|
||||||
messe: 'ITB Berlin',
|
messe: 'Freizeit Messe Nürnberg',
|
||||||
thema: 'Reiseindustrie (B2B/Fachbesucher)',
|
thema: 'Freizeit, Touristik, Garten',
|
||||||
stadt: 'Berlin',
|
stadt: 'Nürnberg',
|
||||||
bundesland: 'Berlin',
|
bundesland: 'Bayern',
|
||||||
termin_start: '2026-03-03',
|
termin_start: '2026-03-04',
|
||||||
termin_ende: '2026-03-05',
|
termin_ende: '2026-03-08',
|
||||||
besucher: 58232,
|
besucher: 71000,
|
||||||
besucher_jahr: 2025,
|
besucher_jahr: 2025,
|
||||||
besucher_status: 'AUMA-Kennzahl 2025',
|
besucher_status: 'Veroeffentlichter Wert 2025',
|
||||||
ausstellungsflaeche_m2: 78892,
|
ausstellungsflaeche_m2: null,
|
||||||
ticketpreis_we_eur: null,
|
ticketpreis_we_eur: 16,
|
||||||
ticketpreis_unterderwoche_eur: null,
|
ticketpreis_unterderwoche_eur: 15,
|
||||||
notiz: 'Fachbesucherfokus. Kennzahlen laut AUMA-Messedatenbank (Abruf 21.02.2026).',
|
notiz: 'Ticketpreise laut offizieller Freizeit-Messe-Preistabelle 2026.',
|
||||||
quelle_homepage: 'https://www.itb.com'
|
quelle_homepage: 'https://www.freizeitmesse.de'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
rang: 30,
|
||||||
|
messe: 'Thueringen Ausstellung',
|
||||||
|
thema: 'Haus, Bau, Modernisieren, Lifestyle',
|
||||||
|
stadt: 'Erfurt',
|
||||||
|
bundesland: 'Thüringen',
|
||||||
|
termin_start: '2026-02-28',
|
||||||
|
termin_ende: '2026-03-08',
|
||||||
|
besucher: 69988,
|
||||||
|
besucher_jahr: 2025,
|
||||||
|
besucher_status: 'Veroeffentlichter Wert 2025',
|
||||||
|
ausstellungsflaeche_m2: null,
|
||||||
|
ticketpreis_we_eur: 14,
|
||||||
|
ticketpreis_unterderwoche_eur: 14,
|
||||||
|
notiz: 'Tagesticket Erwachsene laut offizieller Thueringen-Ausstellung-Preisliste.',
|
||||||
|
quelle_homepage: 'https://thueringen-ausstellung.de'
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -485,6 +656,55 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function normalizeSortState(rawState) {
|
||||||
|
if (!rawState || typeof rawState !== 'object') {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
const key = rawState.sortKey;
|
||||||
|
const direction = rawState.sortDirection;
|
||||||
|
if (!Object.prototype.hasOwnProperty.call(SORT_TYPES, key)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (direction !== 'asc' && direction !== 'desc') {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
sortKey: key,
|
||||||
|
sortDirection: direction
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadSortState() {
|
||||||
|
try {
|
||||||
|
const raw = localStorage.getItem(SORT_STATE_KEY);
|
||||||
|
if (!raw) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const parsed = JSON.parse(raw);
|
||||||
|
const normalized = normalizeSortState(parsed);
|
||||||
|
if (!normalized) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
sortKey = normalized.sortKey;
|
||||||
|
sortDirection = normalized.sortDirection;
|
||||||
|
} catch (_error) {
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function persistSortState() {
|
||||||
|
try {
|
||||||
|
localStorage.setItem(SORT_STATE_KEY, JSON.stringify({
|
||||||
|
sortKey,
|
||||||
|
sortDirection
|
||||||
|
}));
|
||||||
|
} catch (_error) {
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function updateSortButtonState() {
|
function updateSortButtonState() {
|
||||||
sortButtons.forEach((button) => {
|
sortButtons.forEach((button) => {
|
||||||
const key = button.dataset.tradeSort;
|
const key = button.dataset.tradeSort;
|
||||||
@@ -502,6 +722,70 @@
|
|||||||
return td;
|
return td;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function buildTradeFairQueries(row) {
|
||||||
|
const base = String(row.messe || '').trim();
|
||||||
|
const city = String(row.stadt || '').trim();
|
||||||
|
const topic = String(row.thema || '').split(',')[0].trim();
|
||||||
|
|
||||||
|
return [...new Set([
|
||||||
|
base,
|
||||||
|
[base, city].filter(Boolean).join(' '),
|
||||||
|
[base, topic].filter(Boolean).join(' ')
|
||||||
|
].map((entry) => entry.trim()).filter(Boolean))];
|
||||||
|
}
|
||||||
|
|
||||||
|
function openQueryFallback(query) {
|
||||||
|
const trimmed = String(query || '').trim();
|
||||||
|
if (!trimmed) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof window.buildBookmarkSearchUrl === 'function') {
|
||||||
|
const built = window.buildBookmarkSearchUrl(trimmed);
|
||||||
|
if (built) {
|
||||||
|
window.open(built, '_blank', 'noopener');
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const url = new URL('https://www.facebook.com/search/posts');
|
||||||
|
url.searchParams.set('q', trimmed);
|
||||||
|
window.open(url.toString(), '_blank', 'noopener');
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
function openTradeFairSearch(row) {
|
||||||
|
const queries = buildTradeFairQueries(row);
|
||||||
|
if (!queries.length) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof window.openBookmarkQueries === 'function') {
|
||||||
|
const opened = window.openBookmarkQueries(queries);
|
||||||
|
if (opened > 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
queries.forEach((query) => {
|
||||||
|
openQueryFallback(query);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function createMesseCell(row) {
|
||||||
|
const td = document.createElement('td');
|
||||||
|
const button = document.createElement('button');
|
||||||
|
button.type = 'button';
|
||||||
|
button.className = 'bookmark-subpage__messe-link';
|
||||||
|
button.textContent = row.messe || 'k.A.';
|
||||||
|
button.title = 'Als Bookmark-Suche oeffnen (3 Tabs)';
|
||||||
|
button.addEventListener('click', () => {
|
||||||
|
openTradeFairSearch(row);
|
||||||
|
});
|
||||||
|
td.appendChild(button);
|
||||||
|
return td;
|
||||||
|
}
|
||||||
|
|
||||||
function render() {
|
function render() {
|
||||||
const normalizedRows = TRADE_FAIRS.map(normalizeRow);
|
const normalizedRows = TRADE_FAIRS.map(normalizeRow);
|
||||||
const filtered = normalizedRows.filter((row) => matchesSearch(row, searchTerm));
|
const filtered = normalizedRows.filter((row) => matchesSearch(row, searchTerm));
|
||||||
@@ -522,7 +806,7 @@
|
|||||||
|
|
||||||
tr.appendChild(createCell(Number.isFinite(row.tage_bis_start) ? String(row.tage_bis_start) : 'k.A.'));
|
tr.appendChild(createCell(Number.isFinite(row.tage_bis_start) ? String(row.tage_bis_start) : 'k.A.'));
|
||||||
tr.appendChild(createCell(String(row.rang)));
|
tr.appendChild(createCell(String(row.rang)));
|
||||||
tr.appendChild(createCell(row.messe));
|
tr.appendChild(createMesseCell(row));
|
||||||
tr.appendChild(createCell(row.thema));
|
tr.appendChild(createCell(row.thema));
|
||||||
tr.appendChild(createCell(row.stadt));
|
tr.appendChild(createCell(row.stadt));
|
||||||
tr.appendChild(createCell(row.bundesland));
|
tr.appendChild(createCell(row.bundesland));
|
||||||
@@ -573,6 +857,8 @@
|
|||||||
sortKey = key;
|
sortKey = key;
|
||||||
sortDirection = key === 'rang' ? 'asc' : 'desc';
|
sortDirection = key === 'rang' ? 'asc' : 'desc';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
persistSortState();
|
||||||
sortButtons.forEach((btn) => {
|
sortButtons.forEach((btn) => {
|
||||||
const baseLabel = btn.dataset.baseLabel || btn.textContent;
|
const baseLabel = btn.dataset.baseLabel || btn.textContent;
|
||||||
btn.textContent = baseLabel;
|
btn.textContent = baseLabel;
|
||||||
@@ -587,6 +873,7 @@
|
|||||||
render();
|
render();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
loadSortState();
|
||||||
updateSortButtonState();
|
updateSortButtonState();
|
||||||
render();
|
render();
|
||||||
})();
|
})();
|
||||||
|
|||||||
Reference in New Issue
Block a user