From 286c2400129b5eba66b814703815c9d075e86e81 Mon Sep 17 00:00:00 2001 From: James Date: Fri, 30 Mar 2012 15:11:24 -0400 Subject: [PATCH] CC-3444: Ability to edit currently playing show (end time and permissions) - done --- .../controllers/ScheduleController.php | 64 +++++++++++++------ .../forms/AddShowAbsoluteRebroadcastDates.php | 12 ++++ airtime_mvc/application/forms/AddShowRR.php | 11 ++++ .../forms/AddShowRebroadcastDates.php | 12 ++++ .../application/forms/AddShowRepeats.php | 12 ++++ .../application/forms/AddShowStyle.php | 11 ++++ airtime_mvc/application/forms/AddShowWhat.php | 12 ++++ airtime_mvc/application/forms/AddShowWhen.php | 12 ++++ airtime_mvc/application/forms/AddShowWho.php | 12 +++- .../views/scripts/schedule/index.phtml | 8 +-- 10 files changed, 140 insertions(+), 26 deletions(-) diff --git a/airtime_mvc/application/controllers/ScheduleController.php b/airtime_mvc/application/controllers/ScheduleController.php index 9ee7cd9ee..b970b55f3 100644 --- a/airtime_mvc/application/controllers/ScheduleController.php +++ b/airtime_mvc/application/controllers/ScheduleController.php @@ -87,8 +87,6 @@ class ScheduleController extends Zend_Controller_Action $userInfo = Zend_Auth::getInstance()->getStorage()->read(); $user = new Application_Model_User($userInfo->id); - $this->view->isAdmin = $user->isAdmin(); - $this->view->isProgramManager = $user->isUserType('P'); $this->view->headScript()->appendScript("var weekStart = ".Application_Model_Preference::GetWeekStartDay().";"); } @@ -215,13 +213,16 @@ class ScheduleController extends Zend_Controller_Action $this->view->show_error = true; return false; } + + $isAdminOrPM = $user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER)); + $isDJ = $user->isHost($instance->getShowId()); $showStartLocalDT = Application_Model_DateHelper::ConvertToLocalDateTime($instance->getShowInstanceStart()); $showEndLocalDT = Application_Model_DateHelper::ConvertToLocalDateTime($instance->getShowInstanceEnd()); if ($epochNow < $showStartLocalDT->getTimestamp()) { - if ($user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER, UTYPE_HOST), $instance->getShowId()) + if ( ($isAdminOrPM || $isDJ) && !$instance->isRecorded() && !$instance->isRebroadcast()) { @@ -249,24 +250,27 @@ class ScheduleController extends Zend_Controller_Action if ($showStartLocalDT->getTimestamp() <= $epochNow && $epochNow < $showEndLocalDT->getTimestamp() && - $user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER))) { + ($isAdminOrPM || $isDJ)) { if ($instance->isRecorded()) { - - $menu["cancel_recorded"] = array("name"=> "Cancel Current Show", "icon" => "delete"); + if($isAdminOrPM){ + $menu["cancel_recorded"] = array("name"=> "Cancel Current Show", "icon" => "delete"); + } } else { - - $menu["cancel"] = array("name"=> "Cancel Current Show", "icon" => "delete"); + $menu["edit"] = array("name"=> "Edit Show", "icon" => "edit", "url" => "/Schedule/edit-show"); + if($isAdminOrPM){ + $menu["cancel"] = array("name"=> "Cancel Current Show", "icon" => "delete"); + } } } if ($epochNow < $showStartLocalDT->getTimestamp()) { - if ($user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER))) { + if ($isAdminOrPM || $isDJ) { $menu["edit"] = array("name"=> "Edit Show", "icon" => "edit", "url" => "/Schedule/edit-show"); - if ($instance->getShow()->isRepeating()) { + if ($instance->getShow()->isRepeating() && $isAdminOrPM) { //create delete sub menu. $menu["del"] = array("name"=> "Delete", "icon" => "delete", "items" => array()); @@ -275,7 +279,7 @@ class ScheduleController extends Zend_Controller_Action $menu["del"]["items"]["following"] = array("name"=> "Delete This Instance and All Following", "icon" => "delete", "url" => "/schedule/cancel-show"); } - else { + else if($isAdminOrPM){ //window["scheduleRefetchEvents"]' $menu["del"] = array("name"=> "Delete", "icon" => "delete", "url" => "/schedule/delete-show"); } @@ -413,19 +417,24 @@ class ScheduleController extends Zend_Controller_Action { $userInfo = Zend_Auth::getInstance()->getStorage()->read(); $user = new Application_Model_User($userInfo->id); - if(!$user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER))) { - return; - } $isSaas = Application_Model_Preference::GetPlanLevel() == 'disabled'?false:true; $showInstanceId = $this->_getParam('id'); + try{ $showInstance = new Application_Model_ShowInstance($showInstanceId); }catch(Exception $e){ $this->view->show_error = true; return false; } + + $isAdminOrPM = $user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER)); + $isDJ = $user->isHost($showInstance->getShowId()); + + if(!($isAdminOrPM || $isDJ)) { + return; + } $formWhat = new Application_Form_AddShowWhat(); $formWho = new Application_Form_AddShowWho(); @@ -541,6 +550,19 @@ class ScheduleController extends Zend_Controller_Action $i++; } $formAbsoluteRebroadcast->populate($rebroadcastAbsoluteFormValues); + if(!$isAdminOrPM){ + $formRecord->disable(); + $formAbsoluteRebroadcast->disable(); + $formRebroadcast->disable(); + } + } + + if(!$isAdminOrPM){ + $formWhat->disable(); + $formWho->disable(); + $formWhen->disable(); + $formRepeats->disable(); + $formStyle->disable(); } $this->view->newForm = $this->view->render('schedule/add-show-form.phtml'); @@ -563,6 +585,12 @@ class ScheduleController extends Zend_Controller_Action } $show = new Application_Model_Show($data['add_show_id']); + + $userInfo = Zend_Auth::getInstance()->getStorage()->read(); + $user = new Application_Model_User($userInfo->id); + + $isAdminOrPM = $user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER)); + $isDJ = $user->isHost($show->getId()); $startDateModified = true; if ($data['add_show_id'] != -1 && !array_key_exists('add_show_start_date', $data)){ @@ -695,9 +723,7 @@ class ScheduleController extends Zend_Controller_Action if ($what && $when && $repeats && $who && $style && $live) { if(!$isSaas){ if($record && $rebroadAb && $rebroad){ - $userInfo = Zend_Auth::getInstance()->getStorage()->read(); - $user = new Application_Model_User($userInfo->id); - if ($user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER))) { + if ($isAdminOrPM || $isDJ) { Application_Model_Show::create($data); } @@ -730,9 +756,7 @@ class ScheduleController extends Zend_Controller_Action } }else{ - $userInfo = Zend_Auth::getInstance()->getStorage()->read(); - $user = new Application_Model_User($userInfo->id); - if ($user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER))) { + if ($isAdminOrPM || $isDJ) { Application_Model_Show::create($data); } diff --git a/airtime_mvc/application/forms/AddShowAbsoluteRebroadcastDates.php b/airtime_mvc/application/forms/AddShowAbsoluteRebroadcastDates.php index 68d4d80ad..8e1601819 100644 --- a/airtime_mvc/application/forms/AddShowAbsoluteRebroadcastDates.php +++ b/airtime_mvc/application/forms/AddShowAbsoluteRebroadcastDates.php @@ -29,6 +29,18 @@ class Application_Form_AddShowAbsoluteRebroadcastDates extends Zend_Form_SubForm $this->addElement($text); } } + + public function disable(){ + $elements = $this->getElements(); + foreach ($elements as $element) + { + if ($element->getType() != 'Zend_Form_Element_Hidden') + { + $element->setAttrib('readonly',true); + $element->setAttribs(array('style' => 'color: #B1B1B1; ')); + } + } + } public function checkReliantFields($formData) { diff --git a/airtime_mvc/application/forms/AddShowRR.php b/airtime_mvc/application/forms/AddShowRR.php index 7eef2b438..4c6e5b4b2 100644 --- a/airtime_mvc/application/forms/AddShowRR.php +++ b/airtime_mvc/application/forms/AddShowRR.php @@ -18,6 +18,17 @@ class Application_Form_AddShowRR extends Zend_Form_SubForm )); } + public function disable(){ + $elements = $this->getElements(); + foreach ($elements as $element) + { + if ($element->getType() != 'Zend_Form_Element_Hidden') + { + $element->setAttrib('readonly',true); + $element->setAttribs(array('style' => 'color: #B1B1B1; ')); + } + } + } } diff --git a/airtime_mvc/application/forms/AddShowRebroadcastDates.php b/airtime_mvc/application/forms/AddShowRebroadcastDates.php index 6104d7836..b4b352624 100644 --- a/airtime_mvc/application/forms/AddShowRebroadcastDates.php +++ b/airtime_mvc/application/forms/AddShowRebroadcastDates.php @@ -34,6 +34,18 @@ class Application_Form_AddShowRebroadcastDates extends Zend_Form_SubForm $this->addElement($text); } } + + public function disable(){ + $elements = $this->getElements(); + foreach ($elements as $element) + { + if ($element->getType() != 'Zend_Form_Element_Hidden') + { + $element->setAttrib('readonly',true); + $element->setAttribs(array('style' => 'color: #B1B1B1; ')); + } + } + } public function checkReliantFields($formData) { diff --git a/airtime_mvc/application/forms/AddShowRepeats.php b/airtime_mvc/application/forms/AddShowRepeats.php index ca20c5bae..d92662e0c 100644 --- a/airtime_mvc/application/forms/AddShowRepeats.php +++ b/airtime_mvc/application/forms/AddShowRepeats.php @@ -55,6 +55,18 @@ class Application_Form_AddShowRepeats extends Zend_Form_SubForm 'checked' => true, )); } + + public function disable(){ + $elements = $this->getElements(); + foreach ($elements as $element) + { + if ($element->getType() != 'Zend_Form_Element_Hidden') + { + $element->setAttrib('readonly',true); + $element->setAttribs(array('style' => 'color: #B1B1B1; ')); + } + } + } public function checkReliantFields($formData) { diff --git a/airtime_mvc/application/forms/AddShowStyle.php b/airtime_mvc/application/forms/AddShowStyle.php index 7e0d5ae6c..1e9b968ce 100644 --- a/airtime_mvc/application/forms/AddShowStyle.php +++ b/airtime_mvc/application/forms/AddShowStyle.php @@ -34,6 +34,17 @@ class Application_Form_AddShowStyle extends Zend_Form_SubForm )))); } + public function disable(){ + $elements = $this->getElements(); + foreach ($elements as $element) + { + if ($element->getType() != 'Zend_Form_Element_Hidden') + { + $element->setAttrib('readonly',true); + $element->setAttribs(array('style' => 'color: #B1B1B1; ')); + } + } + } } diff --git a/airtime_mvc/application/forms/AddShowWhat.php b/airtime_mvc/application/forms/AddShowWhat.php index d821b97a5..54707c461 100644 --- a/airtime_mvc/application/forms/AddShowWhat.php +++ b/airtime_mvc/application/forms/AddShowWhat.php @@ -59,5 +59,17 @@ class Application_Form_AddShowWhat extends Zend_Form_SubForm )))); } + + public function disable(){ + $elements = $this->getElements(); + foreach ($elements as $element) + { + if ($element->getType() != 'Zend_Form_Element_Hidden') + { + $element->setAttrib('readonly',true); + $element->setAttribs(array('style' => 'color: #B1B1B1; ')); + } + } + } } diff --git a/airtime_mvc/application/forms/AddShowWhen.php b/airtime_mvc/application/forms/AddShowWhen.php index df8d21e6e..4ed91ad3e 100644 --- a/airtime_mvc/application/forms/AddShowWhen.php +++ b/airtime_mvc/application/forms/AddShowWhen.php @@ -112,5 +112,17 @@ class Application_Form_AddShowWhen extends Zend_Form_SubForm return $valid; } + + public function disable(){ + $elements = $this->getElements(); + foreach ($elements as $element) + { + if ($element->getType() != 'Zend_Form_Element_Hidden') + { + $element->setAttrib('readonly',true); + $element->setAttribs(array('style' => 'color: #B1B1B1; ')); + } + } + } } diff --git a/airtime_mvc/application/forms/AddShowWho.php b/airtime_mvc/application/forms/AddShowWho.php index 22dd109eb..7f0508c93 100644 --- a/airtime_mvc/application/forms/AddShowWho.php +++ b/airtime_mvc/application/forms/AddShowWho.php @@ -27,6 +27,16 @@ class Application_Form_AddShowWho extends Zend_Form_SubForm $this->addElement($hosts); } - + public function disable(){ + $elements = $this->getElements(); + foreach ($elements as $element) + { + if ($element->getType() != 'Zend_Form_Element_Hidden') + { + $element->setAttrib('readonly',true); + $element->setAttribs(array('style' => 'color: #B1B1B1; ')); + } + } + } } diff --git a/airtime_mvc/application/views/scripts/schedule/index.phtml b/airtime_mvc/application/views/scripts/schedule/index.phtml index 1987f103e..9afe7b3c0 100644 --- a/airtime_mvc/application/views/scripts/schedule/index.phtml +++ b/airtime_mvc/application/views/scripts/schedule/index.phtml @@ -1,7 +1,5 @@ -isAdmin || $this->isProgramManager) : ?> - - +