]> source.dussan.org Git - nextcloud-server.git/commitdiff
Implement resizing of events
authorBart Visscher <bartv@thisnet.nl>
Tue, 18 Oct 2011 21:02:00 +0000 (23:02 +0200)
committerBart Visscher <bartv@thisnet.nl>
Thu, 20 Oct 2011 21:49:28 +0000 (23:49 +0200)
apps/calendar/ajax/resizeevent.php [new file with mode: 0644]
apps/calendar/js/calendar.js

diff --git a/apps/calendar/ajax/resizeevent.php b/apps/calendar/ajax/resizeevent.php
new file mode 100644 (file)
index 0000000..3a2bf87
--- /dev/null
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Copyright (c) 2011 Bart Visscher <bartv@thisnet.nl>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+error_reporting(E_ALL);
+require_once('../../../lib/base.php');
+OC_JSON::checkLoggedIn();
+$data = OC_Calendar_Object::find($_POST["id"]);
+$calendarid = $data["calendarid"];
+$cal = $calendarid;
+$id = $_POST['id'];
+$calendar = OC_Calendar_Calendar::findCalendar($calendarid);
+if(OC_User::getUser() != $calendar['userid']){
+       OC_JSON::error();
+       exit;
+}
+
+$delta = new DateInterval('P0D');
+$delta->d = $_POST['dayDelta'];
+$delta->i = $_POST['minuteDelta'];
+
+$vcalendar = Sabre_VObject_Reader::read($data['calendardata']);
+$vevent = $vcalendar->VEVENT;
+
+$dtend = OC_Calendar_Object::getDTEndFromVEvent($vevent);
+$end_type = $dtend->getDateType();
+$dtend->setDateTime($dtend->getDateTime()->add($delta), $end_type);
+unset($vevent->DURATION);
+
+$now = new DateTime();
+$last_modified = new Sabre_VObject_Element_DateTime('LAST-MODIFIED');
+$last_modified->setDateTime($now, Sabre_VObject_Element_DateTime::UTC);
+$vevent->__set('LAST-MODIFIED', $last_modified);
+
+$dtstamp = new Sabre_VObject_Element_DateTime('DTSTAMP');
+$dtstamp->setDateTime($now, Sabre_VObject_Element_DateTime::UTC);
+$vevent->DTSTAMP = $dtstamp;
+
+$result = OC_Calendar_Object::edit($id, $vcalendar->serialize());
+OC_JSON::success();
index db5bf44c260e1b870dc2e1e7a3da887ee6918492..5251dbaa2b4b48416966c576673ec807f400e1bf 100644 (file)
@@ -201,6 +201,16 @@ Calendar={
                                }
                        });
                },
+               resizeEvent:function(event, dayDelta, minuteDelta, revertFunc){
+                       $.post(OC.filePath('calendar', 'ajax', 'resizeevent.php'), { id: event.id, dayDelta: dayDelta, minuteDelta: minuteDelta},
+                       function(data) {
+                               if (data.status == 'success'){
+                                       console.log("Event resized successfully");
+                               }else{
+                                       revertFunc();
+                               }
+                       });
+               },
                showadvancedoptions:function(){
                        $("#advanced_options").css("display", "block");
                        $("#advanced_options_button").css("display", "none");
@@ -476,6 +486,7 @@ $(document).ready(function(){
                dayClick: Calendar.UI.newEvent,
                eventClick: Calendar.UI.editEvent,
                eventDrop: Calendar.UI.moveEvent,
+               eventResize: Calendar.UI.resizeEvent,
                eventMouseover: Calendar.UI.createEventPopup,
                eventMouseout: Calendar.UI.hideEventPopup,
                eventSources: eventSources