1import{j as e}from"./ui-vendor-B2I4nM9Z.js";import{t as x,m as l,ad as D,B as o,d as E,e as V,y as F,f as I,N as U,O as q,P as G,Q as H,R as K,h as O,z as j,ae as R}from"./index-BGDGqshm.js";import{T as _,a as Q,b as k,c as r,d as Z,e as d}from"./table-CeGUW_yP.js";import{r as h,L as f}from"./router-Ba8OCSBX.js";import{i as v}from"./courseCacheInvalidation-BJR7ARrg.js";import{P as y,aN as J,ap as W}from"./icons-UxduCdz6.js";import"./react-vendor-CNU2NrDB.js";import"./trpc-BZDg-T_9.js";import"./utils-CSDWVWFi.js";function le(){const A=x.useUtils(),[t,m]=h.useState([]),[p,b]=h.useState(""),{data:c,isLoading:S}=x.admin.courses.getAll.useQuery(),C=x.admin.courses.delete.useMutation({onSuccess:async(s,a)=>{const n=c?.find(i=>i.id===a.id);l.success("Kurs erfolgreich gelöscht"),await v(A,{courseId:a.id,slugs:[n?.slug]})},onError:s=>{l.error(`Fehler: ${s.message}`)}}),N=x.admin.courses.bulkDelete.useMutation({onSuccess:async(s,a)=>{const n=c?.filter(i=>a.ids.includes(i.id)).map(i=>i.slug);l.success(`${s.count} Kurse erfolgreich gelöscht`),m([]),await v(A,{slugs:n})},onError:s=>{l.error(`Fehler: ${s.message}`)}}),w=x.admin.courses.bulkUpdateStatus.useMutation({onSuccess:async(s,a)=>{const n=c?.filter(g=>a.ids.includes(g.id)).map(g=>g.slug),i={upcoming:"Geplant",active:"Livekurs",completed:"Aufzeichnungskurs"};l.success(`Status "${i[s.status]||s.status}" für ${s.count} Kurse aktualisiert`),m([]),b(""),await v(A,{slugs:n})},onError:s=>{l.error(`Fehler: ${s.message}`)}}),u=h.useMemo(()=>c||[],[c]),B=u.length>0&&t.length===u.length;h.useEffect(()=>{if(!u.length){m([]);return}const s=new Set(u.map(a=>a.id));m(a=>a.filter(n=>s.has(n)))},[u]);const T=async(s,a)=>{confirm(`Möchten Sie den Kurs "${a}" wirklich löschen?`)&&await C.mutateAsync({id:s})},L=async()=>{if(t.length===0){l.error("Bitte zuerst mindestens einen Kurs auswählen");return}confirm(`${t.length} ausgewählte Kurse wirklich löschen?`)&&await N.mutateAsync({ids:t})},M=async()=>{if(t.length===0){l.error("Bitte zuerst mindestens einen Kurs auswählen");return}if(!p){l.error("Bitte zuerst einen Zielstatus wählen");return}await w.mutateAsync({ids:t,status:p})},$=h.useMemo(()=>t.length===0?"":`${t.length} Kurs${t.length===1?"":"e"} ausgewählt`,[t.length]),z=s=>({arabisch:"bg-blue-500",aqida:"bg-green-500",fiqh:"bg-purple-500",charakter:"bg-orange-500"})[s]||"bg-gray-500",P=s=>{const a={upcoming:"bg-yellow-500",active:"bg-green-500",completed:"bg-gray-500"},n={upcoming:"Geplant",active:"Livekurs",completed:"Aufzeichnungskurs"};return{color:a[s]||"bg-gray-500",label:n[s]||s}};return e.jsx(D,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:162",children:e.jsxs("div",{"data-loc":"client/src/pages/admin/AdminKurse.tsx:163",className:"space-y-6",children:[e.jsxs("div",{"data-loc":"client/src/pages/admin/AdminKurse.tsx:164",className:"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{"data-loc":"client/src/pages/admin/AdminKurse.tsx:165",children:[e.jsx("h1",{"data-loc":"client/src/pages/admin/AdminKurse.tsx:166",className:"text-3xl font-bold",children:"Kursverwaltung"}),e.jsx("p",{"data-loc":"client/src/pages/admin/AdminKurse.tsx:167",className:"text-muted-foreground",children:"Verwalten Sie alle Kurse"})]}),e.jsx(f,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:169",href:"/admin/kurse/neu",children:e.jsxs(o,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:170",className:"gap-2",children:[e.jsx(y,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:171",className:"h-4 w-4"}),"Neuer Kurs"]})})]}),e.jsxs(E,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:177",children:[e.jsx(V,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:178",children:e.jsxs("div",{"data-loc":"client/src/pages/admin/AdminKurse.tsx:179",className:"flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between",children:[e.jsxs("div",{"data-loc":"client/src/pages/admin/AdminKurse.tsx:180",children:[e.jsx(F,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:181",children:"Alle Kurse"}),e.jsxs(I,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:182",children:[c?.length||0," Kurse insgesamt"]})]}),t.length>0&&e.jsxs("div",{"data-loc":"client/src/pages/admin/AdminKurse.tsx:187",className:"flex flex-col gap-3 rounded-lg border border-border/70 bg-muted/30 p-3 lg:min-w-[360px]",children:[e.jsx("div",{"data-loc":"client/src/pages/admin/AdminKurse.tsx:188",className:"text-sm font-medium",children:$}),e.jsxs("div",{"data-loc":"client/src/pages/admin/AdminKurse.tsx:189",className:"flex flex-col gap-2 sm:flex-row",children:[e.jsxs(U,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:190",value:p||"none",onValueChange:s=>b(s==="none"?"":s),children:[e.jsx(q,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:191",className:"sm:w-[180px]",children:e.jsx(G,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:192",placeholder:"Status wählen"})}),e.jsxs(H,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:194",children:[e.jsx(K,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:195",value:"none",children:"Status wählen"}),e.jsx(K,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:196",value:"upcoming",children:"Geplant"}),e.jsx(K,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:197",value:"active",children:"Livekurs"}),e.jsx(K,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:198",value:"completed",children:"Aufzeichnungskurs"})]})]}),e.jsx(o,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:201",variant:"outline",onClick:M,disabled:!p||w.isPending,children:"Status anwenden"}),e.jsx(o,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:208",variant:"outline",className:"text-destructive hover:text-destructive",onClick:L,disabled:N.isPending,children:"Ausgewählte löschen"})]})]})]})}),e.jsx(O,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:221",children:S?e.jsx("div",{"data-loc":"client/src/pages/admin/AdminKurse.tsx:223",className:"space-y-2",children:[...Array(5)].map((s,a)=>e.jsx("div",{"data-loc":"client/src/pages/admin/AdminKurse.tsx:225",className:"h-16 bg-muted animate-pulse rounded"},a))}):c&&c.length>0?e.jsx("div",{"data-loc":"client/src/pages/admin/AdminKurse.tsx:229",className:"overflow-x-auto",children:e.jsxs(_,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:230",children:[e.jsx(Q,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:231",children:e.jsxs(k,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:232",children:[e.jsx(r,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:233",className:"w-12",children:e.jsx("input",{"data-loc":"client/src/pages/admin/AdminKurse.tsx:234",type:"checkbox",checked:B,onChange:s=>{s.target.checked?m(u.map(a=>a.id)):m([])},className:"rounded border-gray-300"})}),e.jsx(r,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:247",children:"Titel"}),e.jsx(r,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:248",children:"Kategorie"}),e.jsx(r,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:249",children:"Level"}),e.jsx(r,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:250",children:"Format"}),e.jsx(r,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:251",children:"Start"}),e.jsx(r,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:252",children:"Preis"}),e.jsx(r,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:253",children:"Status"}),e.jsx(r,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:254",className:"text-right",children:"Aktionen"})]})}),e.jsx(Z,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:257",children:c.map(s=>{const a=P(s.status);return e.jsxs(k,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:261",children:[e.jsx(d,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:262",children:e.jsx("input",{"data-loc":"client/src/pages/admin/AdminKurse.tsx:263",type:"checkbox",checked:t.includes(s.id
1),onChange:n=>{n.target.checked?m(i=>[...i,s.id]):m(i=>i.filter(g=>g!==s.id))},className:"rounded border-gray-300"})}),e.jsx(d,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:276",className:"font-medium",children:s.title}),e.jsx(d,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:277",children:e.jsx(j,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:278",className:z(s.category),children:s.category})}),e.jsx(d,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:282",children:e.jsx(j,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:283",variant:"outline",children:s.level==="anfaenger"?"Anfänger":"Fortgeschritten"})}),e.jsx(d,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:287",className:"text-sm",children:s.format==="live"?"Live":s.format==="live_aufnahmen"?"Live + Aufnahmen":"On-Demand"}),e.jsx(d,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:294",className:"text-sm",children:R(s)||"-"}),e.jsxs(d,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:297",children:[s.pricePerMonth,"â¬",s.isOneTimePayment?" einmalig":"/Monat"]}),e.jsx(d,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:301",children:e.jsx(j,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:302",className:a.color,children:a.label})}),e.jsx(d,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:304",className:"text-right",children:e.jsxs("div",{"data-loc":"client/src/pages/admin/AdminKurse.tsx:305",className:"flex justify-end gap-2",children:[e.jsx(f,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:306",href:`/admin/kurse/${s.id}`,children:e.jsx(o,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:307",variant:"ghost",size:"sm",children:e.jsx(J,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:308",className:"h-4 w-4"})})}),e.jsx(o,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:311",variant:"ghost",size:"sm",onClick:()=>T(s.id,s.title),children:e.jsx(W,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:316",className:"h-4 w-4 text-destructive"})})]})})]},s.id)})})]})}):e.jsxs("div",{"data-loc":"client/src/pages/admin/AdminKurse.tsx:327",className:"text-center py-12",children:[e.jsx("p",{"data-loc":"client/src/pages/admin/AdminKurse.tsx:328",className:"text-muted-foreground",children:"Noch keine Kurse vorhanden"}),e.jsx(f,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:329",href:"/admin/kurse/neu",children:e.jsxs(o,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:330",className:"mt-4 gap-2",children:[e.jsx(y,{"data-loc":"client/src/pages/admin/AdminKurse.tsx:331",className:"h-4 w-4"}),"Ersten Kurs erstellen"]})})]})})]})]})})}export{le as default};
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.