X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FCore%2FResources.php;h=c9ead5ed52e3a5fdb2528a15e64d4df985b53783;hb=fb9daa750a6af814e0d66e292cc0ce35de305e20;hp=8ef8f8778a6bf36d42db2338a46f745f34f54bbe;hpb=ed0d980a1603209bcb6cfd5ac308a9d96db7e70b;p=civicrm-core.git diff --git a/CRM/Core/Resources.php b/CRM/Core/Resources.php index 8ef8f8778a..c9ead5ed52 100644 --- a/CRM/Core/Resources.php +++ b/CRM/Core/Resources.php @@ -428,31 +428,20 @@ class CRM_Core_Resources { $this->addedCoreResources[$region] = TRUE; $config = CRM_Core_Config::singleton(); - // Add resources from jquery.files.tpl - $files = self::parseTemplate('CRM/common/jquery.files.tpl'); + // Add resources from coreResourceList + $files = $this->coreResourceList(); $jsWeight = -9999; - foreach ($files as $file => $type) { - if ($type == 'js') { + foreach ($files as $file) { + if (substr($file, -2) == 'js') { // Don't bother looking for ts() calls in packages, there aren't any $translate = (substr($file, 0, 9) != 'packages/'); $this->addScriptFile('civicrm', $file, $jsWeight++, $region, $translate); } - elseif ($type == 'css') { + else { $this->addStyleFile('civicrm', $file, -100, $region); } } - // Add localized calendar js - // Search for i18n file in order of specificity (try fr-CA, then fr) - list($lang) = explode('_', $config->lcMessages); - foreach (array(str_replace('_', '-', $config->lcMessages), $lang) as $language) { - $localizationFile = "packages/jquery/jquery-ui-1.9.0/development-bundle/ui/i18n/jquery.ui.datepicker-{$language}.js"; - if ($this->getPath('civicrm', $localizationFile)) { - $this->addScriptFile('civicrm', $localizationFile, $jsWeight++, $region, FALSE); - break; - } - } - // Initialize CRM.url and CRM.formatMoney $url = CRM_Utils_System::url('civicrm/example', 'placeholder', FALSE, NULL, FALSE); $js = "CRM.url('init', '$url');\n"; @@ -534,20 +523,70 @@ class CRM_Core_Resources { } /** - * Read resource files from a template + * List of core resources we add to every CiviCRM page * - * @param $tpl (str) template file name - * @return array: filename => filetype + * @return array */ - static function parseTemplate($tpl) { - $items = array(); - $template = CRM_Core_Smarty::singleton(); - $buffer = $template->fetch($tpl); - $lines = preg_split('/\s+/', $buffer); - foreach ($lines as $line) { - $line = trim($line); - if ($line) { - $items[$line] = substr($line, 1 + strrpos($line, '.')); + public function coreResourceList() { + $config = CRM_Core_Config::singleton(); + // Use minified files for production, uncompressed in debug mode + $min = $config->debug ? '' : '.min'; + + $items = array( + "packages/jquery/jquery-1.10.2.min.js", + "packages/jquery/jquery-migrate-1.2.1.js", + "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", + + "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/css/demo_table_jui.css", + "packages/jquery/plugins/DataTables/media/js/jquery.dataTables$min.js", + + "packages/jquery/plugins/jquery.FormNavigate$min.js", + + "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", + "js/jquery/jquery.crmasmselect.js", + ); + + // 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) + list($lang) = explode('_', $config->lcMessages); + $path = "packages/jquery/jquery-ui/development-bundle/ui/" . ($min ? 'minified/' : '') . "i18n"; + foreach (array(str_replace('_', '-', $config->lcMessages), $lang) as $language) { + $localizationFile = "$path/jquery.ui.datepicker-{$language}{$min}.js"; + if ($this->getPath('civicrm', $localizationFile)) { + $items[] = $localizationFile; + break; + } } } return $items;