diff options
| -rw-r--r-- | models/model.php | 17 | ||||
| -rw-r--r-- | start.php | 2 | ||||
| -rw-r--r-- | views/default/event_calendar/css.php | 4 | ||||
| -rw-r--r-- | views/default/event_calendar/full_calendar_view.php | 39 | 
4 files changed, 55 insertions, 7 deletions
| diff --git a/models/model.php b/models/model.php index b53471a44..d25c8dca3 100644 --- a/models/model.php +++ b/models/model.php @@ -1533,7 +1533,7 @@ function event_calendar_get_page_content_list($page_type,$container_guid,$start_  	return elgg_view_page($title,$body);  } -function event_calendar_get_page_content_edit($page_type,$guid) { +function event_calendar_get_page_content_edit($page_type,$guid,$start_date='') {  	elgg_load_js('elgg.event_calendar');  	$vars = array();  	$vars['id'] = 'event-calendar-edit'; @@ -1575,7 +1575,7 @@ function event_calendar_get_page_content_edit($page_type,$guid) {  				$body_vars['group_guid'] = $guid;  				elgg_push_breadcrumb(elgg_echo('event_calendar:group_breadcrumb'), 'event_calendar/group/'.$guid);  				elgg_push_breadcrumb(elgg_echo('event_calendar:add_event_title')); -				$body_vars['form_data'] = event_calendar_prepare_edit_form_vars(NULL,$page_type); +				$body_vars['form_data'] = event_calendar_prepare_edit_form_vars(NULL,$page_type,$start_date);  				$content = elgg_view_form('event_calendar/edit', $vars, $body_vars);  			} else {  				$content = elgg_echo('event_calendar:no_group'); @@ -1585,7 +1585,7 @@ function event_calendar_get_page_content_edit($page_type,$guid) {  			elgg_push_breadcrumb(elgg_echo('event_calendar:show_events_title'),'event_calendar/list');  			elgg_push_breadcrumb(elgg_echo('event_calendar:add_event_title')); -			$body_vars['form_data'] = event_calendar_prepare_edit_form_vars(NULL,$page_type); +			$body_vars['form_data'] = event_calendar_prepare_edit_form_vars(NULL,$page_type,$start_date);  			$content = elgg_view_form('event_calendar/edit', $vars, $body_vars);  		} @@ -1604,20 +1604,25 @@ function event_calendar_get_page_content_edit($page_type,$guid) {   * @param ElggObject       $event   * @return array   */ -function event_calendar_prepare_edit_form_vars($event = NULL, $page_type = '') { +function event_calendar_prepare_edit_form_vars($event = NULL, $page_type = '', $start_date = '') {  	// input names => defaults  	$now = time();  	$iso_date = date('Y-m-d',$now);  	$now_midnight = strtotime($iso_date); +	if ($start_date) { +		$start_date = strtotime($start_date); +	} else { +		$start_date = $now+60*60; +	}  	$start_time = floor(($now-$now_midnight)/60) + 60;  	$start_time = floor($start_time/5)*5;  	$values = array(  		'title' => NULL,  		'description' => NULL,  		'venue' => NULL, -		'start_date' => $now+60*60, -		'end_date' => $now+2*60*60, +		'start_date' => $start_date, +		'end_date' => $start_date+60*60,  		'start_time' => $start_time,  		'end_time' => $start_time + 60,  		'spots' => NULL, @@ -202,7 +202,7 @@ function event_calendar_page_handler($page) {  				gatekeeper();  				$group_guid = 0;  			} -			echo event_calendar_get_page_content_edit($page_type,$group_guid); +			echo event_calendar_get_page_content_edit($page_type,$group_guid,$page[2]);  			break;  		case 'edit':  			gatekeeper(); diff --git a/views/default/event_calendar/css.php b/views/default/event_calendar/css.php index 9461a7fe9..b1e17e4df 100644 --- a/views/default/event_calendar/css.php +++ b/views/default/event_calendar/css.php @@ -275,3 +275,7 @@ li.event-calendar-filter-menu-show-only {  	clear: both;  	margin-bottom: 5px;  } + +.event-calendar-date-selected { +	background-color: #DDDDFF; +} diff --git a/views/default/event_calendar/full_calendar_view.php b/views/default/event_calendar/full_calendar_view.php index d7b6d97a2..d86a3ac27 100644 --- a/views/default/event_calendar/full_calendar_view.php +++ b/views/default/event_calendar/full_calendar_view.php @@ -15,6 +15,28 @@ handleEventClick = function(event) {      }  }; +handleDayClick = function(date,allDay,jsEvent,view) { +	var iso = getISODate(date); +	var link = $('.elgg-menu-item-event-calendar-0add').find('a').attr('href'); +	var ss = link.split('/'); +	var link = $('.elgg-menu-item-event-calendar-0add').find('a').attr('href'); +	var ss = link.split('/'); +	var last_ss = ss[ss.length-1]; +	var group_guid; +	if (last_ss == 'add') { +		group_guid = 0; +	} else if (last_ss.split('-').length == 3) { +		group_guid = ss[ss.length-2]; +	} else { +		group_guid = last_ss; +	} +	var url = elgg.get_site_url(); +	$('.elgg-menu-item-event-calendar-0add').find('a').attr('href',url+'event_calendar/add/'+group_guid+'/'+iso); +	$('.elgg-menu-item-event-calendar-1schedule').find('a').attr('href',url+'event_calendar/schedule/'+group_guid+'/'+iso); +	$('.fc-widget-content').removeClass('event-calendar-date-selected'); +	$(this).addClass('event-calendar-date-selected'); +} +  handleEventDrop = function(event,dayDelta,minuteDelta,allDay,revertFunc) {      if (!confirm("<?php echo elgg_echo('event_calendar:are_you_sure'); ?>")) { @@ -54,6 +76,22 @@ handleGetEvents = function(start, end, callback) {  			callback(events);  		}  	}); +	// reset date links and classes +	$('.fc-widget-content').removeClass('event-calendar-date-selected'); +	var link = $('.elgg-menu-item-event-calendar-0add').find('a').attr('href'); +	var ss = link.split('/'); +	var last_ss = ss[ss.length-1]; +	var group_guid; +	if (last_ss == 'add') { +		group_guid = 0; +	} else if (last_ss.split('-').length == 3) { +		group_guid = ss[ss.length-2]; +	} else { +		group_guid = last_ss; +	} +	var url = elgg.get_site_url(); +	$('.elgg-menu-item-event-calendar-0add').find('a').attr('href',url+'event_calendar/add/'+group_guid); +	$('.elgg-menu-item-event-calendar-1schedule').find('a').attr('href',url+'event_calendar/schedule/'+group_guid);  }  $(document).ready(function() {	 @@ -69,6 +107,7 @@ $(document).ready(function() {  		slotMinutes: 15,  		eventDrop: handleEventDrop,  		eventClick: handleEventClick, +		dayClick: handleDayClick,  		events: handleGetEvents  	});  }); | 
