From bf1f3ac4f72c26ff386c08c920dda651d91c6898 Mon Sep 17 00:00:00 2001 From: sarnowski Date: Mon, 24 Aug 2009 13:22:30 +0200 Subject: Search capabilities for the media manager added. darcs-hash:20090824112230-8c5bd-7b8d8ba14e7533c1035b7b732983a0e3de8251a1.gz --- lib/exe/ajax.php | 12 ++++++++++++ lib/scripts/media.js | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) (limited to 'lib') 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 @@ -215,6 +215,18 @@ function ajax_medialist(){ tpl_mediaContent(true); } +/** + * Return list of search result for the Mediamanager + * + * @author Tobias Sarnowski + */ +function ajax_mediasearchlist(){ + global $conf; + require_once(DOKU_INC.'inc/media.php'); + + media_searchlist($_POST['ns']); +} + /** * Return sub index for index view * 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'); @@ -140,6 +156,33 @@ media = { media.updatehide(); }, + /** + * Opens the searchfield + * + * @author Tobias Sarnowski + */ + 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 = '...'; + + 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 * -- cgit v1.2.3