| 1 |
- MWF.xApplication.cms.Xform.widget=MWF.xApplication.cms.Xform.widget||{};MWF.xApplication.cms.Xform.widget.Log=new Class({Implements:[Options,Events],Extends:MWF.widget.Common,options:{style:"default",mode:"table",documentId:"",textStyle:""},initialize:function(t,e,i){this.setOptions(i);this.app=t;this.node=e;this.path="/x_component_cms_Xform/widget/$Log/";this.cssPath="/x_component_cms_Xform/widget/$Log/"+this.options.style+"/css.wcss";this._loadCss();MWF.xDesktop.requireApp("cms.Xform","lp."+MWF.language,null,false);this.lp=MWF.xApplication.cms.Xform.LP},load:function(){this.items=[];this.documents={};this.isItemsLoaded=false;this.isItemLoadding=false;this.loadItemQueue=0;this.count=0;this.lineHeight=this.options.mode!="text"?32:25;this.countPerPage=20;this.container=new Element("div",{styles:this.css.container}).inject(this.node);this.loadTitle();this.loadContent();this.loadElementList();this.loadBottom()},loadTitle:function(){this.titleNode=new Element("div",{styles:this.css.titleNode,text:this.lp.readedLogTitle}).inject(this.container)},loadTotal:function(){this.getAction(function(){if(this.options.documentId){this.restAction.invoke({name:"getReadCount",async:true,parameter:{docId:this.options.documentId},success:function(t){if(t&&t.data){this.titleCountNode=new Element("div",{styles:this.css.titleCountNode,text:this.lp.readedCountText.replace("{count}",t.data.count).replace("{person}",this.dataCount)}).inject(this.titleNode)}}.bind(this)})}}.bind(this))},loadContent:function(){this.contentScrollNode=new Element("div",{styles:this.css.contentScrollNode}).inject(this.container);this.contentScrollNode.setStyles({width:this.node.getSize().x-10,"margin-right":"10px"});this.contentWrapNode=new Element("div",{styles:this.css.contentWrapNode}).inject(this.contentScrollNode);this.setScroll();if(this.options.mode=="table"){this.loadItemTitleTable()}},loadBottom:function(){var t=new Element("div",{styles:this.css.bottomNode}).inject(this.container);var e=new Element("div",{styles:this.css.bottomResizeNode,text:"◢"}).inject(t);var i=this.contentScrollNode.getSize().x;this.contentScrollNode.makeResizable({handle:e,limit:{x:[i,i],y:[50,null]},onDrag:function(){var t=this.contentScrollNode.getSize().y;if(t>this.lineHeight*this.countPerPage-20){this.countPerPage=parseInt(t/this.lineHeight)+2}this.contentScrollNode.fireEvent("resize")}.bind(this),onComplete:function(){this.scrollBar.checkScroll();this.loadElementList()}.bind(this)})},loadElementList:function(t){if(!this.isItemsLoaded){if(!this.isItemLoadding){this.isItemLoadding=true;this._getCurrentPageData(function(t){var e=this.dataCount=t.count;if(!this.titleCountNode){this.loadTotal()}if(this.items.length==0)this.setSize();if(e<=this.items.length){this.isItemsLoaded=true}if(t.data&&typeOf(t.data)=="array"){t.data.each(function(t){var e=t.id;if(!this.documents[e]){var i=this._createDocument(t,this.items.length);this.items.push(i);this.documents[e]=i}}.bind(this))}this.isItemLoadding=false;if(this.loadItemQueue>0){this.loadItemQueue--;this.loadElementList()}}.bind(this),t)}else{this.loadItemQueue++}}},_getCurrentPageData:function(e){var t=this.items.length?this.items[this.items.length-1].data.id:"(0)";this.getAction(function(){if(this.options.documentId){this.restAction.invoke({name:"listReadedLog",async:true,parameter:{docId:this.options.documentId,id:t,count:this.countPerPage},success:function(t){if(e)e(t)}.bind(this)})}}.bind(this))},getAction:function(t){if(!this.action){MWF.require("MWF.xDesktop.Actions.RestActions",function(){this.restAction=new MWF.xDesktop.Actions.RestActions("","x_cms_assemble_control","");this.restAction.getActions=function(t){this.actions={getReadCount:{uri:"/jaxrs/document/{docId}/view/count"},listReadedLog:{uri:"/jaxrs/viewrecord/document/{docId}/filter/list/{id}/next/{count}",method:"GET"}};if(t)t()};if(t)t()}.bind(this))}else{if(t)t()}},setSize:function(){var t=this.lineHeight;var e=this.options.mode=="text"?10:8;if(this.dataCount>e){var i=e*t-15}else if(this.dataCount<=1){var i=1*t}else{var i=this.dataCount*t}if(this.options.mode!="text")i=i+t;this.contentScrollNode.setStyle("height",i+"px")},setScroll:function(){MWF.require("MWF.widget.ScrollBar",function(){this.scrollBar=new MWF.widget.ScrollBar(this.contentScrollNode,{indent:false,style:"default",where:"before",distance:60,friction:4,axis:{x:false,y:true},onScroll:function(t){var e=this.contentScrollNode.getScrollSize();var i=this.contentScrollNode.getSize();var s=e.y-i.y;if(t+30>s){if(!this.isItemsLoaded)this.loadElementList()}}.bind(this)})}.bind(this))},_createDocument:function(t){var e;if(this.options.mode=="text"){if(this.options.textStyle){e=this.loadItemNodeText(t)}else{e=this.loadItemNodeDefault(t)}}else{e=this.loadItemNodeTable(t)}return{node:e,data:t}},loadItemTitleTable:function(){var t=this.contentScrollNode.getSize().x;this.table=new Element("table",{styles:this.css.logTable,border:"0",cellSpacing:"0",cellpadding:"3px",width:t-10}).inject(this.contentWrapNode);this.tbody=new Element("tbody").inject(this.table);this.table.setStyles({"margin-left":"8px"});var e=new Element("tr").inject(this.tbody);e.setStyles(this.css.logTableTitleTr);var i=new Element("td",{styles:this.css.logTableTitle}).inject(e);i.set("text",this.lp.person);var i=new Element("td",{styles:this.css.logTableTitle}).inject(e);i.set("text",this.lp.department);var i=new Element("td",{styles:this.css.logTableTitle}).inject(e);i.set("text",this.lp.firstDate);var i=new Element("td",{styles:this.css.logTableTitle}).inject(e);i.set("text",this.lp.readDate);var i=new Element("td",{styles:this.css.logTableTitle}).inject(e);i.set("text",this.lp.readCount)},loadItemNodeTable:function(t){var e=new Element("tr").inject(this.tbody);e.setStyles(this.css.logTableContentTr);var i=new Element("td",{styles:this.css.logTableContent}).inject(e);i.set("text",this.getShortName(t.viewerName)||"");i=new Element("td",{styles:this.css.logTableContent}).inject(e);i.set("text",this.getShortName(t.viewerUnitName)||"");i=new Element("td",{styles:this.css.logTableContent}).inject(e);i.set("text",t.createTime);i=new Element("td",{styles:this.css.logTableContent}).inject(e);i.set("text",t.lastViewTime);i=new Element("td",{styles:this.css.logTableContent}).inject(e);i.set("text",t.viewCount)},loadItemNodeText:function(t,e){var i=new Element("div",{styles:this.css.defaultItemNode}).inject(this.contentWrapNode);var s=e||this.options.textStyle;s=s.replace(/\{person\}/g,this.getShortName(t.viewerName));s=s.replace(/\{unitName\}/g,this.getShortName(t.viewerUnitName)||"");s=s.replace(/\{topUnitName\}/g,this.getShortName(t.viewerTopUnitName)||"");s=s.replace(/\{firstDate\}/g,t.createTime);s=s.replace(/\{date\}/g,t.lastViewTime);s=s.replace(/\{count\}/g,t.viewCount);i.set("html",s);return i},loadItemNodeDefault:function(t){return this.loadItemNodeText(t,this.lp.defaultReadedLogText)},getShortName:function(t){if(t&&t.contains("@")){return t.split("@")[0]}else{return t}}});
|