set auto-generated smartblock and playlist title directly from input
This commit is contained in:
parent
15b73580c1
commit
15cf291bc9
|
@ -198,14 +198,15 @@ class Rest_PodcastController extends Zend_Rest_Controller
|
||||||
|
|
||||||
public function smartblockAction() {
|
public function smartblockAction() {
|
||||||
|
|
||||||
|
$title = $this->_getParam('title', []);
|
||||||
$id = $this->_getParam('id', []);
|
$id = $this->_getParam('id', []);
|
||||||
if (!$id) {
|
if (!$id) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$podcast = Application_Service_PodcastService::getPodcastById($id);
|
$podcast = Application_Service_PodcastService::getPodcastById($id);
|
||||||
|
|
||||||
logging::info($podcast);
|
// logging::info($podcast);
|
||||||
Application_Service_PodcastService::createPodcastSmartblockAndPlaylist($podcast);
|
Application_Service_PodcastService::createPodcastSmartblockAndPlaylist($podcast, $title);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -162,55 +162,56 @@ class Application_Service_PodcastService
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $podcast
|
* @param $podcast
|
||||||
|
* @param $title passed in directly from web UI input
|
||||||
* This will automatically create a smartblock and playlist for this podcast.
|
* This will automatically create a smartblock and playlist for this podcast.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public static function createPodcastSmartblockAndPlaylist($podcast)
|
public static function createPodcastSmartblockAndPlaylist($podcast, $title)
|
||||||
{
|
{
|
||||||
if (is_array($podcast)) {
|
if (is_array($podcast)) {
|
||||||
$newpodcast = new Podcast();
|
$newpodcast = new Podcast();
|
||||||
$newpodcast->fromArray($podcast, BasePeer::TYPE_FIELDNAME);
|
$newpodcast->fromArray($podcast, BasePeer::TYPE_FIELDNAME);
|
||||||
$podcast = $newpodcast;
|
$podcast = $newpodcast;
|
||||||
}
|
}
|
||||||
// Base class
|
// Base class
|
||||||
$newBl = new Application_Model_Block();
|
$newBl = new Application_Model_Block();
|
||||||
$newBl->setCreator(Application_Model_User::getCurrentUser()->getId());
|
$newBl->setCreator(Application_Model_User::getCurrentUser()->getId());
|
||||||
$newBl->setName($podcast->getDbTitle());
|
$newBl->setName($title);
|
||||||
$newBl->setDescription('Auto-generated smartblock for podcast');
|
$newBl->setDescription('Auto-generated smartblock for podcast');
|
||||||
$newBl->saveType('dynamic');
|
$newBl->saveType('dynamic');
|
||||||
// limit the smartblock to 1 item
|
// limit the smartblock to 1 item
|
||||||
$row = new CcBlockcriteria();
|
$row = new CcBlockcriteria();
|
||||||
$row->setDbCriteria('limit');
|
$row->setDbCriteria('limit');
|
||||||
$row->setDbModifier('items');
|
$row->setDbModifier('items');
|
||||||
$row->setDbValue(1);
|
$row->setDbValue(1);
|
||||||
$row->setDbBlockId($newBl->getId());
|
$row->setDbBlockId($newBl->getId());
|
||||||
$row->save();
|
$row->save();
|
||||||
|
|
||||||
// sort so that it is the newest item
|
// sort so that it is the newest item
|
||||||
$row = new CcBlockcriteria();
|
$row = new CcBlockcriteria();
|
||||||
$row->setDbCriteria('sort');
|
$row->setDbCriteria('sort');
|
||||||
$row->setDbModifier('N/A');
|
$row->setDbModifier('N/A');
|
||||||
$row->setDbValue('newest');
|
$row->setDbValue('newest');
|
||||||
$row->setDbBlockId($newBl->getId());
|
$row->setDbBlockId($newBl->getId());
|
||||||
$row->save();
|
$row->save();
|
||||||
|
|
||||||
// match the track by ensuring the album title matches the podcast
|
// match the track by ensuring the album title matches the podcast
|
||||||
$row = new CcBlockcriteria();
|
$row = new CcBlockcriteria();
|
||||||
$row->setDbCriteria('album_title');
|
$row->setDbCriteria('album_title');
|
||||||
$row->setDbModifier('is');
|
$row->setDbModifier('is');
|
||||||
$row->setDbValue($newBl->getName());
|
$row->setDbValue($title);
|
||||||
$row->setDbBlockId($newBl->getId());
|
$row->setDbBlockId($newBl->getId());
|
||||||
$row->save();
|
$row->save();
|
||||||
|
|
||||||
$newPl = new Application_Model_Playlist();
|
$newPl = new Application_Model_Playlist();
|
||||||
$newPl->setName($podcast->getDbTitle());
|
$newPl->setName($title);
|
||||||
$newPl->setCreator(Application_Model_User::getCurrentUser()->getId());
|
$newPl->setCreator(Application_Model_User::getCurrentUser()->getId());
|
||||||
$row = new CcPlaylistcontents();
|
$row = new CcPlaylistcontents();
|
||||||
$row->setDbBlockId($newBl->getId());
|
$row->setDbBlockId($newBl->getId());
|
||||||
$row->setDbPlaylistId($newPl->getId());
|
$row->setDbPlaylistId($newPl->getId());
|
||||||
$row->setDbType(2);
|
$row->setDbType(2);
|
||||||
$row->save();
|
$row->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static function createStationPodcast()
|
public static function createStationPodcast()
|
||||||
|
|
|
@ -54,7 +54,18 @@ var AIRTIME = (function (AIRTIME) {
|
||||||
* Generate a smartblock and playlist for this smartblock.
|
* Generate a smartblock and playlist for this smartblock.
|
||||||
*/
|
*/
|
||||||
$scope.createSmartblock = function () {
|
$scope.createSmartblock = function () {
|
||||||
$.post(endpoint + "smartblock", {csrf_token: $("#csrf").val(), id: $scope.podcast.id}, callback);
|
// send smarblock creation instruction to API
|
||||||
|
$.post(
|
||||||
|
endpoint + "smartblock",
|
||||||
|
{
|
||||||
|
csrf_token: $("#csrf").val(),
|
||||||
|
id: $scope.podcast.id,
|
||||||
|
title: $scope.podcast.title
|
||||||
|
},
|
||||||
|
callback
|
||||||
|
);
|
||||||
|
// save podcast
|
||||||
|
$scope.savePodcast();
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
* Close the tab and discard any changes made to the podcast data.
|
* Close the tab and discard any changes made to the podcast data.
|
||||||
|
|
Loading…
Reference in New Issue