--- a/busui/owa/modules/base/templates/options_goal_entry.php +++ b/busui/owa/modules/base/templates/options_goal_entry.php @@ -1,1 +1,259 @@ - +<div class="panel_headline"><?php echo $headline?></div> + +<div class="subview_content"> + +<h3>Goal <?php $this->out($goal_number);?> Settings</h3> + +<form name="goal-entry" method="POST"> + + <table class="management" width="100%"> + <thead> + + </thead> + + <tbody> + + <tr> + + <th valign="top">Name:</th> + <td> + <input name="<?php echo $this->getNs();?>goal[goal_name]" type="text" size="40" value="<?php $this->out($goal['goal_name']);?>"> + </td> + </tr> + <tr> + <th valign="top">Group: + <p class="formInstructions"> + The group that you want to assign this goal to. Goal groups are presented as a tab view on most reports. + </p> + </th> + <td> + + <select name="<?php echo $this->getNs();?>goal[goal_group]"> + <?php foreach ($goal_groups as $k => $group): ?> + <option value="<?php $this->out($k, false);?>" <?php if ( isset( $goal['goal_group'] ) && $goal['goal_group'] == $k ) { echo 'SELECTED';}?>><?php + if ( !empty( $group ) ) { + $this->out($k." - $group"); + } else { + $this->out($k); + } + ?></option> + <?php endforeach;?> + </select> + <BR><BR>Edit the group label: + + <input name="<?php echo $this->getNs();?>new_goal_group_name" type="text" size="20" value="<?php $this->out($goal_groups[$goal['goal_group']]);?>"> + </td> + </tr> + <tr> + <th valign="top">Status:</th> + <td> + <select name="<?php echo $this->getNs();?>goal[goal_status]"> + <option value="active" <?php if (isset($goal['goal_status']) && $goal['goal_status'] != 'disabled'){echo 'SELECTED';}?>> + Active + </option> + <option value="disabled" <?php if (isset($goal['goal_status']) && $goal['goal_status'] === 'disabled'){echo 'SELECTED';}?>> + Disabled + </option> + </select> + + + </td> + </tr> + + <tr> + <th valign="top"> + Value: + <p class="formInstructions"> + The value associated with achieving this goal. + </p> + </th> + <td> + <input name="<?php echo $this->getNs();?>goal[goal_value]" type="text" size="20" value="<?php $this->out($goal['goal_value']);?>"> + <span class="optional">Optional</span> + </td> + </tr> + + <tr> + <th valign="top"> + Type: + <p class="formInstructions"> + The type of goal. + </p> + </th> + <td> + <input type="radio" name="<?php echo $this->getNs();?>goal[goal_type]" value="url_destination" <?php if (isset($goal['goal_type']) && $goal['goal_type'] === 'url_destination'){echo 'CHECKED';}?> > URL Destination<BR> + + <input type="radio" name="<?php echo $this->getNs();?>goal[goal_type]" value="pages_per_visit" <?php if (isset($goal['goal_type']) && $goal['goal_type'] === 'pages_per_visit'){echo 'CHECKED';}?> > Pages / Visit<BR> + + <input type="radio" name="<?php echo $this->getNs();?>goal[goal_type]" value="visit_duration" <?php if (isset($goal['goal_type']) && $goal['goal_type'] === 'visit_duration'){echo 'CHECKED';}?> > Visit Duration <BR> + + + </td> + </tr> + + </tbody> + + </table> + + <!-- URL destination specific options --> + <div id="url_destination_details" class="goal-detail"> + + <h3>Goal Details</h3> + <table class="management"> + <tr> + <th>Match Type:</th> + <td> + <select name="<?php echo $this->getNs();?>goal[details][match_type]"> + <option value="begins" <?php if (isset($goal['details']['match_type']) && $goal['details']['match_type'] === 'begins'){echo 'SELECTED';}?>> + Begins With + </option> + <option value="exact" <?php if (isset($goal['details']['match_type']) && $goal['details']['match_type'] === 'exact'){echo 'SELECTED';}?>> + Exact Match + </option> + <option value="regex" <?php if (isset($goal['details']['match_type']) && $goal['details']['match_type'] === 'regex'){echo 'SELECTED';}?>> + Regular Expression + </option> + </select> + + </td> + </tr> + <tr> + <th> + Goal URL: + <p class="formInstructions"> + Example: /register.html + </p> + </th> + <td> + <input name="<?php echo $this->getNs();?>goal[details][goal_url]" value="<?php $this->out($goal['details']['goal_url']);?>" type="text" size="60" value="<?php $this->out($goal['url']);?>"> + </td> + </tr> + </table> + + <h3>Funnel</h3> + + <table class="management" id="funnel-steps"> + <TR> + <th></th> + <th>Step URL</th> + <th>Name</th> + <th>Is Required?</th> + <th></th> + </TR> + </table> + <BR> + <a name="steps-end" href="# steps-end" id="addStep">Add New Funnel Step</a> + </div> + + <!-- pages per visit goal type specific options --> + <div id="pages_per_visit_details" class="goal-detail"> + <h3>Goal Details</h3> + Not implemented yet. + </div> + + <!-- visit duration goal type specific options --> + <div id="visit_duration_details" class="goal-detail"> + <h3>Goal Details</h3> + Not implemented yet. + </div> + + <input type="hidden" name="<?php echo $this->getNs();?>goal[goal_number]" value="<?php $this->out($goal_number, false);?>"> + <input type="hidden" name="<?php echo $this->getNs();?>siteId" value="<?php $this->out($siteId, false);?>"> + <input type="hidden" name="<?php echo $this->getNs();?>action" value="base.optionsGoalEdit"> + <?php echo $this->createNonceFormField('base.optionsGoalEdit');?> + <BR> + <input type="submit" value="Submit"> + </form> + +</div> + +<script> +OWA.setSetting('debug', true); +jQuery(document).ready(function() { + + showGoalDetails(); + + // show hide the right goal type details + jQuery("input[name='owa_goal[goal_type]']").change(function(e) { + showGoalDetails(); + }); + + jQuery('#addStep').click(function() { + addNewStep(); + }); + + if (OWA.util.countObjectProperties(steps) > 0) { + populateGoalSteps(); + } +}); + +function showGoalDetails() { + var val = jQuery("input[name='owa_goal[goal_type]']:checked").val(); + OWA.debug(val); + jQuery('.goal-detail').hide(); + var selector = '#'+val+'_details'; + OWA.debug(selector); + jQuery(selector).show(); +} + +function populateGoalSteps() { + OWA.debug('pop'); + for (step in steps) { + renderStep(steps[step]); + } +} + +function addNewStep() { + var count = OWA.util.countObjectProperties(steps); + OWA.debug('count: '+count); + var num; + if (count === 0) { + num = 1; + } else { + num = count + 1; + } + + if (num < 11) { + + OWA.debug('num: '+num); + var empty_step = {step_number: num, is_required: '', name: '', url: ''}; + renderStep(empty_step); + steps[num] = empty_step; + } else { + alert("Sorry but funnels can only have 10 steps."); + } +} + +function renderStep(step) { + jQuery('#funnel-steps tr:last').after(jQuery('#funnel-step').jqote(step, '*')); +} + +</script> + +<script type="text/x-jqote-template" id="funnel-step"> +<![CDATA[ +<tr> +<th class="">Step <*= this.step_number *></th> +<td class=""><input type="text" size="20" name="owa_goal[details][funnel_steps][<*= this.step_number *>][url]" value="<*= this.url *>"></td> +<td class=""><input type="text" size="20" name="owa_goal[details][funnel_steps][<*= this.step_number *>][name]" value="<*= this.name *>"></td> +<td class=""> + + +<input type="checkbox" size="20" name="owa_goal[details][funnel_steps][<*= this.step_number *>][is_required]" value="true" +<* if ( this.is_required ) { *> +CHECKED +<* } *> +> + +</td> + +</tr> +]]> +</script> + +<script> +var steps = []; +<?php if (array_key_exists('funnel_steps', $goal['details'])):?> +<?php $this->out(sprintf("steps = %s;", json_encode($goal['details']['funnel_steps'])), false); ?> +<?php endif;?> +</script>