コード例 #1
0
ファイル: GeneralPreferences.php プロジェクト: nidzix/Airtime
 public function init()
 {
     $isSaas = Application_Model_Preference::GetPlanLevel() == 'disabled' ? false : true;
     $this->isSaas = $isSaas;
     $this->setDecorators(array(array('ViewScript', array('viewScript' => 'form/preferences_general.phtml', "isSaas" => $isSaas))));
     $defaultFade = Application_Model_Preference::GetDefaultFade();
     if ($defaultFade == "") {
         $defaultFade = '0.500000';
     }
     //Station name
     $this->addElement('text', 'stationName', array('class' => 'input_text', 'label' => 'Station Name', 'required' => false, 'filters' => array('StringTrim'), 'value' => Application_Model_Preference::GetStationName(), 'decorators' => array('ViewHelper')));
     //Default station fade
     $this->addElement('text', 'stationDefaultFade', array('class' => 'input_text', 'label' => 'Default Fade (s):', 'required' => false, 'filters' => array('StringTrim'), 'validators' => array(array('regex', false, array('/^[0-9]{1,2}(\\.\\d{1,6})?$/', 'messages' => 'enter a time in seconds 0{.000000}'))), 'value' => $defaultFade, 'decorators' => array('ViewHelper')));
     $third_party_api = new Zend_Form_Element_Radio('thirdPartyApi');
     $third_party_api->setLabel('Allow Remote Websites To Access "Schedule" Info?<br> (Enable this to make front-end widgets work.)');
     $third_party_api->setMultiOptions(array("Disabled", "Enabled"));
     $third_party_api->setValue(Application_Model_Preference::GetAllow3rdPartyApi());
     $third_party_api->setDecorators(array('ViewHelper'));
     $this->addElement($third_party_api);
     /* Form Element for setting the Timezone */
     $timezone = new Zend_Form_Element_Select("timezone");
     $timezone->setLabel("Timezone");
     $timezone->setMultiOptions($this->getTimezones());
     $timezone->setValue(Application_Model_Preference::GetTimezone());
     $timezone->setDecorators(array('ViewHelper'));
     $this->addElement($timezone);
     /* Form Element for setting which day is the start of the week */
     $week_start_day = new Zend_Form_Element_Select("weekStartDay");
     $week_start_day->setLabel("Week Starts On");
     $week_start_day->setMultiOptions($this->getWeekStartDays());
     $week_start_day->setValue(Application_Model_Preference::GetWeekStartDay());
     $week_start_day->setDecorators(array('ViewHelper'));
     $this->addElement($week_start_day);
 }
コード例 #2
0
ファイル: StreamSetting.php プロジェクト: nidzix/Airtime
 public function startFrom()
 {
     $setting = $this->setting;
     if (Application_Model_Preference::GetPlanLevel() == 'disabled') {
         $output_sound_device = new Zend_Form_Element_Checkbox('output_sound_device');
         $output_sound_device->setLabel('Hardware Audio Output')->setRequired(false)->setValue($setting['output_sound_device'] == "true" ? 1 : 0)->setDecorators(array('ViewHelper'));
         if (Application_Model_Preference::GetEnableStreamConf() == "false") {
             $output_sound_device->setAttrib("readonly", true);
         }
         $this->addElement($output_sound_device);
         $output_types = array("ALSA" => "ALSA", "AO" => "AO", "OSS" => "OSS", "Portaudio" => "Portaudio", "Pulseaudio" => "Pulseaudio");
         $output_type = new Zend_Form_Element_Select('output_sound_device_type');
         $output_type->setLabel("Output Type")->setMultiOptions($output_types)->setValue($setting['output_sound_device_type'])->setDecorators(array('ViewHelper'));
         if ($setting['output_sound_device'] != "true") {
             $output_type->setAttrib("disabled", "disabled");
         }
         $this->addElement($output_type);
     }
     $icecast_vorbis_metadata = new Zend_Form_Element_Checkbox('icecast_vorbis_metadata');
     $icecast_vorbis_metadata->setLabel('Icecast Vorbis Metadata')->setRequired(false)->setValue($setting['icecast_vorbis_metadata'] == "true" ? 1 : 0)->setDecorators(array('ViewHelper'));
     if (Application_Model_Preference::GetEnableStreamConf() == "false") {
         $icecast_vorbis_metadata->setAttrib("readonly", true);
     }
     $this->addElement($icecast_vorbis_metadata);
     $stream_format = new Zend_Form_Element_Radio('streamFormat');
     $stream_format->setLabel('Stream Label:');
     $stream_format->setMultiOptions(array("Artist - Title", "Show - Artist - Title", "Station name - Show name"));
     $stream_format->setValue(Application_Model_Preference::GetStreamLabelFormat());
     $stream_format->setDecorators(array('ViewHelper'));
     $this->addElement($stream_format);
 }
コード例 #3
0
ファイル: IsSaas.php プロジェクト: nidzix/Airtime
 public function isSaas()
 {
     $plan = Application_Model_Preference::GetPlanLevel();
     if ($plan == 'disabled') {
         return false;
     } else {
         return true;
     }
 }
コード例 #4
0
ファイル: IsTrial.php プロジェクト: RadioCampusFrance/airtime
 public function isTrial()
 {
     $plan = Application_Model_Preference::GetPlanLevel();
     if ($plan == 'trial') {
         return true;
     } else {
         return false;
     }
 }
コード例 #5
0
 public function indexAction()
 {
     $CC_CONFIG = Config::getConfig();
     $request = $this->getRequest();
     $isSaas = Application_Model_Preference::GetPlanLevel() == 'disabled' ? false : true;
     $baseUrl = Application_Common_OsPath::getBaseDir();
     $this->view->headScript()->appendFile($baseUrl . 'js/airtime/preferences/preferences.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
     $this->view->statusMsg = "";
     $form = new Application_Form_Preferences();
     $values = array();
     if ($request->isPost()) {
         $params = $request->getPost();
         $postData = explode('&', $params['data']);
         foreach ($postData as $k => $v) {
             $v = explode('=', $v);
             $values[$v[0]] = urldecode($v[1]);
         }
         if ($form->isValid($values)) {
             Application_Model_Preference::SetHeadTitle($values["stationName"], $this->view);
             Application_Model_Preference::SetDefaultCrossfadeDuration($values["stationDefaultCrossfadeDuration"]);
             Application_Model_Preference::SetDefaultFadeIn($values["stationDefaultFadeIn"]);
             Application_Model_Preference::SetDefaultFadeOut($values["stationDefaultFadeOut"]);
             Application_Model_Preference::SetAllow3rdPartyApi($values["thirdPartyApi"]);
             Application_Model_Preference::SetDefaultLocale($values["locale"]);
             Application_Model_Preference::SetDefaultTimezone($values["timezone"]);
             Application_Model_Preference::SetWeekStartDay($values["weekStartDay"]);
             Application_Model_Preference::SetEnableSystemEmail($values["enableSystemEmail"]);
             Application_Model_Preference::SetSystemEmail($values["systemEmail"]);
             Application_Model_Preference::SetMailServerConfigured($values["configureMailServer"]);
             Application_Model_Preference::SetMailServer($values["mailServer"]);
             Application_Model_Preference::SetMailServerEmailAddress($values["email"]);
             Application_Model_Preference::SetMailServerPassword($values["ms_password"]);
             Application_Model_Preference::SetMailServerPort($values["port"]);
             Application_Model_Preference::SetMailServerRequiresAuth($values["msRequiresAuth"]);
             Application_Model_Preference::SetAutoUploadRecordedShowToSoundcloud($values["UseSoundCloud"]);
             Application_Model_Preference::SetUploadToSoundcloudOption($values["UploadToSoundcloudOption"]);
             Application_Model_Preference::SetSoundCloudDownloadbleOption($values["SoundCloudDownloadbleOption"]);
             Application_Model_Preference::SetSoundCloudUser($values["SoundCloudUser"]);
             Application_Model_Preference::SetSoundCloudPassword($values["SoundCloudPassword"]);
             Application_Model_Preference::SetSoundCloudTags($values["SoundCloudTags"]);
             Application_Model_Preference::SetSoundCloudGenre($values["SoundCloudGenre"]);
             Application_Model_Preference::SetSoundCloudTrackType($values["SoundCloudTrackType"]);
             Application_Model_Preference::SetSoundCloudLicense($values["SoundCloudLicense"]);
             $this->view->statusMsg = "<div class='success'>" . _("Preferences updated.") . "</div>";
             $this->view->form = $form;
             $this->_helper->json->sendJson(array("valid" => "true", "html" => $this->view->render('preference/index.phtml')));
         } else {
             $this->view->form = $form;
             $this->_helper->json->sendJson(array("valid" => "false", "html" => $this->view->render('preference/index.phtml')));
         }
     }
     $this->view->form = $form;
 }
コード例 #6
0
ファイル: SupportSettings.php プロジェクト: nidzix/Airtime
 public function init()
 {
     $country_list = Application_Model_Preference::GetCountryList();
     $isSass = Application_Model_Preference::GetPlanLevel() == 'disabled' ? false : true;
     $this->isSass = $isSass;
     $this->setDecorators(array(array('ViewScript', array('viewScript' => 'form/support-setting.phtml', "isSaas" => $isSass)), array('File', array('viewScript' => 'form/support-setting.phtml', 'placement' => false))));
     //Station name
     $this->addElement('text', 'stationName', array('class' => 'input_text', 'label' => 'Station Name', 'required' => true, 'filters' => array('StringTrim'), 'validator' => array('NotEmpty'), 'value' => Application_Model_Preference::GetStationName(), 'decorators' => array('ViewHelper')));
     // Phone number
     $this->addElement('text', 'Phone', array('class' => 'input_text', 'label' => 'Phone:', 'required' => false, 'filters' => array('StringTrim'), 'value' => Application_Model_Preference::GetPhone(), 'decorators' => array('ViewHelper')));
     //Email
     $this->addElement('text', 'Email', array('class' => 'input_text', 'label' => 'Email:', 'required' => false, 'filters' => array('StringTrim'), 'value' => Application_Model_Preference::GetEmail(), 'decorators' => array('ViewHelper')));
     // Station Web Site
     $this->addElement('text', 'StationWebSite', array('label' => 'Station Web Site:', 'required' => false, 'class' => 'input_text', 'value' => Application_Model_Preference::GetStationWebSite(), 'decorators' => array('ViewHelper')));
     // county list dropdown
     $this->addElement('select', 'Country', array('label' => 'Country:', 'required' => false, 'value' => Application_Model_Preference::GetStationCountry(), 'multiOptions' => $country_list, 'decorators' => array('ViewHelper')));
     // Station city
     $this->addElement('text', 'City', array('label' => 'City:', 'required' => false, 'class' => 'input_text', 'value' => Application_Model_Preference::GetStationCity(), 'decorators' => array('ViewHelper')));
     // Station Description
     $description = new Zend_Form_Element_Textarea('Description');
     $description->class = 'input_text_area';
     $description->setLabel('Station Description:')->setRequired(false)->setValue(Application_Model_Preference::GetStationDescription())->setDecorators(array('ViewHelper'))->setAttrib('ROWS', '2')->setAttrib('COLS', '58');
     $this->addElement($description);
     // Station Logo
     $upload = new Zend_Form_Element_File('Logo');
     $upload->setLabel('Station Logo:')->setRequired(false)->setDecorators(array('File'))->addValidator('Count', false, 1)->addValidator('Extension', false, 'jpg,jpeg,png,gif')->addFilter('ImageSize');
     $upload->setAttrib('accept', 'image/*');
     $this->addElement($upload);
     if (!$isSass) {
         //enable support feedback
         $this->addElement('checkbox', 'SupportFeedback', array('label' => 'Send support feedback', 'required' => false, 'value' => Application_Model_Preference::GetSupportFeedback(), 'decorators' => array('ViewHelper')));
         // checkbox for publicise
         $checkboxPublicise = new Zend_Form_Element_Checkbox("Publicise");
         $checkboxPublicise->setLabel('Promote my station on Sourcefabric.org')->setRequired(false)->setDecorators(array('ViewHelper'))->setValue(Application_Model_Preference::GetPublicise());
         if (Application_Model_Preference::GetSupportFeedback() == '0') {
             $checkboxPublicise->setAttrib("disabled", "disabled");
         }
         $this->addElement($checkboxPublicise);
         // text area for sending detail
         $this->addElement('textarea', 'SendInfo', array('class' => 'sending_textarea', 'required' => false, 'filters' => array('StringTrim'), 'readonly' => true, 'cols' => 61, 'rows' => 5, 'value' => Application_Model_Preference::GetSystemInfo(false, true), 'decorators' => array('ViewHelper')));
         // checkbox for privacy policy
         $checkboxPrivacy = new Zend_Form_Element_Checkbox("Privacy");
         $checkboxPrivacy->setLabel("By checking this box, I agree to Sourcefabric's <a id=\"link_to_privacy\" href=\"http://www.sourcefabric.org/en/about/policy/\" onclick=\"window.open(this.href); return false;\">privacy policy</a>.")->setDecorators(array('ViewHelper'));
         $this->addElement($checkboxPrivacy);
     }
     // submit button
     $submit = new Zend_Form_Element_Submit("submit");
     $submit->class = 'ui-button ui-state-default right-floated';
     $submit->setIgnore(true)->setLabel("Save")->setDecorators(array('ViewHelper'));
     $this->addElement($submit);
 }
コード例 #7
0
ファイル: Preferences.php プロジェクト: nidzix/Airtime
 public function init()
 {
     $this->setAction('/Preference');
     $this->setMethod('post');
     $isSaas = Application_Model_Preference::GetPlanLevel() == 'disabled' ? false : true;
     $this->isSaas = $isSaas;
     $this->setDecorators(array(array('ViewScript', array('viewScript' => 'form/preferences.phtml', "isSaas" => $this->isSaas))));
     $general_pref = new Application_Form_GeneralPreferences();
     $this->addSubForm($general_pref, 'preferences_general');
     if (!$isSaas) {
         $email_pref = new Application_Form_EmailServerPreferences();
         $this->addSubForm($email_pref, 'preferences_email_server');
     }
     $soundcloud_pref = new Application_Form_SoundcloudPreferences();
     $this->addSubForm($soundcloud_pref, 'preferences_soundcloud');
     $this->addElement('submit', 'submit', array('class' => 'ui-button ui-state-default right-floated', 'ignore' => true, 'label' => 'Save', 'decorators' => array('ViewHelper')));
 }
コード例 #8
0
 public function init()
 {
     $isSaas = Application_Model_Preference::GetPlanLevel() == 'disabled' ? false : true;
     $this->isSaas = $isSaas;
     $this->setDecorators(array(array('ViewScript', array('viewScript' => 'form/preferences_email_server.phtml', "isSaas" => $isSaas))));
     // Enable system emails
     $this->addElement('checkbox', 'enableSystemEmail', array('label' => 'Enable System Emails (Password Reset)', 'required' => false, 'value' => Application_Model_Preference::GetEnableSystemEmail(), 'decorators' => array('ViewHelper')));
     $this->addElement('text', 'systemEmail', array('class' => 'input_text', 'label' => 'Reset Password \'From\' Email', 'value' => Application_Model_Preference::GetSystemEmail(), 'readonly' => true, 'decorators' => array('viewHelper')));
     $this->addElement('checkbox', 'configureMailServer', array('label' => 'Configure Mail Server', 'required' => false, 'value' => Application_Model_Preference::GetMailServerConfigured(), 'decorators' => array('viewHelper')));
     $this->addElement('checkbox', 'msRequiresAuth', array('label' => 'Requires Authentication', 'required' => false, 'value' => Application_Model_Preference::GetMailServerRequiresAuth(), 'decorators' => array('viewHelper')));
     $this->addElement('text', 'mailServer', array('class' => 'input_text', 'label' => 'Mail Server', 'value' => Application_Model_Preference::GetMailServer(), 'readonly' => true, 'decorators' => array('viewHelper'), 'allowEmpty' => false, 'validators' => array(new ConditionalNotEmpty(array('configureMailServer' => '1')))));
     $this->addElement('text', 'email', array('class' => 'input_text', 'label' => 'Email Address', 'value' => Application_Model_Preference::GetMailServerEmailAddress(), 'readonly' => true, 'decorators' => array('viewHelper'), 'allowEmpty' => false, 'validators' => array(new ConditionalNotEmpty(array('configureMailServer' => '1', 'msRequiresAuth' => '1')))));
     $this->addElement('password', 'ms_password', array('class' => 'input_text', 'label' => 'Password', 'value' => Application_Model_Preference::GetMailServerPassword(), 'readonly' => true, 'decorators' => array('viewHelper'), 'allowEmpty' => false, 'validators' => array(new ConditionalNotEmpty(array('configureMailServer' => '1', 'msRequiresAuth' => '1'))), 'renderPassword' => true));
     $port = new Zend_Form_Element_Text('port');
     $port->class = 'input_text';
     $port->setRequired(false)->setValue(Application_Model_Preference::GetMailServerPort())->setLabel('Port')->setAttrib('readonly', true)->setDecorators(array('viewHelper'));
     $this->addElement($port);
 }
コード例 #9
0
 public function startFrom()
 {
     $setting = $this->setting;
     if (Application_Model_Preference::GetPlanLevel() == 'disabled') {
         $output_sound_device = new Zend_Form_Element_Checkbox('output_sound_device');
         $output_sound_device->setLabel(_('Hardware Audio Output'))->setRequired(false)->setValue($setting['output_sound_device'] == "true" ? 1 : 0)->setDecorators(array('ViewHelper'));
         if (Application_Model_Preference::GetEnableStreamConf() == "false") {
             $output_sound_device->setAttrib("readonly", true);
         }
         $this->addElement($output_sound_device);
         $output_types = array("ALSA" => "ALSA", "AO" => "AO", "OSS" => "OSS", "Portaudio" => "Portaudio", "Pulseaudio" => "Pulseaudio");
         $output_type = new Zend_Form_Element_Select('output_sound_device_type');
         $output_type->setLabel(_("Output Type"))->setMultiOptions($output_types)->setValue($setting['output_sound_device_type'])->setDecorators(array('ViewHelper'));
         if ($setting['output_sound_device'] != "true") {
             $output_type->setAttrib("disabled", "disabled");
         }
         $this->addElement($output_type);
     }
     $icecast_vorbis_metadata = new Zend_Form_Element_Checkbox('icecast_vorbis_metadata');
     $icecast_vorbis_metadata->setLabel(_('Icecast Vorbis Metadata'))->setRequired(false)->setValue($setting['icecast_vorbis_metadata'] == "true" ? 1 : 0)->setDecorators(array('ViewHelper'));
     if (Application_Model_Preference::GetEnableStreamConf() == "false") {
         $icecast_vorbis_metadata->setAttrib("readonly", true);
     }
     $this->addElement($icecast_vorbis_metadata);
     $stream_format = new Zend_Form_Element_Radio('streamFormat');
     $stream_format->setLabel(_('Stream Label:'));
     $stream_format->setMultiOptions(array(_("Artist - Title"), _("Show - Artist - Title"), _("Station name - Show name")));
     $stream_format->setValue(Application_Model_Preference::GetStreamLabelFormat());
     $stream_format->setDecorators(array('ViewHelper'));
     $this->addElement($stream_format);
     $offAirMeta = new Zend_Form_Element_Text('offAirMeta');
     $offAirMeta->setLabel(_('Off Air Metadata'))->setValue(Application_Model_StreamSetting::getOffAirMeta())->setDecorators(array('ViewHelper'));
     $this->addElement($offAirMeta);
     $enable_replay_gain = new Zend_Form_Element_Checkbox("enableReplayGain");
     $enable_replay_gain->setLabel(_("Enable Replay Gain"))->setValue(Application_Model_Preference::GetEnableReplayGain())->setDecorators(array('ViewHelper'));
     $this->addElement($enable_replay_gain);
     $replay_gain = new Zend_Form_Element_Hidden("replayGainModifier");
     $replay_gain->setLabel(_("Replay Gain Modifier"))->setValue(Application_Model_Preference::getReplayGainModifier())->setAttribs(array('style' => "border: 0; color: #f6931f; font-weight: bold;"))->setDecorators(array('ViewHelper'));
     $this->addElement($replay_gain);
 }
コード例 #10
0
 public function versionNotify()
 {
     if (Application_Model_Preference::GetPlanLevel() != 'disabled') {
         return "";
     }
     // retrieve and validate current and latest versions,
     $current = Application_Model_Preference::GetAirtimeVersion();
     $latest = Application_Model_Preference::GetLatestVersion();
     $link = Application_Model_Preference::GetLatestLink();
     $currentExploded = explode('.', $current);
     $latestExploded = explode('.', $latest);
     if (count($currentExploded) != 3 || count($latestExploded) != 3) {
         return "";
     }
     // Calculate the version difference;
     // Example: if current = 1.9.5 and latest = 3.0.0, diff = 105
     // Note: algorithm assumes the number after 1st dot never goes above 9
     $versionDifference = intval($latestExploded[0]) * 100 + intval($latestExploded[1]) * 10 + intval($latestExploded[2]) - (intval($currentExploded[0]) * 100 + intval($currentExploded[1] * 10 + intval($currentExploded[2])));
     // Pick icon based on distance this version is to the latest version available
     if ($versionDifference <= 0) {
         // current version is up to date or newer
         $class = "uptodate";
     } else {
         if ($versionDifference < 20) {
             // 2 or less major versions back
             $class = "update";
         } else {
             if ($versionDifference < 30) {
                 // 3 major versions back
                 $class = "update2";
             } else {
                 // more than 3 major versions back
                 $class = "outdated";
             }
         }
     }
     $result = "<div id='version-diff' style='display:none'>" . $versionDifference . "</div>" . "<div id='version-current' style='display:none'>" . $current . "</div>" . "<div id='version-latest' style='display:none'>" . $latest . "</div>" . "<div id='version-link' style='display:none'>" . $link . "</div>" . "<div id='version-icon' class='" . $class . "'></div>";
     return $result;
 }
コード例 #11
0
ファイル: phone_home_stat.php プロジェクト: nidzix/Airtime
$infoArray = Application_Model_Preference::GetSystemInfo(true);
if (Application_Model_Preference::GetSupportFeedback() == '1') {
    $url = 'http://stat.sourcefabric.org/index.php?p=airtime';
    //$url = 'http://localhost:9999/index.php?p=airtime';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    $data = json_encode($infoArray);
    $dataArray = array("data" => $data);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $dataArray);
    $result = curl_exec($ch);
    curl_close($ch);
}
// Get latest version from stat server and store to db
if (Application_Model_Preference::GetPlanLevel() == 'disabled') {
    $url = 'http://stat.sourcefabric.org/airtime-stats/airtime_latest_version';
    //$url = 'http://localhost:9999/index.php?p=airtime';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_URL, $url);
    $result = curl_exec($ch);
    if (curl_errno($ch)) {
        echo "curl error: " . curl_error($ch) . "\n";
    } else {
        $resultArray = explode("\n", $result);
        if (isset($resultArray[0])) {
            Application_Model_Preference::SetLatestVersion($resultArray[0]);
        }
        if (isset($resultArray[1])) {
            Application_Model_Preference::SetLatestLink($resultArray[1]);
コード例 #12
0
 public function isValid($data)
 {
     $isSaas = Application_Model_Preference::GetPlanLevel() == 'disabled' ? false : true;
     $isValid = parent::isValid($data);
     if (!$isSaas) {
         $master_harbor_input_port = $data['master_harbor_input_port'];
         $dj_harbor_input_port = $data['dj_harbor_input_port'];
         if ($master_harbor_input_port == $dj_harbor_input_port && $master_harbor_input_port != "") {
             $element = $this->getElement("dj_harbor_input_port");
             $element->addError("You cannot use same port as Master DJ port.");
         }
         if ($master_harbor_input_port != "") {
             if (is_numeric($master_harbor_input_port)) {
                 if ($master_harbor_input_port != Application_Model_StreamSetting::getMasterLiveStreamPort()) {
                     $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
                     $res = socket_bind($sock, 0, $master_harbor_input_port);
                     if (!$res) {
                         $element = $this->getElement("master_harbor_input_port");
                         $element->addError("Port '{$master_harbor_input_port}' is not available.");
                         $isValid = false;
                     }
                     socket_close($sock);
                 }
             } else {
                 $isValid = false;
             }
         }
         if ($dj_harbor_input_port != "") {
             if (is_numeric($dj_harbor_input_port)) {
                 if ($dj_harbor_input_port != Application_Model_StreamSetting::getDjLiveStreamPort()) {
                     $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
                     $res = socket_bind($sock, 0, $dj_harbor_input_port);
                     if (!$res) {
                         $element = $this->getElement("dj_harbor_input_port");
                         $element->addError("Port '{$dj_harbor_input_port}' is not available.");
                         $isValid = false;
                     }
                     socket_close($sock);
                 }
             } else {
                 $isValid = false;
             }
         }
     }
     return $isValid;
 }
コード例 #13
0
ファイル: ScheduleController.php プロジェクト: nidzix/Airtime
 public function populateShowFormAction()
 {
     $userInfo = Zend_Auth::getInstance()->getStorage()->read();
     $user = new Application_Model_User($userInfo->id);
     $isSaas = Application_Model_Preference::GetPlanLevel() == 'disabled' ? false : true;
     $showInstanceId = $this->_getParam('id');
     $this->view->action = "edit-show";
     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->isHostOfShow($showInstance->getShowId());
     if (!($isAdminOrPM || $isDJ)) {
         return;
     }
     if ($isDJ) {
         $this->view->action = "dj-edit-show";
     }
     $formWhat = new Application_Form_AddShowWhat();
     $formWho = new Application_Form_AddShowWho();
     $formWhen = new Application_Form_AddShowWhen();
     $formRepeats = new Application_Form_AddShowRepeats();
     $formStyle = new Application_Form_AddShowStyle();
     $formLive = new Application_Form_AddShowLiveStream();
     $formWhat->removeDecorator('DtDdWrapper');
     $formWho->removeDecorator('DtDdWrapper');
     $formWhen->removeDecorator('DtDdWrapper');
     $formRepeats->removeDecorator('DtDdWrapper');
     $formStyle->removeDecorator('DtDdWrapper');
     $this->view->what = $formWhat;
     $this->view->when = $formWhen;
     $this->view->repeats = $formRepeats;
     $this->view->who = $formWho;
     $this->view->style = $formStyle;
     $this->view->live = $formLive;
     $this->view->addNewShow = false;
     $show = new Application_Model_Show($showInstance->getShowId());
     $formWhat->populate(array('add_show_id' => $show->getId(), 'add_show_instance_id' => $showInstanceId, 'add_show_name' => $show->getName(), 'add_show_url' => $show->getUrl(), 'add_show_genre' => $show->getGenre(), 'add_show_description' => $show->getDescription()));
     $startsDateTime = new DateTime($show->getStartDate() . " " . $show->getStartTime(), new DateTimeZone("UTC"));
     $endsDateTime = new DateTime($show->getEndDate() . " " . $show->getEndTime(), new DateTimeZone("UTC"));
     $startsDateTime->setTimezone(new DateTimeZone(date_default_timezone_get()));
     $endsDateTime->setTimezone(new DateTimeZone(date_default_timezone_get()));
     $formWhen->populate(array('add_show_start_date' => $startsDateTime->format("Y-m-d"), 'add_show_start_time' => $startsDateTime->format("H:i"), 'add_show_end_date_no_repeat' => $endsDateTime->format("Y-m-d"), 'add_show_end_time' => $endsDateTime->format("H:i"), 'add_show_duration' => $show->getDuration(true), 'add_show_repeats' => $show->isRepeating() ? 1 : 0));
     if ($show->isStartDateTimeInPast()) {
         // for a non-repeating show, we should never allow user to change the start time.
         // for the repeating show, we should allow because the form works as repeating template form
         if (!$showInstance->getShow()->isRepeating()) {
             $formWhen->disableStartDateAndTime();
         } else {
             $formWhen->getElement('add_show_start_date')->setOptions(array('disabled' => true));
         }
     }
     //need to get the days of the week in the php timezone (for the front end).
     $days = array();
     $showDays = CcShowDaysQuery::create()->filterByDbShowId($showInstance->getShowId())->find();
     foreach ($showDays as $showDay) {
         $showStartDay = new DateTime($showDay->getDbFirstShow(), new DateTimeZone($showDay->getDbTimezone()));
         $showStartDay->setTimezone(new DateTimeZone(date_default_timezone_get()));
         array_push($days, $showStartDay->format('w'));
     }
     $displayedEndDate = new DateTime($show->getRepeatingEndDate(), new DateTimeZone($showDays[0]->getDbTimezone()));
     $displayedEndDate->sub(new DateInterval("P1D"));
     //end dates are stored non-inclusively.
     $displayedEndDate->setTimezone(new DateTimeZone(date_default_timezone_get()));
     $formRepeats->populate(array('add_show_repeat_type' => $show->getRepeatType(), 'add_show_day_check' => $days, 'add_show_end_date' => $displayedEndDate->format("Y-m-d"), 'add_show_no_end' => $show->getRepeatingEndDate() == ''));
     $hosts = array();
     $showHosts = CcShowHostsQuery::create()->filterByDbShow($showInstance->getShowId())->find();
     foreach ($showHosts as $showHost) {
         array_push($hosts, $showHost->getDbHost());
     }
     $formWho->populate(array('add_show_hosts' => $hosts));
     $formStyle->populate(array('add_show_background_color' => $show->getBackgroundColor(), 'add_show_color' => $show->getColor()));
     $formLive->populate($show->getLiveStreamInfo());
     if (!$isSaas) {
         $formRecord = new Application_Form_AddShowRR();
         $formAbsoluteRebroadcast = new Application_Form_AddShowAbsoluteRebroadcastDates();
         $formRebroadcast = new Application_Form_AddShowRebroadcastDates();
         $formRecord->removeDecorator('DtDdWrapper');
         $formAbsoluteRebroadcast->removeDecorator('DtDdWrapper');
         $formRebroadcast->removeDecorator('DtDdWrapper');
         $this->view->rr = $formRecord;
         $this->view->absoluteRebroadcast = $formAbsoluteRebroadcast;
         $this->view->rebroadcast = $formRebroadcast;
         $formRecord->populate(array('add_show_record' => $show->isRecorded(), 'add_show_rebroadcast' => $show->isRebroadcast()));
         $formRecord->getElement('add_show_record')->setOptions(array('disabled' => true));
         $rebroadcastsRelative = $show->getRebroadcastsRelative();
         $rebroadcastFormValues = array();
         $i = 1;
         foreach ($rebroadcastsRelative as $rebroadcast) {
             $rebroadcastFormValues["add_show_rebroadcast_date_{$i}"] = $rebroadcast['day_offset'];
             $rebroadcastFormValues["add_show_rebroadcast_time_{$i}"] = Application_Common_DateHelper::removeSecondsFromTime($rebroadcast['start_time']);
             $i++;
         }
         $formRebroadcast->populate($rebroadcastFormValues);
         $rebroadcastsAbsolute = $show->getRebroadcastsAbsolute();
         $rebroadcastAbsoluteFormValues = array();
         $i = 1;
         foreach ($rebroadcastsAbsolute as $rebroadcast) {
             $rebroadcastAbsoluteFormValues["add_show_rebroadcast_date_absolute_{$i}"] = $rebroadcast['start_date'];
             $rebroadcastAbsoluteFormValues["add_show_rebroadcast_time_absolute_{$i}"] = $rebroadcast['start_time'];
             $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');
     $this->view->entries = 5;
 }
コード例 #14
0
 protected function _initHeadScript()
 {
     $CC_CONFIG = Config::getConfig();
     $view = $this->getResource('view');
     $baseUrl = Application_Common_OsPath::getBaseDir();
     $view->headScript()->appendFile($baseUrl . 'js/libs/jquery-1.8.3.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
     $view->headScript()->appendFile($baseUrl . 'js/libs/jquery-ui-1.8.24.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
     $view->headScript()->appendFile($baseUrl . 'js/bootstrap/bootstrap.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
     $view->headScript()->appendFile($baseUrl . 'js/libs/underscore-min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
     $view->headScript()->appendFile($baseUrl . 'js/libs/jquery.stickyPanel.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
     $view->headScript()->appendFile($baseUrl . 'js/qtip/jquery.qtip.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
     $view->headScript()->appendFile($baseUrl . 'js/jplayer/jquery.jplayer.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
     $view->headScript()->appendFile($baseUrl . 'js/sprintf/sprintf-0.7-beta1.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
     $view->headScript()->appendFile($baseUrl . 'js/cookie/jquery.cookie.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
     $view->headScript()->appendFile($baseUrl . 'js/i18n/jquery.i18n.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
     $view->headScript()->appendFile($baseUrl . 'locale/general-translation-table?' . $CC_CONFIG['airtime_version'], 'text/javascript');
     $view->headScript()->appendFile($baseUrl . 'locale/datatables-translation-table?' . $CC_CONFIG['airtime_version'], 'text/javascript');
     $view->headScript()->appendScript("\$.i18n.setDictionary(general_dict)");
     $view->headScript()->appendScript("var baseUrl='{$baseUrl}'");
     //These timezones are needed to adjust javascript Date objects on the client to make sense to the user's set timezone
     //or the server's set timezone.
     $serverTimeZone = new DateTimeZone(Application_Model_Preference::GetDefaultTimezone());
     $now = new DateTime("now", $serverTimeZone);
     $offset = $now->format("Z") * -1;
     $view->headScript()->appendScript("var serverTimezoneOffset = {$offset}; //in seconds");
     if (class_exists("Zend_Auth", false) && Zend_Auth::getInstance()->hasIdentity()) {
         $userTimeZone = new DateTimeZone(Application_Model_Preference::GetUserTimezone());
         $now = new DateTime("now", $userTimeZone);
         $offset = $now->format("Z") * -1;
         $view->headScript()->appendScript("var userTimezoneOffset = {$offset}; //in seconds");
     }
     //scripts for now playing bar
     $view->headScript()->appendFile($baseUrl . 'js/airtime/airtime_bootstrap.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
     $view->headScript()->appendFile($baseUrl . 'js/airtime/dashboard/helperfunctions.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
     $view->headScript()->appendFile($baseUrl . 'js/airtime/dashboard/dashboard.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
     $view->headScript()->appendFile($baseUrl . 'js/airtime/dashboard/versiontooltip.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
     $view->headScript()->appendFile($baseUrl . 'js/tipsy/jquery.tipsy.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
     $view->headScript()->appendFile($baseUrl . 'js/airtime/common/common.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
     $view->headScript()->appendFile($baseUrl . 'js/airtime/common/audioplaytest.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
     $user = Application_Model_User::getCurrentUser();
     if (!is_null($user)) {
         $userType = $user->getType();
     } else {
         $userType = "";
     }
     $view->headScript()->appendScript("var userType = '{$userType}';");
     if (isset($CC_CONFIG['demo']) && $CC_CONFIG['demo'] == 1) {
         $view->headScript()->appendFile($baseUrl . 'js/libs/google-analytics.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
     }
     if (Application_Model_Preference::GetPlanLevel() != "disabled" && !($_SERVER['REQUEST_URI'] == $baseUrl . 'Dashboard/stream-player' || strncmp($_SERVER['REQUEST_URI'], $baseUrl . 'audiopreview/audio-preview', strlen($baseUrl . 'audiopreview/audio-preview')) == 0)) {
         $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');
     }
 }
コード例 #15
0
 public function streamSettingAction()
 {
     global $CC_CONFIG;
     $request = $this->getRequest();
     $baseUrl = $request->getBaseUrl();
     $this->view->headScript()->appendFile($baseUrl . '/js/airtime/preferences/streamsetting.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
     $isSaas = Application_Model_Preference::GetPlanLevel() == 'disabled' ? false : true;
     // get current settings
     $temp = Application_Model_StreamSetting::getStreamSetting();
     $setting = array();
     foreach ($temp as $t) {
         $setting[$t['keyname']] = $t['value'];
     }
     // get predefined type and bitrate from pref table
     $temp_types = Application_Model_Preference::GetStreamType();
     $stream_types = array();
     foreach ($temp_types as $type) {
         if (trim($type) == "ogg") {
             $temp = "OGG/VORBIS";
         } else {
             $temp = strtoupper(trim($type));
         }
         $stream_types[trim($type)] = $temp;
     }
     $temp_bitrate = Application_Model_Preference::GetStreamBitrate();
     $max_bitrate = intval(Application_Model_Preference::GetMaxBitrate());
     $stream_bitrates = array();
     foreach ($temp_bitrate as $type) {
         if (intval($type) <= $max_bitrate) {
             $stream_bitrates[trim($type)] = strtoupper(trim($type)) . " Kbit/s";
         }
     }
     $num_of_stream = intval(Application_Model_Preference::GetNumOfStreams());
     $form = new Application_Form_StreamSetting();
     $form->setSetting($setting);
     $form->startFrom();
     $live_stream_subform = new Application_Form_LiveStreamingPreferences();
     $form->addSubForm($live_stream_subform, "live_stream_subform");
     for ($i = 1; $i <= $num_of_stream; $i++) {
         $subform = new Application_Form_StreamSettingSubForm();
         $subform->setPrefix($i);
         $subform->setSetting($setting);
         $subform->setStreamTypes($stream_types);
         $subform->setStreamBitrates($stream_bitrates);
         $subform->startForm();
         $form->addSubForm($subform, "s" . $i . "_subform");
     }
     if ($request->isPost()) {
         $values = $request->getPost();
         $error = false;
         if ($form->isValid($values)) {
             if (!$isSaas) {
                 $values['output_sound_device'] = $form->getValue('output_sound_device');
                 $values['output_sound_device_type'] = $form->getValue('output_sound_device_type');
             }
             $values['icecast_vorbis_metadata'] = $form->getValue('icecast_vorbis_metadata');
             $values['streamFormat'] = $form->getValue('streamFormat');
             Application_Model_StreamSetting::setStreamSetting($values);
             // this goes into cc_pref table
             Application_Model_Preference::SetStreamLabelFormat($values['streamFormat']);
             Application_Model_Preference::SetLiveStreamMasterUsername($values["master_username"]);
             Application_Model_Preference::SetLiveStreamMasterPassword($values["master_password"]);
             Application_Model_Preference::SetDefaultTransitionFade($values["transition_fade"]);
             Application_Model_Preference::SetAutoTransition($values["auto_transition"]);
             Application_Model_Preference::SetAutoSwitch($values["auto_switch"]);
             if (!$isSaas) {
                 if (!Application_Model_Preference::GetMasterDjConnectionUrlOverride()) {
                     $master_connection_url = "http://" . $_SERVER['SERVER_NAME'] . ":" . $values["master_harbor_input_port"] . "/" . $values["master_harbor_input_mount_point"];
                     if (empty($values["master_harbor_input_port"]) || empty($values["master_harbor_input_mount_point"])) {
                         Application_Model_Preference::SetMasterDJSourceConnectionURL('N/A');
                     } else {
                         Application_Model_Preference::SetMasterDJSourceConnectionURL($master_connection_url);
                     }
                 } else {
                     Application_Model_Preference::SetMasterDJSourceConnectionURL($values["master_dj_connection_url"]);
                 }
                 if (!Application_Model_Preference::GetLiveDjConnectionUrlOverride()) {
                     $live_connection_url = "http://" . $_SERVER['SERVER_NAME'] . ":" . $values["dj_harbor_input_port"] . "/" . $values["dj_harbor_input_mount_point"];
                     if (empty($values["dj_harbor_input_port"]) || empty($values["dj_harbor_input_mount_point"])) {
                         Application_Model_Preference::SetLiveDJSourceConnectionURL('N/A');
                     } else {
                         Application_Model_Preference::SetLiveDJSourceConnectionURL($live_connection_url);
                     }
                 } else {
                     Application_Model_Preference::SetLiveDJSourceConnectionURL($values["live_dj_connection_url"]);
                 }
                 // extra info that goes into cc_stream_setting
                 Application_Model_StreamSetting::setMasterLiveStreamPort($values["master_harbor_input_port"]);
                 Application_Model_StreamSetting::setMasterLiveStreamMountPoint($values["master_harbor_input_mount_point"]);
                 Application_Model_StreamSetting::setDjLiveStreamPort($values["dj_harbor_input_port"]);
                 Application_Model_StreamSetting::setDjLiveStreamMountPoint($values["dj_harbor_input_mount_point"]);
             }
             // store stream update timestamp
             Application_Model_Preference::SetStreamUpdateTimestamp();
             $data = array();
             $info = Application_Model_StreamSetting::getStreamSetting();
             $data['setting'] = $info;
             for ($i = 1; $i <= $num_of_stream; $i++) {
                 Application_Model_StreamSetting::setLiquidsoapError($i, "waiting");
             }
             Application_Model_RabbitMq::SendMessageToPypo("update_stream_setting", $data);
             $this->view->statusMsg = "<div class='success'>Stream Setting Updated.</div>";
         }
     }
     $live_stream_subform->updateVariables();
     $this->view->confirm_pypo_restart_text = "If you change the username or password values for an enabled stream the playout engine will be rebooted and your listeners will hear silence for 5-10 seconds. Changing the following fields will NOT cause a reboot: Stream Label (Global Settings), and Switch Transition Fade(s), Master Username, and Master Password (Input Stream Settings). If Airtime is recording, and if the change causes a playout engine restart, the recording will be interrupted.";
     $this->view->num_stream = $num_of_stream;
     $this->view->enable_stream_conf = Application_Model_Preference::GetEnableStreamConf();
     $this->view->form = $form;
 }
コード例 #16
0
ファイル: Schedule.php プロジェクト: nidzix/Airtime
 public static function addUpdateShow($data, $controller, $validateStartDate, $originalStartDate = null, $update = false, $instanceId = null)
 {
     $userInfo = Zend_Auth::getInstance()->getStorage()->read();
     $user = new Application_Model_User($userInfo->id);
     $isAdminOrPM = $user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER));
     $isSaas = Application_Model_Preference::GetPlanLevel() != 'disabled';
     $record = false;
     $formWhat = new Application_Form_AddShowWhat();
     $formWho = new Application_Form_AddShowWho();
     $formWhen = new Application_Form_AddShowWhen();
     $formRepeats = new Application_Form_AddShowRepeats();
     $formStyle = new Application_Form_AddShowStyle();
     $formLive = new Application_Form_AddShowLiveStream();
     $formWhat->removeDecorator('DtDdWrapper');
     $formWho->removeDecorator('DtDdWrapper');
     $formWhen->removeDecorator('DtDdWrapper');
     $formRepeats->removeDecorator('DtDdWrapper');
     $formStyle->removeDecorator('DtDdWrapper');
     $formLive->removeDecorator('DtDdWrapper');
     $what = $formWhat->isValid($data);
     $when = $formWhen->isValid($data);
     $live = $formLive->isValid($data);
     if ($when) {
         $when = $formWhen->checkReliantFields($data, $validateStartDate, $originalStartDate, $update, $instanceId);
     }
     //The way the following code works is that is parses the hour and
     //minute from a string with the format "1h 20m" or "2h" or "36m".
     //So we are detecting whether an hour or minute value exists via strpos
     //and then parse appropriately. A better way to do this in the future is
     //actually pass the format from javascript in the format hh:mm so we don't
     //have to do this extra String parsing.
     $hPos = strpos($data["add_show_duration"], 'h');
     $mPos = strpos($data["add_show_duration"], 'm');
     $hValue = 0;
     $mValue = 0;
     if ($hPos !== false) {
         $hValue = trim(substr($data["add_show_duration"], 0, $hPos));
     }
     if ($mPos !== false) {
         $hPos = $hPos === false ? 0 : $hPos + 1;
         $mValue = trim(substr($data["add_show_duration"], $hPos, -1));
     }
     $data["add_show_duration"] = $hValue . ":" . $mValue;
     if (!$isSaas) {
         $formRecord = new Application_Form_AddShowRR();
         $formAbsoluteRebroadcast = new Application_Form_AddShowAbsoluteRebroadcastDates();
         $formRebroadcast = new Application_Form_AddShowRebroadcastDates();
         $formRecord->removeDecorator('DtDdWrapper');
         $formAbsoluteRebroadcast->removeDecorator('DtDdWrapper');
         $formRebroadcast->removeDecorator('DtDdWrapper');
         $record = $formRecord->isValid($data);
     }
     if ($data["add_show_repeats"]) {
         $repeats = $formRepeats->isValid($data);
         if ($repeats) {
             $repeats = $formRepeats->checkReliantFields($data);
         }
         if (!$isSaas) {
             $formAbsoluteRebroadcast->reset();
             //make it valid, results don't matter anyways.
             $rebroadAb = 1;
             if ($data["add_show_rebroadcast"]) {
                 $rebroad = $formRebroadcast->isValid($data);
                 if ($rebroad) {
                     $rebroad = $formRebroadcast->checkReliantFields($data);
                 }
             } else {
                 $rebroad = 1;
             }
         }
     } else {
         $repeats = 1;
         if (!$isSaas) {
             $formRebroadcast->reset();
             //make it valid, results don't matter anyways.
             $rebroad = 1;
             if ($data["add_show_rebroadcast"]) {
                 $rebroadAb = $formAbsoluteRebroadcast->isValid($data);
                 if ($rebroadAb) {
                     $rebroadAb = $formAbsoluteRebroadcast->checkReliantFields($data);
                 }
             } else {
                 $rebroadAb = 1;
             }
         }
     }
     $who = $formWho->isValid($data);
     $style = $formStyle->isValid($data);
     if ($what && $when && $repeats && $who && $style && $live) {
         if (!$isSaas) {
             if ($record && $rebroadAb && $rebroad) {
                 if ($isAdminOrPM) {
                     Application_Model_Show::create($data);
                 }
                 //send back a new form for the user.
                 Application_Model_Schedule::createNewFormSections($controller->view);
                 //$controller->view->newForm = $controller->view->render('schedule/add-show-form.phtml');
                 return true;
             } else {
                 $controller->view->what = $formWhat;
                 $controller->view->when = $formWhen;
                 $controller->view->repeats = $formRepeats;
                 $controller->view->who = $formWho;
                 $controller->view->style = $formStyle;
                 $controller->view->rr = $formRecord;
                 $controller->view->absoluteRebroadcast = $formAbsoluteRebroadcast;
                 $controller->view->rebroadcast = $formRebroadcast;
                 $controller->view->live = $formLive;
                 //$controller->view->addNewShow = !$editShow;
                 //$controller->view->form = $controller->view->render('schedule/add-show-form.phtml');
                 return false;
             }
         } else {
             if ($isAdminOrPM) {
                 Application_Model_Show::create($data);
             }
             //send back a new form for the user.
             Application_Model_Schedule::createNewFormSections($controller->view);
             //$controller->view->newForm = $controller->view->render('schedule/add-show-form.phtml');
             return true;
         }
     } else {
         $controller->view->what = $formWhat;
         $controller->view->when = $formWhen;
         $controller->view->repeats = $formRepeats;
         $controller->view->who = $formWho;
         $controller->view->style = $formStyle;
         $controller->view->live = $formLive;
         if (!$isSaas) {
             $controller->view->rr = $formRecord;
             $controller->view->absoluteRebroadcast = $formAbsoluteRebroadcast;
             $controller->view->rebroadcast = $formRebroadcast;
         }
         //$controller->view->addNewShow = !$editShow;
         //$controller->view->form = $controller->view->render('schedule/add-show-form.phtml');
         return false;
     }
 }