improvements for dropoimport

remotes/origin/stable45
Georg Ehrke 14 years ago
parent a705b19cd5
commit ce331bd1d3
  1. 8
      apps/calendar/ajax/import/dropimport.php
  2. 4
      apps/calendar/js/calendar.js
  3. 20
      apps/calendar/lib/import.php

@ -23,4 +23,10 @@ $newcalendarname = strip_tags($import->createCalendarName());
$newid = OC_Calendar_Calendar::addCalendar(OCP\User::getUser(),$newcalendarname,'VEVENT,VTODO,VJOURNAL',null,0,$import->createCalendarColor());
$import->setCalendarID($newid);
$import->import();
OCP\JSON::success(array('newcalendarname'=>$newcalendarname, 'count'=>$import->getCount(), 'newcalendarid'=>$newid, 'eventSource'=>OC_Calendar_Calendar::getEventSourceInfo(OC_Calendar_Calendar::find($newid))));
$count = $import->getCount();
if($count == 0){
OC_Calendar_Calendar::deleteCalendar($newid);
OCP\JSON::error(array('message'=>OC_Calendar_App::$l10n->t('The file contained either no events or all events are already saved in your account')));
}else{
OCP\JSON::success(array('message'=>$count . ' ' . OC_Calendar_App::$l10n->t('events has been saved in the new calendar') . ' ' . $newcalendarname, 'eventSource'=>OC_Calendar_Calendar::getEventSourceInfo(OC_Calendar_Calendar::find($newid))));
}

@ -635,12 +635,12 @@ Calendar={
$.post(OC.filePath('calendar', 'ajax/import', 'dropimport.php'), {'data':data},function(result) {
if(result.status == 'success'){
$('#calendar_holder').fullCalendar('addEventSource', result.eventSource);
$('#notification').html(result.count + ' Events has been saved in the new calendar ' + result.newcalendarname);
$('#notification').html(result.message);
$('#notification').slideDown();
window.setTimeout(function(){$('#notification').slideUp();}, 5000);
return true;
}else{
$('#notification').html('ownCloud wasn\'t able to import at least one file. File skipped.');
$('#notification').html(result.message);
$('#notification').slideDown();
window.setTimeout(function(){$('#notification').slideUp();}, 5000);
}

@ -95,8 +95,12 @@ class OC_Calendar_Import{
$object->DTEND->setDateTime($dtend->getDateTime(), $object->DTSTART->getDateType());
$object->DTEND->getDateTime()->setTimezone(new DateTimeZone($this->tz));
$vcalendar = $this->createVCalendar($object->serialize());
OC_Calendar_Object::add($this->id, $vcalendar);
$this->count++;
$insertid = OC_Calendar_Object::add($this->id, $vcalendar);
if($this->isDuplicate($insertid)){
OC_Calendar_Object::delete($insertid);
}else{
$this->count++;
}
}
return true;
}
@ -240,10 +244,18 @@ class OC_Calendar_Import{
/*
* @brief checks if an event already exists in the user's calendars
* @param integer $insertid id of the new object
* @return boolean
*/
private function isDuplicate(){
private function isDuplicate($insertid){
$newobject = OC_Calendar_Object::find($insertid);
$stmt = OCP\DB::prepare('SELECT COUNT(*) as count FROM *PREFIX*calendar_objects WHERE objecttype=? AND startdate=? AND enddate=? AND repeating=? AND summary=? AND calendardata=?');
$result = $stmt->execute(array($newobject['objecttype'],$newobject['startdate'],$newobject['enddate'],$newobject['repeating'],$newobject['summary'],$newobject['calendardata']));
$result = $result->fetchRow();
if($result['count'] >= 2){
return true;
}
return false;
}
/*

Loading…
Cancel
Save