From ae646545c4bed0b624076085e6986d13ef029ffd Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Thu, 15 Mar 2012 11:36:32 +0100 Subject: [PATCH 01/10] CC-3201 : file import more visible --- .../views/scripts/library/library.phtml | 2 +- .../public/css/images/file_import_loader.gif | Bin 0 -> 2272 bytes airtime_mvc/public/css/media_library.css | 9 +++++++++ 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 airtime_mvc/public/css/images/file_import_loader.gif diff --git a/airtime_mvc/application/views/scripts/library/library.phtml b/airtime_mvc/application/views/scripts/library/library.phtml index 8a1fead4c..7cd7d3959 100644 --- a/airtime_mvc/application/views/scripts/library/library.phtml +++ b/airtime_mvc/application/views/scripts/library/library.phtml @@ -1,3 +1,3 @@ - +
diff --git a/airtime_mvc/public/css/images/file_import_loader.gif b/airtime_mvc/public/css/images/file_import_loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..c9b844e823af58ac1aee2382e70841ca2c10f625 GIT binary patch literal 2272 zcmeIzeNfVO9Ki7(B8fr*KCfLHn31J*R#rZ(p`vN1snKaZq$nk*C>lPYmhvP%AsVTr zks)asx*{_zFA14ha&G5b+sbq~vt2`7p4V#U)xKQoR)6f_pZypA!~J;uKJU+GPjH}z zCv7cc0|_8V)v21iH)&Wf=(M_(-&ba5W>=oCOpH&=PR%YaEbH&;2W}2b-k;PB>sDT^ z7@iuImzFy_JE8ylA-qO~1yJ|<`-TT>+u{a?fiDtXnwlda9OP>J5#wV(2z8>9gwB*R zIwhoEdJU*bb?jvREipy1OTk}!9z>EzP5s>S@ipc`=O2r9H%nA-b(On$%x(WQo=#fP zMS}kEXPWyzQ?bN2f?;8okEQ%7GdhNKD6@!8Wds~QC@9RLAIZrp$Y38V#=$rxGCo%% zJ$3?8Z5I9t8xSO?Y$5feu}EaAdq_GD9mR}KZ=0+ zelw16c`*5KYMMy+@HalZjsI(??EY#)Ku@BB1VNXeyyp65kR~Ua19Ai{f?h$sZ%R#1 zO*a<&d_^f&f}o4IMW9`fHK_KVdqwE*cu5KE45PEVggih_?si{I(yEc;=^HgIChKjc za!sc6wdq7mJMT&XWr4fFEJ^ct8?k+)*PBG`imu!l!HmKtQc53n`{+IB-1yg`jXCD| zo}PtBOb$DOlaaS4RFs}kVV9I6@eqi_8OO4#SiBS=1zE?E;YzCc-1F_W@}s3)%7bO) zSyxmw!L|J~WCQ>7`DT{7#a4k0LW$7v=#Jz=x~T0iFYn3lY%hWLfl20$xec4$w(fqi z!)cvi-sNqL4)4SDsC$e$OUqRiRr+DQQlSKDKoF<_EW?~p2bikbRAAQ)^ct0cpiCkI zcFHy--~*I@$A?(L6D3ZtW@nPrb&fjrag@Sy#|vezk`T3f%`h29HkGX<-b&x*QV~GE zjPyu_1e(S;8n*V5$BeVjDu!6fAe#^sqp;A=9rRDiVwA0}eVL9(3|fe`GPAVczzh8$ z8yYH@ogfgQQF-tJY*bCa9vRQBQQX9lN5`0)*lXV)6d%T%Nt3c#6V5lDMl>_el8@uA z+YhMAE8$k$YsX4X@*7VzrBwSB_m|eUFiz&1qXC8!+z>FC;8hr1=L}#zf%@OkzI$B|^Z51PHhe;K%N+z z0LcHo0rV|KVL2lvay6x&?0Wkr*BVwBjQZ#`qAUnn*-SR$kt3yes0v26_{f=zS(W4E zCSFtflw%^Kj@gcUTNm2mg8o8iWw+1r{x$9hyVVStfQvj}y}E!=m|mQTF13Slgis_m zja8kUn1rQ^Qz{yd*EGe6&N9 Date: Thu, 15 Mar 2012 11:37:20 +0100 Subject: [PATCH 02/10] CC-3434 : playlist changing image to be smaller. --- airtime_mvc/public/css/images/loader.gif | Bin 10973 -> 6298 bytes airtime_mvc/public/js/airtime/library/spl.js | 8 ++++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/airtime_mvc/public/css/images/loader.gif b/airtime_mvc/public/css/images/loader.gif index 799d7f1aa407665e6ecf046f0d64de68a098225b..fc4e076118ff39bef7973456631ee8219ed93a41 100644 GIT binary patch literal 6298 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 literal 10973 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 SR{(K*0O=rr`e~zp?f(w}zXGBF diff --git a/airtime_mvc/public/js/airtime/library/spl.js b/airtime_mvc/public/js/airtime/library/spl.js index 8d6ccfc92..38771d4ce 100644 --- a/airtime_mvc/public/js/airtime/library/spl.js +++ b/airtime_mvc/public/js/airtime/library/spl.js @@ -664,10 +664,10 @@ var AIRTIME = (function(AIRTIME){ "class": "pl-loading", "css": { "position": "absolute", - "top": offset.top + plHeight/2 - 120, - "left": offset.left + plWidth/2 - 120, - "height": 128, - "width": 128 + "top": offset.top + plHeight/2 - 32 - 8, + "left": offset.left + plWidth/2 - 32 -8, + "height": 64, + "width": 64 } }); From fa1f03ed5882f69f0c21020a67c7efe4d5d9126b Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Thu, 15 Mar 2012 12:08:29 +0100 Subject: [PATCH 03/10] CC-3174 : showbuilder improving look of playlist when files are not on disk. --- .../application/views/scripts/playlist/update.phtml | 13 ++++++++++--- airtime_mvc/public/css/playlist_builder.css | 6 +----- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/airtime_mvc/application/views/scripts/playlist/update.phtml b/airtime_mvc/application/views/scripts/playlist/update.phtml index 3557d207c..803a98116 100644 --- a/airtime_mvc/application/views/scripts/playlist/update.phtml +++ b/airtime_mvc/application/views/scripts/playlist/update.phtml @@ -4,18 +4,25 @@ if (count($items)) : ?>
  • " unqid=""> -
    +
    + +
    ">
    + +
    + +
    + +
    - - " ?> +
    Date: Thu, 15 Mar 2012 14:14:02 +0100 Subject: [PATCH 04/10] CC-3174 : showbuilder --- airtime_mvc/application/controllers/IndexController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/airtime_mvc/application/controllers/IndexController.php b/airtime_mvc/application/controllers/IndexController.php index 7580891db..c1129ae36 100644 --- a/airtime_mvc/application/controllers/IndexController.php +++ b/airtime_mvc/application/controllers/IndexController.php @@ -10,7 +10,7 @@ class IndexController extends Zend_Controller_Action public function indexAction() { - $this->_forward('index', 'login'); + $this->_forward('index', 'showbuilder'); } public function mainAction() From 7a8398bd32353e36fb9a53cb6ad1f8e90d870715 Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Thu, 15 Mar 2012 16:11:29 +0100 Subject: [PATCH 05/10] CC-3174 : showbuilder including context menu to delete items from timeline. --- .../controllers/LibraryController.php | 2 - .../controllers/ShowbuilderController.php | 23 ++++++++ .../public/js/airtime/library/library.js | 2 + .../public/js/airtime/showbuilder/builder.js | 57 ++++++++++++++++++- 4 files changed, 81 insertions(+), 3 deletions(-) diff --git a/airtime_mvc/application/controllers/LibraryController.php b/airtime_mvc/application/controllers/LibraryController.php index aa6b15bb6..80f90fc90 100644 --- a/airtime_mvc/application/controllers/LibraryController.php +++ b/airtime_mvc/application/controllers/LibraryController.php @@ -73,8 +73,6 @@ class LibraryController extends Zend_Controller_Action public function contextMenuAction() { - global $CC_CONFIG; - $id = $this->_getParam('id'); $type = $this->_getParam('type'); //playlist||timeline diff --git a/airtime_mvc/application/controllers/ShowbuilderController.php b/airtime_mvc/application/controllers/ShowbuilderController.php index 59df1f870..10648cd6b 100644 --- a/airtime_mvc/application/controllers/ShowbuilderController.php +++ b/airtime_mvc/application/controllers/ShowbuilderController.php @@ -12,6 +12,7 @@ class ShowbuilderController extends Zend_Controller_Action ->addActionContext('builder-dialog', 'json') ->addActionContext('check-builder-feed', 'json') ->addActionContext('builder-feed', 'json') + ->addActionContext('context-menu', 'json') ->initContext(); } @@ -94,6 +95,28 @@ class ShowbuilderController extends Zend_Controller_Action $this->_helper->actionStack('library', 'library'); $this->_helper->actionStack('builder', 'showbuilder'); } + + public function contextMenuAction() + { + $id = $this->_getParam('id'); + $now = time(); + + $request = $this->getRequest(); + $baseUrl = $request->getBaseUrl(); + $menu = array(); + + $userInfo = Zend_Auth::getInstance()->getStorage()->read(); + $user = new Application_Model_User($userInfo->id); + + $item = CcScheduleQuery::create()->findPK($id); + $instance = $item->getCcShowInstances(); + + if ($now < intval($item->getDbStarts("U")) && $user->canSchedule($instance->getDbShowId())) { + $menu["del"] = array("name"=> "Delete", "icon" => "delete", "url" => "/showbuilder/schedule-remove"); + } + + $this->view->items = $menu; + } public function builderAction() { diff --git a/airtime_mvc/public/js/airtime/library/library.js b/airtime_mvc/public/js/airtime/library/library.js index 9f95862bc..571154ef1 100644 --- a/airtime_mvc/public/js/airtime/library/library.js +++ b/airtime_mvc/public/js/airtime/library/library.js @@ -329,6 +329,8 @@ var AIRTIME = (function(AIRTIME) { addQtipToSCIcons(); + + //begin context menu initialization. $.contextMenu({ selector: '#library_display td:not(.library_checkbox)', trigger: "left", diff --git a/airtime_mvc/public/js/airtime/showbuilder/builder.js b/airtime_mvc/public/js/airtime/showbuilder/builder.js index ccec211f3..5fe6eaf95 100644 --- a/airtime_mvc/public/js/airtime/showbuilder/builder.js +++ b/airtime_mvc/public/js/airtime/showbuilder/builder.js @@ -128,7 +128,7 @@ var AIRTIME = (function(AIRTIME){ oTable = tableDiv.dataTable( { "aoColumns": [ - /* checkbox */ {"mDataProp": "allowed", "sTitle": "", "sWidth": "15px"}, + /* checkbox */ {"mDataProp": "allowed", "sTitle": "", "sWidth": "15px", "sClass": "sb_checkbox"}, /* starts */{"mDataProp": "starts", "sTitle": "Start"}, /* ends */{"mDataProp": "ends", "sTitle": "End"}, /* runtime */{"mDataProp": "runtime", "sTitle": "Duration", "sClass": "library_length"}, @@ -214,6 +214,14 @@ var AIRTIME = (function(AIRTIME){ node, cl=""; + //call the context menu so we can prevent the event from propagating. + $(nRow).find('td:not(.sb_checkbox)').click(function(e){ + + $(this).contextMenu({x: e.pageX, y: e.pageY}); + + return false; + }); + //save some info for reordering purposes. $(nRow).data({"aData": aData}); @@ -565,6 +573,53 @@ var AIRTIME = (function(AIRTIME){ return false; }); + //begin context menu initialization. + $.contextMenu({ + selector: '#show_builder_table td:not(.sb_checkbox)', + trigger: "left", + ignoreRightClick: true, + + build: function($el, e) { + var data, items, callback, $tr; + + $tr = $el.parent(); + data = $tr.data("aData"); + + function processMenuItems(oItems) { + + //define a delete callback. + if (oItems.del !== undefined) { + + callback = function() { + AIRTIME.showbuilder.fnRemove([{ + id: data.id, + timestamp: data.timestamp, + instance: data.instance + }]); + }; + + oItems.del.callback = callback; + } + + items = oItems; + } + + request = $.ajax({ + url: "/showbuilder/context-menu", + type: "GET", + data: {id : data.id, format: "json"}, + dataType: "json", + async: false, + success: function(json){ + processMenuItems(json.items); + } + }); + + return { + items: items + }; + } + }); }; mod.init = function(oTable) { From 6409003b3f4d6faaffb61312d26b7faeddb68459 Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Thu, 15 Mar 2012 16:29:52 +0100 Subject: [PATCH 06/10] CC-3174 : showbuilder putting qtip on missing file alert. --- airtime_mvc/public/js/airtime/library/spl.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/airtime_mvc/public/js/airtime/library/spl.js b/airtime_mvc/public/js/airtime/library/spl.js index 38771d4ce..982d0d79a 100644 --- a/airtime_mvc/public/js/airtime/library/spl.js +++ b/airtime_mvc/public/js/airtime/library/spl.js @@ -752,4 +752,24 @@ $(document).ready(function() { AIRTIME.library.libraryInit(); AIRTIME.playlist.init(); + + pl.find(".ui-icon-alert").qtip({ + content: { + text: "File does not exist on disk..." + }, + position:{ + adjust: { + resize: true, + method: "flip flip" + }, + at: "right center", + my: "left top", + viewport: $(window) + }, + style: { + classes: "ui-tooltip-dark" + }, + show: 'mouseover', + hide: 'mouseout' + }); }); From 4595da90876d55218dac9bf09a60a47a1149d71e Mon Sep 17 00:00:00 2001 From: james Date: Thu, 15 Mar 2012 14:29:31 -0400 Subject: [PATCH 07/10] CC-3452: Live Stream: DJs assigned to the show and Program Managers should be able to control switches and able to kick out connection - kickout buttons and switch buttons are now visible to everyone. - clicking buttons without correct permission will return proper error msg. --- .../controllers/DashboardController.php | 67 ++++++++++++++----- .../application/layouts/scripts/builder.phtml | 4 +- .../application/layouts/scripts/layout.phtml | 5 +- .../application/layouts/scripts/library.phtml | 4 +- .../layouts/scripts/playouthistory.phtml | 4 +- airtime_mvc/application/models/User.php | 4 ++ .../application/views/helpers/IsAdmin.php | 11 --- .../views/helpers/IsPermissionAllowed.php | 18 +++++ .../views/scripts/partialviews/header.phtml | 10 +-- .../public/js/airtime/dashboard/playlist.js | 33 ++++----- 10 files changed, 98 insertions(+), 62 deletions(-) delete mode 100644 airtime_mvc/application/views/helpers/IsAdmin.php create mode 100644 airtime_mvc/application/views/helpers/IsPermissionAllowed.php 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/layouts/scripts/builder.phtml b/airtime_mvc/application/layouts/scripts/builder.phtml index 5f13b0f67..1293cb873 100644 --- a/airtime_mvc/application/layouts/scripts/builder.phtml +++ b/airtime_mvc/application/layouts/scripts/builder.phtml @@ -13,11 +13,11 @@ versionNotify(); $sss = $this->SourceSwitchStatus(); $scs = $this->SourceConnectionStatus(); - $isAdmin = $this->isAdmin(); + $isPermissionAllowed = $this->IsPermissionAllowed(); ?> 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'], "isPermissionAllowed"=>$isPermissionAllowed)) ?> navigation()->menu()->setPartial($partial); ?> diff --git a/airtime_mvc/application/layouts/scripts/layout.phtml b/airtime_mvc/application/layouts/scripts/layout.phtml index d074b921d..f2cdf2b4b 100644 --- a/airtime_mvc/application/layouts/scripts/layout.phtml +++ b/airtime_mvc/application/layouts/scripts/layout.phtml @@ -14,12 +14,11 @@ versionNotify(); $sss = $this->SourceSwitchStatus(); $scs = $this->SourceConnectionStatus(); - $isAdmin = $this->isAdmin(); + $isPermissionAllowed = $this->IsPermissionAllowed(); ?> 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'], "isPermissionAllowed"=>$isPermissionAllowed)) ?> navigation()->menu()->setPartial($partial); ?> diff --git a/airtime_mvc/application/layouts/scripts/library.phtml b/airtime_mvc/application/layouts/scripts/library.phtml index e3a2748e1..fb411f40f 100644 --- a/airtime_mvc/application/layouts/scripts/library.phtml +++ b/airtime_mvc/application/layouts/scripts/library.phtml @@ -14,11 +14,11 @@ versionNotify(); $sss = $this->SourceSwitchStatus(); $scs = $this->SourceConnectionStatus(); - $isAdmin = $this->isAdmin(); + $isPermissionAllowed = $this->IsPermissionAllowed(); ?> 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'], "isPermissionAllowed"=>$isPermissionAllowed)) ?> navigation()->menu()->setPartial($partial); ?> diff --git a/airtime_mvc/application/layouts/scripts/playouthistory.phtml b/airtime_mvc/application/layouts/scripts/playouthistory.phtml index 0c9fee73f..47e01b11a 100644 --- a/airtime_mvc/application/layouts/scripts/playouthistory.phtml +++ b/airtime_mvc/application/layouts/scripts/playouthistory.phtml @@ -14,11 +14,11 @@ versionNotify(); $sss = $this->SourceSwitchStatus(); $scs = $this->SourceConnectionStatus(); - $isAdmin = $this->isAdmin(); + $isPermissionAllowed = $this->IsPermissionAllowed(); ?> 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'], "isPermissionAllowed"=>$isPermissionAllowed)) ?> navigation()->menu()->setPartial($partial); ?> 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/helpers/IsPermissionAllowed.php b/airtime_mvc/application/views/helpers/IsPermissionAllowed.php new file mode 100644 index 000000000..77d331339 --- /dev/null +++ b/airtime_mvc/application/views/helpers/IsPermissionAllowed.php @@ -0,0 +1,18 @@ +getStorage()->read(); + $user = new Application_Model_User($userInfo->id); + + $show = Application_Model_Show::GetCurrentShow(); + $show_id = isset($show['id'])?$show['id']:0; + if($user->canSchedule($show_id)){ + return true; + }else{ + return false; + } + } +} \ No newline at end of file diff --git a/airtime_mvc/application/views/scripts/partialviews/header.phtml b/airtime_mvc/application/views/scripts/partialviews/header.phtml index 148ad0ab1..dd21e3c11 100644 --- a/airtime_mvc/application/views/scripts/partialviews/header.phtml +++ b/airtime_mvc/application/views/scripts/partialviews/header.phtml @@ -27,25 +27,25 @@
  • - isAdmin){?> + Live DJ
    - ">live_dj_switch?> + live_dj_switch?>
  • - isAdmin){?> + Master DJ
    - ">master_dj_switch?> + master_dj_switch?>
  • diff --git a/airtime_mvc/public/js/airtime/dashboard/playlist.js b/airtime_mvc/public/js/airtime/dashboard/playlist.js index aa1461a4c..6646f94a4 100644 --- a/airtime_mvc/public/js/airtime/dashboard/playlist.js +++ b/airtime_mvc/public/js/airtime/dashboard/playlist.js @@ -343,34 +343,25 @@ function setSwitchListener(ele){ var sourcename = $(ele).attr('id') var status_span = $(ele).find("span") var status = status_span.html() - var _class = $(ele).parent().find("div.line-to-switch").attr("class") var source_connection_status = false - // user should be able to turn on/off scheduled_play switch anytime. - if(sourcename.indexOf("scheduled_play") > 0 && _class.indexOf("off") > 0){ - source_connection_status = false - }else{ - source_connection_status = true - } - - if(source_connection_status){ - $.get("/Dashboard/switch-source/format/json/sourcename/"+sourcename+"/status/"+status, function(data){ + $.get("/Dashboard/switch-source/format/json/sourcename/"+sourcename+"/status/"+status, function(data){ + if(data.error){ + alert(data.error); + }else{ status_span.html(data.status) - }); - }else{ - alert("The source is not connected to Airtime!") - } + } + }); } function kickSource(ele){ var sourcename = $(ele).attr('id') - var source_connection = $(ele).parent().find(".line-to-switch").attr("class") - if(source_connection.indexOf("off") > 0){ - alert("No source is connected to this input.") - return false - }else{ - $.get("/Dashboard/disconnect-source/format/json/sourcename/"+sourcename) - } + + $.get("/Dashboard/disconnect-source/format/json/sourcename/"+sourcename, function(data){ + if(data.error){ + alert(data.error); + } + }); } var stream_window = null; From 559acfd5a1067e9d7000209adaff79180b8f2651 Mon Sep 17 00:00:00 2001 From: james Date: Thu, 15 Mar 2012 14:33:59 -0400 Subject: [PATCH 08/10] CC-3452: Live Stream: DJs assigned to the show and Program Managers should be able to control switches and able to kick out connection - refactoring code --- .../application/layouts/scripts/builder.phtml | 3 +-- .../application/layouts/scripts/layout.phtml | 3 +-- .../layouts/scripts/playouthistory.phtml | 3 +-- .../views/helpers/IsPermissionAllowed.php | 18 ------------------ 4 files changed, 3 insertions(+), 24 deletions(-) delete mode 100644 airtime_mvc/application/views/helpers/IsPermissionAllowed.php diff --git a/airtime_mvc/application/layouts/scripts/builder.phtml b/airtime_mvc/application/layouts/scripts/builder.phtml index 1293cb873..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(); - $isPermissionAllowed = $this->IsPermissionAllowed(); ?> 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'], "isPermissionAllowed"=>$isPermissionAllowed)) ?> + "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 f2cdf2b4b..92d38eef9 100644 --- a/airtime_mvc/application/layouts/scripts/layout.phtml +++ b/airtime_mvc/application/layouts/scripts/layout.phtml @@ -14,11 +14,10 @@ versionNotify(); $sss = $this->SourceSwitchStatus(); $scs = $this->SourceConnectionStatus(); - $isPermissionAllowed = $this->IsPermissionAllowed(); ?> 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'], "isPermissionAllowed"=>$isPermissionAllowed)) ?> + "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 47e01b11a..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(); - $isPermissionAllowed = $this->IsPermissionAllowed(); ?> 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'], "isPermissionAllowed"=>$isPermissionAllowed)) ?> + "scheduled_play_switch"=>$sss['scheduled_play'])) ?> navigation()->menu()->setPartial($partial); ?> diff --git a/airtime_mvc/application/views/helpers/IsPermissionAllowed.php b/airtime_mvc/application/views/helpers/IsPermissionAllowed.php deleted file mode 100644 index 77d331339..000000000 --- a/airtime_mvc/application/views/helpers/IsPermissionAllowed.php +++ /dev/null @@ -1,18 +0,0 @@ -getStorage()->read(); - $user = new Application_Model_User($userInfo->id); - - $show = Application_Model_Show::GetCurrentShow(); - $show_id = isset($show['id'])?$show['id']:0; - if($user->canSchedule($show_id)){ - return true; - }else{ - return false; - } - } -} \ No newline at end of file From ae0d3c560cbdefd6dc86f9d5a90c640c93ece150 Mon Sep 17 00:00:00 2001 From: Daniel Date: Thu, 15 Mar 2012 17:56:51 -0400 Subject: [PATCH 09/10] CC-3394: Add play button to timeline table. - added image information to row in ShowBuilder.php to enable audio preview of shows. - moved around code so the audio preview functionaly is standalone - fixed the firefox bug for issue CC-3429 --- airtime_mvc/application/Bootstrap.php | 2 +- airtime_mvc/application/configs/ACL.php | 6 +- .../controllers/AudiopreviewController.php | 192 +++ .../controllers/PlaylistController.php | 69 - .../application/models/ShowBuilder.php | 9 +- .../audio-preview.phtml} | 12 +- .../public/js/airtime/common/common.js | 65 +- .../public/js/airtime/library/library.js | 63 +- .../public/js/airtime/showbuilder/builder.js | 1158 +++++++++-------- .../public/js/jplayer/preview_jplayer.js | 153 ++- .../jplayer.audio-preview.blue.monday.css | 7 +- 11 files changed, 977 insertions(+), 759 deletions(-) create mode 100644 airtime_mvc/application/controllers/AudiopreviewController.php rename airtime_mvc/application/views/scripts/{playlist/playlist-preview.phtml => audiopreview/audio-preview.phtml} (89%) 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/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/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/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 @@