3 +--------------------------------------------------------------------+
4 | Copyright CiviCRM LLC. All rights reserved. |
6 | This work is published under the GNU AGPLv3 license with some |
7 | permitted exceptions and without any warranty. For full license |
8 | and copyright information, see https://civicrm.org/licensing |
9 +--------------------------------------------------------------------+
15 * @copyright CiviCRM LLC https://civicrm.org/licensing
19 * This class contains all the function that are called using AJAX
21 class CRM_Mailing_Page_AJAX
{
24 * Kick off the "Add Mail Account" process for some given type of account.
26 * Ex: 'civicrm/ajax/setupMailAccount?type=standard'
27 * Ex: 'civicrm/ajax/setupMailAccount?type=oauth_1'
29 * @see CRM_Core_BAO_MailSettings::getSetupActions()
30 * @throws \CRM_Core_Exception
32 public static function setup() {
33 $type = CRM_Utils_Request
::retrieve('type', 'String');
34 $setupActions = CRM_Core_BAO_MailSettings
::getSetupActions();
35 $setupAction = $setupActions[$type] ??
NULL;
36 if ($setupAction === NULL) {
37 throw new \
CRM_Core_Exception("Cannot setup mail account. Invalid type requested.");
40 $result = call_user_func($setupAction['callback'], $setupAction);
41 if (isset($result['url'])) {
42 CRM_Utils_System
::redirect($result['url']);
45 throw new \
CRM_Core_Exception("Cannot setup mail account. Setup does not have a URL.");
50 * Fetch the template text/html messages
52 public static function template() {
53 $templateId = CRM_Utils_Type
::escape($_POST['tid'], 'Integer');
55 $messageTemplate = new CRM_Core_DAO_MessageTemplate();
56 $messageTemplate->id
= $templateId;
57 $messageTemplate->selectAdd();
58 $messageTemplate->selectAdd('msg_text, msg_html, msg_subject, pdf_format_id');
59 $messageTemplate->find(TRUE);
61 'subject' => $messageTemplate->msg_subject
,
62 'msg_text' => $messageTemplate->msg_text
,
63 'msg_html' => $messageTemplate->msg_html
,
64 'pdf_format_id' => $messageTemplate->pdf_format_id
,
67 $documentInfo = CRM_Core_BAO_File
::getEntityFile('civicrm_msg_template', $templateId);
68 foreach ((array) $documentInfo as $info) {
69 list($messages['document_body']) = CRM_Utils_PDF_Document
::docReader($info['fullPath'], $info['mime_type']);
72 CRM_Utils_JSON
::output($messages);
76 * Retrieve contact mailings.
78 public static function getContactMailings() {
79 $params = CRM_Core_Page_AJAX
::defaultSortAndPagerParams();
80 $params +
= CRM_Core_Page_AJAX
::validateParams(['contact_id' => 'Integer']);
82 // get the contact mailings
83 $mailings = CRM_Mailing_BAO_Mailing
::getContactMailingSelector($params);
85 CRM_Utils_JSON
::output($mailings);