Merge pull request #8470 from ankitjain28may/master
[civicrm-core.git] / CRM / Mailing / Info.php
index 2bc5c972be7a627b2e98c49f92f8498654b42a5e..1fdd0e27b12ccec93a87e7224fabb1197edbbb1b 100644 (file)
@@ -3,7 +3,7 @@
  +--------------------------------------------------------------------+
  | CiviCRM version 4.7                                                |
  +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2015                                |
+ | Copyright CiviCRM LLC (c) 2004-2016                                |
  +--------------------------------------------------------------------+
  | This file is a part of CiviCRM.                                    |
  |                                                                    |
@@ -31,7 +31,7 @@
  * abstract class.
  *
  * @package CRM
- * @copyright CiviCRM LLC (c) 2004-2015
+ * @copyright CiviCRM LLC (c) 2004-2016
  */
 class CRM_Mailing_Info extends CRM_Core_Component_Info {
 
@@ -72,6 +72,14 @@ class CRM_Mailing_Info extends CRM_Core_Component_Info {
       return array();
     }
 
+    $reportIds = array();
+    $reportTypes = array('detail', 'opened', 'bounce', 'clicks');
+    foreach ($reportTypes as $report) {
+      $result = civicrm_api3('ReportInstance', 'get', array(
+        'sequential' => 1,
+        'report_id' => 'mailing/' . $report));
+      $reportIds[$report] = $result['values'][0]['id'];
+    }
     $result = array();
     $result['crmMailing'] = array(
       'ext' => 'civicrm',
@@ -165,8 +173,8 @@ class CRM_Mailing_Info extends CRM_Core_Component_Info {
           'mailTokens' => $mailTokens['values'],
           'contactid' => $contactID,
           'requiredTokens' => CRM_Utils_Token::getRequiredTokens(),
-          'enableReplyTo' => (int) CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::MAILING_PREFERENCES_NAME, 'replyTo'),
-          'disableMandatoryTokensCheck' => (int) CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::MAILING_PREFERENCES_NAME, 'disable_mandatory_tokens_check'),
+          'enableReplyTo' => (int) Civi::settings()->get('replyTo'),
+          'disableMandatoryTokensCheck' => (int) Civi::settings()->get('disable_mandatory_tokens_check'),
           'fromAddress' => $fromAddress['values'],
           'defaultTestEmail' => civicrm_api3('Contact', 'getvalue', array(
               'id' => 'user_contact_id',
@@ -174,10 +182,12 @@ class CRM_Mailing_Info extends CRM_Core_Component_Info {
             )),
           'visibility' => CRM_Utils_Array::makeNonAssociative(CRM_Core_SelectValues::groupVisibility()),
           'workflowEnabled' => CRM_Mailing_Info::workflowEnabled(),
+          'reportIds' => $reportIds,
         ),
       ))
       ->addPermissions(array(
         'view all contacts',
+        'edit all contacts',
         'access CiviMail',
         'create mailings',
         'schedule mailings',
@@ -206,11 +216,7 @@ class CRM_Mailing_Info extends CRM_Core_Component_Info {
       return FALSE;
     }
 
-    $enableWorkflow = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::MAILING_PREFERENCES_NAME,
-      'civimail_workflow',
-      NULL,
-      FALSE
-    );
+    $enableWorkflow = Civi::settings()->get('civimail_workflow');
 
     return ($enableWorkflow &&
       $config->userSystem->is_drupal
@@ -244,20 +250,14 @@ class CRM_Mailing_Info extends CRM_Core_Component_Info {
     );
 
     if (self::workflowEnabled() || $getAllUnconditionally) {
-      $permissions[] = array(
-        'create mailings' => array(
-          ts('create mailings'),
-        ),
+      $permissions['create mailings'] = array(
+        ts('create mailings'),
       );
-      $permissions[] = array(
-        'schedule mailings' => array(
-          ts('schedule mailings'),
-        ),
+      $permissions['schedule mailings'] = array(
+        ts('schedule mailings'),
       );
-      $permissions[] = array(
-        'approve mailings' => array(
-          ts('approve mailings'),
-        ),
+      $permissions['approve mailings'] = array(
+        ts('approve mailings'),
       );
     }