Der Ausfuehrer schickt die Belegung der rootfs laufender Container mit; ab 85 % gelb, ab 95 % rot, in der Geraeteliste als eigene Spalte und auf der Lampe des Geraets. Anlass: AdGuard (2 GB) war voll, das Abfrageprotokoll schrieb nicht mehr und die Paketsuche scheiterte, ohne dass es eine Anzeige sagte. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 line
23 KiB
JavaScript
1 line
23 KiB
JavaScript
import{c as e,i as t,p as n,s as r,t as i,u as a}from"./button-BheHBEml.js";import{$ as o,A as s,M as c,O as l,_ as u,b as d,d as f,f as p,g as m,gt as h,h as g,i as _,k as v,l as y,m as b,n as x,p as S,r as C,st as w,t as T,tt as E,u as D,v as O,vt as k,y as A,z as j}from"./index-BAH01Yfc.js";import{t as M}from"./Bestaetigen-CE_3b0PK.js";var N=r(),P=n(a(),1),F=e();function I(e){let t=(0,N.c)(14),{ziel:n,b:r}=e;if(!r){let e=n.art===`proxmox-host`?O(n)?.installiert:null,r;return t[0]===e?r=t[1]:(r=e?(0,F.jsxs)(`span`,{className:`ziffern text-sm`,children:[`PVE `,e]}):(0,F.jsx)(`span`,{className:`text-text-3`,children:`–`}),t[0]=e,t[1]=r),r}let i=r.installiert??void 0,a;t[2]===r.installiert?a=t[3]:(a=r.installiert&&(0,F.jsx)(`span`,{className:`text-foreground`,children:A(r.installiert)}),t[2]=r.installiert,t[3]=a);let o;t[4]!==r.verfuegbar||t[5]!==r.zustand?(o=r.zustand===`neu`&&r.verfuegbar&&(0,F.jsxs)(`span`,{className:`text-cyan`,children:[`→ `,r.verfuegbar]}),t[4]=r.verfuegbar,t[5]=r.zustand,t[6]=o):o=t[6];let s;t[7]===r.zustand?s=t[8]:(s=r.zustand===`unbekannt`&&(0,F.jsx)(`span`,{className:`text-bernstein`,children:`unklar`}),t[7]=r.zustand,t[8]=s);let c;return t[9]!==i||t[10]!==a||t[11]!==o||t[12]!==s?(c=(0,F.jsxs)(`span`,{className:`ziffern flex flex-wrap gap-x-2 text-sm`,title:i,children:[a,o,s]}),t[9]=i,t[10]=a,t[11]=o,t[12]=s,t[13]=c):c=t[13],c}function L(e){let t=(0,N.c)(12),{b:n}=e,r=n.id===`docker`;if(n.zustand===`neu`){let e=n.kurz?`${n.kurz} offen`:`Update bereit`,r;return t[0]===e?r=t[1]:(r=(0,F.jsx)(`span`,{className:`text-cyan`,children:e}),t[0]=e,t[1]=r),r}if(n.zustand===`aktuell`){let e=r?`Images aktuell`:`aktuell`,n;return t[2]===e?n=t[3]:(n=(0,F.jsx)(`span`,{className:`text-text-2`,children:e}),t[2]=e,t[3]=n),n}let i;t[4]===n.grund?i=t[5]:(i=S(n.grund),t[4]=n.grund,t[5]=i);let a=i,o=n.grund??void 0,s=r?`Images unklar`:`unklar`,c;t[6]===a?c=t[7]:(c=a&&(0,F.jsxs)(`span`,{className:`text-text-3`,children:[` · Listen vom `,a]}),t[6]=a,t[7]=c);let l;return t[8]!==o||t[9]!==s||t[10]!==c?(l=(0,F.jsxs)(`span`,{className:`text-text-2`,title:o,children:[s,c]}),t[8]=o,t[9]=s,t[10]=c,t[11]=l):l=t[11],l}function R(e){let n=(0,N.c)(14),{ziel:r}=e,i=m(r);if(i===null){let e;return n[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,F.jsx)(`span`,{className:`text-text-3`,children:`–`}),n[0]=e):e=n[0],e}let a=i>=.95?`text-rot-text`:i>=.85?`text-bernstein`:`text-text-2`,o=z,s;n[1]===a?s=n[2]:(s=t(`ziffern text-sm`,a),n[1]=a,n[2]=s);let c;n[3]===r.platte.belegt?c=n[4]:(c=o(r.platte.belegt),n[3]=r.platte.belegt,n[4]=c);let l;n[5]===r.platte.gesamt?l=n[6]:(l=o(r.platte.gesamt),n[5]=r.platte.gesamt,n[6]=l);let u=`${c} von ${l} GB belegt`,d;n[7]===i?d=n[8]:(d=Math.round(i*100),n[7]=i,n[8]=d);let f=Math.min(100,d),p=i>=.95?` voll`:``,h;return n[9]!==s||n[10]!==u||n[11]!==f||n[12]!==p?(h=(0,F.jsxs)(`span`,{className:s,title:u,children:[f,` %`,p]}),n[9]=s,n[10]=u,n[11]=f,n[12]=p,n[13]=h):h=n[13],h}function z(e){return(e/1e9).toFixed(1).replace(`.`,`,`)}function B(e){let n=(0,N.c)(45),{ziel:r,laeuft:a,gesperrt:o,onFrage:s}=e,c;n[0]===r?c=n[1]:(c=y(r),n[0]=r,n[1]=c);let l=c,u;n[2]===r?u=n[3]:(u=O(r),n[2]=r,n[3]=u);let d=u,f=d?.zustand===`unbekannt`?d.aktion:null,p;n[4]===r.name?p=n[5]:(p=(0,F.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:r.name}),n[4]=r.name,n[5]=p);let m;n[6]===r?m=n[7]:(m=D(r)!==r.name&&(0,F.jsx)(`span`,{className:`text-sm text-text-3`,children:D(r)}),n[6]=r,n[7]=m);let g;n[8]===a?g=n[9]:(g=a&&(0,F.jsxs)(`span`,{role:`status`,className:`text-sm text-cyan`,children:[`Update läuft: `,a]}),n[8]=a,n[9]=g);let _;n[10]!==p||n[11]!==m||n[12]!==g?(_=(0,F.jsxs)(`div`,{role:`rowheader`,className:`flex min-w-0 flex-col`,children:[p,m,g]}),n[10]=p,n[11]=m,n[12]=g,n[13]=_):_=n[13];let v;n[14]!==l||n[15]!==r?(v=(0,F.jsx)(`span`,{role:`cell`,className:`col-span-2 md:col-span-1`,children:(0,F.jsx)(I,{ziel:r,b:l})}),n[14]=l,n[15]=r,n[16]=v):v=n[16];let b;n[17]===d?b=n[18]:(b=(0,F.jsx)(`span`,{className:`min-w-0`,children:d?(0,F.jsx)(L,{b:d}):(0,F.jsx)(`span`,{className:`text-text-3`,children:`–`})}),n[17]=d,n[18]=b);let x;n[19]!==o||n[20]!==a||n[21]!==s||n[22]!==f||n[23]!==r?(x=f&&(0,F.jsx)(i,{variant:`ghost`,size:`icon-sm`,className:`-my-2 shrink-0`,"aria-label":f.label,title:f.label,disabled:o||!!a,onClick:()=>s({ziel:r,aktion:f}),children:(0,F.jsx)(h,{})}),n[19]=o,n[20]=a,n[21]=s,n[22]=f,n[23]=r,n[24]=x):x=n[24];let S;n[25]!==b||n[26]!==x?(S=(0,F.jsxs)(`span`,{role:`cell`,className:`col-span-2 flex items-center gap-x-2 text-sm md:col-span-1`,children:[b,x]}),n[25]=b,n[26]=x,n[27]=S):S=n[27];let C;n[28]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,F.jsx)(`span`,{className:`text-sm text-text-3 md:hidden`,children:`Platte `}),n[28]=C):C=n[28];let w;n[29]===r?w=n[30]:(w=(0,F.jsxs)(`span`,{role:`cell`,className:`col-span-2 md:col-span-1`,children:[C,(0,F.jsx)(R,{ziel:r})]}),n[29]=r,n[30]=w);let T=r.erreichbar===!1?`text-rot-text`:`text-text-3`,E;n[31]===T?E=n[32]:(E=t(`schild col-start-2 row-start-1 flex items-center gap-1.5 self-start text-xs md:col-start-auto md:row-start-auto md:self-center`,T),n[31]=T,n[32]=E);let k;n[33]===r.erreichbar?k=n[34]:(k=r.erreichbar!==null&&(0,F.jsx)(`span`,{"aria-hidden":!0,className:t(`size-2 rounded-full`,r.erreichbar?`bg-gruen`:`bg-rot`)}),n[33]=r.erreichbar,n[34]=k);let A=r.erreichbar===null?`–`:r.erreichbar?`erreichbar`:`antwortet nicht`,j;n[35]!==E||n[36]!==k||n[37]!==A?(j=(0,F.jsxs)(`span`,{role:`cell`,className:E,children:[k,A]}),n[35]=E,n[36]=k,n[37]=A,n[38]=j):j=n[38];let M;return n[39]!==S||n[40]!==w||n[41]!==j||n[42]!==_||n[43]!==v?(M=(0,F.jsxs)(`div`,{role:`row`,className:`grid grid-cols-[minmax(0,1fr)_auto] gap-x-4 gap-y-1 border-t border-linie py-3 md:grid-cols-[minmax(0,1.2fr)_minmax(0,1fr)_minmax(0,1.5fr)_90px_130px] md:items-center`,children:[_,v,S,w,j]}),n[39]=S,n[40]=w,n[41]=j,n[42]=_,n[43]=v,n[44]=M):M=n[44],M}function V(e){let t=(0,N.c)(24),{ziele:n,laufend:r,gesperrt:i,onAktion:a}=e,[o,s]=(0,P.useState)(null),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,F.jsxs)(`div`,{role:`row`,className:`schild hidden grid-cols-[minmax(0,1.2fr)_minmax(0,1fr)_minmax(0,1.5fr)_90px_130px] gap-x-4 pb-2 text-xs font-semibold text-text-3 md:grid`,children:[(0,F.jsx)(`span`,{role:`columnheader`,children:`Gerät`}),(0,F.jsx)(`span`,{role:`columnheader`,children:`App`}),(0,F.jsx)(`span`,{role:`columnheader`,children:`Pakete`}),(0,F.jsx)(`span`,{role:`columnheader`,children:`Platte`}),(0,F.jsx)(`span`,{role:`columnheader`,children:`Netz`})]}),t[0]=c):c=t[0];let l;if(t[1]!==i||t[2]!==r||t[3]!==n){let e;t[5]!==i||t[6]!==r?(e=e=>(0,F.jsx)(B,{ziel:e,laeuft:r.get(e.id)??null,gesperrt:i,onFrage:s},e.id),t[5]=i,t[6]=r,t[7]=e):e=t[7],l=n.map(e),t[1]=i,t[2]=r,t[3]=n,t[4]=l}else l=t[4];let u;t[8]===l?u=t[9]:(u=(0,F.jsxs)(`div`,{role:`table`,"aria-label":`Geräte im Homelab`,className:`flex flex-col`,children:[c,l]}),t[8]=l,t[9]=u);let d=!!o,f=o?`${o.ziel.name}: ${o.aktion.label}`:``,p=o?.aktion.frage??``,m=o?.aktion.label??``,h;t[10]!==o||t[11]!==a?(h=()=>{o&&a(o.aktion),s(null)},t[10]=o,t[11]=a,t[12]=h):h=t[12];let g;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(g=()=>s(null),t[13]=g):g=t[13];let _;t[14]!==i||t[15]!==d||t[16]!==f||t[17]!==p||t[18]!==m||t[19]!==h?(_=(0,F.jsx)(M,{offen:d,titel:f,text:p,knopf:m,gesperrt:i,onJa:h,onNein:g}),t[14]=i,t[15]=d,t[16]=f,t[17]=p,t[18]=m,t[19]=h,t[20]=_):_=t[20];let v;return t[21]!==_||t[22]!==u?(v=(0,F.jsxs)(F.Fragment,{children:[u,_]}),t[21]=_,t[22]=u,t[23]=v):v=t[23],v}function H(e){let n=(0,N.c)(24),{lage:r,lampen:i,onAnsehen:a}=e,o=r.ziel!==null,s=!o,c=`${r.oben} ${r.mitte}`,l=w[r.art],u=o?`cursor-pointer`:`cursor-default`,d;n[0]!==l||n[1]!==u?(d=t(`flex min-h-[130px] flex-col items-center justify-center gap-1 rounded-2xl border px-4 py-4 font-anzeige transition-colors`,l,u),n[0]=l,n[1]=u,n[2]=d):d=n[2];let f;n[3]===r.oben?f=n[4]:(f=(0,F.jsx)(`span`,{className:`schild text-sm tracking-[0.26em]`,children:r.oben}),n[3]=r.oben,n[4]=f);let p;n[5]===r.mitte?p=n[6]:(p=(0,F.jsx)(`span`,{className:`text-center text-[34px] leading-none font-bold tracking-[0.04em] sm:text-[38px]`,children:r.mitte}),n[5]=r.mitte,n[6]=p);let m;n[7]===r.unten?m=n[8]:(m=(0,F.jsx)(`span`,{className:`font-sans text-sm opacity-80`,children:r.unten}),n[7]=r.unten,n[8]=m);let h;n[9]!==a||n[10]!==s||n[11]!==c||n[12]!==d||n[13]!==f||n[14]!==p||n[15]!==m?(h=(0,F.jsxs)(`button`,{type:`button`,onClick:a,disabled:s,"aria-label":c,className:d,children:[f,p,m]}),n[9]=a,n[10]=s,n[11]=c,n[12]=d,n[13]=f,n[14]=p,n[15]=m,n[16]=h):h=n[16];let g;n[17]===i?g=n[18]:(g=i.map(U),n[17]=i,n[18]=g);let _;n[19]===g?_=n[20]:(_=(0,F.jsx)(`ul`,{"aria-label":`Geräte`,className:`grid grid-cols-2 gap-2.5 rounded-2xl border border-linie bg-panel p-3 sm:grid-cols-4`,children:g}),n[19]=g,n[20]=_);let v;return n[21]!==_||n[22]!==h?(v=(0,F.jsxs)(`section`,{"aria-label":`Lage im Homelab`,className:`grid gap-4 md:grid-cols-[260px_minmax(0,1fr)] md:gap-5`,children:[h,_]}),n[21]=_,n[22]=h,n[23]=v):v=n[23],v}function U(e){return(0,F.jsx)(T,{lampe:e},e.id)}function W(e){let t=(0,N.c)(47),{u:n,laeuft:r,gesperrt:a,onFrage:o}=e,{ziel:s,baustein:c}=n,l=c.id===`app`||c.id===`arcane`,f=c.installiert??`–`,p;t[0]===c?p=t[1]:(p=b(c),t[0]=c,t[1]=p);let m=p,h;t[2]!==c.aktion||t[3]!==c.grund||t[4]!==s?(h=c.aktion?u(s):c.grund??`Wird nicht über den Orchestrator eingespielt.`,t[2]=c.aktion,t[3]=c.grund,t[4]=s,t[5]=h):h=t[5];let g=h,_;if(r){let e;t[6]===r?e=t[7]:(e=(0,F.jsxs)(`span`,{role:`status`,className:`text-sm text-cyan`,children:[`Läuft: `,r]}),t[6]=r,t[7]=e),_=e}else if(c.aktion){let e=c.aktion,n;t[8]!==e||t[9]!==o||t[10]!==s?(n=()=>o({ziel:s,aktion:e}),t[8]=e,t[9]=o,t[10]=s,t[11]=n):n=t[11];let r;t[12]!==e.label||t[13]!==a||t[14]!==n?(r=(0,F.jsx)(i,{variant:`outline`,size:`sm`,disabled:a,onClick:n,children:e.label}),t[12]=e.label,t[13]=a,t[14]=n,t[15]=r):r=t[15],_=r}let v;t[16]===s.name?v=t[17]:(v=(0,F.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:s.name}),t[16]=s.name,t[17]=v);let y;t[18]!==c||t[19]!==s?(y=d(s,c),t[18]=c,t[19]=s,t[20]=y):y=t[20];let x;t[21]===y?x=t[22]:(x=(0,F.jsx)(`span`,{className:`text-sm text-text-3`,children:y}),t[21]=y,t[22]=x);let S;t[23]!==v||t[24]!==x?(S=(0,F.jsxs)(`div`,{role:`rowheader`,className:`flex min-w-0 flex-col`,children:[v,x]}),t[23]=v,t[24]=x,t[25]=S):S=t[25];let C;t[26]!==f||t[27]!==l||t[28]!==c.installiert||t[29]!==m?(C=(0,F.jsx)(`span`,{role:`cell`,className:`ziffern text-sm text-text-2 md:hidden`,children:l&&c.installiert?(0,F.jsxs)(F.Fragment,{children:[f,` → `,(0,F.jsx)(`span`,{className:`text-cyan`,children:m})]}):(0,F.jsx)(`span`,{className:`text-cyan`,children:m})}),t[26]=f,t[27]=l,t[28]=c.installiert,t[29]=m,t[30]=C):C=t[30];let w;t[31]===f?w=t[32]:(w=(0,F.jsx)(`span`,{role:`cell`,className:`ziffern hidden text-sm text-text-2 md:block`,children:f}),t[31]=f,t[32]=w);let T;t[33]===m?T=t[34]:(T=(0,F.jsx)(`span`,{role:`cell`,className:`ziffern hidden text-sm text-cyan md:block`,children:m}),t[33]=m,t[34]=T);let E=c.aktion?`text-sm text-text-2`:`text-sm text-text-3`,D;t[35]!==g||t[36]!==E?(D=(0,F.jsx)(`span`,{role:`cell`,className:E,children:g}),t[35]=g,t[36]=E,t[37]=D):D=t[37];let O;t[38]===_?O=t[39]:(O=(0,F.jsx)(`span`,{role:`cell`,className:`flex md:justify-end`,children:_}),t[38]=_,t[39]=O);let k;return t[40]!==D||t[41]!==O||t[42]!==S||t[43]!==C||t[44]!==w||t[45]!==T?(k=(0,F.jsxs)(`div`,{role:`row`,className:`grid grid-cols-1 gap-x-4 gap-y-1.5 border-t border-linie py-3.5 md:grid-cols-[210px_120px_140px_minmax(0,1fr)_auto] md:items-center`,children:[S,C,w,T,D,O]}),t[40]=D,t[41]=O,t[42]=S,t[43]=C,t[44]=w,t[45]=T,t[46]=k):k=t[46],k}function G(e){let t=(0,N.c)(21),{updates:n,laufend:r,gesperrt:i,onAktion:a}=e,[o,s]=(0,P.useState)(null),c;t[0]!==i||t[1]!==r||t[2]!==n?(c=n.length===0?(0,F.jsx)(`p`,{className:`text-[15px] text-gruen`,children:`Im Homelab ist alles aktuell.`}):(0,F.jsxs)(`div`,{role:`table`,"aria-label":`Offene Updates im Homelab`,className:`flex flex-col`,children:[(0,F.jsxs)(`div`,{role:`row`,className:`schild hidden grid-cols-[210px_120px_140px_minmax(0,1fr)_auto] gap-x-4 pb-2 text-xs font-semibold text-text-3 md:grid`,children:[(0,F.jsx)(`span`,{role:`columnheader`,children:`Gerät`}),(0,F.jsx)(`span`,{role:`columnheader`,children:`Läuft`}),(0,F.jsx)(`span`,{role:`columnheader`,children:`Neu`}),(0,F.jsx)(`span`,{role:`columnheader`,children:`Rückweg`}),(0,F.jsx)(`span`,{role:`columnheader`,className:`sr-only`,children:`Aktion`})]}),n.map(e=>(0,F.jsx)(W,{u:e,laeuft:r.get(e.ziel.id)??null,gesperrt:i||r.has(e.ziel.id),onFrage:s},`${e.ziel.id}-${e.baustein.id}`))]}),t[0]=i,t[1]=r,t[2]=n,t[3]=c):c=t[3];let l=!!o,u=o?`${o.ziel.name}: ${o.aktion.label}`:``,d=o?.aktion.frage??``,f=o?.aktion.label??``,p;t[4]===o?.aktion.pfad?p=t[5]:(p=o?.aktion.pfad.endsWith(`/neustart`),t[4]=o?.aktion.pfad,t[5]=p);let m=!!p,h;t[6]!==o||t[7]!==a?(h=()=>{o&&a(o.aktion),s(null)},t[6]=o,t[7]=a,t[8]=h):h=t[8];let g;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(g=()=>s(null),t[9]=g):g=t[9];let _;t[10]!==i||t[11]!==l||t[12]!==u||t[13]!==d||t[14]!==f||t[15]!==m||t[16]!==h?(_=(0,F.jsx)(M,{offen:l,titel:u,text:d,knopf:f,gefahr:m,gesperrt:i,onJa:h,onNein:g}),t[10]=i,t[11]=l,t[12]=u,t[13]=d,t[14]=f,t[15]=m,t[16]=h,t[17]=_):_=t[17];let v;return t[18]!==c||t[19]!==_?(v=(0,F.jsxs)(F.Fragment,{children:[c,_]}),t[18]=c,t[19]=_,t[20]=v):v=t[20],v}var K=[`Proxmox-Host`,`AdGuard`,`NPMplus`,`NetBird`,`PVE Scripts Local`,`Gitea`,`PBS`,`Arcane mit Docker`],q={eingespielt:{art:`gruen`,text:`eingespielt`},zurueckgerollt:{art:`bernstein`,text:`zurückgerollt`},fehler:{art:`rot`,text:`Fehler`},neustart:{art:`cyan`,text:`Neustart`}},J=e=>E(new Date(e*1e3).toISOString());function Y(){let e=(0,N.c)(4),t,n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,F.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Der Homelab-Teil läuft als eigene Instanz in einem kleinen Container auf dem Proxmox-PC. Von dort prüft er auch die KI-Box von außen.`}),n=(0,F.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Steht er, erscheinen hier alle Geräte mit ihren offenen Updates. Ein Update startest du mit „Jetzt updaten“: Vorher wird gesichert, danach die Erreichbarkeit geprüft, und ist sie rot, geht es von selbst zurück.`}),e[0]=t,e[1]=n):(t=e[0],n=e[1]);let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,F.jsx)(`h3`,{className:`schild text-sm tracking-[0.18em] text-text-3`,children:`Dazu kommen`}),e[2]=r):r=e[2];let i;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,F.jsxs)(F.Fragment,{children:[t,n,(0,F.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[r,(0,F.jsx)(`ul`,{className:`flex flex-wrap gap-2`,children:K.map(X)})]}),(0,F.jsx)(`p`,{className:`text-sm text-text-3`,children:`Der Container wird erst nach deiner Freigabe angelegt.`})]}),e[3]=i):i=e[3],i}function X(e){return(0,F.jsx)(`li`,{children:(0,F.jsx)(C,{children:e})},e)}function Z(e){let t=(0,N.c)(9),{partner:n}=e,r;t[0]===n.eingerichtet?r=t[1]:(r=n.eingerichtet?(0,F.jsx)(C,{art:`rot`,children:`Antwortet nicht`}):(0,F.jsx)(C,{children:`Noch nicht eingerichtet`}),t[0]=n.eingerichtet,t[1]=r);let i=r,a;t[2]!==n.eingerichtet||t[3]!==n.fehler||t[4]!==n.url?(a=n.eingerichtet?(0,F.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Der Homelab-Teil (`,n.url,`) ist `,n.fehler??`nicht erreichbar`,`. Hält das an, meldet der Wächter es nach fünf Minuten auf Telegram.`]}):(0,F.jsx)(Y,{}),t[2]=n.eingerichtet,t[3]=n.fehler,t[4]=n.url,t[5]=a):a=t[5];let o;return t[6]!==i||t[7]!==a?(o=(0,F.jsx)(x,{titel:`Homelab`,rechts:i,children:a}),t[6]=i,t[7]=a,t[8]=o):o=t[8],o}function ee(e){let t=(0,N.c)(10),{hinweise:n}=e,r=n.some(ne)?`rot`:`bernstein`,i;t[0]!==n.length||t[1]!==r?(i=(0,F.jsxs)(C,{art:r,children:[n.length,` offen`]}),t[0]=n.length,t[1]=r,t[2]=i):i=t[2];let a;t[3]===n?a=t[4]:(a=n.map(te),t[3]=n,t[4]=a);let o;t[5]===a?o=t[6]:(o=(0,F.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:a}),t[5]=a,t[6]=o);let s;return t[7]!==i||t[8]!==o?(s=(0,F.jsx)(x,{titel:`Hinweise`,id:`hinweise`,rechts:i,children:o}),t[7]=i,t[8]=o,t[9]=s):s=t[9],s}function te(e){return(0,F.jsxs)(`li`,{className:`flex flex-col gap-1 border-t border-linie py-3 first:border-t-0 first:pt-0`,children:[(0,F.jsx)(`span`,{className:e.stufe===`rot`?`text-[15px] font-medium text-rot-text`:`text-[15px] font-medium text-bernstein`,children:e.titel}),(0,F.jsx)(`span`,{className:`text-sm text-text-2`,children:e.text})]},e.id)}function ne(e){return e.stufe===`rot`}function re(e){let t=(0,N.c)(8),{laeufe:n}=e,r,i,a;if(t[0]!==n){a=Symbol.for(`react.early_return_sentinel`);bb0:{let e=n.filter(ae).slice(0,12);if(e.length===0){let e;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,F.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Noch kein Update im Homelab eingespielt.`}),t[4]=e):e=t[4],a=e;break bb0}r=`@container m-0 flex list-none flex-col p-0`,i=e.map(ie)}t[0]=n,t[1]=r,t[2]=i,t[3]=a}else r=t[1],i=t[2],a=t[3];if(a!==Symbol.for(`react.early_return_sentinel`))return a;let o;return t[5]!==r||t[6]!==i?(o=(0,F.jsx)(`ol`,{className:r,children:i}),t[5]=r,t[6]=i,t[7]=o):o=t[7],o}function ie(e){let t=e.ergebnis?q[e.ergebnis]:{art:`grau`,text:`unterbrochen`};return(0,F.jsxs)(`li`,{className:`flex flex-col gap-1.5 border-t border-linie py-3 first:border-t-0 first:pt-0`,children:[(0,F.jsxs)(`div`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 gap-y-1 @sm:grid-cols-[112px_minmax(0,1fr)_auto]`,children:[(0,F.jsx)(`span`,{className:`ziffern col-start-1 row-start-1 text-sm text-text-3`,children:J(e.start)}),(0,F.jsx)(`span`,{className:`col-span-2 row-start-2 min-w-0 text-[15px] break-words @sm:col-span-1 @sm:col-start-2 @sm:row-start-1`,children:e.name}),(0,F.jsx)(`span`,{className:`col-start-2 row-start-1 justify-self-end @sm:col-start-3`,children:(0,F.jsx)(C,{art:t.art,children:t.text})})]}),e.text&&(0,F.jsx)(`p`,{className:`m-0 text-sm text-text-2 @sm:pl-[124px]`,children:e.text})]},e.id)}function ae(e){return e.status!==`laeuft`}function Q(e){let t=(0,N.c)(9),{stand:n}=e;if(!n.ausfuehrer.verbunden){let e;t[0]===n.ausfuehrer.zuletzt?e=t[1]:(e=n.ausfuehrer.zuletzt?` (zuletzt ${J(n.ausfuehrer.zuletzt)})`:``,t[0]=n.ausfuehrer.zuletzt,t[1]=e);let r;return t[2]===e?r=t[3]:(r=(0,F.jsxs)(`p`,{role:`alert`,className:`rounded-xl border border-bernstein/60 bg-bernstein-grund px-4 py-3 text-[15px] text-bernstein`,children:[`Der Ausführer auf dem Proxmox-Host meldet sich nicht`,e,`. Die Geräte zeigen den letzten bekannten Stand; Updates starten erst, wenn er wieder da ist.`]}),t[2]=e,t[3]=r),r}if(!n.bericht){let e;return t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,F.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Der Ausführer hat noch keinen Bericht geschickt.`}),t[4]=e):e=t[4],e}if(n.bericht.veraltet){let e;t[5]===n.bericht.empfangen?e=t[6]:(e=J(n.bericht.empfangen),t[5]=n.bericht.empfangen,t[6]=e);let r;return t[7]===e?r=t[8]:(r=(0,F.jsxs)(`p`,{className:`text-[15px] text-bernstein`,children:[`Der letzte Bericht ist von `,e,`; die Angaben können veraltet sein.`]}),t[7]=e,t[8]=r),r}return null}function $(){let e=(0,N.c)(20),t=c(),n=j(),r=t.data?.rolle===`homelab`||!!(n.data?.eingerichtet&&n.data.erreichbar),i=l(r),a=s(r),u=v(r),d=o(),f=null;if(t.isPending||n.isPending){let t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,F.jsx)(_,{text:`Wird gelesen …`}),e[0]=t):t=e[0],f=t}else if(!r){let t;e[1]!==n.data||e[2]!==n.error?.message?(t=n.data?(0,F.jsx)(Z,{partner:n.data}):(0,F.jsx)(_,{fehler:!0,text:`Der Partner lässt sich nicht abfragen: ${n.error?.message??`keine Daten`}`}),e[1]=n.data,e[2]=n.error?.message,e[3]=t):t=e[3],f=t}else if(i.isPending){let t;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,F.jsx)(_,{text:`Der Homelab-Teil meldet sich gleich …`}),e[4]=t):t=e[4],f=t}else if(!i.data){let t=`Der Homelab-Teil antwortet nicht: ${i.error?.message??`keine Daten`}`,n;e[5]===t?n=e[6]:(n=(0,F.jsx)(_,{fehler:!0,text:t}),e[5]=t,e[6]=n),f=n}let p;if(e[7]!==a.data?.laeufe){p=new Map;for(let e of a.data?.laeufe??[])e.status===`laeuft`&&p.set(e.ziel,e.schritte.at(-1)??`startet …`);e[7]=a.data?.laeufe,e[8]=p}else p=e[8];let m;e[9]===a.data?.laeufe?m=e[10]:(m=a.data?.laeufe??[],e[9]=a.data?.laeufe,e[10]=m);let h;e[11]===u.data?.hinweise?h=e[12]:(h=u.data?.hinweise??[],e[11]=u.data?.hinweise,e[12]=h);let g;return e[13]!==d||e[14]!==f||e[15]!==i.data||e[16]!==p||e[17]!==m||e[18]!==h?(g={ersatz:f,stand:i.data,laufend:p,laeufe:m,hinweise:h,aktion:d},e[13]=d,e[14]=f,e[15]=i.data,e[16]=p,e[17]=m,e[18]=h,e[19]=g):g=e[19],g}function oe(){let e=(0,N.c)(38),t=k(),{ersatz:n,stand:r,laufend:i,hinweise:a,aktion:o}=$();if(n||!r)return n;let s,c;e[0]!==a||e[1]!==i.size||e[2]!==r?(s=r.bericht?J(r.bericht.empfangen):null,c=f(r,a,i.size,s),e[0]=a,e[1]=i.size,e[2]=r,e[3]=s,e[4]=c):(s=e[3],c=e[4]);let l=c,u;if(e[5]!==i||e[6]!==r.ziele){let t;e[8]===i?t=e[9]:(t=e=>p(e,i.has(e.id)),e[8]=i,e[9]=t),u=r.ziele.map(t),e[5]=i,e[6]=r.ziele,e[7]=u}else u=e[7];let d;e[10]!==l.ziel||e[11]!==t?(d=()=>{l.ziel===`updates`?t({to:`/homelab/updates`}):l.ziel&&document.getElementById(l.ziel)?.scrollIntoView({behavior:`smooth`,block:`start`})},e[10]=l.ziel,e[11]=t,e[12]=d):d=e[12];let m;e[13]!==l||e[14]!==u||e[15]!==d?(m=(0,F.jsx)(H,{lage:l,lampen:u,onAnsehen:d}),e[13]=l,e[14]=u,e[15]=d,e[16]=m):m=e[16];let h;e[17]===r?h=e[18]:(h=(0,F.jsx)(Q,{stand:r}),e[17]=r,e[18]=h);let g;e[19]===a?g=e[20]:(g=a.length>0&&(0,F.jsx)(ee,{hinweise:a}),e[19]=a,e[20]=g);let _;e[21]===s?_=e[22]:(_=s?(0,F.jsxs)(`span`,{className:`ziffern text-sm text-text-3`,children:[`Stand `,s]}):void 0,e[21]=s,e[22]=_);let v;e[23]===o?v=e[24]:(v=e=>o.mutate(e),e[23]=o,e[24]=v);let y;e[25]!==o.isPending||e[26]!==i||e[27]!==r.ziele||e[28]!==v?(y=(0,F.jsx)(V,{ziele:r.ziele,laufend:i,gesperrt:o.isPending,onAktion:v}),e[25]=o.isPending,e[26]=i,e[27]=r.ziele,e[28]=v,e[29]=y):y=e[29];let b;e[30]!==_||e[31]!==y?(b=(0,F.jsx)(x,{titel:`Geräte`,id:`geraete`,rechts:_,children:y}),e[30]=_,e[31]=y,e[32]=b):b=e[32];let S;return e[33]!==m||e[34]!==h||e[35]!==g||e[36]!==b?(S=(0,F.jsxs)(F.Fragment,{children:[m,h,g,b]}),e[33]=m,e[34]=h,e[35]=g,e[36]=b,e[37]=S):S=e[37],S}function se(){let e=(0,N.c)(20),{ersatz:t,stand:n,laufend:r,laeufe:i,aktion:a}=$();if(t||!n)return t;let o;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,F.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Du startest jedes Update selbst. Vorher wird gesichert, danach geprüft; ist die Prüfung rot, geht es von selbst zurück.`}),e[0]=o):o=e[0];let s;e[1]===n?s=e[2]:(s=(0,F.jsx)(Q,{stand:n}),e[1]=n,e[2]=s);let c;e[3]===n.ziele?c=e[4]:(c=g(n.ziele),e[3]=n.ziele,e[4]=c);let l=a.isPending||!n.ausfuehrer.verbunden,u;e[5]===a?u=e[6]:(u=e=>a.mutate(e),e[5]=a,e[6]=u);let d;e[7]!==r||e[8]!==c||e[9]!==l||e[10]!==u?(d=(0,F.jsx)(G,{updates:c,laufend:r,gesperrt:l,onAktion:u}),e[7]=r,e[8]=c,e[9]=l,e[10]=u,e[11]=d):d=e[11];let f;e[12]!==s||e[13]!==d?(f=(0,F.jsxs)(x,{titel:`Updates`,children:[o,s,d]}),e[12]=s,e[13]=d,e[14]=f):f=e[14];let p;e[15]===i?p=e[16]:(p=(0,F.jsx)(x,{titel:`Verlauf`,children:(0,F.jsx)(re,{laeufe:i})}),e[15]=i,e[16]=p);let m;return e[17]!==f||e[18]!==p?(m=(0,F.jsxs)(F.Fragment,{children:[f,p]}),e[17]=f,e[18]=p,e[19]=m):m=e[19],m}export{oe as HomelabSeite,se as HomelabUpdatesSeite}; |