$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";
}
/**
- * 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;