APIv4 - Add Address::getCoordinates action
[civicrm-core.git] / CRM / Campaign / Form / Campaign.php
index d6e7e2e03c5991995240a5a5890bf989b471ddde..838405521b4f2e45f88c2a07d79506442805706a 100644 (file)
@@ -75,7 +75,7 @@ class CRM_Campaign_Form_Campaign extends CRM_Core_Form {
       $title = ts('Delete Campaign');
     }
     if ($title) {
-      CRM_Utils_System::setTitle($title);
+      $this->setTitle($title);
     }
 
     $session = CRM_Core_Session::singleton();
@@ -249,6 +249,8 @@ class CRM_Campaign_Form_Campaign extends CRM_Core_Form {
     ];
 
     $this->addButtons($buttons);
+
+    $this->addFormRule(['CRM_Campaign_Form_Campaign', 'formRule']);
   }
 
   /**
@@ -256,15 +258,18 @@ class CRM_Campaign_Form_Campaign extends CRM_Core_Form {
    * All local rules are added near the element
    *
    * @param $fields
-   * @param $files
-   * @param $errors
    *
    * @return bool|array
-   * @see valid_date
    */
-  public static function formRule($fields, $files, $errors) {
+  public static function formRule($fields) {
     $errors = [];
 
+    // Validate start/end date inputs
+    $validateDates = \CRM_Utils_Date::validateStartEndDatepickerInputs('start_date', $fields['start_date'], 'end_date', $fields['end_date']);
+    if ($validateDates !== TRUE) {
+      $errors[$validateDates['key']] = $validateDates['message'];
+    }
+
     return empty($errors) ? TRUE : $errors;
   }