1import{y as F,j as e,r as i,s as A,L as B}from"./index-DeJ875KO.js";const o="w-full px-3 py-2 rounded-lg border border-zinc-300 dark:border-zinc-600 bg-white dark:bg-zinc-900 text-[15px] text-zinc-900 dark:text-zinc-100 focus:outline-none focus:ring-2 focus:ring-red-500/40",x="block text-sm font-semibold text-zinc-700 dark:text-zinc-300 mb-1.5",C=[{key:"entwurf",label:"Eingegangen"},{key:"umfrage",label:"In Prüfung"},{key:"planung",label:"Zugesagt"},{key:"durchfuehrung",label:"Abgeschlossen"}],E=r=>r?new Date(`${r.slice(0,10)}T12:00:00`).toLocaleDateString("de-CH"):"";async function U(r,n){try{const a=await fetch("/api/eventplan-upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:r,aktion:"url",fileName:n.name,contentType:n.type,size:n.size})}),c=await a.json().catch(()=>({}));if(!a.ok)return{ok:!1,fehler:c.error??"Upload-Adresse fehlgeschlagen."};const{error:g}=await A.storage.from("eventplan-docs").uploadToSignedUrl(c.path,c.uploadToken,n,{contentType:n.type||void 0});if(g)return{ok:!1,fehler:"Die Datei konnte nicht übertragen werden."};const p=await fetch("/api/eventplan-upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:r,aktion:"fertig",path:c.path,fileName:n.name,contentType:n.type})}),l=await p.json().catch(()=>({}));return p.ok?{ok:!0}:{ok:!1,fehler:l.error??"Eintragen fehlgeschlagen."}}catch{return{ok:!1,fehler:"Die Datei konnte nicht übertragen werden."}}}function O(){const{token:r}=F();return r?e.jsx(_,{token:r}):e.jsx(T,{})}function T(){const[r,n]=i.useState([]),[a,c]=i.useState({titel:"",datum:"",zeit:"",ort:"",organisation:"",beschreibung:"",webseite:"",social:"",name:"",email:"",themen:""}),[g,p]=i.useState(!1),[l,h]=i.useState([]),[j,u]=i.useState(""),[s,b]=i.useState(!1),[v,y]=i.useState(null),[k,V]=i.useState(null);i.useEffect(()=>{A.from("event_richtlinien").select("id, titel, beschreibung, art").eq("aktiv",!0).in("gilt_fuer",["antrag","beide"]).order("sort_order").then(({data:t})=>n(t??[]))},[]);const[z,W]=i.useState([]),d=t=>m=>c(f=>({...f,[t]:m.target.value}));async function M(t){t.preventDefault(),b(!0),y(null);const m=await fetch("/api/eventplan-antrag",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...a,kommerziell:g,pruefcode:j})}),f=await m.json().catch(()=>({}));if(!m.ok){b(!1),y(f.error??"Das hat nicht geklappt. Bitte später nochmals versuchen.");return}const w=[];for(const N of l)(await U(f.token,N)).ok||w.push(N.name);b(!1),W(w),V(f.token??null)}if(k!==null)return e.jsxs("div",{className:"max-w-2xl mx-auto px-4 py-16",children:[e.jsx("h1",{className:"text-3xl font-bold text-zinc-900 dark:text-white",children:"Antrag eingegangen"}),e.jsx("p",{className:"mt-4 text-zinc-600 dark:text-zinc-300 leading-relaxed",children:"Vielen Dank. Der Vorstand schaut deinen Antrag an und meldet sich bei dir. Wir haben dir eine Bestätigung geschickt; darin ist auch der Link, über den du jederzeit den Stand siehst."}),k&&e.jsxs(e.Fragment,{children:[l.length>0&&z.length===0&&e.jsx("p",{className:"mt-4 text-[14.5px] text-green-700 dark:text-green-400",children:l.length===1?"Deine Unterlage ist bei uns.":`Deine ${l.length} Unterlagen sind bei uns.`}),z.length>0&&e.jsxs("p",{className:"mt-4 text-[14.5px] text-amber-700 dark:text-amber-400",children:["Nicht übermittelt: ",z.join(", "),". Bitte unten nochmals anhÃ
1¤ngen."]}),e.jsxs("div",{className:"mt-8 rounded-xl border-2 border-red-200 dark:border-red-900/60 bg-red-50/50 dark:bg-red-950/20 p-5",children:[e.jsx("h2",{className:"text-lg font-bold text-zinc-900 dark:text-white",children:l.length>0&&z.length===0?"Weitere Unterlagen anhängen":"Jetzt noch die Unterlagen"}),e.jsx("p",{className:"mt-1 text-[14.5px] text-zinc-600 dark:text-zinc-300",children:"Ein Veranstaltungskonzept hilft dem Vorstand beim Entscheid. Du kannst hier weitere Dateien anhängen, auch später über den Link in der Bestätigungsmail."}),e.jsx(P,{token:k})]}),e.jsx(B,{to:`/quartier/veranstaltungen/unterstuetzung/${k}`,className:"inline-block mt-6 text-red-600 dark:text-red-400 font-semibold hover:underline",children:"Zum Stand meines Antrags"})]})]});const D=r.filter(t=>t.art==="ausschluss"),S=r.filter(t=>t.art==="kriterium");return e.jsxs("div",{className:"max-w-2xl mx-auto px-4 py-12",children:[e.jsx("h1",{className:"text-3xl font-bold text-zinc-900 dark:text-white",children:"Unterstützungsschreiben beantragen"}),e.jsx("p",{className:"mt-3 text-zinc-600 dark:text-zinc-300 leading-relaxed",children:"Wer im Quartier etwas auf die Beine stellt, braucht für die Bewilligung manchmal ein Schreiben, das den Nutzen für das Quartier bestätigt. Passt dein Anlass zum Kreis 4, stellen wir es gerne aus. Ãber jeden Antrag entscheidet der Vorstand."}),r.length>0&&e.jsxs("div",{className:"mt-8 rounded-xl border border-zinc-200 dark:border-zinc-700 p-5 bg-zinc-50 dark:bg-zinc-900/60",children:[e.jsx("h2",{className:"text-lg font-bold text-zinc-900 dark:text-white",children:"Was wir unterstützen"}),S.length>0&&e.jsx("ul",{className:"mt-3 space-y-2",children:S.map(t=>e.jsxs("li",{className:"text-[14.5px] text-zinc-700 dark:text-zinc-300",children:[e.jsx("span",{className:"text-green-700 dark:text-green-400 font-semibold",children:"Ja"})," · ",e.jsx("span",{className:"font-medium",children:t.titel}),t.beschreibung&&e.jsxs("span",{className:"text-zinc-500 dark:text-zinc-400",children:[" â ",t.beschreibung]})]},t.id))}),D.length>0&&e.jsx("ul",{className:"mt-4 space-y-2",children:D.map(t=>e.jsxs("li",{className:"text-[14.5px] text-zinc-700 dark:text-zinc-300",children:[e.jsx("span",{className:"text-red-600 dark:text-red-400 font-semibold",children:"Nein"})," · ",e.jsx("span",{className:"font-medium",children:t.titel}),t.beschreibung&&e.jsxs("span",{className:"text-zinc-500 dark:text-zinc-400",children:[" â ",t.beschreibung]})]},t.id))})]}),e.jsxs("form",{onSubmit:M,className:"mt-8 space-y-5",children:[e.jsx("h2",{className:"text-lg font-bold text-zinc-900 dark:text-white",children:"Die Veranstaltung"}),e.jsxs("div",{children:[e.jsx("label",{className:x,children:"Titel der Veranstaltung *"}),e.jsx("input",{required:!0,className:o,value:a.titel,onChange:d("titel")})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:x,children:"Datum"}),e.jsx("input",{type:"date",className:o,value:a.datum,onChange:d("datum")})]}),e.jsxs("div",{children:[e.jsx("label",{className:x,children:"Zeit"}),e.jsx("input",{className:o,value:a.zeit,onChange:d("zeit"),placeholder:"z. B. 14 bis 20 Uhr"})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:x,children:"Ort"}),e.jsx("input",{className:o,value:a.ort,onChange:d("ort"),placeholder:"z. B. Bullingerplatz"})]}),e.jsxs("div",{children:[e.jsx("label",{className:x,children:"Worum geht es? *"}),e.jsx("textarea",{required:!0,rows:5,className:o,value:a.beschreibung,onChange:d("beschreibung"),placeholder:"Beschreibe die Veranstaltung: was ist geplant, für wen, und was hat das Quartier davon?"})]}),e.jsx("h2",{className:"text-lg font-bold text-zinc-900 dark:text-white pt-2",children:"Ein paar Rückfragen"}),e.jsxs("label",{className:"flex items-start gap-2.5 text-[14.5px] text-zinc-700 dark:text-zinc-300",children:[e.jsx("input",{type:"checkbox",className:"mt-1",checked:g,onChange:t=>p(t.target.checked)}),e.jsxs("span",{children:["Die Veranstaltung verfolgt kommerzielle Zwecke (Verkauf, Werbung, Gewinnabsicht).",e.jsx("span",{className:"block text-zinc-500 dark:text-zinc-400",children:"Das schliesst eine Unterstützung nicht aus, wir schauen es aber genauer an."})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:x,children:"Politische, religiöse oder ähnliche Bezüge"}),e.jsx("textarea",{rows:2,className:o,value:a.themen,onChange:d("themen"),placeholder:"Falls es solche Bezüge gibt, beschreibe sie hier. Sonst leer lassen."})]}),e.jsx("h2",{className:"text-lg font-bold text-zinc-900 dark:text-white pt-2",children:"Wer stellt den Antrag?"}),e.jsxs("div",{className:"rounded-xl border border-zinc-200 dark:border-zinc-700 bg-zinc-50 dark:bg-zinc-900/60 p-4",children:[e.jsx("p",{className:"text-[14.5px] font-semibold text-zinc-900 dark:text-white",children:"Bist du bereits Mitglied im Quartierverein?"}),e.jsx("p",{className:"mt-1 text-[14px] text-zinc-600 dark:text-zinc-300 leading-relaxed",children:"Dann nimm dieselbe E-Mail-Adresse wie im Mitgliederportal. Wir ordnen deinen Antrag automatisch deiner Mitgliedschaft zu, und du findest ihn dort wieder."}),e.jsxs("p",{className:"mt-2 text-[14px] text-zinc-600 dark:text-zinc-300 leading-relaxed",children:["Noch kein Mitglied? Du kannst den Antrag trotzdem stellen."," ",e.jsx(B,{to:"/mitmachen/mitglied-werden",className:"text-red-600 dark:text-red-400 font-medium hover:underline",children:"Mitglied werden"})," ","geht jederzeit und hilft dem Quartier."]})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:x,children:"Name *"}),e.jsx("input",{required:!0,className:o,value:a.name,onChange:d("name")}
1)]}),e.jsxs("div",{children:[e.jsx("label",{className:x,children:"E-Mail *"}),e.jsx("input",{required:!0,type:"email",className:o,value:a.email,onChange:d("email")})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:x,children:"Organisation oder Verein"}),e.jsx("input",{className:o,value:a.organisation,onChange:d("organisation")})]}),e.jsxs("div",{className:"grid sm:grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:x,children:"Website"}),e.jsx("input",{className:o,type:"url",inputMode:"url",value:a.webseite,onChange:d("webseite"),placeholder:"https://â¦"})]}),e.jsxs("div",{children:[e.jsx("label",{className:x,children:"Social Media"}),e.jsx("input",{className:o,value:a.social,onChange:d("social"),placeholder:"Instagram, Facebook oder ein Link"})]})]}),e.jsx("p",{className:"text-[13px] text-zinc-500 dark:text-zinc-400 -mt-2",children:"Beides freiwillig. Es hilft dem Vorstand einzuordnen, wer hinter der Veranstaltung steht, und wir können euren Anlass verlinken statt ihn nur zu erwähnen."}),e.jsx("h2",{className:"text-lg font-bold text-zinc-900 dark:text-white pt-2",children:"Unterlagen"}),e.jsxs("div",{className:"rounded-xl border border-zinc-200 dark:border-zinc-700 p-4",children:[e.jsx("p",{className:"text-[14px] text-zinc-600 dark:text-zinc-300 leading-relaxed",children:"Ein Veranstaltungskonzept hilft dem Vorstand beim Entscheid. Häng es gleich hier an, Nachreichen ist später ebenfalls möglich."}),e.jsxs("label",{className:"inline-block mt-3 px-4 py-2 rounded-lg border border-zinc-300 dark:border-zinc-600 text-sm font-medium cursor-pointer hover:bg-zinc-50 dark:hover:bg-zinc-800",children:["Dateien auswählen",e.jsx("input",{type:"file",multiple:!0,className:"hidden",onChange:t=>{const m=Array.from(t.target.files??[]);m.length&&h(f=>[...f,...m]),t.target.value=""}})]}),e.jsx("p",{className:"mt-2 text-[12.5px] text-zinc-500 dark:text-zinc-400",children:"PDF, Word, PowerPoint, Excel oder Bild, je bis 20 MB."}),l.length>0&&e.jsx("ul",{className:"mt-3 space-y-1.5",children:l.map((t,m)=>e.jsxs("li",{className:"flex items-center gap-2 text-[13.5px] text-zinc-700 dark:text-zinc-300",children:[e.jsx("span",{className:"truncate",children:t.name}),e.jsxs("span",{className:"text-zinc-400 shrink-0",children:[Math.round(t.size/1024)," KB"]}),e.jsx("button",{type:"button",onClick:()=>h(f=>f.filter((w,N)=>N!==m)),className:"ml-auto shrink-0 text-zinc-400 hover:text-red-600",children:"entfernen"})]},`${t.name}-${m}`))})]}),e.jsx("input",{type:"text",name:"pruefcode",tabIndex:-1,autoComplete:"off","aria-hidden":"true",value:j,onChange:t=>u(t.target.value),className:"absolute -left-[9999px] h-px w-px overflow-hidden"}),v&&e.jsx("p",{className:"text-sm text-red-600 dark:text-red-400",children:v}),e.jsx("button",{type:"submit",disabled:s,className:"px-6 py-3 rounded-lg bg-red-600 text-white font-semibold hover:bg-red-700 disabled:opacity-40",children:s?l.length>0?"Wird gesendet, Unterlagen folgenâ¦":"Wird gesendetâ¦":"Antrag senden"})]})]})}function P({token:r,onFertig:n}){const[a,c]=i.useState(!1),[g,p]=i.useState(null),[l,h]=i.useState(null);async function j(u){c(!0),h(null),p(null);try{const s=await U(r,u);if(!s.ok){h(s.fehler??"Hochladen fehlgeschlagen.");return}p(`«${u.name}» ist bei uns.`),n?.()}catch(s){h(s instanceof Error?s.message:"Hochladen fehlgeschlagen.")}finally{c(!1)}}return e.jsxs("div",{className:"mt-3",children:[e.jsxs("label",{className:"inline-block px-4 py-2.5 rounded-lg bg-red-600 text-white text-sm font-semibold cursor-pointer hover:bg-red-700",children:[a?"Wird hochgeladenâ¦":"Unterlage auswählen",e.jsx("input",{type:"file",className:"hidden",disabled:a,onChange:u=>{const s=u.target.files?.[0];s&&j(s),u.target.value=""}})]}),e.jsx("p",{className:"mt-2 text-[12.5px] text-zinc-500 dark:text-zinc-400",children:"PDF, Word, PowerPoint, Excel oder Bild, je bis 20 MB."}),g&&e.jsx("p",{className:"mt-1.5 text-sm text-green-700 dark:text-green-400",children:g}),l&&e.jsx("p",{className:"mt-1.5 text-sm text-red-600 dark:text-red-400",children:l})]})}function _({token:r}){const[n,a]=i.useState(null),[c,g]=i.useState([]),[p,l]=i.useState(!1),h=i.useCallback(async()=>{const s=await fetch(`/api/eventplan-antrag?token=${encodeURIComponent(r)}`);if(!s.ok){l(!0);return}const b=await s.json();a(b.antrag),g(b.dokumente??[])},[r]);if(i.useEffect(()=>{h()}
1,[h]),p)return e.jsxs("div",{className:"max-w-2xl mx-auto px-4 py-16",children:[e.jsx("h1",{className:"text-2xl font-bold text-zinc-900 dark:text-white",children:"Antrag nicht gefunden"}),e.jsx("p",{className:"mt-3 text-zinc-600 dark:text-zinc-300",children:"Dieser Link stimmt nicht mehr. Bitte prüfe die Bestätigungsmail."})]});if(!n)return e.jsx("p",{className:"max-w-2xl mx-auto px-4 py-16 text-zinc-400",children:"Lädtâ¦"});const j=n.status==="abgelehnt",u=C.findIndex(s=>s.key===(n.status==="kommunikation"?"planung":n.status));return e.jsxs("div",{className:"max-w-2xl mx-auto px-4 py-12",children:[e.jsx("p",{className:"text-[13px] font-semibold uppercase tracking-wide text-red-600",children:"Unterstützungsschreiben"}),e.jsx("h1",{className:"text-3xl font-bold text-zinc-900 dark:text-white mt-1",children:n.title}),e.jsxs("p",{className:"mt-2 text-zinc-500 dark:text-zinc-400",children:[E(n.event_date),n.time_text?`, ${n.time_text}`:"",n.location?` · ${n.location}`:""]}),j?e.jsx("p",{className:"mt-6 rounded-lg bg-zinc-100 dark:bg-zinc-800 px-4 py-3 text-zinc-700 dark:text-zinc-300",children:"Der Vorstand hat entschieden, diese Veranstaltung nicht zu unterstützen. Bei Fragen melde dich gerne bei uns."}):e.jsx("div",{className:"mt-6 flex flex-wrap gap-2",children:C.map((s,b)=>e.jsx("span",{className:`px-3 py-1 rounded-full text-[12.5px] font-semibold ${b<u?"bg-green-100 text-green-700 dark:bg-green-950/40 dark:text-green-400":b===u?"bg-red-600 text-white":"bg-zinc-100 text-zinc-400 dark:bg-zinc-800 dark:text-zinc-500"}`,children:s.label},s.key))}),n.schreiben_erstellt_at&&e.jsx("p",{className:"mt-4 text-[14.5px] text-green-700 dark:text-green-400",children:"Das Unterstützungsschreiben ist ausgestellt. Wir haben es dir zugestellt oder melden uns gleich."}),e.jsxs("div",{className:"mt-8",children:[e.jsx("h2",{className:"text-lg font-bold text-zinc-900 dark:text-white",children:"Unterlagen"}),e.jsx("p",{className:"mt-1 text-[14.5px] text-zinc-600 dark:text-zinc-300",children:"Ein Veranstaltungskonzept hilft uns bei der Beurteilung. PDF, Word, PowerPoint, Excel oder Bild, je bis 20 MB."}),c.length>0&&e.jsx("ul",{className:"mt-3 space-y-1.5",children:c.map(s=>e.jsxs("li",{className:"text-[14px] text-zinc-700 dark:text-zinc-300",children:[s.file_name," ",e.jsxs("span",{className:"text-zinc-400",children:["· ",E(s.created_at)]})]},s.file_name))}),e.jsx(P,{token:r,onFertig:h})]})]})}export{O as Unterstuetzungsschreiben};
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.