bp_nouveau_search_messages_autocomplete_init_jsblock()
Output search message autocomplete init JS.
Description
Source
File: bp-templates/bp-nouveau/includes/search/functions.php
function bp_nouveau_search_messages_autocomplete_init_jsblock() {
?>
<script>
window.user_profiles = Array();
jQuery( document ).ready( function() {
var obj = jQuery( '.send-to-input' ).autocomplete( {
source: function( request, response ) {
jQuery( 'body' ).data( 'ac-item-p', 'even' );
var term = request.term;
if ( term in window.user_profiles ) {
response( window.user_profiles[term] );
return;
}
var data = {
'action': 'messages_autocomplete_results',
'search_term': request.term,
};
jQuery.ajax( {
url: ajaxurl + '?q=' + request.term + '&limit=10',
data: data,
success: function( data ) {
var new_data = Array();
d = data.split( '\n' );
jQuery.each( d, function( i, item ) {
new_data[new_data.length] = item;
} );
if ( data != '' ) {
response( new_data );
}
},
} );
},
minLength: 1,
select: function( event, ui ) {
sel_item = ui.item;
var d = String( sel_item.label ).split( ' (' );
var un = d[1].substr( 0, d[1].length - 1 );
//check if it already exists;
if ( 0 === jQuery( '.acfb-holder' ).find( '#un-' + un ).length ) {
var ln = '#link-' + un;
var l = jQuery( ln ).attr( 'href' );
var v = '<li class="selected-user friend-tab" id="un-' + un + '"><span><a href="' + l + '">' + d[0] + '</a></span> <span class="p">X</span></li>';
if ( jQuery( '.acfb-holder' ).find( '.friend-tab' ).length == 0 ) {
var x = jQuery( '.acfb-holder' ).prepend( v );
} else {
var x = jQuery( '.acfb-holder' ).find( '.friend-tab' ).last().after( v );
}
jQuery( this ).val( '' ); //clear username field after selecting username from autocomplete dropdown
jQuery( '#send-to-usernames' ).addClass( un );
}
return false;
},
focus: function( event, ui ) {
jQuery( '.ui-autocomplete li' ).removeClass( 'ui-state-hover' );
jQuery( '.ui-autocomplete' ).find( 'li:has(a.ui-state-focus)' ).addClass( 'ui-state-hover' );
return false;
},
} );
obj.data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
ul.addClass( 'ac_results' );
if ( jQuery( 'body' ).data( 'ac-item-p' ) == 'even' ) {
c = 'ac_event';
jQuery( 'body' ).data( 'ac-item-p', 'odd' );
} else {
c = 'ac_odd';
jQuery( 'body' ).data( 'ac-item-p', 'even' );
}
return jQuery( '<li class=\'' + c + '\'>' ).append( '<a>' + item.label + '</a>' ).appendTo( ul );
};
obj.data( 'ui-autocomplete' )._resizeMenu = function() {
var ul = this.menu.element;
ul.outerWidth( this.element.outerWidth() );
};
jQuery( document ).on( 'click', '.selected-user', function() {
jQuery( this ).remove();
} );
jQuery( '#send_message_form' ).submit( function() {
tosend = Array();
jQuery( '.acfb-holder' ).find( '.friend-tab' ).each( function( i, item ) {
un = jQuery( this ).attr( 'id' );
un = un.replace( 'un-', '' );
tosend[tosend.length] = un;
} );
document.getElementById( 'send-to-usernames' ).value = tosend.join( ' ' );
} );
} );
</script>
<?php
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 3.0.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.