From 634a9e9937b8d8e332744f9f7a97a6d00c31ca53 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Thu, 23 Jan 2014 23:17:45 -0800 Subject: [PATCH] CRM-12872 - Search js - fix searchBuilder to work with new ajax --- templates/CRM/Contact/Form/Search/Builder.js | 44 +++++++++++--------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/templates/CRM/Contact/Form/Search/Builder.js b/templates/CRM/Contact/Form/Search/Builder.js index 5f641ce0d9..8319feca54 100644 --- a/templates/CRM/Contact/Form/Search/Builder.js +++ b/templates/CRM/Contact/Form/Search/Builder.js @@ -171,30 +171,32 @@ // Initialize display: Hide empty blocks & fields var newBlock = CRM.searchBuilder && CRM.searchBuilder.newBlock || 0; - $('.crm-search-block', '#Builder').each(function(blockNo) { - var block = $(this); - var empty = blockNo + 1 > newBlock; - var skippedRow = false; - $('tr:not(.crm-search-builder-add-row)', block).each(function(rowNo) { - var row = $(this); - if ($('select:first', row).val() === '') { - if (!skippedRow && (rowNo == 0 || blockNo + 1 == newBlock)) { - skippedRow = true; + function initialize() { + $('.crm-search-block', '#Builder').each(function(blockNo) { + var block = $(this); + var empty = blockNo + 1 > newBlock; + var skippedRow = false; + $('tr:not(.crm-search-builder-add-row)', block).each(function(rowNo) { + var row = $(this); + if ($('select:first', row).val() === '') { + if (!skippedRow && (rowNo == 0 || blockNo + 1 == newBlock)) { + skippedRow = true; + } + else { + row.hide(); + } } else { - row.hide(); + empty = false; } - } - else { - empty = false; + }); + if (empty) { + block.hide(); } }); - if (empty) { - block.hide(); - } - }); + } - $('#Builder') + $('#crm-main-content-wrapper') // Reset and hide row .on('click', '.crm-reset-builder-row', function() { var row = $(this).closest('tr'); @@ -235,9 +237,13 @@ } $(this).siblings('input').val(value); }) - ; + .on('crmLoad', function() { + initialize(); + $('select[id^=mapper][id$="_1"]', '#Builder').each(handleUserInputField); + }); $().crmAccordions(); + initialize(); // Fetch initial options during page refresh - it's more efficient to bundle them in a single ajax request var initialFields = {}, fetchFields = false; -- 2.25.1