From 35b15294e3279f3d84fbfe612bb466c3a6c05d7b Mon Sep 17 00:00:00 2001 From: "Janus C. H. Knudsen" Date: Mon, 5 Jan 2026 17:38:39 +0100 Subject: [PATCH] Removes poc-booking.html from wwwroot Cleans up redundant HTML file from project directory Eliminates an unused proof-of-concept booking page template --- wwwroot/poc-booking.html | 1806 ---------------------- wwwroot/poc-checkout.html | 520 ++++++- wwwroot/poc-dashboard copy.html | 1385 ----------------- wwwroot/poc-indstillinger.html | 587 ++++++++ wwwroot/poc-layout copy.html | 2509 ------------------------------- 5 files changed, 1105 insertions(+), 5702 deletions(-) delete mode 100644 wwwroot/poc-booking.html delete mode 100644 wwwroot/poc-dashboard copy.html delete mode 100644 wwwroot/poc-layout copy.html diff --git a/wwwroot/poc-booking.html b/wwwroot/poc-booking.html deleted file mode 100644 index 4de81c9..0000000 --- a/wwwroot/poc-booking.html +++ /dev/null @@ -1,1806 +0,0 @@ - - - - - - Book tid - KARINA KNUDSEN® - - - - - - - - - - - - - SB - -

KARINA KNUDSEN®

-

Amager Strandvej 22f, 2300 Kbh S

-
-
- - - - - - - -

Vælg ydelse

-

Vælg hvad du vil have lavet

-
- Rediger - -
- - -
-
-
-
- - - - - - -

Vælg medarbejder

-

Valgfrit

-
- Rediger - -
- - -
-
-
-
- - - - - - -

Vælg dato og tid

-

Find en ledig tid

-
- Rediger - -
- - -
-
-
-
- - - - - - -

Dine oplysninger

-

Kontaktinformation

-
- Rediger - -
- - - - - Fornavn - - - - Efternavn - - - - Telefon - - - - Email - - - - Noter (valgfrit) - - - - - -
-
-
- - - - Din booking - - - - Vælg en ydelse for at starte - - - - - - - - - - - Book tid - - -
- - - - Videre - - - - - - - - -

Booking bekræftet!

-

Du modtager en bekræftelse på email og SMS. Vi glæder os til at se dig!

-
-
- - - - - diff --git a/wwwroot/poc-checkout.html b/wwwroot/poc-checkout.html index 102861a..210d46f 100644 --- a/wwwroot/poc-checkout.html +++ b/wwwroot/poc-checkout.html @@ -1033,6 +1033,326 @@ color: white; } + /* ========================================== + RECEIPT + ========================================== */ + .receipt-container { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0,0,0,0.3); + z-index: 10; + display: flex; + justify-content: center; + padding-top: 20px; + opacity: 0; + visibility: hidden; + transition: opacity 300ms ease, visibility 300ms ease; + overflow-y: auto; + } + + .receipt-container.visible { + opacity: 1; + visibility: visible; + } + + .receipt { + width: 280px; + background: #fff; + font-family: 'Courier New', monospace; + font-size: 12px; + color: #000; + padding: 20px 16px; + box-shadow: 0 4px 20px rgba(0,0,0,0.3); + transform: translateY(-100%); + transition: transform 500ms cubic-bezier(0.34, 1.56, 0.64, 1); + position: relative; + margin-bottom: 20px; + } + + .receipt-container.visible .receipt { + transform: translateY(0); + } + + /* Torn paper effect at bottom */ + .receipt::after { + content: ''; + position: absolute; + bottom: -10px; + left: 0; + right: 0; + height: 10px; + background: linear-gradient(135deg, #fff 25%, transparent 25%), + linear-gradient(-135deg, #fff 25%, transparent 25%); + background-size: 10px 10px; + } + + .receipt-header { + text-align: center; + padding-bottom: 12px; + border-bottom: 1px dashed #000; + margin-bottom: 12px; + } + + .receipt-logo { + font-size: 18px; + font-weight: bold; + letter-spacing: 2px; + margin-bottom: 4px; + } + + .receipt-address { + font-size: 10px; + line-height: 1.4; + } + + .receipt-info { + display: flex; + justify-content: space-between; + font-size: 10px; + padding: 8px 0; + border-bottom: 1px dashed #000; + margin-bottom: 12px; + } + + .receipt-items { + margin-bottom: 12px; + } + + .receipt-item { + display: flex; + justify-content: space-between; + padding: 4px 0; + font-size: 11px; + } + + .receipt-item-name { + flex: 1; + padding-right: 8px; + } + + .receipt-item-qty { + width: 30px; + text-align: center; + } + + .receipt-item-price { + width: 70px; + text-align: right; + font-family: 'JetBrains Mono', monospace; + } + + .receipt-divider { + border-top: 1px dashed #000; + margin: 8px 0; + } + + .receipt-totals { + margin-bottom: 12px; + } + + .receipt-total-row { + display: flex; + justify-content: space-between; + padding: 3px 0; + font-size: 11px; + } + + .receipt-total-row.grand { + font-size: 14px; + font-weight: bold; + padding: 8px 0; + border-top: 2px solid #000; + border-bottom: 2px solid #000; + margin: 8px 0; + } + + .receipt-payment { + font-size: 10px; + padding: 8px 0; + border-bottom: 1px dashed #000; + } + + .receipt-payment-row { + display: flex; + justify-content: space-between; + padding: 2px 0; + } + + .receipt-footer { + text-align: center; + padding-top: 12px; + font-size: 10px; + } + + .receipt-footer-msg { + font-size: 12px; + font-weight: bold; + margin-bottom: 8px; + } + + .receipt-qr { + margin: 12px auto 8px; + display: flex; + justify-content: center; + } + + .receipt-qr svg { + border: 2px solid #000; + } + + .receipt-id { + font-size: 9px; + letter-spacing: 1px; + } + + .receipt-close { + position: absolute; + top: 8px; + right: 8px; + width: 24px; + height: 24px; + border: none; + background: #f0f0f0; + border-radius: 50%; + cursor: pointer; + font-size: 14px; + display: flex; + align-items: center; + justify-content: center; + } + + .receipt-close:hover { + background: #e0e0e0; + } + + .receipt-actions { + display: flex; + gap: 8px; + margin-top: 16px; + padding-top: 12px; + border-top: 1px solid #e0e0e0; + } + + .receipt-actions button { + flex: 1; + padding: 8px; + font-size: 11px; + border-radius: 4px; + cursor: pointer; + font-family: var(--font-family); + } + + .receipt-actions .btn-print { + background: #000; + color: #fff; + border: none; + } + + .receipt-actions .btn-close { + background: #fff; + border: 1px solid #ccc; + color: #333; + } + + /* ========================================== + PRINT STYLES + ========================================== */ + @media print { + /* White background */ + html, body { + background: white !important; + -webkit-print-color-adjust: exact; + print-color-adjust: exact; + } + + /* Hide everything by default */ + .demo-trigger, + .overlay, + .header, + .sidebar, + .cart-area, + .payment-total, + .payment-methods, + .payment-input-section, + .registered-payments, + .payment-footer { + display: none !important; + } + + /* Reset panel positioning */ + .panel { + position: static !important; + width: 100% !important; + transform: none !important; + box-shadow: none !important; + background: white !important; + } + + .main { + display: block !important; + } + + .payment-panel { + display: block !important; + position: static !important; + border: none !important; + background: white !important; + } + + /* Show receipt */ + .receipt-container { + display: flex !important; + justify-content: center !important; + visibility: visible !important; + opacity: 1 !important; + position: static !important; + background: white !important; + padding: 0 !important; + } + + .receipt { + display: block !important; + margin: 0 !important; + box-shadow: none !important; + transform: none !important; + text-align: left !important; + } + + /* Preserve item layout */ + .receipt-item { + display: flex !important; + justify-content: space-between !important; + text-align: left !important; + } + + .receipt-item-name { + text-align: left !important; + } + + .receipt-item-price { + text-align: right !important; + } + + .receipt-total-row { + display: flex !important; + justify-content: space-between !important; + } + + /* Hide buttons in receipt */ + .receipt-close, + .receipt-actions { + display: none !important; + } + + /* Remove torn paper effect */ + .receipt::after { + display: none; + } + } + @@ -1303,7 +1623,178 @@ -
+
+ +
+
+ + +
+ +
+ Østergade 42, 1. sal
+ 1100 København K
+ Tlf: 33 12 34 56
+ CVR: 12345678 +
+
+ +
+
+
Dato: 16-12-2025
+
Tid: 14:32
+
+
+
Kvit: #4521
+
Kasse: 1
+
+
+ +
+
+ Vare + Antal + Pris +
+
+ Dameklip + 1 + 725,00 +
+
+ Gloss langt hår + 1 + 900,00 +
+
+ Olaplex No. 3 + 1 + 300,00 +
+
+ India mask 250ml + 2 + 350,00 +
+
+ +
+ +
+
+ Subtotal + 1.820,00 +
+
+ Moms (25%) + 455,00 +
+
+ TOTAL + 2.275,00 DKK +
+
+ +
+
+ Betalt med Kort + 2.275,00 +
+
+ + + +
+ + +
+
+
2.275 kr
Total at betale
@@ -1369,7 +1860,7 @@
- +
@@ -1978,6 +2469,31 @@ } `; document.head.appendChild(scannerStyle); + + // ========================================== + // RECEIPT + // ========================================== + + function showReceipt() { + const receiptContainer = document.getElementById('receiptContainer'); + receiptContainer.classList.add('visible'); + } + + function hideReceipt() { + const receiptContainer = document.getElementById('receiptContainer'); + receiptContainer.classList.remove('visible'); + } + + // Close receipt on Escape key + document.addEventListener('keydown', (e) => { + if (e.key === 'Escape') { + const receiptContainer = document.getElementById('receiptContainer'); + if (receiptContainer.classList.contains('visible')) { + hideReceipt(); + e.stopPropagation(); + } + } + }); diff --git a/wwwroot/poc-dashboard copy.html b/wwwroot/poc-dashboard copy.html deleted file mode 100644 index 5f93f61..0000000 --- a/wwwroot/poc-dashboard copy.html +++ /dev/null @@ -1,1385 +0,0 @@ - - - - - - Dashboard - Salon OS - - - - - - - - - Dashboard - - - - - Mandag, 30. december 2024 - - - - Ny booking - - - - - - - - - 12 - Bookinger i dag - - - 4 gennemført, 2 i gang - - - - 8.450 kr - Forventet omsætning - - - +12% vs. gennemsnit - - - - 78% - Belægningsgrad - - - God kapacitet - - - - 3 - Kræver opmærksomhed - - - - - - - - - - - - AI Analyse - - - Godt i gang! 4 af 12 bookinger er gennemført. 2 er i gang nu, og 6 venter. - Forventet omsætning: 8.450 kr – allerede realiseret 2.150 kr. - Tip: Ida Rasmussen (11:30) har ikke bekræftet – overvej at sende en påmindelse. - - - - - - - - - - Dagens bookinger - - Se alle - - - - - Nu: 10:45 - - - - - - - 08:00 - 08:30 - - - - Herreklip - Thomas Berg - - - MH - Maria - - Gennemført - - - - - 08:30 - 09:00 - - - - Dameklip - Katrine Holm - - - AS - Anna - - Gennemført - - - - - 09:00 - 09:30 - - - - Skægtrimning - Mikkel Skov - - - PK - Peter - - Gennemført - - - - - 09:00 - 10:30 - - - - Dameklip + Farve - Sofie Nielsen - - - AS - Anna - - Gennemført - - - - - - 10:30 - 11:00 - - - - Herreklip - Jonas Petersen - - - MH - Maria - - I gang - - - - - 10:00 - 11:00 - - - - Føn + Styling - Rikke Dam - - - LJ - Louise - - I gang - - - - - - 11:00 - 12:00 - - - - Balayage - Emma Christensen - - - AS - Anna - - Bekræftet - - - - - 11:30 - 12:00 - - - - Dameklip - Ida Rasmussen - - - MH - Maria - - Afventer - - - - - 13:00 - 14:00 - - - - Farve + Føn - Louise Andersen - - - AS - Anna - - Bekræftet - - - - - 14:00 - 14:30 - - - - Herreklip - Anders Møller - - - PK - Peter - - Bekræftet - - - - - 15:30 - 16:30 - - - - Extensions - Julie Lund - - - LJ - Louise - - Bekræftet - - - - - - - - - - Opmærksomheder - - - - - - - - - - Aflyst booking - Mette Hansen aflyste kl. 15:00 – tid nu ledig - - Fyld tid - - - - - - - - Ubekræftet booking - Ida Rasmussen har ikke bekræftet kl. 11:30 - - Send påmindelse - - - - - - - - Gavekort udløber snart - GC-D2R4-6TY9 udløber om 3 uger (200 DKK) - - Se gavekort - - - - - - - - - - - - - Notifikationer - - Marker alle som læst - - - - - - - - - - Ny booking fra Emma Christensen til Balayage - - For 15 min. siden - - - - - - - - - - Ny anmeldelse – 5 stjerner fra Sofie Nielsen - - For 1 time siden - - - - - - - - - - Aflysning – Mette Hansen aflyste kl. 15:00 - - For 2 timer siden - - - - - - - - - - Bekræftet – Louise Andersen bekræftede kl. 13:00 - - I går kl. 18:30 - - - - - - - - - - - Denne uge - - - - - - 47 - Bookinger - - - 38.200 kr - Omsætning - - - 8 - Nye kunder - - - 72% - Gns. belægning - - - - - - - - - - Medarbejdere - - - - - - AS - - Anna Sørensen - Ledig til kl. 11:00 (Balayage) - - Ledig - - - - MH - - Maria Hansen - Herreklip med Jonas - - Optaget - - - - LJ - - Louise Jensen - Føn + Styling med Rikke - - Optaget - - - - PK - - Peter Kristensen - Ledig til kl. 14:00 - - Ledig - - - - - - - - - - diff --git a/wwwroot/poc-indstillinger.html b/wwwroot/poc-indstillinger.html index 6fe4e3c..8cb0bd3 100644 --- a/wwwroot/poc-indstillinger.html +++ b/wwwroot/poc-indstillinger.html @@ -1684,6 +1684,181 @@ swp-btn.primary.purple:hover { background: color-mix(in srgb, var(--color-purple) 85%, black); } + + /* ========================================== + TRACKING TAB + ========================================== */ + swp-tab-content[data-tab="tracking"] { + display: none; + } + + swp-tab-content[data-tab="tracking"].active { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 16px; + } + + .tracking-card { + margin-bottom: 0; + } + + .tracking-card.full-width, + .code-preview-card { + grid-column: 1 / -1; + } + + .tracking-card swp-card-header { + display: flex; + justify-content: space-between; + align-items: center; + } + + .tracking-card[data-tracker] swp-card-content { + transition: opacity 200ms ease, max-height 300ms ease; + } + + .tracking-card[data-tracker].disabled swp-card-content { + opacity: 0.5; + pointer-events: none; + } + + swp-tracking-hint { + display: flex; + align-items: center; + gap: 8px; + margin-top: 12px; + padding: 10px 12px; + background: color-mix(in srgb, var(--color-blue) 8%, transparent); + border-radius: 6px; + font-size: 12px; + color: var(--color-text-secondary); + } + + swp-tracking-hint i { + font-size: 16px; + color: var(--color-blue); + } + + swp-tracking-hint.privacy { + background: color-mix(in srgb, var(--color-green) 8%, transparent); + } + + swp-tracking-hint.privacy i { + color: var(--color-green); + } + + swp-script-section { + display: flex; + flex-direction: column; + gap: 8px; + margin-bottom: 16px; + } + + swp-script-section:last-child { + margin-bottom: 0; + } + + swp-script-label { + display: flex; + align-items: center; + gap: 8px; + font-size: 13px; + font-weight: 500; + color: var(--color-text); + } + + swp-script-label i { + font-size: 16px; + color: var(--color-text-secondary); + } + + .script-textarea { + width: 100%; + min-height: 100px; + padding: 12px; + font-family: var(--font-mono); + font-size: 12px; + line-height: 1.5; + color: var(--color-text); + background: var(--color-background); + border: 1px solid var(--color-border); + border-radius: 6px; + resize: vertical; + } + + .script-textarea::placeholder { + color: var(--color-text-secondary); + } + + .script-textarea:focus { + outline: none; + border-color: var(--color-teal); + } + + .code-preview-card { + margin-top: 24px; + border: 2px dashed var(--color-teal); + background: color-mix(in srgb, var(--color-teal) 3%, var(--color-surface)); + } + + .code-preview-card swp-card-header { + display: flex; + justify-content: space-between; + align-items: center; + } + + .code-preview-card swp-card-title { + color: var(--color-teal); + } + + swp-code-info { + display: flex; + align-items: center; + gap: 8px; + margin-bottom: 12px; + font-size: 12px; + color: var(--color-text-secondary); + } + + swp-code-info i { + font-size: 16px; + color: var(--color-teal); + } + + .code-preview { + margin: 0; + padding: 16px; + background: var(--color-background); + border: 1px solid var(--color-border); + border-radius: 6px; + overflow-x: auto; + max-height: 400px; + overflow-y: auto; + } + + .code-preview code { + font-family: var(--font-mono); + font-size: 11px; + line-height: 1.6; + color: var(--color-text); + white-space: pre; + } + + .code-preview .comment { + color: var(--color-green); + } + + .code-preview .tag { + color: var(--color-blue); + } + + .code-preview .attr { + color: var(--color-purple); + } + + .code-preview .string { + color: var(--color-teal); + } @@ -1735,6 +1910,10 @@ Moduler + + + Tracking + + + + + + + + Meta Pixel (Facebook) + + + Ja + Nej + + + + + + Pixel ID + 123456789012345 + + + + + Bruges til Facebook og Instagram annoncering og remarketing + + + + + + + + + + Google Analytics (GA4) + + + Ja + Nej + + + + + + Measurement ID + G-ABC123XYZ + + + + + Google Analytics 4 til website trafik og brugeradfærd + + + + + + + + + + Google Tag Manager + + + Ja + Nej + + + + + + Container ID + GTM-XXXXXXX + + + + + Central styring af alle tracking-tags + + + + + + + + + + Plausible Analytics + + + Ja + Nej + + + + + + Domæne + minside.dk + + + + + Privacy-venlig analytics uden cookies - GDPR compliant + + + + + + + + + + Fathom Analytics + + + Ja + Nej + + + + + + Site ID + ABCDEFGH + + + + + Privacy-venlig analytics uden cookies - GDPR compliant + + + + + + + + + + Matomo + + + Ja + Nej + + + + + + Server URL + https://matomo.minside.dk + + + Site ID + 1 + + + + + Self-hosted analytics - fuld kontrol over dine data + + + + + + + + + + Brugerdefinerede Scripts + + + + + + + Scripts i <head> + + + + + + + Scripts før </body> + + + + + + + + + + + + Genereret Kode + + + + + + Denne kode indsættes automatisk i <head> på din online booking side + +
+
+
+
+ @@ -3699,6 +4086,206 @@ Vil du ændre din tid? {booking_link} // Initial state updateOnlinePaymentVisibility(); } + + // ========================================== + // TRACKING TAB + // ========================================== + + function initTrackingToggles() { + document.querySelectorAll('.tracking-card swp-toggle-slider').forEach(slider => { + slider.querySelectorAll('swp-toggle-option').forEach((option, index) => { + option.addEventListener('click', () => { + slider.dataset.value = index === 0 ? 'yes' : 'no'; + const card = slider.closest('.tracking-card'); + + if (slider.dataset.value === 'no') { + card.classList.add('disabled'); + } else { + card.classList.remove('disabled'); + } + + updateTrackingPreview(); + }); + }); + }); + } + + function updateTrackingPreview() { + const preview = document.getElementById('trackingCodePreview'); + if (!preview) return; + + let code = ''; + + // Meta Pixel + const metaCard = document.querySelector('[data-tracker="meta"]'); + if (metaCard && metaCard.querySelector('swp-toggle-slider').dataset.value === 'yes') { + const pixelId = document.getElementById('metaPixelId')?.textContent?.trim() || ''; + if (pixelId) { + code += `<!-- Meta Pixel --> +<script> + !function(f,b,e,v,n,t,s) + {if(f.fbq)return;n=f.fbq=function(){n.callMethod? + n.callMethod.apply(n,arguments):n.queue.push(arguments)}; + if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; + n.queue=[];t=b.createElement(e);t.async=!0; + t.src=v;s=b.getElementsByTagName(e)[0]; + s.parentNode.insertBefore(t,s)}(window, document,'script', + 'https://connect.facebook.net/en_US/fbevents.js'); + fbq('init', '${pixelId}'); + fbq('track', 'PageView'); +</script> + +`; + } + } + + // Google Analytics + const ga4Card = document.querySelector('[data-tracker="ga4"]'); + if (ga4Card && ga4Card.querySelector('swp-toggle-slider').dataset.value === 'yes') { + const measurementId = document.getElementById('ga4Id')?.textContent?.trim() || ''; + if (measurementId) { + code += `<!-- Google Analytics (GA4) --> +<script async src="https://www.googletagmanager.com/gtag/js?id=${measurementId}"></script> +<script> + window.dataLayer = window.dataLayer || []; + function gtag(){dataLayer.push(arguments);} + gtag('js', new Date()); + gtag('config', '${measurementId}'); +</script> + +`; + } + } + + // Google Tag Manager + const gtmCard = document.querySelector('[data-tracker="gtm"]'); + if (gtmCard && gtmCard.querySelector('swp-toggle-slider').dataset.value === 'yes') { + const containerId = document.getElementById('gtmId')?.textContent?.trim() || ''; + if (containerId) { + code += `<!-- Google Tag Manager --> +<script> + (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': + new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], + j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= + 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); + })(window,document,'script','dataLayer','${containerId}'); +</script> + +`; + } + } + + // Plausible + const plausibleCard = document.querySelector('[data-tracker="plausible"]'); + if (plausibleCard && plausibleCard.querySelector('swp-toggle-slider').dataset.value === 'yes') { + const domain = document.getElementById('plausibleDomain')?.textContent?.trim() || ''; + if (domain) { + code += `<!-- Plausible Analytics --> +<script defer data-domain="${domain}" src="https://plausible.io/js/script.js"></script> + +`; + } + } + + // Fathom + const fathomCard = document.querySelector('[data-tracker="fathom"]'); + if (fathomCard && fathomCard.querySelector('swp-toggle-slider').dataset.value === 'yes') { + const siteId = document.getElementById('fathomSiteId')?.textContent?.trim() || ''; + if (siteId) { + code += `<!-- Fathom Analytics --> +<script src="https://cdn.usefathom.com/script.js" data-site="${siteId}" defer></script> + +`; + } + } + + // Matomo + const matomoCard = document.querySelector('[data-tracker="matomo"]'); + if (matomoCard && matomoCard.querySelector('swp-toggle-slider').dataset.value === 'yes') { + const serverUrl = document.getElementById('matomoUrl')?.textContent?.trim() || ''; + const siteId = document.getElementById('matomoSiteId')?.textContent?.trim() || ''; + if (serverUrl && siteId) { + code += `<!-- Matomo Analytics --> +<script> + var _paq = window._paq = window._paq || []; + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="${serverUrl}/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '${siteId}']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); +</script> + +`; + } + } + + // Custom Head Scripts + const customHead = document.getElementById('customHeadScripts')?.value?.trim() || ''; + if (customHead) { + code += `<!-- Custom Scripts --> +${escapeHtml(customHead)} + +`; + } + + if (code) { + preview.querySelector('code').innerHTML = code.trim(); + } else { + preview.querySelector('code').innerHTML = '<!-- Ingen aktive tracking-koder -->'; + } + } + + function escapeHtml(text) { + return text + .replace(/&/g, '&') + .replace(//g, '>'); + } + + function copyTrackingCode() { + const preview = document.getElementById('trackingCodePreview'); + if (!preview) return; + + // Get plain text version (strip HTML tags) + const code = preview.querySelector('code').innerHTML + .replace(/]*>/g, '') + .replace(/<\/span>/g, '') + .replace(/</g, '<') + .replace(/>/g, '>') + .replace(/&/g, '&'); + + navigator.clipboard.writeText(code).then(() => { + const btn = document.querySelector('.code-preview-card swp-btn'); + const originalText = btn.innerHTML; + btn.innerHTML = ' Kopieret!'; + btn.style.color = 'var(--color-green)'; + setTimeout(() => { + btn.innerHTML = originalText; + btn.style.color = ''; + }, 2000); + }); + } + + // Initialize tracking preview on page load + document.addEventListener('DOMContentLoaded', () => { + // Initialize tracking toggles + initTrackingToggles(); + + // Update preview + updateTrackingPreview(); + + // Set initial disabled state for cards + document.querySelectorAll('.tracking-card[data-tracker]').forEach(card => { + const toggle = card.querySelector('swp-toggle-slider'); + if (toggle && toggle.dataset.value === 'no') { + card.classList.add('disabled'); + } + }); + }); diff --git a/wwwroot/poc-layout copy.html b/wwwroot/poc-layout copy.html deleted file mode 100644 index a24a9a2..0000000 --- a/wwwroot/poc-layout copy.html +++ /dev/null @@ -1,2509 +0,0 @@ - - - - - - Salon OS - - - - - - - - - - - Salon OS - - - - - - - - - Dashboard - - - Dashboard - - - - Kalender - - - - Kasse - - - - - - Data - - - Produkter & Lager - - - - Leverandører - - - - Kunder - - - - Medarbejdere - - - - - - Analyse - - - Statistik & Rapporter - - - - - - System - - - Indstillinger - - - - Abonnement & Konto - - - - - - - - Lås skærm - - - - - - - - - - ⌘K - - - - - - - 3 - - - - - - - MJ - - Maria Jensen - Administrator - - - - - - - - - - Dashboard - - Vælg et menupunkt i venstre side for at navigere til den ønskede sektion. -

- Prøv f.eks. Produkter & Lager eller Leverandører. -
-
-
-
- - - - - - Min profil - - - - - - - - MJ - Maria Jensen - Administrator - maria@salon.dk - - - - Konto - - - Rediger profil - - - - - Skift adgangskode - - - - - Notifikationer - 3 ulæste - - - - Mine opgaver - 2 i dag - - - - - Udseende - - - - - - - - - - - - Support - - - Hjælp & Support - - - - - Om Salon OS - v2.1.0 - - - - - - - - Log ud - - - - - - - - Notifikationer - - Marker alle læst - - - - - - - - - - - - - - Ny booking - Maria Hansen har booket klipning kl. 14:00 - For 5 min siden - - - - - - - - - - Kunde feedback - 5 stjerner fra Jonas Petersen - For 15 min siden - - - - - - - - - - Misset opkald - +45 12 34 56 78 - For 1 time siden - - - - - - - - - - Ny mail - Fra: leverandoer@produkt.dk - Ordrebekræftelse - For 2 timer siden - - - - - - - - - - Ny besked i chat - Kunde: "Hej, kan jeg ændre min tid?" - For 3 timer siden - - - - - - - - - - Påmindelse - Bestil varer fra Wella inden fredag - I går - - - - - - - - - - - - Mine opgaver - - - - - - - - - - - - - I dag - 3 - - - - - - - - Ring til leverandør om ordre - - - - 10:00 - - - - - - - - - - Bestil shampoo fra Wella - - - - - - - - Opdater prisliste for 2025 - - - - Høj - - - - - - - - - - - - Denne uge - 2 - - - - - - - - Rengør og vedligehold udstyr - - - - Onsdag - - - - - - - - - - Medarbejdersamtale med Jonas - - - - Fredag - - - - 14:00 - - - - - - - - - - - - - - - - - - - Ny opgave - - - - - - Opgave - - - - - - - Dato - - - - Tid - - - - - - - Prioritet - - - - - - Synlighed - - - - Kun mig - - - - Alle - - - - - - - Noter - - - - - - Annuller - Gem opgave - - - - - - - - - - Skærm låst - Indtast PIN for at fortsætte - - Låst kl. 14:32 - - - - - - - - - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - - 0 - - - - - - Indtast 4 cifre for at låse op - - - - - - - - -