diff --git a/airtime_mvc/application/Bootstrap.php b/airtime_mvc/application/Bootstrap.php
index a473e4628..4ed8cb979 100644
--- a/airtime_mvc/application/Bootstrap.php
+++ b/airtime_mvc/application/Bootstrap.php
@@ -88,7 +88,7 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
$view->headScript()->appendFile($baseUrl.'/js/airtime/common/common.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
if (Application_Model_Preference::GetPlanLevel() != "disabled"
- && ($_SERVER['REQUEST_URI'] != '/Dashboard/stream-player' || $_SERVER['REQUEST_URI'] != '/Playlist/audio-preview-player')) {
+ && ($_SERVER['REQUEST_URI'] != '/Dashboard/stream-player' || $_SERVER['REQUEST_URI'] != '/audiopreview/audio-preview-player')) {
$client_id = Application_Model_Preference::GetClientId();
$view->headScript()->appendScript("var livechat_client_id = '$client_id';");
$view->headScript()->appendFile($baseUrl . '/js/airtime/common/livechat.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
diff --git a/airtime_mvc/application/configs/ACL.php b/airtime_mvc/application/configs/ACL.php
index d2ce2e23a..8aec515da 100644
--- a/airtime_mvc/application/configs/ACL.php
+++ b/airtime_mvc/application/configs/ACL.php
@@ -27,7 +27,8 @@ $ccAcl->add(new Zend_Acl_Resource('library'))
->add(new Zend_Acl_Resource('showbuilder'))
->add(new Zend_Acl_Resource('auth'))
->add(new Zend_Acl_Resource('playouthistory'))
- ->add(new Zend_Acl_Resource('usersettings'));
+ ->add(new Zend_Acl_Resource('usersettings'))
+ ->add(new Zend_Acl_Resource('audiopreview'));
/** Creating permissions */
$ccAcl->allow('G', 'index')
@@ -48,7 +49,8 @@ $ccAcl->allow('G', 'index')
->allow('A', 'playouthistory')
->allow('A', 'user')
->allow('A', 'systemstatus')
- ->allow('A', 'preference');
+ ->allow('A', 'preference')
+ ->allow('A', 'audiopreview');
$aclPlugin = new Zend_Controller_Plugin_Acl($ccAcl);
diff --git a/airtime_mvc/application/controllers/AudiopreviewController.php b/airtime_mvc/application/controllers/AudiopreviewController.php
new file mode 100644
index 000000000..4bed2ff35
--- /dev/null
+++ b/airtime_mvc/application/controllers/AudiopreviewController.php
@@ -0,0 +1,192 @@
+_helper->getHelper('AjaxContext');
+ $ajaxContext->addActionContext('show-preview', 'json')
+ ->addActionContext('audio-preview', 'json')
+ ->addActionContext('get-show', 'json')
+ ->addActionContext('playlist-preview', 'json')
+ ->addActionContext('get-playlist', 'json')
+ ->initContext();
+ }
+
+ /**
+ * Simply sets up the view to play the required audio track.
+ * Gets the parameters from the request and sets them to the view.
+ */
+ public function audioPreviewAction()
+ {
+ $audioFileID = $this->_getParam('audioFileID');
+ $audioFileArtist = $this->_getParam('audioFileArtist');
+ $audioFileTitle = $this->_getParam('audioFileTitle');
+
+ $request = $this->getRequest();
+ $baseUrl = $request->getBaseUrl();
+
+ $baseDir = dirname($_SERVER['SCRIPT_FILENAME']);
+
+ $this->view->headScript()->appendFile($baseUrl.'/js/jplayer/preview_jplayer.js?'.filemtime($baseDir.'/js/jplayer/preview_jplayer.js'),'text/javascript');
+ $this->view->headScript()->appendFile($baseUrl.'/js/jplayer/jplayer.playlist.min.js?'.filemtime($baseDir.'/js/jplayer/jplayer.playlist.min.js'),'text/javascript');
+ $this->view->headLink()->appendStylesheet($baseUrl.'/js/jplayer/skin/jplayer.audio-preview.blue.monday.css?'.filemtime($baseDir.'/js/jplayer/skin/jplayer.audio-preview.blue.monday.css'));
+ $this->_helper->layout->setLayout('audioPlayer');
+
+ $logo = Application_Model_Preference::GetStationLogo();
+ if($logo){
+ $this->view->logo = "data:image/png;base64,$logo";
+ } else {
+ $this->view->logo = "$baseUrl/css/images/airtime_logo_jp.png";
+ }
+ $this->view->audioFileID = $audioFileID;
+ $this->view->audioFileArtist = $audioFileArtist;
+ $this->view->audioFileTitle = $audioFileTitle;
+
+ $this->_helper->viewRenderer->setRender('audio-preview');
+ }
+
+ /**
+ * Simply sets up the view to play the required playlist track.
+ * Gets the parameters from the request and sets them to the view.
+ */
+ public function playlistPreviewAction()
+ {
+ $playlistIndex = $this->_getParam('playlistIndex');
+ $playlistID = $this->_getParam('playlistID');
+
+ $request = $this->getRequest();
+ $baseUrl = $request->getBaseUrl();
+
+ $baseDir = dirname($_SERVER['SCRIPT_FILENAME']);
+
+ $this->view->headScript()->appendFile($baseUrl.'/js/jplayer/preview_jplayer.js?'.filemtime($baseDir.'/js/jplayer/preview_jplayer.js'),'text/javascript');
+ $this->view->headScript()->appendFile($baseUrl.'/js/jplayer/jplayer.playlist.min.js?'.filemtime($baseDir.'/js/jplayer/jplayer.playlist.min.js'),'text/javascript');
+ $this->view->headLink()->appendStylesheet($baseUrl.'/js/jplayer/skin/jplayer.audio-preview.blue.monday.css?'.filemtime($baseDir.'/js/jplayer/skin/jplayer.audio-preview.blue.monday.css'));
+ $this->_helper->layout->setLayout('audioPlayer');
+
+ $logo = Application_Model_Preference::GetStationLogo();
+ if($logo){
+ $this->view->logo = "data:image/png;base64,$logo";
+ } else {
+ $this->view->logo = "$baseUrl/css/images/airtime_logo_jp.png";
+ }
+ $this->view->playlistIndex= $playlistIndex;
+ $this->view->playlistID = $playlistID;
+
+ $this->_helper->viewRenderer->setRender('audio-preview');
+ }
+
+ /**
+ *Function will load and return the contents of the requested playlist.
+ */
+ public function getPlaylistAction(){
+ // disable the view and the layout
+ $this->view->layout()->disableLayout();
+ $this->_helper->viewRenderer->setNoRender(true);
+
+ $playlistID = $this->_getParam('playlistID');
+
+ if (!isset($playlistID)){
+ return;
+ }
+
+ $pl = new Application_Model_Playlist($playlistID);
+ $result = Array();
+
+ foreach ( $pl->getContents() as $track ){
+
+ $elementMap = array( 'element_title' => isset($track['CcFiles']['track_title'])?$track['CcFiles']['track_title']:"",
+ 'element_artist' => isset($track['CcFiles']['artist_name'])?$track['CcFiles']['artist_name']:"",
+ 'element_id' => isset($track['id'])?$track['id']:"",
+ 'element_position' => isset($track['position'])?$track['position']:"",
+ );
+ $fileExtension = pathinfo($track['CcFiles']['filepath'], PATHINFO_EXTENSION);
+ if ($fileExtension === 'mp3'){
+ $elementMap['element_mp3'] = $track['CcFiles']['gunid'].'.'.$fileExtension;
+ } else if( $fileExtension === 'ogg') {
+ $elementMap['element_oga'] = $track['CcFiles']['gunid'].'.'.$fileExtension;
+ } else {
+ //the media was neither mp3 or ogg
+ }
+ $result[] = $elementMap;
+ }
+
+ $this->_helper->json($result);
+ }
+
+ /**
+ * Simply sets up the view to play the required show track.
+ * Gets the parameters from the request and sets them to the view.
+ */
+ public function showPreviewAction()
+ {
+ $showID = $this->_getParam('showID');
+ $showIndex = $this->_getParam('showIndex');
+
+ $request = $this->getRequest();
+ $baseUrl = $request->getBaseUrl();
+
+ $baseDir = dirname($_SERVER['SCRIPT_FILENAME']);
+
+ $this->view->headScript()->appendFile($baseUrl.'/js/jplayer/preview_jplayer.js?'.filemtime($baseDir.'/js/jplayer/preview_jplayer.js'),'text/javascript');
+ $this->view->headScript()->appendFile($baseUrl.'/js/jplayer/jplayer.playlist.min.js?'.filemtime($baseDir.'/js/jplayer/jplayer.playlist.min.js'),'text/javascript');
+ $this->view->headLink()->appendStylesheet($baseUrl.'/js/jplayer/skin/jplayer.audio-preview.blue.monday.css?'.filemtime($baseDir.'/js/jplayer/skin/jplayer.audio-preview.blue.monday.css'));
+ $this->_helper->layout->setLayout('audioPlayer');
+
+ $logo = Application_Model_Preference::GetStationLogo();
+ if($logo){
+ $this->view->logo = "data:image/png;base64,$logo";
+ } else {
+ $this->view->logo = "$baseUrl/css/images/airtime_logo_jp.png";
+ }
+
+ $this->view->showID = $showID;
+ $this->view->showIndex = $showIndex;
+
+ $this->_helper->viewRenderer->setRender('audio-preview');
+ }
+
+ /**
+ *Function will load and return the contents of the requested show.
+ */
+ public function getShowAction()
+ {
+ Logging::log("in audio previews getShowAction");
+
+ // disable the view and the layout
+ $this->view->layout()->disableLayout();
+ $this->_helper->viewRenderer->setNoRender(true);
+
+ $showID = $this->_getParam('showID');
+
+ if (!isset($showID)){
+ return;
+ }
+
+ $showInstance = new Application_Model_ShowInstance($showID);
+ $result = Array();
+ $position = 0;
+ foreach ( $showInstance->getShowListContent() as $track ){
+
+ $elementMap = array( 'element_title' => isset($track['track_title'])?$track['track_title']:"",
+ 'element_artist' => isset($track['artist_name'])?$track['artist_name']:"",
+ 'element_position' => $position,
+ 'element_id' => ++$position,
+ );
+
+ $fileExtension = pathinfo($track['filepath'], PATHINFO_EXTENSION);
+ if ($fileExtension === 'mp3'){
+ $elementMap['element_mp3'] = $track['gunid'].'.'.$fileExtension;
+ } else if( $fileExtension === 'ogg') {
+ $elementMap['element_oga'] = $track['gunid'].'.'.$fileExtension;
+ } else {
+ //the media was neither mp3 or ogg
+ }
+ $result[] = $elementMap;
+ }
+
+ $this->_helper->json($result);
+
+ }
+}
\ No newline at end of file
diff --git a/airtime_mvc/application/controllers/DashboardController.php b/airtime_mvc/application/controllers/DashboardController.php
index 54aa1bfa9..9a30348a2 100644
--- a/airtime_mvc/application/controllers/DashboardController.php
+++ b/airtime_mvc/application/controllers/DashboardController.php
@@ -18,31 +18,66 @@ class DashboardController extends Zend_Controller_Action
public function disconnectSourceAction(){
$request = $this->getRequest();
-
$sourcename = $request->getParam('sourcename');
- $data = array("sourcename"=>$sourcename);
- Application_Model_RabbitMq::SendMessageToPypo("disconnect_source", $data);
+
+ $userInfo = Zend_Auth::getInstance()->getStorage()->read();
+ $user = new Application_Model_User($userInfo->id);
+
+ $show = Application_Model_Show::GetCurrentShow();
+
+ $show_id = isset($show['id'])?$show['id']:0;
+
+ $source_connected = Application_Model_Preference::GetSourceStatus($sourcename);
+
+ if($user->canSchedule($show_id) && $source_connected){
+ $data = array("sourcename"=>$sourcename);
+ Application_Model_RabbitMq::SendMessageToPypo("disconnect_source", $data);
+ }else{
+ if($source_connected){
+ $this->view->error = "You don't have permission to disconnect source.";
+ }else{
+ $this->view->error = "There is no source connected to this input.";
+ }
+ }
}
public function switchSourceAction(){
$request = $this->getRequest();
-
$sourcename = $this->_getParam('sourcename');
$current_status = $this->_getParam('status');
- $change_status_to = "on";
- if(strtolower($current_status) == "on"){
- $change_status_to = "off";
+ $userInfo = Zend_Auth::getInstance()->getStorage()->read();
+ $user = new Application_Model_User($userInfo->id);
+
+ $show = Application_Model_Show::GetCurrentShow();
+ $show_id = isset($show['id'])?$show['id']:0;
+
+ $source_connected = Application_Model_Preference::GetSourceStatus($sourcename);
+
+ if($user->canSchedule($show_id) && ($source_connected || $sourcename == 'scheduled_play')){
+
+ $change_status_to = "on";
+
+ if(strtolower($current_status) == "on"){
+ $change_status_to = "off";
+ }
+
+ $data = array("sourcename"=>$sourcename, "status"=>$change_status_to);
+ Application_Model_RabbitMq::SendMessageToPypo("switch_source", $data);
+ if(strtolower($current_status) == "on"){
+ Application_Model_Preference::SetSourceSwitchStatus($sourcename, "off");
+ $this->view->status = "OFF";
+ }else{
+ Application_Model_Preference::SetSourceSwitchStatus($sourcename, "on");
+ $this->view->status = "ON";
+ }
}
-
- $data = array("sourcename"=>$sourcename, "status"=>$change_status_to);
- Application_Model_RabbitMq::SendMessageToPypo("switch_source", $data);
- if(strtolower($current_status) == "on"){
- Application_Model_Preference::SetSourceSwitchStatus($sourcename, "off");
- $this->view->status = "OFF";
- }else{
- Application_Model_Preference::SetSourceSwitchStatus($sourcename, "on");
- $this->view->status = "ON";
+ else{
+ if($source_connected){
+ $this->view->error = "You don't have permission to switch source.";
+ }else{
+ $this->view->error = "There is no source connected to this input.";
+ }
}
}
diff --git a/airtime_mvc/application/controllers/PlaylistController.php b/airtime_mvc/application/controllers/PlaylistController.php
index dc67546f6..a3715a6f5 100644
--- a/airtime_mvc/application/controllers/PlaylistController.php
+++ b/airtime_mvc/application/controllers/PlaylistController.php
@@ -198,75 +198,6 @@ class PlaylistController extends Zend_Controller_Action
}
}
- public function playlistPreviewAction()
- {
- $audioFileID = $this->_getParam('audioFileID');
- $audioFileArtist = $this->_getParam('audioFileArtist');
- $audioFileTitle = $this->_getParam('audioFileTitle');
- $playlistIndex = $this->_getParam('playlistIndex');
- $playlistID = $this->_getParam('playlistID');
-
- $request = $this->getRequest();
- $baseUrl = $request->getBaseUrl();
-
- $baseDir = dirname($_SERVER['SCRIPT_FILENAME']);
-
- $this->view->headScript()->appendFile($baseUrl.'/js/jplayer/preview_jplayer.js?'.filemtime($baseDir.'/js/jplayer/preview_jplayer.js'),'text/javascript');
- $this->view->headScript()->appendFile($baseUrl.'/js/jplayer/jplayer.playlist.min.js?'.filemtime($baseDir.'/js/jplayer/jplayer.playlist.min.js'),'text/javascript');
- $this->view->headLink()->appendStylesheet($baseUrl.'/js/jplayer/skin/jplayer.audio-preview.blue.monday.css?'.filemtime($baseDir.'/js/jplayer/skin/jplayer.audio-preview.blue.monday.css'));
- $this->_helper->layout->setLayout('audioPlayer');
-
- $logo = Application_Model_Preference::GetStationLogo();
- if($logo){
- $this->view->logo = "data:image/png;base64,$logo";
- } else {
- $this->view->logo = "$baseUrl/css/images/airtime_logo_jp.png";
- }
-
- $this->view->audioFileID = $audioFileID;
- $this->view->audioFileArtist = $audioFileArtist;
- $this->view->audioFileTitle = $audioFileTitle;
- $this->view->playlistIndex= $playlistIndex;
- $this->view->playlistID = $playlistID;
-
- }
-
- public function getPlaylistAction(){
-
- // disable the view and the layout
- $this->view->layout()->disableLayout();
- $this->_helper->viewRenderer->setNoRender(true);
-
- $playlistID = $this->_getParam('playlistID');
-
- if (!isset($playlistID)){
- return;
- }
-
- $pl = new Application_Model_Playlist($playlistID);
- $result = Array();
-
- foreach ( $pl->getContents() as $track ){
-
- $trackMap = array( 'title' => isset($track['CcFiles']['track_title'])?$track['CcFiles']['track_title']:"",
- 'artist' => isset($track['CcFiles']['artist_name'])?$track['CcFiles']['artist_name']:"",
- 'id' => isset($track['id'])?$track['id']:"",
- 'position' => isset($track['position'])?$track['position']:"",
- );
- $fileExtension = pathinfo($track['CcFiles']['filepath'], PATHINFO_EXTENSION);
- if ($fileExtension === 'mp3'){
- $trackMap['mp3'] = $track['CcFiles']['gunid'].'.'.$fileExtension;
- } else if( $fileExtension === 'ogg') {
- $trackMap['oga'] = $track['CcFiles']['gunid'].'.'.$fileExtension;
- } else {
- //the media was neither mp3 or ogg
- }
- $result[] = $trackMap;
- }
-
- $this->_helper->json($result);
- }
-
public function addItemsAction()
{
$ids = $this->_getParam('ids', array());
diff --git a/airtime_mvc/application/layouts/scripts/builder.phtml b/airtime_mvc/application/layouts/scripts/builder.phtml
index 5f13b0f67..02a9b8253 100644
--- a/airtime_mvc/application/layouts/scripts/builder.phtml
+++ b/airtime_mvc/application/layouts/scripts/builder.phtml
@@ -13,11 +13,10 @@
versionNotify();
$sss = $this->SourceSwitchStatus();
$scs = $this->SourceConnectionStatus();
- $isAdmin = $this->isAdmin();
?>
partial('partialviews/header.phtml', array("user" => $this->loggedInAs(), "is_trial"=>$this->isTrial(), "trial_remain"=> $this->trialRemaining(),
"live_dj_switch"=>$sss['live_dj'], "live_dj_connection"=>$scs['live_dj'], "master_dj_switch"=>$sss['master_dj'], "master_dj_connection"=>$scs['master_dj'],
- "scheduled_play_switch"=>$sss['scheduled_play'], "isAdmin"=>$isAdmin)) ?>
+ "scheduled_play_switch"=>$sss['scheduled_play'])) ?>
navigation()->menu()->setPartial($partial); ?>
diff --git a/airtime_mvc/application/layouts/scripts/layout.phtml b/airtime_mvc/application/layouts/scripts/layout.phtml
index d074b921d..92d38eef9 100644
--- a/airtime_mvc/application/layouts/scripts/layout.phtml
+++ b/airtime_mvc/application/layouts/scripts/layout.phtml
@@ -14,12 +14,10 @@
versionNotify();
$sss = $this->SourceSwitchStatus();
$scs = $this->SourceConnectionStatus();
- $isAdmin = $this->isAdmin();
?>
partial('partialviews/header.phtml', array("user" => $this->loggedInAs(), "is_trial"=>$this->isTrial(), "trial_remain"=> $this->trialRemaining(),
"live_dj_switch"=>$sss['live_dj'], "live_dj_connection"=>$scs['live_dj'], "master_dj_switch"=>$sss['master_dj'], "master_dj_connection"=>$scs['master_dj'],
- "scheduled_play_switch"=>$sss['scheduled_play'], "isAdmin"=>$isAdmin)) ?>
-
+ "scheduled_play_switch"=>$sss['scheduled_play'])) ?>
navigation()->menu()->setPartial($partial); ?>
diff --git a/airtime_mvc/application/layouts/scripts/library.phtml b/airtime_mvc/application/layouts/scripts/library.phtml
index e3a2748e1..580106684 100644
--- a/airtime_mvc/application/layouts/scripts/library.phtml
+++ b/airtime_mvc/application/layouts/scripts/library.phtml
@@ -14,11 +14,10 @@
versionNotify();
$sss = $this->SourceSwitchStatus();
$scs = $this->SourceConnectionStatus();
- $isAdmin = $this->isAdmin();
?>
partial('partialviews/header.phtml', array("user" => $this->loggedInAs(), "is_trial"=>$this->isTrial(), "trial_remain"=> $this->trialRemaining(),
"live_dj_switch"=>$sss['live_dj'], "live_dj_connection"=>$scs['live_dj'], "master_dj_switch"=>$sss['master_dj'], "master_dj_connection"=>$scs['master_dj'],
- "scheduled_play_switch"=>$sss['scheduled_play'], "isAdmin"=>$isAdmin)) ?>
+ "scheduled_play_switch"=>$sss['scheduled_play'])) ?>
navigation()->menu()->setPartial($partial); ?>
diff --git a/airtime_mvc/application/layouts/scripts/playouthistory.phtml b/airtime_mvc/application/layouts/scripts/playouthistory.phtml
index 0c9fee73f..1e8028866 100644
--- a/airtime_mvc/application/layouts/scripts/playouthistory.phtml
+++ b/airtime_mvc/application/layouts/scripts/playouthistory.phtml
@@ -14,11 +14,10 @@
versionNotify();
$sss = $this->SourceSwitchStatus();
$scs = $this->SourceConnectionStatus();
- $isAdmin = $this->isAdmin();
?>
partial('partialviews/header.phtml', array("user" => $this->loggedInAs(), "is_trial"=>$this->isTrial(), "trial_remain"=> $this->trialRemaining(),
"live_dj_switch"=>$sss['live_dj'], "live_dj_connection"=>$scs['live_dj'], "master_dj_switch"=>$sss['master_dj'], "master_dj_connection"=>$scs['master_dj'],
- "scheduled_play_switch"=>$sss['scheduled_play'], "isAdmin"=>$isAdmin)) ?>
+ "scheduled_play_switch"=>$sss['scheduled_play'])) ?>
navigation()->menu()->setPartial($partial); ?>
diff --git a/airtime_mvc/application/models/ShowBuilder.php b/airtime_mvc/application/models/ShowBuilder.php
index bb87c9e6a..07d4fb684 100644
--- a/airtime_mvc/application/models/ShowBuilder.php
+++ b/airtime_mvc/application/models/ShowBuilder.php
@@ -126,6 +126,7 @@ class Application_Model_ShowBuilder {
$row["duration"] = $showEndDT->format("U") - $showStartDT->format("U");
$row["title"] = $p_item["show_name"];
$row["instance"] = intval($p_item["si_id"]);
+ $row["image"] = '';
$this->contentDT = $showStartDT;
@@ -156,10 +157,11 @@ class Application_Model_ShowBuilder {
$this->isCurrent($startsEpoch, min($endsEpoch, $showEndEpoch), $row);
$row["id"] = intval($p_item["sched_id"]);
+ $row["image"] = '';
$row["instance"] = intval($p_item["si_id"]);
$row["starts"] = $schedStartDT->format("H:i:s");
$row["ends"] = $schedEndDT->format("H:i:s");
-
+
$formatter = new LengthFormatter($p_item['file_length']);
$row['runtime'] = $formatter->format();
@@ -177,12 +179,14 @@ class Application_Model_ShowBuilder {
//show is empty or is a special kind of show (recording etc)
else if (intval($p_item["si_record"]) === 1) {
$row["record"] = true;
+ $row["image"] = '';
}
else {
$row["empty"] = true;
$row["id"] = 0 ;
$row["instance"] = intval($p_item["si_id"]);
+ $row["image"] = '';
}
return $row;
@@ -201,7 +205,7 @@ class Application_Model_ShowBuilder {
$timeFilled = new TimeFilledFormatter($runtime);
$row["fRuntime"] = $timeFilled->format();
-
+ $row["image"] = '';
return $row;
}
@@ -293,7 +297,6 @@ class Application_Model_ShowBuilder {
}
if (!$this->hasCurrent) {
-
}
return $display_items;
diff --git a/airtime_mvc/application/models/User.php b/airtime_mvc/application/models/User.php
index b028a87e9..56312d568 100644
--- a/airtime_mvc/application/models/User.php
+++ b/airtime_mvc/application/models/User.php
@@ -30,6 +30,10 @@ class Application_Model_User {
public function isHost($showId) {
return $this->isUserType(UTYPE_HOST, $showId);
}
+
+ public function isPM() {
+ return $this->isUserType(UTYPE_PROGRAM_MANAGER);
+ }
public function isAdmin() {
return $this->isUserType(UTYPE_ADMIN);
diff --git a/airtime_mvc/application/views/helpers/IsAdmin.php b/airtime_mvc/application/views/helpers/IsAdmin.php
deleted file mode 100644
index 94c07235a..000000000
--- a/airtime_mvc/application/views/helpers/IsAdmin.php
+++ /dev/null
@@ -1,11 +0,0 @@
-getStorage()->read();
- $user = new Application_Model_User($userInfo->id);
- return $user->isAdmin();
- }
-}
\ No newline at end of file
diff --git a/airtime_mvc/application/views/scripts/playlist/playlist-preview.phtml b/airtime_mvc/application/views/scripts/audiopreview/audio-preview.phtml
similarity index 89%
rename from airtime_mvc/application/views/scripts/playlist/playlist-preview.phtml
rename to airtime_mvc/application/views/scripts/audiopreview/audio-preview.phtml
index fd5ba3c0a..0ec94a16a 100644
--- a/airtime_mvc/application/views/scripts/playlist/playlist-preview.phtml
+++ b/airtime_mvc/application/views/scripts/audiopreview/audio-preview.phtml
@@ -1,11 +1,17 @@