]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
full calendar click to view, time system revamp
authorKevin Jardine <kevinjardine@yahoo.com>
Mon, 19 Mar 2012 16:09:30 +0000 (17:09 +0100)
committerKevin Jardine <kevinjardine@yahoo.com>
Mon, 19 Mar 2012 16:09:30 +0000 (17:09 +0100)
languages/en.php
models/model.php
views/default/event_calendar/css.php
views/default/event_calendar/full_calendar_view.php
views/default/forms/event_calendar/edit.php
views/default/input/timepicker.php
views/default/input/timepicker_old.php [new file with mode: 0644]
views/default/plugins/event_calendar/settings.php

index 1a356524b470a49d27f52e70c39bc3db035ffa66..2e4c3373a2566a0af996b0f7253e9da762cd1a89 100644 (file)
@@ -256,6 +256,11 @@ You can manage calendar requests for this event here:
                        
        'event_calendar:settings:full_calendar:title' => "Support full calendar",
        'event_calendar:modify_full_calendar:error' => "Error: could not modify full calendar",
+       'event_calendar:from_label' => "From:",
+       'event_calendar:to_label' => "To:",
+       'event_calendar:settings:timeformat:title' => "Time format",
+       'event_calendar:time_format:12hour' => "12 hour (am/pm)",
+       'event_calendar:time_format:24hour' => "24 hour",
                
        /**
         * Event calendar river
index f1ed393690357e79bc9e1c192050854cdd0879ac..aa97bfddb4a5d7986ea630cb378cf9ab5ebd16e6 100644 (file)
@@ -92,23 +92,15 @@ function event_calendar_set_event_from_form($event_guid,$group_guid) {
        }
 
        if ($event_calendar_times != 'no') {
-               $sh = get_input('start_time_h','');
-               $sm = get_input('start_time_m','');
-               if (is_numeric($sh) && is_numeric($sm)) {
-                       // workaround for pulldown zero value bug
-                       $sh--;
-                       $sm--;
-                       $event->start_time = $sh*60+$sm;
+               $st = get_input('start_time','');
+               if (is_numeric($st)) {
+                       $event->start_time = $st;
                } else {
                        $event->start_time = '';
                }
-               $eh = get_input('end_time_h','');
-               $em = get_input('end_time_m','');
-               if (is_numeric($eh) && is_numeric($em)) {
-                       // workaround for pulldown zero value bug
-                       $eh--;
-                       $em--;
-                       $event->end_time = $eh*60+$em;
+               $et = get_input('end_time','');
+               if (is_numeric($et)) {
+                       $event->end_time = $et;
                } else {
                        $event->end_time = '';
                }
@@ -874,9 +866,21 @@ function event_calendar_handle_leave($event, $object_type, $object) {
 }
 
 function event_calendar_convert_time($time) {
-       $hour = floor($time/60);
-       $minute = sprintf("%02d",$time-60*$hour);
-       return "$hour:$minute";
+       $event_calendar_time_format = elgg_get_plugin_setting('timeformat','event_calendar');
+       if ($event_calendar_time_format == '12') {
+               $hour = floor($time/60);
+               $minute = sprintf("%02d",$time-60*$hour);
+               if ($hour < 12) {
+                       return "$hour:$minute am";
+               } else {
+                       $hour -= 12;
+                       return "$hour:$minute pm";
+               }
+       } else {
+               $hour = floor($time/60);
+               $minute = sprintf("%02d",$time-60*$hour);
+               return "$hour:$minute";
+       }
 }
 
 function event_calendar_format_time($date,$time1,$time2='') {
@@ -970,13 +974,15 @@ function event_calendar_get_formatted_time($event) {
        $event_calendar_times = elgg_get_plugin_setting('times', 'event_calendar') != 'no';
 
        $start_date = date($date_format,$event->start_date);
-       if ((!$event->end_date) || ($event->end_date == $event->start_date)) {
+       if ($event->end_date) {
+               $end_date = date($date_format,$event->end_date);
+       }
+       if ((!$event->end_date) || ($end_date == $start_date)) {
                if ($event_calendar_times) {
                        $start_date = event_calendar_format_time($start_date,$event->start_time,$event->end_time);
                }
                $time_bit = $start_date;
        } else {
-               $end_date = date($date_format,$event->end_date);
                if ($event_calendar_times) {
                        $start_date = event_calendar_format_time($start_date,$event->start_time);
                        $end_date = event_calendar_format_time($end_date,$event->end_time);
@@ -1243,6 +1249,7 @@ function event_calendar_get_page_content_edit($page_type,$guid) {
                        } else {
                                elgg_push_breadcrumb(elgg_echo('event_calendar:show_events_title'),'event_calendar/list');
                        }
+                       elgg_push_breadcrumb($event->title,$event->getURL());
                        elgg_push_breadcrumb(elgg_echo('event_calendar:manage_event_title'));
 
                        $content = elgg_view_form('event_calendar/edit', $vars,$body_vars);
index 469f72de892faa90c7212012141e6f8b2a041575..a2437e0657543c06be418975276d46630f83b27c 100644 (file)
@@ -164,4 +164,15 @@ li.event-calendar-filter-menu-show-only {
        padding-top:.4em;
        background:#fff;
        margin:0 -.3em 0 1.5em;
+}
+
+.event-calendar-compressed-date {
+       width: 150px !important;
+       margin-right: 10px;
+}
+
+.event-calendar-date-time-setter label {
+       float: left;
+       width: 50px;
+       margin-top: 5px;
 }
\ No newline at end of file
index d4e85724ef35caaa34ca9b661dd7ca210b68c225..58aefe741abd08e4f050223858efecd2354f85d0 100644 (file)
@@ -9,7 +9,9 @@ $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,
        );
@@ -28,13 +30,14 @@ $json_events_string = json_encode($event_array);
 ?>
 <script>
 
-handleEventDrop = function(event,dayDelta,minuteDelta,allDay,revertFunc) {
+handleEventClick = function(event) {
+    if (event.url) {
+        window.location.href = event.url;
+        return false;
+    }
+};
 
-    alert(
-        event.title + "(" + event.guid + ") was moved " +
-        dayDelta + " days and " +
-        minuteDelta + " minutes."
-    );
+handleEventDrop = function(event,dayDelta,minuteDelta,allDay,revertFunc) {
 
     if (!confirm("Are you sure about this change?")) {
         revertFunc();
@@ -53,7 +56,8 @@ handleEventDrop = function(event,dayDelta,minuteDelta,allDay,revertFunc) {
                }
        );
     }
-}
+};
+
 $(document).ready(function() {
        var events = <?php echo $json_events_string; ?>;
        var cal_events = [];
@@ -61,6 +65,7 @@ $(document).ready(function() {
                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
@@ -74,8 +79,9 @@ $(document).ready(function() {
                        right: 'month,agendaWeek,agendaDay'
                },
                editable: true,
-               slotMinutes: 5,
+               slotMinutes: 15,
                eventDrop: handleEventDrop,
+               eventClick: handleEventClick,
                events: cal_events
        });
 });
index 7613a79f14596046dd0a2cf34a2670636ef9e52f..3526627a712ac3879379fe165dbf12980b21fb36 100644 (file)
@@ -128,29 +128,32 @@ $body .= '</label></p>';
 $body .= '<p class="description">'.$prefix['venue'].elgg_echo('event_calendar:venue_description').'</p>';
 
 if ($event_calendar_times != 'no') {
-       $body .= '<p><label>'.elgg_echo("event_calendar:start_time_label").'</label><br />';
+       $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));
-       $body .= '</p>';
-       $body .= '<p class="description">'.$prefix['start_time'].elgg_echo('event_calendar:start_time_description').'</p>';
-}
-
-$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') {
-       if ($event_calendar_times != 'no') {
-               $body .= '<p><label>'.elgg_echo("event_calendar:end_time_label").'</label><br />';
+       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>';
-               $body .= '<p class="description">'.$prefix['end_time'].elgg_echo('event_calendar:end_time_description').'</p>';
        }
-       
-       $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 .= '</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['end_date'].elgg_echo('event_calendar:end_date_description').'</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>';
+       }
 }
 
 if ($event_calendar_spots_display == 'yes') {
index faadd645069ba55613161ccf60fc89f5ea581a85..d7df046999687ea095c53bb87abc7b0c99eeac53 100644 (file)
@@ -2,37 +2,52 @@
 
 $time_format = elgg_get_plugin_setting('timeformat', 'event_calendar');
 if (!$time_format) {
-       $time_format = 24;
+       $time_format = '24';
 }
 
 $value = $vars['value'];
 if (is_numeric($value)) {
        $hour = floor($value/60);
-       $minute = ($value -60*$hour);
-       
-       // add 1 to avoid pulldown 0 bug
-       $hour++;
-       $minute++;
+       $minute = ($value -60*$hour);   
+       $time = $hour*60+$minute;
 } else {
-       $hour = '-';
-       $minute = '-';
+       $time = '-';
 }
 
-$hours = array();
-$hours['-'] = '-';
-
-for($i=0;$i<$time_format;$i++) {
-       $hours[$i+1] = $i;
-}
-
-$minutes = array();
-$minutes['-'] = '-';
-
-for($i=0;$i<60;$i=$i+5) {
-       $minutes[$i+1] = sprintf("%02d",$i);
+$dates = array();
+$dates['-'] = '-';
+
+if ($time_format == '12') {
+       for($h=0;$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<12;$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";
+               }
+       }
+} else {
+       for($h=0;$h<24;$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";
+               }
+       }
 }
 
-echo elgg_view('input/dropdown',array('name'=>$vars['name'].'_h','value'=>$hour,'options_values'=>$hours));
-echo elgg_view('input/dropdown',array('name'=>$vars['name'].'_m','value'=>$minute,'options_values'=>$minutes));
+echo elgg_view('input/dropdown',array('name'=>$vars['name'],'value'=>$time,'options_values'=>$dates));
 
-?>
\ No newline at end of file
diff --git a/views/default/input/timepicker_old.php b/views/default/input/timepicker_old.php
new file mode 100644 (file)
index 0000000..1d2156c
--- /dev/null
@@ -0,0 +1,38 @@
+<?php
+
+$time_format = elgg_get_plugin_setting('timeformat', 'event_calendar');
+if (!$time_format) {
+       $time_format = 24;
+}
+
+$value = $vars['value'];
+if (is_numeric($value)) {
+       $hour = floor($value/60);
+       $minute = ($value -60*$hour);
+       
+       // add 1 to avoid pulldown 0 bug
+       $hour++;
+       $minute++;
+} else {
+       $hour = '-';
+       $minute = '-';
+}
+
+$hours = array();
+$hours['-'] = '-';
+
+for($i=0;$i<$time_format;$i++) {
+       $hours[$i+1] = $i;
+}
+
+$minutes = array();
+$minutes['-'] = '-';
+
+for($i=0;$i<60;$i=$i+15) {
+       $minutes[$i+1] = sprintf("%02d",$i);
+}
+
+echo elgg_view('input/dropdown',array('name'=>$vars['name'].'_h','value'=>$hour,'options_values'=>$hours));
+echo elgg_view('input/dropdown',array('name'=>$vars['name'].'_m','value'=>$minute,'options_values'=>$minutes));
+
+?>
\ No newline at end of file
index 42ac601e5ecb556bb5e5a27688c905613ff9cd4d..93724484c6cfc3ad2bba7fb9dbf9a5f6bf226707 100644 (file)
@@ -3,6 +3,8 @@ $yn_options = array(elgg_echo('event_calendar:settings:yes')=>'yes',
        elgg_echo('event_calendar:settings:no')=>'no',
 );
 
+$time_format_options = array(elgg_echo('event_calendar:time_format:12hour')=>'12',elgg_echo('event_calendar:time_format:24hour')=>'24');
+
 $membership_options = array(
        elgg_echo('event_calendar:personal_manage:open') => 'open' ,
        elgg_echo('event_calendar:personal_manage:closed') => 'closed',
@@ -88,6 +90,17 @@ $body .= elgg_view('input/radio',array('name'=>'params[times]','value'=>$event_c
 
 $body .= '<br />';
 
+$event_calendar_time_format = elgg_get_plugin_setting('timeformat', 'event_calendar');
+if (!$event_calendar_time_format) {
+       $event_calendar_time_format = '24';
+}
+
+$body .= elgg_echo('event_calendar:settings:timeformat:title');
+$body .= '<br />';
+$body .= elgg_view('input/radio',array('name'=>'params[timeformat]','value'=>$event_calendar_time_format,'options'=>$time_format_options));
+
+$body .= '<br />';
+
 $event_calendar_autopersonal = elgg_get_plugin_setting('autopersonal', 'event_calendar');
 if (!$event_calendar_autopersonal) {
        $event_calendar_autopersonal = 'yes';