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 ++- 6 files changed, 243 insertions(+), 43 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/event_calendar') 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; -- 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/event_calendar') 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