| 1 |
- MWF.xApplication.Attendance=MWF.xApplication.Attendance||{};MWF.require("MWF.xAction.org.express.RestActions",null,false);MWF.require("MWF.widget.O2Identity",null,false);MWF.xDesktop.requireApp("Attendance","lp."+MWF.language,null,false);MWF.xApplication.Attendance.Explorer=new Class({Extends:MWF.widget.Common,Implements:[Options,Events],options:{style:"default",isAdmin:false,searchKey:""},initialize:function(t,e,s,i){this.setOptions(i);this.app=e;this.path="/x_component_Attendance/$Explorer/";this.cssPath="/x_component_Attendance/$Explorer/"+this.options.style+"/css.wcss";this._loadCss();this.actions=s;this.node=$(t);this.initData();if(!this.personActions)this.personActions=new MWF.xAction.org.express.RestActions},initData:function(){this.toolItemNodes=[]},reload:function(){this.node.empty();this.load()},load:function(){this.loadToolbar();this.loadContentNode();this.loadView();this.setNodeScroll()},destroy:function(){this.node.empty();delete this},loadToolbar:function(){this.toolbarNode=new Element("div",{styles:this.css.toolbarNode});this.toolbarNode.inject(this.node);var t=this.path+"toolbar.json";MWF.getJSON(t,function(t){t.each(function(t){this.createToolbarItemNode(t)}.bind(this))}.bind(this))},createToolbarItemNode:function(t){var e=new Element("div",{styles:t.styles&&this.css[t.styles]?this.css[t.styles]:this.css.toolbarItemNode});if(t.id){e.set("name",t.id)}e.store("toolData",t);if(t.icon){var s=new Element("div",{styles:this.css.toolbarItemIconNode}).inject(e);s.setStyle("background-image","url("+this.path+this.options.style+"/icon/"+t.icon+")")}if(t.title){var i=new Element("div",{styles:this.css.toolbarItemTextNode,text:t.title});if(t.text)i.set("title",t.text);i.inject(e)}e.inject(this.toolbarNode);this.toolItemNodes.push(e);this.setToolbarItemEvent(e)},setToolbarItemEvent:function(t){var e=this;t.addEvents({click:function(){var t=this.retrieve("toolData");if(e[t.action])e[t.action].apply(e,[this])}})},loadContentNode:function(){this.elementContentNode=new Element("div.elementContentNode",{styles:this.css.elementContentNode}).inject(this.node);this.app.addEvent("resize",function(){this.setContentSize()}.bind(this))},loadView:function(){this.view=new MWF.xApplication.Attendance.Explorer.View(this.elementContentNode,this.app,this,this.viewData,this.options.searchKey);this.view.load();this.setContentSize()},setContentSize:function(){var t=this.toolbarNode?this.toolbarNode.getSize():{x:0,y:0};var e=this.app.titleBar?this.app.titleBar.getSize():{x:0,y:0};var s=this.node.getSize();var i=this.elementContentNode.getStyle("padding-top").toFloat();var o=this.elementContentNode.getStyle("padding-bottom").toFloat();var n=this.filterConditionNode?this.filterConditionNode.getSize():{x:0,y:0};var l=s.y-t.y-i-o-n.y-e.y;this.elementContentNode.setStyle("height",""+l+"px");this.pageCount=(l/30).toInt()+5;this._setContentSize();if(this.view&&this.view.items.length<this.pageCount){this.view.loadElementList(this.pageCount-this.view.items.length)}},_setContentSize:function(){},setNodeScroll:function(){var o=this;MWF.require("MWF.widget.ScrollBar",function(){new MWF.widget.ScrollBar(this.elementContentNode,{indent:false,style:"xApp_TaskList",where:"before",distance:30,friction:4,axis:{x:false,y:true},onScroll:function(t){var e=o.elementContentNode.getScrollSize();var s=o.elementContentNode.getSize();var i=e.y-s.y;if(t+200>i){if(!o.view.isItemsLoaded)o.view.loadElementList()}}})}.bind(this))}});MWF.xApplication.Attendance.Explorer.View=new Class({initialize:function(t,e,s,i){this.container=t;this.app=e;this.explorer=s;this.css=s.css;this.actions=s.actions;this.searchKey=i;this.listItemUrl=this.explorer.path+"listItem.json"},initData:function(){this.items=[];this.documents={};this.isItemsLoaded=false;this.isItemLoadding=false;this.loadItemQueue=0;this.count=0},load:function(){this.initData();this.node=new Element("div",{styles:this.css.elementContentListNode}).inject(this.container);this.table=new Element("table",{width:"100%",border:"0",cellpadding:"5",cellspacing:"0",class:"editTable"}).inject(this.node);this.initSortData();this.createListHead();this.loadElementList()},initSortData:function(){this.sortField=null;this.sortType=null;this.sortFieldDefault=null;this.sortTypeDefault=null},clear:function(){this.documents=null;MWF.release(this.items);this.items=[];this.documents={};this.container.empty();this.isItemsLoaded=false;this.isItemLoadding=false;this.loadItemQueue=0},reload:function(){this.clear();this.node=new Element("div",{styles:this.css.elementContentListNode}).inject(this.container);this.table=new Element("table",{width:"100%",border:"0",cellpadding:"5",cellspacing:"0",class:"editTable"}).inject(this.node);this.createListHead();this.loadElementList()},resort:function(t){this.sortField=t.retrieve("sortField");var e=t.retrieve("sortType");if(e==""){this.sortType="asc"}else if(this.sortType=="asc"){this.sortType="desc"}else{this.sortField=null;this.sortType=null}this.reload()},createListHead:function(){var i=this;var o=new Element("tr",{styles:this.css.listHeadNode}).inject(this.table);MWF.getJSON(this.listItemUrl,function(t){this.listItemTemplate=t;t.each(function(t){var e=true;if(t.access){if(t.access=="admin"&&!this.explorer.options.isAdmin){e=false}}if(e){var s=new Element("th",{styles:this.css[t.headStyles],text:t.title,width:t.width}).inject(o);if(t.name=="checkbox"){this.checkboxElement=new Element("input",{type:"checkbox"}).inject(s);this.checkboxElement.addEvent("click",function(){this.selectAllCheckbox()}.bind(this))}if(t.defaultSort&&t.defaultSort!=""){this.sortFieldDefault=t.name;this.sortTypeDefault=t.defaultSort}if(t.sort&&t.sort!=""){s.store("sortField",t.name);if(this.sortField==t.name&&this.sortType!=""){s.store("sortType",this.sortType);this.sortIconNode=new Element("div",{styles:this.sortType=="asc"?this.css.sortIconNode_asc:this.css.sortIconNode_desc}).inject(s,"top")}else{s.store("sortType","");this.sortIconNode=new Element("div",{styles:this.css.sortIconNode}).inject(s,"top")}s.setStyle("cursor","pointer");s.addEvent("click",function(){i.resort(this)})}}}.bind(this))}.bind(this),false)},selectAllCheckbox:function(){var e=this.checkboxElement.get("checked");this.items.each(function(t){if(t.checkboxElement)t.checkboxElement.set("checked",e)}.bind(this))},loadElementList:function(t){if(!this.isItemsLoaded){if(!this.isItemLoadding){this.isItemLoadding=true;this._getCurrentPageData(function(t){t.data=t.data||[];var e=t.count;if(e<=this.items.length){this.isItemsLoaded=true}t.data.each(function(t){if(!this.documents[t.id]){var e=this._createItem(t);this.items.push(e);this.documents[t.id]=e}}.bind(this));this.isItemLoadding=false;if(this.loadItemQueue>0){this.loadItemQueue--;this.loadElementList()}}.bind(this),t)}else{this.loadItemQueue++}}},_createItem:function(t){return new MWF.xApplication.Attendance.Explorer.Document(this.table,t,this.explorer,this)},_getCurrentPageData:function(t,e){},_removeDocument:function(t,e){},_createDocument:function(){},_openDocument:function(t){}});MWF.xApplication.Attendance.Explorer.Document=new Class({initialize:function(t,e,s,i){this.explorer=s;this.app=s.app;this.data=e;this.container=t;this.view=i;this.css=this.explorer.css;this.load()},load:function(){this.node=new Element("tr",{styles:this.css.documentItemNode});this.node.inject(this.container);this.view.listItemTemplate.each(function(cell){var isShow=true;if(cell.access){if(cell.access=="admin"&&!this.explorer.options.isAdmin){isShow=false}}if(isShow){var value;if(cell.item.substr(0,"function".length)=="function"){eval("var fun = "+cell.item);value=fun.call(this,this.data)}else if(typeOf(this.data[cell.item])=="number"){value=this.data[cell.item]}else{value=this.data[cell.item]?this.data[cell.item]:""}var td=this[cell.name]=new Element("td",{styles:this.css[cell.contentStyles],text:value}).inject(this.node);if(cell.name=="actions"&&typeOf(cell.sub)=="array"){this.setActions(this[cell.name],cell.sub)}if(cell.name=="checkbox"){var showCheckBox=true;if(cell.condition&&cell.condition.substr(0,"function".length)=="function"){eval("var fun = "+cell.condition);showCheckBox=fun.call(this,this.data)}if(showCheckBox){this.checkboxElement=new Element("input",{type:"checkbox"}).inject(td);this.checkboxElement.addEvent("click",function(t){t.stopPropagation()}.bind(this));td.addEvent("click",function(t){this.checkboxElement.set("checked",!this.checkboxElement.get("checked"));t.stopPropagation()}.bind(this))}}}}.bind(this));this.node.addEvents({mouseover:function(){if(!this.readyRemove)this.node.setStyles(this.css.documentItemDocumentNode_over)}.bind(this),mouseout:function(){if(!this.readyRemove)this.node.setStyles(this.css.documentItemDocumentNode)}.bind(this),click:function(t){this.openDocument(t)}.bind(this)})},setActions:function(actionsNode,data){var _self=this;data.each(function(d){if(!d.action||!this[d.action])return;if(d.condition){if(d.condition.substr(0,"function".length)=="function"){eval("var fun = "+d.condition);if(!fun.call(this,this.data)){return}}}var node=this[d.action+"Node"]=new Element("div",{title:d.title}).inject(actionsNode);var styles,overStyles,downStyles;if(typeOf(d.styles)=="string")styles=this.css[d.styles];if(typeOf(d.styles)=="object")styles=d.styles;if(typeOf(d.overStyles)=="string")overStyles=this.css[d.overStyles];if(typeOf(d.overStyles)=="object")overStyles=d.overStyles;if(typeOf(d.downStyles)=="string")downStyles=this.css[d.downStyles];if(typeOf(d.downStyles)=="object")downStyles=d.downStyles;if(styles)node.setStyles(styles);if(overStyles&&styles){node.addEvent("mouseover",function(t){t.target.setStyles(this.styles)}.bind({styles:overStyles}));node.addEvent("mouseout",function(t){t.target.setStyles(this.styles)}.bind({styles:styles}))}if(downStyles&&(overStyles||styles)){node.addEvent("mousedown",function(t){t.target.setStyles(this.styles)}.bind({styles:downStyles}));node.addEvent("mouseup",function(t){t.target.setStyles(this.styles)}.bind({styles:overStyles||styles}))}if(this[d.action]){node.addEvent("click",function(t){this.fun.call(_self,t);t.stopPropagation()}.bind({fun:this[d.action]}))}}.bind(this))},openDocument:function(t){this.view._openDocument(this.data)},remove:function(t){var e=this.app.lp;var s=e.deleteDocument.replace(/{title}/g,this.data.title);var i=this;this.node.setStyles(this.css.documentItemDocumentNode_remove);this.readyRemove=true;this.explorer.app.confirm("warn",t,e.deleteDocumentTitle,s,350,120,function(){i.view._removeDocument(i.data,false);this.close()},function(){i.node.setStyles(i.css.documentItemDocumentNode);i.readyRemove=false;this.close()})},destroy:function(){this.node.destroy()}});MWF.xApplication.Attendance.Explorer.PopupForm=new Class({Extends:MWF.widget.Common,Implements:[Options,Events],options:{width:"500",height:"400"},initialize:function(t,e,s){this.setOptions(s);this.explorer=t;this.app=t.app;this.data=e||{};this.css=this.explorer.css;this.load()},load:function(){},open:function(t){this.isNew=false;this.isEdited=false;this._open()},create:function(){this.isNew=true;this._open()},edit:function(){this.isEdited=true;this._open()},_open:function(){this.formMaskNode=new Element("div",{styles:this.css.formMaskNode,events:{mouseover:function(t){t.stopPropagation()},mouseout:function(t){t.stopPropagation()}}}).inject(this.app.content,"after");this.formAreaNode=new Element("div",{styles:this.css.formAreaNode});this.createFormNode();this.formAreaNode.inject(this.formMaskNode,"after");this.formAreaNode.fade("in");this.setFormNodeSize();this.setFormNodeSizeFun=this.setFormNodeSize.bind(this);this.addEvent("resize",this.setFormNodeSizeFun)},createFormNode:function(){var t=this;this.formNode=new Element("div",{styles:this.css.formNode}).inject(this.formAreaNode);this.formIconNode=new Element("div",{styles:this.isNew?this.css.formNewNode:this.css.formIconNode}).inject(this.formNode);this.formFormNode=new Element("div",{styles:this.css.formFormNode}).inject(this.formNode);this.formTableContainer=new Element("div",{styles:this.css.formTableContainer}).inject(this.formFormNode);this.formTableArea=new Element("div",{styles:this.css.formTableArea}).inject(this.formTableContainer);this._createTableContent();this._createAction()},_createTableContent:function(){var t="<table width='100%' bordr='0' cellpadding='5' cellspacing='0' styles='formTable'>"+"<tr><td colspan='2' styles='formTableHead'>申诉处理单</td></tr>"+"<tr><td styles='formTabelTitle' lable='empName'></td>"+" <td styles='formTableValue' item='empName'></td></tr>"+"<tr><td styles='formTabelTitle' lable='unitName'></td>"+" <td styles='formTableValue' item='unitName'></td></tr>"+"<tr><td styles='formTabelTitle' lable='recordDateString'></td>"+" <td styles='formTableValue' item='recordDateString'></td></tr>"+"<tr><td styles='formTabelTitle' lable='status'></td>"+" <td styles='formTableValue' item='status'></td></tr>"+"<tr><td styles='formTabelTitle' lable='appealReason'></td>"+" <td styles='formTableValue' item='appealReason'></td></tr>"+"<tr><td styles='formTabelTitle' lable='appealDescription'></td>"+" <td styles='formTableValue' item='appealDescription'></td></tr>"+"<tr><td styles='formTabelTitle' lable='opinion1'></td>"+" <td styles='formTableValue' item='opinion1'></td></tr>"+"</table>";this.formTableArea.set("html",t);MWF.xDesktop.requireApp("Template","MForm",function(){this.form=new MForm(this.formTableArea,{empName:"xadmin"},{isEdited:this.isEdited||this.isNew,itemTemplate:{empName:{text:"姓名",type:"innertext"},unitName:{text:"部门",tType:"unit",notEmpty:true},recordDateString:{text:"日期",tType:"date"},status:{text:"状态",tType:"number"},appealReason:{text:"下拉框",type:"select",selectValue:["测试1","测试2"]},appealDescription:{text:"描述",type:"textarea"},opinion1:{text:"测试",type:"button",value:"测试"}}},this.app);this.form.load()}.bind(this),true)},setFormNodeSize:function(t,e,s,i){if(!t)t=this.options&&this.options.width?this.options.width:"50%";if(!e)e=this.options&&this.options.height?this.options.height:"50%";if(!s)s=this.options&&this.options.top?this.options.top:0;if(!i)i=this.options&&this.options.left?this.options.left:0;var o=this.app.content.getSize();var n=o.x;var l=o.y;"string"==typeof t&&(1<t.length&&"%"==t.substr(t.length-1,1))&&(t=parseInt(n*parseInt(t,10)/100,10));"string"==typeof e&&(1<e.length&&"%"==e.substr(e.length-1,1))&&(e=parseInt(l*parseInt(e,10)/100,10));300>t&&(t=300);220>e&&(e=220);s=s||parseInt((l-e)/2,10);i=i||parseInt((n-t)/2,10);this.formAreaNode.setStyles({width:""+t+"px",height:""+e+"px",top:""+s+"px",left:""+i+"px"});this.formNode.setStyles({width:""+t+"px",height:""+e+"px"});var a=this.formIconNode?this.formIconNode.getSize():{x:0,y:0};var d=this.formTopNode?this.formTopNode.getSize():{x:0,y:0};var r=this.formBottomNode?this.formBottomNode.getSize():{x:0,y:0};var c=e-a.y-d.y-r.y;this.formFormNode.setStyles({height:""+c+"px"})},_createAction:function(){this.cancelActionNode=new Element("div",{styles:this.css.formCancelActionNode,text:this.app.lp.cancel}).inject(this.formFormNode);this.cancelActionNode.addEvent("click",function(t){this.cancel(t)}.bind(this));if(this.isNew||this.isEdited){this.okActionNode=new Element("div",{styles:this.css.formOkActionNode,text:this.app.lp.ok}).inject(this.formFormNode);this.okActionNode.addEvent("click",function(t){this.ok(t)}.bind(this))}},cancel:function(t){this.close()},close:function(t){this.formMaskNode.destroy();this.formAreaNode.destroy();delete this},ok:function(t){var e=this.form.getResult(true,",",true,false,true);if(e){this._ok(e,function(t){if(t.type=="ERROR"){this.app.notice(t.message,"error")}else{this.formMaskNode.destroy();this.formAreaNode.destroy();if(this.explorer.view)this.explorer.view.reload();this.app.notice(this.isNew?this.app.lp.createSuccess:this.app.lp.updateSuccess,"success")}}.bind(this))}},_ok:function(t,e){}});
|