X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/699231ae09f7057a4d0000cdf32e50a3df6a04ca..ebf9bbbbf2dbd59c653bbec4ed90d2947a95b9e7:/wp-admin/js/nav-menu.dev.js diff --git a/wp-admin/js/nav-menu.dev.js b/wp-admin/js/nav-menu.dev.js index 2df0a8d3..d58d6b27 100644 --- a/wp-admin/js/nav-menu.dev.js +++ b/wp-admin/js/nav-menu.dev.js @@ -890,22 +890,25 @@ var wpNavMenu; * @param jQuery panel The tabs panel we're searching in. */ processQuickSearchQueryResponse : function(resp, req, panel) { - var i, matched, newID, + var matched, newID, takenIDs = {}, form = document.getElementById('nav-menu-meta'), pattern = new RegExp('menu-item\\[(\[^\\]\]*)', 'g'), - items = resp.match(/
  • .*<\/li>/g); + $items = $('
    ').html(resp).find('li'), + $item; - if( ! items ) { + if( ! $items.length ) { $('.categorychecklist', panel).html( '
  • ' + navMenuL10n.noResultsFound + '

  • ' ); $('img.waiting', panel).hide(); return; } - i = items.length; - while( i-- ) { + $items.each(function(){ + $item = $(this); + // make a unique DB ID number - matched = pattern.exec(items[i]); + matched = pattern.exec($item.html()); + if ( matched && matched[1] ) { newID = matched[1]; while( form.elements['menu-item[' + newID + '][menu-item-type]'] || takenIDs[ newID ] ) { @@ -914,12 +917,15 @@ var wpNavMenu; takenIDs[newID] = true; if ( newID != matched[1] ) { - items[i] = items[i].replace(new RegExp('menu-item\\[' + matched[1] + '\\]', 'g'), 'menu-item[' + newID + ']'); + $item.html( $item.html().replace(new RegExp( + 'menu-item\\[' + matched[1] + '\\]', 'g'), + 'menu-item[' + newID + ']' + ) ); } } - } + }); - $('.categorychecklist', panel).html( items.join('') ); + $('.categorychecklist', panel).html( $items ); $('img.waiting', panel).hide(); },