Re-fix enotice on searchType to work with default modifiers
authorEileen McNaughton <emcnaughton@wikimedia.org>
Tue, 11 Jan 2022 00:40:14 +0000 (13:40 +1300)
committerEileen McNaughton <emcnaughton@wikimedia.org>
Mon, 17 Jan 2022 21:45:46 +0000 (10:45 +1300)
Use a value that we ensure we assign

CRM/Contact/Form/Task.php
CRM/Contact/Form/Task/EmailTrait.php
CRM/Core/Form/Task.php
templates/CRM/Contact/Form/Task.tpl
tests/phpunit/CRM/Case/Form/EmailTest.php

index ae579b7d638a6b891e24fdfbb58ab45be0874d61..134379f81c29292d56496013cf70db21d5559c6c 100644 (file)
@@ -130,6 +130,8 @@ class CRM_Contact_Form_Task extends CRM_Core_Form_Task {
 
     $form->_task = self::$_searchFormValues['task'] ?? NULL;
 
+    $isSelectedContacts = (self::$_searchFormValues['radio_ts'] ?? NULL) === 'ts_sel';
+    $form->assign('isSelectedContacts', $isSelectedContacts);
     // all contacts or action = save a search
     if ((CRM_Utils_Array::value('radio_ts', self::$_searchFormValues) == 'ts_all') ||
       ($form->_task == CRM_Contact_Task::SAVE_SEARCH)
@@ -152,7 +154,7 @@ class CRM_Contact_Form_Task extends CRM_Core_Form_Task {
         }
       }
     }
-    elseif (CRM_Utils_Array::value('radio_ts', self::$_searchFormValues) == 'ts_sel') {
+    elseif ($isSelectedContacts) {
       // selected contacts only
       // need to perform action on only selected contacts
       $insertString = [];
@@ -199,13 +201,11 @@ class CRM_Contact_Form_Task extends CRM_Core_Form_Task {
       }
     }
 
-    if (CRM_Utils_Array::value('radio_ts', self::$_searchFormValues) == 'ts_sel'
+    if ($isSelectedContacts
       && ($form->_action != CRM_Core_Action::COPY)
     ) {
-      $sel = self::$_searchFormValues['radio_ts'] ?? NULL;
-      $form->assign('searchtype', $sel);
       $result = self::getSelectedContactNames();
-      $form->assign("value", $result);
+      $form->assign('value', $result);
     }
 
     if (!empty($form->_contactIds)) {
index b62a8c516329c8bdfdb76e3360f8d5b8b6acbd4f..1727bbd9272a66b37c2861f0859e93311a743172 100644 (file)
@@ -123,6 +123,10 @@ trait CRM_Contact_Form_Task_EmailTrait {
       // Currently only the contact email form is callable outside search context.
       parent::preProcess();
     }
+    else {
+      // E-notice prevention in Task.tpl
+      $this->assign('isSelectedContacts', FALSE);
+    }
     $this->setContactIDs();
     $this->assign('single', $this->_single);
     $this->assign('isAdmin', CRM_Core_Permission::check('administer CiviCRM'));
index 3c134e608cc1fc27eb1c3b59870dca686c1abe9f..1526eda1fa5b317edd68b607affb1237ef9b9b9a 100644 (file)
@@ -156,9 +156,10 @@ abstract class CRM_Core_Form_Task extends CRM_Core_Form {
     $searchFormValues = $form->getSearchFormValues();
 
     $form->_task = $searchFormValues['task'];
-
+    $isSelectedContacts = ($searchFormValues['radio_ts'] ?? NULL) === 'ts_sel';
+    $form->assign('isSelectedContacts', $isSelectedContacts);
     $entityIds = [];
-    if ($searchFormValues['radio_ts'] == 'ts_sel') {
+    if ($isSelectedContacts) {
       foreach ($searchFormValues as $name => $value) {
         if (substr($name, 0, CRM_Core_Form::CB_PREFIX_LEN) == CRM_Core_Form::CB_PREFIX) {
           $entityIds[] = substr($name, CRM_Core_Form::CB_PREFIX_LEN);
index ec171e0810e35304345be5fe9c024143a9bc1f73..80cdb64ade7b7a5dd44b06ba6dea2709cceacd99 100644 (file)
@@ -9,7 +9,7 @@
 *}
 {ts 1=$totalSelectedContacts}Number of selected contacts: %1{/ts}
 
-{if !empty($searchtype) && $searchtype eq 'ts_sel'}
+{if $isSelectedContacts}
 <div id="popupContainer">
   <div class="crm-block crm-form-block crm-search-form-block">
     <table id="selectedRecords-{if !empty($group)}{$group.id}{/if}" class="display crm-copy-fields crm-sortable">
@@ -32,7 +32,7 @@
 <a href="#" id="popup-button" title="{ts}View Selected Contacts{/ts}">{ts}View Selected Contacts{/ts}</a>
 {/if}
 
-{if !empty($searchtype) && $searchtype eq 'ts_sel'}
+{if $isSelectedContacts}
 {literal}
 <script type="text/javascript">
   CRM.$(function($) {
index 21207c03b136b99e665d674e51862202d7f39c7c..e101658975bad4674ceb53e05632f778ab69cc37 100644 (file)
@@ -5,7 +5,7 @@
  */
 class CRM_Case_Form_EmailTest extends CiviCaseTestCase {
 
-  public function testOpeningEmailForm() {
+  public function testOpeningEmailForm(): void {
     $clientId = $this->individualCreate();
     $caseObj = $this->createCase($clientId, $this->_loggedInUser);
 
@@ -24,8 +24,7 @@ class CRM_Case_Form_EmailTest extends CiviCaseTestCase {
     $item = CRM_Core_Invoke::getItem([$_GET['q']]);
     ob_start();
     CRM_Core_Invoke::runItem($item);
-    $contents = ob_get_contents();
-    ob_end_clean();
+    $contents = ob_get_clean();
 
     foreach ($parsed as $param => $dontcare) {
       unset($_REQUEST[$param]);
@@ -41,7 +40,7 @@ class CRM_Case_Form_EmailTest extends CiviCaseTestCase {
     $this->assertStringContainsString('CRM_Case_Form_Task_Email', $contents);
   }
 
-  public function testCaseTokenForRecipientAddedAfterOpeningForm() {
+  public function testCaseTokenForRecipientAddedAfterOpeningForm(): void {
     $clientId = $this->individualCreate();
     $caseObj = $this->createCase($clientId, $this->_loggedInUser);