From 088ada1d2c4ce6471e97a6e5d6dde33d47fc1feb Mon Sep 17 00:00:00 2001 From: Albert Santoni Date: Fri, 10 Apr 2015 17:14:56 -0400 Subject: [PATCH 1/7] Reformatted Bootstrap, added Station Suspended notice --- airtime_mvc/application/Bootstrap.php | 123 +++++++++--------- airtime_mvc/application/configs/constants.php | 6 +- .../controllers/DashboardController.php | 1 - .../controllers/ProvisioningController.php | 3 + .../application/layouts/scripts/layout.phtml | 7 + airtime_mvc/application/models/Preference.php | 11 ++ .../scripts/partialviews/suspended.phtml | 9 ++ airtime_mvc/public/css/styles.css | 10 ++ 8 files changed, 109 insertions(+), 61 deletions(-) create mode 100644 airtime_mvc/application/views/scripts/partialviews/suspended.phtml diff --git a/airtime_mvc/application/Bootstrap.php b/airtime_mvc/application/Bootstrap.php index 91736f51a..c7656764c 100644 --- a/airtime_mvc/application/Bootstrap.php +++ b/airtime_mvc/application/Bootstrap.php @@ -78,9 +78,9 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap $view->headScript()->appendScript("var baseUrl = '$baseUrl';"); $this->_initTranslationGlobals($view); - + $user = Application_Model_User::GetCurrentUser(); - if (!is_null($user)){ + if (!is_null($user)) { $userType = $user->getType(); } else { $userType = ""; @@ -91,23 +91,25 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap /** * Create a global namespace to hold a session token for CSRF prevention */ - protected function _initCsrfNamespace() { + protected function _initCsrfNamespace() + { $csrf_namespace = new Zend_Session_Namespace('csrf_namespace'); // Check if the token exists if (!$csrf_namespace->authtoken) { // If we don't have a token, regenerate it and set a 2 hour timeout // Should we log the user out here if the token is expired? - $csrf_namespace->authtoken = sha1(uniqid(rand(),1)); - $csrf_namespace->setExpirationSeconds(2*60*60); + $csrf_namespace->authtoken = sha1(uniqid(rand(), 1)); + $csrf_namespace->setExpirationSeconds(2 * 60 * 60); } } - + /** - * Ideally, globals should be written to a single js file once - * from a php init function. This will save us from having to + * Ideally, globals should be written to a single js file once + * from a php init function. This will save us from having to * reinitialize them every request */ - private function _initTranslationGlobals() { + private function _initTranslationGlobals() + { $view = $this->getResource('view'); $view->headScript()->appendScript("var PRODUCT_NAME = '" . PRODUCT_NAME . "';"); $view->headScript()->appendScript("var USER_MANUAL_URL = '" . USER_MANUAL_URL . "';"); @@ -122,13 +124,13 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap $baseUrl = Application_Common_OsPath::getBaseDir(); - $view->headLink()->appendStylesheet($baseUrl.'css/bootstrap.css?'.$CC_CONFIG['airtime_version']); - $view->headLink()->appendStylesheet($baseUrl.'css/redmond/jquery-ui-1.8.8.custom.css?'.$CC_CONFIG['airtime_version']); - $view->headLink()->appendStylesheet($baseUrl.'css/pro_dropdown_3.css?'.$CC_CONFIG['airtime_version']); - $view->headLink()->appendStylesheet($baseUrl.'css/qtip/jquery.qtip.min.css?'.$CC_CONFIG['airtime_version']); - $view->headLink()->appendStylesheet($baseUrl.'css/styles.css?'.$CC_CONFIG['airtime_version']); - $view->headLink()->appendStylesheet($baseUrl.'css/masterpanel.css?'.$CC_CONFIG['airtime_version']); - $view->headLink()->appendStylesheet($baseUrl.'css/tipsy/jquery.tipsy.css?'.$CC_CONFIG['airtime_version']); + $view->headLink()->appendStylesheet($baseUrl . 'css/bootstrap.css?' . $CC_CONFIG['airtime_version']); + $view->headLink()->appendStylesheet($baseUrl . 'css/redmond/jquery-ui-1.8.8.custom.css?' . $CC_CONFIG['airtime_version']); + $view->headLink()->appendStylesheet($baseUrl . 'css/pro_dropdown_3.css?' . $CC_CONFIG['airtime_version']); + $view->headLink()->appendStylesheet($baseUrl . 'css/qtip/jquery.qtip.min.css?' . $CC_CONFIG['airtime_version']); + $view->headLink()->appendStylesheet($baseUrl . 'css/styles.css?' . $CC_CONFIG['airtime_version']); + $view->headLink()->appendStylesheet($baseUrl . 'css/masterpanel.css?' . $CC_CONFIG['airtime_version']); + $view->headLink()->appendStylesheet($baseUrl . 'css/tipsy/jquery.tipsy.css?' . $CC_CONFIG['airtime_version']); } protected function _initHeadScript() @@ -139,72 +141,73 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap $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/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/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()->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. + + //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'); + 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)){ + if (!is_null($user)) { $userType = $user->getType(); } else { $userType = ""; } - + $view->headScript()->appendScript("var userType = '$userType';"); if (array_key_exists('REQUEST_URI', $_SERVER)) { //Doesn't exist for unit tests - if (strpos($_SERVER['REQUEST_URI'], $baseUrl.'Dashboard/stream-player') === false - && strpos($_SERVER['REQUEST_URI'], $baseUrl.'audiopreview/audio-preview') === false - && strpos($_SERVER['REQUEST_URI'], $baseUrl.'audiopreview/playlist-preview') === false - && strpos($_SERVER['REQUEST_URI'], $baseUrl.'audiopreview/block-preview') === false) { + if (strpos($_SERVER['REQUEST_URI'], $baseUrl . 'Dashboard/stream-player') === false + && strpos($_SERVER['REQUEST_URI'], $baseUrl . 'audiopreview/audio-preview') === false + && strpos($_SERVER['REQUEST_URI'], $baseUrl . 'audiopreview/playlist-preview') === false + && strpos($_SERVER['REQUEST_URI'], $baseUrl . 'audiopreview/block-preview') === false + ) { $plan_level = strval(Application_Model_Preference::GetPlanLevel()); // Since the Hobbyist plan doesn't come with Live Chat support, don't enable it if (Application_Model_Preference::GetLiveChatEnabled() && $plan_level !== 'hobbyist') { $client_id = strval(Application_Model_Preference::GetClientId()); $station_url = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; - $view->headScript()->appendScript("var livechat_client_id = '$client_id';\n". - "var livechat_plan_type = '$plan_level';\n". - "var livechat_station_url = 'http://$station_url';"); - $view->headScript()->appendFile($baseUrl . 'js/airtime/common/livechat.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); + $view->headScript()->appendScript("var livechat_client_id = '$client_id';\n" . + "var livechat_plan_type = '$plan_level';\n" . + "var livechat_station_url = 'http://$station_url';"); + $view->headScript()->appendFile($baseUrl . 'js/airtime/common/livechat.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); } - } + } } /* @@ -217,6 +220,8 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { $view = $this->getResource('view'); $view->addHelperPath('../application/views/helpers', 'Airtime_View_Helper'); + + $view->assign('suspended', (Application_Model_Preference::getProvisioningStatus() == PROVISIONING_STATUS_SUSPENDED)); } protected function _initTitle() @@ -255,7 +260,7 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap $front = Zend_Controller_Front::getInstance(); $router = $front->getRouter(); $front->setBaseUrl(Application_Common_OsPath::getBaseDir()); - + $router->addRoute( 'password-change', new Zend_Controller_Router_Route('password-change/:user_id/:token', array( diff --git a/airtime_mvc/application/configs/constants.php b/airtime_mvc/application/configs/constants.php index 273b8a0b7..548fa1fd3 100644 --- a/airtime_mvc/application/configs/constants.php +++ b/airtime_mvc/application/configs/constants.php @@ -87,4 +87,8 @@ define("WHMCS_API_URL", "https://account.sourcefabric.com/includes/api.php"); define("SUBDOMAIN_WHMCS_CUSTOM_FIELD_NAME", "Choose your domain"); //Sentry error logging -define('SENTRY_CONFIG_PATH', '/etc/airtime-saas/sentry.airtime_web.ini'); \ No newline at end of file +define('SENTRY_CONFIG_PATH', '/etc/airtime-saas/sentry.airtime_web.ini'); + +//Provisioning status +define('PROVISIONING_STATUS_SUSPENDED' , 'Suspended'); +define('PROVISIONING_STATUS_ACTIVE' , 'Active'); diff --git a/airtime_mvc/application/controllers/DashboardController.php b/airtime_mvc/application/controllers/DashboardController.php index bdcaf2f1b..356819c09 100644 --- a/airtime_mvc/application/controllers/DashboardController.php +++ b/airtime_mvc/application/controllers/DashboardController.php @@ -13,7 +13,6 @@ class DashboardController extends Zend_Controller_Action public function indexAction() { - // action body } public function disconnectSourceAction() diff --git a/airtime_mvc/application/controllers/ProvisioningController.php b/airtime_mvc/application/controllers/ProvisioningController.php index 4aa02fa39..ce03b55f8 100644 --- a/airtime_mvc/application/controllers/ProvisioningController.php +++ b/airtime_mvc/application/controllers/ProvisioningController.php @@ -38,6 +38,9 @@ class ProvisioningController extends Zend_Controller_Action if ($_POST['description']) { Application_Model_Preference::SetStationDescription($_POST['description']); } + if ($_POST['provisioning_status']) { + Application_Model_Preference::setProvisioningStatus($_POST['provisioning_status']); + } } catch (Exception $e) { $this->getResponse() ->setHttpResponseCode(400) diff --git a/airtime_mvc/application/layouts/scripts/layout.phtml b/airtime_mvc/application/layouts/scripts/layout.phtml index bf97086c5..9d3c74b9b 100644 --- a/airtime_mvc/application/layouts/scripts/layout.phtml +++ b/airtime_mvc/application/layouts/scripts/layout.phtml @@ -20,7 +20,12 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= partial('partialviews/trialBox.phtml', array("is_trial"=>$this->isTrial(), "trial_remain"=> $this->trialRemaining())) ?> +
+ suspended) : ?> + partial('partialviews/suspended.phtml'); ?> + + versionNotify(); $sss = $this->SourceSwitchStatus(); $scs = $this->SourceConnectionStatus(); @@ -44,8 +49,10 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= navigation()->menu() ?>
+ +
layout()->content ?>