diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/exe/ajax.php | 12 | ||||
-rw-r--r-- | lib/scripts/media.js | 43 |
2 files changed, 55 insertions, 0 deletions
diff --git a/lib/exe/ajax.php b/lib/exe/ajax.php index c10893db7..4d9a8105a 100644 --- a/lib/exe/ajax.php +++ b/lib/exe/ajax.php @@ -216,6 +216,18 @@ function ajax_medialist(){ } /** + * Return list of search result for the Mediamanager + * + * @author Tobias Sarnowski <sarnowski@cosmocode.de> + */ +function ajax_mediasearchlist(){ + global $conf; + require_once(DOKU_INC.'inc/media.php'); + + media_searchlist($_POST['ns']); +} + +/** * Return sub index for index view * * @author Andreas Gohr <andi@splitbrain.org> diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 4ae31a989..7726d0664 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -94,6 +94,22 @@ media = { attachoptions: function(obj){ if(!obj) return; + // search link + var searcha = document.createElement('a'); + searcha.id = 'media__search'; + searcha.href = '#'; + addEvent(searcha,'click',function(event){ return media.showsearchfield(event,this); }); + + var searchlbl = document.createElement('label'); + searchlbl.htmlFor = 'media__searchmedia'; + searchlbl.innerHTML = LANG['searchmedia']; + + var searchbr = document.createElement('br'); + + searcha.appendChild(searchlbl); + obj.appendChild(searcha); + obj.appendChild(searchbr); + // keep open if(opener){ var kobox = document.createElement('input'); @@ -141,6 +157,33 @@ media = { }, /** + * Opens the searchfield + * + * @author Tobias Sarnowski <sarnowski@cosmocode.de> + */ + showsearchfield: function(event,link){ + // prepare an AJAX call to fetch the search + var ajax = new sack(DOKU_BASE + 'lib/exe/ajax.php'); + ajax.AjaxFailedAlert = ''; + ajax.encodeURIString = false; + if(ajax.failed) return true; + + cleanMsgArea(); + + var content = $('media__content'); + content.innerHTML = '<img src="'+DOKU_BASE+'lib/images/loading.gif" alt="..." class="load" />'; + + ajax.elementObj = content; + ajax.afterCompletion = function(){ + media.selectorattach(content); + media.confirmattach(content); + media.updatehide(); + }; + ajax.runAJAX(link.search.substr(1)+'&call=mediasearchlist'); + return false; + }, + + /** * Toggles the keep open state * * @author Andreas Gohr <andi@splitbrain.org> |