From: Coleman Watts Date: Wed, 5 Nov 2014 15:16:30 +0000 (-0500) Subject: CRM-15524 - Modify crm.searchForm.js to work as header script X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=72b77d6687263c2a5b70fd2c044d6631a433ce02;p=civicrm-core.git CRM-15524 - Modify crm.searchForm.js to work as header script --- diff --git a/js/crm.searchForm.js b/js/crm.searchForm.js index 4f8963be14..d759c6caf4 100644 --- a/js/crm.searchForm.js +++ b/js/crm.searchForm.js @@ -83,72 +83,81 @@ $('#crm-main-content-wrapper').crmSnippet({url: location}).crmSnippet('refresh'); } - // Handle user interactions with search results - $('#crm-container') - // When initially loading and reloading (paging) the results - .on('crmLoad', function(e) { - if ($(e.target).is('#crm-container') || $(e.target).is('#crm-main-content-wrapper')) { + /** + * When initially loading and reloading (paging) the results + */ + function initForm() { + clearTaskMenu(); + if (usesAjax()) { + selected = parseInt($('label[for*=ts_sel] span', form).text(), 10); + } else { + selected = countCheckboxes(); + displayCount(); + } + enableTaskMenu(); + } + + $(function() { + initForm(); + // Handle user interactions with search results + $('#crm-container') + // When toggling between "all records" and "selected records only" + .on('change', '[name=radio_ts]', function() { clearTaskMenu(); - if (usesAjax()) { - selected = parseInt($('label[for*=ts_sel] span', form).text(), 10); - } else { - selected = countCheckboxes(); - displayCount(); - } enableTaskMenu(); - } - }) - // When toggling between "all records" and "selected records only" - .on('change', '[name=radio_ts]', function() { - clearTaskMenu(); - enableTaskMenu(); - }) - .on('click', 'input[name=radio_ts][value=ts_all]', clearSelections) - // When making a selection - .on('click', 'input.select-row, input.select-rows, a.crm-selection-reset', function(event) { - var $el = $(this), - $form = $el.closest('form'), - single = $el.is('input.select-row'); - clearTaskMenu(); - $('input[name=radio_ts][value=ts_sel]', $form).prop('checked', true); - if (!usesAjax()) { - if (single) { - selected = countCheckboxes(); - } else { - selected = $el.is(':checked') ? $('input.select-row', $form).length : 0; - } - displayCount(); - enableTaskMenu(); - } else { - phoneHome(single, $el, event); - } - }) - // When selecting a task - .on('change', 'select#task', function() { - var $form = $(this).closest('form'), - $go = $('input.crm-search-go-button', $form); - if (1) { - $go.click(); - } - // The following code can load the task in a popup, however not all tasks function correctly with this - // So it's disabled pending a per-task opt-in mechanism - else { - var data = $form.serialize() + '&' + $go.attr('name') + '=' + $go.attr('value'); - var url = $form.attr('action'); - url += (url.indexOf('?') < 0 ? '?' : '&') + 'snippet=json'; + }) + .on('click', 'input[name=radio_ts][value=ts_all]', clearSelections) + // When making a selection + .on('click', 'input.select-row, input.select-rows, a.crm-selection-reset', function(event) { + var $el = $(this), + $form = $el.closest('form'), + single = $el.is('input.select-row'); clearTaskMenu(); - $.post(url, data, function(data) { - CRM.loadForm(data.userContext).on('crmFormSuccess', refresh); + $('input[name=radio_ts][value=ts_sel]', $form).prop('checked', true); + if (!usesAjax()) { + if (single) { + selected = countCheckboxes(); + } else { + selected = $el.is(':checked') ? $('input.select-row', $form).length : 0; + } + displayCount(); enableTaskMenu(); - }, 'json'); - } - }); + } else { + phoneHome(single, $el, event); + } + }) + // When selecting a task + .on('change', 'select#task', function() { + var $form = $(this).closest('form'), + $go = $('input.crm-search-go-button', $form); + if (1) { + $go.click(); + } + // The following code can load the task in a popup, however not all tasks function correctly with this + // So it's disabled pending a per-task opt-in mechanism + else { + var data = $form.serialize() + '&' + $go.attr('name') + '=' + $go.attr('value'); + var url = $form.attr('action'); + url += (url.indexOf('?') < 0 ? '?' : '&') + 'snippet=json'; + clearTaskMenu(); + $.post(url, data, function(data) { + CRM.loadForm(data.userContext).on('crmFormSuccess', refresh); + enableTaskMenu(); + }, 'json'); + } + }); - // Add a specialized version of livepage functionality - $('#crm-main-content-wrapper') - // Open action links in a popup - .off('.crmLivePage') - .on('click.crmLivePage', active, CRM.popup) - .on('crmPopupFormSuccess.crmLivePage', active, refresh); + // Add a specialized version of livepage functionality + $('#crm-main-content-wrapper') + .on('crmLoad', function(e) { + if ($(e.target).is(this)) { + initForm(); + } + }) + // Open action links in a popup + .off('.crmLivePage') + .on('click.crmLivePage', active, CRM.popup) + .on('crmPopupFormSuccess.crmLivePage', active, refresh); + }); })(CRM.$, CRM._);