diff --git a/airtime_mvc/application/controllers/PreferenceController.php b/airtime_mvc/application/controllers/PreferenceController.php index ff67faa67..6bccbf697 100644 --- a/airtime_mvc/application/controllers/PreferenceController.php +++ b/airtime_mvc/application/controllers/PreferenceController.php @@ -106,15 +106,17 @@ class PreferenceController extends Zend_Controller_Action public function directoryConfigAction() { - $request = $this->getRequest(); - $baseUrl = $request->getBaseUrl(); - - $this->view->headScript()->appendFile($baseUrl.'/js/serverbrowse/serverbrowser.js','text/javascript'); - $this->view->headScript()->appendFile($baseUrl.'/js/airtime/preferences/musicdirs.js','text/javascript'); - - $watched_dirs_pref = new Application_Form_WatchedDirPreferences(); - - $this->view->form = $watched_dirs_pref; + if(Application_Model_Preference::GetPlanLevel() == 'disabled'){ + $request = $this->getRequest(); + $baseUrl = $request->getBaseUrl(); + + $this->view->headScript()->appendFile($baseUrl.'/js/serverbrowse/serverbrowser.js','text/javascript'); + $this->view->headScript()->appendFile($baseUrl.'/js/airtime/preferences/musicdirs.js','text/javascript'); + + $watched_dirs_pref = new Application_Form_WatchedDirPreferences(); + + $this->view->form = $watched_dirs_pref; + } } public function streamSettingAction() @@ -186,6 +188,7 @@ class PreferenceController extends Zend_Controller_Action } } $this->view->num_stream = $num_of_stream; + $this->view->disable_stream_conf = Application_Model_Preference::GetDisableStreamConf(); $this->view->form = $form; } diff --git a/airtime_mvc/application/controllers/ScheduleController.php b/airtime_mvc/application/controllers/ScheduleController.php index 8b0368daa..25ef8a26c 100644 --- a/airtime_mvc/application/controllers/ScheduleController.php +++ b/airtime_mvc/application/controllers/ScheduleController.php @@ -389,6 +389,8 @@ class ScheduleController extends Zend_Controller_Action if(!$user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER))) { return; } + + $isSaas = Application_Model_Preference::GetPlanLevel() == 'disabled'?false:true; $showInstanceId = $this->_getParam('id'); @@ -397,27 +399,18 @@ class ScheduleController extends Zend_Controller_Action $formWhen = new Application_Form_AddShowWhen(); $formRepeats = new Application_Form_AddShowRepeats(); $formStyle = new Application_Form_AddShowStyle(); - $formRecord = new Application_Form_AddShowRR(); - $formAbsoluteRebroadcast = new Application_Form_AddShowAbsoluteRebroadcastDates(); - $formRebroadcast = new Application_Form_AddShowRebroadcastDates(); $formWhat->removeDecorator('DtDdWrapper'); $formWho->removeDecorator('DtDdWrapper'); $formWhen->removeDecorator('DtDdWrapper'); $formRepeats->removeDecorator('DtDdWrapper'); $formStyle->removeDecorator('DtDdWrapper'); - $formRecord->removeDecorator('DtDdWrapper'); - $formAbsoluteRebroadcast->removeDecorator('DtDdWrapper'); - $formRebroadcast->removeDecorator('DtDdWrapper'); $this->view->what = $formWhat; $this->view->when = $formWhen; $this->view->repeats = $formRepeats; $this->view->who = $formWho; $this->view->style = $formStyle; - $this->view->rr = $formRecord; - $this->view->absoluteRebroadcast = $formAbsoluteRebroadcast; - $this->view->rebroadcast = $formRebroadcast; $this->view->addNewShow = false; $showInstance = new ShowInstance($showInstanceId); @@ -461,42 +454,55 @@ class ScheduleController extends Zend_Controller_Action 'add_show_end_date' => $displayedEndDate->format("Y-m-d"), 'add_show_no_end' => ($show->getRepeatingEndDate() == ''))); - $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"] = 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"] = DateHelper::removeSecondsFromTime($rebroadcast['start_time']); - $i++; - } - $formAbsoluteRebroadcast->populate($rebroadcastAbsoluteFormValues); - $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())); + + 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"] = 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"] = DateHelper::removeSecondsFromTime($rebroadcast['start_time']); + $i++; + } + $formAbsoluteRebroadcast->populate($rebroadcastAbsoluteFormValues); + } $this->view->newForm = $this->view->render('schedule/add-show-form.phtml'); $this->view->entries = 5; @@ -533,24 +539,21 @@ class ScheduleController extends Zend_Controller_Action if($data['add_show_day_check'] == "") { $data['add_show_day_check'] = null; } - + + $isSaas = Application_Model_Preference::GetPlanLevel() == 'disabled'?false:true; + $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(); - $formRecord = new Application_Form_AddShowRR(); - $formAbsoluteRebroadcast = new Application_Form_AddShowAbsoluteRebroadcastDates(); - $formRebroadcast = new Application_Form_AddShowRebroadcastDates(); $formWhat->removeDecorator('DtDdWrapper'); $formWho->removeDecorator('DtDdWrapper'); $formWhen->removeDecorator('DtDdWrapper'); $formRepeats->removeDecorator('DtDdWrapper'); $formStyle->removeDecorator('DtDdWrapper'); - $formRecord->removeDecorator('DtDdWrapper'); - $formAbsoluteRebroadcast->removeDecorator('DtDdWrapper'); - $formRebroadcast->removeDecorator('DtDdWrapper'); $what = $formWhat->isValid($data); $when = $formWhen->isValid($data); @@ -581,70 +584,96 @@ class ScheduleController extends Zend_Controller_Action $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'); + + //If show is a new show (not updated), then get + //isRecorded from POST data. Otherwise get it from + //the database since the user is not allowed to + //update this option. + if ($data['add_show_id'] != -1){ + $data['add_show_record'] = $show->isRecorded(); + $record = $formRecord->isValid($data); + $formRecord->getElement('add_show_record')->setOptions(array('disabled' => true)); + } else { + $record = $formRecord->isValid($data); + } + } + if($data["add_show_repeats"]) { $repeats = $formRepeats->isValid($data); if($repeats) { $repeats = $formRepeats->checkReliantFields($data); } - - $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); + 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 { - $rebroad = 1; } } else { - $formRebroadcast->reset(); - //make it valid, results don't matter anyways. $repeats = 1; - $rebroad = 1; - - if ($data["add_show_rebroadcast"]) { - $rebroadAb = $formAbsoluteRebroadcast->isValid($data); - if($rebroadAb) { - $rebroadAb = $formAbsoluteRebroadcast->checkReliantFields($data); + 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; } - } - else { - $rebroadAb = 1; } } $who = $formWho->isValid($data); $style = $formStyle->isValid($data); - - //If show is a new show (not updated), then get - //isRecorded from POST data. Otherwise get it from - //the database since the user is not allowed to - //update this option. - $record = false; - if ($data['add_show_id'] != -1){ - $data['add_show_record'] = $show->isRecorded(); - $record = $formRecord->isValid($data); - $formRecord->getElement('add_show_record')->setOptions(array('disabled' => true)); - } else { - $record = $formRecord->isValid($data); - } - - if ($what && $when && $repeats && $who && $style && $record && $rebroadAb && $rebroad) { - $userInfo = Zend_Auth::getInstance()->getStorage()->read(); - $user = new User($userInfo->id); - if ($user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER))) { - Show::create($data); + if ($what && $when && $repeats && $who && $style) { + if(!$isSaas){ + if($record && $rebroadAb && $rebroad){ + $userInfo = Zend_Auth::getInstance()->getStorage()->read(); + $user = new User($userInfo->id); + if ($user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER))) { + Show::create($data); + } + + //send back a new form for the user. + Schedule::createNewFormSections($this->view); + + $this->view->newForm = $this->view->render('schedule/add-show-form.phtml'); + } + }else{ + $userInfo = Zend_Auth::getInstance()->getStorage()->read(); + $user = new User($userInfo->id); + if ($user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER))) { + Show::create($data); + } + + //send back a new form for the user. + Schedule::createNewFormSections($this->view); + + $this->view->newForm = $this->view->render('schedule/add-show-form.phtml'); } - - //send back a new form for the user. - Schedule::createNewFormSections($this->view); - - $this->view->newForm = $this->view->render('schedule/add-show-form.phtml'); } else { $this->view->what = $formWhat; @@ -652,9 +681,11 @@ class ScheduleController extends Zend_Controller_Action $this->view->repeats = $formRepeats; $this->view->who = $formWho; $this->view->style = $formStyle; - $this->view->rr = $formRecord; - $this->view->absoluteRebroadcast = $formAbsoluteRebroadcast; - $this->view->rebroadcast = $formRebroadcast; + if(!$isSaas){ + $this->view->rr = $formRecord; + $this->view->absoluteRebroadcast = $formAbsoluteRebroadcast; + $this->view->rebroadcast = $formRebroadcast; + } $this->view->addNewShow = true; //the form still needs to be "update" since diff --git a/airtime_mvc/application/forms/StreamSetting.php b/airtime_mvc/application/forms/StreamSetting.php index 4291b594f..746215b11 100644 --- a/airtime_mvc/application/forms/StreamSetting.php +++ b/airtime_mvc/application/forms/StreamSetting.php @@ -20,6 +20,9 @@ class Application_Form_StreamSetting extends Zend_Form ->setRequired(false) ->setValue(($setting['output_sound_device'] == "true")?1:0) ->setDecorators(array('ViewHelper')); + if(Application_Model_Preference::GetDisableStreamConf() == "true"){ + $output_sound_device->setAttrib("readonly", true); + } $this->addElement($output_sound_device); } diff --git a/airtime_mvc/application/forms/StreamSettingSubForm.php b/airtime_mvc/application/forms/StreamSettingSubForm.php index 2c765a68c..2a77480d9 100644 --- a/airtime_mvc/application/forms/StreamSettingSubForm.php +++ b/airtime_mvc/application/forms/StreamSettingSubForm.php @@ -36,10 +36,18 @@ class Application_Form_StreamSettingSubForm extends Zend_Form_SubForm{ $this->setIsArray(true); $this->setElementsBelongTo($prefix."_data"); + $disable_all = false; + if(Application_Model_Preference::GetDisableStreamConf() == "true"){ + $disable_all = true; + } + $enable = new Zend_Form_Element_Checkbox('enable'); $enable->setLabel('Enabled:') ->setValue($setting[$prefix.'_output'] != 'disabled'?1:0) ->setDecorators(array('ViewHelper')); + if($disable_all){ + $enable->setAttrib("disabled", "disabled"); + } $this->addElement($enable); $type = new Zend_Form_Element_Select('type'); @@ -47,6 +55,9 @@ class Application_Form_StreamSettingSubForm extends Zend_Form_SubForm{ ->setMultiOptions($stream_types) ->setValue(isset($setting[$prefix.'_type'])?$setting[$prefix.'_type']:0) ->setDecorators(array('ViewHelper')); + if($disable_all){ + $type->setAttrib("disabled", "disabled"); + } $this->addElement($type); $bitrate = new Zend_Form_Element_Select('bitrate'); @@ -54,6 +65,10 @@ class Application_Form_StreamSettingSubForm extends Zend_Form_SubForm{ ->setMultiOptions($stream_bitrates) ->setValue(isset($setting[$prefix.'_bitrate'])?$setting[$prefix.'_bitrate']:0) ->setDecorators(array('ViewHelper')); + if($disable_all){ + $bitrate->setAttrib("disabled", "disabled"); + } + $this->addElement($type); $this->addElement($bitrate); $output = new Zend_Form_Element_Select('output'); @@ -61,54 +76,81 @@ class Application_Form_StreamSettingSubForm extends Zend_Form_SubForm{ ->setMultiOptions(array("icecast"=>"Icecast", "shoutcast"=>"Shoutcast")) ->setValue(isset($setting[$prefix.'_output'])?$setting[$prefix.'_output']:"icecast") ->setDecorators(array('ViewHelper')); + if($disable_all){ + $output->setAttrib("disabled", "disabled"); + } $this->addElement($output); $host = new Zend_Form_Element_Text('host'); $host->setLabel("Server") ->setValue(isset($setting[$prefix.'_host'])?$setting[$prefix.'_host']:"") ->setDecorators(array('ViewHelper')); + if($disable_all){ + $host->setAttrib("disabled", "disabled"); + } $this->addElement($host); $port = new Zend_Form_Element_Text('port'); $port->setLabel("Port") ->setValue(isset($setting[$prefix.'_port'])?$setting[$prefix.'_port']:"") ->setDecorators(array('ViewHelper')); + if($disable_all){ + $port->setAttrib("disabled", "disabled"); + } $this->addElement($port); $pass = new Zend_Form_Element_Text('pass'); $pass->setLabel("Password") ->setValue(isset($setting[$prefix.'_pass'])?$setting[$prefix.'_pass']:"") ->setDecorators(array('ViewHelper')); + if($disable_all){ + $pass->setAttrib("disabled", "disabled"); + } $this->addElement($pass); $genre = new Zend_Form_Element_Text('genre'); $genre->setLabel("Genre") ->setValue(isset($setting[$prefix.'_genre'])?$setting[$prefix.'_genre']:"") ->setDecorators(array('ViewHelper')); + if($disable_all){ + $genre->setAttrib("disabled", "disabled"); + } $this->addElement($genre); $url = new Zend_Form_Element_Text('url'); $url->setLabel("URL") ->setValue(isset($setting[$prefix.'_url'])?$setting[$prefix.'_url']:"") ->setDecorators(array('ViewHelper')); + if($disable_all){ + $url->setAttrib("disabled", "disabled"); + } $this->addElement($url); $description = new Zend_Form_Element_Text('description'); $description->setLabel("Name/Description") ->setValue(isset($setting[$prefix.'_description'])?$setting[$prefix.'_description']:"") ->setDecorators(array('ViewHelper')); + if($disable_all){ + $description->setAttrib("disabled", "disabled"); + } $this->addElement($description); $mount = new Zend_Form_Element_Text('mount'); $mount->setLabel("Mount Point") ->setValue(isset($setting[$prefix.'_mount'])?$setting[$prefix.'_mount']:"") ->setDecorators(array('ViewHelper')); + if($disable_all){ + $mount->setAttrib("disabled", "disabled"); + } $this->addElement($mount); $user = new Zend_Form_Element_Text('user'); $user->setLabel("Username") ->setValue(isset($setting[$prefix.'_user'])?$setting[$prefix.'_user']:"") ->setDecorators(array('ViewHelper')); + if($disable_all){ + $user->setAttrib("disabled", "disabled"); + } $this->addElement($user); $this->setDecorators(array( diff --git a/airtime_mvc/application/models/Preference.php b/airtime_mvc/application/models/Preference.php index 5abec2ce2..0412c6fe6 100644 --- a/airtime_mvc/application/models/Preference.php +++ b/airtime_mvc/application/models/Preference.php @@ -426,5 +426,13 @@ class Application_Model_Preference public static function GetTrialEndingDate(){ return Application_Model_Preference::GetValue("trial_end_date"); } + + public static function SetDisableStreamConf($bool){ + Application_Model_Preference::SetValue("disable_stream_conf", $bool); + } + + public static function GetDisableStreamConf(){ + return Application_Model_Preference::GetValue("disable_stream_conf"); + } } diff --git a/airtime_mvc/application/models/Schedule.php b/airtime_mvc/application/models/Schedule.php index 54cc8210d..c2ecbf6d4 100644 --- a/airtime_mvc/application/models/Schedule.php +++ b/airtime_mvc/application/models/Schedule.php @@ -750,33 +750,25 @@ class Schedule { } public static function createNewFormSections($p_view){ + $isSaas = Application_Model_Preference::GetPlanLevel() == 'disabled'?false:true; + $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(); - $formRecord = new Application_Form_AddShowRR(); - $formAbsoluteRebroadcast = new Application_Form_AddShowAbsoluteRebroadcastDates(); - $formRebroadcast = new Application_Form_AddShowRebroadcastDates(); $formWhat->removeDecorator('DtDdWrapper'); $formWho->removeDecorator('DtDdWrapper'); $formWhen->removeDecorator('DtDdWrapper'); $formRepeats->removeDecorator('DtDdWrapper'); $formStyle->removeDecorator('DtDdWrapper'); - $formRecord->removeDecorator('DtDdWrapper'); - $formAbsoluteRebroadcast->removeDecorator('DtDdWrapper'); - $formRebroadcast->removeDecorator('DtDdWrapper'); $p_view->what = $formWhat; $p_view->when = $formWhen; $p_view->repeats = $formRepeats; $p_view->who = $formWho; $p_view->style = $formStyle; - $p_view->rr = $formRecord; - $p_view->absoluteRebroadcast = $formAbsoluteRebroadcast; - $p_view->rebroadcast = $formRebroadcast; - $p_view->addNewShow = true; $formWhat->populate(array('add_show_id' => '-1')); $formWhen->populate(array('add_show_start_date' => date("Y-m-d"), @@ -786,6 +778,21 @@ class Schedule { 'add_show_duration' => '1h')); $formRepeats->populate(array('add_show_end_date' => date("Y-m-d"))); + + 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'); + + $p_view->rr = $formRecord; + $p_view->absoluteRebroadcast = $formAbsoluteRebroadcast; + $p_view->rebroadcast = $formRebroadcast; + } + $p_view->addNewShow = true; } } diff --git a/airtime_mvc/application/models/Shows.php b/airtime_mvc/application/models/Shows.php index ae15fcceb..ef8bf3852 100644 --- a/airtime_mvc/application/models/Shows.php +++ b/airtime_mvc/application/models/Shows.php @@ -770,7 +770,7 @@ class Show { $showId = $ccShow->getDbId(); - $isRecorded = ($data['add_show_record']) ? 1 : 0; + $isRecorded = (isset($data['add_show_record']) && $data['add_show_record']) ? 1 : 0; if ($data['add_show_id'] != -1){ $show = new Show($showId); @@ -804,8 +804,7 @@ class Show { $utcStartDateTime->add(new DateInterval("P".$daysAdd."D")); } - - if (is_null($endDateTime) || $utcStartDateTime->getTimestamp <= $endDateTime->getTimestamp()) { + if (is_null($endDateTime) || $utcStartDateTime->getTimestamp() <= $endDateTime->getTimestamp()) { $showDay = new CcShowDays(); $showDay->setDbFirstShow($utcStartDateTime->format("Y-m-d")); $showDay->setDbLastShow($endDate); diff --git a/airtime_mvc/application/views/helpers/IsSaas.php b/airtime_mvc/application/views/helpers/IsSaas.php new file mode 100644 index 000000000..0e8bc0cee --- /dev/null +++ b/airtime_mvc/application/views/helpers/IsSaas.php @@ -0,0 +1,12 @@ +