PageSourceSearch

https://hintermoos.at/assets/OwnerNew-Csbc3tth.js

js hintermoos.at collected 2026-10-09 22:02:00 UTC 9,763 bytes, 1 lines download raw bytes

1import{a as oe,t as ce,r as a,s as m,j as e,B as E,w as x,K as v,N as j,O as y,x as N,y as n,I as i,M as me,m as de}from"./index-MoAbC8_9.js";import{A as pe}from"./AdminPageLayout-DL0avA2R.js";import{T as he}from"./textarea-4z16PwID.js";import{C as ue}from"./checkbox-D2A7tWS7.js";import{S as g,a as f,b as k,c as b,d as r}from"./select-ChAxOmxm.js";import{A as xe}from"./arrow-left-CZKmX_Y-.js";import{U as ve}from"./user-plus-BJ2nTN1d.js";import"./Layout-jB2m3rBw.js";import"./Header-CnJGZ8vQ.js";import"./mountain-BHfTfCFy.js";import"./user-Cvsz7Lm_.js";import"./collapsible-BIxz44zB.js";import"./breadcrumb-CmKLwRya.js";import"./AdminSidebar-B1OFksO6.js";import"./scroll-area-CoT3wSM0.js";import"./index-BdQq_4o_.js";import"./bell-CKHJStUz.js";import"./clipboard-list-CzdQdj9P.js";import"./file-text-Bif0RP8Y.js";import"./users-xui-UtA1.js";import"./building-crte1H4H.js";import"./calculator-GhS8BFwe.js";import"./upload-BH1HltYO.js";import"./wallet-e9E2tgeo.js";import"./calendar-CnsXUgOr.js";import"./trending-up-Cg9WFJWB.js";import"./trending-down-EHPUNHPt.js";import"./settings-BUFFH3UG.js";import"./database-yc2noHJi.js";import"./file-search-B2CpYcS_.js";import"./chevron-down-BDe4YKQW.js";import"./house-DjS1WMqx.js";import"./index-D9-GACGG.js";import"./chevron-up-JyGCcpt9.js";const Xe=()=>{const C=oe(),{toast:l}=ce(),[w,L]=a.useState(!1),[B,K]=a.useState([]),[S,M]=a.useState(""),[_,Z]=a.useState(""),[o,H]=a.useState(""),[I,G]=a.useState(""),[O,Q]=a.useState(""),[c,W]=a.useState("individual"),[P,X]=a.useState("cs"),[R,Y]=a.useState(""),[z,D]=a.useState(""),[F,ee]=a.useState(!0),[d,se]=a.useState(""),[p,ae]=a.useState(""),[V,te]=a.useState(""),[U,ne]=a.useState(""),[J,re]=a.useState("executive");a.useEffect(()=>{ie()},[]);const ie=async()=>{const{data:s}=await m.from("apartments").select("*").order("sort_order",{ascending:!0});K(s||[])},le=async s=>{if(s.preventDefault(),!z){l({variant:"destructive",title:"Chyba",description:"Vyberte apartmán."});return}if(F&&!o){l({variant:"destructive",title:"Chyba",description:"Pro odeslání pozvánky je nutný email."});return}L(!0);try{const A={first_name:S||null,last_name:_||null,email:o||null,phone:I||null,company_name:O||null,user_type:c,language:P,notes:R||null},{data:h,error:$}=await m.from("owner_contacts").insert(A).select().single();if($)throw $;const{error:q}=await m.from("apartment_owners").insert({apartment_id:z,owner_contact_id:h.id,is_current:!0});if(q)throw q;if(c==="company"&&d.trim()&&p.trim()){const t=V.trim();await m.from("owner_contact_persons").insert({owner_contact_id:h.id,first_name:d.trim(),last_name:p.trim(),email:t||null,phone:U.trim()||null,role_type:J,is_primary:!0,can_receive_notifications:!!t})}if(F&&o){const{data:t,error:u}=await m.functions.invoke("invite-user",{body:{email:o,first_name:S,last_name:_,language:P,role:"owner",owner_contact_id:h.id}});if(u||t!=null&&t.error)l({variant:"destructive",title:"Vlastník vytvořen, ale pozvánka se neodeslala",description:(t==null?void 0:t.error)||(u==null?void 0:u.message)||"Neznámá chyba"});else{const T=t==null?void 0:t.status;l(T==="invited"||T==="reinvited"?{title:"Úspěch",description:`Vlastník vytvořen. Pozvánka odeslána na ${o}.`}:T==="already_active"?{title:"Vlastník vytvořen",description:"Účet už existuje a uživatel se přihlásil — pozvánka přeskočena."}:{title:"Vlastník vytvořen",description:(t==null?void 0:t.reason)||"Pozvánka přeskočena."})}}else l({title:"Úspěch",description:"Vlastník byl přidán a apartmán přiřazen."});C(`/admin/owner/${h.id}`)}catch(A){l({variant:"destructive",title:"Chyba",description:A.message||"Nepodařilo se vytvořit vlastníka."})}finally{L(!1)}};return e.jsx(pe,{title:"Nový vlastník",activeSection:"owners",breadcrumbs:[{label:"Vlastníci",href:"/admin?section=property&sub=owners"},{label:"Nový vlastník"}],children:e.jsxs("div",{className:"max-w-6xl",children:[e.jsxs("div",{className:"flex items-center gap-4 mb-8",children:[e.jsx(E,{variant:"ghost",size:"icon",onClick:()=>C("/admin?section=property&sub=owners"),className:"shrink-0",children:e.jsx(xe,{className:"h-5 w-5"})}),e.jsx("div",{className:"flex-1",children:e.jsx("p",{className:"text-muted-foreground",children:"Přidat nového vlastníka do systému"})})]}),e.jsxs("form",{onSubmit:le,children:[e.jsxs(x,{className:"mb-6",children:[e.jsxs(v,{children:[e.jsx(j,{className:"text-lg",children:"Profilové informace"}),e.jsx(y,{children:"Základní údaje o novém vlastníkovi"})]}),e.jsxs(N,{className:"space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(n,{children:"Typ uživatele"}),e.jsxs(g,{value:c,onValueChange:s=>W(s),children:[e.jsx(f,{children:e.jsx(k,{})}),e.jsxs(b,{children:[e.jsx(r,{value:"individual",children:"Fyzická osoba"}),e.jsx(r,{value:"company",children:"Právnická osoba"})]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(n,{children:"Preferovaný jazyk"}),e.jsxs(g,{value:P,onValueChange:s=>X(s),children:[e.jsx(f,{children:e.jsx(k,{})}),e.jsxs(b,{children:[e.jsx(r,{value:"cs",children:"Čeština"}),e.jsx(r,{value:"en",children:"Angličtina"}),e.jsx(r,{value:"de",children:"Němčina"})]})]})]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(n,{htmlFor:"firstName",children:"Jméno"}),e.jsx(i,{id:"firstName",value:S,onChange:s=>M(s.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(n,{htmlFor:"lastName",children:"Příjmení"}
1),e.jsx(i,{id:"lastName",value:_,onChange:s=>Z(s.target.value)})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(n,{htmlFor:"email",children:"Email"}),e.jsx(i,{id:"email",type:"email",value:o,onChange:s=>H(s.target.value),placeholder:"[email protected]"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(n,{htmlFor:"phone",children:"Telefon"}),e.jsx(i,{id:"phone",value:I,onChange:s=>G(s.target.value),placeholder:"+420 123 456 789"})]}),c==="company"&&e.jsxs("div",{className:"space-y-2",children:[e.jsx(n,{htmlFor:"companyName",children:"Název společnosti"}),e.jsx(i,{id:"companyName",value:O,onChange:s=>Q(s.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(n,{htmlFor:"notes",children:"Poznámky"}),e.jsx(he,{id:"notes",value:R,onChange:s=>Y(s.target.value),rows:3})]})]})]}),c==="company"&&e.jsxs(x,{className:"mb-6",children:[e.jsxs(v,{children:[e.jsx(j,{className:"text-lg",children:"Kontaktní osoba (jednatel)"}),e.jsx(y,{children:"Volitelné — zadejte první kontaktní osobu zastupující firmu"})]}),e.jsxs(N,{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(n,{htmlFor:"cpFirstName",children:"Jméno"}),e.jsx(i,{id:"cpFirstName",value:d,onChange:s=>se(s.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(n,{htmlFor:"cpLastName",children:"Příjmení"}),e.jsx(i,{id:"cpLastName",value:p,onChange:s=>ae(s.target.value)})]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(n,{htmlFor:"cpEmail",children:"E-mail"}),e.jsx(i,{id:"cpEmail",type:"email",value:V,onChange:s=>te(s.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(n,{htmlFor:"cpPhone",children:"Telefon"}),e.jsx(i,{id:"cpPhone",value:U,onChange:s=>ne(s.target.value)})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(n,{children:"Role"}),e.jsxs(g,{value:J,onValueChange:re,children:[e.jsx(f,{children:e.jsx(k,{})}),e.jsxs(b,{children:[e.jsx(r,{value:"executive",children:"Jednatel"}),e.jsx(r,{value:"procurist",children:"Prokurista"}),e.jsx(r,{value:"assistant",children:"Asistent"}),e.jsx(r,{value:"billing_contact",children:"Fakturační kontakt"}),e.jsx(r,{value:"other",children:"Ostatní"})]})]})]}),d.trim()&&p.trim()&&e.jsxs("p",{className:"text-xs text-muted-foreground",children:["Osoba bude automaticky nastavena jako primární kontakt.",!V.trim()&&" Notifikace budou vypnuté (není zadán e-mail)."]})]})]}),e.jsxs(x,{className:"mb-6",children:[e.jsxs(v,{children:[e.jsx(j,{className:"text-lg",children:"Přiřazení apartmánu"}),e.jsx(y,{children:"Vyberte apartmán, ke kterému bude vlastník přiřazen"})]}),e.jsx(N,{children:e.jsxs("div",{className:"space-y-2",children:[e.jsx(n,{children:"Apartmán *"}),e.jsxs(g,{value:z,onValueChange:D,children:[e.jsx(f,{children:e.jsx(k,{placeholder:"Vyberte apartmán..."})}),e.jsx(b,{children:B.map(s=>e.jsxs(r,{value:s.id,children:[s.code," ",s.sqm?`(${s.sqm} m²)`:""]},s.id))})]})]})})]}),e.jsxs(x,{className:"mb-6",children:[e.jsxs(v,{children:[e.jsxs(j,{className:"text-lg flex items-center gap-2",children:[e.jsx(me,{className:"h-5 w-5"}),"Pozvánka k přihlášení"]}),e.jsx(y,{children:"Po vytvoření vlastníka se odeÅ¡le e-mailová pozvánka. Uživatel si nastaví vlastní heslo přes odkaz — žádné heslo se neposílá v e-mailu ani neukládá administrátorem."})]}),e.jsx(N,{children:e.jsxs("div",{className:"flex items-center space-x-2 rounded-md border p-4 bg-muted/50",children:[e.jsx(ue,{id:"autoCreate",checked:F,onCheckedChange:s=>ee(s===!0)}),e.jsx(n,{htmlFor:"autoCreate",className:"cursor-pointer",children:"Pozvat e-mailem (vyžaduje vyplněný e-mail)"})]})})]}),e.jsxs("div",{className:"flex justify-end gap-3",children:[e.jsx(E,{type:"button",variant:"outline",onClick:()=>C("/admin?section=property&sub=owners"),disabled:w,children:"ZruÅ¡it"}),e.jsxs(E,{type:"submit",disabled:w,children:[w?e.jsx(de,{className:"mr-2 h-4 w-4 animate-spin"}):e.jsx(ve,{className:"mr-2 h-4 w-4"}),"Přidat vlastníka"]})]})]})]})})};export{Xe 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.