diff options
author | Kevin Jardine <kevinjardine@yahoo.com> | 2012-04-03 12:31:42 +0200 |
---|---|---|
committer | Kevin Jardine <kevinjardine@yahoo.com> | 2012-04-03 12:31:42 +0200 |
commit | 0b25adcd921149b50845647980284e8ab66d8fed (patch) | |
tree | 0702f1ef157f0417cd1c17ba711f76e563e299ef /views/default | |
parent | 2d19bfa232be5eff43bb6c1d1eef12e681552956 (diff) | |
download | elgg-0b25adcd921149b50845647980284e8ab66d8fed.tar.gz elgg-0b25adcd921149b50845647980284e8ab66d8fed.tar.bz2 |
major changes to add new features, including a full calendar and repeating events
Diffstat (limited to 'views/default')
-rw-r--r-- | views/default/event_calendar/container.php | 24 | ||||
-rw-r--r-- | views/default/event_calendar/css.php | 98 | ||||
-rw-r--r-- | views/default/event_calendar/datetime_edit.php | 45 | ||||
-rw-r--r-- | views/default/event_calendar/full_calendar_view.php | 64 | ||||
-rw-r--r-- | views/default/event_calendar/repeat_form_element.php | 43 | ||||
-rw-r--r-- | views/default/event_calendar/show_events.php | 12 | ||||
-rw-r--r-- | views/default/forms/event_calendar/edit.php | 388 | ||||
-rw-r--r-- | views/default/input/timepicker.php | 38 | ||||
-rw-r--r-- | views/default/js/event_calendar/event_calendar.php | 58 | ||||
-rw-r--r-- | views/default/plugins/event_calendar/settings.php | 44 |
10 files changed, 613 insertions, 201 deletions
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 @@ +<?php +elgg_load_library('elgg:event_calendar'); +$site_calendar = elgg_get_plugin_setting('site_calendar', 'event_calendar'); +$admin = elgg_is_admin_logged_in(); +$containers = array(0 => 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 @@ +<?php +$event_calendar_times = elgg_get_plugin_setting('times', 'event_calendar'); +$event_calendar_hide_end = elgg_get_plugin_setting('hide_end', 'event_calendar'); +$prefix = $vars['prefix']; +$body = ''; + +if ($event_calendar_times != 'no') { + if ($event_calendar_hide_end != 'yes') { + $body .= '<p><label>'.elgg_echo('event_calendar:from_label').'</label>'; + } + $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 .= '</p><p><label>'.elgg_echo('event_calendar:to_label').'</label>'; + $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 .= '</p>'; +} else { + + $body .= '<p><label>'.elgg_echo("event_calendar:start_date_label").'<br />'; + $body .= elgg_view("event_calendar/input/date_local",array('timestamp'=>TRUE, 'autocomplete'=>'off','name' => 'start_date','value'=>$vars['start_date'])); + $body .= '</label></p>'; + $body .= '<p class="description">'.$prefix['start_date'].elgg_echo('event_calendar:start_date_description').'</p>'; + + if ($event_calendar_hide_end != 'yes') { + $body .= '<p><label>'.elgg_echo("event_calendar:end_date_label").'<br />'; + $body .= elgg_view("event_calendar/input/date_local",array('timestamp'=>TRUE,'autocomplete'=>'off','name' => 'end_date','value'=>$vars['end_date'])); + $body .= '</label></p>'; + $body .= '<p class="description">'.$prefix['end_date'].elgg_echo('event_calendar:end_date_description').'</p>'; + } +} + +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 @@ <?php elgg_load_js('elgg.full_calendar'); -$events = $vars['events']; - -$event_array = array(); -$times_supported = elgg_get_plugin_setting('times','event_calendar') != 'no'; - -foreach($events as $e) { - $event_item = array( - 'guid' => $e->guid, - //'title' => '<a href="'.$e->url.'">'.$e->title.'</a>', - '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? ?> <script> @@ -58,31 +33,40 @@ handleEventDrop = function(event,dayDelta,minuteDelta,allDay,revertFunc) { } }; -$(document).ready(function() { - var events = <?php echo $json_events_string; ?>; - var cal_events = []; - for (var i = 0; i < events.length; i++) { - cal_events.push({ - guid: events[i].guid, - title : events[i].title, - url: events[i].url, - start : new Date(1000*events[i].start_date), - end : new Date(1000*events[i].end_date), - allDay: events[i].allDay - }); - } - +getISODate = function(d) { + var year = d.getFullYear(); + var month = d.getMonth()+1; + month = month < 10 ? '0' + month : month; + var day = d.getDay()+1; + day = day < 10 ? '0' + day : day; + return year +"-"+month+"-"+day; +} + +handleGetEvents = function(start, end, callback) { + var start_date = getISODate(start); + var end_date = getISODate(end); + var url = "event_calendar/get_fullcalendar_events/"+start_date+"/"+end_date+"/<?php echo $vars['filter']; ?>/<?php echo $vars['group_guid']; ?>"; + elgg.getJSON(url, {success: + function(events) { + callback(events); + } + }); +} + +$(document).ready(function() { $('#calendar').fullCalendar({ header: { left: 'prev,next today', center: 'title', right: 'month,agendaWeek,agendaDay' }, + month: <?php echo date('n',strtotime($vars['start_date']))-1; ?>, + ignoreTimezone: true, editable: true, slotMinutes: 15, eventDrop: handleEventDrop, eventClick: handleEventClick, - events: cal_events + events: handleGetEvents }); }); </script> 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 @@ +<?php +$event = $vars['event']; +$fd = $vars['form_data']; +if ($fd['repeats'] == 'yes') { + echo elgg_view('input/checkbox',array('name'=>'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'); +?> +<div class="event-calendar-repeating-wrapper"> +<a id="event-calendar-repeating-monday" href="javascript:void(0);" class="event-calendar-repeating-unselected"> + <?php echo elgg_echo('event_calendar:day_abbrev:monday'); ?> +</a> +<a id="event-calendar-repeating-tuesday" href="javascript:void(0);" class="event-calendar-repeating-unselected"> + <?php echo elgg_echo('event_calendar:day_abbrev:tuesday'); ?> +</a> +<a id="event-calendar-repeating-wednesday" href="javascript:void(0);" class="event-calendar-repeating-unselected"> + <?php echo elgg_echo('event_calendar:day_abbrev:wednesday'); ?> +</a> +<a id="event-calendar-repeating-thursday" href="javascript:void(0);" class="event-calendar-repeating-unselected"> + <?php echo elgg_echo('event_calendar:day_abbrev:thursday'); ?> +</a> +<a id="event-calendar-repeating-friday" href="javascript:void(0);" class="event-calendar-repeating-unselected"> + <?php echo elgg_echo('event_calendar:day_abbrev:friday'); ?> +</a> +<a id="event-calendar-repeating-saturday" href="javascript:void(0);" class="event-calendar-repeating-unselected"> + <?php echo elgg_echo('event_calendar:day_abbrev:saturday'); ?> +</a> +<a id="event-calendar-repeating-sunday" href="javascript:void(0);" class="event-calendar-repeating-unselected"> + <?php echo elgg_echo('event_calendar:day_abbrev:sunday'); ?> +</a> +</div> +<input type="hidden" name="event-calendar-repeating-monday-value" value="<?php echo $fd['event-calendar-repeating-monday-value']; ?>"> +<input type="hidden" name="event-calendar-repeating-tuesday-value" value="<?php echo $fd['event-calendar-repeating-tuesday-value']; ?>"> +<input type="hidden" name="event-calendar-repeating-wednesday-value" value="<?php echo $fd['event-calendar-repeating-wednesday-value']; ?>"> +<input type="hidden" name="event-calendar-repeating-thursday-value" value="<?php echo $fd['event-calendar-repeating-thursday-value']; ?>"> +<input type="hidden" name="event-calendar-repeating-friday-value" value="<?php echo $fd['event-calendar-repeating-friday-value']; ?>"> +<input type="hidden" name="event-calendar-repeating-saturday-value" value="<?php echo $fd['event-calendar-repeating-saturday-value']; ?>"> +<input type="hidden" name="event-calendar-repeating-sunday-value" value="<?php echo $fd['event-calendar-repeating-sunday-value']; ?>"> 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 = '<p>'.elgg_echo('event_calendar:no_events_found').'</p>'; + if ($listing_format == 'full') { + // show the empty calendar + $event_list = elgg_view('event_calendar/full_calendar_view',$vars); + } else { + $event_list = '<p>'.elgg_echo('event_calendar:no_events_found').'</p>'; + } } 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 = '<div class="event-calendar-edit-form">'; $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 .= '<p><label>'.elgg_echo("event_calendar:title_label").'<br />'; -$body .= elgg_view("input/text",array('name' => 'title','value'=>$title)); -$body .= '</label></p>'; -$body .= '<p class="description">'.$prefix['title'].elgg_echo('event_calendar:title_description').'</p>'; +$body .= '<div class="event-calendar-edit-form-block event-calendar-edit-form-top-block">'; -$body .= '<p><label>'.elgg_echo("event_calendar:venue_label").'<br />'; -$body .= elgg_view("input/text",array('name' => 'venue','value'=>$venue)); -$body .= '</label></p>'; -$body .= '<p class="description">'.$prefix['venue'].elgg_echo('event_calendar:venue_description').'</p>'; +$body .= '<p><label>'.elgg_echo("event_calendar:title_label").'</label>'; +$body .= elgg_view("input/text",array('name' => 'title','class'=>'event-calendar-medium-text','value'=>$title)); +$body .= '</p>'; +$body .= '<p class="event-calendar-description">'.$prefix['title'].elgg_echo('event_calendar:title_description').'</p>'; -if ($event_calendar_times != 'no') { - $body .= '<div class="event-calendar-date-time-setter">'; - if ($event_calendar_hide_end != 'yes') { - $body .= '<p><label>'.elgg_echo('event_calendar:from_label').'</label>'; - } - $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 .= '</p><p><label>'.elgg_echo('event_calendar:to_label').'</label>'; - $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 .= '<p><label>'.elgg_echo("event_calendar:venue_label").'</label>'; +$body .= elgg_view("input/text",array('name' => 'venue','class'=>'event-calendar-medium-text','value'=>$venue)); +$body .= '</p>'; +$body .= '<p class="event-calendar-description">'.$prefix['venue'].elgg_echo('event_calendar:venue_description').'</p>'; + +$body .= '<p><label>'.elgg_echo("event_calendar:brief_description_label").'</label>'; +$body .= elgg_view("input/text",array('name' => 'description','class'=>'event-calendar-medium-text','value'=>$brief_description)); +$body .= '</p>'; +$body .= '<p class="event-calendar-description">'.$prefix['brief_description'].elgg_echo('event_calendar:brief_description_description').'</p>'; + +$body .= '<p><label>'.elgg_echo("event_calendar:event_tags_label").'</label>'; +$body .= elgg_view("input/tags",array('name' => 'tags','class'=>'event-calendar-medium-text','value'=>$event_tags)); +$body .= '</p>'; +$body .= '<p class="event-calendar-description">'.$prefix['event_tags'].elgg_echo('event_calendar:event_tags_description').'</p>'; + +$body .= '<p><label>'.elgg_echo("event_calendar:calendar_label").'</label>'; +$body .= elgg_view('event_calendar/container',array('container_guid'=>$vars['container_guid'])); +$body .= '</p>'; +$body .= '<p class="event-calendar-description">'.$prefix['calendar'].elgg_echo('event_calendar:calendar_description').'</p>'; + +if(elgg_plugin_exists('sched_conf')) { + $body .= '<p>'; + $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 .= '</p>'; - $body .= '</div>'; -} else { +} - $body .= '<p><label>'.elgg_echo("event_calendar:start_date_label").'<br />'; - $body .= elgg_view("event_calendar/input/date_local",array('timestamp'=>TRUE, 'autocomplete'=>'off','name' => 'start_date','value'=>$start_date)); - $body .= '</label></p>'; - $body .= '<p class="description">'.$prefix['start_date'].elgg_echo('event_calendar:start_date_description').'</p>'; - - if ($event_calendar_hide_end != 'yes') { - $body .= '<p><label>'.elgg_echo("event_calendar:end_date_label").'<br />'; - $body .= elgg_view("event_calendar/input/date_local",array('timestamp'=>TRUE,'autocomplete'=>'off','name' => 'end_date','value'=>$end_date)); - $body .= '</label></p>'; - $body .= '<p class="description">'.$prefix['end_date'].elgg_echo('event_calendar:end_date_description').'</p>'; +$body .= '</div>'; + +$body .= '<div class="event-calendar-edit-form-block event-calendar-edit-form-schedule-block">'; +$body .= '<h2>'.elgg_echo('event_calendar:schedule:header').'</h2>'; +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 .= '<div class="event-calendar-edit-date-wrapper">'; +$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 .= '<div class="event-calendar-edit-reminder-wrapper">'; + 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 .= '</div>'; } if ($event_calendar_spots_display == 'yes') { $body .= '<p><label>'.elgg_echo("event_calendar:spots_label").'<br />'; - $body .= elgg_view("input/text",array('name' => 'spots','value'=>$spots)); + $body .= elgg_view("input/text",array('name' => 'spots','class'=>'event-calendar-medium-text','value'=>$spots)); $body .= '</label></p>'; - $body .= '<p class="description">'.$prefix['spots'].elgg_echo('event_calendar:spots_description').'</p>'; + $body .= '<p class="event-calendar-description">'.$prefix['spots'].elgg_echo('event_calendar:spots_description').'</p>'; } +$body .= '</div>'; +$body .= '</div>'; // the following feature has been superceded by the manage subscribers feature @@ -172,91 +242,17 @@ if ($event_calendar_spots_display == 'yes') { $body .= '<p class="description">'.elgg_echo('event_calendar:add_user_description').'</p>'; }*/ -$body .= '<p><label>'.elgg_echo("event_calendar:brief_description_label").'<br />'; -$body .= elgg_view("input/text",array('name' => 'description','value'=>$brief_description)); -$body .= '</label></p>'; -$body .= '<p class="description">'.$prefix['brief_description'].elgg_echo('event_calendar:brief_description_description').'</p>'; - -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 .= '<p><label>'.elgg_echo("event_calendar:region_label").'<br />'; - $body .= elgg_view("input/dropdown",array('name' => 'region','value'=>$region,'options_values'=>$options)); - $body .= '</label></p>'; - $body .= '<p class="description">'.$prefix['region'].elgg_echo('event_calendar:region_description').'</p>'; - } -} - -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 .= '<p><label>'.elgg_echo("event_calendar:type_label").'<br />'; - $body .= elgg_view("input/dropdown",array('name' => 'event_type','value'=>$event_type,'options_values'=>$options)); - $body .= '</label></p>'; - $body .= '<p class="description">'.$prefix['event_type'].elgg_echo('event_calendar:type_description').'</p>'; - } -} - -$body .= '<p><label>'.elgg_echo("event_calendar:fees_label").'<br />'; -$body .= elgg_view("input/text",array('name' => 'fees','value'=>$fees)); -$body .= '</label></p>'; -$body .= '<p class="description">'.$prefix['fees'].elgg_echo('event_calendar:fees_description').'</p>'; - -$body .= '<p><label>'.elgg_echo("event_calendar:contact_label").'<br />'; -$body .= elgg_view("input/text",array('name' => 'contact','value'=>$contact)); -$body .= '</label></p>'; -$body .= '<p class="description">'.$prefix['contact'].elgg_echo('event_calendar:contact_description').'</p>'; - -$body .= '<p><label>'.elgg_echo("event_calendar:organiser_label").'<br />'; -$body .= elgg_view("input/text",array('name' => 'organiser','value'=>$organiser)); -$body .= '</label></p>'; -$body .= '<p class="description">'.$prefix['organiser'].elgg_echo('event_calendar:organiser_description').'</p>'; - if ($event_calendar_personal_manage == 'by_event') { - $body .= '<p><label>'.elgg_echo('event_calendar:personal_manage:label').'<br />'; + $body .= '<div class="event-calendar-edit-form-block event-calendar-edit-form-membership-block">'; + $body .= '<h2>'.elgg_echo('event_calendar:personal_manage:label').'</h2>'; $body .= elgg_view("input/radio",array('name' => 'personal_manage','value'=>$personal_manage,'options'=>$personal_manage_options)); - $body .= '</label></p>'; - $body .= '<p class="description">'.$prefix['personal_manage'].elgg_echo('event_calendar:personal_manage:description').'</p>'; + //$body .= '<p class="event-calendar-description">'.$prefix['personal_manage'].elgg_echo('event_calendar:personal_manage:description').'</p>'; + $body .= '<br clear="both" />'; + $body .= '</div>'; } -$body .= '<p><label>'.elgg_echo("event_calendar:event_tags_label").'<br />'; -$body .= elgg_view("input/tags",array('name' => 'tags','value'=>$event_tags)); -$body .= '</label></p>'; -$body .= '<p class="description">'.$prefix['event_tags'].elgg_echo('event_calendar:event_tags_description').'</p>'; - -$body .= '<p><label>'.elgg_echo("event_calendar:long_description_label").'<br />'; -$body .= elgg_view("input/longtext",array('name' => 'long_description','value'=>$long_description)); -$body .= '</label></p>'; -$body .= '<p class="description">'.$prefix['long_description'].elgg_echo('event_calendar:long_description_description').'</p>'; - +$body .= '<div class="event-calendar-edit-form-block event-calendar-edit-form-share-block">'; +$body .= '<h2>'.elgg_echo('event_calendar:permissions:header').'</h2>'; if($event_calendar_hide_access == 'yes') { $event_calendar_default_access = elgg_get_plugin_setting('default_access', 'event_calendar'); if($event_calendar_default_access) { @@ -265,11 +261,95 @@ if($event_calendar_hide_access == 'yes') { $body .= elgg_view("input/hidden",array('name' => 'access_id','value'=>ACCESS_PRIVATE)); } } else { - $body .= '<p><label>'.elgg_echo("access").'<br />'; + $body .= '<p><label>'.elgg_echo('event_calendar:read_access').'</label>'; $body .= elgg_view("input/access",array('name' => 'access_id','value'=>$access)); - $body .= '</label></p>'; + $body .= '</p>'; +} +$body .= elgg_echo('event_calendar:share_ownership:label'); +$body .= '<br />'; +$body .= elgg_echo('event_calendar:share_ownership:description'); +$body .= elgg_view('input/entity_admins_dropdown',array('entity'=>$event)); +$body .= '</div>'; + +if ($event_calendar_region_display == 'yes' || $event_calendar_type_display == 'yes' || $event_calendar_fewer_fields != 'yes') { + $body .= '<div class="event-calendar-edit-form-block event-calendar-edit-form-other-block">'; + + 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 .= '<p><label>'.elgg_echo("event_calendar:region_label").'</label>'; + $body .= elgg_view("input/dropdown",array('name' => 'region','value'=>$region,'options_values'=>$options)); + $body .= '</p>'; + $body .= '<p class="event-calendar-description">'.$prefix['region'].elgg_echo('event_calendar:region_description').'</p>'; + } + } + + 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 .= '<p><label>'.elgg_echo("event_calendar:type_label").'</label>'; + $body .= elgg_view("input/dropdown",array('name' => 'event_type','value'=>$event_type,'options_values'=>$options)); + $body .= '</p>'; + $body .= '<p class="event-calendar-description">'.$prefix['event_type'].elgg_echo('event_calendar:type_description').'</p>'; + } + } + + if ($event_calendar_fewer_fields != 'yes') { + + $body .= '<p><label>'.elgg_echo("event_calendar:fees_label").'</label>'; + $body .= elgg_view("input/text",array('name' => 'fees','class'=>'event-calendar-medium-text','value'=>$fees)); + $body .= '</p>'; + $body .= '<p class="event-calendar-description">'.$prefix['fees'].elgg_echo('event_calendar:fees_description').'</p>'; + + $body .= '<p><label>'.elgg_echo("event_calendar:contact_label").'</label>'; + $body .= elgg_view("input/text",array('name' => 'contact','class'=>'event-calendar-medium-text','value'=>$contact)); + $body .= '</p>'; + $body .= '<p class="event-calendar-description">'.$prefix['contact'].elgg_echo('event_calendar:contact_description').'</p>'; + + $body .= '<p><label>'.elgg_echo("event_calendar:organiser_label").'</label>'; + $body .= elgg_view("input/text",array('name' => 'organiser','class'=>'event-calendar-medium-text','value'=>$organiser)); + $body .= '</p>'; + $body .= '<p class="event-calendar-description">'.$prefix['organiser'].elgg_echo('event_calendar:organiser_description').'</p>'; + + $body .= '<p><label>'.elgg_echo("event_calendar:long_description_label").'</label>'; + $body .= elgg_view("input/longtext",array('name' => 'long_description','class'=>'event-calendar-long-text','value'=>$long_description)); + $body .= '</p>'; + $body .= '<p class="event-calendar-description">'.$prefix['long_description'].elgg_echo('event_calendar:long_description_description').'</p>'; + } + + $body .= '</div>'; } $body .= elgg_view('input/submit', array('name'=>'submit','value'=>elgg_echo('event_calendar:submit'))); +$body .= '</div>'; + 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 @@ <?php - +$event_calendar_restricted_times = elgg_get_plugin_setting('restricted_times', 'event_calendar'); $time_format = elgg_get_plugin_setting('timeformat', 'event_calendar'); if (!$time_format) { $time_format = '24'; @@ -18,7 +18,14 @@ $dates = array(); $dates['-'] = '-'; if ($time_format == '12') { - for($h=0;$h<=12;$h++) { + if ($event_calendar_restricted_times == 'yes') { + $h1 = 6; + $h2 = 9; + } else { + $h1 = 0; + $h2 = 11; + } + for($h=$h1;$h<=12;$h++) { $ht = sprintf("%02d",$h); for($m=0;$m<60;$m=$m+15) { $mt = sprintf("%02d",$m); @@ -30,7 +37,7 @@ if ($time_format == '12') { } } } - for($h=1;$h<12;$h++) { + for($h=1;$h<$h2;$h++) { $ht = sprintf("%02d",$h); for($m=0;$m<60;$m=$m+15) { $mt = sprintf("%02d",$m); @@ -38,8 +45,23 @@ if ($time_format == '12') { $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"; + } } else { - for($h=0;$h<24;$h++) { + 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); @@ -47,6 +69,14 @@ if ($time_format == '12') { $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"; + } } echo elgg_view('input/dropdown',array('name'=>$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 .= '<br />'; +$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 .= '<br />'; +$body .= elgg_view('input/radio',array('name'=>'params[repeated_events]','value'=>$event_calendar_repeated_events,'options'=>$yn_options)); + +$body .= '<br />'; + +$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 .= '<br />'; +$body .= elgg_view('input/radio',array('name'=>'params[reminders]','value'=>$event_calendar_reminders,'options'=>$yn_options)); + +$body .= '<br />'; + $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 .= '<br />'; +$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 .= '<br />'; +$body .= elgg_view('input/radio',array('name'=>'params[restricted_times]','value'=>$event_calendar_restricted_times,'options'=>$yn_options)); + +$body .= '<br />'; + $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 .= '<br />'; +$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 .= '<br />'; +$body .= elgg_view('input/radio',array('name'=>'params[fewer_fields]','value'=>$event_calendar_fewer_fields,'options'=>$yn_options)); + +$body .= '<br />'; + $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', |