Owen Leonard
a88b2b2670
Assets which are not theme-specific can now be placed in koha-tmpl/intranet-tmpl/lib. This patch moves jQuery assets referenced by doc-head-close.inc to this location and corrects the path in the include. To test, load any page in the staff client which uses jQuery and confirm that there are no JavaScript errors. Test keyboard shortcuts (Alt-r, Alt-u, Alt-q), Search to hold functionality, and search term highlighting to confirm that jQuery plugins are working correctly. Revision corrects some additional instances in help-top.inc and removes a redundant call to the highlight script in preferences.tt Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com> Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
53 lines
1.3 KiB
JavaScript
53 lines
1.3 KiB
JavaScript
/*
|
|
|
|
highlight v3
|
|
|
|
Highlights arbitrary terms.
|
|
|
|
<http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html>
|
|
|
|
MIT license.
|
|
|
|
Johann Burkard
|
|
<http://johannburkard.de>
|
|
<mailto:jb@eaio.com>
|
|
|
|
*/
|
|
|
|
jQuery.fn.highlight = function(pat) {
|
|
function innerHighlight(node, pat) {
|
|
var skip = 0;
|
|
if (node.nodeType == 3) {
|
|
var pos = node.data.toUpperCase().indexOf(pat);
|
|
if (pos >= 0) {
|
|
var spannode = document.createElement('span');
|
|
spannode.className = 'term';
|
|
var middlebit = node.splitText(pos);
|
|
var endbit = middlebit.splitText(pat.length);
|
|
var middleclone = middlebit.cloneNode(true);
|
|
spannode.appendChild(middleclone);
|
|
middlebit.parentNode.replaceChild(spannode, middlebit);
|
|
skip = 1;
|
|
}
|
|
}
|
|
else if (node.nodeType == 1 && node.childNodes && !/(script|style)/i.test(node.tagName)) {
|
|
for (var i = 0; i < node.childNodes.length; ++i) {
|
|
i += innerHighlight(node.childNodes[i], pat);
|
|
}
|
|
}
|
|
return skip;
|
|
}
|
|
return this.each(function() {
|
|
innerHighlight(this, pat.toUpperCase());
|
|
});
|
|
};
|
|
|
|
jQuery.fn.removeHighlight = function() {
|
|
return this.find("span.term").each(function() {
|
|
this.parentNode.firstChild.nodeName;
|
|
with (this.parentNode) {
|
|
replaceChild(this.firstChild, this);
|
|
normalize();
|
|
}
|
|
}).end();
|
|
};
|