/**
  * Pre Action
  * Current user is fully authenticated and loaded by this point
  *
  */
 function pre()
 {
     $sites = $this->getSitesAllowedForCurrentUser();
     $this->set('sites', $sites);
     $this->set('currentSiteId', $this->getParam('siteId'));
     // pass full set of params to view
     $this->data['params'] = $this->params;
     // setup the time period object in $this->period
     $this->setPeriod();
     // check to see if the period is a default period. TODO move this ot view where needed.
     $this->set('is_default_period', $this->period->isDefaultPeriod());
     $this->setView('base.report');
     $this->setViewMethod('delegate');
     $this->dom_id = str_replace('.', '-', $this->getParam('do'));
     $this->data['dom_id'] = $this->dom_id;
     $this->data['do'] = $this->getParam('do');
     $nav = owa_coreAPI::getGroupNavigation('Reports');
     // setup tabs
     $siteId = $this->get('siteId');
     if ($siteId) {
         $gm = owa_coreAPI::supportClassFactory('base', 'goalManager', $siteId);
         $tabs = array();
         $site_usage = array('tab_label' => 'Site Usage', 'metrics' => 'visits,pagesPerVisit,visitDuration,bounceRate,uniqueVisitors', 'sort' => 'visits-', 'trendchartmetric' => 'visits');
         $tabs['site_usage'] = $site_usage;
         // ecommerce tab
         if (owa_coreAPI::getSiteSetting($this->getParam('siteId'), 'enableEcommerceReporting')) {
             $ecommerce = array('tab_label' => 'e-commerce', 'metrics' => 'visits,transactions,transactionRevenue,revenuePerVisit,revenuePerTransaction,ecommerceConversionRate', 'sort' => 'transactionRevenue-', 'trendchartmetric' => 'transactions');
             $tabs['ecommerce'] = $ecommerce;
         }
         $goal_groups = $gm->getActiveGoalGroups();
         if ($goal_groups) {
             foreach ($goal_groups as $group) {
                 $goal_metrics = 'visits';
                 $active_goals = $gm->getActiveGoalsByGroup($group);
                 if ($active_goals) {
                     foreach ($active_goals as $goal) {
                         $goal_metrics .= sprintf(',goal%sCompletions', $goal);
                     }
                 }
                 $goal_metrics .= ',goalValueAll';
                 $goal_group = array('tab_label' => $gm->getGoalGroupLabel($group), 'metrics' => $goal_metrics, 'sort' => 'goalValueAll-', 'trendchartmetric' => 'visits');
                 $name = 'goal_group_' . $group;
                 $tabs[$name] = $goal_group;
             }
         }
         $this->set('tabs', $tabs);
         $this->set('tabs_json', json_encode($tabs));
         if (!owa_coreAPI::getSiteSetting($this->getParam('siteId'), 'enableEcommerceReporting')) {
             unset($nav['Ecommerce']);
         }
     }
     //$this->body->set('sub_nav', owa_coreAPI::getNavigation($this->get('nav_tab'), 'sub_nav'));
     $this->set('top_level_report_nav', $nav);
 }
 /**
  * pre action
  *
  */
 function pre()
 {
     // site lists
     $sites = owa_coreAPI::getSitesList();
     $this->set('sites', $sites);
     // set default siteId if none exists on request
     $site_id = $this->getParam('siteId');
     if (!$site_id) {
         $site_id = $this->getParam('site_id');
     }
     if (!$site_id) {
         $site_id = $sites[0]['site_id'];
     }
     $this->setParam('siteId', $site_id);
     // pass full set of params to view
     $this->data['params'] = $this->params;
     // set default period if necessary
     if (!$this->getParam('period') && !$this->getParam('startDate')) {
         $this->set('is_default_period', true);
         $period = 'last_seven_days';
         $this->params['period'] = $period;
     } elseif (!$this->getParam('period') && $this->getParam('startDate')) {
         $period = 'date_range';
         $this->params['period'] = $period;
     } else {
         $period = $this->getParam('period');
     }
     $this->setPeriod($period);
     $this->setView('base.report');
     $this->setViewMethod('delegate');
     $this->dom_id = str_replace('.', '-', $this->getParam('do'));
     $this->data['dom_id'] = $this->dom_id;
     $this->data['do'] = $this->getParam('do');
     // setup tabs
     $siteId = $this->get('siteId');
     $gm = owa_coreAPI::supportClassFactory('base', 'goalManager', $siteId);
     $tabs = array();
     $site_usage = array('tab_label' => 'Site Usage', 'metrics' => 'visits,pagesPerVisit,visitDuration,bounceRate,uniqueVisitors', 'sort' => 'visits-');
     $tabs['site_usage'] = $site_usage;
     // ecommerce tab
     if (owa_coreAPI::getSiteSetting($this->getParam('siteId'), 'enableEcommerceReporting')) {
         $ecommerce = array('tab_label' => 'e-commerce', 'metrics' => 'visits,transactions,transactionRevenue,revenuePerVisit,revenuePerTransaction,ecommerceConversionRate', 'sort' => 'transactionRevenue-');
         $tabs['ecommerce'] = $ecommerce;
     }
     $goal_groups = $gm->getActiveGoalGroups();
     if ($goal_groups) {
         foreach ($goal_groups as $group) {
             $goal_metrics = 'visits';
             $active_goals = $gm->getActiveGoalsByGroup($group);
             if ($active_goals) {
                 foreach ($active_goals as $goal) {
                     $goal_metrics .= sprintf(',goal%sCompletions', $goal);
                 }
             }
             $goal_metrics .= ',goalValueAll';
             $goal_group = array('tab_label' => $gm->getGoalGroupLabel($group), 'metrics' => $goal_metrics, 'sort' => 'goalValueAll-');
             $name = 'goal_group_' . $group;
             $tabs[$name] = $goal_group;
         }
     }
     $this->set('tabs', $tabs);
     $this->set('tabs_json', json_encode($tabs));
     //$this->body->set('sub_nav', owa_coreAPI::getNavigation($this->get('nav_tab'), 'sub_nav'));
     $nav = owa_coreAPI::getGroupNavigation('Reports');
     if (!owa_coreAPI::getSiteSetting($this->getParam('siteId'), 'enableEcommerceReporting')) {
         unset($nav['Ecommerce']);
     }
     $this->set('top_level_report_nav', $nav);
 }