MeetingView.min.js 6.9 KB

1
  1. MWF.xDesktop.requireApp("Template","MDomItem",null,false);MWF.xDesktop.requireApp("Meeting","Common",null,false);MWF.xApplication.Meeting.MeetingView=new Class({Extends:MWF.widget.Common,Implements:[Options,Events],options:{style:"default",months:1},initialize:function(t,e,i){this.setOptions(i);this.path="/x_component_Meeting/$MeetingView/";this.cssPath="/x_component_Meeting/$MeetingView/"+this.options.style+"/css.wcss";this._loadCss();this.app=e;this.container=$(t);this.days=[];this.load()},recordStatus:function(){return{months:this.monthSelect.getValue()}},load:function(){this.userName=layout.desktop.session.user.distinguishedName;this.userId=layout.desktop.session.user.id;this.userIdentity=[];layout.desktop.session.user.identityList.each(function(t){this.userIdentity.push(t.distinguishedName)}.bind(this));this.date=new Date;this.node=new Element("div#meetingNode",{styles:this.css.node}).inject(this.container);this.titleNode=new Element("div",{styles:this.css.titleNode}).inject(this.node);this.todayNode=new Element("div",{styles:this.css.todayNode}).inject(this.titleNode);var t=this.date.format(this.app.lp.dateFormatMonthDay);var e=this.app.lp.weeks.arr[this.date.getDay()];this.todayNode.set("text",t+","+e);this.scrollNode=new Element("div",{styles:this.css.scrollNode}).inject(this.node);this.contentWarpNode=new Element("div",{styles:this.css.contentWarpNode}).inject(this.scrollNode);this.contentContainerNode=new Element("div",{styles:this.css.contentContainerNode}).inject(this.contentWarpNode);this.contentNode=new Element("div",{styles:this.css.contentNode}).inject(this.contentContainerNode);this.dayContainerNode=new Element("div",{styles:this.css.dayContainerNode}).inject(this.contentNode);this.loadMonthSelect();this.loadContent();this.resetNodeSizeFun=this.resetNodeSize.bind(this);this.app.addEvent("resize",this.resetNodeSizeFun)},loadMonthSelect:function(){this.monthSelectContainer=new Element("div",{styles:this.css.monthSelectContainer}).inject(this.titleNode);new Element("div",{styles:this.css.monthSelectTextNode,text:this.app.lp.monthSelectTextPrev}).inject(this.monthSelectContainer);var t=new Element("div",{styles:this.css.monthSelectTextNode}).inject(this.monthSelectContainer);this.monthSelect=new MDomItem(t,{name:"monthSelect",type:"select",style:this.css.monthSelect,defaultValue:this.options.months,selectValue:[1,2,3,4,5,6,7,8,9,10,11,12],event:{change:function(){this.reload()}.bind(this)}});this.monthSelect.load();new Element("div",{styles:this.css.monthSelectTextNode,text:this.app.lp.monthSelectTextAfter}).inject(this.monthSelectContainer)},resetNodeSize:function(){var t=this.container.getSize();var e=this.titleNode.getSize();var i=t.y-e.y-60;this.dayNodeHeight=i-60;this.scrollNode.setStyle("height",""+i+"px");var s=this.app.sideBar?this.app.sideBar.getSize():{x:0,y:0};this.scrollNode.setStyle("width",""+(t.x-s.x)+"px");var n=this.days.length*330+30;var o=t.x-s.x-50;if(this.contentWarpNode){this.contentWarpNode.setStyles({width:Math.max(o,n)+"px"})}this.days.each(function(t){t.resetHeight()})},hasSameItem:function(t,e){for(var i=0;i<e.length;i++){if(t.contains(e[i])){return true}}return false},loadContent:function(){var s=0;this.daysData={};var t=this.monthSelect.getValue()||this.options.months;this.app.actions.listMeetingMonths(t,function(t){debugger;t.data.each(function(t){if(t.invitePersonList.contains(this.userName)||t.invitePersonList.contains(this.userId)||t.applicant==this.userName||this.hasSameItem(t.invitePersonList,this.userIdentity)){if(!t.rejectPersonList.contains(this.userName)||!t.rejectPersonList.contains(this.userId)||!this.hasSameItem(t.rejectPersonList,this.userIdentity)){var e=Date.parse(t.startTime).clone().clearTime();if(!this.daysData[e])this.daysData[e]=[];this.daysData[e].push(t);s++}}}.bind(this));for(var e in this.daysData){var i=new MWF.xApplication.Meeting.MeetingView.Day(this,this.dayContainerNode,e,this.daysData[e]);this.days.push(i)}if(s==0){this.loadEmptyNode()}this.resetNodeSize()}.bind(this))},loadEmptyNode:function(){this.noMeetingNode=new Element("div",{styles:this.css.noMeetingNode,text:this.app.lp.noComingMeeting.replace("{month}",this.monthSelect.getValue()||this.options.months)}).inject(this.dayContainerNode)},hide:function(){var t=new Fx.Morph(this.node,{duration:"300",transition:Fx.Transitions.Expo.easeOut});t.start({opacity:0}).chain(function(){this.node.setStyle("display","none")}.bind(this))},show:function(){this.node.setStyles(this.css.node);var t=new Fx.Morph(this.node,{duration:"800",transition:Fx.Transitions.Expo.easeOut});this.app.fireAppEvent("resize");t.start({opacity:1,left:"0px"}).chain(function(){this.node.setStyles({position:"static",width:"auto"})}.bind(this))},reload:function(){this.date=this.days.length>0?this.days[0].date.clone():this.date;this.days.each(function(t){t.destroy()});this.dayContainerNode.empty();this.days=[];this.loadContent()},destroy:function(){this.days.each(function(t){t.destroy()});this.app.removeEvent("resize",this.resetNodeSizeFun);this.node.destroy()}});MWF.xApplication.Meeting.MeetingView.Day=new Class({Implements:[Events],initialize:function(t,e,i,s){this.view=t;this.css=this.view.css;this.container=e;this.app=this.view.app;this.date=i?Date.parse(i).clone().clearTime():(new Date).clearTime();this.today=(new Date).clearTime();this.isToday=this.date.diff(this.today)==0;this.times=[];this.meetings=[];this.data=s;this.load()},load:function(){this.node=new Element("div.dayNode",{styles:this.css.dayNode}).inject(this.container,this.position);this.node.setStyle("min-height",""+this.view.dayNodeHeight+"px");this.node.addEvents({mouseover:function(){this.node.setStyles(this.css.dayNode_over)}.bind(this),mouseout:function(){this.node.setStyles(this.css.dayNode)}.bind(this)});this.titleNode=new Element("div.titleNode",{styles:this.css[!this.isToday?"dayTitleNode":"dayTitleNode_today"]}).inject(this.node);var t=!this.isToday?"dayTitleTextNode":"dayTitleTextNode_today";this.titleTextNode=new Element("div.dayTitleTextNode",{styles:this.css[t],text:this.date.format("%Y年%m月%d日")}).inject(this.titleNode);this.dayWeekNode=new Element("div.dayWeekNode",{styles:this.css[!this.isToday?"dayWeekNode":"dayWeekNode_today"],text:this.getWeek()}).inject(this.titleNode);this.dayContentNode=new Element("div.dayContentNode",{styles:this.css.dayContentNode}).inject(this.node);this.loadMeetings()},resetHeight:function(){this.node.setStyle("min-height",""+this.view.dayNodeHeight+"px")},getWeek:function(){var t=this.app.lp.weeks.arr[this.date.getDay()];var e="";var i=this.today;var s=i.diff(this.date);if(s==0){e=this.app.lp.today}else{e=t}return e},destroy:function(){if(this.calendar){this.calendar.container.destroy()}this.meetings.each(function(t){t.destroy()});this.node.destroy();MWF.release(this)},loadMeetings:function(){this.data.each(function(t,e){this.meetings.push(new MWF.xApplication.Meeting.MeetingView.Meeting(this.dayContentNode,this,t))}.bind(this))},reload:function(){this.view.reload()}});MWF.xApplication.Meeting.MeetingView.Meeting=new Class({Extends:MWF.xApplication.Meeting.MeetingArea});