From: Jan Schneider Date: Tue, 24 Mar 2009 11:41:34 +0000 (+0000) Subject: We probably don't want to show these in production, but catch and display Exceptions... X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=987efe2042e0b174fb397163fc736bd41732ed0c;p=horde.git We probably don't want to show these in production, but catch and display Exceptions for now. --- diff --git a/kronolith/ajax.php b/kronolith/ajax.php index 2e8d4968e..8053d2108 100644 --- a/kronolith/ajax.php +++ b/kronolith/ajax.php @@ -86,181 +86,185 @@ $cacheid = Util::getPost('cacheid'); // encoding. ob_start(); -$notify = true; -$result = false; - -switch ($action) { -case 'ListEvents': - $start = new Horde_Date(Util::getFormData('start')); - $end = new Horde_Date(Util::getFormData('end')); - if (!($kronolith_driver = getDriver($cal = Util::getFormData('cal')))) { - $result = true; - break; - } - $events = $kronolith_driver->listEvents($start, $end, true, false, true); - if (is_a($events, 'PEAR_Error')) { - $notification->push($events, 'horde.error'); - $result = true; - break; - } - $result = new stdClass; - $result->cal = $cal; - $result->view = Util::getFormData('view'); - $result->sig = $start->dateString() . $end->dateString(); - if (count($events)) { - $result->events = $events; - } - break; - -case 'GetEvent': - if (!($kronolith_driver = getDriver($cal = Util::getFormData('cal')))) { - $result = true; - break; - } - if (is_null($id = Util::getFormData('id'))) { - $result = true; - break; - } - $event = $kronolith_driver->getEvent($id); - if (is_a($event, 'PEAR_Error')) { - $notification->push($event, 'horde.error'); - $result = true; - break; - } - if (!$event) { - $notification->push(_("The requested event was not found."), 'horde.error'); - $result = true; - break; - } - $result = new stdClass; - $result->event = $event->toJSON(true, $prefs->getValue('twentyFour') ? 'H:i' : 'h:i A'); - break; - -case 'SaveEvent': - $cal = Util::getFormData('cal'); - if (!($kronolith_driver = getDriver($cal))) { - $result = true; - break; - } - $event = $kronolith_driver->getEvent(Util::getFormData('id')); - if (is_a($event, 'PEAR_Error')) { - $notification->push($event, 'horde.error'); - $result = true; - break; - } - if (!$event) { - $notification->push(_("The requested event was not found."), 'horde.error'); - $result = true; - break; - } - if (!$event->hasPermission(PERMS_EDIT)) { - $notification->push(_("You do not have permission to edit this event."), 'horde.warning'); - $result = true; - break; - } - $event->readForm(); - $result = $event->save(); - if (is_a($result, 'PEAR_Error')) { - $notification->push($result, 'horde.error'); - } - $start = new Horde_Date(Util::getFormData('view_start')); - $end = new Horde_Date(Util::getFormData('view_end')); - Kronolith::addEvents($events, $event, $start, $end, true, true); - $result = new stdClass; - $result->cal = $cal; - $result->view = Util::getFormData('view'); - $result->sig = $start->dateString() . $end->dateString(); - if (count($events)) { - $result->events = $events; - } - break; - -case 'UpdateEvent': - if (!($kronolith_driver = getDriver($cal = Util::getFormData('cal')))) { - break; - } - if (is_null($id = Util::getFormData('id'))) { - $result = true; - break; - } - $event = $kronolith_driver->getEvent($id); - if (is_a($event, 'PEAR_Error')) { - $notification->push($event, 'horde.error'); - break; - } - if (!$event) { - $notification->push(_("The requested event was not found."), 'horde.error'); - break; - } - if (!$event->hasPermission(PERMS_EDIT)) { - $notification->push(_("You do not have permission to edit this event."), 'horde.warning'); - $result = true; +try { + $notify = true; + $result = false; + + switch ($action) { + case 'ListEvents': + $start = new Horde_Date(Util::getFormData('start')); + $end = new Horde_Date(Util::getFormData('end')); + if (!($kronolith_driver = getDriver($cal = Util::getFormData('cal')))) { + $result = true; + break; + } + $events = $kronolith_driver->listEvents($start, $end, true, false, true); + if (is_a($events, 'PEAR_Error')) { + $notification->push($events, 'horde.error'); + $result = true; + break; + } + $result = new stdClass; + $result->cal = $cal; + $result->view = Util::getFormData('view'); + $result->sig = $start->dateString() . $end->dateString(); + if (count($events)) { + $result->events = $events; + } break; - } - $attributes = Horde_Serialize::unserialize(Util::getFormData('att'), Horde_Serialize::JSON); - foreach ($attributes as $attribute => $value) { - switch ($attribute) { - case 'start_date': - $start = new Horde_Date($value); - $event->start->year = $start->year; - $event->start->month = $start->month; - $event->start->mday = $start->mday; - $event->end = $event->start->add(array('min' => $event->durMin)); + + case 'GetEvent': + if (!($kronolith_driver = getDriver($cal = Util::getFormData('cal')))) { + $result = true; break; } - } - $result = $event->save(); - if (is_a($result, 'PEAR_Error')) { - $notification->push($result, 'horde.error'); - } - break; - -case 'DeleteEvent': - if (!($kronolith_driver = getDriver($cal = Util::getFormData('cal')))) { - $result = true; + if (is_null($id = Util::getFormData('id'))) { + $result = true; + break; + } + $event = $kronolith_driver->getEvent($id); + if (is_a($event, 'PEAR_Error')) { + $notification->push($event, 'horde.error'); + $result = true; + break; + } + if (!$event) { + $notification->push(_("The requested event was not found."), 'horde.error'); + $result = true; + break; + } + $result = new stdClass; + $result->event = $event->toJSON(true, $prefs->getValue('twentyFour') ? 'H:i' : 'h:i A'); break; - } - if (is_null($id = Util::getFormData('id'))) { - $result = true; + + case 'SaveEvent': + $cal = Util::getFormData('cal'); + if (!($kronolith_driver = getDriver($cal))) { + $result = true; + break; + } + $event = $kronolith_driver->getEvent(Util::getFormData('id')); + if (is_a($event, 'PEAR_Error')) { + $notification->push($event, 'horde.error'); + $result = true; + break; + } + if (!$event) { + $notification->push(_("The requested event was not found."), 'horde.error'); + $result = true; + break; + } + if (!$event->hasPermission(PERMS_EDIT)) { + $notification->push(_("You do not have permission to edit this event."), 'horde.warning'); + $result = true; + break; + } + $event->readForm(); + $result = $event->save(); + if (is_a($result, 'PEAR_Error')) { + $notification->push($result, 'horde.error'); + } + $start = new Horde_Date(Util::getFormData('view_start')); + $end = new Horde_Date(Util::getFormData('view_end')); + Kronolith::addEvents($events, $event, $start, $end, true, true); + $result = new stdClass; + $result->cal = $cal; + $result->view = Util::getFormData('view'); + $result->sig = $start->dateString() . $end->dateString(); + if (count($events)) { + $result->events = $events; + } break; - } - $event = $kronolith_driver->getEvent($id); - if (is_a($event, 'PEAR_Error')) { - $notification->push($event, 'horde.error'); - $result = true; + + case 'UpdateEvent': + if (!($kronolith_driver = getDriver($cal = Util::getFormData('cal')))) { + break; + } + if (is_null($id = Util::getFormData('id'))) { + $result = true; + break; + } + $event = $kronolith_driver->getEvent($id); + if (is_a($event, 'PEAR_Error')) { + $notification->push($event, 'horde.error'); + break; + } + if (!$event) { + $notification->push(_("The requested event was not found."), 'horde.error'); + break; + } + if (!$event->hasPermission(PERMS_EDIT)) { + $notification->push(_("You do not have permission to edit this event."), 'horde.warning'); + $result = true; + break; + } + $attributes = Horde_Serialize::unserialize(Util::getFormData('att'), Horde_Serialize::JSON); + foreach ($attributes as $attribute => $value) { + switch ($attribute) { + case 'start_date': + $start = new Horde_Date($value); + $event->start->year = $start->year; + $event->start->month = $start->month; + $event->start->mday = $start->mday; + $event->end = $event->start->add(array('min' => $event->durMin)); + break; + } + } + $result = $event->save(); + if (is_a($result, 'PEAR_Error')) { + $notification->push($result, 'horde.error'); + } break; - } - if (!$event) { - $notification->push(_("The requested event was not found."), 'horde.error'); - $result = true; + + case 'DeleteEvent': + if (!($kronolith_driver = getDriver($cal = Util::getFormData('cal')))) { + $result = true; + break; + } + if (is_null($id = Util::getFormData('id'))) { + $result = true; + break; + } + $event = $kronolith_driver->getEvent($id); + if (is_a($event, 'PEAR_Error')) { + $notification->push($event, 'horde.error'); + $result = true; + break; + } + if (!$event) { + $notification->push(_("The requested event was not found."), 'horde.error'); + $result = true; + break; + } + if (!$event->hasPermission(PERMS_DELETE)) { + $notification->push(_("You do not have permission to delete this event."), 'horde.warning'); + $result = true; + break; + } + $deleted = $kronolith_driver->deleteEvent($event->getId()); + if (is_a($deleted, 'PEAR_Error')) { + $notification->push($deleted, 'horde.error'); + $result = true; + break; + } + $result = new stdClass; + $result->deleted = true; break; - } - if (!$event->hasPermission(PERMS_DELETE)) { - $notification->push(_("You do not have permission to delete this event."), 'horde.warning'); + + case 'SaveCalPref': $result = true; break; - } - $deleted = $kronolith_driver->deleteEvent($event->getId()); - if (is_a($deleted, 'PEAR_Error')) { - $notification->push($deleted, 'horde.error'); - $result = true; + + case 'ChunkContent': + $chunk = basename(Util::getPost('chunk')); + if (!empty($chunk)) { + $result = new stdClass; + $result->chunk = Util::bufferOutput('include', KRONOLITH_TEMPLATES . '/chunks/' . $chunk . '.php'); + } break; } - $result = new stdClass; - $result->deleted = true; - break; - -case 'SaveCalPref': - $result = true; - break; - -case 'ChunkContent': - $chunk = basename(Util::getPost('chunk')); - if (!empty($chunk)) { - $result = new stdClass; - $result->chunk = Util::bufferOutput('include', KRONOLITH_TEMPLATES . '/chunks/' . $chunk . '.php'); - } - break; +} catch (Exception $e) { + $notification->push($e->getMessage(), 'horde.error'); } // Clear the output buffer that we started above, and log any unexpected