UNPKG

zwave-js-ui

Version:

Z-Wave Control Panel and MQTT Gateway

3 lines (2 loc) 6.6 kB
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./TemplateWizard-Cr4CREGe.js","./index-DwzE-W2i.js","./index-B2zoqM3Y.css","./VDataTable-D8DZXD9Y.js","./sort-C8HQTCiq.js","./VTable-Cxuwit5L.js","./VTable-BsI6FsWH.css","./VDataTable-CLcLRj9B.css","./DialogApplyTemplate-bnZgcsAC.js","./VExpansionPanels-DapzAmhb.js","./VExpansionPanels-Dyw0hWW-.css"])))=>i.map(i=>d[i]); import{_ as D,a as V,I as b,d as T,e as n,w as s,h as _,s as A,q as h,l as m,k as r,t as c,b as i,B as x,V as z,f as g,D as S,i as y,u as I,C as u,x as W,y as v,z as p,am as w}from"./index-DwzE-W2i.js";import{V as N}from"./VDataTable-D8DZXD9Y.js";import"./sort-C8HQTCiq.js";import"./VTable-Cxuwit5L.js";const R={name:"ConfigurationTemplates",components:{TemplateWizard:T(()=>v(()=>import("./TemplateWizard-Cr4CREGe.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url)),DialogApplyTemplate:T(()=>v(()=>import("./DialogApplyTemplate-bnZgcsAC.js"),__vite__mapDeps([8,1,2,3,4,5,6,7,9,10]),import.meta.url))},mixins:[b],data(){return{templates:[],search:"",headers:[{title:"Name",key:"name"},{title:"Device",key:"device",sortable:!1},{title:"Firmware Range",key:"firmwareRange",sortable:!1},{title:"Values",key:"values",sortable:!1},{title:"Auto-Apply",key:"autoApply"},{title:"Devices",key:"devices",sortable:!1},{title:"Created",key:"createdAt"},{title:"Actions",key:"actions",sortable:!1}],wizardActive:!1,editingTemplate:null,showApplyDialog:!1,applyDialogTemplate:null}},computed:{...V(W,["nodes"])},methods:{formatDate(t){return t?new Date(t).toLocaleDateString():""},formatFirmwareRange(t){if(!t)return"—";const{min:e,max:d}=t;return e&&d?`${e}${d}`:e?`≥ ${e}`:d?`≤ ${d}`:"—"},getMatchingNodes(t){return this.nodes.filter(e=>e&&e.ready&&e.deviceId===t.deviceId)},async refreshTemplates(){try{const t=await u.getConfigurationTemplates();t.success&&(this.templates=t.data||[])}catch(t){this.showSnackbar(t.message,"error")}},async toggleAutoApply(t){try{const e=await u.updateConfigurationTemplate(t.id,{autoApply:!t.autoApply});e.success&&(t.autoApply=!t.autoApply),this.showSnackbar(e.message,e.success?"success":"error")}catch(e){this.showSnackbar(e.message,"error")}},async deleteItem(t){if(await this.app.confirm("Attention",`Are you sure you want to delete template "${t.name}"?`,"alert"))try{const e=await u.deleteConfigurationTemplate(t.id);e.success&&this.refreshTemplates(),this.showSnackbar(e.message,e.success?"success":"error")}catch(e){this.showSnackbar(e.message,"error")}},applyTemplate(t){if(this.getMatchingNodes(t).length===0){this.showSnackbar("No matching devices found","warning");return}this.applyDialogTemplate=t,this.showApplyDialog=!0},async importTemplates(){try{const{data:t}=await this.app.importFile("json");if(!Array.isArray(t)){this.showSnackbar("Imported file is not valid","error");return}const e=await u.importConfigurationTemplates(t);e.success&&this.refreshTemplates(),this.showSnackbar(e.message,e.success?"success":"error")}catch{}},async exportTemplates(){try{const t=await u.exportConfigurationTemplates();t.success&&this.app.exportConfiguration(t.data,"configuration_templates","json"),this.showSnackbar(t.message,t.success?"success":"error")}catch(t){this.showSnackbar(t.message,"error")}},startCreateWizard(){this.editingTemplate=null,this.wizardActive=!0},startEditWizard(t){this.editingTemplate=t,this.wizardActive=!0},cancelWizard(){this.wizardActive=!1,this.editingTemplate=null},onWizardSaved(){this.wizardActive=!1,this.editingTemplate=null,this.refreshTemplates()}},mounted(){this.refreshTemplates()}};function E(t,e,d,B,o,l){const k=A("TemplateWizard"),C=A("DialogApplyTemplate");return p(),n(I,{fluid:"",class:"pa-4"},{default:s(()=>[o.wizardActive?(p(),n(k,{key:0,template:o.editingTemplate,onCancel:l.cancelWizard,onSaved:l.onWizardSaved},null,8,["template","onCancel","onSaved"])):(p(),n(N,{key:1,headers:o.headers,items:o.templates,search:o.search,class:"elevation-1"},{top:s(()=>[i(g,{class:"pt-0"},{default:s(()=>[i(z,null,{default:s(()=>[i(g,{cols:"12",sm:"6"},{default:s(()=>[i(S,{modelValue:o.search,"onUpdate:modelValue":e[0]||(e[0]=a=>o.search=a),clearable:"",flat:"",variant:"outlined","hide-details":"","single-line":"",class:"ma-2",style:{"max-width":"300px","min-width":"250px"},"prepend-inner-icon":"search",label:"Search","append-icon":"refresh","onClick:append":l.refreshTemplates},null,8,["modelValue","onClick:append"])]),_:1}),i(g,{cols:"12",sm:"6",class:"d-flex align-center justify-end"},{default:s(()=>[i(y,{color:"primary",onClick:l.startCreateWizard},{default:s(()=>[i(m,{start:""},{default:s(()=>[...e[2]||(e[2]=[r("add",-1)])]),_:1}),e[3]||(e[3]=r(" Create Template ",-1))]),_:1},8,["onClick"]),i(y,{variant:"text",onClick:l.importTemplates},{default:s(()=>[e[5]||(e[5]=r(" Import ",-1)),i(m,{end:"",color:"primary"},{default:s(()=>[...e[4]||(e[4]=[r("file_upload",-1)])]),_:1})]),_:1},8,["onClick"]),i(y,{variant:"text",onClick:l.exportTemplates},{default:s(()=>[e[7]||(e[7]=r(" Export ",-1)),i(m,{end:"",color:"primary"},{default:s(()=>[...e[6]||(e[6]=[r("file_download",-1)])]),_:1})]),_:1},8,["onClick"])]),_:1})]),_:1})]),_:1})]),"item.device":s(({item:a})=>[r(c([a.manufacturer,a.productLabel].filter(Boolean).join(" - ")||a.deviceId),1)]),"item.firmwareRange":s(({item:a})=>[r(c(l.formatFirmwareRange(a.firmwareRange)),1)]),"item.autoApply":s(({item:a})=>[i(x,{"model-value":a.autoApply,"onUpdate:modelValue":f=>l.toggleAutoApply(a),density:"compact","hide-details":"",color:"primary"},null,8,["model-value","onUpdate:modelValue"])]),"item.values":s(({item:a})=>[r(c(a.values.length)+" parameter(s) ",1)]),"item.devices":s(({item:a})=>[r(c(l.getMatchingNodes(a).length),1)]),"item.createdAt":s(({item:a})=>[r(c(l.formatDate(a.createdAt)),1)]),"item.actions":s(({item:a})=>[h((p(),n(m,{size:"small",color:"primary",class:"mr-2",onClick:f=>l.applyTemplate(a)},{default:s(()=>[...e[8]||(e[8]=[r(" play_arrow ",-1)])]),_:1},8,["onClick"])),[[w,"Apply to a node","bottom"]]),h((p(),n(m,{size:"small",color:"success",class:"mr-2",onClick:f=>l.startEditWizard(a)},{default:s(()=>[...e[9]||(e[9]=[r(" edit ",-1)])]),_:1},8,["onClick"])),[[w,"Edit","bottom"]]),h((p(),n(m,{size:"small",color:"error",onClick:f=>l.deleteItem(a)},{default:s(()=>[...e[10]||(e[10]=[r(" delete ",-1)])]),_:1},8,["onClick"])),[[w,"Delete","bottom"]])]),_:2},1032,["headers","items","search"])),o.showApplyDialog?(p(),n(C,{key:2,modelValue:o.showApplyDialog,"onUpdate:modelValue":e[1]||(e[1]=a=>o.showApplyDialog=a),template:o.applyDialogTemplate},null,8,["modelValue","template"])):_("",!0)]),_:1})}const U=D(R,[["render",E]]);export{U as default};