Skip to content

Commit 8c72018

Browse files
Merge pull request civicrm#23 from seamuslee001/CRM-18021-fuzion
CRM-18021 Add in report viewing option for ab tests
2 parents e6f2c61 + 9018c31 commit 8c72018

File tree

3 files changed

+28
-12
lines changed

3 files changed

+28
-12
lines changed

CRM/Mailing/Info.php

+9
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,14 @@ public function getAngularModules() {
7474
return array();
7575
}
7676

77+
$reportIds = array();
78+
$reportTypes = array('detail', 'opened', 'bounce', 'clicks');
79+
foreach ($reportTypes as $report) {
80+
$result = civicrm_api3('ReportInstance', 'get', array(
81+
'sequential' => 1,
82+
'report_id' => 'mailing/' . $report));
83+
$reportIds[$report] = $result['values'][0]['id'];
84+
}
7785
$result = array();
7886
$result['crmMailing'] = array(
7987
'ext' => 'civicrm',
@@ -176,6 +184,7 @@ public function getAngularModules() {
176184
)),
177185
'visibility' => CRM_Utils_Array::makeNonAssociative(CRM_Core_SelectValues::groupVisibility()),
178186
'workflowEnabled' => CRM_Mailing_Info::workflowEnabled(),
187+
'reportIds' => $reportIds,
179188
),
180189
))
181190
->addPermissions(array(

ang/crmMailing/services.js

+13-12
Original file line numberDiff line numberDiff line change
@@ -453,15 +453,15 @@
453453

454454
angular.module('crmMailing').factory('crmMailingStats', function (crmApi, crmLegacy) {
455455
var statTypes = [
456-
// {name: 'Recipients', title: ts('Intended Recipients'), searchFilter: '', eventsFilter: '&event=queue'},
457-
{name: 'Delivered', title: ts('Successful Deliveries'), searchFilter: '&mailing_delivery_status=Y', eventsFilter: '&event=delivered'},
458-
{name: 'Opened', title: ts('Tracked Opens'), searchFilter: '&mailing_open_status=Y', eventsFilter: '&event=opened'},
459-
{name: 'Unique Clicks', title: ts('Click-throughs'), searchFilter: '&mailing_click_status=Y', eventsFilter: '&event=click&distinct=1'},
460-
// {name: 'Forward', title: ts('Forwards'), searchFilter: '&mailing_forward=1', eventsFilter: '&event=forward'},
461-
// {name: 'Replies', title: ts('Replies'), searchFilter: '&mailing_reply_status=Y', eventsFilter: '&event=reply'},
462-
{name: 'Bounces', title: ts('Bounces'), searchFilter: '&mailing_delivery_status=N', eventsFilter: '&event=bounce'},
463-
{name: 'Unsubscribers', title: ts('Unsubscribes'), searchFilter: '&mailing_unsubscribe=1', eventsFilter: '&event=unsubscribe'}
464-
// {name: 'OptOuts', title: ts('Opt-Outs'), searchFilter: '&mailing_optout=1', eventsFilter: '&event=optout'}
456+
// {name: 'Recipients', title: ts('Intended Recipients'), searchFilter: '', eventsFilter: '&event=queue', reportType: 'detail', reportFilter: ''},
457+
{name: 'Delivered', title: ts('Successful Deliveries'), searchFilter: '&mailing_delivery_status=Y', eventsFilter: '&event=delivered', reportType: 'detail', reportFilter: '&delivery_status_value=successful'},
458+
{name: 'Opened', title: ts('Tracked Opens'), searchFilter: '&mailing_open_status=Y', eventsFilter: '&event=opened', reportType: 'opened', reportFilter: ''},
459+
{name: 'Unique Clicks', title: ts('Click-throughs'), searchFilter: '&mailing_click_status=Y', eventsFilter: '&event=click&distinct=1', reportType: 'clicks', reportFilter: ''},
460+
// {name: 'Forward', title: ts('Forwards'), searchFilter: '&mailing_forward=1', eventsFilter: '&event=forward', reportType: 'detail', reportFilter: '&is_forwarded_value=1'},
461+
// {name: 'Replies', title: ts('Replies'), searchFilter: '&mailing_reply_status=Y', eventsFilter: '&event=reply', reportType: 'detail', reportFilter: '&is_replied_value=1'},
462+
{name: 'Bounces', title: ts('Bounces'), searchFilter: '&mailing_delivery_status=N', eventsFilter: '&event=bounce', reportType: 'bounce', reportFilter: ''},
463+
{name: 'Unsubscribers', title: ts('Unsubscribes'), searchFilter: '&mailing_unsubscribe=1', eventsFilter: '&event=unsubscribe', reportType: 'detail', reportFilter: '&is_unsubscribed_value=1'},
464+
// {name: 'OptOuts', title: ts('Opt-Outs'), searchFilter: '&mailing_optout=1', eventsFilter: '&event=optout', reportType: 'detail', reportFilter: ''}
465465
];
466466

467467
return {
@@ -505,12 +505,13 @@
505505
var retParams = returnPath ? '&context=angPage&angPage=' + returnPath : '';
506506
return crmLegacy.url('civicrm/mailing/report/event',
507507
'reset=1&mid=' + mailing.id + statType.eventsFilter + retParams);
508-
509508
case 'search':
510509
return crmLegacy.url('civicrm/contact/search/advanced',
511510
'force=1&mailing_id=' + mailing.id + statType.searchFilter);
512-
513-
// TODO: case 'report':
511+
case 'report':
512+
var reportIds = CRM.crmMailing.reportIds;
513+
return crmLegacy.url('civicrm/report/instance/' + reportIds[statType.reportType],
514+
'reset=1&mailing_id_value=' + mailing.id + statType.reportFilter);
514515
default:
515516
return null;
516517
}

ang/crmMailingAB/EditCtrl/report.html

+6
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,12 @@
7979
ng-href="{{statUrl(am.mailing, statType, 'events')}}"
8080
title="{{ts('Browse events of type \'%1\'', {1: statType.title})}}"
8181
>{{stats[am.name][statType.name] || ts('n/a')}}</a>
82+
<a
83+
class="crm-hover-button action-item"
84+
ng-href="{{statUrl(am.mailing, statType, 'report')}}"
85+
title="{{ts('Reports for \'%1\'', {1: statType.title})}}"
86+
crm-icon="clipboard"
87+
></a>
8288
</td>
8389
<td ng-show="abtest.ab.status == 'Testing'"></td>
8490
</tr>

0 commit comments

Comments
 (0)