From 4968e732329d3b39bbcbbece73128fbae01156dd Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Thu, 13 Mar 2014 20:17:10 -0400 Subject: [PATCH] CoreResources - Segment js files by permission --- CRM/Core/Resources.php | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/CRM/Core/Resources.php b/CRM/Core/Resources.php index 033c97a012..bb4de4f8fa 100644 --- a/CRM/Core/Resources.php +++ b/CRM/Core/Resources.php @@ -560,9 +560,11 @@ class CRM_Core_Resources { // Use minified files for production, uncompressed in debug mode $min = $config->debug ? '' : '.min'; + // Scripts needed by everyone, everywhere + // FIXME: This is too long; list needs finer-grained segmentation $items = array( "packages/jquery/jquery-1.10.2$min.js", - "packages/jquery/jquery-migrate-1.2.1.js", + "packages/jquery/jquery-migrate-1.2.1.js", // TODO: Remove before 4.5 release "packages/jquery/jquery-ui/js/jquery-ui-1.10.3.custom$min.js", "packages/jquery/jquery-ui/css/black-tie/jquery-ui-1.10.3.custom$min.css", @@ -573,21 +575,16 @@ class CRM_Core_Resources { "packages/jquery/plugins/select2/select2.js", // No mini until release of select2 3.4.6 "packages/jquery/plugins/select2/select2.css", + // TODO: Remove before 4.5 release "packages/jquery/plugins/jquery.autocomplete.js", "packages/jquery/css/jquery.autocomplete.css", - "packages/jquery/plugins/jquery.menu$min.js", - "packages/jquery/css/menu.css", - "packages/jquery/plugins/jquery.tableHeader.js", "packages/jquery/plugins/jquery.textarearesizer.js", "packages/jquery/plugins/jquery.form$min.js", - "packages/jquery/plugins/jquery.tokeninput$min.js", - "packages/jquery/css/token-input-facebook.css", - "packages/jquery/plugins/jquery.timeentry$min.js", "packages/jquery/plugins/DataTables/media/js/jquery.dataTables$min.js", @@ -597,18 +594,24 @@ class CRM_Core_Resources { "packages/jquery/plugins/jquery.validate$min.js", "packages/jquery/plugins/jquery.ui.datepicker.validation.pack.js", - "packages/jquery/plugins/jquery.jeditable$min.js", - - "packages/jquery/plugins/jquery.blockUI$min.js", - - "packages/jquery/plugins/jquery.notify$min.js", - "js/rest.js", "js/Common.js", - - "js/jquery/jquery.crmeditable.js", ); + // These scripts are only needed by back-office users + if (CRM_Core_Permission::check('access CiviCRM')) { + $items[] = "packages/jquery/plugins/jquery.menu$min.js"; + $items[] = "packages/jquery/css/menu.css"; + $items[] = "packages/jquery/plugins/jquery.jeditable$min.js"; + $items[] = "packages/jquery/plugins/jquery.blockUI$min.js"; + $items[] = "packages/jquery/plugins/jquery.notify$min.js"; + $items[] = "js/jquery/jquery.crmeditable.js"; + + // TODO: tokeninput is deprecated in favor of select2 and will be removed soon + $items[] = "packages/jquery/plugins/jquery.tokeninput$min.js"; + $items[] = "packages/jquery/css/token-input-facebook.css"; + } + // Add localized jQuery UI files if ($config->lcMessages && $config->lcMessages != 'en_US') { // Search for i18n file in order of specificity (try fr-CA, then fr) -- 2.25.1