diff options
author | Sem <sembrestels@riseup.net> | 2013-11-09 16:13:46 +0100 |
---|---|---|
committer | Sem <sembrestels@riseup.net> | 2013-11-09 16:13:46 +0100 |
commit | e2a2fbdccaf0f48878903f448428cab5852d0870 (patch) | |
tree | 9cbe6b74c8e2e191ec65fba78d7435af35506f82 /mod/dokuwiki/vendors/dokuwiki/lib/scripts/ajax.js | |
parent | 59448d8a9864573c05477a63a6dda404c455fdb6 (diff) | |
parent | b603da53e13005c67d05efac67b70023dfffc450 (diff) | |
download | elgg-e2a2fbdccaf0f48878903f448428cab5852d0870.tar.gz elgg-e2a2fbdccaf0f48878903f448428cab5852d0870.tar.bz2 |
Add 'mod/dokuwiki/' from commit 'b603da53e13005c67d05efac67b70023dfffc450'
git-subtree-dir: mod/dokuwiki
git-subtree-mainline: 59448d8a9864573c05477a63a6dda404c455fdb6
git-subtree-split: b603da53e13005c67d05efac67b70023dfffc450
Diffstat (limited to 'mod/dokuwiki/vendors/dokuwiki/lib/scripts/ajax.js')
-rw-r--r-- | mod/dokuwiki/vendors/dokuwiki/lib/scripts/ajax.js | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/mod/dokuwiki/vendors/dokuwiki/lib/scripts/ajax.js b/mod/dokuwiki/vendors/dokuwiki/lib/scripts/ajax.js new file mode 100644 index 000000000..a2a48a996 --- /dev/null +++ b/mod/dokuwiki/vendors/dokuwiki/lib/scripts/ajax.js @@ -0,0 +1,68 @@ +/** + * AJAX functions for the pagename quicksearch + * + * We're using a global object with self referencing methods + * here to make callbacks work + * + * @license GPL2 (http://www.gnu.org/licenses/gpl.html) + * @author Andreas Gohr <andi@splitbrain.org> + */ + +//prepare class +function ajax_qsearch_class(){ + this.sack = null; + this.inObj = null; + this.outObj = null; + this.timer = null; +} + +//create global object and add functions +var ajax_qsearch = new ajax_qsearch_class(); +ajax_qsearch.sack = new sack(DOKU_BASE + 'lib/exe/ajax.php'); +ajax_qsearch.sack.AjaxFailedAlert = ''; +ajax_qsearch.sack.encodeURIString = false; + +ajax_qsearch.init = function(inID,outID){ + ajax_qsearch.inObj = document.getElementById(inID); + ajax_qsearch.outObj = document.getElementById(outID); + + // objects found? + if(ajax_qsearch.inObj === null){ return; } + if(ajax_qsearch.outObj === null){ return; } + + // attach eventhandler to search field + addEvent(ajax_qsearch.inObj,'keyup',ajax_qsearch.call); + + // attach eventhandler to output field + addEvent(ajax_qsearch.outObj,'click',function(){ ajax_qsearch.outObj.style.display='none'; }); +}; + +ajax_qsearch.clear = function(){ + ajax_qsearch.outObj.style.display = 'none'; + ajax_qsearch.outObj.innerHTML = ''; + if(ajax_qsearch.timer !== null){ + window.clearTimeout(ajax_qsearch.timer); + ajax_qsearch.timer = null; + } +}; + +ajax_qsearch.exec = function(){ + ajax_qsearch.clear(); + var value = ajax_qsearch.inObj.value; + if(value === ''){ return; } + ajax_qsearch.sack.runAJAX('call=qsearch&q='+encodeURI(value)); +}; + +ajax_qsearch.sack.onCompletion = function(){ + var data = ajax_qsearch.sack.response; + if(data === ''){ return; } + + ajax_qsearch.outObj.innerHTML = data; + ajax_qsearch.outObj.style.display = 'block'; +}; + +ajax_qsearch.call = function(){ + ajax_qsearch.clear(); + ajax_qsearch.timer = window.setTimeout("ajax_qsearch.exec()",500); +}; + |