diff --git a/lib/scripts/media.js b/lib/scripts/media.js index c8ddfa40a5d532c82f6737c1d4e80045b1cb3c2c..859da9e22189defbb3c6d62799df2319a49422dd 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -2,7 +2,55 @@ * JavaScript functionality for the media management popup * * @author Andreas Gohr <andi@splitbrain.org> + * @author Pierre Spring <pierre.spring@caillou.ch> */ +(function ($) { + /** + * Open or close a subtree using AJAX + * + * @author Andreas Gohr <andi@splitbrain.org> + */ + toggle = function (event) { + var clicky, listitem, sublist, link, ul; + + var clicky = $(this); + var listitem = clicky.parent(); + + // if already open, close by removing the sublist + var sublist = listitem.find('ul').first(); + if(sublist.size()){ + sublist.remove(); // TODO: really? we could just hide it, right? + clicky.attr('src', DOKU_BASE + 'lib/images/plus.gif'); + event.preventDefault(); // TODO: really here? + return; + } + + // get the enclosed link (is always the first one) + link = listitem.find('a').first(); + + //prepare the new ul + ul = $('<ul/>'); + + //fixme add classname here + + $.post( + DOKU_BASE + 'lib/exe/ajax.php', + link.attr('search').substr(1) + '&call=medians', + function (data) { + ul.html(data) + listitem.append(ul); + }, + 'html' + ); + + clicky.attr('src', DOKU_BASE + 'lib/images/minus.gif'); + }; + + $(function () { + $('#media__tree').delegate('img', 'click', toggle); + }); +}(jQuery)); + var media_manager = { keepopen: false, hide: false, @@ -29,7 +77,7 @@ var media_manager = { // attach action to make the +/- clickable var clicky = elem.getElementsByTagName('img')[0]; clicky.style.cursor = 'pointer'; - addEvent(clicky,'click',function(event){ return media_manager.toggle(event,this); }); + //addEvent(clicky,'click',function(event){ return media_manager.toggle(event,this); }); // attach action load folder list via AJAX var link = elem.getElementsByTagName('a')[0]; @@ -578,43 +626,6 @@ var media_manager = { return false; }, - - /** - * Open or close a subtree using AJAX - * - * @author Andreas Gohr <andi@splitbrain.org> - */ - toggle: function(event,clicky){ - var listitem = clicky.parentNode; - - // if already open, close by removing the sublist - var sublists = listitem.getElementsByTagName('ul'); - if(sublists.length){ - listitem.removeChild(sublists[0]); - clicky.src = DOKU_BASE+'lib/images/plus.gif'; - return false; - } - - // get the enclosed link (is always the first one) - var link = listitem.getElementsByTagName('a')[0]; - - // prepare an AJAX call to fetch the subtree - var ajax = new sack(DOKU_BASE + 'lib/exe/ajax.php'); - ajax.AjaxFailedAlert = ''; - ajax.encodeURIString = false; - if(ajax.failed) return true; - - //prepare the new ul - var ul = document.createElement('ul'); - //fixme add classname here - listitem.appendChild(ul); - ajax.elementObj = ul; - ajax.afterCompletion = function(){ media_manager.treeattach(ul); }; - ajax.runAJAX(link.search.substr(1)+'&call=medians'); - clicky.src = DOKU_BASE+'lib/images/minus.gif'; - return false; - }, - /** * Prefills the wikiname. * @@ -762,7 +773,7 @@ var media_manager = { }; addInitEvent(function(){ - media_manager.treeattach($('media__tree')); + //media_manager.treeattach($('media__tree')); media_manager.selectorattach($('media__content')); media_manager.confirmattach($('media__content')); media_manager.attachoptions($('media__opts'));