Fixes for contact matching
[civicrm-core.git] / CRM / Contact / Page / DashBoard.php
index 55d48127df4e22893194136b4234d7522fa70fc1..4d6a935a8eaefa4d0c77703decd841c5c9542b9d 100644 (file)
@@ -36,32 +36,23 @@ class CRM_Contact_Page_DashBoard extends CRM_Core_Page {
       $this->assign('hookContentPlacement', $contentPlacement);
     }
 
-    $communityMessages = CRM_Core_CommunityMessages::create();
-    if ($communityMessages->isEnabled()) {
-      $message = $communityMessages->pick();
-      if ($message) {
-        $this->assign('communityMessages', $communityMessages->evalMarkup($message['markup']));
-      }
-    }
+    $this->assign('communityMessages', $this->getCommunityMessageOutput());
 
-    $loader = new Civi\Angular\AngularLoader();
+    $loader = Civi::service('angularjs.loader');
+    $loader->addModules('crmDashboard');
     $loader->setPageName('civicrm/dashboard');
 
     // For each dashlet that requires an angular directive, load the angular module which provides that directive
-    $modules = [];
     foreach (CRM_Core_BAO_Dashboard::getContactDashlets() as $dashlet) {
       if (!empty($dashlet['directive'])) {
         foreach ($loader->getAngular()->getModules() as $name => $module) {
           if (!empty($module['exports'][$dashlet['directive']])) {
-            $modules[] = $name;
+            $loader->addModules($name);
             continue;
           }
         }
       }
     }
-    $loader->setModules($modules);
-
-    $loader->load();
 
     return parent::run();
   }
@@ -98,4 +89,20 @@ class CRM_Contact_Page_DashBoard extends CRM_Core_Page {
     ];
   }
 
+  /**
+   * Get community message output.
+   *
+   * @return string
+   */
+  protected function getCommunityMessageOutput(): string {
+    $communityMessages = CRM_Core_CommunityMessages::create();
+    if ($communityMessages->isEnabled()) {
+      $message = $communityMessages->pick();
+      if ($message) {
+        return $communityMessages->evalMarkup($message['markup']);
+      }
+    }
+    return '';
+  }
+
 }