Main.min.js 7.1 KB

1
  1. MWF.xApplication.SmartOfficeRoom.options.multitask=false;MWF.xApplication.SmartOfficeRoom.Main=new Class({Extends:MWF.xApplication.Common.Main,Implements:[Options,Events],options:{style1:"default",style:"default",name:"SmartOfficeRoom",icon:"icon.png",width:"420",height:"680",isResize:false,isMax:false,title:MWF.xApplication.SmartOfficeRoom.LP.title},onQueryLoad:function(){this.lp=MWF.xApplication.SmartOfficeRoom.LP;this.action=MWF.Actions.get("x_smartoffice_control")},reload:function(){this.deviceContent.setStyle("display","block");if(this.selectDeviceContent)this.selectDeviceContent.setStyle("display","none")},loadApplication:function(e){this.devices=[];this.size=this.content.getSize();var t=(this.size.x/2).toInt()-22;this.css.itemNode.width=""+t+"px";this.loadDeviceContent();if(e)e()},loadDeviceContent:function(){this.deviceContent=new Element("div",{styles:this.css.contentNode}).inject(this.content);this.loadDevices();this.loadConfigButton()},loadDevices:function(){this.action.listDevice(function(e){debugger;if(callback)callback()})},loadConfigButton:function(){this.addActionNode=new Element("div",{styles:this.css.itemNode}).inject(this.deviceContent);this.addActionTextNode=new Element("div",{styles:this.css.addActionTextNode,text:this.lp.add}).inject(this.addActionNode);this.addActionIconNode=new Element("div",{styles:this.css.addActionIconNode}).inject(this.addActionNode);this.addActionIconNode.addEvents({mouseover:function(){this.addActionIconNode.setStyles(this.css.addActionIconNode_over);this.addActionTextNode.setStyle("color","#3498db")}.bind(this),mouseout:function(){this.addActionIconNode.setStyles(this.css.addActionIconNode);this.addActionTextNode.setStyle("color","#999")}.bind(this),click:function(e){this.addActionIconNode.setStyles(this.css.addActionIconNode);this.addActionTextNode.setStyle("color","#999");this.createNewDevice(e)}.bind(this)})},createNewDevice:function(){this.deviceContent.setStyle("display","none");if(!this.selectDeviceContent)this.createSelectDeviceContent();this.selectDeviceContent.setStyle("display","block")},createSelectDeviceContent:function(){var e=this;this.selectDeviceContent=new Element("div",{styles:this.css.contentNode}).inject(this.content);MWF.getJSON(this.path+"device.json",function(t){Object.each(t,function(t){var i=new Element("div",{styles:this.css.selectDeviceNode}).inject(this.selectDeviceContent);i.store("dev",t);var n=new Element("div",{styles:this.css.selectDeviceIconNode}).inject(i);n.setStyle("background-image","url("+this.path+this.options.style+"/device/"+t.icon+"-off-64.png)");var s=new Element("div",{styles:this.css.selectDeviceFlagNode}).inject(i);var o=new Element("div",{styles:this.css.selectDeviceContentNode}).inject(i);var c=new Element("div",{styles:this.css.selectDeviceTextNode,text:t.name}).inject(o);var a=new Element("div",{styles:this.css.selectDeviceDesNode,text:t.description}).inject(o);i.addEvents({mouseover:function(){this.setStyles(e.css.selectDeviceNode_over)},mouseout:function(){this.setStyles(e.css.selectDeviceNode)},click:function(t){e.createDevice(this)}})}.bind(this))}.bind(this))},createDevice:function(e){var t=e.retrieve("dev");if(t&&t["class"]){var i=new MWF.xApplication.SmartOfficeRoom.Device[t["class"]](this);i.create()}}});MWF.xApplication.SmartOfficeRoom.Device=new Class({initialize:function(e,t){this.app=e;this.css=this.app.css;this.lp=this.app.lp;this.data=t;this.init()},init:function(){},load:function(){},getNewData:function(){return{name:"",sn:"",description:""}},create:function(){this.data=this.getNewData();this.createAreaNode()},createAreaNode:function(){this.areaNode=new Element("div",{styles:this.css.createContentNode}).inject(this.app.content);var e=this.app.content.getSize();this.areaNode.setStyle("left",""+e.x+"px");this.createConfigTitle();this.createConfigAction();this.createConfigContent();new Fx.Morph(this.areaNode,{duration:"200"}).start({left:"0px"})},createConfigTitle:function(){this.configTitleNode=new Element("div",{styles:this.css.configContentTitleNode}).inject(this.areaNode);this.configIconNode=new Element("div",{styles:this.css.configContentIconNode}).inject(this.configTitleNode);this.configTextNode=new Element("div",{styles:this.css.configContentTextNode}).inject(this.configTitleNode)},createConfigAction:function(){this.configActionAreaNode=new Element("div",{styles:this.css.configActionAreaNode}).inject(this.areaNode);this.configSaveActionNode=new Element("div",{styles:this.css.configSaveActionNode,text:this.lp.save}).inject(this.configActionAreaNode);this.configCancelActionNode=new Element("div",{styles:this.css.configCancelActionNode,text:this.lp.cancel}).inject(this.configActionAreaNode);this.configSaveActionNode.addEvent("click",this.saveDevice.bind(this));this.configCancelActionNode.addEvent("click",this.cancelDevice.bind(this))},createConfigContent:function(){this.configContentNode=new Element("div",{styles:this.css.configContentNode}).inject(this.areaNode);var e=this.app.content.getSize();var t=this.configTitleNode.getSize();var i=this.configActionAreaNode.getSize();var n=e.y-t.y-i.y;this.configContentNode.setStyle("height",""+n+"px");this.createConfigInputContent()},cancelDevice:function(){var e=this.app.content.getSize();this.app.reload();new Fx.Morph(this.areaNode,{duration:"200"}).start({left:""+e.x+"px"}).chain(function(){this.destroy()}.bind(this))},destroy:function(){this.areaNode.destroy();MWF.release(this)},saveDevice:function(){this.saveDeviceAction(function(){this.cancelDevice()}.bind(this))},saveDeviceAction:function(e){if(e)e()}});MWF.xApplication.SmartOfficeRoom.Device.Light=new Class({Extends:MWF.xApplication.SmartOfficeRoom.Device,createConfigInputContent:function(){this.configIconNode.setStyle("background-image","url("+this.app.path+this.app.options.style+"/device/light-32.png)");this.configTextNode.set("text",this.data.name||this.lp.newLight);var e=new Element("div",{styles:this.css.configContentItemTitleNode,text:this.lp.inputName}).inject(this.configContentNode);var t=new Element("div",{styles:this.css.configContentItemInputAreaNode}).inject(this.configContentNode);this.nameInputNode=new Element("input",{styles:this.css.configContentItemInputNode}).inject(t);var i=new Element("div",{styles:this.css.configContentItemTitleNode,text:this.lp.inputSn}).inject(this.configContentNode);var n=new Element("div",{styles:this.css.configContentItemInputAreaNode}).inject(this.configContentNode);this.snInputNode=new Element("input",{styles:this.css.configContentItemInputNode}).inject(n);var s=new Element("div",{styles:this.css.configContentItemTitleNode,text:this.lp.inputDescription}).inject(this.configContentNode);var o=new Element("div",{styles:this.css.configContentItemTextareaAreaNode}).inject(this.configContentNode);this.descriptionInputNode=new Element("textarea",{styles:this.css.configContentItemTextareaNode}).inject(o)},saveDeviceAction:function(e){var t=this.nameInputNode.get("value");var i=this.snInputNode.get("value");var n=this.descriptionInputNode.get("value");if(!t){this.app.notice(this.lp.noname,"error");return false}if(!i){this.app.notice(this.lp.nosn,"error");return false}var s={type:"light",name:t,sn:i,description:n};this.app.action.saveDevice(s,function(){if(e)e()})}});