From 10513b320c8af66eea2f9fca9baedc82bf3022b4 Mon Sep 17 00:00:00 2001 From: alphadevx Date: Sun, 13 Sep 2015 16:06:44 +0100 Subject: [PATCH] #211 - removed the majority of the custom logic from the ArticleController::doDELETE() method, with the exception of a call to clear the unit of work from the session which was causing a bad re-direct --- Alpha/Controller/ActiveRecordController.php | 21 ++++- Alpha/Controller/ArticleController.php | 76 ++----------------- Alpha/Controller/Controller.php | 4 + Alpha/View/ArticleCommentView.php | 2 +- Alpha/View/ArticleView.php | 2 +- .../Renderer/Html/RendererProviderHTML.php | 8 +- 6 files changed, 32 insertions(+), 81 deletions(-) diff --git a/Alpha/Controller/ActiveRecordController.php b/Alpha/Controller/ActiveRecordController.php index e5ebe1ae..b33341b1 100644 --- a/Alpha/Controller/ActiveRecordController.php +++ b/Alpha/Controller/ActiveRecordController.php @@ -279,6 +279,12 @@ public function doGET($request) $view = View::getInstance($record, false, $accept); $body .= View::displayPageHead($this); + + $message = $this->getStatusMessage(); + if (!empty($message)) { + $body .= $message; + } + $body .= View::renderDeleteForm($this->request->getURI()); foreach ($records as $record) { @@ -383,7 +389,7 @@ public function doPOST($request) if (isset($params['statusMessage'])) { $this->setStatusMessage(View::displayUpdateMessage($params['statusMessage'])); } else { - $this->setStatusMessage(View::displayUpdateMessage('Created a new '.$record->getFriendlyClassName().' record')); + $this->setStatusMessage(View::displayUpdateMessage('Created')); } ActiveRecord::disconnect(); @@ -471,7 +477,11 @@ public function doPUT($request) self::$logger->action('Saved '.$ActiveRecordType.' instance with OID '.$record->getOID()); - $this->setStatusMessage(View::displayUpdateMessage('Saved '.$ActiveRecordType.' instance with OID '.$record->getOID())); + if (isset($params['statusMessage'])) { + $this->setStatusMessage(View::displayUpdateMessage($params['statusMessage'])); + } else { + $this->setStatusMessage(View::displayUpdateMessage('Saved')); + } ActiveRecord::disconnect(); } catch (SecurityException $e) { @@ -576,7 +586,11 @@ public function doDELETE($request) } else { $response = new Response(301); - $this->setStatusMessage(View::displayUpdateMessage('Deleted '.$ActiveRecordType.' instance with OID '.$params['ActiveRecordOID'])); + if (isset($params['statusMessage'])) { + $this->setStatusMessage(View::displayUpdateMessage($params['statusMessage'])); + } else { + $this->setStatusMessage(View::displayUpdateMessage('Deleted')); + } if ($this->getNextJob() != '') { $response->redirect($this->getNextJob()); @@ -596,7 +610,6 @@ public function doDELETE($request) throw new ResourceNotFoundException('The item that you have requested cannot be found!'); } catch (AlphaException $e) { self::$logger->error($e->getMessage()); - $body .= View::displayErrorMessage('Error deleting the BO of OID ['.$params['ActiveRecordOID'].'], check the log!'); ActiveRecord::rollback(); } diff --git a/Alpha/Controller/ArticleController.php b/Alpha/Controller/ArticleController.php index 4f93e29d..3b7f5c9b 100644 --- a/Alpha/Controller/ArticleController.php +++ b/Alpha/Controller/ArticleController.php @@ -473,7 +473,7 @@ public function doPUT($request) } /** - * Method to handle PUT requests. + * Method to handle DELETE requests. * * @param Alpha\Util\Http\Request * @@ -481,82 +481,16 @@ public function doPUT($request) * * @since 2.0 * - * @todo handle all of this functionality with ActiveRecordController */ - /*public function doDELETE($request) + public function doDELETE($request) { self::$logger->debug('>>doDELETE($request=['.var_export($request, true).'])'); - $config = ConfigProvider::getInstance(); - - $params = $request->getParams(); - - try { - // check the hidden security fields before accepting the form DELETE data - if (!$this->checkSecurityFields()) { - throw new SecurityException('This page cannot accept post data from remote servers!'); - self::$logger->debug('<load($params['deleteOID']); - } else { - $title = str_replace($config->get('cms.url.title.separator'), ' ', $params['title']); - - $record->loadbyAttribute('title', $title); - } - - try { - $title = $record->get('title'); - $record->delete(); - $record = null; - self::$logger->action('Article '.$title.' deleted.'); - - // if we are deleting a record from a single request request, just render a message - if (isset($params['title'])) { - $body = View::displayPageHead($this); - $body .= View::displayUpdateMessage('Article '.$title.' deleted.'); - - $body .= '
'; - - $temp = new Button("document.location = '".FrontController::generateSecureURL('act=Alpha\Controller\ActiveRecordController&ActiveRecordType='.get_class($record))."'", - 'Back to List', 'cancelBut'); - $body .= $temp->render(); - - $body .= '
'; - - $body .= View::displayPageFoot($this); - - self::$logger->debug('< 'text/html')); - } - - $this->setStatusMessage(View::displayUpdateMessage('Article '.$title.' deleted.')); - self::$logger->debug('<doGET($request); - } catch (AlphaException $e) { - self::$logger->error($e->getTraceAsString()); - $response = new Response(500, json_encode(array('message' => 'Error deleting the article, check the log!')), array('Content-Type' => 'application/json')); - - self::$logger->debug('< 'text/html')); - } - } catch (SecurityException $e) { - self::$logger->warn($e->getMessage()); - throw new ResourceNotAllowedException($e->getMessage()); - } + $this->setUnitOfWork(array()); self::$logger->debug('<get('session.provider.name'); $session = SessionProviderFactory::getInstance($sessionProvider); $session->delete('unitOfWork'); + $this->firstJob = null; + $this->previousJob = null; + $this->nextJob = null; + $this->lastJob = null; $this->dirtyObjects = array(); $this->newObjects = array(); diff --git a/Alpha/View/ArticleCommentView.php b/Alpha/View/ArticleCommentView.php index f0bffaf5..5a768543 100644 --- a/Alpha/View/ArticleCommentView.php +++ b/Alpha/View/ArticleCommentView.php @@ -179,7 +179,7 @@ public function editView($fields = array()) $('#dialogDiv').dialog({ buttons: { 'OK': function(event, ui) { - $('[id=\"".($config->get('security.encrypt.http.fieldnames') ? base64_encode(SecurityUtils::encrypt('deleteOID')) : 'deleteOID')."\"]').attr('value', '".$this->BO->getOID()."'); + $('[id=\"".($config->get('security.encrypt.http.fieldnames') ? base64_encode(SecurityUtils::encrypt('ActiveRecordOID')) : 'ActiveRecordOID')."\"]').attr('value', '".$this->BO->getOID()."'); $('#deleteForm').submit(); }, 'Cancel': function(event, ui) { diff --git a/Alpha/View/ArticleView.php b/Alpha/View/ArticleView.php index 99f1d341..ce7d9bde 100644 --- a/Alpha/View/ArticleView.php +++ b/Alpha/View/ArticleView.php @@ -148,7 +148,7 @@ public function editView($fields = array()) label: 'Okay', cssClass: 'btn btn-default btn-xs', action: function(dialogItself) { - $('[id=\"".($config->get('security.encrypt.http.fieldnames') ? base64_encode(SecurityUtils::encrypt('deleteOID')) : 'deleteOID')."\"]').attr('value', '".$this->BO->getOID()."'); + $('[id=\"".($config->get('security.encrypt.http.fieldnames') ? base64_encode(SecurityUtils::encrypt('ActiveRecordOID')) : 'ActiveRecordOID')."\"]').attr('value', '".$this->BO->getOID()."'); $('#deleteForm').submit(); dialogItself.close(); } diff --git a/Alpha/View/Renderer/Html/RendererProviderHTML.php b/Alpha/View/Renderer/Html/RendererProviderHTML.php index c75b625c..9160e9c4 100644 --- a/Alpha/View/Renderer/Html/RendererProviderHTML.php +++ b/Alpha/View/Renderer/Html/RendererProviderHTML.php @@ -175,7 +175,7 @@ public function editView($fields = array()) label: 'Okay', cssClass: 'btn btn-default btn-xs', action: function(dialogItself) { - $('[id=\"".($config->get('security.encrypt.http.fieldnames') ? base64_encode(SecurityUtils::encrypt('deleteOID')) : 'deleteOID')."\"]').attr('value', '".$this->BO->getOID()."'); + $('[id=\"".($config->get('security.encrypt.http.fieldnames') ? base64_encode(SecurityUtils::encrypt('ActiveRecordOID')) : 'ActiveRecordOID')."\"]').attr('value', '".$this->BO->getOID()."'); $('#deleteForm').submit(); dialogItself.close(); } @@ -319,7 +319,7 @@ public function listView($fields = array()) label: 'Okay', cssClass: 'btn btn-default btn-xs', action: function(dialogItself) { - $('[id=\"".($config->get('security.encrypt.http.fieldnames') ? base64_encode(SecurityUtils::encrypt('deleteOID')) : 'deleteOID')."\"]').attr('value', '".$this->BO->getOID()."'); + $('[id=\"".($config->get('security.encrypt.http.fieldnames') ? base64_encode(SecurityUtils::encrypt('ActiveRecordOID')) : 'ActiveRecordOID')."\"]').attr('value', '".$this->BO->getOID()."'); $('#deleteForm').submit(); dialogItself.close(); } @@ -388,7 +388,7 @@ public function detailedView($fields = array()) label: 'Okay', cssClass: 'btn btn-default btn-xs', action: function(dialogItself) { - $('[id=\"".($config->get('security.encrypt.http.fieldnames') ? base64_encode(SecurityUtils::encrypt('deleteOID')) : 'deleteOID')."\"]').attr('value', '".$this->BO->getOID()."'); + $('[id=\"".($config->get('security.encrypt.http.fieldnames') ? base64_encode(SecurityUtils::encrypt('ActiveRecordOID')) : 'ActiveRecordOID')."\"]').attr('value', '".$this->BO->getOID()."'); $('#deleteForm').submit(); dialogItself.close(); } @@ -693,7 +693,7 @@ public static function renderDeleteForm($URI) $config = ConfigProvider::getInstance(); $html = '
'; - $fieldname = ($config->get('security.encrypt.http.fieldnames') ? base64_encode(SecurityUtils::encrypt('deleteOID')) : 'deleteOID'); + $fieldname = ($config->get('security.encrypt.http.fieldnames') ? base64_encode(SecurityUtils::encrypt('ActiveRecordOID')) : 'ActiveRecordOID'); $html .= ''; $fieldname = ($config->get('security.encrypt.http.fieldnames') ? base64_encode(SecurityUtils::encrypt('_METHOD')) : '_METHOD'); $html .= '';