| 1 |
- MWF.xApplication.Meeting.MonthView=new Class({Extends:MWF.widget.Common,Implements:[Options,Events],options:{style:"default",date:""},initialize:function(t,e,i){this.setOptions(i);this.path="/x_component_Meeting/$MonthView/";this.cssPath="/x_component_Meeting/$MonthView/"+this.options.style+"/css.wcss";this._loadCss();this.app=e;this.container=$(t);this.load()},load:function(){this.node=new Element("div",{styles:this.css.node}).inject(this.container);this.resetNodeSize();this.app.addEvent("resize",this.resetNodeSize.bind(this));this.loadCalendar()},resetNodeSize:function(){var t=this.container.getSize();var e=t.y-60;this.node.setStyle("height",""+e+"px");this.node.setStyle("margin-top","60px");var i=this.app.sideBar?this.app.sideBar.getSize():{x:0,y:0};this.node.setStyle("width",""+(t.x-i.x)+"px");this.node.setStyle("margin-right",""+i.x+"px")},loadCalendar:function(){var t="";if(this.options.date){t=Date.parse(this.options.date)}this.calendar=new MWF.xApplication.Meeting.MonthView.Calendar(this,t)},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(){if(this.calendar)this.calendar.reLoadCalendar()},recordStatus:function(){var t="";if(this.calendar)t=this.calendar.date;return{date:t.toString()}},destroy:function(){if(this.calendar){this.calendar.destroy()}this.node.destroy()}});MWF.xApplication.Meeting.MonthView.Calendar=new Class({Implements:[Events],initialize:function(t,e){this.view=t;this.css=this.view.css;this.container=this.view.node;this.app=this.view.app;this.date=e||new Date;this.today=new Date;this.days={};this.weekBegin=this.app.meetingConfig.weekBegin||0;this.load()},load:function(){this.titleNode=new Element("div",{styles:this.css.calendarTitleNode}).inject(this.container);this.scrollNode=new Element("div",{styles:this.css.scrollNode}).inject(this.container);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.bodyNode=new Element("div",{styles:this.css.contentNode}).inject(this.contentContainerNode);this.setTitleNode();this.setBodyNode();this.resetBodySize();this.app.addEvent("resize",this.resetBodySize.bind(this))},resetBodySize:function(){var t=this.container.getSize();var e=this.titleNode.getSize();var i=t.y-e.y;this.scrollNode.setStyle("height",""+i+"px");if(this.contentWarpNode){this.contentWarpNode.setStyles({width:t.x-40+"px"})}},setTitleNode:function(){this.prevMonthNode=new Element("div",{styles:this.css.calendarPrevMonthNode}).inject(this.titleNode);var t=this.date.format(this.app.lp.dateFormatMonth);this.titleTextNode=new Element("div",{styles:this.css.calendarTitleTextNode,text:t}).inject(this.titleNode);this.nextMonthNode=new Element("div",{styles:this.css.calendarNextMonthNode}).inject(this.titleNode);this.prevMonthNode.addEvents({mouseover:function(){this.prevMonthNode.setStyles(this.css.calendarPrevMonthNode_over)}.bind(this),mouseout:function(){this.prevMonthNode.setStyles(this.css.calendarPrevMonthNode)}.bind(this),mousedown:function(){this.prevMonthNode.setStyles(this.css.calendarPrevMonthNode_down)}.bind(this),mouseup:function(){this.prevMonthNode.setStyles(this.css.calendarPrevMonthNode_over)}.bind(this),click:function(){this.changeMonthPrev()}.bind(this)});this.nextMonthNode.addEvents({mouseover:function(){this.nextMonthNode.setStyles(this.css.calendarNextMonthNode_over)}.bind(this),mouseout:function(){this.nextMonthNode.setStyles(this.css.calendarNextMonthNode)}.bind(this),mousedown:function(){this.nextMonthNode.setStyles(this.css.calendarNextMonthNode_down)}.bind(this),mouseup:function(){this.nextMonthNode.setStyles(this.css.calendarNextMonthNode_over)}.bind(this),click:function(){this.changeMonthNext()}.bind(this)});this.titleTextNode.addEvents({mouseover:function(){this.titleTextNode.setStyles(this.css.calendarTitleTextNode_over)}.bind(this),mouseout:function(){this.titleTextNode.setStyles(this.css.calendarTitleTextNode)}.bind(this),mousedown:function(){this.titleTextNode.setStyles(this.css.calendarTitleTextNode_down)}.bind(this),mouseup:function(){this.titleTextNode.setStyles(this.css.calendarTitleTextNode_over)}.bind(this),click:function(){this.changeMonthSelect()}.bind(this)})},changeMonthPrev:function(){this.date.decrement("month",1);var t=this.date.format(this.app.lp.dateFormatMonth);this.titleTextNode.set("text",t);this.reLoadCalendar()},changeMonthNext:function(){this.date.increment("month",1);var t=this.date.format(this.app.lp.dateFormatMonth);this.titleTextNode.set("text",t);this.reLoadCalendar()},changeMonthSelect:function(){if(!this.monthSelector)this.createMonthSelector();this.monthSelector.show()},createMonthSelector:function(){this.monthSelector=new MWF.xApplication.Meeting.MonthView.Calendar.MonthSelector(this.date,this)},changeMonthTo:function(t){this.date=t;var e=this.date.format(this.app.lp.dateFormatMonth);this.titleTextNode.set("text",e);this.reLoadCalendar()},setBodyNode:function(){if(this.weekBegin=="1"){var t="<tr><th>"+this.app.lp.weeks.Mon+"</th><th>"+this.app.lp.weeks.Tues+"</th><th>"+this.app.lp.weeks.Wed+"</th>"+"<th>"+this.app.lp.weeks.Thur+"</th><th>"+this.app.lp.weeks.Fri+"</th><th>"+this.app.lp.weeks.Sat+"</th><th>"+this.app.lp.weeks.Sun+"</th></tr>"}else{var t="<tr><th>"+this.app.lp.weeks.Sun+"</th><th>"+this.app.lp.weeks.Mon+"</th><th>"+this.app.lp.weeks.Tues+"</th><th>"+this.app.lp.weeks.Wed+"</th>"+"<th>"+this.app.lp.weeks.Thur+"</th><th>"+this.app.lp.weeks.Fri+"</th><th>"+this.app.lp.weeks.Sat+"</th></tr>"}t+="<tr><td valign='top'></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>";t+="<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>";t+="<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>";t+="<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>";t+="<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>";t+="<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>";this.calendarTable=new Element("table",{styles:this.css.calendarTable,height:"100%",border:"0",cellPadding:"0",cellSpacing:"0",html:t}).inject(this.bodyNode);this.calendarTableTitleTr=this.calendarTable.getElement("tr");this.calendarTableTitleTr.setStyles(this.css.calendarTableTitleTr);var e=this.calendarTableTitleTr.getElements("th");e.setStyles(this.css.calendarTableTh);this.loadCalendar()},reLoadCalendar:function(){Object.each(this.days,function(t){t.destroy()}.bind(this));this.loadCalendar()},loadCalendar:function(){var e=this.date.clone();e.set("date",1);var t=e.getDay();if(this.weekBegin=="1"){var i=t-1<0?6:t-1}else{var i=t}e.decrement("day",i);var s=this.calendarTable.getElements("td");s.each(function(t){this.loadDay(t,e);e.increment()}.bind(this))},loadDay:function(t,e){var i="thisMonth";var s=e.get("month");var n=e.get("year");var o=e.get("date");var h=this.date.get("month");var d=this.date.get("year");var a=this.today.get("month");var l=this.today.get("year");var c=this.today.get("date");if(s==a&&n==l&&o==c){i="today"}else if(s==h&&n==d){i="thisMonth"}else{i="otherMonth"}var r=e.format(this.app.lp.dateFormat);this.days[r]=new MWF.xApplication.Meeting.MonthView.Calendar.Day(t,e,this,i)},reload:function(){this.view.reload()},destroy:function(){Object.each(this.days,function(t){t.destroy()}.bind(this));this.container.empty()}});MWF.xApplication.Meeting.MonthView.Calendar.Day=new Class({Implements:[Events],initialize:function(t,e,i,s){this.container=t;this.calendar=i;this.view=this.calendar.view;this.css=this.calendar.css;this.app=this.calendar.app;this.date=e.clone();this.key=this.date.format(this.app.lp.dateFormat);this.type=s;this.meetings=[];this.load()},load:function(){this.color="#666";if(this.type=="thisMonth"){}else if(this.type=="otherMonth"){this.color="#ccc"}this.day=this.date.getDate();this.month=this.date.getMonth();this.year=this.date.getYear();this.node=new Element("div",{styles:this.css["calendarTableCell_"+this.type]}).inject(this.container);this.titleNode=new Element("div",{styles:this.css["dayTitle_"+this.type]}).inject(this.node);this.titleDayNode=new Element("div",{styles:this.css["dayTitleDay_"+this.type],text:this.day}).inject(this.titleNode);if((new Date).diff(this.date)>=0){this.titleNode.set("title",this.app.lp.titleNode);this.titleNode.addEvent("click",function(){this.app.addMeeting(this.date)}.bind(this))}this.contentNode=new Element("div",{styles:this.css.dayContentNode}).inject(this.node);this.loadMeetings()},loadMeetings:function(){this.app.isMeetingViewer(function(t){this._loadMeetings(t)}.bind(this))},_loadMeetings:function(t){var e=this.date.getFullYear();var i=this.date.getMonth()+1;var s=this.date.getDate();var o=0;var h=0;this.firstStatus="";this.lastStatus="";this.app.actions[t?"listMeetingDayAll":"listMeetingDay"](e,i,s,function(t){var i=t.data.length;t.data.each(function(t,e){if(!t.myReject){o++;if(o==3){}if(o==1){this.firstStatus=t.status;if(t.myWaitAccept)this.firstStatus="myWaitAccept"}if(o+h==i){this.lastStatus=t.status;if(t.myWaitAccept)this.lastStatus="myWaitAccept"}this.meetings.push(new MWF.xApplication.Meeting.MonthView.Calendar.Day.Meeting(this,t,o))}else{h++}}.bind(this));if(o==0){var e=new Element("div",{styles:{"line-height":"40px","font-size":"14px","text-align":"center",color:this.color,padding:"0px 10px"}}).inject(this.contentNode);e.set("text",this.app.lp.noMeeting)}else{this.titleInforNode=new Element("div",{styles:this.css["dayTitleInfor_"+this.type]}).inject(this.titleNode);if(this.app.isViewAvailable("toDay")){this.titleInforNode.addEvent("click",function(t){this.app.toDay(this.date);t.stopPropagation()}.bind(this))}else{this.titleInforNode.setStyle("cursor","default")}this.titleInforNode.set("text",""+o+this.app.lp.countMeetings+"");if(o>3){this.node.addEvents({mouseenter:function(){this.expend()}.bind(this),mouseleave:function(){this.collapseReady=true;this.collapse()}.bind(this)})}else{this.titleInforNode.setStyle("color",this.type=="otherMonth"?"#ccc":"#999")}}if(this.firstStatus){switch(this.firstStatus){case"wait":this.titleNode.setStyles({"border-left":"6px solid #4990E2"});break;case"processing":this.titleNode.setStyles({"border-left":"6px solid #66CC7F"});break;case"completed":this.titleNode.setStyles({"border-left":"6px solid #ccc"});break;case"myWaitAccept":this.titleNode.setStyles({"border-left":"6px solid #F6A623"});break}}if(this.lastStatus){var s=0;if(o>=3){s=10}else{s=100-o*30}var n=new Element("div",{styles:{height:""+s+"px"}}).inject(this.node);switch(this.lastStatus){case"wait":n.setStyles({"border-left":"6px solid #4990E2"});break;case"processing":n.setStyles({"border-left":"6px solid #66CC7F"});break;case"completed":n.setStyles({"border-left":"6px solid #ccc"});break;case"myWaitAccept":n.setStyles({"border-left":"6px solid #F6A623"});break}}}.bind(this))},expend:function(){this.oSize=this.node.getSize();this.container.setStyles({position:"relative"});this.tempNode=new Element("div",{styles:{width:this.node.getSize().x+"px",height:"1px",margin:"7px"}}).inject(this.container);this.node.setStyles({height:this.node.getScrollSize().y+"px",width:this.node.getSize().x+"px",position:"absolute",top:"0px",left:"0px","box-shadow":"0 0 8px 0 rgba(0,0,0,0.25)"});var t=this.node.getCoordinates();var e=this.calendar.contentWarpNode;var i=e.getCoordinates();if(t.bottom>i.bottom){this.contentHeight=i.height;e.setStyle("height",t.bottom-i.top+"px")}this.isCollapse=false},collapse:function(){if(!this.collapseDisable&&this.collapseReady){this.container.setStyles({position:"static"});if(this.tempNode)this.tempNode.destroy();this.node.setStyles({height:"140px",width:"auto",position:"static","box-shadow":"none"});if(this.contentHeight){var t=this.calendar.contentWarpNode;t.setStyle("height",this.contentHeight+"px");this.contentHeight=null}this.isCollapse=true}},destroy:function(){this.meetings.each(function(t){t.destroy()}.bind(this));this.meetings=[];this.titleNode.destroy();this.titleNode=null;this.titleDayNode=null;this.titleInforNode=null;delete this.calendar.days[this.key];this.container.empty();MWF.release(this)},reload:function(){this.view.reload()}});MWF.xApplication.Meeting.MonthView.Calendar.Day.Meeting=new Class({initialize:function(t,e,i){this.day=t;this.css=this.day.css;this.view=this.day.view;this.app=this.day.app;this.container=this.day.contentNode;this.data=e;this.index=i;this.load()},load:function(){this.nodeStyles=this.day.type=="today"?this.css.meetingNode_today:this.css.meetingNode;this.node=new Element("div",{styles:this.nodeStyles}).inject(this.container);this.iconNode=new Element("div",{styles:this.css.meetingIconNode}).inject(this.node);this.timeNode=new Element("div",{styles:this.css.meetingTimeNode}).inject(this.node);this.textNode=new Element("div",{styles:this.css.meetingTextNode}).inject(this.node);var t=Date.parse(this.data.startTime).format("%H:%M");this.timeNode.set("text",t);this.textNode.set("text",this.data.subject);switch(this.data.status){case"wait":this.node.setStyles({"border-left":"6px solid #4990E2"});break;case"processing":this.node.setStyles({"border-left":"6px solid #66CC7F"});break;case"completed":this.node.setStyles({"border-left":"6px solid #ccc"});break}if(this.data.myWaitAccept){this.node.setStyles({"border-left":"6px solid #F6A623"})}this.node.addEvents({mouseenter:function(){this.day.collapseReady=false;this.node.setStyles(this.css.meetingNode_over)}.bind(this),mouseleave:function(){this.node.setStyles(this.nodeStyles)}.bind(this),click:function(){this.openMeeting()}.bind(this)});this.loadTooltip()},loadTooltip:function(){this.tooltip=new MWF.xApplication.Meeting.MeetingTooltip(this.app.content,this.node,this.app,this.data,{axis:"x",hiddenDelay:300,displayDelay:300,onShow:function(){this.day.collapseDisable=true}.bind(this),onQueryCreate:function(){this.day.collapseDisable=true}.bind(this),onHide:function(){this.day.collapseDisable=false;this.day.collapse()}.bind(this)})},showTooltip:function(){if(this.tooltip){this.tooltip.load()}else{this.tooltip=new MWF.xApplication.Meeting.MeetingTooltip(this.app.content,this.node,this.app,this.data,{axis:"x",delay:150});this.tooltip.load()}},openMeeting:function(){this.form=new MWF.xApplication.Meeting.MeetingForm(this,this.data,{},{app:this.app});this.form.view=this;this.form.open()},destroy:function(){if(this.tooltip)this.tooltip.destroy();this.node.destroy();MWF.release(this)},reload:function(){this.view.reload()}});MWF.xApplication.Meeting.MonthView.Calendar.MonthSelector=new Class({Implements:[Events],initialize:function(t,e){this.calendar=e;this.css=this.calendar.css;this.app=this.calendar.app;this.date=t;this.year=this.date.get("year");this.load()},load:function(){this.monthSelectNode=new Element("div",{styles:this.css.calendarMonthSelectNode}).inject(this.calendar.container);this.monthSelectNode.position({relativeTo:this.calendar.titleTextNode,position:"bottomCenter",edge:"upperCenter"});this.monthSelectNode.addEvent("mousedown",function(t){t.stopPropagation()});this.monthSelectTitleNode=new Element("div",{styles:this.css.calendarMonthSelectTitleNode}).inject(this.monthSelectNode);this.monthSelectPrevYearNode=new Element("div",{styles:this.css.calendarMonthSelectTitlePrevYearNode}).inject(this.monthSelectTitleNode);this.monthSelectNextYearNode=new Element("div",{styles:this.css.calendarMonthSelectTitleNextYearNode}).inject(this.monthSelectTitleNode);this.monthSelectTextNode=new Element("div",{styles:this.css.calendarMonthSelectTitleTextNode}).inject(this.monthSelectTitleNode);this.monthSelectTextNode.set("text",this.year);var t="<tr><td></td><td></td><td></td></tr>";t+="<tr><td></td><td></td><td></td></tr>";t+="<tr><td></td><td></td><td></td></tr>";t+="<tr><td></td><td></td><td></td></tr>";this.monthSelectTable=new Element("table",{styles:{"margin-top":"10px"},height:"200px",width:"90%",align:"center",border:"0",cellPadding:"0",cellSpacing:"0",html:t}).inject(this.monthSelectNode);this.monthSelectBottomNode=new Element("div",{styles:this.css.calendarMonthSelectBottomNode,text:this.app.lp.today}).inject(this.monthSelectNode);this.setEvent()},loadMonth:function(){this.monthSelectTextNode.set("text",this.year);var t=new Date;var s=t.get("year");var n=t.get("month");var o=this.date.get("year");var h=this.date.get("month");var d=this;var e=this.monthSelectTable.getElements("td");e.each(function(t,e){t.empty();t.removeEvents("mouseover");t.removeEvents("mouseout");t.removeEvents("mousedown");t.removeEvents("mouseup");t.removeEvents("click");var i=e+1;t.store("month",i);t.setStyles(this.css.calendarMonthSelectTdNode);t.setStyle("background-color","#FFF");if(this.year==s&&e==n){new Element("div",{styles:d.css.calendarMonthSelectTodayNode,text:""+i+this.app.lp.month}).inject(t)}else if(this.year==o&&e==h){new Element("div",{styles:d.css.calendarMonthSelectCurrentNode,text:""+i+this.app.lp.month}).inject(t)}else{t.set("text",""+i+this.app.lp.month)}t.addEvents({mouseover:function(){this.setStyles(d.css.calendarMonthSelectTdNode_over)},mouseout:function(){this.setStyles(d.css.calendarMonthSelectTdNode)},mousedown:function(){this.setStyles(d.css.calendarMonthSelectTdNode_down)},mouseup:function(){this.setStyles(d.css.calendarMonthSelectTdNode_over)},click:function(){d.selectedMonth(this)}})}.bind(this))},setEvent:function(){this.monthSelectPrevYearNode.addEvent("click",function(){this.prevYear()}.bind(this));this.monthSelectNextYearNode.addEvent("click",function(){this.nextYear()}.bind(this));this.monthSelectBottomNode.addEvents({mouuseover:function(){this.monthSelectBottomNode.setStyles(this.css.calendarMonthSelectBottomNode_over)}.bind(this),mouuseout:function(){this.monthSelectBottomNode.setStyles(this.css.calendarMonthSelectBottomNode)}.bind(this),click:function(){this.todayMonth()}.bind(this)})},prevYear:function(){this.year--;if(this.year<1900)this.year=1900;this.monthSelectTextNode.set("text",this.year);this.loadMonth()},nextYear:function(){this.year++;this.monthSelectTextNode.set("text",this.year);this.loadMonth()},todayMonth:function(){var t=new Date;this.calendar.changeMonthTo(t);this.hide()},selectedMonth:function(t){var e=t.retrieve("month");var i=Date.parse(this.year+"/"+e+"/1");this.calendar.changeMonthTo(i);this.hide()},show:function(){this.date=this.calendar.date;this.year=this.date.get("year");this.loadMonth();this.monthSelectNode.setStyle("display","block");this.hideFun=this.hide.bind(this);document.body.addEvent("mousedown",this.hideFun)},hide:function(){this.monthSelectNode.setStyle("display","none");document.body.removeEvent("mousedown",this.hideFun)},destroy:function(){}});
|