Ajax Article autosuggest
// =====================================================
// Email / Chat / Question - Related Article Suggestion
// =====================================================
if (currentPage == 'email_new' || currentPage == 'question_new' || currentPage == 'email_pre_create' || currentPage == 'chat_new') {
//MODAL/POPUP
//SKIP PRECREATE SITE WIDE?
if (SkipPreCreate == 'true') {
$('#new_email').attr('action','/customer/portal/emails');
$('#new_chat').attr('action','/customer/portal/chats');
$('#new_question').attr('action','/customer/portal/questions');
};
$(function() {
$('#email_subject, #email_body, #chat_subject, #qna_subject, #qna_body, #qna_kb_topic_id').on('keyup change paste',function() {
if ($('#email_subject, #email_body, #chat_subject, #qna_subject, #qna_body, #qna_kb_topic_id').val().length > 3 && $('#email_subject, #email_body, #chat_subject, #qna_subject, #qna_body, #qna_kb_topic_id ').val().length <= 250) {
clearTimeout(window.timer);
window.timer=setTimeout(function(){ // setting the delay for each keypress
if (MBArticleSuggest == 'true') {
articleSuggestMultiBrand();
} else {
articleSuggest();
}
}, 500);
}
});
});
//-- MULTIBRAND ARTICLE SUGGEST
articleSuggestMultiBrand = function() {
$('#site-brands > div').each( function(i,e) {
systemLanguageDesk = $('#system_language').html();
resultsFound = $('#results_mobile').html();
brandID = e.id;
brandName = e.textContent;
as_count = 0;
if (currentPage == 'email_new') {
search_query = $('#email_subject').val() + ' ' + $('#email_body').val();
}
if (currentPage == 'question_new') {
search_query = $('#qna_subject').val() + ' ' + $('#qna_body').val() + ' ' + $("#qna_kb_topic_id option:selected").text();
}
if (currentPage == 'chat_new') {
search_query = $('#chat_subject').val();
}
$.ajax({
url: '//' + document.domain.toString() + '/customer/' + systemLanguageDesk + '/portal/articles/autocomplete?b_id=' + brandID + '&term=' + search_query,
brandID: brandID,
brandName: brandName,
dataType: 'json',
success: function(data) {
apiSuccess(data, this.brandID, this.brandName);
function apiSuccess(data, brandID, brandName) {
$('.autosuggest.multi-brand div#brand-' + brandID).remove();
auto_suggest_content = "";
auto_suggest = "";
system_snippet_do_these_help = $('#system-snippets-do_these_help').text() || 'Do these help?';
$('#common h2').html(system_snippet_do_these_help);
$('#common h4').hide();
as_count = 0;
$.each(data, function() {
var html = $(this.label);
article_title = html.find(".article-autocomplete-subject").html();
if(as_count == 3 ) {
auto_suggest += '<div class="collapse" id="collapse-' + brandID + '"><li class="hidden"></li>';
}
if (this.id.indexOf("questions") !== -1) {
auto_suggest += '<li><a target="_blank" href="' + this.id + '" class="discussion"><i class="fa fa-question"></i><span>' + article_title + '</span></a></li>';
} else {
auto_suggest += '<li><a target="_blank" href="' + this.id + '" class="article"><i class="fa fa-file-text-o"></i><span>' + article_title + '</span></a></li>';
}
as_count++;
});
if (as_count > 0) {
if (as_count > 9) {
$('.autosuggest.multi-brand').append('<div id="brand-' + brandID + '"><h4 class="muted"><span>' + as_count + ' + </span>' + resultsFound + ' in ' + brandName + '</h4><ul class="unstyled"></ul>');
} else {
$('.autosuggest.multi-brand').append('<div id="brand-' + brandID + '"><h4 class="muted"><span>' + as_count + ' </span>' + resultsFound + ' in ' + brandName + '</h4><ul class="unstyled"></ul>');
}
if (as_count > 0) {
$('.autosuggest.multi-brand div#brand-' + brandID + ' ul').append(auto_suggest);
if (as_count > 9) {
$('.autosuggest.multi-brand div#brand-' + brandID + ' ul div').append('<a class="btn btn-submit" target="_blank" href="//' + document.domain.toString() + '/customer/' + systemLanguageDesk + '/portal/articles/search?b_id=' + brandID + '&q=' + search_query + '&displayMode=BrandOnly">View All</a>');
}
$('.autosuggest.multi-brand div#brand-' + brandID + ' ul div').append('</div>');
if(as_count > 3) {
$('.autosuggest.multi-brand div#brand-' + brandID + ' ul').append('<button class="btn btn-submit coltrig">More</button>');
}
} // IF SUGGESTIONS
as_count = 0;
}
} // FUNCTION API SUCCESS
} // SUCCESS
}); // AJAX REQUEST
});// FOR EACH BRAND
} // ARTICLE SUGGESTION MULTIBRAND
//-- REGULAR ARTICLE SUGGEST
articleSuggest = function() {
as_count = 0;
if (currentPage == 'email_new') {
search_query = $('#email_subject').val() + ' ' + $('#email_body').val();
}
if (currentPage == 'question_new') {
search_query = $('#qna_subject').val() + ' ' + $('#qna_body').val() + ' ' + $("#qna_kb_topic_id option:selected").text();
}
if (currentPage == 'chat_new') {
search_query = $('#chat_subject').val();
}
var systemLanguageDesk = $('#system_language').html();
var brandID = $('#brand_id').text();
if (brandID == "/" || brandID == "") {
$.ajax({
url: '//' + document.domain.toString() + '/customer/' + systemLanguageDesk + '/portal/articles/autocomplete?term=' + search_query,
dataType: 'json'
}).done(apiSuccess).fail(apiFail);
} else {
$.ajax({
url: '//' + document.domain.toString() + '/customer/' + systemLanguageDesk + '/portal/articles/autocomplete?term=' + search_query + '&b_id=' + brandID,
dataType: 'json'
}).done(apiSuccess).fail(apiFail);
}
}
//RESULTS
apiSuccess = function(data) {
auto_suggest_content = "";
auto_suggest_articles = "";
auto_suggest_questions = "";
var system_snippet_do_these_help = $('#system-snippets-do_these_help').text() || 'Do these help?';
$('.autosuggest').html('<h2 class="muted">' + system_snippet_do_these_help + '</h4><ul class="unstyled"></ul>');
$.each(data, function() {
var html = $(this.label);
article_title = html.find(".article-autocomplete-subject").html();
if (this.id.indexOf("questions") !== -1) {
auto_suggest_questions += '<li><a target="_blank" href="' + this.id + '" class="discussion"><span>' + article_title + '</span><i class="fa fa-angle-right"></i></a></li>';
} else {
auto_suggest_articles += '<li><a target="_blank" href="' + this.id + '" class="article"><span>' + article_title + '</span><i class="fa fa-angle-right"></i></a></li>';
}
as_count++;
});
if (as_count > 0) {
$('.autosuggest ul').append(auto_suggest_articles + auto_suggest_questions);
$("#common").hide();
$(".autosuggest").removeClass('hide');
} else {
$(".autosuggest").addClass('hide');
$("#common").show();
}
};
//NO RESULTS
apiFail = function(data) {}
//AJAX COMPLETE?
$(document).ajaxComplete(function() {
$('.coltrig').click(function() {
$(this).prevAll('div.collapse').collapse();
$(this).hide();
});
});
}