From 8fccc8a2b539c0c020030c15201e5e5dbe2e9d74 Mon Sep 17 00:00:00 2001 From: Seamus Lee Date: Mon, 8 Feb 2021 21:00:59 +1100 Subject: [PATCH] Expose mapping search task to Search Kit Fix OSM Javascript to work on Search Kit display --- CRM/Contact/Form/Task.php | 2 +- CRM/Contact/Task.php | 2 ++ .../CRM/Contact/Form/Task/Map/OpenStreetMaps.tpl | 11 ++++++----- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/CRM/Contact/Form/Task.php b/CRM/Contact/Form/Task.php index 6dd27e02479e..67b7f2be125f 100644 --- a/CRM/Contact/Form/Task.php +++ b/CRM/Contact/Form/Task.php @@ -86,7 +86,7 @@ public static function preProcessCommon(&$form) { $form->_contactIds = []; $form->_contactTypes = []; - $isStandAlone = in_array('task', $form->urlPath) || in_array('standalone', $form->urlPath); + $isStandAlone = in_array('task', $form->urlPath) || in_array('standalone', $form->urlPath) || in_array('map', $form->urlPath); if ($isStandAlone) { [$form->_task, $title] = CRM_Contact_Task::getTaskAndTitleByClass(get_class($form)); if (!array_key_exists($form->_task, CRM_Contact_Task::permissionedTaskTitles(CRM_Core_Permission::getPermission()))) { diff --git a/CRM/Contact/Task.php b/CRM/Contact/Task.php index 4c3ac29c81c0..3597e319c991 100644 --- a/CRM/Contact/Task.php +++ b/CRM/Contact/Task.php @@ -228,6 +228,8 @@ public static function tasks() { 'title' => ts('Map contacts'), 'class' => 'CRM_Contact_Form_Task_Map', 'result' => FALSE, + 'url' => 'civicrm/contact/map', + 'icon' => 'fa-map', ); } diff --git a/templates/CRM/Contact/Form/Task/Map/OpenStreetMaps.tpl b/templates/CRM/Contact/Form/Task/Map/OpenStreetMaps.tpl index 6fd10e2c9734..d2fed321438d 100644 --- a/templates/CRM/Contact/Form/Task/Map/OpenStreetMaps.tpl +++ b/templates/CRM/Contact/Form/Task/Map/OpenStreetMaps.tpl @@ -153,11 +153,12 @@ popup.create(evt); } - if (window.addEventListener) { - window.addEventListener("load", initMap, false); - } else if (window.attachEvent) { - document.attachEvent("onreadystatechange", initMap); - } + var checkExist = setInterval(function() { + if (typeof OpenLayers !== 'undefined') { + clearInterval(checkExist); + initMap(); + } + }, 100); // check every 100ms function gpopUp() { var from = document.getElementById('from').value;