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
19 KiB
JavaScript
1 line
19 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{Ct as o,E as s,J as c,K as l,M as u,St as d,U as f,X as p,_t as m,ht as h,mt as g,ot as _}from"./index-BAH01Yfc.js";import{a as v,i as y,n as b,r as x,t as S}from"./sheet-CKp82pOA.js";import{t as C}from"./Bestaetigen-CE_3b0PK.js";var w=r(),T=n(a(),1),E=e(),D=[`Montag`,`Dienstag`,`Mittwoch`,`Donnerstag`,`Freitag`,`Samstag`,`Sonntag`],O=Array.from({length:48},(e,t)=>`${String(Math.floor(t/2)).padStart(2,`0`)}:${t%2?`30`:`00`}`),k=new Intl.DateTimeFormat(`de-DE`,{day:`2-digit`,month:`2-digit`,year:`numeric`,hour:`2-digit`,minute:`2-digit`,timeZone:`Europe/Berlin`});function A(e){let t=e?new Date(e):null;return t&&!Number.isNaN(t.getTime())?k.format(t):`–`}function j(e,t){let n=Number(t.slice(0,2)),r=n*60+179,i=e;r>=1440&&(r-=1440,i=e%7+1);let a=e=>String(e).padStart(2,`0`),o=`${a(n)}:00`,s=`${a(Math.floor(r/60))}:${a(r%60)}`;return i===e?`${D[e-1]} ${o}–${s}`:`${D[e-1]} ${o} – ${D[i-1]} ${s}`}function M(e){let n=(0,w.c)(9),{titel:r,children:i,zuletzt:a}=e,o=a&&`pb-4`,s;n[0]===o?s=n[1]:(s=t(`flex flex-col gap-3 border-t border-linie px-4 pt-4`,o),n[0]=o,n[1]=s);let c;n[2]===r?c=n[3]:(c=(0,E.jsx)(`h3`,{className:`schild text-sm text-text-3`,children:r}),n[2]=r,n[3]=c);let l;return n[4]!==i||n[5]!==s||n[6]!==c||n[7]!==r?(l=(0,E.jsxs)(`section`,{"aria-label":r,className:s,children:[c,i]}),n[4]=i,n[5]=s,n[6]=c,n[7]=r,n[8]=l):l=n[8],l}function N(e){let t=(0,w.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,E.jsx)(`p`,{className:`text-sm text-bernstein`,children:n}),t[0]=n,t[1]=r),r}function ee(e){let t=(0,w.c)(3),{laedt:n,fehler:r}=e;if(n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,E.jsx)(`p`,{className:`text-sm text-text-2`,children:`Wird gelesen …`}),t[0]=e):e=t[0],e}let i=r?`: ${r}`:`.`,a;return t[1]===i?a=t[2]:(a=(0,E.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Lässt sich gerade nicht lesen`,i]}),t[1]=i,t[2]=a),a}function P({offen:e}){let t=o(),n=d({queryKey:[`geheimnisse`],queryFn:()=>g(`/api/maintenance/geheimnisse`),enabled:e}),[r,a]=(0,T.useState)(``),[s,c]=(0,T.useState)(!1),[l,u]=(0,T.useState)(!1);async function f(e){if(!s){c(!0),u(!1);try{await h(`/api/maintenance/geheimnisse`,{schluessel:`hf_token`,wert:e}),_(`erfolg`,e?`Hugging-Face-Zugang gespeichert.`:`Hugging-Face-Zugang gelöscht.`),a(``),t.invalidateQueries({queryKey:[`geheimnisse`]})}catch(e){_(`fehler`,e.message)}finally{c(!1)}}}let p=n.data,m;return m=n.isPending?`Wird gelesen …`:p?p.hf_token_gesetzt?`Ist hinterlegt.`:`Fehlt.`:`Lässt sich gerade nicht lesen${n.error?`: ${n.error.message}`:`.`}`,(0,E.jsxs)(M,{titel:`Hugging-Face-Zugang`,children:[(0,E.jsxs)(`p`,{className:`text-sm text-text-2`,"aria-live":`polite`,children:[(0,E.jsx)(`span`,{className:!p&&!n.isPending?`text-rot-text`:void 0,children:m}),` Nötig für gesperrte Modelle und schnellere Downloads.`,p?.hf_token_aus_env?` Er kommt aus der Dienst-Einstellung und lässt sich hier nicht löschen.`:``]}),p?.schreibbar===!1&&(0,E.jsx)(`p`,{className:`text-sm text-bernstein`,children:`Die Box kann den Zugang gerade nicht speichern: Ihre Ablage ist nicht beschreibbar.`}),(0,E.jsxs)(`form`,{className:`flex gap-2`,onSubmit:e=>{e.preventDefault(),r.trim()&&f(r.trim())},children:[(0,E.jsx)(`label`,{htmlFor:`hf-token`,className:`sr-only`,children:`Hugging-Face-Zugang`}),(0,E.jsx)(`input`,{id:`hf-token`,type:`password`,autoComplete:`off`,value:r,onChange:e=>a(e.target.value),placeholder:`hf_…`,className:`h-11 min-w-0 flex-1 rounded-lg border border-linie-stark bg-erhaben px-3 text-[15px] outline-none focus:border-cyan`}),(0,E.jsx)(i,{type:`submit`,disabled:!r.trim()||p?.schreibbar===!1||s,children:s?`Speichert …`:`Speichern`})]}),p?.hf_token_gesetzt&&!p.hf_token_aus_env&&(l?(0,E.jsxs)(`span`,{className:`flex flex-wrap gap-2`,children:[(0,E.jsx)(i,{variant:`gefahr`,size:`sm`,disabled:s,onClick:()=>f(null),children:`Wirklich löschen?`}),(0,E.jsx)(i,{variant:`ghost`,size:`sm`,onClick:()=>u(!1),children:`Nein`})]}):(0,E.jsx)(i,{variant:`ghost`,size:`sm`,className:`self-start`,disabled:s,onClick:()=>u(!0),children:`Zugang löschen`}))]})}function F(e){let t=(0,w.c)(24),{ziel:n,name:r}=e,a=c(),o=a.data,s=null;if(a.isPending){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,E.jsx)(`p`,{role:`status`,className:`text-sm text-text-2`,children:`Sendet …`}),t[0]=e):e=t[0],s=e}else if(o?.gesendet){let e=o.weg===`hermes`?`über Hermes`:`direkt an die Telegram-Bot-API`,n=o.kennung?`, Kennung ${o.kennung}`:``,r;t[1]!==e||t[2]!==n?(r=(0,E.jsxs)(`p`,{role:`status`,className:`text-sm text-gruen`,children:[`Gesendet `,e,n,`. Schau in Telegram nach.`]}),t[1]=e,t[2]=n,t[3]=r):r=t[3],s=r}else if(o){let e=o.grund??o.detail??`ohne Angabe eines Grundes.`,n;t[4]===e?n=t[5]:(n=(0,E.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Nicht gesendet: `,e]}),t[4]=e,t[5]=n),s=n}else if(a.error){let e;t[6]===a.error.message?e=t[7]:(e=(0,E.jsx)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:a.error.message}),t[6]=a.error.message,t[7]=e),s=e}let l;t[8]===r?l=t[9]:(l=(0,E.jsx)(`span`,{className:`text-[15px]`,children:r}),t[8]=r,t[9]=l);let u;t[10]!==a||t[11]!==n?(u=()=>a.mutate(n),t[10]=a,t[11]=n,t[12]=u):u=t[12];let d=`Testmeldung von ${r} senden`,f=a.isPending?`Sendet …`:`Test senden`,p;t[13]!==u||t[14]!==d||t[15]!==f||t[16]!==a.isPending?(p=(0,E.jsx)(i,{variant:`outline`,size:`sm`,disabled:a.isPending,onClick:u,"aria-label":d,children:f}),t[13]=u,t[14]=d,t[15]=f,t[16]=a.isPending,t[17]=p):p=t[17];let m;t[18]!==l||t[19]!==p?(m=(0,E.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[l,p]}),t[18]=l,t[19]=p,t[20]=m):m=t[20];let h;return t[21]!==s||t[22]!==m?(h=(0,E.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[m,s]}),t[21]=s,t[22]=m,t[23]=h):h=t[23],h}function I(){let e=(0,w.c)(9),t=u().data,n=t?.rolle??`box`,r=n===`box`?`homelab`:`box`,i=t?.instanz??(n===`box`?`Box-Wart`:`Homelab`),a;e[0]!==r||e[1]!==n||e[2]!==t||e[3]!==i?(a=[{ziel:n,name:i}],t?.partner.eingerichtet&&a.push({ziel:r,name:t.partner.name}),a.sort(R),e[0]=r,e[1]=n,e[2]=t,e[3]=i,e[4]=a):a=e[4];let o,s;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,E.jsx)(`p`,{className:`text-sm text-text-2`,children:`Dringende Hinweise gehen zusätzlich per Telegram raus, alles andere bleibt hier; was nachts anfällt, kommt um 07:00 als eine Morgenmeldung. Einfache Probleme wie einen abgestürzten Dienst behebt der Wächter selbst und schreibt es in den Verlauf.`}),s=(0,E.jsx)(`p`,{className:`text-sm text-text-2`,children:`Der Test schickt eine kurze Meldung über den echten Meldeweg, als dringend, damit sie auch nachts sofort kommt.`}),e[5]=o,e[6]=s):(o=e[5],s=e[6]);let c;return e[7]===a?c=e[8]:(c=(0,E.jsxs)(M,{titel:`Meldungen`,children:[o,s,a.map(L)]}),e[7]=a,e[8]=c),c}function L(e){return(0,E.jsx)(F,{ziel:e.ziel,name:e.name},e.ziel)}function R(e,t){return Number(e.ziel!==`box`)-Number(t.ziel!==`box`)}function z(e){let t=(0,w.c)(87),{e:n,laedt:r,fehler:a}=e,o=p(),[s,c]=(0,T.useState)(null),[l,u]=(0,T.useState)(!1);if(!n){let e;return t[0]!==a||t[1]!==r?(e=(0,E.jsx)(M,{titel:`Update-Zeitfenster`,children:(0,E.jsx)(ee,{laedt:r,fehler:a})}),t[0]=a,t[1]=r,t[2]=e):e=t[2],e}let d=n.update_fenster,f,m,h,g,_,v,y,b,x,S,k,P,F,I,L,R,z;if(t[3]!==n.schaltbar||t[4]!==s||t[5]!==d.naechster_lauf||t[6]!==d.neustart_fenster||t[7]!==d.tag||t[8]!==d.tag_name||t[9]!==d.timer_aktiv||t[10]!==d.uhrzeit||t[11]!==d.wirksam){z=s??{tag:d.tag,uhrzeit:d.uhrzeit},m=z.tag!==d.tag||z.uhrzeit!==d.uhrzeit;let e=O.includes(z.uhrzeit)?O:[...O,z.uhrzeit].sort();f=M,_=`Update-Zeitfenster`;let r;t[29]===d.naechster_lauf?r=t[30]:(r=d.naechster_lauf?` (nächster Lauf ${A(d.naechster_lauf)})`:``,t[29]=d.naechster_lauf,t[30]=r),t[31]!==d.neustart_fenster||t[32]!==d.tag_name||t[33]!==d.uhrzeit||t[34]!==r?(v=(0,E.jsxs)(`p`,{className:`text-sm text-text-2`,children:[`Die Box aktualisiert sich jeden `,d.tag_name,` um `,d.uhrzeit,` Uhr`,r,`. Neu gestartet wird sie danach nur`,` `,d.neustart_fenster,`.`]}),t[31]=d.neustart_fenster,t[32]=d.tag_name,t[33]=d.uhrzeit,t[34]=r,t[35]=v):v=t[35],t[36]!==n.schaltbar||t[37]!==d.timer_aktiv?(y=n.schaltbar&&!d.timer_aktiv&&(0,E.jsx)(N,{children:`Der Update-Timer läuft gerade nicht; er übernimmt das Fenster beim nächsten Start.`}),t[36]=n.schaltbar,t[37]=d.timer_aktiv,t[38]=y):y=t[38],t[39]!==n.schaltbar||t[40]!==d.wirksam?(b=n.schaltbar&&!d.wirksam&&(0,E.jsx)(N,{children:`Der Timer läuft noch nach einem anderen Plan als eingestellt. Einmal speichern gleicht es an.`}),t[39]=n.schaltbar,t[40]=d.wirksam,t[41]=b):b=t[41],R=`flex flex-wrap items-end gap-2`;let i=z.tag,a;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(a=D.map(ne),t[42]=a):a=t[42],g=(0,E.jsxs)(`label`,{className:`flex flex-col gap-1 text-xs text-text-3`,children:[`Tag`,(0,E.jsx)(`select`,{className:`h-11 rounded-lg border border-linie-stark bg-erhaben px-3 text-[15px] text-foreground outline-none focus:border-cyan`,value:i,disabled:!n.schaltbar,"aria-label":`Wochentag`,onChange:e=>c({...z,tag:Number(e.target.value)}),children:a})]}),I=`flex flex-col gap-1 text-xs text-text-3`,L=`Uhrzeit`,h=`h-11 rounded-lg border border-linie-stark bg-erhaben px-3 text-[15px] text-foreground outline-none focus:border-cyan`,x=z.uhrzeit,S=!n.schaltbar,k=`Uhrzeit`,P=e=>c({...z,uhrzeit:e.target.value}),F=e.map(te),t[3]=n.schaltbar,t[4]=s,t[5]=d.naechster_lauf,t[6]=d.neustart_fenster,t[7]=d.tag,t[8]=d.tag_name,t[9]=d.timer_aktiv,t[10]=d.uhrzeit,t[11]=d.wirksam,t[12]=f,t[13]=m,t[14]=h,t[15]=g,t[16]=_,t[17]=v,t[18]=y,t[19]=b,t[20]=x,t[21]=S,t[22]=k,t[23]=P,t[24]=F,t[25]=I,t[26]=L,t[27]=R,t[28]=z}else f=t[12],m=t[13],h=t[14],g=t[15],_=t[16],v=t[17],y=t[18],b=t[19],x=t[20],S=t[21],k=t[22],P=t[23],F=t[24],I=t[25],L=t[26],R=t[27],z=t[28];let B;t[43]!==h||t[44]!==x||t[45]!==S||t[46]!==k||t[47]!==P||t[48]!==F?(B=(0,E.jsx)(`select`,{className:h,value:x,disabled:S,"aria-label":k,onChange:P,children:F}),t[43]=h,t[44]=x,t[45]=S,t[46]=k,t[47]=P,t[48]=F,t[49]=B):B=t[49];let V;t[50]!==B||t[51]!==I||t[52]!==L?(V=(0,E.jsxs)(`label`,{className:I,children:[L,B]}),t[50]=B,t[51]=I,t[52]=L,t[53]=V):V=t[53];let H=!n.schaltbar||o.isPending||!m&&d.wirksam,U;t[54]===Symbol.for(`react.memo_cache_sentinel`)?(U=()=>u(!0),t[54]=U):U=t[54];let W=o.isPending?`Speichert …`:`Speichern`,G;t[55]!==H||t[56]!==W?(G=(0,E.jsx)(i,{disabled:H,onClick:U,children:W}),t[55]=H,t[56]=W,t[57]=G):G=t[57];let K;t[58]!==g||t[59]!==V||t[60]!==G||t[61]!==R?(K=(0,E.jsxs)(`div`,{className:R,children:[g,V,G]}),t[58]=g,t[59]=V,t[60]=G,t[61]=R,t[62]=K):K=t[62];let q=n.schaltbar?``:` Einstellen lässt es sich nur auf der Box.`,J;t[63]===q?J=t[64]:(J=(0,E.jsxs)(`p`,{className:`text-xs text-text-3`,children:[`Am besten nachts nach der Sicherung (03:30) und vor der Morgenmeldung (07:00).`,q]}),t[63]=q,t[64]=J);let Y;t[65]!==z.tag||t[66]!==z.uhrzeit?(Y=j(z.tag,z.uhrzeit),t[65]=z.tag,t[66]=z.uhrzeit,t[67]=Y):Y=t[67];let re=`Der Update-Lauf startet ab jetzt jeden ${D[z.tag-1]} um ${z.uhrzeit} Uhr. Neu gestartet wird die Box nur ${Y}. Ein Termin, der dadurch schon vorbei ist, wird nicht nachgeholt: Der erste Lauf ist der nächste reguläre.`,X;t[68]===Symbol.for(`react.memo_cache_sentinel`)?(X=()=>u(!1),t[68]=X):X=t[68];let Z;t[69]!==l||t[70]!==o||t[71]!==z?(Z=()=>{l&&(o.mutate(z,{onSuccess:()=>c(null)}),u(!1))},t[69]=l,t[70]=o,t[71]=z,t[72]=Z):Z=t[72];let Q;t[73]!==l||t[74]!==o.isPending||t[75]!==re||t[76]!==Z?(Q=(0,E.jsx)(C,{offen:l,titel:`Update-Zeitfenster ändern?`,text:re,knopf:`Speichern`,gesperrt:o.isPending,onNein:X,onJa:Z}),t[73]=l,t[74]=o.isPending,t[75]=re,t[76]=Z,t[77]=Q):Q=t[77];let $;return t[78]!==f||t[79]!==_||t[80]!==v||t[81]!==y||t[82]!==b||t[83]!==K||t[84]!==J||t[85]!==Q?($=(0,E.jsxs)(f,{titel:_,children:[v,y,b,K,J,Q]}),t[78]=f,t[79]=_,t[80]=v,t[81]=y,t[82]=b,t[83]=K,t[84]=J,t[85]=Q,t[86]=$):$=t[86],$}function te(e){return(0,E.jsx)(`option`,{value:e,children:e},e)}function ne(e,t){return(0,E.jsx)(`option`,{value:t+1,children:e},e)}function B(e){let t=(0,w.c)(37),{e:n,laedt:r,fehler:a}=e,o=f(),[s,c]=(0,T.useState)(null);if(!n){let e;return t[0]!==a||t[1]!==r?(e=(0,E.jsx)(M,{titel:`Modell-Radar`,children:(0,E.jsx)(ee,{laedt:r,fehler:a})}),t[0]=a,t[1]=r,t[2]=e):e=t[2],e}let l=n.radar,u=l.zustand===`an`||l.zustand===`unbekannt`&&l.an,d;t[3]===l.naechster_lauf?d=t[4]:(d=l.naechster_lauf?` (nächster Lauf ${A(l.naechster_lauf)})`:``,t[3]=l.naechster_lauf,t[4]=d);let p=`An. Es sucht jede Nacht ab 00:30 nach besseren Modellen${d}.`,m=l.an?`Eingeschaltet.`:`Ausgeschaltet.`,h;t[5]!==p||t[6]!==m?(h={an:p,schlaeft:`Schläft. Es sucht und testet keine Modelle, bis du es wieder einschaltest.`,aus:`Gestoppt, steht aber noch im Autostart: Nach einem Neustart der Box liefe es wieder.`,unbekannt:m},t[5]=p,t[6]=m,t[7]=h):h=t[7];let g=h[l.zustand],_;t[8]===g?_=t[9]:(_=(0,E.jsx)(`p`,{className:`text-sm text-text-2`,children:g}),t[8]=g,t[9]=_);let v;t[10]!==n.schaltbar||t[11]!==l.an||t[12]!==l.wirksam?(v=n.schaltbar&&!l.wirksam&&(0,E.jsxs)(N,{children:[`Eingestellt ist „`,l.an?`an`:`aus`,`“, systemd zeigt etwas anderes. Noch einmal schalten gleicht es an.`]}),t[10]=n.schaltbar,t[11]=l.an,t[12]=l.wirksam,t[13]=v):v=t[13];let y=u?`outline`:`default`,b=!n.schaltbar||o.isPending,x;t[14]===u?x=t[15]:(x=()=>c(!u),t[14]=u,t[15]=x);let S=o.isPending?`Schaltet …`:u?`Ausschalten`:`Einschalten`,D;t[16]!==x||t[17]!==S||t[18]!==y||t[19]!==b?(D=(0,E.jsx)(i,{variant:y,size:`sm`,className:`self-start`,disabled:b,onClick:x,children:S}),t[16]=x,t[17]=S,t[18]=y,t[19]=b,t[20]=D):D=t[20];let O=s!==null,k=s?`Modell-Radar einschalten?`:`Modell-Radar ausschalten?`,j=s?`Das Radar sucht ab heute Nacht um 00:30 wieder nach besseren Modellen und testet höchstens eines pro Woche. Ein verpasster Lauf wird nicht nachgeholt, tagsüber lädt es also nichts.`:`Das Radar sucht und testet dann keine neuen Modelle mehr, bis du es wieder einschaltest. Ein Nachttest, der gerade läuft, endet noch. Auch ein Deploy schaltet es nicht wieder ein.`,P=s?`Einschalten`:`Ausschalten`,F;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(F=()=>c(null),t[21]=F):F=t[21];let I;t[22]!==s||t[23]!==o?(I=()=>{s!==null&&(o.mutate(s),c(null))},t[22]=s,t[23]=o,t[24]=I):I=t[24];let L;t[25]!==o.isPending||t[26]!==O||t[27]!==k||t[28]!==j||t[29]!==P||t[30]!==I?(L=(0,E.jsx)(C,{offen:O,titel:k,text:j,knopf:P,gesperrt:o.isPending,onNein:F,onJa:I}),t[25]=o.isPending,t[26]=O,t[27]=k,t[28]=j,t[29]=P,t[30]=I,t[31]=L):L=t[31];let R;return t[32]!==D||t[33]!==L||t[34]!==_||t[35]!==v?(R=(0,E.jsxs)(M,{titel:`Modell-Radar`,children:[_,v,D,L]}),t[32]=D,t[33]=L,t[34]=_,t[35]=v,t[36]=R):R=t[36],R}function V(e){let t=(0,w.c)(25),{name:n,stand:r,laedt:i,fehler:a}=e,o;if(i){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,E.jsx)(`span`,{className:`text-sm text-text-2`,children:`Wird gelesen …`}),t[0]=e):e=t[0],o=e}else if(a){let e;t[1]===a?e=t[2]:(e=(0,E.jsxs)(`span`,{className:`text-sm text-rot-text`,children:[`Nicht lesbar: `,a]}),t[1]=a,t[2]=e),o=e}else if(r?.commit){let e;t[4]===r.commit?e=t[5]:(e=(0,E.jsx)(`span`,{className:`ziffern text-foreground`,children:r.commit}),t[4]=r.commit,t[5]=e);let n=r.betreff?` · ${r.betreff}`:``,i;t[6]!==e||t[7]!==n?(i=(0,E.jsxs)(`span`,{className:`text-sm text-text-2`,children:[e,n]}),t[6]=e,t[7]=n,t[8]=i):i=t[8];let a;t[9]!==r.deploy_zeit||t[10]!==r.quelle?(a=r.quelle===`deploy`?`Live seit ${A(r.deploy_zeit)}`:`Aus git gelesen, ohne Deploy`,t[9]=r.deploy_zeit,t[10]=r.quelle,t[11]=a):a=t[11];let s;t[12]===r.commit_datum?s=t[13]:(s=r.commit_datum?` · Commit vom ${A(r.commit_datum)}`:``,t[12]=r.commit_datum,t[13]=s);let c;t[14]!==a||t[15]!==s?(c=(0,E.jsxs)(`span`,{className:`text-xs text-text-3`,children:[a,s]}),t[14]=a,t[15]=s,t[16]=c):c=t[16];let l;t[17]!==i||t[18]!==c?(l=(0,E.jsxs)(E.Fragment,{children:[i,c]}),t[17]=i,t[18]=c,t[19]=l):l=t[19],o=l}else{let e;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,E.jsx)(`span`,{className:`text-sm text-text-2`,children:`Unbekannt: keine Stand-Datei und kein git.`}),t[3]=e):e=t[3],o=e}let s;t[20]===n?s=t[21]:(s=(0,E.jsx)(`span`,{className:`text-[15px]`,children:n}),t[20]=n,t[21]=s);let c;return t[22]!==o||t[23]!==s?(c=(0,E.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[s,o]}),t[22]=o,t[23]=s,t[24]=c):c=t[24],c}function H(e,t){return!e||!t?null:e.startsWith(t)||t.startsWith(e)}function U(e){let t=(0,w.c)(21),{offen:n}=e,r=u().data,i=!!r?.partner.eingerichtet,[a,o]=l(n,i),s=a.data?.stand?.commit,c=o.data?.stand?.commit,d;t[0]!==s||t[1]!==c?(d=H(s,c),t[0]=s,t[1]=c,t[2]=d):d=t[2];let f=d,p=a.data?.instanz??r?.instanz??`Diese Instanz`,m=a.data?.stand,h=a.error?.message,g;t[3]!==a.isPending||t[4]!==p||t[5]!==m||t[6]!==h?(g=(0,E.jsx)(V,{name:p,stand:m,laedt:a.isPending,fehler:h}),t[3]=a.isPending,t[4]=p,t[5]=m,t[6]=h,t[7]=g):g=t[7];let _;t[8]!==r?.partner||t[9]!==o.data?.instanz||t[10]!==o.data?.stand||t[11]!==o.error?.message||t[12]!==o.isPending||t[13]!==i?(_=i&&(0,E.jsx)(V,{name:o.data?.instanz??r?.partner.name??`Partner`,stand:o.data?.stand,laedt:o.isPending,fehler:o.error?.message}),t[8]=r?.partner,t[9]=o.data?.instanz,t[10]=o.data?.stand,t[11]=o.error?.message,t[12]=o.isPending,t[13]=i,t[14]=_):_=t[14];let v;t[15]===f?v=t[16]:(v=f===!1&&(0,E.jsx)(N,{children:`Die beiden Instanzen laufen mit verschiedenen Ständen. Der nächste Deploy der Box zieht den Homelab-Teil mit.`}),t[15]=f,t[16]=v);let y;return t[17]!==g||t[18]!==_||t[19]!==v?(y=(0,E.jsxs)(M,{titel:`Software-Stand`,children:[g,_,v]}),t[17]=g,t[18]=_,t[19]=v,t[20]=y):y=t[20],y}function W(e){let t=(0,w.c)(25),{offen:n,onSchliessen:r}=e,i=s(n),a=i.error?.message,o;t[0]!==i.data||t[1]!==i.isPending||t[2]!==a?(o={e:i.data,laedt:i.isPending,fehler:a},t[0]=i.data,t[1]=i.isPending,t[2]=a,t[3]=o):o=t[3];let c=o,l;t[4]===r?l=t[5]:(l=e=>!e&&r(),t[4]=r,t[5]=l);let u;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,E.jsxs)(y,{children:[(0,E.jsx)(v,{className:`schild text-lg`,children:`Einstellungen`}),(0,E.jsx)(x,{className:`text-text-2`,children:`Was die Box sich merkt und wann sie was tut.`})]}),t[6]=u):u=t[6];let d;t[7]===n?d=t[8]:(d=(0,E.jsx)(P,{offen:n}),t[7]=n,t[8]=d);let f;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,E.jsx)(I,{}),t[9]=f):f=t[9];let p,h;t[10]===c?(p=t[11],h=t[12]):(p=(0,E.jsx)(z,{...c}),h=(0,E.jsx)(B,{...c}),t[10]=c,t[11]=p,t[12]=h);let g;t[13]===n?g=t[14]:(g=(0,E.jsx)(U,{offen:n}),t[13]=n,t[14]=g);let _;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,E.jsxs)(M,{titel:`Hermes`,zuletzt:!0,children:[(0,E.jsxs)(`a`,{href:`/hermes-ui/`,target:`_blank`,rel:`noopener`,className:`flex h-11 items-center gap-2 self-start rounded-lg border border-linie-stark bg-erhaben px-4 text-[15px] hover:border-text-3`,children:[(0,E.jsx)(m,{className:`size-4`,"aria-hidden":!0}),` Hermes-Dashboard öffnen`]}),(0,E.jsx)(`p`,{className:`text-xs text-text-3`,children:`Chat, Sitzungen und Cron-Jobs verwaltet Hermes selbst. Es fragt nach seiner eigenen Anmeldung.`})]}),t[15]=_):_=t[15];let C;t[16]!==d||t[17]!==p||t[18]!==h||t[19]!==g?(C=(0,E.jsxs)(b,{side:`right`,className:`gap-3 overflow-y-auto border-linie bg-panel data-[side=right]:w-full data-[side=right]:sm:max-w-lg`,children:[u,d,f,p,h,g,_]}),t[16]=d,t[17]=p,t[18]=h,t[19]=g,t[20]=C):C=t[20];let T;return t[21]!==n||t[22]!==C||t[23]!==l?(T=(0,E.jsx)(S,{open:n,onOpenChange:l,children:C}),t[21]=n,t[22]=C,t[23]=l,t[24]=T):T=t[24],T}export{W as Einstellungen}; |