PageSourceSearch

https://manager.regiodisplay.net/assets/MachineDetailPage-DCKBmyQa.js

js regiodisplay.net collected 2026-09-24 13:53:29 UTC 26,581 bytes, 1 lines download raw bytes

1import{r,j as e,h as Je,a as Qe,u as Ye,g as Ze}from"./index-Bv3Bofm-.js";import{r as g}from"./rustdeskApi-DraZZ5-7.js";import{C as u,a as v,c as j,b as S}from"./card-DRGG1H-p.js";import{B as f}from"./badge-DbmeN09M.js";import{B as m}from"./button-l8E7qKOZ.js";import{I as ea}from"./input-CztKq6sQ.js";import{P as aa}from"./progress-DVpneL4k.js";import{S as Oe}from"./separator-BnlLmn92.js";import{T as Ne,a as be,b as $,c as h,d as ye,e as p}from"./table-DDDyZjTw.js";import{A as ve,a as De,b as we,c as Pe,d as Ie,e as Ce,f as Se,g as ke}from"./alert-dialog-D2qHqiCe.js";import{T as A,a as E,b as H,c as O}from"./tooltip-cIzc0j8-.js";import{O as sa}from"./OneClickConnect-DJdsAEMw.js";import"./select-CV-7SBuN.js";import"./dialog-4CO45iY9.js";import{L as ta}from"./label-Bfn7I16c.js";import{c as z}from"./utils-CBfrqCZ4.js";import{N as la,M as ra,R as ia}from"./RemotePasswordChangeSection-WCIXmDkb.js";import{u as ne}from"./useTranslation-DVry60RK.js";import{S as na}from"./shield-check-Dn3v70M3.js";import{W as ie,a as Fe}from"./wifi-WD0OSm9I.js";import{L as D}from"./loader-circle-DI5IRqPf.js";import"./dropdown-menu-Dtcm4kYj.js";import{C as ca,b as oa}from"./GroupsSidebar-BtaFTZhU.js";import"./textarea-Bfwlb5yy.js";import"./alert-hpef4MLH.js";import{A as _e}from"./arrow-left-DCC9PUIU.js";import{I as F}from"./info-C2Rr6b6A.js";import{S as da}from"./save-vjS7ljWK.js";import{X as ma}from"./x-CPPa5Rss.js";import{P as xa}from"./pencil-DM-XdMHf.js";import{T as Me}from"./trash-2-CGRsUgki.js";import{R as ha}from"./refresh-cw-Dxw4JGY0.js";import{M as Te}from"./monitor-CW5frXuZ.js";import{f as K}from"./format-BBV1kKqe.js";import{S as pa}from"./server-CwGeAYBk.js";import{P as ga}from"./package-CJYaW8Kg.js";import{D as ua}from"./download-Bqm6M6NX.js";import{C as ja}from"./circle-check-CxxiAtEC.js";import{P as fa}from"./play-Ce4LhGa6.js";import{S as Na}from"./square-Cz5bA-GG.js";import{P as Ae}from"./power-CBudC6dT.js";import{H as ba}from"./hard-drive-G1LWlxDI.js";import{C as ya}from"./clock-sKPAANle.js";import{f as va}from"./formatDistanceToNow-Ba7cbhC8.js";import{S as Da}from"./shield-BGGcYH1A.js";import{C as wa}from"./check-M8j5DP2u.js";import{C as Pa}from"./copy-CRv-WHA9.js";import{r as R}from"./ro-BNkrA30z.js";import"./index-CdJFUDDL.js";import"./index-B0S7T6Iq.js";import"./index-D__OmZ0k.js";import"./index-DiiLNpaU.js";import"./index-7sSK0Fxm.js";import"./index-Dc_FVRD7.js";import"./index-FW9E5kpD.js";import"./Combination-bWOQ-6ny.js";import"./index-DUG1lxBv.js";import"./index-Dy-SEzf9.js";import"./index-BTMm7jbm.js";import"./use-toast-7X-BVGSS.js";import"./checkbox-BlacNvLf.js";import"./index-CjWMj8Jq.js";import"./timer-t5Co8_wP.js";import"./createLucideIcon-CWJ9Sf_H.js";import"./circle-alert-CtTt19vu.js";import"./key-4vE1EFFP.js";import"./external-link-D4bKnSAC.js";import"./circle-question-mark-KOo1k64w.js";import"./index-DqCDLhj0.js";import"./index-BEGl_t93.js";import"./chevron-down-CnyVVxRc.js";import"./eye-off-BGJke-j9.js";import"./eye-DrhNRa-8.js";import"./rotate-ccw-DdscpbJZ.js";import"./globe-DUwIS-GJ.js";import"./chevron-right-Brmb800G.js";import"./circle-13SFFCd9.js";import"./folder-input-DqSzvkjk.js";import"./ellipsis-vertical-QK0yeI0X.js";import"./plus-DHZwBb2L.js";import"./folder-9-m_-k_S.js";import"./user-BrsMSal1.js";import"./building-CK_56iIm.js";import"./chevron-left-2KIiJGs2.js";import"./credit-card-CXE4Q0la.js";import"./users-CNvha2qI.js";function Ee({machineId:a,readOnly:l=!1}){const{t:i}=ne(),[n,w]=r.useState(null),[X,B]=r.useState(!0),[N,t]=r.useState(!1),k=r.useCallback(async()=>{try{const P=await g.getMachineSecurityMode(a);w(P)}catch{w(null)}finally{B(!1)}},[a]);r.useEffect(()=>{k();const P=setInterval(k,3e4);return()=>clearInterval(P)},[k]);const _=async()=>{if(!n)return;const P=n.security_mode==="dynamic"?"static":"dynamic";t(!0);try{const T=await g.setMachineSecurityMode(a,P);w(T)}catch(T){console.error("Failed to toggle security mode:",T)}finally{t(!1)}};if(X||!n)return null;const b=n.security_mode==="dynamic";return e.jsxs(e.Fragment,{children:[e.jsx(Oe,{}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(ta,{className:"flex items-center gap-2 text-sm font-medium",children:[e.jsx(na,{className:"h-4 w-4"}),i("regiodesk.securityMode.title","Mod securitate parolă")]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:i("regiodesk.securityMode.description","Modul dinamic generează o parolă nouă pentru fiecare conexiune, prevenind accesul neautorizat cu credențiale furate.")}),e.jsxs("div",{className:"flex items-center justify-between gap-4 p-3 rounded-lg border",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(f,{variant:b?"default":"secondary",className:"text-xs",children:b?i("regiodesk.securityMode.dynamic","Dinamic"):i("regiodesk.securityMode.static","Static")}),e.jsx("span",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:n.agent_c
1onnected?e.jsxs(e.Fragment,{children:[e.jsx(ie,{className:"h-3 w-3 text-green-500"})," ",i("regiodesk.securityMode.agentOnline","Agent online")]}):e.jsxs(e.Fragment,{children:[e.jsx(Fe,{className:"h-3 w-3 text-red-500"})," ",i("regiodesk.securityMode.agentOffline","Agent offline")]})})]}),!l&&e.jsxs(m,{variant:"outline",size:"sm",disabled:N||!n.agent_connected&&!b,onClick:_,children:[N&&e.jsx(D,{className:"h-3 w-3 mr-1 animate-spin"}),b?i("regiodesk.securityMode.switchToStatic","Comută la Static"):i("regiodesk.securityMode.switchToDynamic","Comută la Dinamic")]})]}),!n.agent_connected&&!b&&e.jsx("p",{className:"text-xs text-orange-500",children:i("regiodesk.securityMode.agentRequiredHint","Agentul trebuie să fie online pentru modul dinamic")})]})]})}const He=["none","basic","standard","full","admin"];function re(a,l){const i=He.indexOf(a??"none"),n=He.indexOf(l);return n===-1?!1:i>=n}function L(a){return a==null?"N/A":`${a.toFixed(1)} GB`}function Re({text:a}){const{t:l}=ne(),[i,n]=r.useState(!1),w=async()=>{try{await navigator.clipboard.writeText(a),n(!0),setTimeout(()=>n(!1),2e3)}catch{}};return e.jsx("button",{onClick:w,className:"inline-flex items-center text-muted-foreground hover:text-foreground transition-colors ml-1.5",title:l("portalI18n.machineDetailPage.copyTooltip"),children:i?e.jsx(wa,{className:"h-3.5 w-3.5 text-green-500"}):e.jsx(Pa,{className:"h-3.5 w-3.5"})})}function c({label:a,value:l,mono:i=!1,copyable:n=!1}){return e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:a}),e.jsxs("div",{className:"flex items-center",children:[e.jsx("p",{className:z("font-medium text-sm",i&&"font-mono"),children:l||"N/A"}),n&&l&&e.jsx(Re,{text:l})]})]})}function rt(){const{t:a}=ne(),{machineId:l}=Je(),i=Qe(),{user:n,userPermissions:w}=Ye(),{isImpersonating:X}=Ze(),B=n?.user_type==="ADMIN"&&!X,N=w?.canEditMachines!==!1,[t,k]=r.useState(null),[_,b]=r.useState(null),[,P]=r.useState(null),[T,ce]=r.useState(!0),[oe,J]=r.useState(null),[de,Q]=r.useState(!1),[me,xe]=r.useState(""),[U,he]=r.useState(!1),[Le,pe]=r.useState(!1),[Y,ge]=r.useState(!1),[x,y]=r.useState(null),[ze,Z]=r.useState(!1),I=r.useCallback(async()=>{if(l){ce(!0),J(null);try{const[s,d]=await Promise.allSettled([g.getMachine(l),g.getAgentStatus(l)]);if(s.status==="fulfilled")k(s.value);else{J(a("portalI18n.machineDetailPage.loadMachineError"));return}d.status==="fulfilled"?b(d.value):b({agent_connected:!1})}catch(s){console.error("Error loading machine data:",s),J(a("portalI18n.machineDetailPage.loadDataError"))}finally{ce(!1)}}},[l,a]),V=r.useCallback(async()=>{if(!(!l||!N))try{const s=await g.getMachinePasswordStatus(l);P(s)}catch{}},[l,N]);r.useEffect(()=>{I(),V()},[I,V]);const Be=async()=>{y("start");try{await g.startRustDeskService(l),setTimeout(I,2e3)}catch(s){console.error("Error starting service:",s)}finally{y(null)}},Ue=async()=>{y("stop");try{await g.stopRustDeskService(l),setTimeout(I,2e3)}catch(s){console.error("Error stopping service:",s)}finally{y(null)}},Ve=async()=>{y("restart");try{await g.restartMachine(l,5),Z(!1),setTimeout(I,3e3)}catch(s){console.error("Error restarting machine:",s)}finally{y(null)}},Ge=async()=>{y("update");try{await g.triggerAgentUpdate(l),setTimeout(I,1e4)}catch(s){console.error("Error triggering update:",s)}finally{y(null)}},ee=t?.effective_permission??(B||t?.owner_id===n?.id?"admin":"none"),We=N&&re(ee,"standard"),ae=N&&re(ee,"full"),qe=N&&(B||t?.owner_id===n?.id),$e=()=>{xe(t.alias||""),Q(!0)},ue=async()=>{he(!0);try{const s=await g.updateMachineDetails(l,{alias:me});k(d=>({...d,...s})),Q(!1)}catch(s){console.error("Error saving alias:",s),alert(a("portalI18n.machineDetailPage.saveAliasError"))}finally{he(!1)}},je=()=>{Q(!1)},Ke=async()=>{ge(!0);try{await g.deleteMachine(l),i("/regiodesk")}catch(s){console.error("Error deleting machine:",s),alert(a("portalI18n.machineDetailPage.deleteMachineError")),ge(!1)}};if(T)return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("div",{className:"h-8 w-8 rounded bg-muted animate-pulse"}),e.jsx("div",{className:"h-6 w-48 rounded bg-muted animate-pulse"})]}),e.jsx("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[1,2,3,4].map(s=>e.jsxs(u,{children:[e.jsx(v,{children:e.jsx("div",{className:"h-5 w-32 rounded bg-muted animate-pulse"})}),e.jsx(j,{children:e.jsx("div",{className:"space-y-3",children:[1,2,3].map(d=>e.jsx("div",{className:"h-4 w-full rounded bg-muted animate-pulse"},d))})})]},s))})]});if(oe||!t)return e.jsxs("div",{className:"space-y-6",children:[e.jsxs(m,{variant:"ghost",onClick:()=>i("/regiodesk"),children:[e.jsx(_e,{className:"h-4 w-4 mr-2"}),a("portalI18n.machineDetailPage.backToMachines")]}),e.jsx(u,{children:e.jsxs(j,{className:"py-12 text-center",children:[e.jsx(F,{className:"h-12 w-12 mx-auto mb-4 text-muted-foreground"}),e.jsx("p",{className:"text-lg font-medium",children:oe||a("portalI18n.machineDetailPage.machineNotFound")})]})})]});const o=t.hardware_info||{},se=o.network_interfaces||[],te=o.drives||[],C=_?.agent_connected||!1,le=_?.rustdesk_service_running??null,G=_?.agent_version||null,W=_?.latest_version||null,Xe=G&&W&&G!==W,fe=se.find(s=>
1s.is_primary)?.ip;return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx(m,{variant:"ghost",size:"icon",onClick:()=>i("/regiodesk"),children:e.jsx(_e,{className:"h-4 w-4"})}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-3",children:[de?e.jsx(ea,{value:me,onChange:s=>xe(s.target.value),onKeyDown:s=>{s.key==="Enter"&&ue(),s.key==="Escape"&&je()},autoFocus:!0,className:"text-2xl font-bold h-10 w-64",disabled:U}):e.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:t.alias||t.hostname||a("portalI18n.machineDetailPage.defaultMachineName")}),e.jsx(f,{variant:t.is_online?"default":"secondary",className:t.is_online?"bg-green-600":"",children:t.is_online?a("portalI18n.machineDetailPage.statusOnline"):a("portalI18n.machineDetailPage.statusOffline")})]}),e.jsxs("p",{className:"text-sm text-muted-foreground mt-1",children:["Peer ID: ",e.jsx("span",{className:"font-mono",children:t.peer_id||"N/A"}),t.peer_id&&e.jsx(Re,{text:t.peer_id})]})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[de&&ae?e.jsxs(e.Fragment,{children:[e.jsx(A,{children:e.jsxs(E,{children:[e.jsx(H,{asChild:!0,children:e.jsx(m,{variant:"outline",size:"icon",onClick:ue,disabled:U,children:U?e.jsx(D,{className:"h-4 w-4 animate-spin"}):e.jsx(da,{className:"h-4 w-4"})})}),e.jsx(O,{children:a("portalI18n.machineDetailPage.saveTooltip")})]})}),e.jsx(A,{children:e.jsxs(E,{children:[e.jsx(H,{asChild:!0,children:e.jsx(m,{variant:"outline",size:"icon",onClick:je,disabled:U,children:e.jsx(ma,{className:"h-4 w-4"})})}),e.jsx(O,{children:a("portalI18n.machineDetailPage.cancelTooltip")})]})})]}):e.jsxs(e.Fragment,{children:[ae&&e.jsx(A,{children:e.jsxs(E,{children:[e.jsx(H,{asChild:!0,children:e.jsx(m,{variant:"outline",size:"icon",onClick:$e,children:e.jsx(xa,{className:"h-4 w-4"})})}),e.jsx(O,{children:a("portalI18n.machineDetailPage.editAliasTooltip")})]})}),qe&&e.jsx(A,{children:e.jsxs(E,{children:[e.jsx(H,{asChild:!0,children:e.jsx(m,{variant:"outline",size:"icon",onClick:()=>pe(!0),className:"text-red-600 hover:text-red-700 hover:bg-red-50 dark:text-red-400 dark:hover:bg-red-950",children:e.jsx(Me,{className:"h-4 w-4"})})}),e.jsx(O,{children:a("portalI18n.machineDetailPage.deleteMachineTooltip")})]})})]}),e.jsx(A,{children:e.jsxs(E,{children:[e.jsx(H,{asChild:!0,children:e.jsx(m,{variant:"outline",size:"icon",onClick:I,children:e.jsx(ha,{className:"h-4 w-4"})})}),e.jsx(O,{children:a("portalI18n.machineDetailPage.refreshTooltip")})]})}),e.jsx(sa,{machineId:t.id,peerId:t.peer_id,alias:t.alias,buttonText:a("portalI18n.machineDetailPage.connectButton"),buttonVariant:"default",buttonSize:"default"})]})]}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[e.jsxs(u,{children:[e.jsx(v,{className:"pb-3",children:e.jsxs(S,{className:"flex items-center gap-2 text-base",children:[e.jsx(Te,{className:"h-4 w-4 text-muted-foreground"}),a("portalI18n.machineDetailPage.sectionSystem")]})}),e.jsx(j,{children:e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsx(c,{label:"Hostname",value:t.hostname}),e.jsx(c,{label:a("portalI18n.machineDetailPage.labelPlatform"),value:t.platform}),e.jsx(c,{label:a("portalI18n.machineDetailPage.labelOsVersion"),value:t.os_version||o.os_version}),e.jsx(c,{label:a("portalI18n.machineDetailPage.labelArchitecture"),value:o.os_architecture}),e.jsx(c,{label:a("portalI18n.machineDetailPage.labelOsInstallDate"),value:o.os_install_date?K(new Date(o.os_install_date),"dd MMM yyyy",{locale:R}):null})]})})]}),e.jsxs(u,{children:[e.jsx(v,{className:"pb-3",children:e.jsxs(S,{className:"flex items-center gap-2 text-base",children:[e.jsx(la,{className:"h-4 w-4 text-muted-foreground"}),a("portalI18n.machineDetailPage.sectionNetwork")]})}),e.jsxs(j,{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsx(c,{label:a("portalI18n.machineDetailPage.labelPublicIp"),value:t.ip_address,mono:!0,copyable:!0}),e.jsx(c,{label:a("portalI18n.machineDetailPage.labelLocalIp"),value:fe||a("portalI18n.machineDetailPage.valueUnavailable"),mono:!0,copyable:!!fe})]}),se.length>0?e.jsx("div",{className:"border rounded-lg overflow-hidden",children:e.jsxs(Ne,{children:[e.jsx(be,{children:e.jsxs($,{children:[e.jsx(h,{className:"text-xs",children:a("portalI18n.machineDetailPage.tableHeadInterface")}),e.jsx(h,{className:"text-xs",children:"IP"}),e.jsx(h,{className:"text-xs hidden sm:table-cell",children:"MAC"}),e.jsx(h,{className:"text-xs",children:a("portalI18n.machineDetailPage.tableHeadType")})]})}),e.jsx(ye,{children:se.map((s,d)=>e.jsxs($,{children:[e.jsx(p,{className:"text-xs py-1.5",children:e.jsxs("div",{className:"flex items-center gap-1.5",children:[s.name,s.is_primary&&e.jsx(f,{variant:"outline",className:"text-[10px] px-1 py-0",children:a("portalI18n.machineDetailPage.badgePrimary")})]})}),e.jsx(p,{className:"text-xs font-mono py-1.5",children:s.ip}),e.jsx(p,{className:"text-xs font-mono py-1.5 hidden sm:table-cell",children:s.mac||"—"}),e.jsx(p,{className:"text-xs py-1.5",children:e.jsxs(f,{variant:"outline",className:"text-[10px] px-1.5 py-0",children:[s.type==="WiFi"&&e.jsx(ie,{className:"h-2.5 w-2.5 mr-1"}),s.type||"—"]})})]},d))})]})}):e.jsxs("div",{className:"flex items-center gap-2 p-3 rounded-lg bg-muted/50 text-sm text-muted-foreground",children:[e.jsx(F,{className:"h-4 w-4 shrink-0"}),a("portalI18n.machineDetailPage.noNetworkInterfaces")]})]})]}),e.jsxs(u,{children:[e.jsx(v,{className:"pb-3",children:e.jsxs(S,{className:"flex items-center gap-2 text-base",children:[e.jsx(ca,{className:"h-4 w-4 text-muted-foreground"}),"Hardware"]})}),e.jsx(j,{children:o.cpu_model||o.cpu_cores||o.ram_total_gb?e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsx("div",{className:"col-span-2",children:e.jsx(c,{label:a("portalI18n.machineDetailPage.labelProcessor"),value:o.cpu_model})}),e.jsx(c,{label:a("portalI18n.machineDetailPage.labelCpuCores"),value:o.cpu_cores?.toString()}),e.jsx(c,{label:a("portalI18n.machineDetailPage.labelRam"),value:o.ram_total_gb?`${o.ram_total_gb} GB`:null})]}):e.jsxs("div",{className:"flex items-center gap-2 p-3 rounded-lg bg-muted/50 text-sm text-muted-foreground",children:[e.jsx(F,{className:"h-4 w-4 shrink-0"}),a("portalI18n.machineDetailPage.noHardwareInfo")]})})]}),e.jsxs(u,{children:[e.jsx(v,{className:"pb-3",children:e.jsxs(S,{className:"flex items-center gap-2 text-base",children:[e.jsx(pa,{className:"h-4 w-4 text-muted-foreground"}),"Agent"]})}),e.jsxs(j,{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[C?e.jsx(ie,{className:"h-4 w-4 text-green-500"}):e.jsx(Fe,{className:"h-4 w-4 text-gray-400"}),e.jsx("span",{className:"text-sm font-medium",children:a(C?"portalI18n.machineDetailPage.agentConnected":"portalI18n.machineDetailPage.agentDisconnected")})]}),e.jsx(f,{variant:"outline",className:z("text-xs",C?"bg-emerald-500/10 text-emerald-600 dark:text-emerald-400 border-emerald-500/30":"bg-slate-500/10 text-slate-600 dar
1k:text-slate-400 border-slate-500/30"),children:a(C?"portalI18n.machineDetailPage.statusOnline":"portalI18n.machineDetailPage.statusOffline")})]}),G&&e.jsxs("div",{className:"flex items-center justify-between py-2 px-3 rounded-lg bg-muted/50 border border-border/40",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ga,{className:"h-4 w-4 text-muted-foreground"}),e.jsx("span",{className:"text-sm",children:a("portalI18n.machineDetailPage.labelVersion")})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("code",{className:"text-xs bg-background px-2 py-0.5 rounded border",children:["v",G]}),Xe?e.jsxs(e.Fragment,{children:[e.jsxs(f,{variant:"outline",className:"text-xs bg-amber-500/10 text-amber-600 dark:text-amber-400 border-amber-500/30",children:[e.jsx(oa,{className:"h-3 w-3 mr-1"}),"v",W]}),e.jsx(m,{variant:"outline",size:"sm",onClick:Ge,disabled:x!==null,className:"h-6 px-2 text-xs",children:x==="update"?e.jsx(D,{className:"h-3 w-3 animate-spin"}):e.jsx(ua,{className:"h-3 w-3"})})]}):W?e.jsxs(f,{variant:"outline",className:"text-xs bg-emerald-500/10 text-emerald-600 dark:text-emerald-400 border-emerald-500/30",children:[e.jsx(ja,{className:"h-3 w-3 mr-1"}),a("portalI18n.machineDetailPage.versionUpToDate")]}):null]})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Te,{className:"h-4 w-4 text-muted-foreground"}),e.jsx("span",{className:"text-sm",children:a("portalI18n.machineDetailPage.labelRustdeskService")})]}),le!==null&&e.jsx(f,{variant:"outline",className:z("text-xs",le?"bg-emerald-500/10 text-emerald-600 dark:text-emerald-400 border-emerald-500/30":"bg-amber-500/10 text-amber-600 dark:text-amber-400 border-amber-500/30"),children:a(le?"portalI18n.machineDetailPage.serviceRunning":"portalI18n.machineDetailPage.serviceStopped")})]}),We&&e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(m,{variant:"outline",size:"sm",onClick:Be,disabled:!C||x!==null,className:"text-xs h-8 flex-1",children:[x==="start"?e.jsx(D,{className:"h-3.5 w-3.5 mr-1.5 animate-spin"}):e.jsx(fa,{className:"h-3.5 w-3.5 mr-1.5"}),a("portalI18n.machineDetailPage.startButton")]}),e.jsxs(m,{variant:"outline",size:"sm",onClick:Ue,disabled:!C||x!==null,className:"text-xs h-8 flex-1 text-amber-600 hover:text-amber-700 hover:bg-amber-500/10 border-amber-500/30",children:[x==="stop"?e.jsx(D,{className:"h-3.5 w-3.5 mr-1.5 animate-spin"}):e.jsx(Na,{className:"h-3.5 w-3.5 mr-1.5"}),a("portalI18n.machineDetailPage.stopButton")]}),e.jsxs(m,{variant:"outline",size:"sm",onClick:()=>Z(!0),disabled:!C||x!==null,className:"text-xs h-8 flex-1 text-red-600 hover:text-red-700 hover:bg-red-500/10 border-red-500/30",children:[x==="restart"?e.jsx(D,{className:"h-3.5 w-3.5 mr-1.5 animate-spin"}):e.jsx(Ae,{className:"h-3.5 w-3.5 mr-1.5"}),a("portalI18n.machineDetailPage.restartPcButton")]})]})]})]})]}),te.length>0&&e.jsxs(u,{children:[e.jsx(v,{className:"pb-3",children:e.jsxs(S,{className:"flex items-center gap-2 text-base",children:[e.jsx(ba,{className:"h-4 w-4 text-muted-foreground"}),a("portalI18n.machineDetailPage.sectionStorage")]})}),e.jsxs(j,{className:"space-y-4",children:[e.jsx("div",{className:"border rounded-lg overflow-hidden",children:e.jsxs(Ne,{children:[e.jsx(be,{children:e.jsxs($,{children:[e.jsx(h,{className:"text-xs",children:"Drive"}),e.jsx(h,{className:"text-xs",children:a("portalI18n.machineDetailPage.tableHeadLabel")}),e.jsx(h,{className:"text-xs",children:a("portalI18n.machineDetailPage.tableHeadTotal")}),e.jsx(h,{className:"text-xs",children:a("portalI18n.machineDetailPage.tableHeadUsed")}),e.jsx(h,{className:"text-xs",children:a("portalI18n.machineDetailPage.tableHeadFree")}),e.jsx(h,{className:"text-xs",children:a("portalI18n.machineDetailPage.tableHeadTypeStorage")}),e.jsx(h,{className:"text-xs",children:a("portalI18n.machineDetailPage.tableHeadFormat")})]})}),e.jsx(ye,{children:te.map((s,d)=>{const q=s.total_gb-s.free_gb;return e.jsxs($,{children:[e.jsx(p,{className:"text-xs font-mono py-1.5",children:s.name}),e.jsx(p,{className:"text-xs py-1.5",children:s.label||"—"}),e.jsx(p,{className:"text-xs py-1.5",children:L(s.total_gb)}),e.jsx(p,{className:"text-xs py-1.5",children:L(q)}),e.jsx(p,{className:"text-xs py-1.5",children:L(s.free_gb)}),e.jsx(p,{className:"text-xs py-1.5",children:s.type?e.jsx(f,{variant:"outline",className:"text-[10px] px-1.5 py-0",children:s.type}):"—"}),e.jsx(p,{className:"text-xs py-1.5",children:s.format||"—"})]},d)})})]})}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3",children:te.map((s,d)=>{const q=s.total_gb-s.free_gb,M=s.total_gb>0?Math.round(q/s.total_gb*100):0;return e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("div",{className:"flex justify-between text-xs",children:[e.jsx("span",{className:"font-mono",children:s.name}),e.jsxs("span",{className:z("font-medium",M>90?"text-red-500":M>75?"text-amber-500":"text-muted-foreground"),children:[M,"%"]})]}),e.jsx(aa,{value:M,className:z("h-2",M>90?"[&>div]:bg-red-500":M>75?"[&>div]:bg-amber-500":"")}
1),e.jsx("p",{className:"text-[10px] text-muted-foreground",children:a("portalI18n.machineDetailPage.storageUsedOfTotal",{usedGb:L(q),totalGb:L(s.total_gb)})})]},d)})})]})]}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[e.jsxs(u,{children:[e.jsx(v,{className:"pb-3",children:e.jsxs(S,{className:"flex items-center gap-2 text-base",children:[e.jsx(ya,{className:"h-4 w-4 text-muted-foreground"}),a("portalI18n.machineDetailPage.sectionActivity")]})}),e.jsx(j,{children:e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsx(c,{label:a("portalI18n.machineDetailPage.labelFirstSeen"),value:t.first_seen?K(new Date(t.first_seen),"dd MMM yyyy HH:mm",{locale:R}):null}),e.jsx(c,{label:a("portalI18n.machineDetailPage.labelLastSeen"),value:t.last_seen?va(new Date(t.last_seen),{addSuffix:!0,locale:R}):null}),e.jsx(c,{label:a("portalI18n.machineDetailPage.labelCreatedAt"),value:t.created_at?K(new Date(t.created_at),"dd MMM yyyy HH:mm",{locale:R}):null}),t.last_seen&&e.jsx(c,{label:a("portalI18n.machineDetailPage.labelLastSeenExact"),value:K(new Date(t.last_seen),"dd MMM yyyy HH:mm",{locale:R})})]})})]}),e.jsxs(u,{children:[e.jsx(v,{className:"pb-3",children:e.jsxs(S,{className:"flex items-center gap-2 text-base",children:[e.jsx(Da,{className:"h-4 w-4 text-muted-foreground"}),a("portalI18n.machineDetailPage.sectionSecurity")]})}),e.jsx(j,{className:"space-y-4",children:ae?e.jsxs(e.Fragment,{children:[e.jsx(ra,{machineId:t.id,onPasswordChange:V}),e.jsx(Oe,{}),e.jsx(ia,{machineId:t.id,onPasswordChange:V}),e.jsx(Ee,{machineId:t.id,readOnly:!1})]}):re(ee,"basic")?e.jsxs(e.Fragment,{children:[e.jsx(Ee,{machineId:t.id,readOnly:!0}),e.jsxs("div",{className:"flex items-center gap-2 p-3 rounded-lg bg-muted/50 text-sm text-muted-foreground",children:[e.jsx(F,{className:"h-4 w-4 shrink-0"}),a("portalI18n.machineDetailPage.noPermissionModifySecurity")]})]}):e.jsxs("div",{className:"flex items-center gap-2 p-3 rounded-lg bg-muted/50 text-sm text-muted-foreground",children:[e.jsx(F,{className:"h-4 w-4 shrink-0"}),a("portalI18n.machineDetailPage.noPermissionManagePasswords")]})})]})]}),e.jsx(ve,{open:ze,onOpenChange:Z,children:e.jsxs(De,{children:[e.jsxs(we,{children:[e.jsxs(Pe,{className:"flex items-center gap-2",children:[e.jsx(Ae,{className:"h-5 w-5 text-red-500"}),a("portalI18n.machineDetailPage.restartDialogTitle")]}),e.jsxs(Ie,{className:"space-y-2",children:[e.jsx("p",{children:a("portalI18n.machineDetailPage.restartDialogConfirm")}),e.jsx("p",{className:"text-amber-600 dark:text-amber-400",children:a("portalI18n.machineDetailPage.restartDialogWarning")})]})]}),e.jsxs(Ce,{children:[e.jsx(Se,{disabled:x==="restart",children:a("portalI18n.machineDetailPage.dialogCancel")}),e.jsx(ke,{onClick:Ve,disabled:x==="restart",className:"bg-red-600 hover:bg-red-700 text-white",children:x==="restart"?e.jsxs(e.Fragment,{children:[e.jsx(D,{className:"h-4 w-4 mr-2 animate-spin"}),a("portalI18n.machineDetailPage.processing")]}):a("portalI18n.machineDetailPage.restartConfirmButton")})]})]})}),e.jsx(ve,{open:Le,onOpenChange:pe,children:e.jsxs(De,{children:[e.jsxs(we,{children:[e.jsxs(Pe,{className:"flex items-center gap-2",children:[e.jsx(Me,{className:"h-5 w-5 text-red-500"}),a("portalI18n.machineDetailPage.deleteDialogTitle")]}),e.jsx(Ie,{asChild:!0,children:e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{children:a("portalI18n.machineDetailPage.deleteDialogConfirm",{machineName:t.alias||t.hostname})}),e.jsx("p",{children:a("portalI18n.machineDetailPage.deleteDialogDetails")}),e.jsx("p",{className:"text-amber-600 dark:text-amber-400",children:a("portalI18n.machineDetailPage.deleteDialogWarning")})]})})]}),e.jsxs(Ce,{children:[e.jsx(Se,{disabled:Y,children:a("portalI18n.machineDetailPage.dialogCancel")}),e.jsx(ke,{onClick:Ke,disabled:Y,className:"bg-red-600 hover:bg-red-700 text-white",children:Y?e.jsxs(e.Fragment,{children:[e.jsx(D,{className:"h-4 w-4 mr-2 animate-spin"}),a("portalI18n.machineDetailPage.deleting")]}):a("portalI18n.machineDetailPage.deletePermanentlyButton")})]})]})})]})}export{rt 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.