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; ?>
+
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()});
}