Add analytics
[bus.git] / busui / owa / modules / base / templates / report_goal_funnel.php
blob:a/busui/owa/modules/base/templates/report_goal_funnel.php -> blob:b/busui/owa/modules/base/templates/report_goal_funnel.php
--- a/busui/owa/modules/base/templates/report_goal_funnel.php
+++ b/busui/owa/modules/base/templates/report_goal_funnel.php
@@ -1,1 +1,148 @@
 
+<div>
+	
+	Choose a goal: <select id="goalChooser">
+		<?php for ($i = 1; $i <= $numGoals; $i++):?>
+		<option <?php if ($i == $goal_number): echo 'SELECTED'; endif;?> value="<?php $this->out($i, false); ?>">Goal <?php $this->out($i, false); ?></option>
+		<?php endfor; ?>
+	</select>
+</div>
+
+<?php if ( $this->get('funnel') ):?>
+<table class="funnel" border="0" style="min-width:100%;">
+	<tr>
+		<td class="funnelLeft">Prior Page Viewed</td>
+		<td class="funnelMiddle"><h2><?php $this->out($goal_conversion_rate);?> conversion rate</h2></td>
+		<td class="funnelRight" style="text-align:right;">Next Page Viewed</td>
+	</tr>
+	<?php foreach ($funnel as $k => $step):?>
+	<tr>
+		<td width="33%" valign="top" class="funnelLeft" id="entrances_step_<?php $this->out($step['step_number']);?>">
+			<div class="funnelLargeNumber entranceCount" style="text-align: right;" id="prior_page_count_step_<?php $this->out($step['step_number']);?>">
+				
+			</div>
+		</td>
+		<td width="33%" valign="top" class="funnelMiddle funnelStep" id="step_<?php $this->out($step['step_number']);?>">
+			<div class="funnelStepName">Step <?php $this->out($step['step_number']);?>: <?php $this->out($step['name']);?></div>
+			<div class="funnelStepCount"><?php $this->out($step['visitors']);?> <span class="visitorCountLabel">visitors</span></div>
+			<div class="funnelStepUrl"><?php $this->out($step['url']);?></div>
+			<div class="genericHorizontalList" style="padding-top:10px;font-size:12px;">
+				<ul class="">
+					
+				
+					<li>
+						<span class="inline_h4"><a href="<?php echo $this->makeLink(array('do' => 'base.reportDomstreams', 'pagePath' => $step['url']), true);?>">Watch Domstreams</a></span>
+					</li>
+				
+					<li>
+						<span class="inline_h4"><a href="<?php echo $this->makeLink(array('do' => 'base.reportDomClicks', 'pagePath' => $step['url']), true);?>">Analyze Dom Clicks</a></span>
+					</li>
+				</ul>
+			</div>
+		</td>
+		<td width="33%" valign="top" class="funnelRight" id="exits_step_<?php $this->out($step['step_number']);?>">
+			<div class="funnelLargeNumber exitCount" id="next_page_count_step_<?php $this->out($step['step_number']);?>"></div>
+		</td>
+	</tr>
+	<?php if (array_key_exists($k+1, $funnel)):?>
+	<tr>
+		<td class="funnelLeft"></td>
+		<td class="funnelMiddle funnelLargeNumber funnelFlow">
+			<?php $this->out($funnel[$k+1]['visitor_percentage']);?><BR>
+			<span class="secondaryText">Proceeded to step: <?php $this->out($funnel[$k+1]['name']); ?></span>
+		</td>
+		<td class="funnelRight"></td>
+	</tr>
+	<?php endif;?>
+	<?php endforeach;?>
+</table>
+
+<script>
+var funnel_json = <?php $this->out($funnel_json, false);?>;
+var i = 1;
+for (step in funnel_json) {
+	step = parseInt(step);
+	
+	var total_steps = OWA.util.countObjectProperties(funnel_json);
+	var operator = '==';
+	if (i < total_steps ) {
+		next_step = step + 1;
+	} else {
+		next_step = step;
+	}
+	
+	if (i == 1) {
+		prior_step = step;
+	} else {
+		prior_step = step - 1 ;
+	}
+	
+	// prior pages
+	var name = 'entrances_step_' + funnel_json[step]['step_number'] ;															  
+	OWA.items[name] = new OWA.resultSetExplorer(name);
+	OWA.items[name].setDataLoadUrl(
+		OWA.items[name].makeApiRequestUrl( 'getResultSet',{
+			metrics: 'visitors',
+			dimensions: 'priorPagePath',
+			sort: 'visitors-',
+			format: 'json',
+			constraints: 'pagePath' + operator + funnel_json[step]['url'] + ',priorPagePath!=' + funnel_json[prior_step]['url'],
+			resultsPerPage: 5,
+			siteId: OWA.items['base-reportGoalFunnel'].getSiteId(),
+			period: OWA.items['base-reportGoalFunnel'].getPeriod(),
+			startDate: OWA.items['base-reportGoalFunnel'].getStartDate(),
+			endDate: OWA.items['base-reportGoalFunnel'].getEndDate()
+	}));
+	OWA.items[name].asyncQueue.push(['refreshGrid']);
+	OWA.items[name].asyncQueue.push([
+			'renderTemplate', 
+			'<*= this.d.resultSet.aggregates.visitors.formatted_value *>', 
+			{d: OWA.items[name]}, 
+			'replace', 
+			'prior_page_count_step_' + funnel_json[step]['step_number']
+	]);
+	OWA.items[name].load();
+	// next page
+	var name = 'exits_step_' + funnel_json[step]['step_number'] ;															  
+	OWA.items[name] = new OWA.resultSetExplorer(name);
+	OWA.items[name].setDataLoadUrl(
+		OWA.items[name].makeApiRequestUrl( 'getResultSet',{
+			metrics: 'visitors',
+			dimensions: 'pagePath',
+			sort: 'visitors-',
+			format: 'json',
+			constraints: 'priorPagePath' + operator + funnel_json[step]['url'] + ',pagePath!=' + funnel_json[next_step]['url'],
+			resultsPerPage: 5,
+			siteId: OWA.items['base-reportGoalFunnel'].getSiteId(),
+			period: OWA.items['base-reportGoalFunnel'].getPeriod(),
+			startDate: OWA.items['base-reportGoalFunnel'].getStartDate(),
+			endDate: OWA.items['base-reportGoalFunnel'].getEndDate()
+	}));
+	OWA.items[name].asyncQueue.push([
+			'renderTemplate', 
+			'<*= this.d.resultSet.aggregates.visitors.formatted_value *>', 
+			{d: OWA.items[name]}, 
+			'replace', 
+			'next_page_count_step_' + funnel_json[step]['step_number']
+	]);
+	OWA.items[name].asyncQueue.push(['refreshGrid']);
+	OWA.items[name].load();
+	i++;
+}
+</script>
+<?php else: ?>
+No Funnel has been configured for this goal. <a href="<?php echo $this->makeLink(array('do' => 'base.optionsGoalEntry', 'goal_number' => $goal_number, 'siteId' => $params['siteId']));?>">Add a funnel</a>
+<?php endif;?>
+
+<script>
+// jquery binding for select list
+// Bind event handlers
+jQuery(document).ready(function(){   
+
+	jQuery('#goalChooser').change(function() {
+			var num = jQuery("#goalChooser option:selected").val();
+			OWA.items['base-reportGoalFunnel'].setRequestProperty('goalNumber', num);
+			OWA.items['base-reportGoalFunnel'].reload();
+	});
+});
+</script>