]> source.dussan.org Git - nextcloud-server.git/commitdiff
Connect newEvent & editEvent to fullcalendar
authorBart Visscher <bartv@thisnet.nl>
Tue, 18 Oct 2011 19:04:14 +0000 (21:04 +0200)
committerBart Visscher <bartv@thisnet.nl>
Thu, 20 Oct 2011 21:49:28 +0000 (23:49 +0200)
apps/calendar/ajax/neweventform.php
apps/calendar/index.php
apps/calendar/js/calendar.js
apps/calendar/templates/calendar.php

index 9d4dcfa2e138b7bc4dae47c3b4a9279e1ab07b25..d02b1163473b41147e1af42405c5ce72bb7d9fb1 100644 (file)
@@ -21,20 +21,16 @@ $repeat_options = OC_Calendar_Object::getRepeatOptions($l10n);
 $startday   = substr($_GET['d'], 0, 2);
 $startmonth = substr($_GET['d'], 2, 2);
 $startyear  = substr($_GET['d'], 4, 4);
-$starttime  = $_GET['t'];
-$allday = $starttime == 'allday';
-if($starttime != 'undefined' && !is_nan($starttime) && !$allday){
-       $startminutes = '00';
-}elseif($allday){
-       $starttime = '0';
-       $startminutes = '00';
+$allday = $_GET['t'] == 'allday';
+if(!$allday){
+       $starthour    = substr($_GET['t'], 0, 2);
+       $startminutes = substr($_GET['t'], 2, 2);
 }else{
-       $starttime = date('G');
-
-       $startminutes = date('i');
+       $starthour = '00';
+       $startminutes = '00';
 }
 
-$datetimestamp = mktime($starttime, $startminutes, 0, $startmonth, $startday, $startyear);
+$datetimestamp = mktime($starthour, $startminutes, 0, $startmonth, $startday, $startyear);
 $duration = OC_Preferences::getValue( OC_User::getUser(), 'calendar', 'duration', "60");
 $datetimestamp = $datetimestamp + ($duration * 60);
 $endmonth = date("m", $datetimestamp);
@@ -49,7 +45,7 @@ $tmpl = new OC_Template('calendar', 'part.newevent');
 $tmpl->assign('calendar_options', $calendar_options);
 $tmpl->assign('category_options', $category_options);
 $tmpl->assign('startdate', $startday . '-' . $startmonth . '-' . $startyear);
-$tmpl->assign('starttime', ($starttime <= 9 ? '0' : '') . $starttime . ':' . $startminutes);
+$tmpl->assign('starttime', $starthour . ':' . $startminutes);
 $tmpl->assign('enddate', $endday . '-' . $endmonth . '-' . $endyear);
 $tmpl->assign('endtime', ($endtime <= 9 ? '0' : '') . $endtime . ':' . $endminutes);
 $tmpl->assign('allday', $allday);
index 5f37d67a70742ed4797ee8e72bc319ee14271d9c..c01410e37185403d252393438b664a0c7aa14265 100644 (file)
@@ -10,10 +10,10 @@ require_once ('../../lib/base.php');
 OC_Util::checkLoggedIn();
 OC_Util::checkAppEnabled('calendar');
 // Create default calendar ...
-$calendars = OC_Calendar_Calendar::allCalendars(OC_User::getUser());
+$calendars = OC_Calendar_Calendar::allCalendars(OC_User::getUser(), 1);
 if( count($calendars) == 0){
        OC_Calendar_Calendar::addCalendar(OC_User::getUser(),'default','Default calendar');
-       $calendars = OC_Calendar_Calendar::allCalendars(OC_User::getUser());
+       $calendars = OC_Calendar_Calendar::allCalendars(OC_User::getUser(), 1);
 }
 $eventSources = array();
 foreach($calendars as $calendar){
index f8456c9bc08d73769bf6e5b1fbfc567f107bb8d4..adb79cc156f196fcfac3bf03ee9e8b04e85f738a 100644 (file)
 Calendar={
        space:' ',
        firstdayofweek: '',
-       weekend: '',
-       Date:{
-               normal_year_cal: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
-               leap_year_cal: [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
-               calw:function() {
-                       var dayofweek = this.current.getDay();
-                       if(dayofweek == 0) {
-                               dayofweek = 7;
-                       }
-                       var calw = Math.floor((this.doy() - dayofweek) / 7) + 1;
-                       return calw;
-               },
-
-               doy:function() {
-                       var cal = this.getnumberofdays(this.current.getFullYear());
-                       var doy = 0;
-                       for(var i = 0; i < this.current.getMonth(); i++) {
-                               doy = doy + cal[i];
-                       }
-                       doy = doy + this.current.getDate();
-                       return doy;
-               },
-
-               getnumberofdays:function(year) {
-                       if(this.checkforleapyear(year) == true) {
-                               var cal = this.leap_year_cal;
-                       } else {
-                               var cal = this.normal_year_cal;
-                       }
-                       return cal;
-               },
-
-               checkforleapyear:function(year2check) {
-                       if((year2check / 600) == Math.floor(year2check / 400)) {
-                               return true;
-                       }
-                       if((year2check / 4) == Math.floor(year2check / 4)) {
-                               if((year2check / 100) == Math.floor(year2check / 100)) {
-                                       return false;
-                               }
-                               return true;
-                       }
-                       return false;
-               },
-
-               current:new Date(),
-               forward_day:function(){
-                       this.current.setDate(this.current.getDate()+1);
-               },
-
-               forward_week:function(){
-                       this.current.setDate(this.current.getDate()+7);
-               },
-
-               forward_month:function(){
-                       this.current.setMonth(this.current.getMonth()+1);
-               },
-
-               backward_day:function(){
-                       this.current.setDate(this.current.getDate()-1);
-               },
-
-               backward_week:function(){
-                       this.current.setDate(this.current.getDate()-7);
-               },
-
-               backward_month:function(){
-                       this.current.setMonth(this.current.getMonth()-1);
-               },
-
-       },
        UI:{
-               weekdays: '',
-               formatDayShort:function(day){
-                       if (typeof(day) == 'undefined'){
-                               day = Calendar.Date.current.getDay();
-                       }
-                       return this.dayshort[day];
-               },
-               formatDayLong:function(day){
-                       if (typeof(day) == 'undefined'){
-                               day = Calendar.Date.current.getDay();
-                       }
-                       return this.daylong[day];
-               },
-               formatMonthShort:function(month){
-                       if (typeof(month) == 'undefined'){
-                               month = Calendar.Date.current.getMonth();
-                       }
-                       return this.monthshort[month];
-               },
-               formatMonthLong:function(month){
-                       if (typeof(month) == 'undefined'){
-                               month = Calendar.Date.current.getMonth();
-                       }
-                       return this.monthlong[month];
-               },
-               formatDate:function(date){
-                       return date[0] + '-' + date[1] + '-' + date[2];
-               },
-               formatTime:function(date){
-                       return date[3] + ':' + date[4];
-               },
-               updateView:function() {
-               },
-               currentview:'none',
-               setCurrentView:function(view){
-                       if (view == this.currentview){
-                               return;
-                       }
-                       $('#'+this.currentview).hide();
-                       $('#'+this.currentview + "_radio").removeClass('active');
-                       this.currentview = view;
-                       //sending ajax request on every change view
-                       $("#sysbox").load(OC.filePath('calendar', 'ajax', 'changeview.php') + "?v="+view);
-                       //not necessary to check whether the response is true or not
-                       switch(view) {
-                               case "onedayview":
-                                       this.current = this.OneDay;
-                                       break;
-                               case "oneweekview":
-                                       this.current = this.OneWeek;
-                                       break;
-                               case "fourweeksview":
-                                       this.current = this.FourWeeks;
-                                       break;
-                               case "onemonthview":
-                                       this.current = this.OneMonth;
-                                       break;
-                               case "listview":
-                                       this.current = this.List;
-                                       break;
-                               default:
-                                       alert('Unknown view:'+view);
-                                       break;
-                       }
-                       $(document).ready(function() {
-                               $('#'+Calendar.UI.currentview).show();
-                               $('#'+Calendar.UI.currentview + "_radio")
-                                       .addClass('active');
-                               Calendar.UI.updateView()
-                       });
+               refetchEvents:function() {
+                       $('#calendar_holder').fullCalendar('refetchEvents');
                },
                drageventid: '',
-               updateDate:function(direction){
-                       if(direction == 'forward' && this.current.forward) {
-                               this.current.forward();
-                               if(Calendar.Date.current.getMonth() == 11){
-                                       this.loadEvents(Calendar.Date.current.getFullYear() + 1);
-                               }
-                               this.updateView();
-                       }
-                       if(direction == 'backward' && this.current.backward) {
-                               this.current.backward();
-                               if(Calendar.Date.current.getMonth() == 0){
-                                       this.loadEvents(Calendar.Date.current.getFullYear() - 1);
-                               }
-                               this.updateView();
-                       }
-               },
-               events:[],
                loadEvents:function(year){
                },
                getEventsForDate:function(date){
@@ -254,11 +98,12 @@ Calendar={
                                }
                        });
                },
-               newEvent:function(selector, time){
-                       var date_info = $(selector).data('date_info');
-                       var dayofmonth = date_info.getDate();
-                       var month = date_info.getMonth();
-                       var year = date_info.getFullYear();
+               newEvent:function(date, allDay, jsEvent, view){
+                       var dayofmonth = date.getDate();
+                       var month = date.getMonth();
+                       var year = date.getFullYear();
+                       var hour = date.getHours();
+                       var min = date.getMinutes();
                        if(dayofmonth <= 9){
                                dayofmonth = '0' + dayofmonth;
                        }
@@ -266,7 +111,18 @@ Calendar={
                        if(month <= 9){
                                month = '0' + month;
                        }
+                       if(hour <= 9){
+                               hour = '0' + hour;
+                       }
+                       if(min <= 9){
+                               min = '0' + min;
+                       }
                        var date = String(dayofmonth) + String(month) + String(year);
+                       if (allDay){
+                               var time = 'allday';
+                       }else{
+                               var time = String(hour) + String(min);
+                       }
                        if($('#event').dialog('isOpen') == true){
                                // TODO: save event
                                $('#event').dialog('destroy').remove();
@@ -274,10 +130,8 @@ Calendar={
                                $('#dialog_holder').load(OC.filePath('calendar', 'ajax', 'neweventform.php') + '?d=' + date + '&t=' + time, Calendar.UI.startEventDialog);
                        }
                },
-               editEvent:function(event){
-                       event.stopPropagation();
-                       var event_data = $(this).data('event_info');
-                       var id = event_data.id;
+               editEvent:function(calEvent, jsEvent, view){
+                       var id = calEvent.id;
                        if($('#event').dialog('isOpen') == true){
                                // TODO: save event
                                $('#event').dialog('destroy').remove();
@@ -291,7 +145,7 @@ Calendar={
                        $.post(url, post, function(data){
                                        if(data.status == 'success'){
                                                $('#event').dialog('destroy').remove();
-                                               Calendar.UI.loadEvents();
+                                               Calendar.UI.refetchEvents();
                                        } else {
                                                $("#errorbox").html("Deletion failed");
                                        }
@@ -333,7 +187,7 @@ Calendar={
                                        } else
                                        if(data.status == 'success'){
                                                $('#event').dialog('destroy').remove();
-                                               Calendar.UI.loadEvents();
+                                               Calendar.UI.refetchEvents();
                                        }
                                },"json");
                },
@@ -389,10 +243,6 @@ Calendar={
                addDateInfo:function(selector, date){
                        $(selector).data('date_info', date);
                },
-               switch2Today:function(){
-                       Calendar.Date.current = new Date();
-                       Calendar.UI.updateView();
-               },
                lockTime:function(){
                        if($('#allday_checkbox').is(':checked')) {
                                $("#fromtime").attr('disabled', true)
@@ -418,7 +268,7 @@ Calendar={
                        }else{
                                $.post(OC.filePath('calendar', 'ajax', 'deletecalendar.php'), { calendarid: calid},
                                  function(data) {
-                                       Calendar.UI.loadEvents();
+                                       Calendar.UI.refetchEvents();
                                        $('#choosecalendar_dialog').dialog('destroy').remove();
                                        Calendar.UI.Calendar.overview();
                                  });
@@ -481,7 +331,7 @@ Calendar={
                                $.post(OC.filePath('calendar', 'ajax', 'activation.php'), { calendarid: calendarid, active: checkbox.checked?1:0 },
                                  function(data) {
                                        checkbox.checked = data == 1;
-                                       Calendar.UI.loadEvents();
+                                       Calendar.UI.refetchEvents();
                                  });
                        },
                        newCalendar:function(object){
@@ -539,7 +389,7 @@ Calendar={
                                                if(data.error == "true"){
                                                }else{
                                                        $(button).closest('tr').prev().html(data.data).show().next().remove();
-                                                       Calendar.UI.loadEvents();
+                                                       Calendar.UI.refetchEvents();
                                                }
                                        }, 'json');
                        },
@@ -548,15 +398,6 @@ Calendar={
                        },
                },
                OneWeek:{
-                       forward:function(){
-                               Calendar.Date.forward_week();
-                       },
-                       backward:function(){
-                               Calendar.Date.backward_week();
-                       },
-                       renderCal:function(){
-                               $("#datecontrol_date").val(Calendar.UI.cw_label + ": " + Calendar.Date.calw());
-                       },
                        createEventLabel:function(event){
                                var time = '';
                                if (!event['allday']){
@@ -567,15 +408,6 @@ Calendar={
                        },
                },
                OneMonth:{
-                       forward:function(){
-                               Calendar.Date.forward_month();
-                       },
-                       backward:function(){
-                               Calendar.Date.backward_month();
-                       },
-                       renderCal:function(){
-                               $("#datecontrol_date").val(Calendar.UI.formatMonthLong() + Calendar.space + Calendar.Date.current.getFullYear());
-                       },
                        createEventLabel:function(event){
                                var time = '';
                                if (!event['allday']){
@@ -592,10 +424,6 @@ Calendar={
                                this.enddate = new Date();
                                this.enddate.setDate(this.enddate.getDate());
                        },
-                       renderCal:function(){
-                               var today = new Date();
-                               $('#datecontrol_date').val(this.formatDate(Calendar.Date.current));
-                       },
                        showEvents:function(){
                                this.renderMoreBefore();
                                this.renderMoreAfter();
@@ -677,7 +505,9 @@ $(document).ready(function(){
                viewDisplay: function(view) {
                        $('#datecontrol_date').html(view.title);
                        $.get(OC.filePath('calendar', 'ajax', 'changeview.php') + "?v="+view.name);
-               }
+               },
+               dayClick: Calendar.UI.newEvent,
+               eventClick: Calendar.UI.editEvent
        });
        $('#oneweekview_radio').click(function(){
                $('#calendar_holder').fullCalendar('changeView', 'agendaWeek');
index 58f61661ce3be492c316eff61d85134f74d6f7da..1c948b948c20288446da17038c3e367226ff8b14 100644 (file)
@@ -7,7 +7,6 @@ var monthNames = <?php echo json_encode($l->tA(array('January', 'February', 'Mar
 var monthNamesShort = <?php echo json_encode($l->tA(array('Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.'))) ?>;
 var allDayText = '<?php echo $l->t('All day') ?>';
 </script>
-                               <div id="sysbox"></div>
                                <div id="controls">
                                        <div>
                                                <form>