Files
mission-control-v2/frontend/dist/assets/HomelabSnapshots-BHJkSmwO.js
T
2026-09-25 13:49:03 +02:00

1 line
12 KiB
JavaScript

import{i as e,n as t,r as n,s as r,t as i}from"./dist-D4CVSex9.js";import{n as a,t as o}from"./undo-2-DvQmwdhu.js";import{C as s,S as c,a as l,at as u,b as d,cn as f,n as p,nt as m,o as h,on as g,pt as _,r as v,s as y,t as b,wt as x}from"./index-CIOHqG23.js";import{t as S}from"./button-D8rvET0Z.js";import{t as C}from"./Bestaetigen-D6CzMfJm.js";var w={name:`plus`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]};w.node;var T=f(w),E={name:`trash`,size:24,node:[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]],aliases:[`trash-2`]};E.node;var D=f(E),O=t(),k=r(e(),1),A=n(),j=`grid grid-cols-[minmax(0,1fr)_auto] items-start gap-x-3 gap-y-1.5 border-t border-linie py-3 [grid-template-areas:'name_herkunft'_'zeit_zeit'_'text_text'_'knoepfe_knoepfe'] md:grid-rows-[auto_auto_1fr] md:gap-x-4 md:[grid-template-areas:'name_herkunft'_'zeit_knoepfe'_'text_knoepfe'] xl:grid-cols-[minmax(10.5rem,1.1fr)_7.5rem_minmax(0,1fr)_minmax(0,1.4fr)_11rem] xl:grid-rows-none xl:items-center xl:[grid-template-areas:'name_herkunft_zeit_text_knoepfe']`,M=`ziffern min-w-0 pt-1 text-sm break-words text-foreground [grid-area:name] xl:pt-0`,N=`justify-self-end [grid-area:herkunft] xl:justify-self-start`;function P(e){let t=(0,O.c)(11),{zeit:n,jetzt:r}=e,i;t[0]!==r||t[1]!==n?(i=h(n,r),t[0]=r,t[1]=n,t[2]=i):i=t[2];let a;t[3]===i?a=t[4]:(a=(0,A.jsx)(`span`,{className:`ziffern text-text-2`,children:i}),t[3]=i,t[4]=a);let o;t[5]!==r||t[6]!==n?(o=n!==null&&(0,A.jsx)(`span`,{className:`text-text-3`,children:p(n,r)}),t[5]=r,t[6]=n,t[7]=o):o=t[7];let s;return t[8]!==a||t[9]!==o?(s=(0,A.jsxs)(`span`,{role:`cell`,className:`flex flex-wrap items-baseline gap-x-2 text-sm [grid-area:zeit]`,children:[a,o]}),t[8]=a,t[9]=o,t[10]=s):s=t[10],s}function F(e){let t=(0,O.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,A.jsx)(`span`,{role:`cell`,className:`min-w-0 text-sm break-words text-text-2 [grid-area:text]`,children:n}),t[0]=n,t[1]=r),r}function I(e){let t=(0,O.c)(5),{children:n,ohne:r}=e,i;t[0]!==n||t[1]!==r?(i=r?(0,A.jsx)(`span`,{className:`text-xs text-text-3`,children:r}):n,t[0]=n,t[1]=r,t[2]=i):i=t[2];let a;return t[3]===i?a=t[4]:(a=(0,A.jsx)(`span`,{role:`cell`,className:`flex flex-wrap gap-2 [grid-area:knoepfe] md:flex-col md:items-stretch md:justify-self-end xl:justify-self-stretch`,children:i}),t[3]=i,t[4]=a),a}function L(e){let t=(0,O.c)(35),{g:n,s:r,jetzt:i,gesperrt:a,onFrage:s}=e,{loeschen:l,zuruecksetzen:u}=r,d=l||u?null:r.eigen?`Nicht freigegeben`:`Nur in Proxmox`,f;t[0]===r.name?f=t[1]:(f=(0,A.jsx)(`span`,{role:`rowheader`,className:M,children:r.name}),t[0]=r.name,t[1]=f);let p=b[r.herkunft],m=b[r.herkunft],h;t[2]===m.chip?h=t[3]:(h=(0,A.jsx)(c,{children:m.chip}),t[2]=m.chip,t[3]=h);let g;t[4]!==p.text||t[5]!==h?(g=(0,A.jsx)(`span`,{role:`cell`,className:N,title:p.text,children:h}),t[4]=p.text,t[5]=h,t[6]=g):g=t[6];let _;t[7]!==i||t[8]!==r.zeit?(_=(0,A.jsx)(P,{zeit:r.zeit,jetzt:i}),t[7]=i,t[8]=r.zeit,t[9]=_):_=t[9];let v;t[10]!==r.beschreibung||t[11]!==r.herkunft?(v=r.beschreibung??(0,A.jsx)(`span`,{className:`text-text-3`,children:b[r.herkunft].text}),t[10]=r.beschreibung,t[11]=r.herkunft,t[12]=v):v=t[12];let y;t[13]===v?y=t[14]:(y=(0,A.jsx)(F,{children:v}),t[13]=v,t[14]=y);let x;t[15]!==n||t[16]!==a||t[17]!==s||t[18]!==u?(x=u&&(0,A.jsxs)(S,{variant:`outline`,size:`sm`,disabled:a,onClick:()=>s({name:n.name,aktion:u,gefahr:!0}),children:[(0,A.jsx)(o,{"aria-hidden":!0}),` Zurücksetzen`]}),t[15]=n,t[16]=a,t[17]=s,t[18]=u,t[19]=x):x=t[19];let C;t[20]!==n||t[21]!==a||t[22]!==l||t[23]!==s?(C=l&&(0,A.jsxs)(S,{variant:`outline`,size:`sm`,disabled:a,onClick:()=>s({name:n.name,aktion:l,gefahr:!0}),children:[(0,A.jsx)(D,{"aria-hidden":!0}),` Löschen`]}),t[20]=n,t[21]=a,t[22]=l,t[23]=s,t[24]=C):C=t[24];let w;t[25]!==d||t[26]!==C||t[27]!==x?(w=(0,A.jsxs)(I,{ohne:d,children:[x,C]}),t[25]=d,t[26]=C,t[27]=x,t[28]=w):w=t[28];let T;return t[29]!==f||t[30]!==w||t[31]!==g||t[32]!==_||t[33]!==y?(T=(0,A.jsxs)(`div`,{role:`row`,className:j,children:[f,g,_,y,w]}),t[29]=f,t[30]=w,t[31]=g,t[32]=_,t[33]=y,t[34]=T):T=t[34],T}function R(e){let t=(0,O.c)(23),{g:n,e:r,jetzt:i,gesperrt:a,onFrage:o}=e,s;t[0]===r.groesse?s=t[1]:(s=v(r.groesse),t[0]=r.groesse,t[1]=s);let l=s,u=r.loeschen,d;t[2]===r.datei?d=t[3]:(d=(0,A.jsx)(`span`,{role:`rowheader`,className:M,children:r.datei}),t[2]=r.datei,t[3]=d);let f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,A.jsx)(`span`,{role:`cell`,className:N,children:(0,A.jsx)(c,{children:`Sicherung`})}),t[4]=f):f=t[4];let p;t[5]!==r.zeit||t[6]!==i?(p=(0,A.jsx)(P,{zeit:r.zeit,jetzt:i}),t[5]=r.zeit,t[6]=i,t[7]=p):p=t[7];let m=l?`${l} auf „${r.speicher}“`:`Auf „${r.speicher}“`,h;t[8]===m?h=t[9]:(h=(0,A.jsxs)(F,{children:[m,`, vor einem Update angelegt`]}),t[8]=m,t[9]=h);let g=u?null:`Nicht freigegeben`,_;t[10]!==n||t[11]!==a||t[12]!==u||t[13]!==o?(_=u&&(0,A.jsxs)(S,{variant:`outline`,size:`sm`,disabled:a,onClick:()=>o({name:n.name,aktion:u,gefahr:!0}),children:[(0,A.jsx)(D,{"aria-hidden":!0}),` Löschen`]}),t[10]=n,t[11]=a,t[12]=u,t[13]=o,t[14]=_):_=t[14];let y;t[15]!==g||t[16]!==_?(y=(0,A.jsx)(I,{ohne:g,children:_}),t[15]=g,t[16]=_,t[17]=y):y=t[17];let b;return t[18]!==d||t[19]!==p||t[20]!==h||t[21]!==y?(b=(0,A.jsxs)(`div`,{role:`row`,className:j,children:[d,f,p,h,y]}),t[18]=d,t[19]=p,t[20]=h,t[21]=y,t[22]=b):b=t[22],b}function z(e){let t=(0,O.c)(34),{g:n,jetzt:r,gesperrt:o,onFrage:s}=e,c=n.snapshots.length===0&&n.sicherungen.length===0,l=n.anlegen,u;t[0]===n.name?u=t[1]:(u=(0,A.jsx)(`h3`,{className:`text-[15px] font-semibold break-words`,children:n.name}),t[0]=n.name,t[1]=u);let d;t[2]===n.wo?d=t[3]:(d=(0,A.jsx)(`span`,{className:`text-sm text-text-3`,children:n.wo}),t[2]=n.wo,t[3]=d);let f;t[4]!==u||t[5]!==d?(f=(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[u,d]}),t[4]=u,t[5]=d,t[6]=f):f=t[6];let p;t[7]!==l||t[8]!==n.laeuft||t[9]!==n.name||t[10]!==o||t[11]!==s?(p=n.laeuft?(0,A.jsxs)(`p`,{role:`status`,className:`text-sm text-cyan`,children:[`Läuft: `,n.laeuft,` …`]}):l&&(0,A.jsxs)(S,{variant:`outline`,size:`sm`,disabled:o,onClick:()=>s({name:n.name,aktion:l,gefahr:!1}),children:[(0,A.jsx)(T,{"aria-hidden":!0}),` Snapshot anlegen`]}),t[7]=l,t[8]=n.laeuft,t[9]=n.name,t[10]=o,t[11]=s,t[12]=p):p=t[12];let m;t[13]!==f||t[14]!==p?(m=(0,A.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-x-4 gap-y-2`,children:[f,p]}),t[13]=f,t[14]=p,t[15]=m):m=t[15];let _;t[16]===n.grund?_=t[17]:(_=n.grund&&(0,A.jsx)(`p`,{className:`text-sm text-text-3`,children:n.grund}),t[16]=n.grund,t[17]=_);let v;t[18]!==n.name||t[19]!==n.zuletzt||t[20]!==r?(v=n.zuletzt&&(0,A.jsxs)(`p`,{className:i(`flex items-start gap-1.5 text-sm`,n.zuletzt.ok?`text-gruen-text`:`text-rot-text`),children:[n.zuletzt.ok?(0,A.jsx)(g,{className:`mt-0.5 size-4 shrink-0`,"aria-hidden":!0}):(0,A.jsx)(a,{className:`mt-0.5 size-4 shrink-0`,"aria-hidden":!0}),(0,A.jsxs)(`span`,{className:`flex min-w-0 flex-wrap items-baseline gap-x-2`,children:[(0,A.jsx)(`span`,{className:`break-words`,children:y(n.zuletzt.text,n.name)}),(0,A.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:h(n.zuletzt.ende,r)})]})]}),t[18]=n.name,t[19]=n.zuletzt,t[20]=r,t[21]=v):v=t[21];let b;t[22]!==n||t[23]!==o||t[24]!==r||t[25]!==c||t[26]!==s?(b=c?(0,A.jsx)(`p`,{className:`text-sm text-text-3`,children:`Keine Snapshots.`}):(0,A.jsxs)(`div`,{role:`table`,"aria-label":`Snapshots von ${n.name}`,className:`flex flex-col`,children:[(0,A.jsxs)(`div`,{role:`row`,className:`sr-only`,children:[(0,A.jsx)(`span`,{role:`columnheader`,children:`Snapshot`}),(0,A.jsx)(`span`,{role:`columnheader`,children:`Herkunft`}),(0,A.jsx)(`span`,{role:`columnheader`,children:`Zeitpunkt`}),(0,A.jsx)(`span`,{role:`columnheader`,children:`Beschreibung`}),(0,A.jsx)(`span`,{role:`columnheader`,children:`Aktion`})]}),n.snapshots.map(e=>(0,A.jsx)(L,{g:n,s:e,jetzt:r,gesperrt:o,onFrage:s},e.name)),n.sicherungen.map(e=>(0,A.jsx)(R,{g:n,e,jetzt:r,gesperrt:o,onFrage:s},e.datei))]}),t[22]=n,t[23]=o,t[24]=r,t[25]=c,t[26]=s,t[27]=b):b=t[27];let x;return t[28]!==n.name||t[29]!==m||t[30]!==_||t[31]!==v||t[32]!==b?(x=(0,A.jsxs)(`section`,{"aria-label":n.name,className:`flex min-w-0 flex-col gap-2 border-t border-linie-stark pt-4 first:border-t-0 first:pt-0`,children:[m,_,v,b]}),t[28]=n.name,t[29]=m,t[30]=_,t[31]=v,t[32]=b,t[33]=x):x=t[33],x}function B(e){let t=(0,O.c)(24),{daten:n,gesperrt:r,onAktion:i}=e,[a,o]=(0,k.useState)(null),s;if(t[0]!==n.geraete||t[1]!==n.jetzt||t[2]!==r){let e;t[4]!==n.jetzt||t[5]!==r?(e=e=>(0,A.jsx)(z,{g:e,jetzt:n.jetzt,gesperrt:r||!!e.laeuft,onFrage:o},e.id),t[4]=n.jetzt,t[5]=r,t[6]=e):e=t[6],s=n.geraete.map(e),t[0]=n.geraete,t[1]=n.jetzt,t[2]=r,t[3]=s}else s=t[3];let c;t[7]===s?c=t[8]:(c=(0,A.jsx)(`div`,{className:`flex flex-col gap-5`,children:s}),t[7]=s,t[8]=c);let l=!!a,u=a?`${a.name}: ${a.aktion.label}`:``,d=a?.aktion.frage??``,f=a?.aktion.label??``,p=a?.gefahr,m;t[9]!==a||t[10]!==i?(m=()=>{a&&i(a.aktion),o(null)},t[9]=a,t[10]=i,t[11]=m):m=t[11];let h;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>o(null),t[12]=h):h=t[12];let g;t[13]!==r||t[14]!==l||t[15]!==u||t[16]!==d||t[17]!==f||t[18]!==p||t[19]!==m?(g=(0,A.jsx)(C,{offen:l,titel:u,text:d,knopf:f,gefahr:p,gesperrt:r,onJa:m,onNein:h}),t[13]=r,t[14]=l,t[15]=u,t[16]=d,t[17]=f,t[18]=p,t[19]=m,t[20]=g):g=t[20];let _;return t[21]!==g||t[22]!==c?(_=(0,A.jsxs)(A.Fragment,{children:[c,g]}),t[21]=g,t[22]=c,t[23]=_):_=t[23],_}function V(){let e=(0,O.c)(23),t=u(),n=_(),r=t.data?.rolle===`homelab`||!!(n.data?.eingerichtet&&n.data.erreichbar),i=m(r),a=x();if(t.isPending||n.isPending){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,A.jsx)(s,{text:`Wird gelesen …`}),e[0]=t):t=e[0],t}if(!r){let t;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,A.jsx)(s,{fehler:!0,text:`Der Homelab-Teil antwortet gerade nicht.`}),e[1]=t):t=e[1],t}if(i.isPending){let t;return e[2]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,A.jsx)(s,{text:`Die Snapshots werden gelesen …`}),e[2]=t):t=e[2],t}if(!i.data){let t=`Die Snapshots lassen sich nicht lesen: ${i.error?.message??`keine Daten`}`,n;return e[3]===t?n=e[4]:(n=(0,A.jsx)(s,{fehler:!0,text:t}),e[3]=t,e[4]=n),n}let o=i.data,f=o.sperre,p;e[5]!==o.bericht||e[6]!==o.summe?(p=o.bericht?(0,A.jsx)(c,{children:l(o.summe)}):void 0,e[5]=o.bericht,e[6]=o.summe,e[7]=p):p=e[7];let g;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,A.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Ein Snapshot hält den Stand eines Geräts fest. Vor jedem Update legt der Orchestrator einen an (beim Proxmox Backup Server eine Sicherung) und räumt nach einem grünen Update die älteren weg. Hier legst du selbst welche an — die bleiben, bis du sie löschst —, setzt ein Gerät zurück oder löschst, was weg kann. Von Hand in Proxmox angelegte stehen nur zur Ansicht da.`}),e[8]=g):g=e[8];let v;e[9]===f?v=e[10]:(v=f&&(0,A.jsx)(`p`,{role:`alert`,className:`rounded-xl border border-bernstein/60 bg-bernstein-grund px-4 py-3 text-[15px] text-bernstein`,children:f}),e[9]=f,e[10]=v);let y;e[11]!==o.bericht||e[12]!==o.jetzt?(y=o.bericht?.veraltet&&(0,A.jsxs)(`p`,{className:`text-[15px] text-bernstein`,children:[`Der letzte Bericht ist von `,h(o.bericht.empfangen,o.jetzt),`; die Liste kann veraltet sein.`]}),e[11]=o.bericht,e[12]=o.jetzt,e[13]=y):y=e[13];let b;e[14]!==a||e[15]!==o||e[16]!==f?(b=o.bericht?(0,A.jsxs)(A.Fragment,{children:[!o.details&&(0,A.jsx)(`p`,{className:`text-sm text-text-3`,children:`Beschreibungen und die Größe der Sicherungen erscheinen, sobald der neue Ausführer auf dem Proxmox-Host läuft; bis dahin kommt der Zeitpunkt aus dem Namen des Snapshots.`}),(0,A.jsx)(B,{daten:o,gesperrt:a.isPending||!!f,onAktion:e=>a.mutate(e)}),(0,A.jsx)(`p`,{className:`text-sm text-text-3`,children:`Wie viel ein Snapshot im Speicherpool belegt, sagt Proxmox nicht: Er teilt sich die Daten mit dem Gerät und wächst mit jeder Änderung seit seinem Zeitpunkt. Wie voll der Pool ist, steht im Cockpit unter „Speicher und Sicherungen“.`})]}):(0,A.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Der Ausführer hat noch keinen Bericht geschickt.`}),e[14]=a,e[15]=o,e[16]=f,e[17]=b):b=e[17];let S;return e[18]!==p||e[19]!==v||e[20]!==y||e[21]!==b?(S=(0,A.jsxs)(d,{titel:`Snapshots`,rechts:p,children:[g,v,y,b]}),e[18]=p,e[19]=v,e[20]=y,e[21]=b,e[22]=S):S=e[22],S}export{V as HomelabSnapshotsSeite};