diff options
author | Bart Visscher <bartv@thisnet.nl> | 2011-10-25 19:57:20 +0200 |
---|---|---|
committer | Bart Visscher <bartv@thisnet.nl> | 2011-10-25 19:57:20 +0200 |
commit | 50649ad0d19e8dc8ad3f2366673217c752d1774c (patch) | |
tree | 102fecf040af7dd29f3eb30b1612b9d0ec116b69 /apps/calendar | |
parent | 950018b5c393898173ebb5ccb515ff12e836f6af (diff) | |
download | nextcloud-server-50649ad0d19e8dc8ad3f2366673217c752d1774c.tar.gz nextcloud-server-50649ad0d19e8dc8ad3f2366673217c752d1774c.zip |
Implement select event creation
Diffstat (limited to 'apps/calendar')
-rw-r--r-- | apps/calendar/ajax/neweventform.php | 48 | ||||
-rw-r--r-- | apps/calendar/js/calendar.js | 35 |
2 files changed, 31 insertions, 52 deletions
diff --git a/apps/calendar/ajax/neweventform.php b/apps/calendar/ajax/neweventform.php index d02b1163473..588d364871c 100644 --- a/apps/calendar/ajax/neweventform.php +++ b/apps/calendar/ajax/neweventform.php @@ -15,39 +15,35 @@ if(!OC_USER::isLoggedIn()) { } OC_JSON::checkAppEnabled('calendar'); -$calendar_options = OC_Calendar_Calendar::allCalendars(OC_User::getUser()); -$category_options = OC_Calendar_Object::getCategoryOptions($l10n); -$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); -$allday = $_GET['t'] == 'allday'; -if(!$allday){ - $starthour = substr($_GET['t'], 0, 2); - $startminutes = substr($_GET['t'], 2, 2); -}else{ - $starthour = '00'; - $startminutes = '00'; +if (!isset($_POST['start'])){ + OC_JSON::error(); + die; } +$start = $_POST['start']; +$end = $_POST['end']; +$allday = $_POST['allday']; -$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); -$endday = date("d", $datetimestamp); -$endyear = date("Y", $datetimestamp); -$endtime = date("G", $datetimestamp); -$endminutes = date("i", $datetimestamp); - +if (!$end){ + $duration = OC_Preferences::getValue( OC_User::getUser(), 'calendar', 'duration', '60'); + $end = $start + ($duration * 60); +} +$start = new DateTime('@'.$start); +$end = new DateTime('@'.$end); +$timezone = OC_Preferences::getValue(OC_USER::getUser(), 'calendar', 'timezone', 'Europe/London'); +$start->setTimezone(new DateTimeZone($timezone)); +$end->setTimezone(new DateTimeZone($timezone)); +$calendar_options = OC_Calendar_Calendar::allCalendars(OC_User::getUser()); +$category_options = OC_Calendar_Object::getCategoryOptions($l10n); +$repeat_options = OC_Calendar_Object::getRepeatOptions($l10n); $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', $starthour . ':' . $startminutes); -$tmpl->assign('enddate', $endday . '-' . $endmonth . '-' . $endyear); -$tmpl->assign('endtime', ($endtime <= 9 ? '0' : '') . $endtime . ':' . $endminutes); +$tmpl->assign('startdate', $start->format('d-m-Y')); +$tmpl->assign('starttime', $start->format('H:i')); +$tmpl->assign('enddate', $end->format('d-m-Y')); +$tmpl->assign('endtime', $end->format('H:i')); $tmpl->assign('allday', $allday); $tmpl->printpage(); ?> diff --git a/apps/calendar/js/calendar.js b/apps/calendar/js/calendar.js index d63b9df36f3..30015ae68f0 100644 --- a/apps/calendar/js/calendar.js +++ b/apps/calendar/js/calendar.js @@ -31,36 +31,17 @@ Calendar={ } }); }, - 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; - } - month++; - 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); + newEvent:function(start, end, allday){ + start = Math.round(start.getTime()/1000); + if (end){ + end = Math.round(end.getTime()/1000); } + $('#calendar_holder').fullCalendar('unselect'); if($('#event').dialog('isOpen') == true){ // TODO: save event $('#event').dialog('destroy').remove(); }else{ - $('#dialog_holder').load(OC.filePath('calendar', 'ajax', 'neweventform.php') + '?d=' + date + '&t=' + time, Calendar.UI.startEventDialog); + $('#dialog_holder').load(OC.filePath('calendar', 'ajax', 'neweventform.php'), {start:start, end:end, allday:allday?1:0}, Calendar.UI.startEventDialog); } }, editEvent:function(calEvent, jsEvent, view){ @@ -509,7 +490,9 @@ $(document).ready(function(){ $('#datecontrol_date').html(view.title); $.get(OC.filePath('calendar', 'ajax', 'changeview.php') + "?v="+view.name); }, - dayClick: Calendar.UI.newEvent, + selectable: true, + selectHelper: true, + select: Calendar.UI.newEvent, eventClick: Calendar.UI.editEvent, eventDrop: Calendar.UI.moveEvent, eventResize: Calendar.UI.resizeEvent, |