diff --git a/airtime_mvc/application/controllers/PlaylistController.php b/airtime_mvc/application/controllers/PlaylistController.php index ce5be5f90..73899017e 100644 --- a/airtime_mvc/application/controllers/PlaylistController.php +++ b/airtime_mvc/application/controllers/PlaylistController.php @@ -27,6 +27,7 @@ class PlaylistController extends Zend_Controller_Action ->addActionContext('smart-block-criteria-save', 'json') ->addActionContext('smart-block-generate', 'json') ->addActionContext('smart-block-shuffle', 'json') + ->addActionContext('get-block-info', 'json') ->initContext(); /*$this->pl_sess = new Zend_Session_Namespace(UI_PLAYLIST_SESSNAME); @@ -124,9 +125,9 @@ class PlaylistController extends Zend_Controller_Action $this->view->error = $e->getMessage(); } - private function playlistDynamic($obj) + private function blockDynamic($obj) { - $this->view->error = "You cannot add tracks to dynamic playlist."; + $this->view->error = "You cannot add tracks to dynamic block."; $this->createFullResponse($obj); } @@ -309,7 +310,7 @@ class PlaylistController extends Zend_Controller_Action // if the dest is a block object $obj->addAudioClips($ids, $afterItem, $addType); } else { - throw new PlaylistDyanmicException; + throw new BlockDynamicException; } $this->createUpdateResponse($obj); } @@ -319,8 +320,8 @@ class PlaylistController extends Zend_Controller_Action catch (PlaylistNotFoundException $e) { $this->playlistNotFound($obj_type); } - catch (PlaylistDyanmicException $e) { - $this->playlistDynamic($obj); + catch (BlockDynamicException $e) { + $this->blockDynamic($obj); } catch (Exception $e) { $this->playlistUnknownError($e); @@ -452,7 +453,7 @@ class PlaylistController extends Zend_Controller_Action try { $obj = $this->getPlaylist($type); - $obj->setPlaylistfades($fadeIn, $fadeOut); + $obj->setfades($fadeIn, $fadeOut); $this->view->modified = $obj->getLastModified("U"); } catch (PlaylistOutDatedException $e) { $this->playlistOutdated($e); @@ -565,4 +566,18 @@ class PlaylistController extends Zend_Controller_Action return $info; } + public function getBlockInfoAction(){ + $request = $this->getRequest(); + $params = $request->getPost(); + $bl = new Application_Model_Block($params['id']); + if ($bl->isStatic()) { + $out = $bl->getContents(); + $out['isStatic'] = true; + } else { + $out = Application_Model_Block::getCriteria($params['id']); + $out['isStatic'] = false; + } + die(json_encode($out)); + } + } diff --git a/airtime_mvc/application/models/Playlist.php b/airtime_mvc/application/models/Playlist.php index 751bf6fd3..6a4653f09 100644 --- a/airtime_mvc/application/models/Playlist.php +++ b/airtime_mvc/application/models/Playlist.php @@ -320,23 +320,6 @@ EOT; } } - /*private function buildStreamEntry($p_item, $pos) - { - $stream = CcWebstreamQuery::create()->findPK($p_item, $this->con); - - if (isset($stream)) { - $entry = $this->plItem; - $entry["id"] = $stream->getDbId(); - $entry["pos"] = $pos; - $entry["cliplength"] = $stream->getDbLength(); - $entry["cueout"] = $stream->getDbLength(); - - return $entry; - } else { - throw new Exception("trying to add a stream that does not exist."); - } - }*/ - /* * @param array $p_items * an array of audioclips to add to the playlist @@ -612,7 +595,7 @@ EOT; return array("fadeIn" => $fadeIn, "fadeOut" => $fadeOut); } - public function setPlaylistfades($fadein, $fadeout) + public function setfades($fadein, $fadeout) { if (isset($fadein)) { Logging::log("Setting playlist fade in {$fadein}"); @@ -872,4 +855,3 @@ EOT; class PlaylistNotFoundException extends Exception {} class PlaylistNoPermissionException extends Exception {} class PlaylistOutDatedException extends Exception {} -class PlaylistDyanmicException extends Exception {} diff --git a/airtime_mvc/application/models/Scheduler.php b/airtime_mvc/application/models/Scheduler.php index a07d998d4..e995b88ed 100644 --- a/airtime_mvc/application/models/Scheduler.php +++ b/airtime_mvc/application/models/Scheduler.php @@ -182,9 +182,13 @@ class Application_Model_Scheduler $data["id"] = $file->getDbId(); $data["cliplength"] = $file->getDbLength(); $data["cuein"] = "00:00:00"; - $data["cueout"] = "00:00:00"; - $data["fadein"] = "00:00:00"; - $data["fadeout"] = "00:00:00"; + $data["cueout"] = $file->getDbLength(); + $defaultFade = Application_Model_Preference::GetDefaultFade(); + if (isset($defaultFade)) { + //fade is in format SS.uuuuuu + $data["fadein"] = $defaultFade; + $data["fadeout"] = $defaultFade; + } $data["type"] = 0; $files[] = $data; } @@ -192,48 +196,6 @@ class Application_Model_Scheduler } } } - // find if the playslit is static or dynamic - /*$c = new Criteria(); - $c->add(CcPlaylistPeer::ID, $id); - $pl = CcPlaylistPeer::doSelect($c); - $playlistType = $pl[0]->getDbType(); - - if ($playlistType == "static") { - $contents = CcPlaylistcontentsQuery::create() - ->orderByDbPosition() - ->filterByDbPlaylistId($id) - ->find($this->con); - } else { - $pl = new Application_Model_Playlist($id); - $contents = $pl->getListOfFilesUnderLimit(); - } - - if (is_null($contents)) { - throw new Exception("A selected Playlist does not exist!"); - }*/ - - /*foreach ($contents as $fileId => $plItem) { - $data = $this->fileInfo; - if ($plItem['type'] == 0){ - $file = $plItem->getCcFiles($this->con); - if (isset($file) && $file->getDbFileExists()) { - $data["id"] = $plItem->getDbFileId(); - $data["cliplength"] = $plItem->getDbCliplength(); - $data["cuein"] = $plItem->getDbCuein(); - $data["cueout"] = $plItem->getDbCueout(); - $data["fadein"] = $plItem->getDbFadein(); - $data["fadeout"] = $plItem->getDbFadeout(); - } - } else { - // on dynamic playslsit, $fileId is id of files - $file = Application_Model_StoredFile::Recall($fileId)->getPropelOrm(); - if (isset($file) && $file->getDbFileExists()) { - $data["id"] = $fileId; - $data["cliplength"] = $file->getDbLength(); - } - } - $files[] = $data; - }*/ } else if ($type == "stream") { //need to return $stream = CcWebstreamQuery::create()->findPK($id, $this->con); @@ -256,6 +218,39 @@ class Application_Model_Scheduler $files[] = $data; } + } else if ($type == "block") { + $bl = new Application_Model_Block($id); + if ($bl->isStatic()) { + foreach ($bl->getContents() as $track) { + $data["id"] = $track['item_id']; + $data["cliplength"] = $track['length']; + $data["cuein"] = $track['cuein']; + $data["cueout"] = $track['cueout']; + $data["fadein"] = $track['fadein']; + $data["fadeout"] = $track['fadeout']; + $data["type"] = 0; + $files[] = $data; + } + } else { + $dynamicFiles = $bl->getListOfFilesUnderLimit(); + foreach ($dynamicFiles as $fileId=>$f) { + $file = CcFilesQuery::create()->findPk($fileId); + if (isset($file) && $file->getDbFileExists()) { + $data["id"] = $file->getDbId(); + $data["cliplength"] = $file->getDbLength(); + $data["cuein"] = "00:00:00"; + $data["cueout"] = $file->getDbLength(); + $defaultFade = Application_Model_Preference::GetDefaultFade(); + if (isset($defaultFade)) { + //fade is in format SS.uuuuuu + $data["fadein"] = $defaultFade; + $data["fadeout"] = $defaultFade; + } + $data["type"] = 0; + $files[] = $data; + } + } + } } return $files; } diff --git a/airtime_mvc/application/views/scripts/playlist/set-fade.phtml b/airtime_mvc/application/views/scripts/playlist/set-fade.phtml index 68aa09fc6..6e21fb315 100644 --- a/airtime_mvc/application/views/scripts/playlist/set-fade.phtml +++ b/airtime_mvc/application/views/scripts/playlist/set-fade.phtml @@ -1,12 +1,16 @@