123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- /*
- * Create the splitter, set the viewport size, and set the position of the scrollbar to the first item.
- */
- (function($){
- Drupal.behaviors.calendarSetScroll = {
- attach: 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($);
- }
- };
- })(jQuery);
- // 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);
- }
|