From e674654cb140745d10ce3f05835689877bc1bf6f Mon Sep 17 00:00:00 2001 From: denise Date: Thu, 9 Aug 2012 17:23:52 -0400 Subject: [PATCH] CC-4192: Smart Playlist Builder: make save button save title, description, and criteria -done --- .../controllers/PlaylistController.php | 23 +++++-- .../scripts/form/smart-block-criteria.phtml | 6 -- .../views/scripts/playlist/playlist.phtml | 8 +-- .../views/scripts/playlist/smart-block.phtml | 7 +- airtime_mvc/public/js/airtime/library/spl.js | 68 +++++++++---------- .../airtime/playlist/smart_playlistbuilder.js | 16 +++-- 6 files changed, 65 insertions(+), 63 deletions(-) diff --git a/airtime_mvc/application/controllers/PlaylistController.php b/airtime_mvc/application/controllers/PlaylistController.php index b8468af6b..9e1b32dcb 100644 --- a/airtime_mvc/application/controllers/PlaylistController.php +++ b/airtime_mvc/application/controllers/PlaylistController.php @@ -24,7 +24,7 @@ class PlaylistController extends Zend_Controller_Action ->addActionContext('set-playlist-description', 'json') ->addActionContext('playlist-preview', 'json') ->addActionContext('get-playlist', 'json') - ->addActionContext('smart-block-criteria-save', 'json') + ->addActionContext('save', 'json') ->addActionContext('smart-block-generate', 'json') ->addActionContext('smart-block-shuffle', 'json') ->addActionContext('get-block-info', 'json') @@ -478,14 +478,17 @@ class PlaylistController extends Zend_Controller_Action } } - public function setPlaylistNameAction() + public function setPlaylistNameDescAction() { $name = $this->_getParam('name', 'Unknown Playlist'); + $description = $this->_getParam('description', ""); $type = $this->_getParam('type'); try { $obj = $this->getPlaylist($type); $obj->setName($name); + $obj->setDescription($description); + $this->view->description = $obj->getDescription(); $this->view->playlistName = $name; $this->view->modified = $obj->getLastModified("U"); } catch (PlaylistOutDatedException $e) { @@ -497,6 +500,7 @@ class PlaylistController extends Zend_Controller_Action } } + /* public function setPlaylistDescriptionAction() { $description = $this->_getParam('description', ""); @@ -515,13 +519,22 @@ class PlaylistController extends Zend_Controller_Action $this->playlistUnknownError($e); } } + */ - public function smartBlockCriteriaSaveAction() + public function saveAction() { $request = $this->getRequest(); $params = $request->getPost(); - $bl = new Application_Model_Block($params['obj_id']); - $result = $bl->saveSmartBlockCriteria($params['data']); + $result = array(); + + $this->setPlaylistNameDescAction(); + + if ($params['type'] == 'block') { + $bl = new Application_Model_Block($params['obj_id']); + $result = $bl->saveSmartBlockCriteria($params['criteria']); + } + + $result["modified"] = $this->view->modified; die(json_encode($result)); } diff --git a/airtime_mvc/application/views/scripts/form/smart-block-criteria.phtml b/airtime_mvc/application/views/scripts/form/smart-block-criteria.phtml index 509457d67..37b798813 100644 --- a/airtime_mvc/application/views/scripts/form/smart-block-criteria.phtml +++ b/airtime_mvc/application/views/scripts/form/smart-block-criteria.phtml @@ -18,7 +18,6 @@ - element->getElement('save_button') ?> element->getElement('generate_button') ?> element->getElement('shuffle_button') ?> @@ -96,10 +95,5 @@ - numOfSubForm; $i++){ - echo $this->parent_form->getSubform('sp_set_'.$i); - }*/ - ?> diff --git a/airtime_mvc/application/views/scripts/playlist/playlist.phtml b/airtime_mvc/application/views/scripts/playlist/playlist.phtml index 7d1a77021..4fb181457 100644 --- a/airtime_mvc/application/views/scripts/playlist/playlist.phtml +++ b/airtime_mvc/application/views/scripts/playlist/playlist.phtml @@ -12,6 +12,8 @@ if (isset($this->obj)) { + + obj)) : ?> @@ -22,6 +24,7 @@ if (isset($this->obj)) {

length; ?>

+
View / edit description @@ -30,11 +33,6 @@ if (isset($this->obj)) {
- -
- - -
diff --git a/airtime_mvc/application/views/scripts/playlist/smart-block.phtml b/airtime_mvc/application/views/scripts/playlist/smart-block.phtml index 4351057e3..1ffff0c02 100644 --- a/airtime_mvc/application/views/scripts/playlist/smart-block.phtml +++ b/airtime_mvc/application/views/scripts/playlist/smart-block.phtml @@ -12,6 +12,8 @@ if (isset($this->obj)) { +form->getElement('save_button');?> + obj)) : ?> @@ -30,11 +32,6 @@ if (isset($this->obj)) {
- -
- - -
diff --git a/airtime_mvc/public/js/airtime/library/spl.js b/airtime_mvc/public/js/airtime/library/spl.js index f0a5354eb..0a03df91a 100644 --- a/airtime_mvc/public/js/airtime/library/spl.js +++ b/airtime_mvc/public/js/airtime/library/spl.js @@ -590,41 +590,39 @@ var AIRTIME = (function(AIRTIME){ }); - } - - - ) - $pl.on("click", "#description_save", function(){ - var textarea = $pl.find("#fieldset-metadate_change textarea"), - description = textarea.val(), - url, - lastMod = getModified(), - type = $('#obj_type').val(); - - url = '/Playlist/set-playlist-description'; - - $.post(url, - {format: "json", description: description, modified: lastMod, type: type}, - function(json){ - if (json.error !== undefined){ - playlistError(json); - } - else{ - setModified(json.modified); - textarea.val(json.description); - $pl.find("#fieldset-metadate_change").addClass("closed"); - redrawLib(); - } - }); - }); - - $pl.on("click", "#description_cancel", function(){ - var textarea = $pl.find("#fieldset-metadate_change textarea"); - - textarea.val(cachedDescription); - $pl.find("#fieldset-metadate_change").addClass("closed"); - }); - //end edit playlist description events. + }); + + $('#save_button').live("click", function(event){ + /* Smart blocks: get name, description, and criteria + * Playlists: get name, description + */ + var criteria = $('form').serializeArray(), + block_name = $('#playlist_name_display').text(), + block_desc = $('textarea[name="description"]').val(), + save_action = 'Playlist/save', + obj_id = $('input[id="obj_id"]').val(), + obj_type = $('#obj_type').val(), + lastMod = getModified(), + dt = $('table[id="library_display"]').dataTable(); + enableLoadingIcon(); + $.post(save_action, + {format: "json", criteria: criteria, name: block_name, description: block_desc, obj_id: obj_id, type: obj_type, modified: lastMod}, + function(data){ + var json = $.parseJSON(data); + setModified(json.modified); + if (obj_type == "block") { + callback(data, "save"); + } else { + $('.success').text('Playlist saved'); + $('.success').show(); + setTimeout(removeSuccessMsg, 5000); + dt.fnStandingRedraw(); + } + setFadeIcon(); + disableLoadingIcon(); + } + ); + }); } function setUpPlaylist() { diff --git a/airtime_mvc/public/js/airtime/playlist/smart_playlistbuilder.js b/airtime_mvc/public/js/airtime/playlist/smart_playlistbuilder.js index ae7ea76c5..aaffed559 100644 --- a/airtime_mvc/public/js/airtime/playlist/smart_playlistbuilder.js +++ b/airtime_mvc/public/js/airtime/playlist/smart_playlistbuilder.js @@ -186,17 +186,21 @@ function setSmartPlaylistEvents() { }); /********** SAVE ACTION **********/ - form.find('button[id="save_button"]').live("click", function(event){ - var data = $('form').serializeArray(), - save_action = 'Playlist/smart-block-criteria-save', + /* moved to spl.js + $('#save_button').live("click", function(event){ + var criteria = $('form').serializeArray(), + block_name = $('#playlist_name_display').text(), + block_desc = $('textarea[name="description"]').val(), + save_action = 'Playlist/save', obj_id = $('input[id="obj_id"]').val(); enableLoadingIcon(); - $.post(save_action, {format: "json", data: data, obj_id: obj_id}, function(data){ + $.post(save_action, {format: "json", criteria: criteria, name: block_name, desc: block_desc, obj_id: obj_id}, function(data){ callback(data, "save"); setFadeIcon(); disableLoadingIcon(); }); }); + */ /********** GENERATE ACTION **********/ form.find('button[id="generate_button"]').live("click", function(event){ @@ -482,8 +486,6 @@ function callback(data, type) { } else { form.find('.success').text('Criteria saved'); form.find('.success').show(); - //redraw library table incase block changed from static to dynamic or vice versa - dt.fnStandingRedraw(); /* Update number of files that meet criteria and change icon to success/warning * as appropriate. This is also done in the form but we do not pass the form @@ -515,7 +517,7 @@ function callback(data, type) { } function removeSuccessMsg() { - var $status = $('#smart-playlist-form').find('.success'); + var $status = $('.success'); $status.fadeOut("slow", function(){$status.empty()}); }