1import{_ as j,r as L,f as s,b as e,A as w,F as n,L as z,G as M,M as R,E as B,e as g,x as N,h as u,z as d,w as r,u as H,t as o,m as P,l as F,k as O,s as G}from"../chunks/chunk-D6Oav43O.js";import{n as S}from"../chunks/chunk-lzWkO0SH.js";import"../chunks/chunk-D1JYe4Qp.js";import{a as x}from"../chunks/chunk-pJ2yq5Pf.js";/* empty css *//* empty css *//* empty css *//* empty css */import"../chunks/chunk-BwNI8fUT.js";const I={class:"admin-devices"},$={class:"md3-card devices-card"},q={key:0,class:"md3-loading"},K=["innerHTML"],J={class:"md3-toolbar"},Q={class:"tools"},W={class:"md3-search",style:{flex:"1 1 280px"}},X={class:"md3-pgsize"},Y={class:"content"},Z={key:0,class:"md3-loading"},ee=["innerHTML"],te={key:0,class:"empty"},ae={key:1,class:"grid"},se=["onClick"],oe={class:"head"},ie={class:"name-row"},le={class:"name"},ne={key:0,class:"md3-chip"},de={class:"meta"},re={class:"body"},ue={class:"row"},ce={class:"value"},ve={class:"row"},pe={class:"value"},me={class:"row"},fe={class:"value"},he={key:0,class:"md3-pager"},ye=["disabled"],_e={class:"md3-page-info"},ge=["disabled"],Se={__name:"+Page",setup(ke){const h=r(!0),b=r(null),m=r(""),i=r(1),f=r(10),T=r(0),v=r(1),y=r([]),_=r(!1);function A(){S("/admin/devices/new")}async function D(){const l=await x("/api/user/info",{method:"GET"});if(!l?.ok){await S("/admin/login");return}const a=(await l.json().catch(()=>({})))?.data?.users;b.value=a,h.value=!1}async function p(){_.value=!0;try{const l=new URLSearchParams({page:String(i.value),pageSize:String(f.value)});m.value&&l.set("q",m.value);const t=await x(`/api/device/maintained?${l.toString()}`,{method:"GET"}),a=await t.json().catch(()=>({}));if(!t.ok)throw new Error(a?.message||"Failed to fetch");const c=a?.data||{};y.value=c.items||[],i.value=c.page||1,f.value=c.pageSize||10,T.value=c.total||0,v.value=c.totalPages||1}catch(l){await H({type:"alert",title:"Error",content:String(l?.message||l)})}finally{_.value=!1}}function k(){i.value=1,p()}function C(){i.value>1&&(i.value-=1,p())}function U(){i.value<v.value&&(i.value+=1,p())}function V(){i.value=1,p()}function E(l){S(`/admin/devices/${encodeURIComponent(l.codename)}`)}return L(async()=>{await D(),h.value||await p()}),(l,t)=>(o(),s("div",I,[e("div",$,[h.value?(o(),s("div",q,[e("div",{class:"spinner",innerHTML:w(P)}
1,null,8,K)])):(o(),s(n,{key:1},[e("header",J,[t[5]||(t[5]=e("div",{class:"titles"},[e("h1",{class:"md3-title"},"Devices"),e("p",{class:"md3-subtitle"},"Managed device list. Admin sees all devices.")],-1)),e("div",Q,[e("div",W,[t[2]||(t[2]=e("span",{class:"material-icons-round"},"search",-1)),z(e("input",{"onUpdate:modelValue":t[0]||(t[0]=a=>m.value=a),type:"search",placeholder:"Search by name/codename/manufacturer",onKeyup:R(k,["enter"])},null,544),[[M,m.value,void 0,{trim:!0}]]),e("button",{class:"md3-btn md3-btn--filled",onClick:k},"Search")]),e("div",X,[t[4]||(t[4]=e("label",null,"Page size",-1)),z(e("select",{"onUpdate:modelValue":t[1]||(t[1]=a=>f.value=a),onChange:V},[...t[3]||(t[3]=[e("option",{value:10},"10",-1),e("option",{value:20},"20",-1),e("option",{value:30},"30",-1),e("option",{value:50},"50",-1)])],544),[[B,f.value,void 0,{number:!0}]])]),b.value?.admin?(o(),s("button",{key:0,class:"md3-btn md3-btn--tonal add",onClick:A},"Add Device")):g("v-if",!0)])]),e("div",Y,[_.value?(o(),s("div",Z,[e("div",{class:"spinner",innerHTML:w(P)},null,8,ee)])):(o(),s(n,{key:1},[(y.value?.length||0)===0?(o(),s("div",te,"No devices found.")):(o(),s("div",ae,[(o(!0),s(n,null,N(y.value,a=>(o(),s("div",{class:"device-card",key:a.id,onClick:c=>E(a),tabindex:"0"},[e("div",oe,[e("div",ie,[e("div",le,d(a.name),1),a.official?(o(),s("span",ne,"Official")):g("v-if",!0)]),e("div",de,d(a.manufacturer)+" · "+d(a.codename),1)]),e("div",re,[e("div",ue,[t[6]||(t[6]=e("div",{class:"label"},"Latest Version",-1)),e("div",ce,[a.latestVersion?(o(),s(n,{key:0},[u(d(a.latestVersion.versionName),1)],64)):(o(),s(n,{key:1},[u("â")],64))])]),e("div",ve,[t[7]||(t[7]=e("div",{class:"label"},"Latest Recovery",-1)),e("div",pe,[a.latestRecovery?(o(),s(n,{key:0},[u(d(a.latestRecovery.minVersion),1)],64)):(o(),s(n,{key:1},[u("â")],64))])]),e("div",me,[t[8]||(t[8]=e("div",{class:"label"},"Latest Vendor Boot",-1)),e("div",fe,[a.latestVendorBoot?(o(),s(n,{key:0},[u(d(a.latestVendorBoot.minVersion),1)],64)):(o(),s(n,{key:1},[u("â")],64))])])])],8,se))),128))]))],64))]),v.value>1?(o(),s("footer",he,[e("button",{class:"md3-btn md3-btn--outlined",disabled:i.value<=1,onClick:C},[...t[9]||(t[9]=[e("span",{class:"material-icons-round"},"chevron_left",-1),u(" Prev ",-1)])],8,ye),e("div",_e," Page "+d(i.value)+" / "+d(v.value)+" · "+d(T.value)+" items ",1),e("button",{class:"md3-btn md3-btn--outlined",disabled:i.value>=v.value,onClick:U},[...t[10]||(t[10]=[u(" Next ",-1),e("span",{class:"material-icons-round"},"chevron_right",-1)])],8,ge)])):g("v-if",!0)],64))])]))}},be=j(Se,[["__scopeId","data-v-387ebf46"]]),Te=Object.freeze(Object.defineProperty({__proto__:null,default:be},Symbol.toStringTag,{value:"Module"})),Ee={hasServerOnlyHook:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:!1}},isClientRuntimeLoaded:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:!0}},onBeforeRenderEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},dataEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},guardEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},onRenderClient:{type:"standard",definedAtData:{filePathToShowToUser:"vike-vue/__internal/integration/onRenderClient",fileExportPathToShowToUser:[]},valueSerialized:{type:"pointer-import",value:G}},Page:{type:"standard",definedAtData:{filePathToShowToUser:"/src/pages/admin/devices/+Page.vue",fileExportPathToShowToUser:[]},valueSerialized:{type:"plus-file",exportValues:Te}},hydrationCanBeAborted:{type:"standard",definedAtData:{filePathToShowToUser:"vike-vue/config",fileExportPathToShowToUser:["default","hydrationCanBeAborted"]},valueSerialized:{type:"js-serialized",value:!0}},Layout:{type:"cumulative",definedAtData:[{filePathToShowToUser:"/src/pages/+Layout.vue",fileExportPathToShowToUser:[]}],valueSerialized:[{type:"plus-file",exportValues:O}]},title:{type:"standard",definedAtData:{filePathToShowToUser:"/src/pages/+config.js",fileExportPathToShowToUser:["default","title"]},valueSerialized:{type:"js-serialized",value:"AviumUI"}},onCreateApp:{type:"cumulative",definedAtData:[{filePathToShowToUser:"/src/pages/+onCreateApp.js",fileExportPathToShowToUser:[]}],valueSerialized:[{type:"plus-file",exportValues:F}]}};export{Ee as configValuesSerialized};
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.