2 lines
6.4 KiB
JavaScript
2 lines
6.4 KiB
JavaScript
import{d as T,h as U,c as n,a as t,n as C,b as o,v as u,e as g,i as B,j as L,w as M,t as j,r as l,k as z,l as O,o as r,m as R,f as $,p as E}from"./index-Dox4jtA_.js";const D={class:"min-h-screen flex items-center justify-center bg-gray-50 dark:bg-gray-900 py-12 px-4"},W={class:"max-w-lg w-full"},Z={class:"flex items-center justify-center mb-8"},A={class:"flex items-center"},F={class:"card"},q={key:0},G={class:"space-y-4"},H={class:"flex items-center gap-2"},I={key:0,class:"text-gray-400"},J={key:1,class:"text-green-500"},Q={key:2,class:"text-red-500"},X={key:0,class:"mt-1 text-xs text-red-500"},Y={class:"mt-6 flex justify-between"},ee=["disabled"],te={key:1},se={class:"grid grid-cols-2 gap-4"},le={key:0,class:"mt-1 text-xs text-red-500"},ae={key:0,class:"p-3 bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400 rounded-lg text-sm"},ne={class:"mt-6 flex justify-between"},re=["disabled"],ue=T({__name:"RegisterOrgView",setup(ie){const P=$(),d=l(1),c=l(!1),y=l(""),w=l(!1),m=l(null),p=l(""),i=l(""),x=l(""),v=l(""),b=l(""),f=l(""),k=l(""),h=l("");U(p,a=>{a&&!i.value&&(i.value=a.toLowerCase().replace(/[äöüß]/g,e=>({ä:"ae",ö:"oe",ü:"ue",ß:"ss"})[e]||e).replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"").slice(0,30))});let _;U(i,async a=>{clearTimeout(_),m.value=null,!(a.length<3)&&(w.value=!0,_=setTimeout(async()=>{try{const V=await(await fetch(`/api/organizations/check/${a}`)).json();m.value=V.available}catch{m.value=null}w.value=!1},500))});const S=z(()=>p.value.length>=2&&i.value.length>=3&&m.value===!0),N=z(()=>x.value.includes("@")&&v.value.length>=8&&v.value===b.value&&f.value.length>=2&&k.value.length>=2);async function K(){if(N.value){y.value="",c.value=!0;try{await R.post("/organizations/register",{name:p.value,slug:i.value,admin_email:x.value,admin_password:v.value,admin_first_name:f.value,admin_last_name:k.value,admin_phone:h.value||void 0}),P.push({name:"login",query:{registered:"true",org:i.value,email:x.value}})}catch(a){y.value=a instanceof Error?a.message:"Registrierung fehlgeschlagen"}finally{c.value=!1}}}return(a,e)=>{const V=O("router-link");return r(),n("div",D,[t("div",W,[e[22]||(e[22]=t("div",{class:"text-center mb-8"},[t("h1",{class:"text-4xl font-bold text-primary-600"},"🔐 SeCu"),t("p",{class:"mt-2 text-gray-600 dark:text-gray-400"},"Organisation registrieren")],-1)),t("div",Z,[t("div",A,[t("div",{class:C(["w-10 h-10 rounded-full flex items-center justify-center text-white font-bold",d.value>=1?"bg-primary-600":"bg-gray-300"])},"1",2),t("div",{class:C(["w-24 h-1 mx-2",d.value>=2?"bg-primary-600":"bg-gray-300"])},null,2),t("div",{class:C(["w-10 h-10 rounded-full flex items-center justify-center font-bold",d.value>=2?"bg-primary-600 text-white":"bg-gray-300 text-gray-600"])},"2",2)])]),t("div",F,[d.value===1?(r(),n("div",q,[e[14]||(e[14]=t("h2",{class:"text-xl font-semibold text-gray-900 dark:text-white mb-6"}," Ihre Organisation ",-1)),t("div",G,[t("div",null,[e[10]||(e[10]=t("label",{class:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1"}," Firmenname * ",-1)),o(t("input",{"onUpdate:modelValue":e[0]||(e[0]=s=>p.value=s),type:"text",class:"input",placeholder:"z.B. Muster Sicherheit GmbH"},null,512),[[u,p.value]])]),t("div",null,[e[11]||(e[11]=t("label",{class:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1"}," URL-Kürzel * ",-1)),t("div",H,[o(t("input",{"onUpdate:modelValue":e[1]||(e[1]=s=>i.value=s),type:"text",class:"input",placeholder:"muster-sicherheit"},null,512),[[u,i.value]]),w.value?(r(),n("span",I,"⏳")):m.value===!0?(r(),n("span",J,"✓")):m.value===!1?(r(),n("span",Q,"✗")):g("",!0)]),e[12]||(e[12]=t("p",{class:"mt-1 text-xs text-gray-500"}," Wird für den Login verwendet. Nur Kleinbuchstaben und Bindestriche. ",-1)),m.value===!1?(r(),n("p",X," Dieses Kürzel ist bereits vergeben. ")):g("",!0)])]),t("div",Y,[B(V,{to:"/login",class:"btn btn-secondary"},{default:L(()=>[...e[13]||(e[13]=[E(" ← Zurück zum Login ",-1)])]),_:1}),t("button",{onClick:e[2]||(e[2]=s=>d.value=2),disabled:!S.value,class:"btn btn-primary"}," Weiter → ",8,ee)])])):g("",!0),d.value===2?(r(),n("div",te,[e[21]||(e[21]=t("h2",{class:"text-xl font-semibold text-gray-900 dark:text-white mb-6"}," Administrator-Konto ",-1)),t("form",{onSubmit:M(K,["prevent"]),class:"space-y-4"},[t("div",se,[t("div",null,[e[15]||(e[15]=t("label",{class:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1"}," Vorname * ",-1)),o(t("input",{"onUpdate:modelValue":e[3]||(e[3]=s=>f.value=s),type:"text",class:"input"},null,512),[[u,f.value]])]),t("div",null,[e[16]||(e[16]=t("label",{class:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1"}," Nachname * ",-1)),o(t("input",{"onUpdate:modelValue":e[4]||(e[4]=s=>k.value=s),type:"text",class:"input"},null,512),[[u,k.value]])])]),t("div",null,[e[17]||(e[17]=t("label",{class:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1"}," E-Mail * ",-1)),o(t("input",{"onUpdate:modelValue":e[5]||(e[5]=s=>x.value=s),type:"email",class:"input"},null,512),[[u,x.value]])]),t("div",null,[e[18]||(e[18]=t("label",{class:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1"}," Telefon ",-1)),o(t("input",{"onUpdate:modelValue":e[6]||(e[6]=s=>h.value=s),type:"tel",class:"input",placeholder:"Optional"},null,512),[[u,h.value]])]),t("div",null,[e[19]||(e[19]=t("label",{class:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1"}," Passwort * ",-1)),o(t("input",{"onUpdate:modelValue":e[7]||(e[7]=s=>v.value=s),type:"password",class:"input",placeholder:"Mindestens 8 Zeichen"},null,512),[[u,v.value]])]),t("div",null,[e[20]||(e[20]=t("label",{class:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1"}," Passwort bestätigen * ",-1)),o(t("input",{"onUpdate:modelValue":e[8]||(e[8]=s=>b.value=s),type:"password",class:"input"},null,512),[[u,b.value]]),v.value&&b.value&&v.value!==b.value?(r(),n("p",le," Passwörter stimmen nicht überein ")):g("",!0)]),y.value?(r(),n("div",ae,j(y.value),1)):g("",!0),t("div",ne,[t("button",{type:"button",onClick:e[9]||(e[9]=s=>d.value=1),class:"btn btn-secondary"}," ← Zurück "),t("button",{type:"submit",disabled:!N.value||c.value,class:"btn btn-primary"},j(c.value?"Wird erstellt...":"Organisation erstellen"),9,re)])],32)])):g("",!0)]),e[23]||(e[23]=t("div",{class:"mt-6 text-center text-sm text-gray-500 dark:text-gray-400"},[t("p",null,"Nach der Registrierung können Sie sofort loslegen."),t("p",{class:"mt-1"},"Kostenlos starten • Keine Kreditkarte nötig")],-1))])])}}});export{ue as default};
|