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 }); }); |