New module 'Calendar'
This commit is contained in:
parent
280a1af4fe
commit
f697b66461
99 changed files with 13284 additions and 0 deletions
|
@ -0,0 +1,87 @@
|
|||
// $Id: calendar_overlap.js,v 1.1.2.1 2010/11/28 23:31:28 karens Exp $
|
||||
/*
|
||||
* Create the splitter, set the viewport size, and set the position of the scrollbar to the first item.
|
||||
*/
|
||||
Drupal.behaviors.calendarSetScroll = function (context) {
|
||||
|
||||
// Make multi-day resizable - stolen/borrowed from textarea.js
|
||||
$('.header-body-divider:not(.header-body-divider-processed)').each(function() {
|
||||
var divider = $(this).addClass('header-body-divider-processed');
|
||||
var start_y = divider.offset().top;
|
||||
|
||||
// Add the grippie icon
|
||||
$(this).prepend('<div class="grippie"></div>').mousedown(startDrag);
|
||||
|
||||
function startDrag(e) {
|
||||
start_y = divider.offset().top;
|
||||
$(document).mousemove(performDrag).mouseup(endDrag);
|
||||
return false;
|
||||
}
|
||||
|
||||
function performDrag(e) {
|
||||
var offset = e.pageY - start_y;
|
||||
var mwc = $('#multi-day-container');
|
||||
var sdc = $('#single-day-container');
|
||||
var mwc_height = mwc.height();
|
||||
var sdc_height = sdc.height();
|
||||
var max_height = mwc_height + sdc_height;
|
||||
mwc.height(Math.min(max_height,Math.max(0,mwc_height + offset)));
|
||||
sdc.height(Math.min(max_height,Math.max(0,sdc_height - offset)));
|
||||
start_y = divider.offset().top;
|
||||
return false;
|
||||
}
|
||||
|
||||
function endDrag(e) {
|
||||
$(document).unbind("mousemove", performDrag).unbind("mouseup", endDrag);
|
||||
}
|
||||
});
|
||||
|
||||
$('.single-day-footer:not(.single-day-footer-processed)').each(function() {
|
||||
var divider = $(this).addClass('single-day-footer-processed');
|
||||
var start_y = divider.offset().top;
|
||||
|
||||
// Add the grippie icon
|
||||
$(this).prepend('<div class="grippie"></div>').mousedown(startDrag);
|
||||
|
||||
function startDrag(e) {
|
||||
start_y = divider.offset().top;
|
||||
$(document).mousemove(performDrag).mouseup(endDrag);
|
||||
return false;
|
||||
}
|
||||
|
||||
function performDrag(e) {
|
||||
var offset = e.pageY - start_y;
|
||||
var sdc = $('#single-day-container');
|
||||
sdc.height(Math.max(0,sdc.height() + offset));
|
||||
start_y = divider.offset().top;
|
||||
return false;
|
||||
}
|
||||
|
||||
function endDrag(e) {
|
||||
$(document).unbind("mousemove", performDrag).unbind("mouseup", endDrag);
|
||||
}
|
||||
});
|
||||
|
||||
// Size the window
|
||||
calendar_resizeViewport();
|
||||
}
|
||||
|
||||
// Scroll the viewport to the first item
|
||||
function calendar_scrollToFirst() {
|
||||
if ($('div.first_item').size() > 0 ) {
|
||||
var y = $('div.first_item').offset().top - $('#single-day-container').offset().top ;
|
||||
$('#single-day-container').scrollTop(y);
|
||||
}
|
||||
}
|
||||
|
||||
// Size the single day view
|
||||
function calendar_resizeViewport() {
|
||||
|
||||
// Size of the browser window
|
||||
var viewportHeight = window.innerHeight ? window.innerHeight : $(window).height();
|
||||
var top = $('#single-day-container').offset().top;
|
||||
|
||||
// Give it a 20 pixel margin at the bottom
|
||||
$('#single-day-container').height(viewportHeight - top - 20);
|
||||
}
|
||||
|
Reference in a new issue