mirror of
https://github.com/wassname/fullcalendar.git
synced 2026-07-14 01:10:12 +08:00
[2.0] source file changes
This commit is contained in:
+14
-19
@@ -1,39 +1,34 @@
|
||||
|
||||
fcViews.basicDay = BasicDayView;
|
||||
|
||||
|
||||
function BasicDayView(element, calendar) {
|
||||
function BasicDayView(element, calendar) { // TODO: make a DayView mixin
|
||||
var t = this;
|
||||
|
||||
|
||||
// exports
|
||||
t.incrementDate = incrementDate;
|
||||
t.render = render;
|
||||
|
||||
|
||||
// imports
|
||||
BasicView.call(t, element, calendar, 'basicDay');
|
||||
var opt = t.opt;
|
||||
var renderBasic = t.renderBasic;
|
||||
var skipHiddenDays = t.skipHiddenDays;
|
||||
var formatDate = calendar.formatDate;
|
||||
|
||||
|
||||
function render(date, delta) {
|
||||
|
||||
if (delta) {
|
||||
addDays(date, delta);
|
||||
}
|
||||
skipHiddenDays(date, delta < 0 ? -1 : 1);
|
||||
|
||||
var start = cloneDate(date, true);
|
||||
var end = addDays(cloneDate(start), 1);
|
||||
function incrementDate(date, delta) {
|
||||
var out = date.clone().stripTime().add('days', delta);
|
||||
out = t.skipHiddenDays(out, delta < 0 ? -1 : 1);
|
||||
return out;
|
||||
}
|
||||
|
||||
t.title = formatDate(date, opt('titleFormat'));
|
||||
|
||||
t.start = t.visStart = start;
|
||||
t.end = t.visEnd = end;
|
||||
function render(date) {
|
||||
|
||||
renderBasic(1, 1, false);
|
||||
t.start = t.intervalStart = date.clone().stripTime();
|
||||
t.end = t.intervalEnd = t.start.clone().add('days', 1);
|
||||
|
||||
t.title = calendar.formatDate(t.start, t.opt('titleFormat'));
|
||||
|
||||
t.renderBasic(1, 1, false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
+32
-40
@@ -19,7 +19,6 @@ function BasicView(element, calendar, viewName) {
|
||||
t.reportDayClick = reportDayClick; // for selection (kinda hacky)
|
||||
t.dragStart = dragStart;
|
||||
t.dragStop = dragStop;
|
||||
t.defaultEventEnd = defaultEventEnd;
|
||||
t.getHoverListener = function() { return hoverListener };
|
||||
t.colLeft = colLeft;
|
||||
t.colRight = colRight;
|
||||
@@ -46,7 +45,9 @@ function BasicView(element, calendar, viewName) {
|
||||
var cellToDate = t.cellToDate;
|
||||
var dateToCell = t.dateToCell;
|
||||
var rangeToSegments = t.rangeToSegments;
|
||||
var calendar = t.calendar;
|
||||
var formatDate = calendar.formatDate;
|
||||
var calculateWeekNumber = calendar.calculateWeekNumber;
|
||||
|
||||
|
||||
// locals
|
||||
@@ -77,8 +78,6 @@ function BasicView(element, calendar, viewName) {
|
||||
var tm;
|
||||
var colFormat;
|
||||
var showWeekNumbers;
|
||||
var weekNumberTitle;
|
||||
var weekNumberFormat;
|
||||
|
||||
|
||||
|
||||
@@ -106,16 +105,7 @@ function BasicView(element, calendar, viewName) {
|
||||
function updateOptions() {
|
||||
tm = opt('theme') ? 'ui' : 'fc';
|
||||
colFormat = opt('columnFormat');
|
||||
|
||||
// week # options. (TODO: bad, logic also in other views)
|
||||
showWeekNumbers = opt('weekNumbers');
|
||||
weekNumberTitle = opt('weekNumberTitle');
|
||||
if (opt('weekNumberCalculation') != 'iso') {
|
||||
weekNumberFormat = "w";
|
||||
}
|
||||
else {
|
||||
weekNumberFormat = "W";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -188,14 +178,14 @@ function BasicView(element, calendar, viewName) {
|
||||
if (showWeekNumbers) {
|
||||
html +=
|
||||
"<th class='fc-week-number " + headerClass + "'>" +
|
||||
htmlEscape(weekNumberTitle) +
|
||||
htmlEscape(opt('weekNumberTitle')) +
|
||||
"</th>";
|
||||
}
|
||||
|
||||
for (col=0; col<colCnt; col++) {
|
||||
date = cellToDate(0, col);
|
||||
html +=
|
||||
"<th class='fc-day-header fc-" + dayIDs[date.getDay()] + " " + headerClass + "'>" +
|
||||
"<th class='fc-day-header fc-" + dayIDs[date.day()] + " " + headerClass + "'>" +
|
||||
htmlEscape(formatDate(date, colFormat)) +
|
||||
"</th>";
|
||||
}
|
||||
@@ -224,7 +214,7 @@ function BasicView(element, calendar, viewName) {
|
||||
html +=
|
||||
"<td class='fc-week-number " + contentClass + "'>" +
|
||||
"<div>" +
|
||||
htmlEscape(formatDate(date, weekNumberFormat)) +
|
||||
htmlEscape(calculateWeekNumber(date)) +
|
||||
"</div>" +
|
||||
"</td>";
|
||||
}
|
||||
@@ -243,21 +233,21 @@ function BasicView(element, calendar, viewName) {
|
||||
}
|
||||
|
||||
|
||||
function buildCellHTML(date) {
|
||||
var contentClass = tm + "-widget-content";
|
||||
var month = t.start.getMonth();
|
||||
var today = clearTime(new Date());
|
||||
function buildCellHTML(date) { // date assumed to have stripped time
|
||||
var month = t.intervalStart.month();
|
||||
var today = calendar.getNow().stripTime();
|
||||
var html = '';
|
||||
var contentClass = tm + "-widget-content";
|
||||
var classNames = [
|
||||
'fc-day',
|
||||
'fc-' + dayIDs[date.getDay()],
|
||||
'fc-' + dayIDs[date.day()],
|
||||
contentClass
|
||||
];
|
||||
|
||||
if (date.getMonth() != month) {
|
||||
if (date.month() != month) {
|
||||
classNames.push('fc-other-month');
|
||||
}
|
||||
if (+date == +today) {
|
||||
if (date.isSame(today, 'day')) {
|
||||
classNames.push(
|
||||
'fc-today',
|
||||
tm + '-state-highlight'
|
||||
@@ -273,12 +263,12 @@ function BasicView(element, calendar, viewName) {
|
||||
html +=
|
||||
"<td" +
|
||||
" class='" + classNames.join(' ') + "'" +
|
||||
" data-date='" + formatDate(date, 'yyyy-MM-dd') + "'" +
|
||||
" data-date='" + date.format() + "'" +
|
||||
">" +
|
||||
"<div>";
|
||||
|
||||
if (showNumbers) {
|
||||
html += "<div class='fc-day-number'>" + date.getDate() + "</div>";
|
||||
html += "<div class='fc-day-number'>" + date.date() + "</div>";
|
||||
}
|
||||
|
||||
html +=
|
||||
@@ -353,8 +343,8 @@ function BasicView(element, calendar, viewName) {
|
||||
|
||||
function dayClick(ev) {
|
||||
if (!opt('selectable')) { // if selectable, SelectionManager will worry about dayClick
|
||||
var date = parseISO8601($(this).data('date'));
|
||||
trigger('dayClick', this, date, true, ev);
|
||||
var date = calendar.moment($(this).data('date'));
|
||||
trigger('dayClick', this, date, ev);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -398,13 +388,13 @@ function BasicView(element, calendar, viewName) {
|
||||
-----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
function defaultSelectionEnd(startDate, allDay) {
|
||||
return cloneDate(startDate);
|
||||
function defaultSelectionEnd(start) {
|
||||
return start.clone().stripTime().add('days', 1);
|
||||
}
|
||||
|
||||
|
||||
function renderSelection(startDate, endDate, allDay) {
|
||||
renderDayOverlay(startDate, addDays(cloneDate(endDate), 1), true); // rebuild every time???
|
||||
function renderSelection(start, end) { // end is exclusive
|
||||
renderDayOverlay(start, end, true); // true = rebuild every time
|
||||
}
|
||||
|
||||
|
||||
@@ -413,10 +403,10 @@ function BasicView(element, calendar, viewName) {
|
||||
}
|
||||
|
||||
|
||||
function reportDayClick(date, allDay, ev) {
|
||||
function reportDayClick(date, ev) {
|
||||
var cell = dateToCell(date);
|
||||
var _element = bodyCells[cell.row*colCnt + cell.col];
|
||||
trigger('dayClick', _element, date, allDay, ev);
|
||||
trigger('dayClick', _element, date, ev);
|
||||
}
|
||||
|
||||
|
||||
@@ -429,7 +419,9 @@ function BasicView(element, calendar, viewName) {
|
||||
hoverListener.start(function(cell) {
|
||||
clearOverlays();
|
||||
if (cell) {
|
||||
renderCellOverlay(cell.row, cell.col, cell.row, cell.col);
|
||||
var d1 = cellToDate(cell);
|
||||
var d2 = d1.clone().add(calendar.defaultAllDayEventDuration);
|
||||
renderDayOverlay(d1, d2);
|
||||
}
|
||||
}, ev);
|
||||
}
|
||||
@@ -439,8 +431,13 @@ function BasicView(element, calendar, viewName) {
|
||||
var cell = hoverListener.stop();
|
||||
clearOverlays();
|
||||
if (cell) {
|
||||
var d = cellToDate(cell);
|
||||
trigger('drop', _dragElement, d, true, ev, ui);
|
||||
trigger(
|
||||
'drop',
|
||||
_dragElement,
|
||||
cellToDate(cell),
|
||||
ev,
|
||||
ui
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -450,11 +447,6 @@ function BasicView(element, calendar, viewName) {
|
||||
--------------------------------------------------------*/
|
||||
|
||||
|
||||
function defaultEventEnd(event) {
|
||||
return cloneDate(event.start);
|
||||
}
|
||||
|
||||
|
||||
coordinateGrid = new CoordinateGrid(function(rows, cols) {
|
||||
var e, n, p;
|
||||
headCells.each(function(i, _e) {
|
||||
|
||||
+16
-28
@@ -1,52 +1,40 @@
|
||||
|
||||
fcViews.basicWeek = BasicWeekView;
|
||||
|
||||
function BasicWeekView(element, calendar) {
|
||||
function BasicWeekView(element, calendar) { // TODO: do a WeekView mixin
|
||||
var t = this;
|
||||
|
||||
|
||||
// exports
|
||||
t.incrementDate = incrementDate;
|
||||
t.render = render;
|
||||
|
||||
|
||||
// imports
|
||||
BasicView.call(t, element, calendar, 'basicWeek');
|
||||
var opt = t.opt;
|
||||
var renderBasic = t.renderBasic;
|
||||
var skipHiddenDays = t.skipHiddenDays;
|
||||
var getCellsPerWeek = t.getCellsPerWeek;
|
||||
var formatDates = calendar.formatDates;
|
||||
|
||||
|
||||
function render(date, delta) {
|
||||
|
||||
if (delta) {
|
||||
addDays(date, delta * 7);
|
||||
}
|
||||
|
||||
var start = addDays(cloneDate(date), -((date.getDay() - opt('firstDay') + 7) % 7));
|
||||
var end = addDays(cloneDate(start), 7);
|
||||
function incrementDate(date, delta) {
|
||||
return date.clone().stripTime().add('weeks', delta).startOf('week');
|
||||
}
|
||||
|
||||
var visStart = cloneDate(start);
|
||||
skipHiddenDays(visStart);
|
||||
|
||||
var visEnd = cloneDate(end);
|
||||
skipHiddenDays(visEnd, -1, true);
|
||||
function render(date) {
|
||||
|
||||
var colCnt = getCellsPerWeek();
|
||||
t.intervalStart = date.clone().stripTime().startOf('week');
|
||||
t.intervalEnd = t.intervalStart.clone().add('weeks', 1);
|
||||
|
||||
t.start = start;
|
||||
t.end = end;
|
||||
t.visStart = visStart;
|
||||
t.visEnd = visEnd;
|
||||
t.start = t.skipHiddenDays(t.intervalStart);
|
||||
t.end = t.skipHiddenDays(t.intervalEnd, -1, true);
|
||||
|
||||
t.title = formatDates(
|
||||
visStart,
|
||||
addDays(cloneDate(visEnd), -1),
|
||||
opt('titleFormat')
|
||||
t.title = calendar.formatRange(
|
||||
t.start,
|
||||
t.end.clone().subtract(1), // make inclusive by subtracting 1 ms
|
||||
t.opt('titleFormat'),
|
||||
' \u2014 ' // emphasized dash
|
||||
);
|
||||
|
||||
renderBasic(1, colCnt, false);
|
||||
t.renderBasic(1, t.getCellsPerWeek(), false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
+18
-33
@@ -6,56 +6,41 @@ function MonthView(element, calendar) {
|
||||
|
||||
|
||||
// exports
|
||||
t.incrementDate = incrementDate;
|
||||
t.render = render;
|
||||
|
||||
|
||||
// imports
|
||||
BasicView.call(t, element, calendar, 'month');
|
||||
var opt = t.opt;
|
||||
var renderBasic = t.renderBasic;
|
||||
var skipHiddenDays = t.skipHiddenDays;
|
||||
var getCellsPerWeek = t.getCellsPerWeek;
|
||||
var formatDate = calendar.formatDate;
|
||||
|
||||
|
||||
function render(date, delta) {
|
||||
|
||||
if (delta) {
|
||||
addMonths(date, delta);
|
||||
date.setDate(1);
|
||||
}
|
||||
|
||||
var firstDay = opt('firstDay');
|
||||
function incrementDate(date, delta) {
|
||||
return date.clone().stripTime().add('months', delta).startOf('month');
|
||||
}
|
||||
|
||||
var start = cloneDate(date, true);
|
||||
start.setDate(1);
|
||||
|
||||
var end = addMonths(cloneDate(start), 1);
|
||||
function render(date) {
|
||||
|
||||
var visStart = cloneDate(start);
|
||||
addDays(visStart, -((visStart.getDay() - firstDay + 7) % 7));
|
||||
skipHiddenDays(visStart);
|
||||
t.intervalStart = date.clone().stripTime().startOf('month');
|
||||
t.intervalEnd = t.intervalStart.clone().add('months', 1);
|
||||
|
||||
var visEnd = cloneDate(end);
|
||||
addDays(visEnd, (7 - visEnd.getDay() + firstDay) % 7);
|
||||
skipHiddenDays(visEnd, -1, true);
|
||||
t.start = t.intervalStart.clone().startOf('week');
|
||||
t.start = t.skipHiddenDays(t.start);
|
||||
|
||||
var colCnt = getCellsPerWeek();
|
||||
var rowCnt = Math.round(dayDiff(visEnd, visStart) / 7); // should be no need for Math.round
|
||||
t.end = t.intervalEnd.clone().add('days', (7 - t.intervalEnd.weekday()) % 7);
|
||||
t.end = t.skipHiddenDays(t.end, -1, true);
|
||||
|
||||
if (opt('weekMode') == 'fixed') {
|
||||
addDays(visEnd, (6 - rowCnt) * 7); // add weeks to make up for it
|
||||
var rowCnt = Math.ceil( // need to ceil in case there are hidden days
|
||||
t.end.diff(t.start, 'weeks', true) // returnfloat=true
|
||||
);
|
||||
if (t.opt('weekMode') == 'fixed') {
|
||||
t.end.add('weeks', 6 - rowCnt);
|
||||
rowCnt = 6;
|
||||
}
|
||||
|
||||
t.title = formatDate(start, opt('titleFormat'));
|
||||
t.title = calendar.formatDate(t.intervalStart, t.opt('titleFormat'));
|
||||
|
||||
t.start = start;
|
||||
t.end = end;
|
||||
t.visStart = visStart;
|
||||
t.visEnd = visEnd;
|
||||
|
||||
renderBasic(rowCnt, colCnt, true);
|
||||
t.renderBasic(rowCnt, t.getCellsPerWeek(), true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user