UNPKG

zwave-js-ui

Version:

Z-Wave Control Panel and MQTT Gateway

3 lines (2 loc) 5.81 kB
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DialogSceneValue-DEviRGUo.js","./index-CtTdmJsx.js","./index-2j-kvxFz.css"])))=>i.map(i=>d[i]); import{I as i,_ as l,m as o,u as n,a as r,n as u}from"./index-CtTdmJsx.js";const d={name:"Scenes",mixins:[i],components:{DialogSceneValue:()=>l(()=>import("./DialogSceneValue-DEviRGUo.js"),__vite__mapDeps([0,1,2]),import.meta.url)},watch:{selectedScene(){this.refreshValues()},dialogValue(s){s||this.closeDialog()}},computed:{...o(n,["nodes"]),scenesWithId(){return this.scenes.map(s=>(s.label=`[${s.sceneid}] ${s.label}`,s))},dialogTitle(){return this.editedIndex===-1?"New Value":"Edit Value"}},data(){return{dialogValue:!1,scenes:[],selectedScene:null,newScene:"",scene_values:[],editedValue:{},editedIndex:-1,headers_scenes:[{text:"Value ID",value:"id"},{text:"Node",value:"nodeId"},{text:"Label",value:"label"},{text:"Value",value:"value"},{text:"Timeout",value:"timeout"},{text:"Actions",sortable:!1}]}},methods:{...r(n,["showSnackbar"]),async importScenes(){if(await this.app.confirm("Attention","This operation will override all current scenes and cannot be undone","alert"))try{const{data:s}=await this.app.importFile("json");if(s instanceof Array){const e=await this.app.apiRequest("_setScenes",[s]);e.success&&(this.showSnackbar("Successfully updated scenes","success"),this.scenes=e.result)}else this.showSnackbar("Imported file not valid","error")}catch{}},exportScenes(){this.app.exportConfiguration(this.scenes,"scenes")},async refreshScenes(){const s=await this.app.apiRequest("_getScenes",[],{infoSnack:!1,errorSnack:!0});s.success&&(this.scenes=s.result)},async createScene(){this.newScene&&(await this.app.apiRequest("_createScene",[this.newScene])).success&&(this.showSnackbar("Scene created","success"),this.newScene="",this.refreshScenes())},async removeScene(){this.selectedScene&&await this.app.confirm("Attention","Are you sure you want to delete this scene?","alert")&&(await this.app.apiRequest("_removeScene",[this.selectedScene])).success&&(this.selectedScene=null,this.showSnackbar("Scene removed","success"),this.refreshScenes())},async activateScene(){this.selectedScene&&(await this.app.apiRequest("_activateScene",[this.selectedScene])).success&&this.showSnackbar("Scene activated","success")},editItem(s){this.editedIndex=this.scene_values.indexOf(s);const e=this.nodes.find(a=>a.id===s.nodeId)||{id:s.nodeId,name:"",loc:"",values:[]};let t=e.values.find(a=>a.id===s.id);t=t?Object.assign({},t):Object.assign({},s),t.newValue=s.value,this.editedValue={node:e,value:t,timeout:s.timeout},this.dialogValue=!0},async deleteItem(s){await this.app.confirm("Attention","Are you sure you want to delete this item?","alert")&&(await this.app.apiRequest("_removeSceneValue",[this.selectedScene,s])).success&&(this.showSnackbar("Value removed","success"),this.refreshValues())},closeDialog(){this.dialogValue=!1,setTimeout(()=>{this.editedValue={},this.editedIndex=-1},300)},async saveValue(){const s=this.editedValue.value;s.value=s.newValue,(await this.app.apiRequest("_addSceneValue",[this.selectedScene,s,s.value,this.editedValue.timeout])).success&&(this.showSnackbar("Value saved","success"),this.refreshValues(),this.closeDialog())},async refreshValues(){if(this.selectedScene){const s=await this.app.apiRequest("_sceneGetValues",[this.selectedScene],{infoSnack:!1,errorSnack:!0});s.success&&(this.scene_values=s.result)}}},mounted(){this.refreshScenes()}};var h=function(){var e=this,t=e._self._c;return t("v-container",{attrs:{"grid-list-md":""}},[t("v-row",[t("v-col",{attrs:{cols:"12"}},[t("v-btn",{attrs:{text:""},on:{click:e.importScenes}},[e._v(" Import "),t("v-icon",{attrs:{right:"",dark:"",color:"primary"}},[e._v("file_upload")])],1),t("v-btn",{attrs:{text:""},on:{click:e.exportScenes}},[e._v(" Export "),t("v-icon",{attrs:{right:"",dark:"",color:"primary"}},[e._v("file_download")])],1)],1),t("v-col",{attrs:{cols:"12",sm:"6"}},[t("v-select",{attrs:{label:"Scene",items:e.scenesWithId,"item-text":"label","item-value":"sceneid"},model:{value:e.selectedScene,callback:function(a){e.selectedScene=a},expression:"selectedScene"}})],1),t("v-col",{attrs:{cols:"12",sm:"6"}},[t("v-text-field",{attrs:{label:"New Scene","append-outer-icon":"send"},on:{"click:append-outer":e.createScene},model:{value:e.newScene,callback:function(a){e.newScene=typeof a=="string"?a.trim():a},expression:"newScene"}})],1)],1),t("DialogSceneValue",{attrs:{title:e.dialogTitle,editedValue:e.editedValue,nodes:e.nodes},on:{save:e.saveValue,close:e.closeDialog},model:{value:e.dialogValue,callback:function(a){e.dialogValue=a},expression:"dialogValue"}}),e.selectedScene?t("v-data-table",{staticClass:"elevation-1",attrs:{headers:e.headers_scenes,items:e.scene_values},scopedSlots:e._u([{key:"top",fn:function(){return[t("v-btn",{attrs:{color:"red darken-1",text:""},on:{click:e.removeScene}},[e._v("Delete")]),t("v-btn",{attrs:{color:"green darken-1",text:""},on:{click:e.activateScene}},[e._v("Activate")]),t("v-btn",{attrs:{color:"blue darken-1",text:""},on:{click:function(a){e.dialogValue=!0}}},[e._v("New Value")])]},proxy:!0},{key:"item",fn:function({item:a}){return[t("tr",[t("td",{staticClass:"text-xs"},[e._v(e._s(a.id))]),t("td",{staticClass:"text-xs"},[e._v(e._s(a.nodeId))]),t("td",{staticClass:"text-xs"},[e._v(e._s(a.label))]),t("td",{staticClass:"text-xs"},[e._v(e._s(a.value))]),t("td",{staticClass:"text-xs"},[e._v(" "+e._s(a.timeout?"After "+a.timeout+"s":"No")+" ")]),t("td",[t("v-icon",{staticClass:"mr-2",attrs:{small:"",color:"green"},on:{click:function(c){return e.editItem(a)}}},[e._v("edit")]),t("v-icon",{attrs:{small:"",color:"red"},on:{click:function(c){return e.deleteItem(a)}}},[e._v("delete")])],1)])]}}],null,!1,2506341017)}):e._e()],1)},p=[],v=u(d,h,p,!1,null,null);const f=v.exports;export{f as default};