75 lines
2.2 KiB
JavaScript
75 lines
2.2 KiB
JavaScript
![]() |
/*
|
||
|
Copyright (c) 2004-2006, The Dojo Foundation
|
||
|
All Rights Reserved.
|
||
|
|
||
|
Licensed under the Academic Free License version 2.1 or above OR the
|
||
|
modified BSD license. For more information on Dojo licensing, see:
|
||
|
|
||
|
http://dojotoolkit.org/community/licensing.shtml
|
||
|
*/
|
||
|
|
||
|
dojo.provide("dojo.widget.MonthlyCalendar");
|
||
|
dojo.provide("dojo.widget.MonthlyCalendar.util");
|
||
|
dojo.require("dojo.widget.DomWidget");
|
||
|
dojo.require("dojo.date");
|
||
|
|
||
|
dojo.widget.MonthlyCalendar= function(){
|
||
|
dojo.widget.Widget.call(this);
|
||
|
this.widgetType = "MonthlyCalendar";
|
||
|
this.isContainer = false;
|
||
|
// the following aliases prevent breaking people using 0.2.x
|
||
|
this.months = dojo.date.months;
|
||
|
this.weekdays = dojo.date.days;
|
||
|
this.toRfcDate = dojo.widget.MonthlyCalendar.util.toRfcDate;
|
||
|
this.fromRfcDate = dojo.widget.MonthlyCalendar.util.fromRfcDate;
|
||
|
this.initFirstSaturday = dojo.widget.MonthlyCalendar.util.initFirstSaturday;
|
||
|
}
|
||
|
|
||
|
dojo.inherits(dojo.widget.MonthlyCalendar, dojo.widget.Widget);
|
||
|
dojo.widget.tags.addParseTreeHandler("dojo:monthlycalendar");
|
||
|
|
||
|
dojo.requireAfterIf("html", "dojo.widget.html.MonthlyCalendar");
|
||
|
|
||
|
dojo.widget.MonthlyCalendar.util= new function() {
|
||
|
this.months = dojo.date.months;
|
||
|
this.weekdays = dojo.date.days;
|
||
|
|
||
|
this.toRfcDate = function(jsDate) {
|
||
|
if(!jsDate) {
|
||
|
jsDate = this.today;
|
||
|
}
|
||
|
var year = jsDate.getFullYear();
|
||
|
var month = jsDate.getMonth() + 1;
|
||
|
if (month < 10) {
|
||
|
month = "0" + month.toString();
|
||
|
}
|
||
|
var date = jsDate.getDate();
|
||
|
if (date < 10) {
|
||
|
date = "0" + date.toString();
|
||
|
}
|
||
|
// because this is a date picker and not a time picker, we treat time
|
||
|
// as zero
|
||
|
return year + "-" + month + "-" + date + "T00:00:00+00:00";
|
||
|
}
|
||
|
|
||
|
this.fromRfcDate = function(rfcDate) {
|
||
|
var tempDate = rfcDate.split("-");
|
||
|
if(tempDate.length < 3) {
|
||
|
return new Date();
|
||
|
}
|
||
|
// fullYear, month, date
|
||
|
return new Date(parseInt(tempDate[0]), (parseInt(tempDate[1], 10) - 1), parseInt(tempDate[2].substr(0,2), 10));
|
||
|
}
|
||
|
|
||
|
this.initFirstSaturday = function(month, year) {
|
||
|
if(!month) {
|
||
|
month = this.date.getMonth();
|
||
|
}
|
||
|
if(!year) {
|
||
|
year = this.date.getFullYear();
|
||
|
}
|
||
|
var firstOfMonth = new Date(year, month, 1);
|
||
|
return {year: year, month: month, date: 7 - firstOfMonth.getDay()};
|
||
|
}
|
||
|
}
|