summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAndreas Gohr <andi@splitbrain.org>2011-06-03 13:34:44 +0200
committerAndreas Gohr <andi@splitbrain.org>2011-06-03 13:34:44 +0200
commite91ea5c1942bfc6533e12375b8140ce774c7d8ca (patch)
tree0cf8660a2bea1810c68dc1ff0e3b03d7180d428f /lib
parent40c1e7780b08ffe4a60ab7fc4cb2991ab7153a23 (diff)
downloadrpg-e91ea5c1942bfc6533e12375b8140ce774c7d8ca.tar.gz
rpg-e91ea5c1942bfc6533e12375b8140ce774c7d8ca.tar.bz2
Fixed quick search
This was broken by the JQuery port. This patch makes the page search work again and also removes the anonymous wrapper function around ajax_quicksearch again.
Diffstat (limited to 'lib')
-rw-r--r--lib/scripts/ajax.js87
1 files changed, 49 insertions, 38 deletions
diff --git a/lib/scripts/ajax.js b/lib/scripts/ajax.js
index aa083978c..19d4b86a6 100644
--- a/lib/scripts/ajax.js
+++ b/lib/scripts/ajax.js
@@ -7,43 +7,45 @@
* @author Michal Rezler <m.rezler@centrum.cz>
*/
- (function ($) {
- var init, clear_results, onCompletion;
-
- var ajax_quicksearch = {
- inObj: null,
- outObj: null,
- delay: null,
- };
-
- init = function(inID, outID) {
-
- ajax_quicksearch.inObj = $(inID);
- ajax_quicksearch.outObj = $(outID);
+var ajax_quicksearch = {
+
+ inObj: null, // jquery object
+ outObj: null, // jquery object
+ delay: null,
+
+ /**
+ * initialize the quick search
+ *
+ * Attaches the event handlers
+ *
+ * @param input element (JQuery selector/DOM obj)
+ * @param output element (JQuery selector/DOM obj)
+ */
+ init: function(input, output) {
+ ajax_quicksearch.inObj = jQuery(input);
+ ajax_quicksearch.outObj = jQuery(output);
// objects found?
- if (ajax_quicksearch.inObj === null) return;
- if (ajax_quicksearch.outObj === null) return;
+ if (ajax_quicksearch.inObj === []) return;
+ if (ajax_quicksearch.outObj === []) return;
// attach eventhandler to search field
ajax_quicksearch.delay = new Delay(function () {
ajax_quicksearch.clear_results();
- var value = ajax_quicksearch.inObj.value;
+ var value = ajax_quicksearch.inObj.val();
if(value === ''){ return; }
- $.post(
+ jQuery.post(
DOKU_BASE + 'lib/exe/ajax.php',
{
call: 'qsearch',
q: encodeURI(value)
},
- function (data) {
- onCompletion(data);
- },
+ ajax_quicksearch.onCompletion,
'html'
);
});
- $(ajax_quicksearch.inObj).keyup(
+ ajax_quicksearch.inObj.keyup(
function() {
ajax_quicksearch.clear_results();
ajax_quicksearch.delay.start();
@@ -51,34 +53,43 @@
);
// attach eventhandler to output field
- $(ajax_quicksearch.outObj).click(
- function() {
- ajax_quicksearch.outObj.hide();
- }
+ ajax_quicksearch.outObj.click(
+ ajax_quicksearch.outObj.hide
);
- };
+ },
- clear_results = function(){
+ /**
+ * Empty and hide the output div
+ */
+ clear_results: function(){
ajax_quicksearch.outObj.hide();
ajax_quicksearch.outObj.text('');
- };
-
- onCompletion = function(data) {
+ },
+
+ /**
+ * Callback. Reformat and display the results.
+ *
+ * Namespaces are shortened here to keep the results from overflowing
+ * or wrapping
+ *
+ * @param data The result HTML
+ */
+ onCompletion: function(data) {
if (data === '') { return; }
var outObj = ajax_quicksearch.outObj;
- outObj.text(data);
+ outObj.html(data);
outObj.show();
outObj.css('white-space', 'nowrap');
// shorten namespaces if too long
var width = outObj.clientWidth;
- var links = $('ajax_quicksearch outObj a');
+ var links = outObj.find('a');
for (var i=0; i<links.length; i++) {
- var content = links[i].text();
+ var content = links[i].text;
// maximum allowed width:
var max = width - links[i].offsetLeft;
@@ -121,10 +132,10 @@
nsR = content.indexOf(')');
}
}
- };
+ }
+};
- $(function () {
- init('qsearch__in','qsearch__out');
- });
+jQuery(function () {
+ ajax_quicksearch.init('#qsearch__in','#qsearch__out');
+});
-}(jQuery));