PageSourceSearch

https://paideia-lernwelt.web.app/assets/InvitationManagement-4ML5Cj9U.js

js paideia-lernwelt.web.app collected 2026-10-03 12:34:14 UTC 8,673 bytes, 1 lines download raw bytes

1import{r as s,j as e}from"./react-C_oDh_9Q.js";import{n as G,aZ as v,bm as H,b4 as Z,b5 as R,e6 as _,e7 as q,e8 as J}from"./index-CXZ0FFhB.js";import"./_commonjsHelpers-CqkleIqs.js";import"./vorlade-helfer-BXl3LOEh.js";import"./firebase-CZ1-EOTx.js";import"./medien-freigaben-DbcdxLi9.js";function ne(){const{konto:o,kinder:E,lokal:m}=G(),A=o?.rolle==="leitung",B=o?.rolle==="leitung",[t,C]=s.useState("schueler"),[S,W]=s.useState(""),[z,p]=s.useState(60),[N,f]=s.useState(25),[x,L]=s.useState([]),[c,y]=s.useState("schule"),[b,j]=s.useState(1),[k,K]=s.useState([]),i=c==="premium-nachmittag",[a,w]=s.useState(null),[D,u]=s.useState(""),[M,d]=s.useState(!1),h=async()=>{if(!m)try{K(await _())}catch(n){u(n instanceof Error?n.message:"Die Einladungen konnten nicht geladen werden.")}};s.useEffect(()=>{h()},[m]);const P=n=>{C(n),L([]);const l=n!=="schueler";l&&y("schule"),p(l?10080:60),f(l?1:25),l&&j(1)},F=async n=>{n.preventDefault(),u(""),w(null);const l=t==="mentor"||t==="eltern";if(l&&x.length===0){u("Wähle mindestens ein Lernprofil, das mit diesem Zugang verknüpft wird.");return}d(!0);try{const r=await q({rolle:t,bezeichnung:S,gueltigMinuten:z,maxVerwendungen:N,zugangskontext:c,altersstufe:t==="schueler"?b:void 0,kindIds:l?x:[]});w({...r,link:`${window.location.origin}/einladung#${r.token}`}),await h()}catch(r){u(r instanceof Error?r.message:"Die Einladung konnte nicht erstellt werden.")}finally{d(!1)}},T=async n=>{d(!0),u("");try{await J(n),a?.id===n&&w(null),await h()}catch(l){u(l instanceof Error?l.message:"Die Einladung konnte nicht widerrufen werden.")}finally{d(!1)}};return e.jsxs("div",{className:"adult-workspace invitation-management",children:[e.jsxs(v,{title:t==="schueler"?"Neues Lernprofil anlegen":"Einladungslink erstellen",eyebrow:"Sicherer Startlink",tone:"petrol",children:[e.jsx(H,{label:"Sicherer Link",value:t!=="schueler"?"Erwachsenenlink: höchstens 7 Tage, genau eine Person":i?"Kurslink: höchstens 7 Tage, bis zu 12 Teilnehmende":"Kinderlink: höchstens 60 Minuten, bis zu 40 Personen",note:t==="schueler"?i?"Beim Einlösen entsteht ein Zugang für den Premium-Nachmittag. Die Teilnehmenden arbeiten im Lernraum der Schule, gehören aber nicht zur Schule. Es wird keine KI-, Aufnahme- oder andere Einwilligung automatisch erteilt.":`Beim Einlösen entsteht ein neues Lernprofil in genau dieser Schule.${o?.rolle==="mentor"||o?.rolle==="eltern"?" Es wird automatisch deinem Zugang zugeordnet.":""} Es wird keine KI-, Aufnahme- oder andere Einwilligung automatisch erteilt.`:"Der Link kann jederzeit widerrufen werden. Rolle, Schule, zugeordnete Lernprofile und Nutzungslimit lassen sich von der eingeladenen Person nicht ändern.",tone:"gold"}),e.jsxs("form",{className:"invitation-create-form",onSubmit:F,children:[e.jsxs("label",{children:["Für wen?",e.jsxs("select",{className:"eingabe",value:t,onChange:n=>P(n.target.value),children:[e.jsx("option",{value:"schueler",children:"Neues Lernprofil"}),A?e.jsxs(e.Fragment,{children:[e.jsx("option",{value:"mentor",children:"Mentor"}),e.jsx("option",{value:"eltern",children:"Elternteil"}),e.jsx("option",{value:"leitung",children:"Schulleitung"})]}):null]})]}),e.jsxs("label",{children:["Bezeichnung",e.jsx("input",{className:"eingabe",value:S,onChange:n=>W(n.target.value),maxLength:80,placeholder:t==="schueler"?"zum Beispiel Gruppe Blau":"zum Beispiel neuer Mentor"})]}),t==="schueler"?e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:["Zugangsart",e.jsxs("select",{className:"eingabe",value:c,onChange:n=>{const l=n.target.value;y(l),(l==="matura-vorbereitung"||l==="premium-nachmittag")&&b<9&&j(l==="premium-nachmittag"?10:12),p(l==="premium-nachmittag"?10080:60),f(l==="premium-nachmittag"?12:25)},children:[e.jsx("option",{value:"schule",children:"Schulzugang"}),e.jsx("option",{value:"probezeit",children:"30 Tage kostenlos ausprobieren"}),e.jsx("option",{value:"matura-vorbereitung",children:"Matura-Vorbereitung außerhalb der Schule"}),B?e.jsx("option",{value:"premium-nachmittag",children:"Premium-Nachmittag (externe Teilnehmende)"}):null]})]}),i?e.jsx("p",{className:"adult-footnote",children:"Teilnehmende sind Mitglieder des Kurses, keine Schülerinnen und Schüler der Schule. Sie bekommen kein Zeugnis und keinen Schulplatz. Vertragspartner sind die Erziehungsberechtigten. Ein Kurslink gilt eine Woche und legt höchstens zwölf Zugänge an."}):null,e.jsxs("label",{children:["Schulstufe",e.jsx("select",{className:"eingabe",value:b,onChange:n=>j(Number(n.target.value)),children:Array.from({length:13},(n,l)=>l+1).filter(n=>c!=="matura-vorbereitung"&&c!=="premium-nachmittag"||n>=9).map(n=>e.jsxs("option",{value:n,children:[n,". Schulstufe"]},n))})]})]}):null,e.jsxs("label",{children:["Gültig",e.jsx("select",{className:"eingabe",value:z,onChange:n=>p(Number(n.target.value)),children:t==="schueler"&&!i?e.jsxs(e.Fragment,{children:[e.jsx("option",{value:30,children:"30 Minuten"}),e.jsx("option",{value:60,children:"1 Stunde"})]}):e.jsxs(e.Fragment,{children:[e.jsx("option",{value:1440,children:"1 Tag"}),e.jsx("option",{value:10080,children:"1 Woche"})]})})]}),t==="schueler"?e.jsxs("label",{children:[i?"Wie viele Teilnehmende?":"Wie viele Konten?",e.jsx("input",{className:"eingabe",type:"number",min:1,max:i?12:40,value:N,onChange:n=>
1f(Number(n.target.value))})]}):null,t==="mentor"||t==="eltern"?e.jsxs("fieldset",{className:"invitation-school-target invitation-learning-target",children:[e.jsx("legend",{children:"Lernprofile ausdrücklich zuordnen"}),E.length===0?e.jsx("p",{children:"Es sind noch keine aktiven Lernprofile auswählbar."}):e.jsx("div",{className:"invitation-school-modes invitation-learning-options",children:E.map(n=>e.jsxs("label",{children:[e.jsx("input",{type:"checkbox",checked:x.includes(n.uid),onChange:l=>{u(""),L(r=>l.target.checked?[...r,n.uid]:r.filter(g=>g!==n.uid))}}),n.anzeigename]},n.uid))}),e.jsx("small",{children:"Der neue Zugang sieht ausschließlich die hier gewählten Lernprofile. Es wird nichts automatisch ausgewählt."})]}):null,t==="schueler"?e.jsxs("p",{className:"adult-footnote",children:[e.jsx("strong",{children:"Nach dem Einlösen:"})," ",i?"Der Zugang ist aktiv und im Lernraum der Schule sichtbar, ohne Schulzugehörigkeit.":"Das Lernprofil ist aktiv und bei Mentor- oder Elternzugängen automatisch zugeordnet."," Einwilligungen bleiben getrennt und zunächst aus."]}):null,e.jsx(Z,{children:e.jsx("button",{className:"taste",type:"submit",disabled:m||M,children:M?"Wird erstellt…":t==="schueler"?"Startlink für Lernprofil erstellen":"Einladungslink erstellen"})})]}),D?e.jsx("p",{className:"feedback-falsch",role:"alert",children:D}):null]}),a?e.jsxs(v,{title:a.rolle==="schueler"?"Startlink für das neue Lernprofil":"Link ist bereit",eyebrow:"Nur jetzt vollständig sichtbar",tone:"gold",children:[e.jsx("p",{className:"invitation-link",children:a.link}),a.rolle==="schueler"?e.jsx("p",{children:"Die eingeladene Person legt beim Einlösen das Lernprofil an. Bei Mentor- oder Elternzugängen wird es danach automatisch diesem Konto zugeordnet. Es wird keine Einwilligung automatisch aktiviert."}):null,e.jsxs(Z,{children:[e.jsx("button",{className:"taste",type:"button",onClick:()=>{navigator.clipboard.writeText(a.link)},children:"Link kopieren"}),e.jsx("button",{className:"leise-taste",type:"button",onClick:()=>{T(a.id)},children:"Sofort widerrufen"})]})]}):null,e.jsx(v,{title:"Ausgegebene Einladungen",eyebrow:`${k.length} Links`,action:e.jsx("button",{className:"leise-taste",type:"button",onClick:()=>{h()},children:"Aktualisieren"}),children:k.length===0?e.jsx(R,{title:"Noch kein Link ausgegeben",children:e.jsx("p",{children:"Erstellte Links erscheinen hier ohne ihr geheimes Token."})}):e.jsx("div",{className:"invitation-list",children:k.map(n=>{const l=Date.parse(n.ablaufAm)<=Date.now(),r=!n.zuordnungVollstaendig,g=!n.widerrufen&&!l&&n.verwendungen<n.maxVerwendungen,V=g&&!r,$=n.rolle==="mentor"||n.rolle==="eltern"?` · ${n.anzahlLernprofile} ${n.anzahlLernprofile===1?"Lernprofil":"Lernprofile"}`:"",I=r&&!n.widerrufen?" · Zuordnung fehlt – widerrufen oder ersetzen":"";return e.jsxs("article",{children:[e.jsxs("div",{children:[e.jsx("strong",{children:n.bezeichnung||n.rolle}),e.jsxs("small",{children:[n.rolle," · ",n.zugangskontext,n.altersstufe?` · ${n.altersstufe}. Schulstufe`:"",$," · ",n.verwendungen,"/",n.maxVerwendungen," verwendet · bis ",new Date(n.ablaufAm).toLocaleString("de-AT"),I]})]}),e.jsx("span",{children:V?"aktiv":n.widerrufen?"widerrufen":r?"Zuordnung fehlt":"beendet"}),g?e.jsx("button",{className:"leise-taste",type:"button",onClick:()=>{T(n.id)},children:"Widerrufen"}):null]},n.id)})})})]})}export{ne as InvitationManagement};

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.