1 line
8.7 KiB
JavaScript
1 line
8.7 KiB
JavaScript
import{a as e,c as t,i as n,n as r,r as i,t as a}from"./dist-aE7UmubC.js";import{D as o,R as s,S as c,g as l}from"./abfragen-DKcWnZ8a.js";import{t as u}from"./useRouterState-DJr4hrdj.js";import{t as d}from"./chevron-right-DF8ikrVh.js";import{$ as f,N as p,et as m,nt as h,st as g,tt as _}from"./index-BUHDF9RN.js";import{t as v}from"./Panel-uT1S5ZGr.js";var y={name:`bell`,size:24,node:[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]]};y.node;var b=r(y),x={name:`cog`,size:24,node:[[`path`,{d:`M11 10.27 7 3.34`,key:`16pf9h`}],[`path`,{d:`m11 13.73-4 6.93`,key:`794ttg`}],[`path`,{d:`M12 22v-2`,key:`1osdcq`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M14 12h8`,key:`4f43i9`}],[`path`,{d:`m17 20.66-1-1.73`,key:`eq3orb`}],[`path`,{d:`m17 3.34-1 1.73`,key:`2wel8s`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`m20.66 17-1.73-1`,key:`sg0v6f`}],[`path`,{d:`m20.66 7-1.73 1`,key:`1ow05n`}],[`path`,{d:`m3.34 17 1.73-1`,key:`nuk764`}],[`path`,{d:`m3.34 7 1.73 1`,key:`1ulond`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}],[`circle`,{cx:`12`,cy:`12`,r:`8`,key:`46899m`}]]};x.node;var S=r(x),C=i(),w=t(e(),1),T=n(),E=[{id:`alle`,name:`Alles`},{id:`lauf`,name:`Updates`},{id:`snapshot`,name:`Snapshots`},{id:`auftrag`,name:`Ausführer`},{id:`hinweis`,name:`Hinweise`},{id:`meldung`,name:`Meldungen`},{id:`pflege`,name:`Pflege`}],D={auftrag:S,lauf:h,sammellauf:h,hinweis:f,meldung:b,pflege:m,snapshot:_},O={ok:{punkt:`bg-gruen`,text:`text-gruen-text`,wort:`ok`},info:{punkt:`bg-cyan`,text:`text-cyan-text`,wort:`Info`},warn:{punkt:`bg-bernstein`,text:`text-bernstein`,wort:`Warnung`},fehler:{punkt:`bg-rot`,text:`text-rot-text`,wort:`Fehler`}},k=new Intl.DateTimeFormat(`de-DE`,{weekday:`long`,day:`2-digit`,month:`2-digit`,timeZone:`Europe/Berlin`}),A=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,timeZone:`Europe/Berlin`}),j=new Intl.DateTimeFormat(`sv-SE`,{timeZone:`Europe/Berlin`});function M(e){let t=j.format(new Date),n=j.format(new Date(Date.now()-864e5)),r=j.format(new Date(e*1e3));return r===t?`Heute`:r===n?`Gestern`:k.format(new Date(e*1e3))}function N(e){let t=(0,C.c)(38),{e:n,geraet:r}=e,[i,o]=(0,w.useState)(!1),s=O[n.stufe]??O.info,c=D[n.art]??S,l;t[0]===n.zeit?l=t[1]:(l=A.format(new Date(n.zeit*1e3)),t[0]=n.zeit,t[1]=l);let u;t[2]===l?u=t[3]:(u=(0,T.jsx)(`span`,{className:`ziffern pt-0.5 text-xs text-text-3`,children:l}),t[2]=l,t[3]=u);let f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,T.jsx)(`span`,{"aria-hidden":!0,className:`absolute -top-2.5 -bottom-2.5 w-px bg-white/10`}),t[4]=f):f=t[4];let p;t[5]===s.punkt?p=t[6]:(p=a(`relative size-2.5 rounded-full ring-4 ring-[var(--panel)]`,s.punkt),t[5]=s.punkt,t[6]=p);let m;t[7]===p?m=t[8]:(m=(0,T.jsxs)(`span`,{className:`relative flex flex-col items-center pt-1`,children:[f,(0,T.jsx)(`span`,{"aria-hidden":!0,className:p})]}),t[7]=p,t[8]=m);let h;t[9]===c?h=t[10]:(h=(0,T.jsx)(c,{className:`size-3.5 shrink-0 text-text-3`,"aria-hidden":!0}),t[9]=c,t[10]=h);let g=n.stufe===`fehler`||n.stufe===`warn`?s.text:`text-foreground`,_;t[11]===g?_=t[12]:(_=a(g),t[11]=g,t[12]=_);let v;t[13]!==n.titel||t[14]!==_?(v=(0,T.jsx)(`span`,{className:_,children:n.titel}),t[13]=n.titel,t[14]=_,t[15]=v):v=t[15];let y;t[16]===r?y=t[17]:(y=r&&(0,T.jsx)(`span`,{className:`rounded-md bg-lab-grund px-1.5 text-xs text-lab-text`,children:r}),t[16]=r,t[17]=y);let b;t[18]===s.wort?b=t[19]:(b=(0,T.jsxs)(`span`,{className:`sr-only`,children:[`(`,s.wort,`)`]}),t[18]=s.wort,t[19]=b);let x;t[20]!==y||t[21]!==b||t[22]!==h||t[23]!==v?(x=(0,T.jsxs)(`span`,{className:`flex flex-wrap items-center gap-x-2 text-[15px]`,children:[h,v,y,b]}),t[20]=y,t[21]=b,t[22]=h,t[23]=v,t[24]=x):x=t[24];let E;t[25]===n.text?E=t[26]:(E=n.text&&(0,T.jsx)(`span`,{className:`text-sm text-text-2`,children:n.text}),t[25]=n.text,t[26]=E);let k;t[27]!==n.details||t[28]!==i?(k=n.details&&(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`button`,{type:`button`,onClick:()=>o(!i),"aria-expanded":i,className:`inline-flex h-8 items-center gap-1 self-start text-xs text-cyan hover:underline`,children:[(0,T.jsx)(d,{className:a(`size-3.5 transition-transform`,i&&`rotate-90`),"aria-hidden":!0}),i?`Ausgabe verbergen`:`Ausgabe zeigen`]}),i&&(0,T.jsx)(`pre`,{className:`ziffern m-0 max-h-72 overflow-auto rounded-xl bg-black/30 ring-1 ring-white/[0.07] ring-inset p-2.5 text-xs whitespace-pre-wrap text-text-2`,children:n.details})]}),t[27]=n.details,t[28]=i,t[29]=k):k=t[29];let j;t[30]!==x||t[31]!==E||t[32]!==k?(j=(0,T.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-0.5`,children:[x,E,k]}),t[30]=x,t[31]=E,t[32]=k,t[33]=j):j=t[33];let M;return t[34]!==j||t[35]!==u||t[36]!==m?(M=(0,T.jsxs)(`li`,{className:`grid grid-cols-[64px_18px_minmax(0,1fr)] gap-x-3 border-t border-white/[0.06] py-2.5 first:border-t-0`,children:[u,m,j]}),t[34]=j,t[35]=u,t[36]=m,t[37]=M):M=t[37],M}function P(){let e=(0,C.c)(18),t=o(),n=s(),r=t.data?.rolle===`homelab`||!!(n.data?.eingerichtet&&n.data.erreichbar),[i,d]=(0,w.useState)(`alle`),[f,m]=(0,w.useState)(!1),h=g(),_;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(_={select:L},e[0]=_):_=e[0];let y=u(_),b=l(r).data?.ziele??[],x=new Map(b.map(I)),S;e[1]===y?S=e[2]:(S=y&&/^(pve|(ct|vm)-\d+)$/.test(y)?y:null,e[1]=y,e[2]=S);let D=S,O=c(r,f,D);if(t.isPending||n.isPending){let t;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,T.jsx)(p,{text:`Wird gelesen …`}),e[3]=t):t=e[3],t}if(!r){let t;return e[4]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,T.jsx)(p,{fehler:!0,text:`Der Homelab-Teil antwortet gerade nicht.`}),e[4]=t):t=e[4],t}let k=(O.data?.eintraege??[]).filter(e=>i===`alle`||e.art===i||i===`lauf`&&e.art===`sammellauf`),A=[];for(let e of k){let t=M(e.zeit);A.at(-1)?.titel!==t&&A.push({titel:t,eintraege:[]}),A.at(-1).eintraege.push(e)}let j=D?`Alles, was an diesem Gerät geschah: Updates von → nach, Snapshots, Rückwege, Neustarts und Hinweise.`:`Was der Homelab-Teil getan hat: Aufträge an den Ausführer auf dem Proxmox-Host, Update-Läufe, Snapshots, Hinweise, gesendete Meldungen und die nächtliche Paketsuche.`,P;e[5]===j?P=e[6]:(P=(0,T.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:j}),e[5]=j,e[6]=P);let R;e[7]===h?R=e[8]:(R=e=>void h({to:`/homelab/protokoll`,hash:e.target.value||void 0}),e[7]=h,e[8]=R);let z;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(z=(0,T.jsx)(`option`,{value:``,children:`Alle Geräte`}),e[9]=z):z=e[9];let B;e[10]===i?B=e[11]:(B=E.map(e=>(0,T.jsx)(`button`,{type:`button`,onClick:()=>d(e.id),"aria-pressed":i===e.id,className:a(`h-9 rounded-full border px-3.5 text-sm`,i===e.id?`border-lab-rand bg-lab-grund text-lab-text`:`border-white/10 text-text-2 hover:border-white/20 hover:text-foreground`),children:e.name},e.id)),e[10]=i,e[11]=B);let V;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(V=e=>m(e.target.checked),e[12]=V):V=e[12];let H;e[13]===f?H=e[14]:(H=(0,T.jsxs)(`label`,{className:`ml-auto flex h-9 cursor-pointer items-center gap-2 text-sm text-text-2`,children:[(0,T.jsx)(`input`,{type:`checkbox`,checked:f,onChange:V,className:`size-4 accent-[var(--lab)]`}),`Berichte zeigen (alle 10 min)`]}),e[13]=f,e[14]=H);let U;return e[15]!==B||e[16]!==H?(U=(0,T.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,role:`group`,"aria-label":`Filter`,children:[B,H]}),e[15]=B,e[16]=H,e[17]=U):U=e[17],(0,T.jsxs)(v,{titel:D?`Zeitleiste · ${x.get(D)??D}`:`Protokoll`,children:[P,(0,T.jsxs)(`label`,{className:`flex max-w-sm flex-col gap-1 text-sm text-text-2`,children:[`Gerät`,(0,T.jsxs)(`select`,{value:D??``,onChange:R,className:`h-10 rounded-xl border border-white/12 bg-white/[0.04] px-3 text-[15px] text-foreground outline-none focus:border-lab/60`,children:[z,b.map(F)]})]}),U,O.isPending?(0,T.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):O.isError?(0,T.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Das Protokoll lässt sich nicht lesen: `,O.error.message]}):A.length===0?(0,T.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Dazu gibt es noch keine Einträge.`}):(0,T.jsx)(`div`,{className:a(`flex flex-col gap-5`,O.isFetching&&`opacity-80`),children:A.map(e=>(0,T.jsxs)(`section`,{"aria-label":e.titel,className:`flex flex-col gap-1`,children:[(0,T.jsx)(`h3`,{className:`etikett text-[11.5px] tracking-[0.16em] text-lab-text`,children:e.titel}),(0,T.jsx)(`ol`,{className:`m-0 flex list-none flex-col p-0`,children:e.eintraege.map((e,t)=>{let n=e.ziel&&!D?x.get(e.ziel)??e.ziel:null;return(0,T.jsx)(N,{e,geraet:n&&!e.titel.includes(n)?n:null},`${e.zeit}-${e.titel}-${t}`)})})]},e.titel))})]})}function F(e){return(0,T.jsx)(`option`,{value:e.id,children:e.name},e.id)}function I(e){return[e.id,e.name]}function L(e){return e.location.hash}export{P as HomelabProtokollSeite}; |