CC-4302: Library : Deletion of newly created Smart Block does not prevent you from editing it which leads to small hang up

-fixed
This commit is contained in:
denise 2012-08-29 16:00:58 -04:00
parent 46a6a5fc30
commit fe48780932
2 changed files with 52 additions and 30 deletions

View file

@ -97,7 +97,11 @@ class PlaylistController extends Zend_Controller_Action
unset($this->view->obj);
}
} else {
$this->view->html = $this->view->render($viewPath);
if ($isJson) {
return $this->view->render($viewPath);
} else {
$this->view->html = $this->view->render($viewPath);
}
}
}
@ -112,13 +116,19 @@ class PlaylistController extends Zend_Controller_Action
$this->createFullResponse($obj);
}
private function playlistNotFound($p_type)
private function playlistNotFound($p_type, $p_isJson = false)
{
$p_type = ucfirst($p_type);
$this->view->error = "{$p_type} not found";
Logging::info("{$p_type} not found");
Application_Model_Library::changePlaylist(null, $p_type);
$this->createFullResponse(null);
if ($p_type == 'Playlist') {
$this->createFullResponse(null);
} else {
die(json_encode(array("error"=>$this->view->error, "result"=>1, "html"=>$this->createFullResponse(null, true))));
}
}
private function playlistNoPermission($p_type)
@ -478,26 +488,31 @@ class PlaylistController extends Zend_Controller_Action
{
$request = $this->getRequest();
$params = $request->getPost();
$form = new Application_Form_SmartBlockCriteria();
$form->startForm($params['obj_id']);
$bl = new Application_Model_Block($params['obj_id']);
if ($form->isValid($params)) {
$result = $bl->generateSmartBlock($params['data']);
try {
//make sure block exists
try {
$bl = new Application_Model_Block($params['obj_id']);
$form = new Application_Form_SmartBlockCriteria();
$form->startForm($params['obj_id']);
if ($form->isValid($params)) {
$result = $bl->generateSmartBlock($params['data']);
die(json_encode(array("result"=>0, "html"=>$this->createFullResponse($bl, true, true))));
} catch (PlaylistNotFoundException $e) {
$this->playlistNotFound('block');
} catch (Exception $e) {
$this->playlistUnknownError($e);
} else {
$this->view->obj = $bl;
$this->view->id = $bl->getId();
$this->view->form = $form;
$viewPath = 'playlist/smart-block.phtml';
$result['html'] = $this->view->render($viewPath);
$result['result'] = 1;
die(json_encode($result));
}
} else {
$this->view->obj = $bl;
$this->view->id = $bl->getId();
$this->view->form = $form;
$viewPath = 'playlist/smart-block.phtml';
$result['html'] = $this->view->render($viewPath);
$result['result'] = 1;
die(json_encode($result));
} catch (BlockNotFoundException $e) {
$this->playlistNotFound('block', true);
} catch (PlaylistNotFoundException $e) {
$this->playlistNotFound('block');
} catch (Exception $e) {
$this->playlistUnknownError($e);
}
}
@ -505,17 +520,21 @@ class PlaylistController extends Zend_Controller_Action
{
$request = $this->getRequest();
$params = $request->getPost();
$bl = new Application_Model_Block($params['obj_id']);
$result = $bl->shuffleSmartBlock();
if ($result['result'] == 0) {
try {
try {
$bl = new Application_Model_Block($params['obj_id']);
$result = $bl->shuffleSmartBlock();
if ($result['result'] == 0) {
die(json_encode(array("result"=>0, "html"=>$this->createFullResponse($bl, true))));
} catch (PlaylistNotFoundException $e) {
$this->playlistNotFound('block');
} else {
die(json_encode($result));
}
} else {
die(json_encode($result));
} catch (BlockNotFoundException $e) {
$this->playlistNotFound('block', true);
} catch (PlaylistNotFoundException $e) {
$this->playlistNotFound('block');
} catch (Exception $e) {
$this->playlistUnknownError($e);
}
}