Merge pull request #15843 from totten/master-simplehead
[civicrm-core.git] / CRM / Case / Form / Task.php
index ee7644925b3ef115eec3b5166773255045f7fbb5..917b59ab584bd3a19dbcfcd838c5a150eef75fec 100644 (file)
@@ -1,33 +1,17 @@
 <?php
 /*
  +--------------------------------------------------------------------+
- | CiviCRM version 5                                                  |
- +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2019                                |
- +--------------------------------------------------------------------+
- | This file is a part of CiviCRM.                                    |
- |                                                                    |
- | CiviCRM is free software; you can copy, modify, and distribute it  |
- | under the terms of the GNU Affero General Public License           |
- | Version 3, 19 November 2007 and the CiviCRM Licensing Exception.   |
- |                                                                    |
- | CiviCRM is distributed in the hope that it will be useful, but     |
- | WITHOUT ANY WARRANTY; without even the implied warranty of         |
- | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.               |
- | See the GNU Affero General Public License for more details.        |
+ | Copyright CiviCRM LLC. All rights reserved.                        |
  |                                                                    |
- | You should have received a copy of the GNU Affero General Public   |
- | License and the CiviCRM Licensing Exception along                  |
- | with this program; if not, contact CiviCRM LLC                     |
- | at info[AT]civicrm[DOT]org. If you have questions about the        |
- | GNU Affero General Public License or the licensing of CiviCRM,     |
- | see the CiviCRM license FAQ at http://civicrm.org/licensing        |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
  +--------------------------------------------------------------------+
  */
 
 /**
  * @package CRM
- * @copyright CiviCRM LLC (c) 2004-2019
+ * @copyright CiviCRM LLC https://civicrm.org/licensing
  */
 
 /**
  */
 class CRM_Case_Form_Task extends CRM_Core_Form_Task {
 
-  // Must be set to entity table name (eg. civicrm_participant) by child class
-  static $tableName = 'civicrm_case';
-  // Must be set to entity shortname (eg. event)
-  static $entityShortname = 'case';
+  /**
+   * Must be set to entity table name (eg. civicrm_participant) by child class
+   * @var string
+   */
+  public static $tableName = 'civicrm_case';
+  /**
+   * Must be set to entity shortname (eg. event)
+   * @var string
+   */
+  public static $entityShortname = 'case';
 
   /**
    * @inheritDoc
    */
   public function setContactIDs() {
-    $this->_contactIds = CRM_Core_DAO::getContactIDsFromComponent($this->_entityIds,
+    // @todo Parameters shouldn't be needed and should be class member
+    // variables instead, set appropriately by each subclass.
+    $this->_contactIds = $this->getContactIDsFromComponent($this->_entityIds,
       'civicrm_case_contact', 'case_id'
     );
   }
@@ -58,4 +50,22 @@ class CRM_Case_Form_Task extends CRM_Core_Form_Task {
     return CRM_Contact_BAO_Query::MODE_CASE;
   }
 
+  /**
+   * Override of CRM_Core_Form_Task::orderBy()
+   *
+   * @return string
+   */
+  public function orderBy() {
+    if (empty($this->_entityIds)) {
+      return '';
+    }
+    $order_array = [];
+    foreach ($this->_entityIds as $item) {
+      // Ordering by conditional in mysql. This evaluates to 0 or 1, so we
+      // need to order DESC to get the '1'.
+      $order_array[] = 'case_id = ' . CRM_Core_DAO::escapeString($item) . ' DESC';
+    }
+    return 'ORDER BY ' . implode(',', $order_array);
+  }
+
 }