]> dev.renevier.net Git - syj.git/blobdiff - application/controllers/ErrorController.php
routes profile
[syj.git] / application / controllers / ErrorController.php
index 0207587bf89633f4ab6cf0461cf33091b91d6eff..0a6c46868f402bef9e45771c31a9781b4942dbc2 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/*  This file is part of Syj, Copyright (c) 2010 Arnaud Renevier,
+/*  This file is part of Syj, Copyright (c) 2010-2011 Arnaud Renevier,
     and is published under the AGPL license. */
 
 class ErrorController extends Zend_Controller_Action
@@ -10,8 +10,7 @@ class ErrorController extends Zend_Controller_Action
 
     public function init() {
         $this->_helper->SyjReset->resetPlaceHolders();
-        $this->view->headLink()->appendStylesheet('css/generic.css');
-        $this->view->headLink()->appendStylesheet('css/error.css');
+        $this->_helper->SyjMedias->addStyleSheets('error');
     }
 
     public function errorAction() {
@@ -29,6 +28,8 @@ class ErrorController extends Zend_Controller_Action
                     $error_code = 400; // Bad Request
                 } else if ($error->exception instanceof Syj_Exception_Forbidden) {
                     $error_code = 403; // Forbidden
+                } else if ($error->exception instanceof Syj_Exception_NotImplemented) {
+                    $error_code = 501; // Not Implemented
                 } else if ($error->exception instanceof Syj_Exception_NotFound) {
                     $error_code = $error->exception->getCode();
                 }
@@ -41,8 +42,13 @@ class ErrorController extends Zend_Controller_Action
             $log->crit($this->view->message, $error->exception);
         }
 
-        if ($error_code != 404 and $error_code != 410 and $error->request->isXmlHttpRequest()) {
+        if ($error_code == 400 and $error->request->isXmlHttpRequest()) {
             return $this->_helper->json(array('message' => $error->exception->getMessage()));
+        } else if ($error->exception instanceof Syj_Exception_InvalidGeomUpload) {
+            // invalid file upload: we will redirect to main page
+            $this->_helper->SyjReset->resetPlaceHolders();
+            $this->_request->setControllerName('idx')->setActionName('error')->setDispatched(false);
+            return;
         }
 
         // conditionally display exceptions