From 0b25adcd921149b50845647980284e8ab66d8fed Mon Sep 17 00:00:00 2001 From: Kevin Jardine Date: Tue, 3 Apr 2012 12:31:42 +0200 Subject: major changes to add new features, including a full calendar and repeating events --- views/default/event_calendar/container.php | 24 ++ views/default/event_calendar/css.php | 98 +++++- views/default/event_calendar/datetime_edit.php | 45 +++ .../default/event_calendar/full_calendar_view.php | 64 ++-- .../default/event_calendar/repeat_form_element.php | 43 +++ views/default/event_calendar/show_events.php | 12 +- views/default/forms/event_calendar/edit.php | 388 +++++++++++++-------- views/default/input/timepicker.php | 38 +- views/default/js/event_calendar/event_calendar.php | 58 +++ views/default/plugins/event_calendar/settings.php | 44 +++ 10 files changed, 613 insertions(+), 201 deletions(-) create mode 100644 views/default/event_calendar/container.php create mode 100644 views/default/event_calendar/datetime_edit.php create mode 100644 views/default/event_calendar/repeat_form_element.php (limited to 'views/default') diff --git a/views/default/event_calendar/container.php b/views/default/event_calendar/container.php new file mode 100644 index 000000000..fdd7da2c6 --- /dev/null +++ b/views/default/event_calendar/container.php @@ -0,0 +1,24 @@ + elgg_echo('event_calendar:site_calendar')); +$user = elgg_get_logged_in_user_entity(); +$groups = $user->getGroups('',0,0); +foreach ($groups as $group) { + if (event_calendar_activated_for_group($group)) { + if ($admin || !$group_calendar || $group_calendar == 'members') { + if ($group->canWriteToContainer($user->guid)) { + $containers[$group->guid] = $group->name; + } + } else if ($group->canEdit()) { + $containers[$group->guid] = $group->name; + } + } +} +if ($vars['container_guid']) { + $value = $vars['container_guid']; +} else { + $value = 0; +} +echo elgg_view('input/dropdown',array('name'=>'group_guid', 'value'=>$vars['container_guid'],'options_values'=>$containers)); diff --git a/views/default/event_calendar/css.php b/views/default/event_calendar/css.php index a2437e065..4d68f500f 100644 --- a/views/default/event_calendar/css.php +++ b/views/default/event_calendar/css.php @@ -171,8 +171,102 @@ li.event-calendar-filter-menu-show-only { margin-right: 10px; } -.event-calendar-date-time-setter label { +.event-calendar-medium-text { + width: 500px !important; +} + +.event-calendar-edit-form-block label { float: left; - width: 50px; + width: 90px; + margin-top: 5px; +} + +.event-calendar-long-text { + width: 500px !important; +} + +.event-calendar-edit-form-other-block .mceLayout { + width: 500px !important; +} + +.event-calendar-edit-form { + background-color: #FFFFFF; +} + +.event-calendar-edit-form-block { + width: 90%; + background-color: #DDDDDD; + border-width:1px; + border-style:solid; + border-color:#bfbfbf; + padding: 5px; + margin-bottom: 10px; + clear: both; +} + +.event-calendar-repeating-wrapper { + padding: 0; margin-top: 5px; +} +.event-calendar-repeating-unselected { + font-size: 16px; + font-weight: bold; + color: #DDDDDD; + background-color: #AAAAAA; + border: 1px solid #444444; + padding: 5px; + width: 25px; + text-align: center; + display: inline-block; + margin: 0; +} + +.event-calendar-repeating-unselected:hover { + text-decoration: none; +} + +.event-calendar-repeating-selected { + font-size: 16px; + font-weight: bold; + color: #000000; + background-color: #FFFFFF; + border: 1px solid #000000; + padding: 5px; + width: 25px; + text-align: center; + display: inline-block; + margin: 0; +} + +.event-calendar-repeating-selected:hover { + text-decoration: none; + color: #CCCCCC; +} + +.event-calendar-edit-form-schedule-block ul.elgg-vertical li { + display: block !important; + clear: both; +} + +.event-calendar-edit-form-block ul.elgg-vertical li label { + font-weight: normal; + width: 500px; +} + +.event-calendar-edit-form-block h2 { + font-size: 18px; + color: #000000; +} + +.event-calendar-edit-date-wrapper { + clear: both; + margin-left: 20px; +} + +.event-calendar-edit-reminder-wrapper { + margin-top: 10px; +} + +.event-calendar-description { + display: none; } \ No newline at end of file diff --git a/views/default/event_calendar/datetime_edit.php b/views/default/event_calendar/datetime_edit.php new file mode 100644 index 000000000..aa3a8f2de --- /dev/null +++ b/views/default/event_calendar/datetime_edit.php @@ -0,0 +1,45 @@ +'; + } + $body .= elgg_view("event_calendar/input/date_local",array( + 'timestamp'=>TRUE, + 'autocomplete'=>'off', + 'class'=>'event-calendar-compressed-date', + 'name' => 'start_date', + 'value'=>$vars['start_date'])); + $body .= elgg_view("input/timepicker",array('name' => 'start_time','value'=>$vars['start_time'])); + if ($event_calendar_hide_end != 'yes') { + $body .= '

'; + $body .= elgg_view("event_calendar/input/date_local",array( + 'timestamp'=>TRUE, + 'autocomplete'=>'off', + 'class'=>'event-calendar-compressed-date', + 'name' => 'end_date', + 'value'=>$vars['end_date'], + )); + $body .= elgg_view("input/timepicker",array('name' => 'end_time','value'=>$vars['end_time'])); + } + $body .= '

'; +} else { + + $body .= '

'; + $body .= '

'.$prefix['start_date'].elgg_echo('event_calendar:start_date_description').'

'; + + if ($event_calendar_hide_end != 'yes') { + $body .= '

'; + $body .= '

'.$prefix['end_date'].elgg_echo('event_calendar:end_date_description').'

'; + } +} + +echo $body; \ No newline at end of file diff --git a/views/default/event_calendar/full_calendar_view.php b/views/default/event_calendar/full_calendar_view.php index 58aefe741..2c97eb159 100644 --- a/views/default/event_calendar/full_calendar_view.php +++ b/views/default/event_calendar/full_calendar_view.php @@ -1,31 +1,6 @@ $e->guid, - //'title' => ''.$e->title.'', - 'title' => $e->title, - 'url' => $e->getURL(), - 'start_date' => $e->start_date, - 'end_date' => $e->real_end_time, - ); - if ($times_supported) { - $event_item['allDay'] = FALSE; - } else { - $event_item['allDay'] = TRUE; - } - - $event_array[] = $event_item; -} - -$json_events_string = json_encode($event_array); - // TODO: is there an easy way to avoid embedding JS? ?> diff --git a/views/default/event_calendar/repeat_form_element.php b/views/default/event_calendar/repeat_form_element.php new file mode 100644 index 000000000..45fdabfa1 --- /dev/null +++ b/views/default/event_calendar/repeat_form_element.php @@ -0,0 +1,43 @@ +'repeats','value'=>'yes','checked'=>'checked')); +} else { + echo elgg_view('input/checkbox',array('name'=>'repeats','value'=>'yes')); +} +echo elgg_echo('event_calendar:repeat_interval_label').' '; +echo elgg_view('input/dropdown',array('name'=>'repeat_interval','value'=>$fd['repeat_interval'],'options_values'=>array('1'=>'1','2'=>'2','3'=>'3','4'=>'4','5'=>'5','6'=>'6','7'=>'7','8'=>'8'))); +echo ' '.elgg_echo('event_calendar:repeat_weeks'); +echo ' '.elgg_echo('event_calendar:on_these_days'); +?> +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + diff --git a/views/default/event_calendar/show_events.php b/views/default/event_calendar/show_events.php index 63d722247..3a484e756 100644 --- a/views/default/event_calendar/show_events.php +++ b/views/default/event_calendar/show_events.php @@ -10,16 +10,21 @@ * */ +elgg_load_library('elgg:event_calendar'); + $listing_format = $vars['listing_format']; if ($vars['events']) { if ($listing_format == 'agenda') { + $vars['events'] = event_calendar_flatten_event_structure($vars['events']); $event_list = elgg_view('event_calendar/agenda_view',$vars); } else if ($listing_format == 'paged') { + $vars['events'] = event_calendar_flatten_event_structure($vars['events']); $event_list = elgg_view('event_calendar/paged_view',$vars); } else if ($listing_format == 'full') { $event_list = elgg_view('event_calendar/full_calendar_view',$vars); } else { + $vars['events'] = event_calendar_flatten_event_structure($vars['events']); $options = array( 'list_class' => 'elgg-list-entity', 'full_view' => FALSE, @@ -32,7 +37,12 @@ if ($vars['events']) { $event_list = elgg_view_entity_list($vars['events'], $options); } } else { - $event_list = '

'.elgg_echo('event_calendar:no_events_found').'

'; + if ($listing_format == 'full') { + // show the empty calendar + $event_list = elgg_view('event_calendar/full_calendar_view',$vars); + } else { + $event_list = '

'.elgg_echo('event_calendar:no_events_found').'

'; + } } if ($listing_format == 'paged' || $listing_format == 'full') { echo $event_list; diff --git a/views/default/forms/event_calendar/edit.php b/views/default/forms/event_calendar/edit.php index 3526627a7..713fb9abc 100644 --- a/views/default/forms/event_calendar/edit.php +++ b/views/default/forms/event_calendar/edit.php @@ -3,20 +3,29 @@ $event = $vars['event']; $fd = $vars['form_data']; $personal_manage_options = array( - elgg_echo('event_calendar:personal_manage:open') => 'open', - elgg_echo('event_calendar:personal_manage:closed') => 'closed', - elgg_echo('event_calendar:personal_manage:private') => 'private', + elgg_echo('event_calendar:personal_manage:by_event:open') => 'open', + elgg_echo('event_calendar:personal_manage:by_event:closed') => 'closed', + elgg_echo('event_calendar:personal_manage:by_event:private') => 'private', ); -$event_calendar_times = elgg_get_plugin_setting('times', 'event_calendar'); +$schedule_options = array( + elgg_echo('event_calendar:schedule_type:poll')=>'poll', + elgg_echo('event_calendar:schedule_type:fixed')=>'fixed', +); + +$event_calendar_fewer_fields = elgg_get_plugin_setting('fewer_fields', 'event_calendar'); +$event_calendar_repeating_events = elgg_get_plugin_setting('repeating_events', 'event_calendar'); + $event_calendar_region_display = elgg_get_plugin_setting('region_display', 'event_calendar'); $event_calendar_type_display = elgg_get_plugin_setting('type_display', 'event_calendar'); $event_calendar_spots_display = elgg_get_plugin_setting('spots_display', 'event_calendar'); //$event_calendar_add_users = elgg_get_plugin_setting('add_users', 'event_calendar'); $event_calendar_hide_access = elgg_get_plugin_setting('hide_access', 'event_calendar'); -$event_calendar_hide_end = elgg_get_plugin_setting('hide_end', 'event_calendar'); + $event_calendar_more_required = elgg_get_plugin_setting('more_required', 'event_calendar'); $event_calendar_personal_manage = elgg_get_plugin_setting('personal_manage', 'event_calendar'); +$event_calendar_repeated_events = elgg_get_plugin_setting('repeated_events', 'event_calendar'); +$event_calendar_reminders = elgg_get_plugin_setting('reminders', 'event_calendar'); if ($event_calendar_more_required == 'yes') { $required_fields = array('title','venue','start_date','start_time', @@ -39,7 +48,7 @@ foreach ($all_fields as $fn) { } if ($event) { - $title = $event->title; + /*$title = $event->title; $brief_description = $event->description; $venue = $event->venue; // this is a form redisplay, so take the values as submitted @@ -65,7 +74,15 @@ if ($event) { $fees = $event->fees; $contact = $event->contact; $organiser = $event->organiser; - $event_tags = $event->event_tags; + if ($event->tags) { + $event_tags = $event->tags; + } else { + // old way + $event_tags = $event->event_tags; + } + $reminder_number = $event->reminder_number; + $reminder_interval = $event->reminder_interval; + $long_description = $event->long_description; $access = $event->access_id; if ($event_calendar_times != 'no') { @@ -77,91 +94,144 @@ if ($event) { if (!$personal_manage) { $personal_manage = 'open'; } - } + }*/ $event_action = 'manage_event'; $event_guid = $event->guid; -} else { - $title = $fd['title']; - $brief_description = $fd['description']; - $venue = $fd['venue']; - $start_date = $fd['start_date']; - $end_date = $fd['end_date']; - $fees = $fd['fees']; - if ($event_calendar_spots_display) { - $spots = $fd['spots']; - } - if ($event_calendar_region_display) { - $region = $fd['region']; - } - if ($event_calendar_type_display) { - $event_type = $fd['event_type']; - } - $contact = $fd['contact']; - $organiser = $fd['organiser']; - $event_tags = $fd['event_tags']; - $long_description = $fd['long_description']; - $access = $fd['access_id']; - if ($event_calendar_times != 'no') { - $start_time = $fd['start_time']; - $end_time = $fd['end_time']; - } - if ($event_calendar_personal_manage == 'by_event') { - $personal_manage = $fd['personal_manage']; - } +} else { $event_action = 'add_event'; $event_guid = 0; } -$body = ''; + +$title = $fd['title']; +$brief_description = $fd['description']; +$venue = $fd['venue']; +$start_date = $fd['start_date']; +$end_date = $fd['end_date']; +$fees = $fd['fees']; +if ($event_calendar_spots_display) { + $spots = $fd['spots']; +} +if ($event_calendar_region_display) { + $region = $fd['region']; +} +if ($event_calendar_type_display) { + $event_type = $fd['event_type']; +} +$contact = $fd['contact']; +$organiser = $fd['organiser']; +$event_tags = $fd['tags']; +$all_day = $fd['all_day']; +$send_reminder = $fd['send_reminder']; +$reminder_number = $fd['reminder_number']; +$reminder_interval = $fd['reminder_interval']; +$schedule_type = $fd['schedule_type']; +$long_description = $fd['long_description']; +$access = $fd['access_id']; +if ($event_calendar_times != 'no') { + $start_time = $fd['start_time']; + $end_time = $fd['end_time']; +} +if ($event_calendar_personal_manage == 'by_event') { + $personal_manage = $fd['personal_manage']; +} + +$body = '
'; $body .= elgg_view('input/hidden',array('name'=>'event_action', 'value'=>$event_action)); $body .= elgg_view('input/hidden',array('name'=>'event_guid', 'value'=>$event_guid)); $body .= elgg_view('input/hidden',array('name'=>'group_guid', 'value'=>$vars['group_guid'])); -$body .= '

'; -$body .= '

'.$prefix['title'].elgg_echo('event_calendar:title_description').'

'; +$body .= '
'; -$body .= '

'; -$body .= '

'.$prefix['venue'].elgg_echo('event_calendar:venue_description').'

'; +$body .= '

'; +$body .= elgg_view("input/text",array('name' => 'title','class'=>'event-calendar-medium-text','value'=>$title)); +$body .= '

'; +$body .= '

'.$prefix['title'].elgg_echo('event_calendar:title_description').'

'; -if ($event_calendar_times != 'no') { - $body .= '
'; - if ($event_calendar_hide_end != 'yes') { - $body .= '

'; - } - $body .= elgg_view("event_calendar/input/date_local",array('timestamp'=>TRUE, 'autocomplete'=>'off','class'=>'event-calendar-compressed-date','name' => 'start_date','value'=>$start_date)); - $body .= elgg_view("input/timepicker",array('name' => 'start_time','value'=>$start_time)); - if ($event_calendar_hide_end != 'yes') { - $body .= '

'; - $body .= elgg_view("event_calendar/input/date_local",array('timestamp'=>TRUE,'autocomplete'=>'off','class'=>'event-calendar-compressed-date','name' => 'end_date','value'=>$end_date)); - $body .= elgg_view("input/timepicker",array('name' => 'end_time','value'=>$end_time)); - } +$body .= '

'; +$body .= elgg_view("input/text",array('name' => 'venue','class'=>'event-calendar-medium-text','value'=>$venue)); +$body .= '

'; +$body .= '

'.$prefix['venue'].elgg_echo('event_calendar:venue_description').'

'; + +$body .= '

'; +$body .= elgg_view("input/text",array('name' => 'description','class'=>'event-calendar-medium-text','value'=>$brief_description)); +$body .= '

'; +$body .= '

'.$prefix['brief_description'].elgg_echo('event_calendar:brief_description_description').'

'; + +$body .= '

'; +$body .= elgg_view("input/tags",array('name' => 'tags','class'=>'event-calendar-medium-text','value'=>$event_tags)); +$body .= '

'; +$body .= '

'.$prefix['event_tags'].elgg_echo('event_calendar:event_tags_description').'

'; + +$body .= '

'; +$body .= elgg_view('event_calendar/container',array('container_guid'=>$vars['container_guid'])); +$body .= '

'; +$body .= '

'.$prefix['calendar'].elgg_echo('event_calendar:calendar_description').'

'; + +if(elgg_plugin_exists('sched_conf')) { + $body .= '

'; + $body .= elgg_view('input/checkbox',array('name'=>'web_conference','value'=>$web_conference,'options_values'=>array('1'))); + $body .= elgg_echo('event_calendar:web_conference_label'); $body .= '

'; - $body .= '
'; -} else { +} - $body .= '

'; - $body .= '

'.$prefix['start_date'].elgg_echo('event_calendar:start_date_description').'

'; - - if ($event_calendar_hide_end != 'yes') { - $body .= '

'; - $body .= '

'.$prefix['end_date'].elgg_echo('event_calendar:end_date_description').'

'; +$body .= '
'; + +$body .= '
'; +$body .= '

'.elgg_echo('event_calendar:schedule:header').'

'; +if ($all_day) { + $body .= elgg_view('input/checkbox',array('name'=>'all_day','value'=>1,'checked'=>'checked')); +} else { + $body .= elgg_view('input/checkbox',array('name'=>'all_day','value'=>1)); +} +$body .= elgg_echo('event_calendar:all_day_label'); +if(elgg_plugin_exists('event_poll')) { + $body .= elgg_view('input/radio',array('name'=>'schedule_type','value'=>$schedule_type,'options'=>$schedule_options)); +} +$body .= '
'; +$body .= elgg_view('event_calendar/datetime_edit', + array( + 'start_date' => $start_date, + 'end_date' => $end_date, + 'start_time' => $start_time, + 'end_time' => $end_time, + 'prefix' => $prefix, +)); +if ($event_calendar_repeated_events == 'yes') { + $body .= elgg_view('event_calendar/repeat_form_element',$vars); +} +if ($event_calendar_reminders == 'yes') { + $body .= '
'; + if ($send_reminder) { + $body .= elgg_view('input/checkbox',array('name'=>'send_reminder','checked' => 'checked','value'=>1)); + } else { + $body .= elgg_view('input/checkbox',array('name'=>'send_reminder','value'=>1)); + } + $body .= elgg_echo('elgg_calendar:send_reminder_label'). ' '; + $numbers = array(); + for ($i=1;$i<60;$i++) { + $numbers[$i] = $i; } + $intervals = array( + 1 => elgg_echo('event_calendar:interval:minute'), + 60 => elgg_echo('event_calendar:interval:hour'), + 60*24 => elgg_echo('event_calendar:interval:day'), + ); + + $body .= elgg_view('input/dropdown',array('name'=>'reminder_number','options_values'=>$numbers,'value'=>$reminder_number)); + $body .= elgg_view('input/dropdown',array('name'=>'reminder_interval','options_values'=>$intervals,'value'=>$reminder_interval)); + $body .= elgg_echo('elgg_calendar:send_reminder_before'); + $body .= '
'; } if ($event_calendar_spots_display == 'yes') { $body .= '

'; - $body .= '

'.$prefix['spots'].elgg_echo('event_calendar:spots_description').'

'; + $body .= '

'.$prefix['spots'].elgg_echo('event_calendar:spots_description').'

'; } +$body .= '
'; +$body .= '
'; // the following feature has been superceded by the manage subscribers feature @@ -172,91 +242,17 @@ if ($event_calendar_spots_display == 'yes') { $body .= '

'.elgg_echo('event_calendar:add_user_description').'

'; }*/ -$body .= '

'; -$body .= '

'.$prefix['brief_description'].elgg_echo('event_calendar:brief_description_description').'

'; - -if ($event_calendar_region_display == 'yes') { - $region_list = trim(elgg_get_plugin_setting('region_list', 'event_calendar')); - $region_list_handles = elgg_get_plugin_setting('region_list_handles', 'event_calendar'); - // make sure that we are using Unix line endings - $region_list = str_replace("\r\n","\n",$region_list); - $region_list = str_replace("\r","\n",$region_list); - if ($region_list) { - $options = array(); - $options[] = '-'; - foreach(explode("\n",$region_list) as $region_item) { - $region_item = trim($region_item); - if ($region_list_handles == 'yes') { - $options[$region_item] = elgg_echo('event_calendar:region:'.$region_item); - } else { - $options[$region_item] = $region_item; - } - } - $body .= '

'; - $body .= '

'.$prefix['region'].elgg_echo('event_calendar:region_description').'

'; - } -} - -if ($event_calendar_type_display == 'yes') { - $type_list = trim(elgg_get_plugin_setting('type_list', 'event_calendar')); - $type_list_handles = elgg_get_plugin_setting('type_list_handles', 'event_calendar'); - // make sure that we are using Unix line endings - $type_list = str_replace("\r\n","\n",$type_list); - $type_list = str_replace("\r","\n",$type_list); - if ($type_list) { - $options = array(); - $options[] = '-'; - foreach(explode("\n",$type_list) as $type_item) { - $type_item = trim($type_item); - if ($type_list_handles == 'yes') { - $options[$type_item] = elgg_echo('event_calendar:type:'.$type_item); - } else { - $options[$type_item] = $type_item; - } - } - $body .= '

'; - $body .= '

'.$prefix['event_type'].elgg_echo('event_calendar:type_description').'

'; - } -} - -$body .= '

'; -$body .= '

'.$prefix['fees'].elgg_echo('event_calendar:fees_description').'

'; - -$body .= '

'; -$body .= '

'.$prefix['contact'].elgg_echo('event_calendar:contact_description').'

'; - -$body .= '

'; -$body .= '

'.$prefix['organiser'].elgg_echo('event_calendar:organiser_description').'

'; - if ($event_calendar_personal_manage == 'by_event') { - $body .= '

'; + $body .= '

'.elgg_echo('event_calendar:personal_manage:label').'

'; $body .= elgg_view("input/radio",array('name' => 'personal_manage','value'=>$personal_manage,'options'=>$personal_manage_options)); - $body .= '

'; - $body .= '

'.$prefix['personal_manage'].elgg_echo('event_calendar:personal_manage:description').'

'; + //$body .= '

'.$prefix['personal_manage'].elgg_echo('event_calendar:personal_manage:description').'

'; + $body .= '
'; + $body .= '
'; } -$body .= '

'; -$body .= '

'.$prefix['event_tags'].elgg_echo('event_calendar:event_tags_description').'

'; - -$body .= '

'; -$body .= '

'.$prefix['long_description'].elgg_echo('event_calendar:long_description_description').'

'; - +$body .= ''; + +if ($event_calendar_region_display == 'yes' || $event_calendar_type_display == 'yes' || $event_calendar_fewer_fields != 'yes') { + $body .= '
'; + + if ($event_calendar_region_display == 'yes') { + $region_list = trim(elgg_get_plugin_setting('region_list', 'event_calendar')); + $region_list_handles = elgg_get_plugin_setting('region_list_handles', 'event_calendar'); + // make sure that we are using Unix line endings + $region_list = str_replace("\r\n","\n",$region_list); + $region_list = str_replace("\r","\n",$region_list); + if ($region_list) { + $options = array(); + $options[] = '-'; + foreach(explode("\n",$region_list) as $region_item) { + $region_item = trim($region_item); + if ($region_list_handles == 'yes') { + $options[$region_item] = elgg_echo('event_calendar:region:'.$region_item); + } else { + $options[$region_item] = $region_item; + } + } + $body .= '

'; + $body .= elgg_view("input/dropdown",array('name' => 'region','value'=>$region,'options_values'=>$options)); + $body .= '

'; + $body .= '

'.$prefix['region'].elgg_echo('event_calendar:region_description').'

'; + } + } + + if ($event_calendar_type_display == 'yes') { + $type_list = trim(elgg_get_plugin_setting('type_list', 'event_calendar')); + $type_list_handles = elgg_get_plugin_setting('type_list_handles', 'event_calendar'); + // make sure that we are using Unix line endings + $type_list = str_replace("\r\n","\n",$type_list); + $type_list = str_replace("\r","\n",$type_list); + if ($type_list) { + $options = array(); + $options[] = '-'; + foreach(explode("\n",$type_list) as $type_item) { + $type_item = trim($type_item); + if ($type_list_handles == 'yes') { + $options[$type_item] = elgg_echo('event_calendar:type:'.$type_item); + } else { + $options[$type_item] = $type_item; + } + } + $body .= '

'; + $body .= elgg_view("input/dropdown",array('name' => 'event_type','value'=>$event_type,'options_values'=>$options)); + $body .= '

'; + $body .= '

'.$prefix['event_type'].elgg_echo('event_calendar:type_description').'

'; + } + } + + if ($event_calendar_fewer_fields != 'yes') { + + $body .= '

'; + $body .= elgg_view("input/text",array('name' => 'fees','class'=>'event-calendar-medium-text','value'=>$fees)); + $body .= '

'; + $body .= '

'.$prefix['fees'].elgg_echo('event_calendar:fees_description').'

'; + + $body .= '

'; + $body .= elgg_view("input/text",array('name' => 'contact','class'=>'event-calendar-medium-text','value'=>$contact)); + $body .= '

'; + $body .= '

'.$prefix['contact'].elgg_echo('event_calendar:contact_description').'

'; + + $body .= '

'; + $body .= elgg_view("input/text",array('name' => 'organiser','class'=>'event-calendar-medium-text','value'=>$organiser)); + $body .= '

'; + $body .= '

'.$prefix['organiser'].elgg_echo('event_calendar:organiser_description').'

'; + + $body .= '

'; + $body .= elgg_view("input/longtext",array('name' => 'long_description','class'=>'event-calendar-long-text','value'=>$long_description)); + $body .= '

'; + $body .= '

'.$prefix['long_description'].elgg_echo('event_calendar:long_description_description').'

'; + } + + $body .= '
'; } $body .= elgg_view('input/submit', array('name'=>'submit','value'=>elgg_echo('event_calendar:submit'))); +$body .= '
'; + echo $body; diff --git a/views/default/input/timepicker.php b/views/default/input/timepicker.php index d7df04699..ccbb88778 100644 --- a/views/default/input/timepicker.php +++ b/views/default/input/timepicker.php @@ -1,5 +1,5 @@ $vars['name'],'value'=>$time,'options_values'=>$dates)); diff --git a/views/default/js/event_calendar/event_calendar.php b/views/default/js/event_calendar/event_calendar.php index 8c4e735a6..b3ca2cc7b 100644 --- a/views/default/js/event_calendar/event_calendar.php +++ b/views/default/js/event_calendar/event_calendar.php @@ -6,6 +6,64 @@ elgg.event_calendar.init = function () { $('.event-calendar-personal-calendar-toggle').click(elgg.event_calendar.handleDisplayPagePersonalCalendarToggle); $('#event-calendar-region').change(elgg.event_calendar.handleRegionChange); $('#event-calendar-ical-link').click(elgg.event_calendar.handleIcalPopup); + $('.event-calendar-repeating-unselected').each(elgg.event_calendar.setRepeatingClass); + $('.event-calendar-repeating-unselected').live('click',elgg.event_calendar.handleRepeatingSelect); + $('.event-calendar-repeating-selected').live('click',elgg.event_calendar.handleRepeatingUnselect); + $('#event-calendar-edit').submit(elgg.event_calendar.handleEditFormSubmit); + + var all_day_field = $('[name="all_day"][type="checkbox"]'); + if (all_day_field.is(':checked')) { + $('[name="start_time"]').val(0); + $('[name="start_time"]').attr('disabled','disabled'); + $('[name="end_time"]').val(0); + $('[name="end_time"]').attr('disabled','disabled'); + } + all_day_field.change(elgg.event_calendar.handleAllDayField); +} + +elgg.event_calendar.handleAllDayField = function(e) { + var field = $('[name="start_time"]'); + if (field.attr('disabled') == 'disabled') { + field.removeAttr('disabled'); + } else { + field.attr('disabled','disabled'); + } + + field = $('[name="end_time"]'); + if (field.attr('disabled') == 'disabled') { + field.removeAttr('disabled'); + } else { + field.attr('disabled','disabled'); + } +} + +elgg.event_calendar.handleEditFormSubmit = function(e) { + if ($.trim($('[name="title"]').val()) == '') { + alert(elgg.echo('event_calendar:edit_form:error:missing_title')); + e.preventDefault(); + } +} + +elgg.event_calendar.setRepeatingClass = function(e) { + var id = $(this).attr('id'); + if ($("[name='"+id+"-value']").val() == 1) { + $(this).removeClass('event-calendar-repeating-unselected'); + $(this).addClass('event-calendar-repeating-selected'); + } +} + +elgg.event_calendar.handleRepeatingSelect = function(e) { + $(this).removeClass('event-calendar-repeating-unselected'); + $(this).addClass('event-calendar-repeating-selected'); + var id = $(this).attr('id'); + $("[name='"+id+"-value']").val(1); +} + +elgg.event_calendar.handleRepeatingUnselect = function(e) { + $(this).removeClass('event-calendar-repeating-selected'); + $(this).addClass('event-calendar-repeating-unselected'); + var id = $(this).attr('id'); + $("[name='"+id+"-value']").val(0); } elgg.event_calendar.handleRegionChange = function(e) { diff --git a/views/default/plugins/event_calendar/settings.php b/views/default/plugins/event_calendar/settings.php index 93724484c..908818998 100644 --- a/views/default/plugins/event_calendar/settings.php +++ b/views/default/plugins/event_calendar/settings.php @@ -79,6 +79,28 @@ $body .= elgg_view('input/radio',array('name'=>'params[listing_format]','value'= $body .= '
'; +$event_calendar_repeated_events = elgg_get_plugin_setting('repeated_events', 'event_calendar'); +if (!$event_calendar_repeated_events) { + $event_calendar_repeated_events = 'no'; +} + +$body .= elgg_echo('event_calendar:settings:repeated_events:title'); +$body .= '
'; +$body .= elgg_view('input/radio',array('name'=>'params[repeated_events]','value'=>$event_calendar_repeated_events,'options'=>$yn_options)); + +$body .= '
'; + +$event_calendar_reminders = elgg_get_plugin_setting('reminders', 'event_calendar'); +if (!$event_calendar_reminders) { + $event_calendar_reminders = 'no'; +} + +$body .= elgg_echo('event_calendar:settings:reminders:title'); +$body .= '
'; +$body .= elgg_view('input/radio',array('name'=>'params[reminders]','value'=>$event_calendar_reminders,'options'=>$yn_options)); + +$body .= '
'; + $event_calendar_times = elgg_get_plugin_setting('times', 'event_calendar'); if (!$event_calendar_times) { $event_calendar_times = 'yes'; @@ -90,6 +112,17 @@ $body .= elgg_view('input/radio',array('name'=>'params[times]','value'=>$event_c $body .= '
'; +$event_calendar_restricted_times = elgg_get_plugin_setting('restricted_times', 'event_calendar'); +if (!$event_calendar_restricted_times) { + $event_calendar_restricted_times = 'no'; +} + +$body .= elgg_echo('event_calendar:settings:restricted_times:title'); +$body .= '
'; +$body .= elgg_view('input/radio',array('name'=>'params[restricted_times]','value'=>$event_calendar_restricted_times,'options'=>$yn_options)); + +$body .= '
'; + $event_calendar_time_format = elgg_get_plugin_setting('timeformat', 'event_calendar'); if (!$event_calendar_time_format) { $event_calendar_time_format = '24'; @@ -158,6 +191,17 @@ $body .= elgg_view('input/radio',array('name'=>'params[venue_view]','value'=>$ev $body .= '
'; +$event_calendar_fewer_fields = elgg_get_plugin_setting('fewer_fields', 'event_calendar'); +if (!$event_calendar_fewer_fields) { + $event_calendar_fewer_fields = 'no'; +} + +$body .= elgg_echo('event_calendar:settings:fewer_fields:title'); +$body .= '
'; +$body .= elgg_view('input/radio',array('name'=>'params[fewer_fields]','value'=>$event_calendar_fewer_fields,'options'=>$yn_options)); + +$body .= '
'; + $options = array(elgg_echo('event_calendar:settings:no')=>'no', elgg_echo('event_calendar:settings:site_calendar:admin')=>'admin', elgg_echo('event_calendar:settings:site_calendar:loggedin')=>'loggedin', -- cgit v1.2.3 From 3e190494ee28af8d27d1b37993d10c110ee7d335 Mon Sep 17 00:00:00 2001 From: Kevin Jardine Date: Wed, 4 Apr 2012 12:17:39 +0200 Subject: hide entity_admins bit if the entity_admins plugin is not active --- views/default/forms/event_calendar/edit.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'views/default') diff --git a/views/default/forms/event_calendar/edit.php b/views/default/forms/event_calendar/edit.php index 713fb9abc..260e8afe0 100644 --- a/views/default/forms/event_calendar/edit.php +++ b/views/default/forms/event_calendar/edit.php @@ -265,10 +265,12 @@ if($event_calendar_hide_access == 'yes') { $body .= elgg_view("input/access",array('name' => 'access_id','value'=>$access)); $body .= '

'; } -$body .= elgg_echo('event_calendar:share_ownership:label'); -$body .= '
'; -$body .= elgg_echo('event_calendar:share_ownership:description'); -$body .= elgg_view('input/entity_admins_dropdown',array('entity'=>$event)); +if (elgg_plugin_exists('entity_admins')) { + $body .= elgg_echo('event_calendar:share_ownership:label'); + $body .= '
'; + $body .= elgg_echo('event_calendar:share_ownership:description'); + $body .= elgg_view('input/entity_admins_dropdown',array('entity'=>$event)); +} $body .= ''; if ($event_calendar_region_display == 'yes' || $event_calendar_type_display == 'yes' || $event_calendar_fewer_fields != 'yes') { -- cgit v1.2.3 From 10219dcdb85679e2d835d5f164ae025b1dedc291 Mon Sep 17 00:00:00 2001 From: Kevin Jardine Date: Wed, 4 Apr 2012 18:55:08 +0200 Subject: filter menu now changes for logged out users --- views/default/event_calendar/filter_menu.php | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'views/default') diff --git a/views/default/event_calendar/filter_menu.php b/views/default/event_calendar/filter_menu.php index 369d09e5f..926a29d0d 100644 --- a/views/default/event_calendar/filter_menu.php +++ b/views/default/event_calendar/filter_menu.php @@ -15,19 +15,25 @@ $tabs = array( 'selected' => ($filter_context == 'all'), 'priority' => 200, ), - 'mine' => array( +); + +if (elgg_is_logged_in()) { + $tabs ['mine'] = array( 'text' => elgg_echo('event_calendar:show_mine'), 'href' => "$url_start/mine", 'selected' => ($filter_context == 'mine'), 'priority' => 300, - ), - 'friend' => array( + ); + $tabs['friend'] = array( 'text' => elgg_echo('event_calendar:show_friends'), 'href' => "$url_start/friends", 'selected' => ($filter_context == 'friends'), 'priority' => 400, - ), -); + ); + $text_bit = '
  • '.elgg_echo('event_calendar:show_only').'
  • '; +} else { + $text_bit = ''; +} $tab_rendered = array(); @@ -56,8 +62,6 @@ foreach ($tabs as $name => $tab) { //echo elgg_view_menu('filter', array('sort_by' => 'priority', 'class' => 'elgg-menu-hz')); -$text_bit = '
  • '.elgg_echo('event_calendar:show_only').'
  • '; - $menu = <<<__MENU
      {$tab_rendered['open']} -- cgit v1.2.3 From 7c417a57436497c47d0b950bc97af3a0d49712d8 Mon Sep 17 00:00:00 2001 From: Kevin Jardine Date: Wed, 4 Apr 2012 19:24:17 +0200 Subject: fixed js date function call --- views/default/event_calendar/full_calendar_view.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'views/default') diff --git a/views/default/event_calendar/full_calendar_view.php b/views/default/event_calendar/full_calendar_view.php index 2c97eb159..6c21c42c8 100644 --- a/views/default/event_calendar/full_calendar_view.php +++ b/views/default/event_calendar/full_calendar_view.php @@ -37,7 +37,7 @@ getISODate = function(d) { var year = d.getFullYear(); var month = d.getMonth()+1; month = month < 10 ? '0' + month : month; - var day = d.getDay()+1; + var day = d.getDate(); day = day < 10 ? '0' + day : day; return year +"-"+month+"-"+day; } -- cgit v1.2.3 From 872381995dbcd77b90ac5175ffc7ba51ec75c42a Mon Sep 17 00:00:00 2001 From: Kevin Jardine Date: Thu, 26 Apr 2012 16:21:00 +0200 Subject: Merges in BBB web conference functionality from now defunct sched_conf plugin --- languages/en.php | 10 +++ models/model.php | 79 ++++++++++++++++++++-- views/default/event_calendar/conference_button.php | 32 +++++++++ views/default/forms/event_calendar/edit.php | 9 ++- views/default/object/event_calendar.php | 4 ++ views/default/plugins/event_calendar/settings.php | 26 +++++++ 6 files changed, 152 insertions(+), 8 deletions(-) create mode 100644 views/default/event_calendar/conference_button.php (limited to 'views/default') diff --git a/languages/en.php b/languages/en.php index d4cb8ac9e..e23d78924 100644 --- a/languages/en.php +++ b/languages/en.php @@ -318,6 +318,16 @@ takes place at You can visit the event page here: %s ", + + /** + * BBB support + */ + + 'event_calendar:bbb_server_url' => "Big Blue Button server URL (must end with slash)", + 'event_calendar:bbb_security_salt' => "Big Blue Button security salt", + 'event_calendar:bbb_create_error' => "Error: unable to create BBB conference, message was: %s", + 'event_calendar:bbb_settings_error' => "Error: must set conference URL and salt in plugin settings", + 'event_calendar:join_conf_button' => "Join conference", /** * Event calendar river diff --git a/models/model.php b/models/model.php index 0dd72a595..cf00c4b1c 100644 --- a/models/model.php +++ b/models/model.php @@ -152,6 +152,7 @@ function event_calendar_set_event_from_form($event_guid,$group_guid) { $event->send_reminder = get_input('send_reminder'); $event->reminder_number = get_input('reminder_number'); $event->reminder_interval = get_input('reminder_interval'); + $event->web_conference = get_input('web_conference'); $event->real_end_time = event_calendar_get_end_time($event); foreach ($required_fields as $fn) { if (!trim($event->$fn)) { @@ -160,6 +161,9 @@ function event_calendar_set_event_from_form($event_guid,$group_guid) { } } if ($event->save()) { + if (!$event_guid && $event->web_conference) { + event_calendar_create_bbb_conf($event); + } if ($group_guid && (elgg_get_plugin_setting('autogroup', 'event_calendar') == 'yes')) { event_calendar_add_personal_events_from_group($event->guid,$group_guid); } @@ -173,12 +177,12 @@ function event_calendar_set_event_from_form($event_guid,$group_guid) { event_calendar_add_personal_event($event->guid,$user_id); if (elgg_get_plugin_setting('add_users_notify', 'event_calendar') == 'yes') { notify_user($user_id, $CONFIG->site->guid, elgg_echo('event_calendar:add_users_notify:subject'), - sprintf( - elgg_echo('event_calendar:add_users_notify:body'), - $user->name, - $event->title, - $event->getURL() - ) + sprintf( + elgg_echo('event_calendar:add_users_notify:body'), + $user->name, + $event->title, + $event->getURL() + ) ); } } @@ -1598,6 +1602,7 @@ function event_calendar_prepare_edit_form_vars($event = NULL) { 'event-calendar-repeating-saturday-value' => 0, 'event-calendar-repeating-sunday-value' => 0, 'personal_manage' => 'open', + 'web_conference' => NULL, 'long_description' => NULL, 'access_id' => ACCESS_DEFAULT, 'group_guid' => NULL, @@ -2210,3 +2215,65 @@ function event_calendar_queue_reminder($e) { message_queue_set_for_sending($m->guid); } } + +function event_calendar_create_bbb_conf($event) { + $bbb_security_salt = elgg_get_plugin_setting('bbb_security_salt','event_calendar'); + $bbb_server_url = rtrim(elgg_get_plugin_setting('bbb_server_url','event_calendar'), '/') . '/'; + if ($bbb_security_salt) { + $day_in_minutes = 60*24; + $duration = (int)(($event->real_end_time-$event->start_date)/60)+$day_in_minutes; + $title = urlencode($event->title); + $params = "name=$title&meetingID={$event->guid}&duration=$duration"; + $checksum = sha1('create'.$params.$bbb_security_salt); + $params .= "&checksum=$checksum"; + + // create curl resource + $ch = curl_init(); + + // set url + curl_setopt($ch, CURLOPT_URL, $bbb_server_url.'api/create?'.$params); + + //return the transfer as a string + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + + // $output contains the output string + $output = curl_exec($ch); + + // close curl resource to free up system resources + curl_close($ch); + + /*error_log("BBB create request:"); + error_log($bbb_server_url.'api/create?'.$params); + + error_log("BBB create response:"); + error_log($output);*/ + + $xml = new SimpleXMLElement($output); + if ($xml->returncode == 'SUCCESS') { + $event->bbb_attendee_password = (string) $xml->attendeePW; + $event->bbb_moderator_password = (string) $xml->moderatorPW; + } else { + register_error(elgg_echo('event_calendar:bbb_create_error',array($xml->message))); + } + } else { + register_error(elgg_echo('event_calendar:bbb_settings_error')); + } +} + +function event_calendar_get_join_bbb_url($event) { + $bbb_security_salt = elgg_get_plugin_setting('bbb_security_salt','event_calendar'); + $bbb_server_url = rtrim(elgg_get_plugin_setting('bbb_server_url','event_calendar'), '/') . '/'; + $user = elgg_get_logged_in_user_entity(); + $full_name = urlencode($user->name); + if ($event->canEdit()) { + $password = urlencode($event->bbb_moderator_password); + } else { + $password = urlencode($event->bbb_attendee_password); + } + $params = "fullName=$full_name&meetingID={$event->guid}&userID={$user->username}&password=$password"; + $checksum = sha1('join'.$params.$bbb_security_salt); + $params .= "&checksum=$checksum"; + $url = $bbb_server_url.'api/join?'.$params; + return $url; +} + diff --git a/views/default/event_calendar/conference_button.php b/views/default/event_calendar/conference_button.php new file mode 100644 index 000000000..f6fedf4f6 --- /dev/null +++ b/views/default/event_calendar/conference_button.php @@ -0,0 +1,32 @@ +real_end_time + 60*60*24; + if ($termination_time < time()) { + $in_time_window = FALSE; + } else if ($event->canEdit()) { + $in_time_window = TRUE; + } else if (event_calendar_has_personal_event($event->guid, $user_guid) && ($event->start_date - 15*60) >= time()) { + $in_time_window = TRUE; + } else { + $in_time_window = FALSE; + } + if ( $in_time_window ) { + $button = elgg_view('output/url', array( + 'href' => event_calendar_get_join_bbb_url($event), + 'text' => elgg_echo('event_calendar:join_conf_button'), + 'class' => 'elgg-button elgg-button-action', + 'target' => '_blank', + )); + + echo '
      '.$button.'
      '; + } +} diff --git a/views/default/forms/event_calendar/edit.php b/views/default/forms/event_calendar/edit.php index 260e8afe0..79e2a5d0b 100644 --- a/views/default/forms/event_calendar/edit.php +++ b/views/default/forms/event_calendar/edit.php @@ -26,6 +26,7 @@ $event_calendar_more_required = elgg_get_plugin_setting('more_required', 'event_ $event_calendar_personal_manage = elgg_get_plugin_setting('personal_manage', 'event_calendar'); $event_calendar_repeated_events = elgg_get_plugin_setting('repeated_events', 'event_calendar'); $event_calendar_reminders = elgg_get_plugin_setting('reminders', 'event_calendar'); +$event_calendar_bbb_server_url = elgg_get_plugin_setting('bbb_server_url', 'event_calendar'); if ($event_calendar_more_required == 'yes') { $required_fields = array('title','venue','start_date','start_time', @@ -168,9 +169,13 @@ $body .= elgg_view('event_calendar/container',array('container_guid'=>$vars['con $body .= '

      '; $body .= '

      '.$prefix['calendar'].elgg_echo('event_calendar:calendar_description').'

      '; -if(elgg_plugin_exists('sched_conf')) { +if($event_calendar_bbb_server_url) { $body .= '

      '; - $body .= elgg_view('input/checkbox',array('name'=>'web_conference','value'=>$web_conference,'options_values'=>array('1'))); + if ($fd['web_conference']) { + $body .= elgg_view('input/checkbox',array('name'=>'web_conference','value'=>1,'checked'=>'checked')); + } else { + $body .= elgg_view('input/checkbox',array('name'=>'web_conference','value'=>1)); + } $body .= elgg_echo('event_calendar:web_conference_label'); $body .= '

      '; } diff --git a/views/default/object/event_calendar.php b/views/default/object/event_calendar.php index 717e2803e..b72c869ea 100644 --- a/views/default/object/event_calendar.php +++ b/views/default/object/event_calendar.php @@ -16,6 +16,10 @@ $full = elgg_extract('full_view', $vars, FALSE); if ($full) { $body = elgg_view('event_calendar/strapline',$vars); + if ($event->web_conference) { + $body .= '
      '; + $body .= elgg_view('event_calendar/conference_button',array('event'=>$event)); + } $event_items = event_calendar_get_formatted_full_items($event); $body .= '
      '; diff --git a/views/default/plugins/event_calendar/settings.php b/views/default/plugins/event_calendar/settings.php index 908818998..2a2e043de 100644 --- a/views/default/plugins/event_calendar/settings.php +++ b/views/default/plugins/event_calendar/settings.php @@ -445,4 +445,30 @@ $body .= elgg_echo('event_calendar:ical_auth_file_name:title'); $body .= '
      '; $body .= elgg_view('input/text',array('name'=>'params[ical_auth_file_name]','value'=>$ical_auth_file_name, 'class'=>'event-calendar-ical-auth-setting')); +$body .= '

      '; + +$event_calendar_bbb_server_url = elgg_get_plugin_setting('bbb_server_url', 'event_calendar'); + +$body .= elgg_echo('event_calendar:bbb_server_url'); +$body .= '
      '; +$body .= elgg_view('input/text', array( + 'name' => 'params[bbb_server_url]', + 'value' => $event_calendar_bbb_server_url, + 'class' => 'text_input', +)); + +$body .= '

      '; + +$event_calendar_bbb_security_salt = elgg_get_plugin_setting('bbb_security_salt', 'event_calendar'); + +$body .= elgg_echo('event_calendar:bbb_security_salt'); +$body .= '
      '; +$body .= elgg_view('input/text', array( + 'name' => 'params[bbb_security_salt]', + 'value' => $event_calendar_bbb_security_salt, + 'class' => 'text_input', +)); + +$body .= '

      '; + echo $body; -- cgit v1.2.3 From 7f1d64ed5f005e701af71023798346193a445401 Mon Sep 17 00:00:00 2001 From: Kevin Jardine Date: Wed, 9 May 2012 18:06:56 +0200 Subject: fixed default group edit bug --- models/model.php | 4 ++++ views/default/forms/event_calendar/edit.php | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'views/default') diff --git a/models/model.php b/models/model.php index cf00c4b1c..b3ba4db80 100644 --- a/models/model.php +++ b/models/model.php @@ -1519,11 +1519,14 @@ function event_calendar_get_page_content_edit($page_type,$guid) { if (elgg_instanceof($event, 'object', 'event_calendar') && $event->canEdit()) { $body_vars['event'] = $event; $body_vars['form_data'] = event_calendar_prepare_edit_form_vars($event); + $event_container = get_entity($event->container_guid); if (elgg_instanceof($event_container, 'group')) { elgg_push_breadcrumb(elgg_echo('event_calendar:group_breadcrumb'), 'event_calendar/group/'.$event->container_guid); + $body_vars['group_guid'] = $event_container->guid; } else { elgg_push_breadcrumb(elgg_echo('event_calendar:show_events_title'),'event_calendar/list'); + $body_vars['group_guid'] = 0; } elgg_push_breadcrumb($event->title,$event->getURL()); elgg_push_breadcrumb(elgg_echo('event_calendar:manage_event_title')); @@ -1547,6 +1550,7 @@ function event_calendar_get_page_content_edit($page_type,$guid) { $content = elgg_echo('event_calendar:no_group'); } } else { + $body_vars['group_guid'] = 0; elgg_push_breadcrumb(elgg_echo('event_calendar:show_events_title'),'event_calendar/list'); elgg_push_breadcrumb(elgg_echo('event_calendar:add_event_title')); diff --git a/views/default/forms/event_calendar/edit.php b/views/default/forms/event_calendar/edit.php index 79e2a5d0b..d1c7967c3 100644 --- a/views/default/forms/event_calendar/edit.php +++ b/views/default/forms/event_calendar/edit.php @@ -140,7 +140,7 @@ $body = '
      '; $body .= elgg_view('input/hidden',array('name'=>'event_action', 'value'=>$event_action)); $body .= elgg_view('input/hidden',array('name'=>'event_guid', 'value'=>$event_guid)); -$body .= elgg_view('input/hidden',array('name'=>'group_guid', 'value'=>$vars['group_guid'])); +//$body .= elgg_view('input/hidden',array('name'=>'group_guid', 'value'=>$vars['group_guid'])); $body .= '
      '; @@ -165,7 +165,7 @@ $body .= '

      '; $body .= '

      '.$prefix['event_tags'].elgg_echo('event_calendar:event_tags_description').'

      '; $body .= '

      '; -$body .= elgg_view('event_calendar/container',array('container_guid'=>$vars['container_guid'])); +$body .= elgg_view('event_calendar/container',array('container_guid'=>$vars['group_guid'])); $body .= '

      '; $body .= '

      '.$prefix['calendar'].elgg_echo('event_calendar:calendar_description').'

      '; -- cgit v1.2.3 From cea13ac10598078a6489650bf69c6efc45231e03 Mon Sep 17 00:00:00 2001 From: Kevin Jardine Date: Wed, 9 May 2012 19:09:24 +0200 Subject: fixes for group event bugs --- views/default/event_calendar/container.php | 6 +++++- views/default/event_calendar/groupprofile_calendar.php | 4 +--- views/default/forms/event_calendar/edit.php | 13 ++++++++----- 3 files changed, 14 insertions(+), 9 deletions(-) (limited to 'views/default') diff --git a/views/default/event_calendar/container.php b/views/default/event_calendar/container.php index fdd7da2c6..cb5c8620c 100644 --- a/views/default/event_calendar/container.php +++ b/views/default/event_calendar/container.php @@ -1,8 +1,12 @@ elgg_echo('event_calendar:site_calendar')); +$containers = array(); +if (($site_calendar != 'no') && ($admin || !$site_calendar || ($site_calendar == 'loggedin'))) { + $containers[0] = elgg_echo('event_calendar:site_calendar'); +} $user = elgg_get_logged_in_user_entity(); $groups = $user->getGroups('',0,0); foreach ($groups as $group) { diff --git a/views/default/event_calendar/groupprofile_calendar.php b/views/default/event_calendar/groupprofile_calendar.php index 7ee09104f..c71780be8 100644 --- a/views/default/event_calendar/groupprofile_calendar.php +++ b/views/default/event_calendar/groupprofile_calendar.php @@ -26,10 +26,8 @@ if (event_calendar_activated_for_group($page_owner_entity)) { if (is_array($events) && sizeof($events) > 0) { foreach($events as $event) { - echo elgg_view("object/event_calendar",array('entity' => $event)); + echo elgg_view("object/event_calendar",array('entity' => $event['event'])); } } } - -?> \ No newline at end of file diff --git a/views/default/forms/event_calendar/edit.php b/views/default/forms/event_calendar/edit.php index d1c7967c3..278fdddce 100644 --- a/views/default/forms/event_calendar/edit.php +++ b/views/default/forms/event_calendar/edit.php @@ -140,7 +140,6 @@ $body = '
      '; $body .= elgg_view('input/hidden',array('name'=>'event_action', 'value'=>$event_action)); $body .= elgg_view('input/hidden',array('name'=>'event_guid', 'value'=>$event_guid)); -//$body .= elgg_view('input/hidden',array('name'=>'group_guid', 'value'=>$vars['group_guid'])); $body .= '
      '; @@ -164,10 +163,14 @@ $body .= elgg_view("input/tags",array('name' => 'tags','class'=>'event-calendar- $body .= '

      '; $body .= '

      '.$prefix['event_tags'].elgg_echo('event_calendar:event_tags_description').'

      '; -$body .= '

      '; -$body .= elgg_view('event_calendar/container',array('container_guid'=>$vars['group_guid'])); -$body .= '

      '; -$body .= '

      '.$prefix['calendar'].elgg_echo('event_calendar:calendar_description').'

      '; +if ($event || !$vars['group_guid']) { + $body .= '

      '; + $body .= elgg_view('event_calendar/container',array('container_guid'=>$vars['group_guid'])); + $body .= '

      '; + $body .= '

      '.$prefix['calendar'].elgg_echo('event_calendar:calendar_description').'

      '; +} else { + $body .= elgg_view('input/hidden',array('name'=>'group_guid', 'value'=>$vars['group_guid'])); +} if($event_calendar_bbb_server_url) { $body .= '

      '; -- cgit v1.2.3 From f8b9db301d19813725b9f43020a52587b03baadc Mon Sep 17 00:00:00 2001 From: Kevin Jardine Date: Thu, 10 May 2012 16:56:57 +0200 Subject: removed some outdated (pre Elgg 1.8) code and files --- languages/en.php | 4 +- .../default/event_calendar/forms/add_to_group.php | 8 +- .../event_calendar/forms/delete_confirm.php | 13 -- .../default/event_calendar/forms/manage_event.php | 22 -- .../event_calendar/forms/manage_event_content.php | 254 --------------------- views/default/event_calendar/input/date_local.php | 1 - views/default/event_calendar/input/longtext.php | 25 -- views/default/input/datepicker_popup.php | 31 --- views/default/plugins/event_calendar/settings.php | 4 +- 9 files changed, 6 insertions(+), 356 deletions(-) delete mode 100644 views/default/event_calendar/forms/delete_confirm.php delete mode 100644 views/default/event_calendar/forms/manage_event.php delete mode 100644 views/default/event_calendar/forms/manage_event_content.php delete mode 100644 views/default/event_calendar/input/longtext.php delete mode 100644 views/default/input/datepicker_popup.php (limited to 'views/default') diff --git a/languages/en.php b/languages/en.php index e23d78924..5f060748c 100644 --- a/languages/en.php +++ b/languages/en.php @@ -62,8 +62,6 @@ 'event_calendar:view_link' => "View this event", 'event_calendar:edit_link' => "Edit this event", 'event_calendar:delete_link' => "Delete this event", - 'event_calendar:delete_confirm_title' => "Confirm event deletion", - 'event_calendar:delete_confirm_description' => "Are you sure that you want to delete this event (\"%s\")? This action cannot be undone.", 'event_calendar:delete_response' => "This event has been deleted.", 'event_calendar:error_delete' => "This event does not exist or you do not have the right to delete it.", 'event_calendar:delete_cancel_response' => "Event delete cancelled.", @@ -117,7 +115,7 @@ 'event_calendar:region_description' => "Select the region that this event will be held in.", 'event_calendar:settings:type_display:title' => "Add event type to events", 'event_calendar:settings:type_list:title' => "List of event types (one per line)", - 'event_calendar:type_label' => "Type of event", + 'event_calendar:type_label' => "Type", 'event_calendar:type_description' => "Select the type of event.", 'event_calendar:all' => "All", 'event_calendar:region_filter_by_label' => "Filter by region: ", diff --git a/views/default/event_calendar/forms/add_to_group.php b/views/default/event_calendar/forms/add_to_group.php index 330f72526..2c8fdec53 100644 --- a/views/default/event_calendar/forms/add_to_group.php +++ b/views/default/event_calendar/forms/add_to_group.php @@ -56,21 +56,19 @@ if ($remove_group) { if ($add_options || $remove_options) { echo '

      '; - $event_bit = elgg_view('input/hidden', array("internalname" => "event_id","value" => $event_id)); + $event_bit = elgg_view('input/hidden', array("name" => "event_id","value" => $event_id)); if ($add_options) { echo "

      ".elgg_echo('event_calendar:add_to_group:add_group_title')."

      "; - $add_pulldown = elgg_view("input/dropdown",array("internalname" => "group_id","options_values" => $add_options)); + $add_pulldown = elgg_view("input/dropdown",array("name" => "group_id","options_values" => $add_options)); $submit_button = "

      ".elgg_view("input/submit",array("value"=>elgg_echo('event_calendar:add_to_group:add_group_button')))."

      "; echo elgg_view ('input/form',array("body" => $event_bit.$add_pulldown.$submit_button,"action" => $vars['url']."action/event_calendar/add_to_group")); } if ($remove_options) { echo "

      ".elgg_echo('event_calendar:add_to_group:remove_group_title')."

      "; - $remove_pulldown = elgg_view("input/dropdown",array("internalname" => "group_id","options_values" => $remove_options)); + $remove_pulldown = elgg_view("input/dropdown",array("name" => "group_id","options_values" => $remove_options)); $submit_button = "

      ".elgg_view("input/submit",array("value"=>elgg_echo('event_calendar:add_to_group:remove_group_button')))."

      "; echo elgg_view ('input/form',array("body" => $event_bit.$remove_pulldown.$submit_button,"action" => $vars['url']."action/event_calendar/remove_from_group")); } echo '
      '; } - -?> \ No newline at end of file diff --git a/views/default/event_calendar/forms/delete_confirm.php b/views/default/event_calendar/forms/delete_confirm.php deleted file mode 100644 index 37134e695..000000000 --- a/views/default/event_calendar/forms/delete_confirm.php +++ /dev/null @@ -1,13 +0,0 @@ -'.sprintf(elgg_echo('event_calendar:delete_confirm_description'),$vars['title']).'

      '; - -$body .= '
      '; -$body .= elgg_view('input/securitytoken'); -$body .= elgg_view('input/hidden',array('internalname'=>'event_action', 'value'=>'delete_event')); -$body .= elgg_view('input/hidden',array('internalname'=>'event_id', 'value'=>$vars['event_id'])); -$body .= elgg_view('input/submit', array('internalname'=>'submit','value'=>elgg_echo('event_calendar:submit'))); -$body .= '
      '; - -echo elgg_view('page_elements/contentwrapper', array('body'=>$body)); -?> \ No newline at end of file diff --git a/views/default/event_calendar/forms/manage_event.php b/views/default/event_calendar/forms/manage_event.php deleted file mode 100644 index f9d78e3f4..000000000 --- a/views/default/event_calendar/forms/manage_event.php +++ /dev/null @@ -1,22 +0,0 @@ - - * @copyright Radagast Solutions 2008 - * @link http://radagast.biz/ - * - */ - -elgg_extend_view('metatags','event_calendar/metatags'); - -$body = elgg_view('event_calendar/forms/manage_event_content',$vars); - -$body .= elgg_view('input/submit', array('internalname'=>'submit','value'=>elgg_echo('event_calendar:submit'))); -$form = elgg_view('input/form',array('action'=>$vars['url'].'action/event_calendar/manage','body'=>$body)); - -print elgg_view('page_elements/contentwrapper',array('body'=>$form)); -?> \ No newline at end of file diff --git a/views/default/event_calendar/forms/manage_event_content.php b/views/default/event_calendar/forms/manage_event_content.php deleted file mode 100644 index f28788132..000000000 --- a/views/default/event_calendar/forms/manage_event_content.php +++ /dev/null @@ -1,254 +0,0 @@ -title; - $brief_description = $event->description; - $venue = $event->venue; - if ($event->form_data) { - // this is a form redisplay, so take the values as submitted - $start_date = $event->start_date; - $end_date = $event->end_date; - } else { - // the values are from the database, - // so convert - $start_date = date("l, F j, Y",$event->start_date); - if ($event->end_date) { - $end_date = date("l, F j, Y",$event->end_date); - } else { - $end_date = ''; - } - } - - if ($event_calendar_region_display) { - $region = $event->region; - if (!$region) { - $region = '-'; - } - } - - if ($event_calendar_spots_display) { - $spots = trim($event->spots); - } - if ($event_calendar_type_display) { - $event_type = $event->event_type; - if (!$event_type) { - $event_type = '-'; - } - } - $fees = $event->fees; - $contact = $event->contact; - $organiser = $event->organiser; - $event_tags = $event->event_tags; - $long_description = $event->long_description; - $access = $event->access_id; - if ($event_calendar_times == 'yes') { - $start_time = $event->start_time; - $end_time = $event->end_time; - } - $event_action = 'manage_event'; -} else { - $event_id = 0; - $title = ''; - $brief_description = ''; - $venue = ''; - $start_date = ''; - $end_date = ''; - $fees = ''; - if ($event_calendar_spots_display) { - $spots = ''; - } - if ($event_calendar_region_display) { - $region = '-'; - } - if ($event_calendar_type_display) { - $event_type = '-'; - } - $contact = ''; - $organiser = ''; - $event_tags = ''; - $long_description = ''; - $access = get_default_access(); - if ($event_calendar_times == 'yes') { - $start_time = ''; - $end_time = ''; - } - $event_action = 'add_event'; -} -$body = ''; - -$body .= elgg_view('input/hidden',array('internalname'=>'event_action', 'value'=>$event_action)); -$body .= elgg_view('input/hidden',array('internalname'=>'event_id', 'value'=>$event_id)); -$body .= elgg_view('input/hidden',array('internalname'=>'group_guid', 'value'=>$vars['group_guid'])); - -$body .= '

      '; -$body .= '

      '.$prefix['title'].elgg_echo('event_calendar:title_description').'

      '; - -$body .= '

      '; -$body .= '

      '.$prefix['venue'].elgg_echo('event_calendar:venue_description').'

      '; - -if ($event_calendar_times != 'no') { - $body .= '


      '; - $body .= elgg_view("input/timepicker",array('internalname' => 'start_time','value'=>$start_time)); - $body .= '

      '; - $body .= '

      '.$prefix['start_time'].elgg_echo('event_calendar:start_time_description').'

      '; -} - -$body .= '

      '; -$body .= '

      '.$prefix['start_date'].elgg_echo('event_calendar:start_date_description').'

      '; - -if ($event_calendar_hide_end != 'yes') { - if ($event_calendar_times != 'no') { - $body .= '


      '; - $body .= elgg_view("input/timepicker",array('internalname' => 'end_time','value'=>$end_time)); - $body .= '

      '; - $body .= '

      '.$prefix['end_time'].elgg_echo('event_calendar:end_time_description').'

      '; - } - - $body .= '

      '; - $body .= '

      '.$prefix['end_date'].elgg_echo('event_calendar:end_date_description').'

      '; -} - -if ($event_calendar_spots_display == 'yes') { - $body .= '

      '; - $body .= '

      '.$prefix['spots'].elgg_echo('event_calendar:spots_description').'

      '; -} - -if ($event_calendar_add_users == 'yes') { - $body .= '



      '; - $body .= '

      '.elgg_echo('event_calendar:add_user_description').'

      '; -} - -$body .= '

      '; -$body .= '

      '.$prefix['brief_description'].elgg_echo('event_calendar:brief_description_description').'

      '; - -if ($event_calendar_region_display == 'yes') { - $region_list = trim(elgg_get_plugin_setting('region_list', 'event_calendar')); - $region_list_handles = elgg_get_plugin_setting('region_list_handles', 'event_calendar'); - // make sure that we are using Unix line endings - $region_list = str_replace("\r\n","\n",$region_list); - $region_list = str_replace("\r","\n",$region_list); - if ($region_list) { - $options = array(); - $options[] = '-'; - foreach(explode("\n",$region_list) as $region_item) { - $region_item = trim($region_item); - if ($region_list_handles == 'yes') { - $options[$region_item] = elgg_echo('event_calendar:region:'.$region_item); - } else { - $options[$region_item] = $region_item; - } - } - $body .= '

      '; - $body .= '

      '.$prefix['region'].elgg_echo('event_calendar:region_description').'

      '; - } -} - -if ($event_calendar_type_display == 'yes') { - $type_list = trim(elgg_get_plugin_setting('type_list', 'event_calendar')); - $type_list_handles = elgg_get_plugin_setting('type_list_handles', 'event_calendar'); - // make sure that we are using Unix line endings - $type_list = str_replace("\r\n","\n",$type_list); - $type_list = str_replace("\r","\n",$type_list); - if ($type_list) { - $options = array(); - $options[] = '-'; - foreach(explode("\n",$type_list) as $type_item) { - $type_item = trim($type_item); - if ($type_list_handles == 'yes') { - $options[$type_item] = elgg_echo('event_calendar:type:'.$type_item); - } else { - $options[$type_item] = $type_item; - } - } - $body .= '

      '; - $body .= '

      '.$prefix['event_type'].elgg_echo('event_calendar:type_description').'

      '; - } -} - -$body .= '

      '; -$body .= '

      '.$prefix['fees'].elgg_echo('event_calendar:fees_description').'

      '; - -$body .= '

      '; -$body .= '

      '.$prefix['contact'].elgg_echo('event_calendar:contact_description').'

      '; - -$body .= '

      '; -$body .= '

      '.$prefix['organiser'].elgg_echo('event_calendar:organiser_description').'

      '; - -$body .= '

      '; -$body .= '

      '.$prefix['event_tags'].elgg_echo('event_calendar:event_tags_description').'

      '; - -$body .= '

      '; -$body .= '

      '.$prefix['long_description'].elgg_echo('event_calendar:long_description_description').'

      '; - -if($event_calendar_hide_access == 'yes') { - $event_calendar_default_access = get_plugin_setting('default_access', 'event_calendar'); - if($event_calendar_default_access) { - $body .= elgg_view("input/hidden",array('internalname' => 'access','value'=>$event_calendar_default_access)); - } else { - $body .= elgg_view("input/hidden",array('internalname' => 'access','value'=>ACCESS_PRIVATE)); - } -} else { - $body .= '

      '; -} - -print $body; -?> \ No newline at end of file diff --git a/views/default/event_calendar/input/date_local.php b/views/default/event_calendar/input/date_local.php index f4cb48d11..a0ce7f4d3 100644 --- a/views/default/event_calendar/input/date_local.php +++ b/views/default/event_calendar/input/date_local.php @@ -44,7 +44,6 @@ if ($timestamp) { $vars['class'] = "{$vars['class']} elgg-input-timestamp"; $vars['id'] = $vars['name']; unset($vars['name']); - unset($vars['internalname']); } // convert timestamps to text for display diff --git a/views/default/event_calendar/input/longtext.php b/views/default/event_calendar/input/longtext.php deleted file mode 100644 index 86b0f3fc4..000000000 --- a/views/default/event_calendar/input/longtext.php +++ /dev/null @@ -1,25 +0,0 @@ - - - \ No newline at end of file diff --git a/views/default/input/datepicker_popup.php b/views/default/input/datepicker_popup.php deleted file mode 100644 index 0daeb7307..000000000 --- a/views/default/input/datepicker_popup.php +++ /dev/null @@ -1,31 +0,0 @@ - - * @copyright Radagast Solutions 2008 - * @link http://radagast.biz/ - * - */ - -if ($vars['dateformat']) { - $date_format = $vars['dateformat']; -} else { - $date_format = "yy/mm/dd"; -} -?> - - - \ No newline at end of file diff --git a/views/default/plugins/event_calendar/settings.php b/views/default/plugins/event_calendar/settings.php index 2a2e043de..e91db9969 100644 --- a/views/default/plugins/event_calendar/settings.php +++ b/views/default/plugins/event_calendar/settings.php @@ -358,7 +358,7 @@ if (!$event_calendar_region_list) { $body .= elgg_echo('event_calendar:settings:region_list:title'); $body .= '
      '; -$body .= elgg_view('event_calendar/input/longtext',array('name'=>'params[region_list]','value'=>$event_calendar_region_list)); +$body .= elgg_view('input/plaintext',array('name'=>'params[region_list]','value'=>$event_calendar_region_list)); $body .= '
      '; @@ -391,7 +391,7 @@ if (!$event_calendar_type_list) { $body .= elgg_echo('event_calendar:settings:type_list:title'); $body .= '
      '; -$body .= elgg_view('event_calendar/input/longtext',array('name'=>'params[type_list]','value'=>$event_calendar_type_list)); +$body .= elgg_view('input/plaintext',array('name'=>'params[type_list]','value'=>$event_calendar_type_list)); $body .= '
      '; -- cgit v1.2.3 From b8c3767f8c790febb35141919936d616d3ebe2d4 Mon Sep 17 00:00:00 2001 From: Kevin Jardine Date: Thu, 24 May 2012 20:00:18 +0200 Subject: changed time handling and added more suppport for event polls --- languages/en.php | 5 + models/model.php | 225 ++++++++++++++------- start.php | 1 + views/default/event_calendar/css.php | 7 +- views/default/event_calendar/datetime_edit.php | 12 +- .../default/event_calendar/full_calendar_view.php | 2 +- .../event_calendar/personal_manage_section.php | 20 ++ views/default/event_calendar/reminder_section.php | 28 +++ views/default/event_calendar/schedule_section.php | 22 ++ views/default/event_calendar/share_section.php | 26 +++ views/default/forms/event_calendar/edit.php | 110 +++------- views/default/input/datepicker_inline.php | 3 +- views/default/input/timepicker.php | 90 +++------ views/default/js/event_calendar/event_calendar.php | 24 +++ 14 files changed, 345 insertions(+), 230 deletions(-) create mode 100644 views/default/event_calendar/personal_manage_section.php create mode 100644 views/default/event_calendar/reminder_section.php create mode 100644 views/default/event_calendar/schedule_section.php create mode 100644 views/default/event_calendar/share_section.php (limited to 'views/default') diff --git a/languages/en.php b/languages/en.php index 5f060748c..782cd7a72 100644 --- a/languages/en.php +++ b/languages/en.php @@ -290,6 +290,7 @@ You can manage calendar requests for this event here: 'event_calendar:site_calendar' => "Site-wide calendar", 'event_calendar:calendar_label' => "Calendar", 'event_calendar:calendar_description' => "Calendar for this event.", + 'event_calendar:are_you_sure' => "Are you sure about this change?", 'event_calendar:schedule:header' => "Schedule", 'event_calendar:permissions:header' => "Permissions", 'event_calendar:read_access' => "Read access", @@ -298,6 +299,9 @@ You can manage calendar requests for this event here: 'event_calendar:share_ownership:description' => "Allow the following people to edit or delete this event, invite participants, etc.", 'event_calendar:settings:fewer_fields:title' => "Hide fees, contact, organiser and long description fields", 'event_calendar:settings:restricted_times:title' => "Restricted time to between 6am and 9pm (6:00 and 21:00)", + 'event_calendar:add_event' => "Add event", + 'event_calendar:schedule_event' => "Schedule event", + 'event_calendar:list_polls' => "List event polls", 'event_calendar:edit_form:error:missing_title' => "Error: please supply the missing title.", 'event_calendar:repeated_event:week_interval' => "every %s weeks.", 'event_calendar:repeated_event:week_single' => "every week.", @@ -305,6 +309,7 @@ You can manage calendar requests for this event here: 'event_calendar:settings:repeated_events:title' => "Allow repeated events (currently only works properly in full calendar mode)", 'event_calendar:settings:reminders:title' => "Allow sending reminders", 'event_calendar:reminder:subject' => "Reminder for event: %s", + 'event_calendar:poll_suffix' => "(poll)", 'event_calendar:reminder:body' => "The event %s diff --git a/models/model.php b/models/model.php index 042d21736..7de514802 100644 --- a/models/model.php +++ b/models/model.php @@ -22,6 +22,22 @@ function event_calendar_get_event_for_edit($event_id) { } } +// converts to time in minutes since midnight +function event_calendar_convert_to_time($hour,$minute,$meridian) { + if ($meridian) { + if ($meridian == 'am') { + if ($hour == 12) { + $hour = 0; + } + } else { + if ($hour < 12) { + $hour += 12; + } + } + } + return 60*$hour+$minute; +} + // returns the event or FALSE function event_calendar_set_event_from_form($event_guid,$group_guid) { @@ -33,6 +49,7 @@ function event_calendar_set_event_from_form($event_guid,$group_guid) { $event_calendar_more_required = elgg_get_plugin_setting('more_required', 'event_calendar'); $event_calendar_personal_manage = elgg_get_plugin_setting('personal_manage', 'event_calendar'); $event_calendar_repeating_events = elgg_get_plugin_setting('repeating_events', 'event_calendar'); + $schedule_type = get_input('schedule_type'); if ($event_calendar_more_required == 'yes') { $required_fields = array('title','venue','start_date', @@ -80,41 +97,47 @@ function event_calendar_set_event_from_form($event_guid,$group_guid) { $event->description = get_input('description'); $event->venue = get_input('venue'); - $start_date = get_input('start_date'); - $event->original_start_date = get_input('start_date'); - //$end_date = trim(get_input('end_date','')); - // convert start date from current server time to GMT - $start_date_text = gmdate("Y-m-d",$start_date); - //$event->munged_start_date_string = $start_date_text." ".date_default_timezone_get(); - - $event->start_date = strtotime($start_date_text." ".date_default_timezone_get()); - $end_date = trim(get_input('end_date','')); - $event->original_end_date = get_input('end_date'); - if ($end_date) { - $end_date_text = gmdate("Y-m-d",$end_date); - $event->end_date = strtotime($end_date_text." ".date_default_timezone_get()); - //$event->munged_end_date_string = $end_date_text." ".date_default_timezone_get(); - } else { - $event->end_date = ''; - } - - if ($event_calendar_times != 'no') { - $st = get_input('start_time',''); - if (is_numeric($st)) { - $event->start_time = $st; - } else { - $event->start_time = ''; - } - $et = get_input('end_time',''); - if (is_numeric($et)) { - $event->end_time = $et; + if ($schedule_type != 'poll') { + $start_date_text = trim(get_input('start_date')); + /*$event->original_start_date = get_input('start_date'); + //$end_date = trim(get_input('end_date','')); + // convert start date from current server time to GMT + $start_date_text = gmdate("Y-m-d",$start_date); + //$event->munged_start_date_string = $start_date_text." ".date_default_timezone_get();*/ + + // TODO: is the timezone bit necessary? + $event->start_date = strtotime($start_date_text." ".date_default_timezone_get()); + $end_date_text = trim(get_input('end_date','')); + //$event->original_end_date = get_input('end_date'); + if ($end_date_text) { + $event->end_date = strtotime($end_date_text." ".date_default_timezone_get()); + //$event->munged_end_date_string = $end_date_text." ".date_default_timezone_get(); } else { - $event->end_time = ''; + $event->end_date = ''; } - if (is_numeric($event->start_time)) { - // Set start date to the Unix start time, if set. - // This allows sorting by date *and* time. - $event->start_date += $event->start_time*60; + + if ($event_calendar_times != 'no') { + $hour = get_input('start_time_hour',''); + $minute = get_input('start_time_minute',''); + $meridian = get_input('start_time_meridian',''); + if (is_numeric($hour) && is_numeric($minute)) { + $event->start_time = event_calendar_convert_to_time($hour,$minute,$meridian); + } else { + $event->start_time = ''; + } + $hour = get_input('end_time_hour',''); + $minute = get_input('end_time_minute',''); + $meridian = get_input('end_time_meridian',''); + if (is_numeric($hour) && is_numeric($minute)) { + $event->end_time = event_calendar_convert_to_time($hour,$minute,$meridian); + } else { + $event->end_time = ''; + } + if (is_numeric($event->start_date) && is_numeric($event->start_time)) { + // Set start date to the Unix start time, if set. + // This allows sorting by date *and* time. + $event->start_date += $event->start_time*60; + } } } if ($event_calendar_spots_display == 'yes') { @@ -147,8 +170,7 @@ function event_calendar_set_event_from_form($event_guid,$group_guid) { $event->organiser = get_input('organiser'); $event->tags = string_to_tag_array(get_input('tags')); $event->long_description = get_input('long_description'); - $event->all_day = get_input('all_day'); - $event->schedule_type = get_input('schedule_type'); + $event->schedule_type = $schedule_type; $event->send_reminder = get_input('send_reminder'); $event->reminder_number = get_input('reminder_number'); $event->reminder_interval = get_input('reminder_interval'); @@ -193,7 +215,8 @@ function event_calendar_set_event_from_form($event_guid,$group_guid) { return $event; } -function event_calendar_get_events_between($start_date,$end_date,$is_count=FALSE,$limit=10,$offset=0,$container_guid=0,$region='-') { +function event_calendar_get_events_between($start_date,$end_date,$is_count=FALSE,$limit=10,$offset=0,$container_guid=0,$region='-') { + $polls_supported = elgg_is_active_plugin('event_poll'); if ($is_count) { $count = event_calendar_get_entities_from_metadata_between2('start_date','end_date', $start_date, $end_date, "object", "event_calendar", 0, $container_guid, $limit,$offset,"",0,false,true,$region); @@ -203,6 +226,11 @@ function event_calendar_get_events_between($start_date,$end_date,$is_count=FALSE $start_date, $end_date, "object", "event_calendar", 0, $container_guid, $limit,$offset,"",0,false,false,$region); $repeating_events = event_calendar_get_repeating_events_between($start_date,$end_date,$container_guid,$region); $all_events = event_calendar_merge_repeating_events($events, $repeating_events); + if ($polls_supported) { + elgg_load_library('elgg:event_poll'); + $all_events = event_poll_merge_poll_events($all_events,$start_date,$end_date); + } + return $all_events; } } @@ -1204,10 +1232,12 @@ function event_calendar_get_formatted_full_items($event) { $event_calendar_region_display = elgg_get_plugin_setting('region_display', 'event_calendar'); $event_calendar_type_display = elgg_get_plugin_setting('type_display', 'event_calendar'); $event_items = array(); - $item = new stdClass(); - $item->title = elgg_echo('event_calendar:when_label'); - $item->value = $time_bit; - $event_items[] = $item; + if ($time_bit) { + $item = new stdClass(); + $item->title = elgg_echo('event_calendar:when_label'); + $item->value = $time_bit; + $event_items[] = $item; + } $item = new stdClass(); $item->title = elgg_echo('event_calendar:venue_label'); $item->value = htmlspecialchars($event->venue); @@ -1244,6 +1274,9 @@ function event_calendar_get_formatted_full_items($event) { } function event_calendar_get_formatted_time($event) { + if (!$event->start_date) { + return ''; + } $date_format = 'j M Y'; $event_calendar_times = elgg_get_plugin_setting('times', 'event_calendar') != 'no'; @@ -1448,18 +1481,9 @@ function event_calendar_get_page_content_list($page_type,$container_guid,$start_ elgg_push_context('groups'); elgg_set_page_owner_guid($container_guid); $user_guid = elgg_get_logged_in_user_guid(); - $group_calendar = elgg_get_plugin_setting('group_calendar', 'event_calendar'); - if (!$group_calendar || $group_calendar == 'members') { - if (elgg_get_page_owner_entity()->canWriteToContainer($user_guid)){ - elgg_register_menu_item('title', array( - 'name' => 'add', - 'href' => "event_calendar/add/".$container_guid, - 'text' => elgg_echo('event_calendar:add'), - 'class' => 'elgg-button elgg-button-action', - )); - } - } else if ($group_calendar == 'admin') { - if (elgg_is_admin_logged_in() || ($group->owner_guid == $user_guid)) { + // TODO - ideally avoid the check on the event_poll plugin, perhaps by having event_poll remove the menu item + if(event_calendar_can_add($container_guid)) { + if (!elgg_plugin_exists('event_poll')) { elgg_register_menu_item('title', array( 'name' => 'add', 'href' => "event_calendar/add/".$container_guid, @@ -1470,20 +1494,9 @@ function event_calendar_get_page_content_list($page_type,$container_guid,$start_ } } else { elgg_push_breadcrumb(elgg_echo('item:object:event_calendar')); - $site_calendar = elgg_get_plugin_setting('site_calendar', 'event_calendar'); - if (!$site_calendar || $site_calendar == 'admin') { - // only admins can post directly to the site-wide calendar - if (elgg_is_admin_logged_in()) { - elgg_register_menu_item('title', array( - 'name' => 'add', - 'href' => "event_calendar/add", - 'text' => elgg_echo('event_calendar:add'), - 'class' => 'elgg-button elgg-button-action', - )); - } - } else if ($site_calendar == 'loggedin') { - // any logged-in user can post to the site calendar - if (elgg_is_logged_in()) { + $user_guid = elgg_get_logged_in_user_guid(); + if(event_calendar_can_add($container_guid)) { + if (!elgg_plugin_exists('event_poll')) { elgg_register_menu_item('title', array( 'name' => 'add', 'href' => "event_calendar/add", @@ -1535,7 +1548,7 @@ function event_calendar_get_page_content_edit($page_type,$guid) { $event = get_entity((int)$guid); if (elgg_instanceof($event, 'object', 'event_calendar') && $event->canEdit()) { $body_vars['event'] = $event; - $body_vars['form_data'] = event_calendar_prepare_edit_form_vars($event); + $body_vars['form_data'] = event_calendar_prepare_edit_form_vars($event,$page_type); $event_container = get_entity($event->container_guid); if (elgg_instanceof($event_container, 'group')) { @@ -1554,6 +1567,7 @@ function event_calendar_get_page_content_edit($page_type,$guid) { } } else { $title = elgg_echo('event_calendar:add_event_title'); + if ($guid) { // add to group $group = get_entity($guid); @@ -1561,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(); + $body_vars['form_data'] = event_calendar_prepare_edit_form_vars(NULL,$page_type); $content = elgg_view_form('event_calendar/edit', $vars, $body_vars); } else { $content = elgg_echo('event_calendar:no_group'); @@ -1571,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(); + $body_vars['form_data'] = event_calendar_prepare_edit_form_vars(NULL,$page_type); $content = elgg_view_form('event_calendar/edit', $vars, $body_vars); } @@ -1590,17 +1604,22 @@ function event_calendar_get_page_content_edit($page_type,$guid) { * @param ElggObject $event * @return array */ -function event_calendar_prepare_edit_form_vars($event = NULL) { +function event_calendar_prepare_edit_form_vars($event = NULL, $page_type = '') { // input names => defaults + $now = time(); + $iso_date = date('Y-m-d',$now); + $now_midnight = strtotime($iso_date); + $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' => NULL, - 'end_date' => NULL, - 'start_time' => NULL, - 'end_time' => NULL, + 'start_date' => $now+60*60, + 'end_date' => $now+2*60*60, + 'start_time' => $start_time, + 'end_time' => $start_time + 60, 'spots' => NULL, 'region' => '-', 'event_type' => '-', @@ -1608,11 +1627,9 @@ function event_calendar_prepare_edit_form_vars($event = NULL) { 'contact' => NULL, 'organiser' => NULL, 'tags' => NULL, - 'all_day' => 0, 'send_reminder' => NULL, 'reminder_number' => 1, 'reminder_interval' => 60, - 'schedule_type' => 'fixed', 'repeats' => NULL, 'repeat_interval' => 1, 'event-calendar-repeating-monday-value' => 0, @@ -1628,6 +1645,12 @@ function event_calendar_prepare_edit_form_vars($event = NULL) { 'access_id' => ACCESS_DEFAULT, 'group_guid' => NULL, ); + + if ($page_type == 'schedule') { + $values['schedule_type'] = 'poll'; + } else { + $values['schedule_type'] = 'fixed'; + } if ($event) { foreach (array_keys($values) as $field) { @@ -2102,6 +2125,7 @@ function event_calendar_get_page_content_fullcalendar_events($start_date,$end_da } $event_array = array(); $times_supported = elgg_get_plugin_setting('times','event_calendar') != 'no'; + $polls_supported = elgg_plugin_exists('event_poll'); foreach($events as $e) { $event = $e['event']; $event_data = $e['data']; @@ -2115,11 +2139,16 @@ function event_calendar_get_page_content_fullcalendar_events($start_date,$end_da 'start' => date('c',$ed['start_time']), 'end' => date('c',$ed['end_time']), ); - if (!$times_supported || $event->all_day) { + if (!$times_supported || ($event->schedule_type == 'all_day')) { $event_item['allDay'] = TRUE; } else { $event_item['allDay'] = FALSE; } + + if ($polls_supported && isset($e['is_event_poll']) && $e['is_event_poll']) { + $event_item['className'] = 'event-poll-class'; + $event_item['title'] .= ' '.elgg_echo('event_calendar:poll_suffix'); + } $event_array[] = $event_item; } @@ -2298,3 +2327,45 @@ function event_calendar_get_join_bbb_url($event) { return $url; } +// returns TRUE if the given user can add an event to the given calendar +// if group_guid is 0, this is assumed to be the site calendar +function event_calendar_can_add($group_guid=0,$user_guid=0) { + if (!$user_guid) { + if (elgg_is_logged_in()) { + $user_guid = elgg_get_logged_in_user_guid(); + } else { + return FALSE; + } + } + if ($group_guid) { + if (!event_calendar_activated_for_group($group_guid)) { + return FALSE; + } + $group = get_entity($group_guid); + if (elgg_instanceof($group,'group')) { + $group_calendar = elgg_get_plugin_setting('group_calendar', 'event_calendar'); + if (!$group_calendar || $group_calendar == 'members') { + return $group->canWriteToContainer($user_guid); + } else if ($group_calendar == 'admin') { + if ($group->canEdit($user_guid)) { + return TRUE; + } else { + return FALSE; + } + } + } else { + return FALSE; + } + } else { + $site_calendar = elgg_get_plugin_setting('site_calendar', 'event_calendar'); + if (!$site_calendar || $site_calendar == 'admin') { + // only admins can post directly to the site-wide calendar + return elgg_is_admin_user($user_guid); + } else if ($site_calendar == 'loggedin') { + // any logged-in user can post to the site calendar + return TRUE; + } + } + + return FALSE; +} diff --git a/start.php b/start.php index 4c17c719b..c9f95c8d6 100644 --- a/start.php +++ b/start.php @@ -190,6 +190,7 @@ function event_calendar_page_handler($page) { case 'manage_users': echo event_calendar_get_page_content_manage_users($page[1]); break; + case 'schedule': case 'add': if (isset($page[1])) { group_gatekeeper(); diff --git a/views/default/event_calendar/css.php b/views/default/event_calendar/css.php index 4d68f500f..9461a7fe9 100644 --- a/views/default/event_calendar/css.php +++ b/views/default/event_calendar/css.php @@ -269,4 +269,9 @@ li.event-calendar-filter-menu-show-only { .event-calendar-description { display: none; -} \ No newline at end of file +} + +.event-calendar-edit-bottom { + clear: both; + margin-bottom: 5px; +} diff --git a/views/default/event_calendar/datetime_edit.php b/views/default/event_calendar/datetime_edit.php index aa3a8f2de..ceceeb20e 100644 --- a/views/default/event_calendar/datetime_edit.php +++ b/views/default/event_calendar/datetime_edit.php @@ -9,16 +9,16 @@ if ($event_calendar_times != 'no') { $body .= '

      '; } $body .= elgg_view("event_calendar/input/date_local",array( - 'timestamp'=>TRUE, + //'timestamp'=>TRUE, 'autocomplete'=>'off', 'class'=>'event-calendar-compressed-date', 'name' => 'start_date', 'value'=>$vars['start_date'])); $body .= elgg_view("input/timepicker",array('name' => 'start_time','value'=>$vars['start_time'])); if ($event_calendar_hide_end != 'yes') { - $body .= '

      '; + $body .= '

      '; $body .= elgg_view("event_calendar/input/date_local",array( - 'timestamp'=>TRUE, + //'timestamp'=>TRUE, 'autocomplete'=>'off', 'class'=>'event-calendar-compressed-date', 'name' => 'end_date', @@ -26,7 +26,7 @@ if ($event_calendar_times != 'no') { )); $body .= elgg_view("input/timepicker",array('name' => 'end_time','value'=>$vars['end_time'])); } - $body .= '

      '; + $body .= '

      '; } else { $body .= '

      '.$prefix['start_date'].elgg_echo('event_calendar:start_date_description').'

      '; if ($event_calendar_hide_end != 'yes') { - $body .= '

      '; - $body .= '

      '.$prefix['end_date'].elgg_echo('event_calendar:end_date_description').'

      '; + //$body .= '

      '.$prefix['end_date'].elgg_echo('event_calendar:end_date_description').'

      '; } } diff --git a/views/default/event_calendar/full_calendar_view.php b/views/default/event_calendar/full_calendar_view.php index 6c21c42c8..5fffff624 100644 --- a/views/default/event_calendar/full_calendar_view.php +++ b/views/default/event_calendar/full_calendar_view.php @@ -14,7 +14,7 @@ handleEventClick = function(event) { handleEventDrop = function(event,dayDelta,minuteDelta,allDay,revertFunc) { - if (!confirm("Are you sure about this change?")) { + if (!confirm("")) { revertFunc(); } else { elgg.action('event_calendar/modify_full_calendar', diff --git a/views/default/event_calendar/personal_manage_section.php b/views/default/event_calendar/personal_manage_section.php new file mode 100644 index 000000000..9e03db0ab --- /dev/null +++ b/views/default/event_calendar/personal_manage_section.php @@ -0,0 +1,20 @@ + 'open', + elgg_echo('event_calendar:personal_manage:by_event:closed') => 'closed', + elgg_echo('event_calendar:personal_manage:by_event:private') => 'private', + ); + $body .= '
      '; + $body .= '

      '.elgg_echo('event_calendar:personal_manage:label').'

      '; + $body .= elgg_view("input/radio",array('name' => 'personal_manage','value'=>$fd['personal_manage'],'options'=>$personal_manage_options)); + //$body .= '

      '.$prefix['personal_manage'].elgg_echo('event_calendar:personal_manage:description').'

      '; + $body .= '
      '; + $body .= '
      '; +} + +echo $body; diff --git a/views/default/event_calendar/reminder_section.php b/views/default/event_calendar/reminder_section.php new file mode 100644 index 000000000..fffa6d065 --- /dev/null +++ b/views/default/event_calendar/reminder_section.php @@ -0,0 +1,28 @@ +'; + if ($fd['send_reminder']) { + $body .= elgg_view('input/checkbox',array('name'=>'send_reminder','checked' => 'checked','value'=>1)); + } else { + $body .= elgg_view('input/checkbox',array('name'=>'send_reminder','value'=>1)); + } + $body .= elgg_echo('elgg_calendar:send_reminder_label'). ' '; + $numbers = array(); + for ($i=1;$i<60;$i++) { + $numbers[$i] = $i; + } + $intervals = array( + 1 => elgg_echo('event_calendar:interval:minute'), + 60 => elgg_echo('event_calendar:interval:hour'), + 60*24 => elgg_echo('event_calendar:interval:day'), + ); + + $body .= elgg_view('input/dropdown',array('name'=>'reminder_number','options_values'=>$numbers,'value'=>$fd['reminder_number'])); + $body .= elgg_view('input/dropdown',array('name'=>'reminder_interval','options_values'=>$intervals,'value'=>$fd['reminder_interval'])); + $body .= elgg_echo('elgg_calendar:send_reminder_before'); + $body .= '
      '; +} +echo $body; diff --git a/views/default/event_calendar/schedule_section.php b/views/default/event_calendar/schedule_section.php new file mode 100644 index 000000000..3a74dc789 --- /dev/null +++ b/views/default/event_calendar/schedule_section.php @@ -0,0 +1,22 @@ +'; +$body .= elgg_view('event_calendar/datetime_edit', + array( + 'start_date' => $fd['start_date'], + 'end_date' => $fd['end_date'], + 'start_time' => $fd['start_time'], + 'end_time' => $fd['end_time'], + 'prefix' => $vars['prefix'], +)); +if ($event_calendar_repeated_events == 'yes') { + $body .= elgg_view('event_calendar/repeat_form_element',$vars); +} + +$body .= elgg_view('event_calendar/reminder_section',$vars); +$body .= '
      '; + +echo $body; diff --git a/views/default/event_calendar/share_section.php b/views/default/event_calendar/share_section.php new file mode 100644 index 000000000..134f07656 --- /dev/null +++ b/views/default/event_calendar/share_section.php @@ -0,0 +1,26 @@ +'; +$body .= '

      '.elgg_echo('event_calendar:permissions:header').'

      '; +if($event_calendar_hide_access == 'yes') { + $event_calendar_default_access = elgg_get_plugin_setting('default_access', 'event_calendar'); + if($event_calendar_default_access) { + $body .= elgg_view("input/hidden",array('name' => 'access_id','value'=>$event_calendar_default_access)); + } else { + $body .= elgg_view("input/hidden",array('name' => 'access_id','value'=>ACCESS_DEFAULT)); + } +} else { + $body .= '

      '; + $body .= elgg_view("input/access",array('name' => 'access_id','value'=>$fd['access_id'])); + $body .= '

      '; +} +if (elgg_plugin_exists('entity_admins')) { + $body .= elgg_echo('event_calendar:share_ownership:label'); + $body .= '
      '; + $body .= elgg_echo('event_calendar:share_ownership:description'); + $body .= elgg_view('input/entity_admins_dropdown',array('entity'=>$vars['event'])); +} +$body .= '
      '; + +echo $body; diff --git a/views/default/forms/event_calendar/edit.php b/views/default/forms/event_calendar/edit.php index 278fdddce..6ea06a6b4 100644 --- a/views/default/forms/event_calendar/edit.php +++ b/views/default/forms/event_calendar/edit.php @@ -2,17 +2,15 @@ $event = $vars['event']; $fd = $vars['form_data']; -$personal_manage_options = array( - elgg_echo('event_calendar:personal_manage:by_event:open') => 'open', - elgg_echo('event_calendar:personal_manage:by_event:closed') => 'closed', - elgg_echo('event_calendar:personal_manage:by_event:private') => 'private', -); - $schedule_options = array( - elgg_echo('event_calendar:schedule_type:poll')=>'poll', + elgg_echo('event_calendar:all_day_label') => 'all_day', elgg_echo('event_calendar:schedule_type:fixed')=>'fixed', ); +if (elgg_plugin_exists('event_poll')) { + $schedule_options = array_merge(array(elgg_echo('event_calendar:schedule_type:poll')=>'poll'),$schedule_options); +} + $event_calendar_fewer_fields = elgg_get_plugin_setting('fewer_fields', 'event_calendar'); $event_calendar_repeating_events = elgg_get_plugin_setting('repeating_events', 'event_calendar'); @@ -20,12 +18,8 @@ $event_calendar_region_display = elgg_get_plugin_setting('region_display', 'even $event_calendar_type_display = elgg_get_plugin_setting('type_display', 'event_calendar'); $event_calendar_spots_display = elgg_get_plugin_setting('spots_display', 'event_calendar'); //$event_calendar_add_users = elgg_get_plugin_setting('add_users', 'event_calendar'); -$event_calendar_hide_access = elgg_get_plugin_setting('hide_access', 'event_calendar'); $event_calendar_more_required = elgg_get_plugin_setting('more_required', 'event_calendar'); -$event_calendar_personal_manage = elgg_get_plugin_setting('personal_manage', 'event_calendar'); -$event_calendar_repeated_events = elgg_get_plugin_setting('repeated_events', 'event_calendar'); -$event_calendar_reminders = elgg_get_plugin_setting('reminders', 'event_calendar'); $event_calendar_bbb_server_url = elgg_get_plugin_setting('bbb_server_url', 'event_calendar'); if ($event_calendar_more_required == 'yes') { @@ -49,53 +43,6 @@ foreach ($all_fields as $fn) { } if ($event) { - /*$title = $event->title; - $brief_description = $event->description; - $venue = $event->venue; - // this is a form redisplay, so take the values as submitted - $start_date = $event->start_date; - $end_date = $event->end_date; - - if ($event_calendar_region_display) { - $region = $event->region; - if (!$region) { - $region = '-'; - } - } - - if ($event_calendar_spots_display) { - $spots = trim($event->spots); - } - if ($event_calendar_type_display) { - $event_type = $event->event_type; - if (!$event_type) { - $event_type = '-'; - } - } - $fees = $event->fees; - $contact = $event->contact; - $organiser = $event->organiser; - if ($event->tags) { - $event_tags = $event->tags; - } else { - // old way - $event_tags = $event->event_tags; - } - $reminder_number = $event->reminder_number; - $reminder_interval = $event->reminder_interval; - - $long_description = $event->long_description; - $access = $event->access_id; - if ($event_calendar_times != 'no') { - $start_time = $event->start_time; - $end_time = $event->end_time; - } - if ($event_calendar_personal_manage == 'by_event') { - $personal_manage = $event->personal_manage; - if (!$personal_manage) { - $personal_manage = 'open'; - } - }*/ $event_action = 'manage_event'; $event_guid = $event->guid; } else { @@ -106,8 +53,7 @@ if ($event) { $title = $fd['title']; $brief_description = $fd['description']; $venue = $fd['venue']; -$start_date = $fd['start_date']; -$end_date = $fd['end_date']; + $fees = $fd['fees']; if ($event_calendar_spots_display) { $spots = $fd['spots']; @@ -122,19 +68,16 @@ $contact = $fd['contact']; $organiser = $fd['organiser']; $event_tags = $fd['tags']; $all_day = $fd['all_day']; -$send_reminder = $fd['send_reminder']; -$reminder_number = $fd['reminder_number']; -$reminder_interval = $fd['reminder_interval']; $schedule_type = $fd['schedule_type']; $long_description = $fd['long_description']; -$access = $fd['access_id']; -if ($event_calendar_times != 'no') { + +/*if ($event_calendar_times != 'no') { $start_time = $fd['start_time']; $end_time = $fd['end_time']; } if ($event_calendar_personal_manage == 'by_event') { $personal_manage = $fd['personal_manage']; -} +}*/ $body = '
      '; @@ -187,15 +130,11 @@ $body .= '
      '; $body .= '
      '; $body .= '

      '.elgg_echo('event_calendar:schedule:header').'

      '; -if ($all_day) { - $body .= elgg_view('input/checkbox',array('name'=>'all_day','value'=>1,'checked'=>'checked')); -} else { - $body .= elgg_view('input/checkbox',array('name'=>'all_day','value'=>1)); -} -$body .= elgg_echo('event_calendar:all_day_label'); -if(elgg_plugin_exists('event_poll')) { - $body .= elgg_view('input/radio',array('name'=>'schedule_type','value'=>$schedule_type,'options'=>$schedule_options)); -} +$body .= elgg_view('input/radio',array('id'=>'event-calendar-edit-schedule-type','name'=>'schedule_type','value'=>$schedule_type,'options'=>$schedule_options)); + +$vars['prefix'] = $prefix; + +/* $body .= '
      '; $body .= elgg_view('event_calendar/datetime_edit', array( @@ -230,7 +169,9 @@ if ($event_calendar_reminders == 'yes') { $body .= elgg_view('input/dropdown',array('name'=>'reminder_interval','options_values'=>$intervals,'value'=>$reminder_interval)); $body .= elgg_echo('elgg_calendar:send_reminder_before'); $body .= '
      '; -} +}*/ + +$body .= elgg_view('event_calendar/schedule_section',$vars); if ($event_calendar_spots_display == 'yes') { $body .= '

      '; $body .= '

      '.$prefix['spots'].elgg_echo('event_calendar:spots_description').'

      '; } -$body .= '
      '; + +$body .= '
      '; $body .= '
      '; // the following feature has been superceded by the manage subscribers feature @@ -250,23 +192,27 @@ $body .= ''; $body .= '

      '.elgg_echo('event_calendar:add_user_description').'

      '; }*/ -if ($event_calendar_personal_manage == 'by_event') { +$body .= elgg_view('event_calendar/personal_manage_section',$vars); + +/*if ($event_calendar_personal_manage == 'by_event') { $body .= '
      '; $body .= '

      '.elgg_echo('event_calendar:personal_manage:label').'

      '; $body .= elgg_view("input/radio",array('name' => 'personal_manage','value'=>$personal_manage,'options'=>$personal_manage_options)); //$body .= '

      '.$prefix['personal_manage'].elgg_echo('event_calendar:personal_manage:description').'

      '; $body .= '
      '; $body .= '
      '; -} +}*/ -$body .= '';*/ if ($event_calendar_region_display == 'yes' || $event_calendar_type_display == 'yes' || $event_calendar_fewer_fields != 'yes') { $body .= '
      '; diff --git a/views/default/input/datepicker_inline.php b/views/default/input/datepicker_inline.php index 1d0a0689d..3fd9c37af 100644 --- a/views/default/input/datepicker_inline.php +++ b/views/default/input/datepicker_inline.php @@ -65,7 +65,6 @@ $("#").datepicker({ document.location.href = "".replace('%s', date.substring(0,10)); }, dateFormat: "yy-mm-dd", - defaultDate: "", beforeShowDay: highlightWeek }); @@ -76,7 +75,7 @@ if ("" == "month") { end_date += 1; } $("#").datepicker("setDate", start_date, end_date); -var done_loading = true; +done_loading = true; }); diff --git a/views/default/input/timepicker.php b/views/default/input/timepicker.php index ccbb88778..2cc95ced7 100644 --- a/views/default/input/timepicker.php +++ b/views/default/input/timepicker.php @@ -1,5 +1,4 @@ 'am','pm'=>'pm'); + if ($hour == 0) { + $hour = 12; + $meridian = 'am'; + } else if ($hour == 12) { + $meridian = 'pm'; + } else if ($hour < 12) { + $meridian = 'am'; } else { - $h1 = 0; - $h2 = 11; + $hour -= 12; + $meridian = 'pm'; } - for($h=$h1;$h<=12;$h++) { - $ht = sprintf("%02d",$h); - for($m=0;$m<60;$m=$m+15) { - $mt = sprintf("%02d",$m); - $t = $h*60+$m; - if ($h < 12) { - $dates[$t] = "$ht:$mt am"; - } else { - $dates[$t] = "$ht:$mt pm"; - } - } - } - for($h=1;$h<$h2;$h++) { - $ht = sprintf("%02d",$h); - for($m=0;$m<60;$m=$m+15) { - $mt = sprintf("%02d",$m); - $t = 12*60+$h*60+$m; - $dates[$t] = "$ht:$mt pm"; - } - } - if ($event_calendar_restricted_times == 'yes') { - $m = 0; - $h = 9; - $ht = sprintf("%02d",$h); - $mt = sprintf("%02d",$m); - $t = 12*60+$h*60+$m; - $dates[$t] = "$ht:$mt pm"; + for($h=1;$h<=12;$h++) { + $hours[$h] = $h; } } else { - if ($event_calendar_restricted_times == 'yes') { - $h1 = 6; - $h2 = 21; - } else { - $h1 = 0; - $h2 = 24; - } - for($h=$h1;$h<$h2;$h++) { - $ht = sprintf("%02d",$h); - for($m=0;$m<60;$m=$m+15) { - $mt = sprintf("%02d",$m); - $t = $h*60+$m; - $dates[$t] = "$ht:$mt"; - } - } - if ($event_calendar_restricted_times == 'yes') { - $m = 0; - $h = 21; - $ht = sprintf("%02d",$h); - $mt = sprintf("%02d",$m); - $t = 12*60+$h*60+$m; - $dates[$t] = "$ht:$mt pm"; + for($h=0;$h<=23;$h++) { + $hours[$h] = $h; } -} +} -echo elgg_view('input/dropdown',array('name'=>$vars['name'],'value'=>$time,'options_values'=>$dates)); +for($m=0;$m<60;$m=$m+5) { + $mt = sprintf("%02d",$m); + $minutes[$m] = $mt; +} +echo elgg_view('input/dropdown',array('name'=>$vars['name'].'_hour','value'=>$hour,'options_values'=>$hours)); +echo " : "; +echo elgg_view('input/dropdown',array('name'=>$vars['name'].'_minute','value'=>$minute,'options_values'=>$minutes)); +if ($time_format == '12') { + echo elgg_view('input/dropdown',array('name'=>$vars['name'].'_meridian','value'=>$meridian,'options_values'=>$meridians)); +} diff --git a/views/default/js/event_calendar/event_calendar.php b/views/default/js/event_calendar/event_calendar.php index b3ca2cc7b..244846f96 100644 --- a/views/default/js/event_calendar/event_calendar.php +++ b/views/default/js/event_calendar/event_calendar.php @@ -10,6 +10,8 @@ elgg.event_calendar.init = function () { $('.event-calendar-repeating-unselected').live('click',elgg.event_calendar.handleRepeatingSelect); $('.event-calendar-repeating-selected').live('click',elgg.event_calendar.handleRepeatingUnselect); $('#event-calendar-edit').submit(elgg.event_calendar.handleEditFormSubmit); + $('#event-calendar-edit-schedule-type').click(elgg.event_calendar.handleScheduleType); + elgg.event_calendar.handleScheduleType(); var all_day_field = $('[name="all_day"][type="checkbox"]'); if (all_day_field.is(':checked')) { @@ -21,6 +23,28 @@ elgg.event_calendar.init = function () { all_day_field.change(elgg.event_calendar.handleAllDayField); } +elgg.event_calendar.handleScheduleType = function(e) { + var st = $('#event-calendar-edit-schedule-type:checked').val(); + if (st == 'poll') { + $(".event-calendar-edit-date-wrapper").hide(); + $(".event-calendar-edit-reminder-wrapper").hide(); + $(".event-calendar-edit-form-membership-block").hide(); + $(".event-calendar-edit-form-share-block").hide(); + } else { + $(".event-calendar-edit-date-wrapper").show(); + $(".event-calendar-edit-reminder-wrapper").show(); + $(".event-calendar-edit-form-membership-block").show(); + $(".event-calendar-edit-form-share-block").show(); + if (st == 'all_day') { + $("[name='start_time']").hide(); + $("#event-calendar-to-time-wrapper").hide(); + } else { + $("[name='start_time']").show(); + $("#event-calendar-to-time-wrapper").show(); + } + } +} + elgg.event_calendar.handleAllDayField = function(e) { var field = $('[name="start_time"]'); if (field.attr('disabled') == 'disabled') { -- cgit v1.2.3 From f22f6fd7a985b773bce95accf5172cdc2524575c Mon Sep 17 00:00:00 2001 From: Kevin Jardine Date: Tue, 29 May 2012 12:35:20 +0200 Subject: added lightbox support for full calendar events --- models/model.php | 20 ++++++++++++-------- start.php | 3 +++ views/default/event_calendar/full_calendar_view.php | 5 ++++- 3 files changed, 19 insertions(+), 9 deletions(-) (limited to 'views/default') diff --git a/models/model.php b/models/model.php index 7de514802..b53471a44 100644 --- a/models/model.php +++ b/models/model.php @@ -1855,7 +1855,7 @@ function event_calendar_generate_listing_params($page_type,$container_guid,$orig return $params; } -function event_calendar_get_page_content_view($event_guid) { +function event_calendar_get_page_content_view($event_guid,$light_box = FALSE) { // add personal calendar button and links elgg_push_context('event_calendar:view'); $event = get_entity($event_guid); @@ -1885,12 +1885,16 @@ function event_calendar_get_page_content_view($event_guid) { $content .= elgg_view_comments($event); } } - - $params = array('title' => $title, 'content' => $content,'filter' => ''); - - $body = elgg_view_layout("content", $params); - - return elgg_view_page($title,$body); + + if ($light_box) { + return '
      '.elgg_view_title($title).$content.'
      '; + } else { + $params = array('title' => $title, 'content' => $content,'filter' => ''); + + $body = elgg_view_layout("content", $params); + + return elgg_view_page($title,$body); + } } function event_calendar_get_page_content_display_users($event_guid) { @@ -2135,7 +2139,7 @@ function event_calendar_get_page_content_fullcalendar_events($start_date,$end_da 'id' => $event->guid, 'guid' => $event->guid, 'title' => $event->title, - 'url' => $event->getURL(), + 'url' => elgg_get_site_url().'event_calendar/view_light_box/'.$event->guid, 'start' => date('c',$ed['start_time']), 'end' => date('c',$ed['end_time']), ); diff --git a/start.php b/start.php index c9f95c8d6..9d3d45e4d 100644 --- a/start.php +++ b/start.php @@ -184,6 +184,9 @@ function event_calendar_page_handler($page) { case 'view': echo event_calendar_get_page_content_view($page[1]); break; + case 'view_light_box': + echo event_calendar_get_page_content_view($page[1],TRUE); + break; case 'display_users': echo event_calendar_get_page_content_display_users($page[1]); break; diff --git a/views/default/event_calendar/full_calendar_view.php b/views/default/event_calendar/full_calendar_view.php index 5fffff624..d7b6d97a2 100644 --- a/views/default/event_calendar/full_calendar_view.php +++ b/views/default/event_calendar/full_calendar_view.php @@ -1,5 +1,7 @@ @@ -7,7 +9,8 @@ elgg_load_js('elgg.full_calendar'); handleEventClick = function(event) { if (event.url) { - window.location.href = event.url; + //window.location.href = event.url; + $.fancybox({'href':event.url}); return false; } }; -- cgit v1.2.3 From 321fbfdb059e39b921e13ba034855b019981fa44 Mon Sep 17 00:00:00 2001 From: Kevin Jardine Date: Tue, 29 May 2012 18:09:16 +0200 Subject: added click on calendar to preselect new event date --- models/model.php | 17 ++++++---- start.php | 2 +- views/default/event_calendar/css.php | 4 +++ .../default/event_calendar/full_calendar_view.php | 39 ++++++++++++++++++++++ 4 files changed, 55 insertions(+), 7 deletions(-) (limited to 'views/default') 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, diff --git a/start.php b/start.php index 9d3d45e4d..8c8bba19b 100644 --- a/start.php +++ b/start.php @@ -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("")) { @@ -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 }); }); -- cgit v1.2.3 From 425f301ef3ed02796442c4cff0d33eff25f98edf Mon Sep 17 00:00:00 2001 From: Kevin Jardine Date: Mon, 4 Jun 2012 14:22:57 +0200 Subject: fixed schedule link and all day form behaviour --- start.php | 2 +- views/default/event_calendar/datetime_edit.php | 4 ++++ views/default/js/event_calendar/event_calendar.php | 16 ++++++++-------- 3 files changed, 13 insertions(+), 9 deletions(-) (limited to 'views/default') diff --git a/start.php b/start.php index 8c8bba19b..6d346b743 100644 --- a/start.php +++ b/start.php @@ -298,7 +298,7 @@ function event_calendar_entity_menu_setup($hook, $type, $return, $params) { 'name' => 'schedule', 'text' => elgg_echo('event_poll:schedule_button'), 'title' => elgg_echo('event_poll:schedule_button'), - 'href' => 'event_poll/schedule/'.$entity->guid, + 'href' => 'event_poll/vote/'.$entity->guid, 'priority' => 150, ); $return[] = ElggMenuItem::factory($options); diff --git a/views/default/event_calendar/datetime_edit.php b/views/default/event_calendar/datetime_edit.php index ceceeb20e..64af30f53 100644 --- a/views/default/event_calendar/datetime_edit.php +++ b/views/default/event_calendar/datetime_edit.php @@ -14,7 +14,9 @@ if ($event_calendar_times != 'no') { 'class'=>'event-calendar-compressed-date', 'name' => 'start_date', 'value'=>$vars['start_date'])); + $body .= ''; $body .= elgg_view("input/timepicker",array('name' => 'start_time','value'=>$vars['start_time'])); + $body .= ''; if ($event_calendar_hide_end != 'yes') { $body .= '

      '; $body .= elgg_view("event_calendar/input/date_local",array( @@ -24,7 +26,9 @@ if ($event_calendar_times != 'no') { 'name' => 'end_date', 'value'=>$vars['end_date'], )); + $body .= ''; $body .= elgg_view("input/timepicker",array('name' => 'end_time','value'=>$vars['end_time'])); + $body .= ''; } $body .= '

      '; } else { diff --git a/views/default/js/event_calendar/event_calendar.php b/views/default/js/event_calendar/event_calendar.php index 244846f96..65c4d2952 100644 --- a/views/default/js/event_calendar/event_calendar.php +++ b/views/default/js/event_calendar/event_calendar.php @@ -15,10 +15,10 @@ elgg.event_calendar.init = function () { var all_day_field = $('[name="all_day"][type="checkbox"]'); if (all_day_field.is(':checked')) { - $('[name="start_time"]').val(0); - $('[name="start_time"]').attr('disabled','disabled'); - $('[name="end_time"]').val(0); - $('[name="end_time"]').attr('disabled','disabled'); + //$('[name="start_time"]').val(0); + $('#event-calendar-start-time-wrapper').attr('disabled','disabled'); + //$('[name="end_time"]').val(0); + $('#event-calendar-end-time-wrapper').attr('disabled','disabled'); } all_day_field.change(elgg.event_calendar.handleAllDayField); } @@ -36,11 +36,11 @@ elgg.event_calendar.handleScheduleType = function(e) { $(".event-calendar-edit-form-membership-block").show(); $(".event-calendar-edit-form-share-block").show(); if (st == 'all_day') { - $("[name='start_time']").hide(); - $("#event-calendar-to-time-wrapper").hide(); + $("#event-calendar-start-time-wrapper").hide(); + $("#event-calendar-end-time-wrapper").hide(); } else { - $("[name='start_time']").show(); - $("#event-calendar-to-time-wrapper").show(); + $("#event-calendar-start-time-wrapper").show(); + $("#event-calendar-end-time-wrapper").show(); } } } -- cgit v1.2.3 From d760deb0117b3a1b1adec1b38c73ebe412d02e1e Mon Sep 17 00:00:00 2001 From: Kevin Jardine Date: Thu, 21 Jun 2012 15:55:59 +0200 Subject: small tweaks for UF --- languages/en.php | 3 ++- models/model.php | 6 +++++- views/default/event_calendar/full_calendar_view.php | 21 +++++++++++++++++---- 3 files changed, 24 insertions(+), 6 deletions(-) (limited to 'views/default') diff --git a/languages/en.php b/languages/en.php index 782cd7a72..3d8c94e3f 100644 --- a/languages/en.php +++ b/languages/en.php @@ -50,7 +50,7 @@ 'event_calendar:month_label' => "Month", 'event_calendar:group' => "Group calendar", 'event_calendar:new' => "Add event", - 'event_calendar:submit' => "Submit", + 'event_calendar:submit' => "Save and Continue", 'event_calendar:cancel' => "Cancel", 'event_calendar:widget_title' => "Event calendar", 'event_calendar:widget:description' => "Displays your events.", @@ -310,6 +310,7 @@ You can manage calendar requests for this event here: 'event_calendar:settings:reminders:title' => "Allow sending reminders", 'event_calendar:reminder:subject' => "Reminder for event: %s", 'event_calendar:poll_suffix' => "(poll)", + 'event_calendar:cannot_drag_polls' => "Cannot change event polls.", 'event_calendar:reminder:body' => "The event %s diff --git a/models/model.php b/models/model.php index d25c8dca3..aea6bca2f 100644 --- a/models/model.php +++ b/models/model.php @@ -2144,7 +2144,6 @@ function event_calendar_get_page_content_fullcalendar_events($start_date,$end_da 'id' => $event->guid, 'guid' => $event->guid, 'title' => $event->title, - 'url' => elgg_get_site_url().'event_calendar/view_light_box/'.$event->guid, 'start' => date('c',$ed['start_time']), 'end' => date('c',$ed['end_time']), ); @@ -2157,6 +2156,11 @@ function event_calendar_get_page_content_fullcalendar_events($start_date,$end_da if ($polls_supported && isset($e['is_event_poll']) && $e['is_event_poll']) { $event_item['className'] = 'event-poll-class'; $event_item['title'] .= ' '.elgg_echo('event_calendar:poll_suffix'); + $event_item['is_event_poll'] = TRUE; + $event_item['url'] = elgg_get_site_url().'event_poll/vote/'.$event->guid; + } else { + $event_item['is_event_poll'] = FALSE; + $event_item['url'] = elgg_get_site_url().'event_calendar/view_light_box/'.$event->guid; } $event_array[] = $event_item; diff --git a/views/default/event_calendar/full_calendar_view.php b/views/default/event_calendar/full_calendar_view.php index d86a3ac27..bba3a66db 100644 --- a/views/default/event_calendar/full_calendar_view.php +++ b/views/default/event_calendar/full_calendar_view.php @@ -9,8 +9,12 @@ elgg_load_css('lightbox'); handleEventClick = function(event) { if (event.url) { - //window.location.href = event.url; - $.fancybox({'href':event.url}); + if (event.is_event_poll) { + window.location.href = event.url; + } else { + //window.location.href = event.url; + $.fancybox({'href':event.url}); + } return false; } }; @@ -38,8 +42,10 @@ handleDayClick = function(date,allDay,jsEvent,view) { } handleEventDrop = function(event,dayDelta,minuteDelta,allDay,revertFunc) { - - if (!confirm("")) { + if (event.is_event_poll) { + alert(""); + revertFunc(); + } else if (!confirm("")) { revertFunc(); } else { elgg.action('event_calendar/modify_full_calendar', @@ -67,6 +73,12 @@ getISODate = function(d) { return year +"-"+month+"-"+day; } +handleEventRender = function(event, element, view) { + if (event.is_event_poll) { + element.draggable = false; + } +} + handleGetEvents = function(start, end, callback) { var start_date = getISODate(start); var end_date = getISODate(end); @@ -105,6 +117,7 @@ $(document).ready(function() { ignoreTimezone: true, editable: true, slotMinutes: 15, + eventRender: handleEventRender, eventDrop: handleEventDrop, eventClick: handleEventClick, dayClick: handleDayClick, -- cgit v1.2.3 From f7096ad23eefdb9bab187975544bcbd6eddf8c88 Mon Sep 17 00:00:00 2001 From: Kevin Jardine Date: Fri, 22 Jun 2012 17:48:26 +0200 Subject: improved selected date across month, week and day views --- .../default/event_calendar/full_calendar_view.php | 42 ++++++++++++++++++---- 1 file changed, 36 insertions(+), 6 deletions(-) (limited to 'views/default') diff --git a/views/default/event_calendar/full_calendar_view.php b/views/default/event_calendar/full_calendar_view.php index bba3a66db..6ba8fe892 100644 --- a/views/default/event_calendar/full_calendar_view.php +++ b/views/default/event_calendar/full_calendar_view.php @@ -7,6 +7,8 @@ elgg_load_css('lightbox'); ?>
      + -- cgit v1.2.3 From 0e264d23ae1b4c4a186cb855ed984bb082908fbb Mon Sep 17 00:00:00 2001 From: Kevin Jardine Date: Tue, 26 Jun 2012 21:41:58 +0200 Subject: more changes to support event polls --- actions/event_calendar/modify_full_calendar.php | 13 +++++- languages/en.php | 5 ++- models/model.php | 48 +++++++++++--------- start.php | 4 +- .../default/event_calendar/full_calendar_view.php | 51 ++++++++++++++-------- 5 files changed, 76 insertions(+), 45 deletions(-) (limited to 'views/default') diff --git a/actions/event_calendar/modify_full_calendar.php b/actions/event_calendar/modify_full_calendar.php index 595bdbe4b..9288eb0e0 100644 --- a/actions/event_calendar/modify_full_calendar.php +++ b/actions/event_calendar/modify_full_calendar.php @@ -3,9 +3,18 @@ elgg_load_library('elgg:event_calendar'); $event_guid = get_input('event_guid',0); $day_delta = get_input('dayDelta'); $minute_delta = get_input('minuteDelta',''); - -if (event_calendar_modify_full_calendar($event_guid,$day_delta,$minute_delta)) { +$start_time = get_input('startTime',''); +$resend = get_input('resend',''); +$minutes = get_input('minutes'); +$iso_date = get_input('iso_date'); +$result = event_calendar_modify_full_calendar($event_guid,$day_delta,$minute_delta,$start_time,$resend,$minutes,$iso_date); +if ($result) { $response = array('success'=>TRUE); + // specially handling for event polls + if (is_array($result)) { + $response['minutes'] = $result['minutes']; + $response['iso_date'] = $result['iso_date']; + } } else { $response = array('success'=>FALSE, 'message' =>elgg_echo('event_calendar:modify_full_calendar:error')); } diff --git a/languages/en.php b/languages/en.php index 3d8c94e3f..3fd9cf7cb 100644 --- a/languages/en.php +++ b/languages/en.php @@ -309,8 +309,6 @@ You can manage calendar requests for this event here: 'event_calendar:settings:repeated_events:title' => "Allow repeated events (currently only works properly in full calendar mode)", 'event_calendar:settings:reminders:title' => "Allow sending reminders", 'event_calendar:reminder:subject' => "Reminder for event: %s", - 'event_calendar:poll_suffix' => "(poll)", - 'event_calendar:cannot_drag_polls' => "Cannot change event polls.", 'event_calendar:reminder:body' => "The event %s @@ -332,6 +330,9 @@ You can visit the event page here: 'event_calendar:bbb_create_error' => "Error: unable to create BBB conference, message was: %s", 'event_calendar:bbb_settings_error' => "Error: must set conference URL and salt in plugin settings", 'event_calendar:join_conf_button' => "Join conference", + + 'event_calendar:poll_suffix' => "(poll)", + 'event_calendar:resend_poll_invitation' => "Do you want to alert poll invitees that the options have changed?", /** * Event calendar river diff --git a/models/model.php b/models/model.php index aea6bca2f..2752626bc 100644 --- a/models/model.php +++ b/models/model.php @@ -2091,28 +2091,34 @@ function getLastDayOfMonth($month,$year) { return idate('d', mktime(0, 0, 0, ($month + 1), 0, $year)); } -// TODO - this is not quite right across daylight savings time divides -// Possible solution: convert stored date to server date, do inc and then convert back to GMT - -function event_calendar_modify_full_calendar($event_guid,$day_delta,$minute_delta) { +function event_calendar_modify_full_calendar($event_guid,$day_delta,$minute_delta,$start_time,$resend,$minutes,$iso_date) { $event = get_entity($event_guid); if (elgg_instanceof($event,'object','event_calendar') && $event->canEdit()) { - $event->start_date = strtotime("$day_delta days",$event->start_date)+60*$minute_delta; - if ($event->end_date) { - $event->end_date = strtotime("$day_delta days",$event->end_date); - } - $times = elgg_get_plugin_setting('times','event_calendar'); - //$inc = 24*60*60*$day_delta+60*$minute_delta; - - //$event->real_end_time += $inc; - $event->real_end_time = strtotime("$day_delta days",$event->real_end_time)+60*$minute_delta; - if ($times != 'no') { - $event->start_time += $minute_delta; - if ($event->end_time) { - $event->end_time += $minute_delta; + if ($event->is_event_poll) { + if (elgg_is_active_plugin('event_poll')) { + elgg_load_library('elgg:event_poll'); + return event_poll_change($event_guid,$day_delta,$minute_delta,$start_time,$resend,$minutes,$iso_date); + } else { + return FALSE; + } + } else { + $event->start_date = strtotime("$day_delta days",$event->start_date)+60*$minute_delta; + if ($event->end_date) { + $event->end_date = strtotime("$day_delta days",$event->end_date); } + $times = elgg_get_plugin_setting('times','event_calendar'); + //$inc = 24*60*60*$day_delta+60*$minute_delta; + + //$event->real_end_time += $inc; + $event->real_end_time = strtotime("$day_delta days",$event->real_end_time)+60*$minute_delta; + if ($times != 'no') { + $event->start_time += $minute_delta; + if ($event->end_time) { + $event->end_time += $minute_delta; + } + } + return TRUE; } - return TRUE; } return FALSE; } @@ -2134,14 +2140,13 @@ function event_calendar_get_page_content_fullcalendar_events($start_date,$end_da } $event_array = array(); $times_supported = elgg_get_plugin_setting('times','event_calendar') != 'no'; - $polls_supported = elgg_plugin_exists('event_poll'); + $polls_supported = elgg_is_active_plugin('event_poll'); foreach($events as $e) { $event = $e['event']; $event_data = $e['data']; $c = count($event_data); foreach($event_data as $ed) { $event_item = array( - 'id' => $event->guid, 'guid' => $event->guid, 'title' => $event->title, 'start' => date('c',$ed['start_time']), @@ -2158,7 +2163,10 @@ function event_calendar_get_page_content_fullcalendar_events($start_date,$end_da $event_item['title'] .= ' '.elgg_echo('event_calendar:poll_suffix'); $event_item['is_event_poll'] = TRUE; $event_item['url'] = elgg_get_site_url().'event_poll/vote/'.$event->guid; + $event_item['minutes'] = $ed['minutes']; + $event_item['iso_date'] = $ed['iso_date']; } else { + $event_item['id'] = $event->guid; $event_item['is_event_poll'] = FALSE; $event_item['url'] = elgg_get_site_url().'event_calendar/view_light_box/'.$event->guid; } diff --git a/start.php b/start.php index ebd88d541..dd5437944 100644 --- a/start.php +++ b/start.php @@ -66,7 +66,7 @@ function event_calendar_init() { elgg_extend_view('css/elgg', 'event_calendar/css'); $event_calendar_listing_format = elgg_get_plugin_setting('listing_format', 'event_calendar'); - if (elgg_plugin_exists('event_poll') || ($event_calendar_listing_format == 'full')) { + if (elgg_is_active_plugin('event_poll') || ($event_calendar_listing_format == 'full')) { elgg_extend_view('css/elgg', 'fullcalendar/css'); $plugin_js = elgg_get_simplecache_url('js', 'event_calendar/fullcalendar'); elgg_register_js('elgg.full_calendar', $plugin_js); @@ -293,7 +293,7 @@ function event_calendar_entity_menu_setup($hook, $type, $return, $params) { if ($handler != 'event_calendar') { return $return; } - if (elgg_plugin_exists('event_poll') && $entity->canEdit() && $entity->schedule_type == 'poll') { + if (elgg_is_active_plugin('event_poll') && $entity->canEdit() && $entity->schedule_type == 'poll') { $options = array( 'name' => 'schedule', 'text' => elgg_echo('event_poll:schedule_button'), diff --git a/views/default/event_calendar/full_calendar_view.php b/views/default/event_calendar/full_calendar_view.php index 6ba8fe892..4316b5359 100644 --- a/views/default/event_calendar/full_calendar_view.php +++ b/views/default/event_calendar/full_calendar_view.php @@ -54,21 +54,32 @@ handleDayClick = function(date,allDay,jsEvent,view) { } handleEventDrop = function(event,dayDelta,minuteDelta,allDay,revertFunc) { - if (event.is_event_poll) { - alert(""); - revertFunc(); - } else if (!confirm("")) { + + if (!event.is_event_poll && !confirm("")) { revertFunc(); } else { + if (event.is_event_poll) { + if (confirm("")) { + var resend = 1; + } else { + resend = 0; + } + var data = {event_guid: event.guid, startTime: event.start.toISOString(), dayDelta: dayDelta, minuteDelta: minuteDelta, resend: resend, minutes: event.minutes, iso_date: event.iso_date}; + } else { + data = {event_guid: event.guid, startTime: event.start.toISOString(), dayDelta: dayDelta, minuteDelta: minuteDelta}; + } elgg.action('event_calendar/modify_full_calendar', { - data: {event_guid: event.guid,dayDelta: dayDelta, minuteDelta: minuteDelta}, + data: data, success: function (res) { var success = res.success; var msg = res.message; if (!success) { elgg.register_error(msg,2000); revertFunc() + } else { + event.minutes = res.minutes; + event.iso_date = res.iso_date; } } } @@ -86,9 +97,9 @@ getISODate = function(d) { } handleEventRender = function(event, element, view) { - if (event.is_event_poll) { + /*if (event.is_event_poll) { element.draggable = false; - } + }*/ } handleGetEvents = function(start, end, callback) { @@ -103,19 +114,21 @@ handleGetEvents = function(start, end, callback) { // 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; + if (link != undefined) { + 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); } - 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); } handleViewDisplay = function(view) { -- cgit v1.2.3 From 2d605dc207541121f02fda9893509acb8e605212 Mon Sep 17 00:00:00 2001 From: Kevin Jardine Date: Wed, 27 Jun 2012 11:05:16 +0200 Subject: changed CSS to avoid form flash of irrelevant content for event polls, and deleted some commented out code --- actions/event_calendar/modify_full_calendar.php | 2 +- views/default/event_calendar/css.php | 6 ++ views/default/forms/event_calendar/edit.php | 86 ------------------------- 3 files changed, 7 insertions(+), 87 deletions(-) (limited to 'views/default') diff --git a/actions/event_calendar/modify_full_calendar.php b/actions/event_calendar/modify_full_calendar.php index 9288eb0e0..1e0bd3a01 100644 --- a/actions/event_calendar/modify_full_calendar.php +++ b/actions/event_calendar/modify_full_calendar.php @@ -10,7 +10,7 @@ $iso_date = get_input('iso_date'); $result = event_calendar_modify_full_calendar($event_guid,$day_delta,$minute_delta,$start_time,$resend,$minutes,$iso_date); if ($result) { $response = array('success'=>TRUE); - // specially handling for event polls + // special handling for event polls if (is_array($result)) { $response['minutes'] = $result['minutes']; $response['iso_date'] = $result['iso_date']; diff --git a/views/default/event_calendar/css.php b/views/default/event_calendar/css.php index b1e17e4df..c1dbf4633 100644 --- a/views/default/event_calendar/css.php +++ b/views/default/event_calendar/css.php @@ -261,10 +261,16 @@ li.event-calendar-filter-menu-show-only { .event-calendar-edit-date-wrapper { clear: both; margin-left: 20px; + display: none; } .event-calendar-edit-reminder-wrapper { margin-top: 10px; + display: none; +} + +.event-calendar-edit-form-membership-block, .event-calendar-edit-form-share-block { + display: none; } .event-calendar-description { diff --git a/views/default/forms/event_calendar/edit.php b/views/default/forms/event_calendar/edit.php index 6ea06a6b4..2ba744fc4 100644 --- a/views/default/forms/event_calendar/edit.php +++ b/views/default/forms/event_calendar/edit.php @@ -17,7 +17,6 @@ $event_calendar_repeating_events = elgg_get_plugin_setting('repeating_events', ' $event_calendar_region_display = elgg_get_plugin_setting('region_display', 'event_calendar'); $event_calendar_type_display = elgg_get_plugin_setting('type_display', 'event_calendar'); $event_calendar_spots_display = elgg_get_plugin_setting('spots_display', 'event_calendar'); -//$event_calendar_add_users = elgg_get_plugin_setting('add_users', 'event_calendar'); $event_calendar_more_required = elgg_get_plugin_setting('more_required', 'event_calendar'); $event_calendar_bbb_server_url = elgg_get_plugin_setting('bbb_server_url', 'event_calendar'); @@ -71,14 +70,6 @@ $all_day = $fd['all_day']; $schedule_type = $fd['schedule_type']; $long_description = $fd['long_description']; -/*if ($event_calendar_times != 'no') { - $start_time = $fd['start_time']; - $end_time = $fd['end_time']; -} -if ($event_calendar_personal_manage == 'by_event') { - $personal_manage = $fd['personal_manage']; -}*/ - $body = '
      '; $body .= elgg_view('input/hidden',array('name'=>'event_action', 'value'=>$event_action)); @@ -134,43 +125,6 @@ $body .= elgg_view('input/radio',array('id'=>'event-calendar-edit-schedule-type' $vars['prefix'] = $prefix; -/* -$body .= '
      '; -$body .= elgg_view('event_calendar/datetime_edit', - array( - 'start_date' => $start_date, - 'end_date' => $end_date, - 'start_time' => $start_time, - 'end_time' => $end_time, - 'prefix' => $prefix, -)); -if ($event_calendar_repeated_events == 'yes') { - $body .= elgg_view('event_calendar/repeat_form_element',$vars); -} -if ($event_calendar_reminders == 'yes') { - $body .= '
      '; - if ($send_reminder) { - $body .= elgg_view('input/checkbox',array('name'=>'send_reminder','checked' => 'checked','value'=>1)); - } else { - $body .= elgg_view('input/checkbox',array('name'=>'send_reminder','value'=>1)); - } - $body .= elgg_echo('elgg_calendar:send_reminder_label'). ' '; - $numbers = array(); - for ($i=1;$i<60;$i++) { - $numbers[$i] = $i; - } - $intervals = array( - 1 => elgg_echo('event_calendar:interval:minute'), - 60 => elgg_echo('event_calendar:interval:hour'), - 60*24 => elgg_echo('event_calendar:interval:day'), - ); - - $body .= elgg_view('input/dropdown',array('name'=>'reminder_number','options_values'=>$numbers,'value'=>$reminder_number)); - $body .= elgg_view('input/dropdown',array('name'=>'reminder_interval','options_values'=>$intervals,'value'=>$reminder_interval)); - $body .= elgg_echo('elgg_calendar:send_reminder_before'); - $body .= '
      '; -}*/ - $body .= elgg_view('event_calendar/schedule_section',$vars); if ($event_calendar_spots_display == 'yes') { @@ -183,50 +137,10 @@ if ($event_calendar_spots_display == 'yes') { $body .= '
      '; $body .= '
      '; -// the following feature has been superceded by the manage subscribers feature - -/*if ($event_calendar_add_users == 'yes') { - $body .= '



      '; - $body .= '

      '.elgg_echo('event_calendar:add_user_description').'

      '; -}*/ - $body .= elgg_view('event_calendar/personal_manage_section',$vars); -/*if ($event_calendar_personal_manage == 'by_event') { - $body .= '
      '; - $body .= '

      '.elgg_echo('event_calendar:personal_manage:label').'

      '; - $body .= elgg_view("input/radio",array('name' => 'personal_manage','value'=>$personal_manage,'options'=>$personal_manage_options)); - //$body .= '

      '.$prefix['personal_manage'].elgg_echo('event_calendar:personal_manage:description').'

      '; - $body .= '
      '; - $body .= '
      '; -}*/ - $body .= elgg_view('event_calendar/share_section',$vars); -/*$body .= '';*/ - if ($event_calendar_region_display == 'yes' || $event_calendar_type_display == 'yes' || $event_calendar_fewer_fields != 'yes') { $body .= '
      '; -- cgit v1.2.3 From bd6840a34cd9d3b3afabf3f6c977f8cea5a32662 Mon Sep 17 00:00:00 2001 From: Matt Beckett Date: Tue, 3 Jul 2012 12:54:06 -0600 Subject: removed old widget file Allows calendar widget to be useful in groups context --- models/model.php | 4 +-- views/default/widgets/event_calendar/content.php | 8 +++-- views/default/widgets/event_calendar/view.php | 39 ------------------------ 3 files changed, 8 insertions(+), 43 deletions(-) delete mode 100644 views/default/widgets/event_calendar/view.php (limited to 'views/default') diff --git a/models/model.php b/models/model.php index 2752626bc..ba1393a8c 100644 --- a/models/model.php +++ b/models/model.php @@ -1150,12 +1150,12 @@ function event_calendar_security_fields() { return "__elgg_token=$token&__elgg_ts=$ts"; } -function event_calendar_get_events_for_group($group_guid) { +function event_calendar_get_events_for_group($group_guid, $limit = 0) { $options = array( 'type' => 'object', 'subtype' => 'event_calendar', 'container_guid' => $group_guid, - 'limit' => 0, + 'limit' => $limit, ); return elgg_get_entities($options); } diff --git a/views/default/widgets/event_calendar/content.php b/views/default/widgets/event_calendar/content.php index 329046cb0..eaedb76bd 100644 --- a/views/default/widgets/event_calendar/content.php +++ b/views/default/widgets/event_calendar/content.php @@ -20,8 +20,12 @@ $num = 5; // Get the events - - $events = event_calendar_get_personal_events_for_user(elgg_get_page_owner_guid(),$num); + $owner = elgg_get_page_owner_entity(); + if(elgg_instanceof($owner, 'group')) { + $events = event_calendar_get_events_for_group(elgg_get_page_owner_guid(),$num); + } else { + $events = event_calendar_get_personal_events_for_user(elgg_get_page_owner_guid(),$num); + } // If there are any events to view, view them if (is_array($events) && sizeof($events) > 0) { diff --git a/views/default/widgets/event_calendar/view.php b/views/default/widgets/event_calendar/view.php deleted file mode 100644 index 329046cb0..000000000 --- a/views/default/widgets/event_calendar/view.php +++ /dev/null @@ -1,39 +0,0 @@ - - * @copyright Radagast Solutions 2008 - * @link http://radagast.biz/ - * - */ - - // Load event calendar model - elgg_load_library('elgg:event_calendar'); - - //the number of events to display - $num = (int) $vars['entity']->num_display; - if (!$num) - $num = 5; - - // Get the events - - $events = event_calendar_get_personal_events_for_user(elgg_get_page_owner_guid(),$num); - - // If there are any events to view, view them - if (is_array($events) && sizeof($events) > 0) { - - echo "
      "; - - foreach($events as $event) { - echo elgg_view("object/event_calendar",array('entity' => $event)); - } - - echo "
      "; - - } - -?> \ No newline at end of file -- cgit v1.2.3 From 1246e9bc6cafc7f186e1d8fe4370786cd8179b27 Mon Sep 17 00:00:00 2001 From: Kevin Jardine Date: Thu, 5 Jul 2012 14:31:34 +0200 Subject: removed deprecated plugin setting --- views/default/plugins/event_calendar/settings.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'views/default') diff --git a/views/default/plugins/event_calendar/settings.php b/views/default/plugins/event_calendar/settings.php index e91db9969..db6e00913 100644 --- a/views/default/plugins/event_calendar/settings.php +++ b/views/default/plugins/event_calendar/settings.php @@ -112,7 +112,7 @@ $body .= elgg_view('input/radio',array('name'=>'params[times]','value'=>$event_c $body .= '
      '; -$event_calendar_restricted_times = elgg_get_plugin_setting('restricted_times', 'event_calendar'); +/*$event_calendar_restricted_times = elgg_get_plugin_setting('restricted_times', 'event_calendar'); if (!$event_calendar_restricted_times) { $event_calendar_restricted_times = 'no'; } @@ -121,7 +121,7 @@ $body .= elgg_echo('event_calendar:settings:restricted_times:title'); $body .= '
      '; $body .= elgg_view('input/radio',array('name'=>'params[restricted_times]','value'=>$event_calendar_restricted_times,'options'=>$yn_options)); -$body .= '
      '; +$body .= '
      ';*/ $event_calendar_time_format = elgg_get_plugin_setting('timeformat', 'event_calendar'); if (!$event_calendar_time_format) { -- cgit v1.2.3 From 5c7dcf2a382479a4f9cf7eafeaa4eb30faed440d Mon Sep 17 00:00:00 2001 From: Kevin Jardine Date: Mon, 16 Jul 2012 10:56:17 +0200 Subject: load library in object view for external calls like search --- views/default/object/event_calendar.php | 2 ++ 1 file changed, 2 insertions(+) (limited to 'views/default') diff --git a/views/default/object/event_calendar.php b/views/default/object/event_calendar.php index b72c869ea..afd4325f1 100644 --- a/views/default/object/event_calendar.php +++ b/views/default/object/event_calendar.php @@ -11,6 +11,8 @@ * */ +elgg_load_library('elgg:event_calendar'); + $event = $vars['entity']; $full = elgg_extract('full_view', $vars, FALSE); -- cgit v1.2.3