PageSourceSearch

https://scribamed.de/assets/admin.analytics-CJLwlpOm.js

js scribamed.de collected 2026-10-04 03:15:12 UTC 6,999 bytes, 1 lines download raw bytes

1import{G as K,H as V,J as H,K as R,b as D,d as F,e as _,r,t as z,j as e,B as Q}from"./main-Ca248qiB.js";import{S as Z}from"./site-header-C9Ct9WQt.js";import{C as m}from"./card-BDKI16z2.js";import{T as f,a as p,b as c,c as n,d as b,e as t,A as G}from"./table-CFdGC-O6.js";import"./index-Dfc1eSla.js";import"./index-DM9hjf10.js";import"./index-C_aRHdzi.js";import"./use-encryption-CprCbr3Y.js";import"./scribamed-logo-transparent.png.asset-NL05yDnz.js";const L=K({method:"GET"}).middleware([V,H]).handler(R("8f702de5407d41d1eddb00ab5dda6065b7c3441e8f1b927c758fef0e74e0863c")),U=[{days:7,label:"7 Tage"},{days:30,label:"30 Tage"},{days:90,label:"90 Tage"},{days:365,label:"12 Monate"}];function q(l){if(!l)return"–";const i=Math.round(l/1e3);if(i<60)return`${i}s`;const o=Math.floor(i/60),u=i%60;return`${o}:${u.toString().padStart(2,"0")} min`}function te(){const{user:l,loading:i}=D(),o=F(),u=_(L),[d,T]=r.useState(null),[N,M]=r.useState(null),[w,B]=r.useState(null),[C,$]=r.useState(!1),[h,y]=r.useState(!1),[g,E]=r.useState(30),[x,j]=r.useState("views");r.useEffect(()=>{!i&&!l&&o({to:"/auth"})},[i,l,o]);const S=r.useCallback(async s=>{y(!0);try{const a=await u({data:{days:s}});if(a.forbidden){$(!0);return}T(a.stats),M(a.sources),B(a.campaigns)}catch(a){console.error("analytics load failed",a),z.error(a instanceof Error?a.message:"Fehler beim Laden")}finally{y(!1)}},[u]);r.useEffect(()=>{!i&&l&&S(g)},[i,l,g,S]);const k=r.useMemo(()=>d?[...d].sort((s,a)=>a[x]-s[x]):[],[d,x]),A=r.useMemo(()=>d?d.reduce((s,a)=>({views:s.views+a.views,visits:s.visits+a.visits}),{views:0,visits:0}):{views:0,visits:0},[d]);return e.jsxs("div",{className:"min-h-screen bg-background text-foreground",children:[e.jsx(Z,{}),e.jsxs("main",{className:"mx-auto max-w-5xl px-6 py-10",children:[e.jsxs("div",{className:"flex flex-wrap items-end justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-semibold tracking-tight",children:"Ratgeber-Analytics"}),e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Anonyme, cookielose Auswertung pro Artikel – Views, Besuche und Verweildauer."})]}),e.jsx("div",{className:"flex gap-1 rounded-lg border border-border/60 p-1",children:U.map(s=>e.jsx(Q,{size:"sm",variant:g===s.days?"default":"ghost",onClick:()=>E(s.days),children:s.label},s.days))})]}),C?e.jsx(m,{className:"mt-8 p-6 text-sm text-muted-foreground",children:"Kein Zugriff – diese Seite ist Administrator:innen vorbehalten."}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mt-6 grid grid-cols-2 gap-4 sm:grid-cols-3",children:[e.jsxs(m,{className:"p-4",children:[e.jsx("div",{className:"text-xs uppercase tracking-wide text-muted-foreground",children:"Artikel mit Traffic"}),e.jsx("div",{className:"mt-1 text-2xl font-semibold",children:d?.length??0})]}),e.jsxs(m,{className:"p-4",children:[e.jsx("div",{className:"text-xs uppercase tracking-wide text-muted-foreground",children:"Views gesamt"}),e.jsx("div",{className:"mt-1 text-2xl font-semibold",children:A.views})]}),e.jsxs(m,{className:"p-4",children:[e.jsx("div",{className:"text-xs uppercase tracking-wide text-muted-foreground",children:"Besuche gesamt"}),e.jsx("div",{className:"mt-1 text-2xl font-semibold",children:A.visits})]})]}),e.jsx(m,{className:"mt-6 overflow-hidden",children:e.jsxs(f,{children:[e.jsx(p,{children:e.jsxs(c,{children:[e.jsx(n,{children:"Artikel"}),e.jsx(v,{label:"Views",active:x==="views",onClick:()=>j("views")}),e.jsx(v,{label:"Besuche",active:x==="visits",onClick:()=>j("visits")}),e.jsx(v,{label:"Ø Verweildauer",active:x==="avgTimeMs",onClick:()=>j("avgTimeMs")})]})}),e.jsxs(b,{children:[k.map(s=>e.jsxs(c,{children:[e.jsxs(t,{className:"max-w-md",children:[e.jsx("a",{href:s.path,target:"_blank",rel:"noreferrer",className:"font-medium hover:text-primary transition-colors",children:s.title}),e.jsx("div",{className:"text-xs text-muted-foreground",children:s.path})]}),e.jsx(t,{className:"text-right tabular-nums",children:s.views}),e.jsx(t,{className:"text-right tabular-nums",children:s.visits}),e.jsx(t,{className:"text-right tabular-nums",children:q(s.avgTimeMs)})]},s.path)),!h&&k.length===0&&e.jsx(c,{children:e.jsx(t,{colSpan:4,className:"py-8 text-center text-sm text-muted-foreground",children:"Noch keine Daten im gewählten Zeitraum."})})]})]})}),e.jsx("h2",{className:"mt-10 text-lg font-semibold tracking-tight",children:"Traffic-Quellen"}),e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Woher die Leser:innen kommen – Suchmaschinen, soziale Netzwerke und direkte Aufrufe."}),e.jsx(m,{className:"mt-4 overflow-hidden",children:e.jsxs(f,{children:[e.jsx(p,{children:e.jsxs(c,{children:[e.jsx(n,{children:"Quelle"}),e.jsx(n,{className:"text-right",children:"Views"}),e.jsx(n,{className:"text-right",children:"Besuche"})]})}),e.jsxs(b,{children:[(N??[]).map(s=>e.jsxs(c,{children:[e.jsx(t,{className:"font-medium",children:s.source}),e.jsx(t,{className:"text-right tabular-nums",children:s.views}),e.jsx(t,{className:"text-right tabular-nums",children:s.visits})]},s.source)),!h&&(N?.length??0)===0&&e.jsx(c,{children:e.jsx(t,{colSpan:3,className:"py-8 text-center text-sm text-muted-foreground",children:"Noch keine Daten im gewählten Zeitraum."})})]})]})}),e.jsx("h2",{className:"mt-10 text-lg font-semibold tracking-tight",children:"Kampagnen pro Beitrag"}),e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"UTM-getaggte Aufrufe je Artikel – so siehst du, welcher Beitrag über welche Quelle, welches Medium und welche Kampagne läuft."}),e.jsx(m,{className:"mt-4 overflow-hidden",children:e.jsxs(f,{children:[e.jsx(p,{children:e.jsxs(c,{children:[e.jsx(n,{children:"Beitrag"}),e.jsx(n,{children:"Quelle"}),e.jsx(n,{children:"Medium"}),e.jsx(n,{children:"Kampagne"}),e.jsx(n,{className:"text-right",children:"Views"}),e.jsx(n,{className:"text-right",children:"Besuche"})]})}),e.jsxs(b,{children:[(w??[]).map(s=>e.jsxs(c,{children:[e.jsx(t,{className:"max-w-xs",children:e.jsx("a",{href:s.path,target:"_blank",rel:"noreferrer",className:"font-medium hover:text-primary transition-colors",children:s.title})}),e.jsx(t,{children:s.utmSource}),e.jsx(t,{children:s.utmMedium}),e.jsx(t,{children:s.utmCampaign}),e.jsx(t,{className:"text-right tabular-nums",children:s.views}),e.jsx(t,{className:"text-right tabular-nums",children:s.visits})]},`${s.path}|${s.utmSource}|${s.utmMedium}|${s.utmCampaign}`)),!h&&(w?.length??0)===0&&e.jsx(c,{children:e.jsxs(t,{colSpan:6,className:"py-8 text-center text-sm text-muted-foreground",children:["Noch keine UTM-getaggten Aufrufe im gewählten Zeitraum. Hänge z. B. ",e.jsx("code",{children:"?utm_source=newsletter&utm_medium=email&utm_campaign=launch"})," an deine Links an."]})})]})]})})]})]})]})}function v({label:l,active:i,onClick:o}){return e.jsx(n,{className:"text-right",children:e.jsxs("button",{onClick:o,className:`inline-flex items-center gap-1 ${i?"text-foreground":""}`,children:[l,e.jsx(G,{className:"h-3 w-3"})]})})}export{te as component};

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.