From: Alan Knowles Date: Tue, 8 Apr 2014 14:54:38 +0000 (+0800) Subject: roojs-calendar.js X-Git-Url: http://git.roojs.org/?p=roojs1;a=commitdiff_plain;h=a4e055a3f97ff2eefe5dff4dc611d36387fb71f3 roojs-calendar.js roojs-calendar-debug.js --- diff --git a/roojs-calendar-debug.js b/roojs-calendar-debug.js index 3efeda3930..5d9ad086de 100644 --- a/roojs-calendar-debug.js +++ b/roojs-calendar-debug.js @@ -554,8 +554,9 @@ Roo.extend(Roo.bootstrap.Calendar, Roo.bootstrap.Component, { this.store.on('load', this.onLoad, this); this.resize(); - this.cells = this.el.select('.fc-day',true); + this.cells = this.el.select('.fc-day',true); + //Roo.log(this.cells); this.textNodes = this.el.query('.fc-day-number'); this.cells.addClassOnOver('fc-state-hover'); @@ -636,7 +637,7 @@ Roo.extend(Roo.bootstrap.Calendar, Roo.bootstrap.Component, { startingPos += 7; } - var pm = date.add("mo", -1); + var pm = date.add(Date.MONTH, -1); var prevStart = pm.getDaysInMonth()-startingPos; // this.cells = this.el.select('.fc-day',true); @@ -655,6 +656,10 @@ Roo.extend(Roo.bootstrap.Calendar, Roo.bootstrap.Component, { // convert everything to numbers so it's fast var day = 86400000; var d = (new Date(pm.getFullYear(), pm.getMonth(), prevStart)).clearTime(); + //Roo.log(d); + //Roo.log(pm); + //Roo.log(prevStart); + var today = new Date().clearTime().getTime(); var sel = date.clearTime().getTime(); var min = this.minDate ? this.minDate.clearTime() : Number.NEGATIVE_INFINITY; @@ -666,9 +671,13 @@ Roo.extend(Roo.bootstrap.Calendar, Roo.bootstrap.Component, { var format = this.format; var setCellClass = function(cal, cell){ + + //Roo.log('set Cell Class'); cell.title = ""; var t = d.getTime(); + //Roo.log(d); + cell.dateValue = t; if(t == today){ cell.className += " fc-today"; @@ -794,10 +803,12 @@ Roo.extend(Roo.bootstrap.Calendar, Roo.bootstrap.Component, { findCells : function(ev) { var s = ev.start.clone().clearTime().getTime(); + // Roo.log(s); var e= ev.end.clone().clearTime().getTime(); + // Roo.log(e); var ret = []; this.cells.each(function(c){ - //Roo.log("check " +c.dateValue + '<' + e + ' > ' + s); + ////Roo.log("check " +c.dateValue + '<' + e + ' > ' + s); if(c.dateValue > e){ return ; @@ -984,7 +995,7 @@ Roo.extend(Roo.bootstrap.Calendar, Roo.bootstrap.Component, { onLoad: function () { this.clearEvents(); - Roo.log('calendar onload'); + //Roo.log('calendar onload'); // this.calevents = []; var cal = this; @@ -1111,6 +1122,9 @@ Roo.CalendarPanel = function(config){ Roo.extend(Roo.CalendarPanel, Roo.ContentPanel, { + + startDay : 0, + getId : function(){ return this.id; }, @@ -1193,9 +1207,6 @@ Roo.extend(Roo.CalendarPanel, Roo.ContentPanel, { }, - getAutoCreate : Roo.bootstrap.Calendar.prototype.getAutoCreate, - - initEvents : Roo.bootstrap.Calendar.prototype.initEvents }); diff --git a/roojs-calendar.js b/roojs-calendar.js index fb1e08ad5e..e69de29bb2 100644 --- a/roojs-calendar.js +++ b/roojs-calendar.js @@ -1,28 +0,0 @@ -//Roo/bootstrap/Component.js -Roo.bootstrap=Roo.bootstrap||{};Roo.bootstrap.Component=function(A){Roo.bootstrap.Component.superclass.constructor.call(this,A);};Roo.extend(Roo.bootstrap.Component,Roo.BoxComponent,{allowDomMove:false,cls:false,style:false,autoCreate:false,initEvents:function(){},xattr:false,parentId:false,can_build_overlaid:true,dataId:false,name:false,parent:function(){return Roo.ComponentMgr.get(this.parentId)},onRender:function(ct,A){Roo.bootstrap.Component.superclass.onRender.call(this,ct,A);if(this.el){if(this.el.attr('xtype')){this.el.attr('xtypex',this.el.attr('xtype'));this.el.dom.removeAttribute('xtype');this.initEvents();}return;}var B=Roo.apply({},this.getAutoCreate());B.id=Roo.id();if(this.xattr&&typeof(this.xattr)=='object'){for(var i in this.xattr){B[i]=this.xattr[i];}}if(this.dataId){B.dataId=this.dataId;}if(this.cls){B.cls=(typeof(B.cls)=='undefined')?this.cls:B.cls+' '+this.cls;}if(this.style){B.style=this.style;}if(this.name){B.name=this.name;} -this.el=ct.createChild(B,A);if(this.tabIndex!==undefined){this.el.dom.setAttribute('tabIndex',this.tabIndex);} -this.initEvents();},getChildContainer:function(){return this.el;},addxtype:function(A,B){var cn=this;cn=Roo.factory(A);cn.parentType=this.xtype;cn.parentId=this.id;B=typeof(B=='undefined')?'getChildContainer':B;var C=(typeof(A['flexy:foreach'])!='undefined');var D=(typeof(A['flexy:if'])!='undefined');var E=Roo.XComponent.build_from_html;var F=(A.xtype=='Body');var G=(Roo.get(document.body).attr('xtype')=='Roo.bootstrap.Body');var H=Roo.get(this[B]());if(!C||!E||F||!G){if(!D||typeof(A.name)=='undefined'||!E||F||!G){return this.addxtypeChild(A,B);}var I=H?H.child('>*[name='+A.name+']'):false;if(I){return this.addxtypeChild(Roo.apply({},A),B);} -Roo.log('skipping render');return cn;}var J=false;while(true){var I=H?H.child('>*[xtype]'):false;if(!I){break;}if(I&&I.attr('xtype').split('.').pop()!=cn.xtype){break;} -J=this.addxtypeChild(Roo.apply({},A),B);}return J;},addxtypeChild:function(A,B){var cn=this;B=typeof(B=='undefined')?'getChildContainer':B;var C=(typeof(A['flexy:if'])!='undefined')||(typeof(A['flexy:foreach'])!='undefined');if(A.xtype!='Body'){var D=Roo.factory(A);cn=Roo.factory(A);cn.parentType=this.xtype;cn.parentId=this.id;var E=Roo.XComponent.build_from_html;if(Roo.get(document.body).attr('xtype')=='Roo.bootstrap.Body'){var F=Roo.get(this[B]());var G=F?F.child('>*[xtype]'):false;if(G&&G.attr('xtype').split('.').pop()==cn.xtype){cn.el=G;}else {Roo.log("MISSING "+cn.xtype+" on child of "+(this.el?this.el.attr('xbuilderid'):'no parent'));}}if(E&&C&&!cn.el&&cn.can_build_overlaid){Roo.log('skipping render');}else {cn.render(this[B]());}}var H=[];if(typeof(A.menu)!='undefined'){A.menu.parentType=cn.xtype;A.menu.triggerEl=cn.el;H.push(cn.addxtype(Roo.apply({},A.menu)));}if(!A.items||!A.items.length){cn.items=H;return cn;}var I=A.items;delete A.items;for(var i=0;i'+J+'',unselectable:'on'});};var A={tag:'table',cls:'fc-header',style:'width:100%',cn:[{tag:'tr',cn:[{tag:'td',cls:'fc-header-left',cn:[fc_button('prev','left','arrow','‹'),fc_button('next','right','arrow','›'),{tag:'span',cls:'fc-header-space'},fc_button('today','left right','','today')]},{tag:'td',cls:'fc-header-center',cn:[{tag:'span',cls:'fc-header-title',cn:{tag:'H2',html:'month / year'}}]},{tag:'td',cls:'fc-header-right',cn:[]}]}]};var B=function(){var G=[];for(var i=0;iL){W.className=" fc-state-disabled";W.title=V.maxText;return;}if(O){if(O.indexOf(d.getDay())!=-1){W.title=P;W.className=" fc-state-disabled";}}if(M&&Q){var X=d.dateFormat(Q);if(M.test(X)){W.title=N.replace("%0",X);W.className=" fc-state-disabled";}}if(!W.initialClassName){W.initialClassName=W.dom.className;} -W.dom.className=W.initialClassName+' '+W.className;};var i=0;for(;ie){return;}if(c.dateValue1?'':ev.time},{tag:'span',cls:'fc-event-title',html:String.format('{0}',ev.title)}]},{cls:'ui-resizable-handle ui-resizable-e',html:'   '}]};if(i==0){C.cls+=' fc-event-start';}if((i+1)==B.length){C.cls+=' fc-event-end';}var D=this.el.select('.fc-event-container',true).first();var cg=D.createChild(C);cg.on('mouseenter',this.onEventEnter,this,ev);cg.on('mouseleave',this.onEventLeave,this,ev);cg.on('click',this.onEventClick,this,ev);ev.els.push(cg);var E=B[i].start.select('.fc-day-content',true).first().getBox();var F=B[i].end.select('.fc-day-content',true).first().getBox();cg.setXY([E.x+2,E.y+(ev.row*20)]);cg.setWidth(F.right-E.x-2);}}},onEventEnter:function(e,el,A,d){this.fireEvent('evententer',this,el,A);},onEventLeave:function(e,el,A,d){this.fireEvent('eventleave',this,el,A);},onEventClick:function(e,el,A,d){this.fireEvent('eventclick',this,el,A);},onMonthChange:function(){this.store.load();},onLoad:function(){this.clearEvents();Roo.log('calendar onload');this.calevents=[];var A=this;if(this.store.getCount()>0){this.store.data.each(function(d){A.addItem({id:d.data.id,start:new Date(d.data.start_dt),end:new Date(d.data.end_dt),time:d.data.start_time,title:d.data.title,description:d.data.description,venue:d.data.venue});});} -this.renderEvents();}}); -//Roo/CalendarPanel.js -Roo.CalendarPanel=function(A){Roo.log("cal panel ctr");this.wrapper=Roo.DomHelper.append(document.body,{tag:"div",cls:"x-layout-grid-wrapper x-layout-inactive-content"},true);Roo.CalendarPanel.superclass.constructor.call(this,this.wrapper,A);Roo.log(this.el);if(this.toolbar){this.toolbar.el.insertBefore(this.wrapper.dom.firstChild);}if(this.footer&&!this.footer.el&&this.footer.xtype){} -this.on('activate',function(){Roo.log('activate');this.render();},this);this.addEvents({'select':true,'monthchange':true,'evententer':true,'eventleave':true,'eventclick':true,'rendered':true});};Roo.extend(Roo.CalendarPanel,Roo.ContentPanel,{getId:function(){return this.id;},destroy:function(){Roo.GridPanel.superclass.destroy.call(this);},render:function(){this.onRender(this.el,false)},onRender:function(ct,A){if(this.rendered){return;} -this.rendered=true;Roo.log("render calendar");var B=Roo.apply({},this.getAutoCreate());B.id=Roo.id();if(this.xattr&&typeof(this.xattr)=='object'){for(var i in this.xattr){B[i]=this.xattr[i];}}if(this.dataId){B.dataId=this.dataId;}if(this.cls){B.cls=(typeof(B.cls)=='undefined')?this.cls:B.cls+' '+this.cls;}if(this.style){B.style=this.style;}if(this.name){B.name=this.name;} -this.el=ct.createChild(B,A);if(this.tabIndex!==undefined){this.el.dom.setAttribute('tabIndex',this.tabIndex);} -this.initEvents();this.fireEvent('rendered');},getAutoCreate:Roo.bootstrap.Calendar.prototype.getAutoCreate,initEvents:Roo.bootstrap.Calendar.prototype.initEvents});Roo.each(['getAutoCreate','initEvents','resize','showPrevMonth','showToday','showNextMonth','showPrevYear','showNextYear','update','findCell','findCells','findBestRow','addItem','clearEvents','renderEvents','onEventEnter','onEventLeave','onEventClick','onMonthChange','onLoad'],function(p){Roo.log('add'+p);Roo.CalendarPanel.prototype[p]=Roo.bootstrap.Calendar.prototype[p];});