UNPKG

zwave-js-ui

Version:

Z-Wave Control Panel and MQTT Gateway

2 lines (1 loc) 6.48 kB
import{_ as v,a as _,I as C,e as o,z as n,w as t,b as r,F as w,ar as T,H as R,t as u,G as D,c as y,h as m,P as x,k as i,ac as N,an as B,R as I,ax as F,l as c,af as L,cZ as k,at as P,ai as A,i as V,a7 as U,C as E,L as S,x as j}from"./index-DwzE-W2i.js";import{V as z}from"./VDataTable-D8DZXD9Y.js";import{V as H,a as O,b as G,c as K}from"./VExpansionPanels-DapzAmhb.js";import"./sort-C8HQTCiq.js";import"./VTable-Cxuwit5L.js";const M=S.get("DialogApplyTemplate"),Z={name:"DialogApplyTemplate",mixins:[C],props:{modelValue:{type:Boolean,default:!1},template:{type:Object,default:null}},emits:["update:modelValue"],data(){return{selected:[],running:!1,nodeResults:{}}},computed:{..._(j,["nodes"]),_value:{get(){return this.modelValue},set(a){this.$emit("update:modelValue",a)}},matchingNodes(){return this.template?this.nodes.filter(a=>a&&a.ready&&a.deviceId===this.template.deviceId):[]},tableHeaders(){return[{title:"Node",key:"node",sortable:!1},{title:"Product",key:"device",sortable:!1},{title:"Status",key:"status",sortable:!1},{title:"Details",key:"details",sortable:!1}]},allDone(){return this.selected.length?!this.running&&this.selected.every(a=>this.nodeResults[a.id]&&this.nodeResults[a.id].status!=="pending"&&this.nodeResults[a.id].status!=="running"):!1},failedNodes(){return this.matchingNodes.filter(a=>{const e=this.nodeResults[a.id];return e&&(e.status==="error"||e.status==="warning")})}},watch:{modelValue(a){a?this.init():this.reset()}},methods:{init(){this.selected=[...this.matchingNodes],this.nodeResults={},this.running=!1},reset(){this.selected=[],this.nodeResults={},this.running=!1},retryFailed(){const a=[...this.failedNodes],e={...this.nodeResults};for(const f of a)delete e[f.id];this.nodeResults=e,this.selected=a},async run(){this.running=!0;for(const a of this.selected){this.nodeResults={...this.nodeResults,[a.id]:{status:"running",result:null}};try{const f=(await E.applyConfigurationTemplate(this.template.id,a.id)).data;let g;f.reason?g="error":f.failed>0?g="warning":g="success",this.nodeResults={...this.nodeResults,[a.id]:{status:g,result:f}}}catch(e){this.nodeResults={...this.nodeResults,[a.id]:{status:"error",result:{reason:e.message}}},M.error("Failed to apply configuration template",{templateId:this.template.id,nodeId:a.id,error:e})}}this.running=!1}}},q={class:"text-h5"},J={key:0,class:"text-grey"},Q={key:0,class:"text-success"},W={key:1,class:"text-error"},X={class:"text-amber"};function Y(a,e,f,g,l,d){return n(),o(U,{modelValue:d._value,"onUpdate:modelValue":e[3]||(e[3]=s=>d._value=s),"max-width":"800px",persistent:l.running},{default:t(()=>[r(w,null,{default:t(()=>[r(T,null,{default:t(()=>[R("span",q,"Apply Template: "+u(f.template?.name),1)]),_:1}),r(D,{class:"pa-0"},{default:t(()=>[r(z,{modelValue:l.selected,"onUpdate:modelValue":e[0]||(e[0]=s=>l.selected=s),headers:d.tableHeaders,items:d.matchingNodes,"show-select":"","return-object":"","item-value":"id","items-per-page":"-1","hide-default-footer":"",density:"comfortable"},{"header.data-table-select":t(({allSelected:s,selectAll:h,someSelected:p})=>[r(k,{indeterminate:p&&!s,"model-value":s,disabled:l.running,"onUpdate:modelValue":b=>h(!s)},null,8,["indeterminate","model-value","disabled","onUpdate:modelValue"])]),"item.data-table-select":t(({isSelected:s,toggleSelect:h,item:p})=>[r(k,{"model-value":s({value:p}),disabled:l.running,"onUpdate:modelValue":b=>h({value:p})},null,8,["model-value","disabled","onUpdate:modelValue"])]),"item.node":t(({item:s})=>[i(u(s._name),1)]),"item.device":t(({item:s})=>[i(u([s.manufacturer,s.productLabel].filter(Boolean).join(" - ")),1)]),"item.status":t(({item:s})=>[!l.nodeResults[s.id]||l.nodeResults[s.id].status==="pending"?(n(),y("span",J," -- ")):l.nodeResults[s.id].status==="running"?(n(),o(L,{key:1,indeterminate:"",size:"20",width:"2"})):l.nodeResults[s.id].status==="success"?(n(),o(c,{key:2,color:"success"},{default:t(()=>[...e[4]||(e[4]=[i(" check_circle ",-1)])]),_:1})):l.nodeResults[s.id].status==="warning"?(n(),o(c,{key:3,color:"amber"},{default:t(()=>[...e[5]||(e[5]=[i(" warning ",-1)])]),_:1})):l.nodeResults[s.id].status==="error"?(n(),o(c,{key:4,color:"error"},{default:t(()=>[...e[6]||(e[6]=[i(" error ",-1)])]),_:1})):m("",!0)]),"item.details":t(({item:s})=>[l.nodeResults[s.id]?.status==="success"?(n(),y("span",Q,u(l.nodeResults[s.id].result.success)+" parameter(s) set ",1)):l.nodeResults[s.id]?.status==="error"?(n(),y("span",W,u(l.nodeResults[s.id].result.reason||"Failed"),1)):l.nodeResults[s.id]?.status==="warning"?(n(),y(x,{key:2},[R("span",X,u(l.nodeResults[s.id].result.success)+" OK, "+u(l.nodeResults[s.id].result.failed)+" failed ",1),l.nodeResults[s.id].result.errors?.length?(n(),o(H,{key:0,variant:"accordion",flat:"",class:"mt-1"},{default:t(()=>[r(O,null,{default:t(()=>[r(G,{class:"pa-0 min-height-0 text-caption",style:{"min-height":"28px"}},{default:t(()=>[...e[7]||(e[7]=[i(" Show details ",-1)])]),_:1}),r(K,null,{default:t(()=>[r(N,{density:"compact",class:"pa-0"},{default:t(()=>[(n(!0),y(x,null,B(l.nodeResults[s.id].result.errors,(h,p)=>(n(),o(I,{key:p,class:"px-0","min-height":"24"},{prepend:t(()=>[r(c,{size:"x-small",color:"error",class:"mr-1"},{default:t(()=>[...e[8]||(e[8]=[i(" close ",-1)])]),_:1})]),default:t(()=>[r(F,{class:"text-caption text-error text-wrap"},{default:t(()=>[i(u(h),1)]),_:2},1024)]),_:2},1024))),128))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024)):m("",!0)],64)):m("",!0)]),_:2},1032,["modelValue","headers","items"])]),_:1}),r(P,null,{default:t(()=>[r(A),d.allDone?m("",!0):(n(),o(V,{key:0,variant:"text",disabled:l.running,onClick:e[1]||(e[1]=s=>d._value=!1)},{default:t(()=>[...e[9]||(e[9]=[i(" Cancel ",-1)])]),_:1},8,["disabled"])),d.allDone?(n(),o(V,{key:1,variant:"text",onClick:e[2]||(e[2]=s=>d._value=!1)},{default:t(()=>[...e[10]||(e[10]=[i(" Close ",-1)])]),_:1})):m("",!0),d.allDone&&d.failedNodes.length>0?(n(),o(V,{key:2,color:"warning",onClick:d.retryFailed},{default:t(()=>[r(c,{start:""},{default:t(()=>[...e[11]||(e[11]=[i("refresh",-1)])]),_:1}),e[12]||(e[12]=i(" Retry Failed ",-1))]),_:1},8,["onClick"])):m("",!0),d.allDone?m("",!0):(n(),o(V,{key:3,color:"primary",disabled:l.selected.length===0||l.running,loading:l.running,onClick:d.run},{default:t(()=>[r(c,{start:""},{default:t(()=>[...e[13]||(e[13]=[i("play_arrow",-1)])]),_:1}),e[14]||(e[14]=i(" Run ",-1))]),_:1},8,["disabled","loading","onClick"]))]),_:1})]),_:1})]),_:1},8,["modelValue","persistent"])}const ae=v(Z,[["render",Y]]);export{ae as default};