Files
yakpanel-core/YakPanel-server/frontend/dist/assets/DockerPage-D1AIK8Rv.js

2 lines
6.2 KiB
JavaScript
Raw Normal View History

2026-04-07 09:46:22 +05:30
import{r as t,j as e,W as H,X as O,Y as W,Z as M,a as j}from"./index-CRR9sQ49.js";import{M as o}from"./Modal-B7V4w_St.js";import{A as X}from"./AdminAlert-DW1IRWce.js";import{A as d}from"./AdminButton-Bd2cLTu3.js";import{A}from"./AdminTable-BLiLxfnS.js";import{E as Y}from"./EmptyState-C61VdEFl.js";import{P as _}from"./PageHeader-BcjNf7GG.js";function p({show:m}){return m?e.jsx("span",{className:"spinner-border spinner-border-sm",role:"status"}):null}function ee(){const[m,E]=t.useState([]),[f,T]=t.useState([]),[z,g]=t.useState(!0),[b,a]=t.useState(""),[i,r]=t.useState(null),[D,c]=t.useState(!1),[u,x]=t.useState(""),[N,y]=t.useState(""),[S,v]=t.useState(""),[k,C]=t.useState(!1),[h,R]=t.useState(""),[P,w]=t.useState(!1),l=()=>{g(!0),Promise.all([H(),O()]).then(([s,n])=>{E(s.containers||[]),T(n.images||[]),a(s.error||n.error||"")}).catch(s=>a(s.message)).finally(()=>g(!1))};t.useEffect(()=>{l()},[]);const $=s=>{r(s),j(`/docker/${s}/start`,{method:"POST"}).then(l).catch(n=>a(n.message)).finally(()=>r(null))},F=s=>{r(s),j(`/docker/${s}/stop`,{method:"POST"}).then(l).catch(n=>a(n.message)).finally(()=>r(null))},L=s=>{r(s),j(`/docker/${s}/restart`,{method:"POST"}).then(l).catch(n=>a(n.message)).finally(()=>r(null))},I=s=>s.toLowerCase().startsWith("up")||s.toLowerCase().includes("running"),q=s=>{s.preventDefault(),u.trim()&&(C(!0),M(u.trim(),N.trim()||void 0,S.trim()||void 0).then(()=>{c(!1),x(""),y(""),v(""),l()}).catch(n=>a(n.message)).finally(()=>C(!1)))},B=()=>{h.trim()&&(w(!0),W(h.trim()).then(()=>{R(""),l()}).catch(s=>a(s.message)).finally(()=>w(!1)))};return z?e.jsxs(e.Fragment,{children:[e.jsx(_,{title:"Docker"}),e.jsx("p",{className:"text-secondary",children:"Loading…"})]}):e.jsxs(e.Fragment,{children:[e.jsx(_,{title:"Docker",actions:e.jsxs("div",{className:"d-flex flex-wrap align-items-center gap-2",children:[e.jsxs("div",{className:"d-flex gap-1 align-items-center",children:[e.jsx("input",{value:h,onChange:s=>R(s.target.value),placeholder:"nginx:latest",className:"form-control form-control-sm",style:{width:"10rem"}}),e.jsxs(d,{variant:"warning",size:"sm",onClick:B,disabled:P||!h.trim(),children:[P?e.jsx(p,{show:!0}):e.jsx("i",{className:"ti ti-download me-1","aria-hidden":!0}),"Pull"]})]}),e.jsxs(d,{variant:"primary",size:"sm",onClick:()=>c(!0),children:[e.jsx("i",{className:"ti ti-plus me-1","aria-hidden":!0}),"Run Container"]}),e.jsxs(d,{variant:"secondary",size:"sm",onClick:l,children:[e.jsx("i",{className:"ti ti-rotate-clockwise me-1","aria-hidden":!0}),"Refresh"]})]})}),e.jsxs(o,{show:D,onHide:()=>c(!1),centered:!0,children:[e.jsx(o.Header,{closeButton:!0,children:e.jsx(o.Title,{children:"Run Container"})}),e.jsxs("form",{onSubmit:q,children:[e.jsxs(o.Body,{children:[e.jsxs("div",{className:"mb-3",children:[e.jsx("label",{className:"form-label",children:"Image"}),e.jsx("input",{value:u,onChange:s=>x(s.target.value),placeholder:"nginx:latest",className:"form-control",required:!0})]}),e.jsxs("div",{className:"mb-3",children:[e.jsx("label",{className:"form-label",children:"Name (optional)"}),e.jsx("input",{value:N,onChange:s=>y(s.target.value),placeholder:"my-nginx",className:"form-control"})]}),e.jsxs("div",{className:"mb-0",children:[e.jsx("label",{className:"form-label",children:"Ports (optional, e.g. 80:80 or 8080:80)"}),e.jsx("input",{value:S,onChange:s=>v(s.target.value),placeholder:"80:80",className:"form-control"})]})]}),e.jsxs(o.Footer,{children:[e.jsx(d,{type:"button",variant:"secondary",onClick:()=>c(!1),children:"Cancel"}),e.jsx(d,{type:"submit",variant:"primary",disabled:k,children:k?"Starting…":"Run"})]})]})]}),b?e.jsx(X,{variant:"warning",className:"mb-3",children:b}):null,e.jsx("div",{className:"card",children:e.jsxs(A,{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Container"}),e.jsx("th",{children:"Image"}),e.jsx("th",{children:"Status"}),e.jsx("th",{children:"Ports"}),e.jsx("th",{className:"text-end",children:"Actions"})]})}),e.jsx("tbody",{children:m.length===0?e.jsx("tr",{children:e.jsx("td",{colSpan:5,className:"p-0",children:e.jsx(Y,{title:"No containers",de