1import{d as A,h as F}from"./index-mGgJqOFQ.js";import{d as x,y as E,bo as Y,at as q,o,c,b as r,w as s,F as f,a4 as I,u as g,a as b,h as z,e as G,g as h,t as i,n as S,q as u,au as M,f as P,j as R,bl as v,_ as H}from"./core-Cu1dlvv4.js";import{u as J}from"./useAutoModal-CaK8mTFj.js";import{d as K}from"./date-ugE6_wQF.js";import"./date-fns-4jjKl9Wm.js";import"./locales/not-used-C_22OJqP.js";import"./locales/ar-DZ/date-fns-uefcym1R.js";import"./locales/ar/date-fns-BbSi9LdT.js";import"./locales/bn/date-fns-C_iUCXje.js";import"./locales/ca/date-fns-3OpJAUSA.js";import"./locales/cs/date-fns-CT1ySzFw.js";import"./locales/da/date-fns-DPYwfas4.js";import"./locales/de/date-fns-otTz_lh9.js";import"./locales/el/date-fns-DPFISduA.js";import"./locales/en-GB/date-fns-DaHzucfi.js";import"./locales/eo/date-fns-CQTlt1eZ.js";import"./locales/es/date-fns-DK1uJT1V.js";import"./locales/eu/date-fns-DcYEGGbB.js";import"./locales/fa-IR/date-fns-45D_hwVN.js";import"./locales/fi/date-fns-Dev_M3VC.js";import"./locales/fr/date-fns-B5_UC8lf.js";import"./locales/gl/date-fns-87UW_uhU.js";import"./locales/he/date-fns-C-yjP_b_.js";import"./locales/hi/date-fns-9owWwD6d.js";import"./locales/hu/date-fns-Gx7fdoSl.js";import"./locales/id/date-fns-BLVaqLJy.js";import"./locales/it/date-fns-CLRs5bIw.js";import"./locales/lt/date-fns-DyKydRcD.js";import"./locales/mk/date-fns-CMgf35MN.js";import"./locales/nb/date-fns-CKHCqZel.js";import"./locales/nl/date-fns-CNAqgXeM.js";import"./locales/pl/date-fns-C9slAsft.js";import"./locales/pt-BR/date-fns-N75mGB0i.js";import"./locales/pt/date-fns-CKv0lGzD.js";import"./locales/ru/date-fns-BkSoUSTk.js";import"./locales/sk/date-fns-CXU7_rNX.js";import"./locales/sl/date-fns-DudS4SI4.js";import"./locales/sv/date-fns-Dzr-sVTj.js";import"./locales/te/date-fns-CXEZ9Kx8.js";import"./locales/tr/date-fns-CoHs04qJ.js";import"./locales/uk/date-fns-BRGjM6-8.js";import"./locales/zh-CN/date-fns-BSTZOrDH.js";const Q={key:2},U={class:"log"},W=x({__name:"ServiceInfo",props:{name:{}},async setup(D){let $,C;const _=D,{t:y}=E(),N=J(),{infos:B,upOrDownTime:O,isCritical:T,logs:j}=([$,C]=Y(()=>v.fetchAll([{uri:"services/"+_.name},{uri:`services/${_.name}/log?number=50`}]).then(([n,t])=>{const{last_state_change:a,...l}=n,k=["nginx","ssh","slapd","yunohost-api"];return{infos:l,upOrDownTime:a==="unknown"?y("unknown"):K(a,!1),isCritical:k.includes(_.name),logs:Object.keys(t).sort((p,d)=>p==="journalctl"?-1:d==="journalctl"?1:p<d?-1:1).map(p=>({content:t[p].join(` 2`),filename:p}))}})),$=await $,C(),$);async function w(n){await N(y(`confirm_service_${n}`,{name:_.name}))&&v.put({uri:`services/${_.name}/${n}`}).then(()=>v.refetch())}function L(){const n=j.map(({filename:t,content:a})=>`LOGFILE: ${t} 3${a}`).join(` 4 5`);fetch("https://paste.yunohost.org/documents",{method:"POST",body:n}).then(t=>{if(t.ok)return t.json();console.error("error",t)}).then(({key:t})=>{window.open(`https://paste.yunohost.org/${t}`,"_blank")})}return(n,t)=>{const a=A,l=P,k=G,p=z,d=F,V=q("t");return o(),c("div",null,[r(d,{title:n.name,icon:"info-circle","button-unbreak":"sm"},{"header-buttons":s(()=>[g(B).status==="running"?(o(),c(f,{key:0},[r(l,{variant:"warning",onClick:t[0]||(t[0]=e=>w("restart"))},{default:s(()=>[r(a,{iname:"refresh"}),u(" "+i(n.$t("restart")),1)]),_:1}),g(T)?R("",!0):(o(),b(l,{key:0,variant:"danger",onClick:t[1]||(t[1]=e=>w("stop"))},{default:s(()=>[r(a,{iname:"warning"}),u(" "+i(n.$t("stop")),1)]),_:1}))],64)):(o(),b(l,{key:1,variant:"success",onClick:t[2]||(t[2]=e=>w("start"))},{default:s(()=>[r(a,{iname:"play"}),u(" "+i(n.$t("start")),1)]),_:1}))]),default:s(()=>[(o(!0),c(f,null,I(g(B),(e,m)=>(o(),b(p,{key:m,"no-gutters":"",class:"row-line"},{default:s(()=>[r(k,{md:"3",xl:"2"},{default:s(()=>[h("strong",null,i(n.$t(m==="start_on_boot"?"service_"+m:m)),1)]),_:2},1024),r(k,null,{default:s(()=>[m==="status"?(o(),c(f,{key:0},[h("span",{class:S(e==="running"?"text-success":"text-danger")},[r(a,{iname:e==="running"?"check-circle":"times"},null,8,["iname"]),u(" "+i(n.$t(e)),1)],2),u(" "+i(n.$t("since"))+" "+i(g(O)),1)],64)):m==="start_on_boot"?(o(),c("span",{key:1,class:S(e==="enabled"?"text-success":"text-danger")},i(n.$t(e)),3)):M((o(),c("span",Q,null,512)),[[V,e]])]),_:2},1024)]),_:2},1024))),128))]),_:1},8,["title"]),r(d,{title:n.$t("logs"),icon:"book","button-unbreak":"sm"},{"header-buttons":s(()=>[r(l,{variant:"success",onClick:L},{default:s(()=>[r(a,{iname:"cloud-upload"}),u(" "+i(n.$t("logs_share_with_yunopaste")),1)]),_:1})]),default:s(()=>[(o(!0),c(f,null,I(g(j),({filename:e,content:m})=>(o(),c(f,{key:e},[h("h3",null,i(e),1),h("pre",U,[h("code",null,i(m),1)])],64))),128))]),_:1},8,["title"])])}}}
5),qt=H(W,[["__scopeId","data-v-10dae1c2"]]);export{qt 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.