1import{e as V,J as D,s as M,h as R,R as W,k as t,c as i,b as c,w as d,a as o,d as u,t as l,n as f,p as m,F as v,r as x,a2 as Z,z as S,j as E,v as $,_ as K,o as s,m as q,x as J,H as O,q as I}from"./CY3jnUM6.js";import{_ as G}from"./-SVufHf2.js";import{_ as Q}from"./OurpgCR6.js";import{_ as X}from"./Fft7ZOqa.js";import{_ as Y}from"./By6CRBrl.js";import{k as ee,s as te,d as j}from"./BrI6x1R5.js";import{u as ne}from"./DBTbZVQN.js";import{u as se}from"./BTFkAC0h.js";import"./CVaPTO-a.js";import"./BY4uSHJB.js";import"./qRNCC5Z-.js";import"./C6Y-ieo6.js";import"./BlR2Zwzy.js";import"./DAZJcvB5.js";import"./anf4jzHM.js";import"./D7YTPPaj.js";import"./CYb8iiSe.js";import"./Dt-o-jIX.js";import"./Cw2uKrbK.js";import"./DdecV92B.js";import"./suo86RWp.js";import"./DVzKyBkh.js";import"./DRGhzJYC.js";import"./imJkCMhs.js";import"./CWUucUja.js";import"./D4k11_F0.js";import"./D0V9glSh.js";import"./BdRnEU8P.js";const re={key:0},oe={class:"flex items-start justify-between gap-4 mb-6"},ae={class:"text-2xl font-bold text-brand-ink"},ie={class:"mt-1 text-sm text-brand-muted"},le={class:"grid grid-cols-1 lg:grid-cols-3 gap-6 mb-8"},de={class:"bg-white rounded-xl border border-brand-zinc p-5 lg:col-span-2"},ce={class:"grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-3 text-sm"},ue={class:"text-xs text-brand-muted"},me={key:0,class:"mt-4 flex flex-wrap gap-1.5"},pe={key:1,class:"mt-4 text-sm text-brand-body whitespace-pre-line"},_e={class:"bg-white rounded-xl border border-brand-zinc p-5"},be={key:0,class:"space-y-2 text-sm"},fe={key:0,class:"text-xs text-brand-muted"},ve={key:1,class:"text-sm text-brand-muted"},xe={class:"bg-white rounded-xl border border-brand-zinc overflow-hidden"},he={key:0,class:"divide-y divide-brand-zinc"},ge={class:"min-w-0"},ke={class:"text-xs text-brand-muted truncate"},ye={class:"text-xs text-brand-muted text-right shrink-0"},we={key:1,class:"px-4 py-8 text-sm text-brand-muted text-center"},Ye=V({__name:"[id]",setup(ze){const B=D(),k=ne(),y=M(),L=se(),_=R(),a=S(null),p=S(!1);async function w(){try{a.value=(await k.get(`/server/${B.params.id}`)).data,E({title:`${a.value.name} â Server â Intern`,robots:"noindex, nofollow"})}catch{y.add({title:"Fehler",description:"Server konnte nicht geladen werden.",color:"error"}),$(_("/intern/hosting/server"))}}async function C(){if(await L({title:"Server löschen?",description:"Websites, die direkt auf diesem Server laufen, verlieren ihr Ziel.",confirmLabel:"Löschen",color:"error"}))try{await k.del(`/server/${a.value.id}`),$(_("/intern/hosting/server"))}catch(r){y.add({title:"Fehler",description:r?.data?.message||"Löschen fehlgeschlagen.",color:"error"})}}function P(){p.value=!1,w()}const U=I(()=>{const n=a.value;return n?[["Konto",n.hosting_konto?`${n.hosting_konto.name}${n.externe_id?` · ID ${n.externe_id}`:""}`:"von Hand"],["Art · Typ",[te[n.art]||n.art,n.anbieter_typ].filter(Boolean).join(" · ")],["Standort",n.standort],["IPv4",n.ipv4],["IPv6",n.ipv6],["Private IP",n.private_ip],["Status",n.status],["Zuletzt gesehen",n.aus_api?j(n.gesehen_at):null],["Beim Anbieter entfernt",n.entfernt_at?j(n.entfernt_at):null]].filter(([,r])=>r):[]}),z=I(()=>Object.entries(a.value?.labels||{}));return W(w),(n,r)=>{const A=q,h=K,b=G,F=J,H=Q,N=X,T=Y;return t(a)?(s(),i("div",re,[c(h,{to:t(_)("/intern/hosting/server"),class:"text-xs text-brand-muted hover:text-brand-orange flex items-center gap-1 mb-2"},{default:d(()=>[c(A,{name:"i-ph-arrow-left",class:"size-3"}),r[2]||(r[2]=u(" Server ",-1))]),_:1},8,["to"]),o("div",oe,[o("div",null,[o("h1",ae,[u(l(t(a).name)+" ",1),t(a).entfernt_at?(s(),f(b,{key:0,color:"warning",variant:"subtle",size:"sm",class:"ml-2 align-middle"},{default:d(()=>[...r[3]||(r[3]=[u("entfernt",-1)])]),_:1})):m("",!0)]),o("p",ie,l(t(a).aus_api?"aus der Hetzner-API":"von Hand gepflegt"),1)]),c(H,{items:[[{label:"Bearbeiten",icon:"i-ph-pencil-simple",onSelect:()=>{p.value=!0}},...t(a).aus_api?[]:[{label:"Löschen",icon:"i-ph-trash",color:"error",onSelect:C}]]]},{default:d(()=>[c(F,{icon:"i-ph-dots-three-vertical",variant:"ghost",color:"neutral",size:"sm"})]),_:1},8,["items"])]),o("div",le,[o("div",de,[o("dl",ce,[(s(!0),i(v,null,x(t(U),([e,g])=>(s(),i("div",{key:e},[o("dt",ue,l(e),1),o("dd",{class:O(["text-brand-ink",{"font-mono text-xs mt-0.5":String(e).includes("IP")}])},l(g),3)]))),128))]),t(z).length?(s(),i("div",me,[(s(!0),i(v,null,x(t(z),([e,g])=>(s(),f(b,{key:e,color:"neutral",variant:"subtle",size:"sm",class:"font-mono"},{default:d(()=>[u(l(e)+"="+l(g),1)]),_:2},1024))),128))])):m("",!0),t(a).notiz?(s(),i("p",pe,l(t(a).notiz),1)):m("",!0)]),o("div",_e,[r[4]||(r[4]=o("h2",{class:"text-sm font-semibold text-brand-ink mb-3"},"Cluster",-1)),t(a).cluster?.length?(s(),i("ul",be,[(s(!0),i(v,null,x(t(a).cluster,e=>(s(),i("li",{key:e.zuordnung_id},[c(h,{to:t(_)(`/intern/hosting/cluster/${e.id}`),class:"text-brand-ink hover:text-brand-orange"},{default:d(()=>[u(l(e.name),1)]),_:2},1032,["to"]),e.aufgabe_label?(s(),i("span",fe," · "+l(e.aufgabe_label),1)):m("",!0)]))),128))])):(s(),i("p",ve,"In keinem Cluster."))])]),r[6]||(r[6]=o("h2",{class:"text-lg font-bold text-brand-ink mb-3"},"Websites",-1)),o("div",xe,[t(a).sites?.length?(s(),i("ul",he,[(s(!0),i(v,null,x(t(a).sites,e=>(s(),i("li",{key:e.id,class:"px-4 py-3 flex items-center justify-between gap-4"},[o("div",ge,[c(h,{to:t(_)(`/intern/projekte/${e.projekt?.id}/sites/${e.id}`),class:"font-medium text-brand-ink hover:text-brand-orange"},{default:d(()=>[u(l(e.label||e.url),1)]),_:2},1032,["to"]),e.ueber_cluster?(s(),f(b,{key:0,color:"neutral",variant:"subtle",size:"xs",class:"ml-2"},{default:d(()=>[u("über "+l(e.ueber_cluster),1)]),_:2},1024)):m("",!0),e.is_active?m("",!0):(s(),f(b,{key:1,color:"neutral",variant:"subtle",size:"xs",class:"ml-2"},{default:d(()=>[...r[5]||(r[5]=[u("Inaktiv",-1)])]),_:1})),o("div",ke,l(e.url),1)]),o("div",ye,[o("div",null,l(t(ee)(e.projekt?.kunde)),1),o("div",null,l(e.projekt?.nummer)+" "+l(e.projekt?.name),1)])]))),128))])):(s(),i("p",we,"Keine Website läuft auf diesem Server."))]),c(T,{open:t(p),"onUpdate:open":r[1]||(r[1]=e=>Z(p)?p.value=e:null),title:"Server bearbeiten"},{body:d(()=>[c(N,{server:t(a),onSaved:P,onCancel:r[0]||(r[0]=e=>p.value=!1)},null,8,["server"])]),_:1},8,["open"])])):m("",!0)}}});
1export{Ye 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.