imc-vibe/backend/cmd/server/embed/_app/immutable/nodes/11.DnvWFHPj.js
2026-03-21 22:41:23 +01:00

1 line
4.1 KiB
JavaScript

import{a as b,f as _}from"../chunks/CJv7FbHz.js";import{p as ot,a0 as w,a1 as M,a8 as rt,s as c,a3 as O,a7 as D,a as lt,a2 as s,a4 as r,a5 as o,g as a,a6 as it}from"../chunks/DtGl34IE.js";import{s as nt,a as dt}from"../chunks/B3ZK_jYJ.js";import{d as ct,a as $,s as q,e as vt}from"../chunks/n1byU5WW.js";import{i as Q}from"../chunks/-EcHSJia.js";import{e as ut,i as pt}from"../chunks/ecAlPOj8.js";import{s as R,r as E}from"../chunks/e1WBZ7UL.js";import{b as N}from"../chunks/ayyTDfEa.js";import{p as mt}from"../chunks/B7kAneMc.js";var ft=_("<p>Loading...</p>"),bt=_("<p>No users configured yet.</p>"),_t=_('<tr><td class="svelte-oa5z6t"> </td><td class="svelte-oa5z6t"> </td><td class="svelte-oa5z6t"> </td><td class="svelte-oa5z6t"><button class="danger svelte-oa5z6t">Delete</button></td></tr>'),ht=_('<table class="svelte-oa5z6t"><thead><tr><th class="svelte-oa5z6t">Email</th><th class="svelte-oa5z6t">Quota</th><th class="svelte-oa5z6t">Used</th><th class="svelte-oa5z6t">Actions</th></tr></thead><tbody></tbody></table>'),zt=_('<button class="modal-backdrop svelte-oa5z6t" aria-label="Close modal"></button> <div class="modal svelte-oa5z6t"><h3 class="svelte-oa5z6t">Add User</h3> <form class="svelte-oa5z6t"><label class="svelte-oa5z6t">Email: <input type="email" required="" class="svelte-oa5z6t"/></label> <label class="svelte-oa5z6t">Password: <input type="password" required="" class="svelte-oa5z6t"/></label> <label class="svelte-oa5z6t">Quota (bytes, 0 = default): <input type="number" min="0" class="svelte-oa5z6t"/></label> <div class="actions svelte-oa5z6t"><button type="button" class="svelte-oa5z6t">Cancel</button> <button type="submit" class="svelte-oa5z6t">Create</button></div></form></div>',1),gt=_('<div class="header svelte-oa5z6t"><a class="back svelte-oa5z6t"> </a> <h2 class="svelte-oa5z6t">Users</h2> <button class="svelte-oa5z6t">Add User</button></div> <!> <!>',1);function Bt(L,P){ot(P,!0);const S=()=>nt(mt,"$page",G),[G,J]=dt();let C=w(M([])),T=w(!0),h=w(!1),i=w(M({email:"",password:"",quota:0})),n=w("");async function F(t){try{const e=await fetch(`/api/domains/${encodeURIComponent(t)}/users`);if(e.ok){const v=await e.json();c(C,v.data||[],!0)}}catch(e){console.error("Failed to load users:",e)}finally{c(T,!1)}}async function K(){try{const t=await fetch(`/api/domains/${encodeURIComponent(a(n))}/users`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a(i))});if(t.ok)c(h,!1),c(i,{email:"",password:"",quota:0},!0),await F(a(n));else{const e=await t.json();alert(e.error||"Failed to create user")}}catch(t){console.error("Failed to create user:",t)}}async function H(t){if(confirm("Delete this user? Mailbox will NOT be deleted."))try{await fetch(`/api/domains/${encodeURIComponent(a(n))}/users/${t}`,{method:"DELETE"}),await F(a(n))}catch(e){console.error("Failed to delete user:",e)}}function j(t){return t===0?"Default":t<1024?t+" B":t<1024*1024?(t/1024).toFixed(1)+" KB":t<1024*1024*1024?(t/1024/1024).toFixed(1)+" MB":(t/1024/1024/1024).toFixed(2)+" GB"}rt(()=>{const t=S().params.name;t&&(c(n,t,!0),F(t))});var A=gt(),B=O(A),y=r(B),V=r(y);o(y);var W=s(y,4);o(B);var I=s(B,2);{var X=t=>{var e=ft();b(t,e)},Y=t=>{var e=bt();b(t,e)},Z=t=>{var e=ht(),v=s(r(e));ut(v,21,()=>a(C),pt,(x,d)=>{var u=_t(),p=r(u),z=r(p,!0);o(p);var m=s(p),g=r(m,!0);o(m);var f=s(m),k=r(f,!0);o(f);var U=s(f),l=r(U);o(U),o(u),D((et,st)=>{q(z,a(d).email),q(g,et),q(k,st)},[()=>j(a(d).quota),()=>j(a(d).used_quota)]),$("click",l,()=>H(a(d).id)),b(x,u)}),o(v),o(e),b(t,e)};Q(I,t=>{a(T)?t(X):a(C).length===0?t(Y,1):t(Z,-1)})}var tt=s(I,2);{var at=t=>{var e=zt(),v=O(e),x=s(v,2),d=s(r(x),2),u=r(d),p=s(r(u));E(p),o(u);var z=s(u,2),m=s(r(z));E(m),o(z);var g=s(z,2),f=s(r(g));E(f),o(g);var k=s(g,2),U=r(k);it(2),o(k),o(d),o(x),D(()=>R(p,"placeholder",`user@${a(n)??""}`)),$("click",v,()=>c(h,!1)),vt("submit",d,l=>{l.preventDefault(),K()}),N(p,()=>a(i).email,l=>a(i).email=l),N(m,()=>a(i).password,l=>a(i).password=l),N(f,()=>a(i).quota,l=>a(i).quota=l),$("click",U,()=>c(h,!1)),b(t,e)};Q(tt,t=>{a(h)&&t(at)})}D(()=>{R(y,"href",`/domains/${a(n)??""}`),q(V,`← Back to ${a(n)??""}`)}),$("click",W,()=>c(h,!0)),b(L,A),lt(),J()}ct(["click"]);export{Bt as component};