?? datepicker.js
字號:
/*
* Ext JS Library 1.1 RC 1
* Copyright(c) 2006-2007, Ext JS, LLC.
* licensing@extjs.com
*
* http://www.extjs.com/license
*/
Ext.DatePicker=function(_1){Ext.DatePicker.superclass.constructor.call(this,_1);this.value=_1&&_1.value?_1.value.clearTime():new Date().clearTime();this.addEvents({select:true});if(this.handler){this.on("select",this.handler,this.scope||this);}if(!this.disabledDatesRE&&this.disabledDates){var dd=this.disabledDates;var re="(?:";for(var i=0;i<dd.length;i++){re+=dd[i];if(i!=dd.length-1){re+="|";}}this.disabledDatesRE=new RegExp(re+")");}};Ext.extend(Ext.DatePicker,Ext.Component,{todayText:"Today",okText:" OK ",cancelText:"Cancel",todayTip:"{0} (Spacebar)",minDate:null,maxDate:null,minText:"This date is before the minimum date",maxText:"This date is after the maximum date",format:"m/d/y",disabledDays:null,disabledDaysText:"",disabledDatesRE:null,disabledDatesText:"",constrainToViewport:true,monthNames:Date.monthNames,dayNames:Date.dayNames,nextText:"Next Month (Control+Right)",prevText:"Previous Month (Control+Left)",monthYearText:"Choose a month (Control+Up/Down to move years)",startDay:0,setValue:function(_5){var _6=this.value;this.value=_5.clearTime(true);if(this.el){this.update(this.value);}},getValue:function(){return this.value;},focus:function(){if(this.el){this.update(this.activeDate);}},onRender:function(_7,_8){var m=["<table cellspacing=\"0\">","<tr><td class=\"x-date-left\"><a href=\"#\" title=\"",this.prevText,"\"> </a></td><td class=\"x-date-middle\" align=\"center\"></td><td class=\"x-date-right\"><a href=\"#\" title=\"",this.nextText,"\"> </a></td></tr>","<tr><td colspan=\"3\"><table class=\"x-date-inner\" cellspacing=\"0\"><thead><tr>"];var dn=this.dayNames;for(var i=0;i<7;i++){var d=this.startDay+i;if(d>6){d=d-7;}m.push("<th><span>",dn[d].substr(0,1),"</span></th>");}m[m.length]="</tr></thead><tbody><tr>";for(var i=0;i<42;i++){if(i%7==0&&i!=0){m[m.length]="</tr><tr>";}m[m.length]="<td><a href=\"#\" hidefocus=\"on\" class=\"x-date-date\" tabIndex=\"1\"><em><span></span></em></a></td>";}m[m.length]="</tr></tbody></table></td></tr><tr><td colspan=\"3\" class=\"x-date-bottom\" align=\"center\"></td></tr></table><div class=\"x-date-mp\"></div>";var el=document.createElement("div");el.className="x-date-picker";el.innerHTML=m.join("");_7.dom.insertBefore(el,_8);this.el=Ext.get(el);this.eventEl=Ext.get(el.firstChild);new Ext.util.ClickRepeater(this.el.child("td.x-date-left a"),{handler:this.showPrevMonth,scope:this,preventDefault:true,stopDefault:true});new Ext.util.ClickRepeater(this.el.child("td.x-date-right a"),{handler:this.showNextMonth,scope:this,preventDefault:true,stopDefault:true});this.eventEl.on("mousewheel",this.handleMouseWheel,this);this.monthPicker=this.el.down("div.x-date-mp");this.monthPicker.enableDisplayMode("block");var kn=new Ext.KeyNav(this.eventEl,{"left":function(e){e.ctrlKey?this.showPrevMonth():this.update(this.activeDate.add("d",-1));},"right":function(e){e.ctrlKey?this.showNextMonth():this.update(this.activeDate.add("d",1));},"up":function(e){e.ctrlKey?this.showNextYear():this.update(this.activeDate.add("d",-7));},"down":function(e){e.ctrlKey?this.showPrevYear():this.update(this.activeDate.add("d",7));},"pageUp":function(e){this.showNextMonth();},"pageDown":function(e){this.showPrevMonth();},"enter":function(e){e.stopPropagation();return true;},scope:this});this.eventEl.on("click",this.handleDateClick,this,{delegate:"a.x-date-date"});this.eventEl.addKeyListener(Ext.EventObject.SPACE,this.selectToday,this);this.el.unselectable();this.cells=this.el.select("table.x-date-inner tbody td");this.textNodes=this.el.query("table.x-date-inner tbody span");this.mbtn=new Ext.Button(this.el.child("td.x-date-middle",true),{text:" ",tooltip:this.monthYearText});this.mbtn.on("click",this.showMonthPicker,this);this.mbtn.el.child(this.mbtn.menuClassTarget).addClass("x-btn-with-menu");var _16=(new Date()).dateFormat(this.format);var _17=new Ext.Button(this.el.child("td.x-date-bottom",true),{text:String.format(this.todayText,_16),tooltip:String.format(this.todayTip,_16),handler:this.selectToday,scope:this});if(Ext.isIE){this.el.repaint();}this.update(this.value);},createMonthPicker:function(){if(!this.monthPicker.dom.firstChild){var buf=["<table border=\"0\" cellspacing=\"0\">"];for(var i=0;i<6;i++){buf.push("<tr><td class=\"x-date-mp-month\"><a href=\"#\">",this.monthNames[i].substr(0,3),"</a></td>","<td class=\"x-date-mp-month x-date-mp-sep\"><a href=\"#\">",this.monthNames[i+6].substr(0,3),"</a></td>",i==0?"<td class=\"x-date-mp-ybtn\" align=\"center\"><a class=\"x-date-mp-prev\"></a></td><td class=\"x-date-mp-ybtn\" align=\"center\"><a class=\"x-date-mp-next\"></a></td></tr>":"<td class=\"x-date-mp-year\"><a href=\"#\"></a></td><td class=\"x-date-mp-year\"><a href=\"#\"></a></td></tr>");}buf.push("<tr class=\"x-date-mp-btns\"><td colspan=\"4\"><button type=\"button\" class=\"x-date-mp-ok\">",this.okText,"</button><button type=\"button\" class=\"x-date-mp-cancel\">",this.cancelText,"</button></td></tr>","</table>");this.monthPicker.update(buf.join(""));this.monthPicker.on("click",this.onMonthClick,this);this.monthPicker.on("dblclick",this.onMonthDblClick,this);this.mpMonths=this.monthPicker.select("td.x-date-mp-month");this.mpYears=this.monthPicker.select("td.x-date-mp-year");this.mpMonths.each(function(m,a,i){i+=1;if((i%2)==0){m.dom.xmonth=5+Math.round(i*0.5);}else{m.dom.xmonth=Math.round((i-1)*0.5);}});}},showMonthPicker:function(){this.createMonthPicker();var _1d=this.el.getSize();this.monthPicker.setSize(_1d);this.monthPicker.child("table").setSize(_1d);this.mpSelMonth=(this.activeDate||this.value).getMonth();this.updateMPMonth(this.mpSelMonth);this.mpSelYear=(this.activeDate||this.value).getFullYear();this.updateMPYear(this.mpSelYear);this.monthPicker.slideIn("t",{duration:0.2});},updateMPYear:function(y){this.mpyear=y;var ys=this.mpYears.elements;for(var i=1;i<=10;i++){var td=ys[i-1],y2;if((i%2)==0){y2=y+Math.round(i*0.5);td.firstChild.innerHTML=y2;td.xyear=y2;}else{y2=y-(5-Math.round(i*0.5));td.firstChild.innerHTML=y2;td.xyear=y2;}this.mpYears.item(i-1)[y2==this.mpSelYear?"addClass":"removeClass"]("x-date-mp-sel");}},updateMPMonth:function(sm){this.mpMonths.each(function(m,a,i){m[m.dom.xmonth==sm?"addClass":"removeClass"]("x-date-mp-sel");});},selectMPMonth:function(m){},onMonthClick:function(e,t){e.stopEvent();var el=new Ext.Element(t),pn;if(el.is("button.x-date-mp-cancel")){this.hideMonthPicker();}else{if(el.is("button.x-date-mp-ok")){this.update(new Date(this.mpSelYear,this.mpSelMonth,(this.activeDate||this.value).getDate()));this.hideMonthPicker();}else{if(pn=el.up("td.x-date-mp-month",2)){this.mpMonths.removeClass("x-date-mp-sel");pn.addClass("x-date-mp-sel");this.mpSelMonth=pn.dom.xmonth;}else{if(pn=el.up("td.x-date-mp-year",2)){this.mpYears.removeClass("x-date-mp-sel");pn.addClass("x-date-mp-sel");this.mpSelYear=pn.dom.xyear;}else{if(el.is("a.x-date-mp-prev")){this.updateMPYear(this.mpyear-10);}else{if(el.is("a.x-date-mp-next")){this.updateMPYear(this.mpyear+10);}}}}}}},onMonthDblClick:function(e,t){e.stopEvent();var el=new Ext.Element(t),pn;if(pn=el.up("td.x-date-mp-month",2)){this.update(new Date(this.mpSelYear,pn.dom.xmonth,(this.activeDate||this.value).getDate()));this.hideMonthPicker();}else{if(pn=el.up("td.x-date-mp-year",2)){this.update(new Date(pn.dom.xyear,this.mpSelMonth,(this.activeDate||this.value).getDate()));this.hideMonthPicker();}}},hideMonthPicker:function(_30){if(this.monthPicker){if(_30===true){this.monthPicker.hide();}else{this.monthPicker.slideOut("t",{duration:0.2});}}},showPrevMonth:function(e){this.update(this.activeDate.add("mo",-1));},showNextMonth:function(e){this.update(this.activeDate.add("mo",1));},showPrevYear:function(){this.update(this.activeDate.add("y",-1));},showNextYear:function(){this.update(this.activeDate.add("y",1));},handleMouseWheel:function(e){var _34=e.getWheelDelta();if(_34>0){this.showPrevMonth();e.stopEvent();}else{if(_34<0){this.showNextMonth();e.stopEvent();}}},handleDateClick:function(e,t){e.stopEvent();if(t.dateValue&&!Ext.fly(t.parentNode).hasClass("x-date-disabled")){this.setValue(new Date(t.dateValue));this.fireEvent("select",this,this.value);}},selectToday:function(){this.setValue(new Date().clearTime());this.fireEvent("select",this,this.value);},update:function(_37){var vd=this.activeDate;this.activeDate=_37;if(vd&&this.el){var t=_37.getTime();if(vd.getMonth()==_37.getMonth()&&vd.getFullYear()==_37.getFullYear()){this.cells.removeClass("x-date-selected");this.cells.each(function(c){if(c.dom.firstChild.dateValue==t){c.addClass("x-date-selected");setTimeout(function(){try{c.dom.firstChild.focus();}catch(e){}},50);return false;}});return;}}var _3b=_37.getDaysInMonth();var _3c=_37.getFirstDateOfMonth();var _3d=_3c.getDay()-this.startDay;if(_3d<=this.startDay){_3d+=7;}var pm=_37.add("mo",-1);var _3f=pm.getDaysInMonth()-_3d;var _40=this.cells.elements;var _41=this.textNodes;_3b+=_3d;var day=86400000;var d=(new Date(pm.getFullYear(),pm.getMonth(),_3f)).clearTime();var _44=new Date().clearTime().getTime();var sel=_37.clearTime().getTime();var min=this.minDate?this.minDate.clearTime():Number.NEGATIVE_INFINITY;var max=this.maxDate?this.maxDate.clearTime():Number.POSITIVE_INFINITY;var _48=this.disabledDatesRE;var _49=this.disabledDatesText;var _4a=this.disabledDays?this.disabledDays.join(""):false;var _4b=this.disabledDaysText;var _4c=this.format;var _4d=function(cal,_4f){_4f.title="";var t=d.getTime();_4f.firstChild.dateValue=t;if(t==_44){_4f.className+=" x-date-today";_4f.title=cal.todayText;}if(t==sel){_4f.className+=" x-date-selected";setTimeout(function(){try{_4f.firstChild.focus();}catch(e){}},50);}if(t<min){_4f.className=" x-date-disabled";_4f.title=cal.minText;return;}if(t>max){_4f.className=" x-date-disabled";_4f.title=cal.maxText;return;}if(_4a){if(_4a.indexOf(d.getDay())!=-1){_4f.title=_4b;_4f.className=" x-date-disabled";}}if(_48&&_4c){var _51=d.dateFormat(_4c);if(_48.test(_51)){_4f.title=_49.replace("%0",_51);_4f.className=" x-date-disabled";}}};var i=0;for(;i<_3d;i++){_41[i].innerHTML=(++_3f);d.setDate(d.getDate()+1);_40[i].className="x-date-prevday";_4d(this,_40[i]);}for(;i<_3b;i++){intDay=i-_3d+1;_41[i].innerHTML=(intDay);d.setDate(d.getDate()+1);_40[i].className="x-date-active";_4d(this,_40[i]);}var _53=0;for(;i<42;i++){_41[i].innerHTML=(++_53);d.setDate(d.getDate()+1);_40[i].className="x-date-nextday";_4d(this,_40[i]);}this.mbtn.setText(this.monthNames[_37.getMonth()]+" "+_37.getFullYear());if(!this.internalRender){var _54=this.el.dom.firstChild;var w=_54.offsetWidth;this.el.setWidth(w+this.el.getBorderWidth("lr"));Ext.fly(_54).setWidth(w);this.internalRender=true;if(Ext.isOpera&&!this.secondPass){_54.rows[0].cells[1].style.width=(w-(_54.rows[0].cells[0].offsetWidth+_54.rows[0].cells[2].offsetWidth))+"px";this.secondPass=true;this.update.defer(10,this,[_37]);}}}});
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -