Files
roi-theme/wp-content/plugins/ajax-search-pro/backend/settings/assets/option_search.js
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 21:04:30 -06:00

140 lines
4.1 KiB
JavaScript
Executable File

(function ($) {
/**
* Contains pseudo selector, case insensitive
*/
jQuery.expr[':'].Contains = function(a, i, m) {
return jQuery(a).text().toUpperCase()
.indexOf(m[3].toUpperCase()) >= 0;
};
var matches = [];
function os_fetch_results( phrase ) {
clean_phrase = phrase.replace(/,|\.|\!|\?/gi);
var parts = clean_phrase.split(" ");
var contains = "";
exact_matches = [];
matches = [];
for (var i=0; i<parts.length; i++) {
contains = contains + ":Contains(" + parts[i] + ")";
}
matches = $("#wpdreams fieldset .item" + contains).slice(0, 10);
}
function os_group_results() {
grouped_res = {};
for (var i=0; i<matches.length; i++) {
var this_group = "";
var tabid = 0;
var _breaker = 0;
$parent = $(matches[i]).parent();
while (!$parent.hasClass("wpdreams-box")) {
if (_breaker > 500) break;
if ( typeof $parent.attr("tabid") != "undefined" ) {
if (this_group == "")
this_group = $("ul li a[tabid=" + $parent.attr("tabid") + "]").text();
else
this_group = $("ul li a[tabid=" + $parent.attr("tabid") + "]").text() + " >> " + this_group;
}
if (typeof $parent.attr('tabid') != "undefined" && tabid == 0)
tabid = $parent.attr('tabid');
$parent = $parent.parent();
_breaker++;
}
this_group = this_group == "" ? "ungrouped" : this_group;
if (
$( "label", $(matches[i])).length > 0 ||
$( "fieldset legend", $(matches[i]) ).length > 0
) {
if ( typeof grouped_res[this_group] == "undefined" )
grouped_res[this_group] = [];
if ( $( "fieldset legend", $(matches[i]) ).length > 0 )
var title = $( $( "fieldset legend", $(matches[i])).get(0) ).text();
else
var title = $( $( "label", $(matches[i]) ).get(0) ).text();
grouped_res[this_group].push({
"title": title,
"tabid": tabid,
"group": this_group,
"node": i
});
}
}
}
function os_show_results() {
var remaining = 10;
var resHTML = "";
if ( Object.keys(grouped_res).length > 0) {
$.each(grouped_res, function (k, v) {
resHTML += "<label>" + k + "</label>";
for (var i = 0; i < v.length; i++) {
resHTML += "<p><a class='asp-os-res' xnode='" + v[i].node + "' tabid='" + v[i].tabid + "' href='#" + v[i].tabid + "'>" + v[i].title + "</a></p>";
}
});
} else {
resHTML = "<label>No results.</label>";
}
$("#asp-os-results").html(resHTML);
}
function os_clear_results() {
$("#asp-os-results").html("");
}
/**
* Very simple main logic
*/
var t = null;
$('#asp-os-input').on('keyup', function(){
$this = $(this);
clearTimeout(t);
t = setTimeout(function(){
var phrase = $this.val().trim();
if (phrase.length > 0) {
var res = os_fetch_results( phrase );
os_group_results()
os_show_results();
} else {
os_clear_results();
}
}, 50)
});
$("#asp-os-results").on("click", "a.asp-os-res", function(){
var tabid = $(this).attr("tabid");
$('.tabs a[tabid=' + Math.floor( tabid / 100 ) + ']').trigger('click');
$('.tabs a[tabid=' + tabid + ']').trigger('click');
$('.asp-os-highlighted').removeClass("asp-os-highlighted");
$(matches[$(this).attr("xnode")]).addClass("asp-os-highlighted");
});
$("#wpdreams").on("click mouseleave", ".asp-os-highlighted", function(){
$(this).removeClass("asp-os-highlighted");
});
})(jQuery);