From 8d83b77c1b0cbd137800552af9811d147ebd6890 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Wed, 27 Aug 2014 23:06:34 +0100 Subject: [PATCH] CRM-15193 - Support front/back end modes in CRM.url --- CRM/Core/Resources.php | 1 + js/crm.ajax.js | 22 +++++++++++----------- templates/CRM/common/localization.js.tpl | 2 +- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/CRM/Core/Resources.php b/CRM/Core/Resources.php index 876284a388..e7bcf5046c 100644 --- a/CRM/Core/Resources.php +++ b/CRM/Core/Resources.php @@ -475,6 +475,7 @@ class CRM_Core_Resources { // Add global settings $settings = array('config' => array( 'ajaxPopupsEnabled' => $this->ajaxPopupsEnabled, + 'isFrontend' => $config->userFrameworkFrontend, )); // Disable profile creation if user lacks permission if (!CRM_Core_Permission::check('edit all contacts') && !CRM_Core_Permission::check('add contacts')) { diff --git a/js/crm.ajax.js b/js/crm.ajax.js index 2e3c1f81b9..0f1cad9242 100644 --- a/js/crm.ajax.js +++ b/js/crm.ajax.js @@ -5,24 +5,24 @@ */ (function($, CRM, undefined) { /** - * Almost like {crmURL} but on the client side - * eg: var url = CRM.url('civicrm/contact/view', {reset:1,cid:42}); - * or: $('a.my-link').crmURL(); + * @param string p - url + * @param string|object params + * @param string mode - optionally specify "front" or "back" */ - var tplURL = '/civicrm/example?placeholder'; - var urlInitted = false; - CRM.url = function (p, params) { + var tplURL; + CRM.url = function (p, params, mode) { if (p == "init") { - tplURL = params; - urlInitted = true; - return; + return tplURL = params; } - if (!urlInitted) { + if (!tplURL) { console && console.log && console.log('Warning: CRM.url called before initialization'); } + if (!mode) { + mode = CRM.config.isFrontend ? 'front' : 'back'; + } params = params || ''; var frag = p.split ('?'); - var url = tplURL.replace("civicrm/example", frag[0]); + var url = tplURL[mode].replace("civicrm/example", frag[0]); if (typeof(params) == 'string') { url = url.replace("placeholder", params); diff --git a/templates/CRM/common/localization.js.tpl b/templates/CRM/common/localization.js.tpl index 1edeffa6c8..e7f469c2a9 100644 --- a/templates/CRM/common/localization.js.tpl +++ b/templates/CRM/common/localization.js.tpl @@ -37,7 +37,7 @@ {rdelim} // Initialize CRM.url and CRM.formatMoney - CRM.url('init', '{crmURL p="civicrm/example" q="placeholder" h=0}'); + CRM.url('init', {ldelim}back: '{crmURL p="civicrm/example" q="placeholder" h=0 fb=1}', front: '{crmURL p="civicrm/example" q="placeholder" h=0 fe=1}'{rdelim}); CRM.formatMoney('init', {$moneyFormat}); // Localize select2 -- 2.25.1