diff options
Diffstat (limited to 'lib/scripts')
-rw-r--r-- | lib/scripts/media.js | 90 |
1 files changed, 89 insertions, 1 deletions
diff --git a/lib/scripts/media.js b/lib/scripts/media.js index ebbee5a78..e03d1cf7b 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -328,7 +328,17 @@ jQuery('div.success, div.info, div.error, div.notify').remove(); - content = $('#media__content'); + if (document.getElementById('media__content')) { + content = $('#media__content'); + } else { + content = $('#mediamanager__files'); + if (link.hasClass('idx_dir')) { + change_tab($('.files'), '#mediamanager__tabs_files'); + $('#mediamanager__layout_detail').empty(); + } else { + change_tab(link, '#mediamanager__tabs_files'); + } + } content.html('<img src="' + DOKU_BASE + 'lib/images/loading.gif" alt="..." class="load" />'); // fetch the subtree @@ -345,6 +355,77 @@ }; + /** + * Changes selected tab + * + * @author Kate Arzamastseva <pshns@ukr.net> + */ + change_tab = function (tab, tab_menu_id) { + $(tab_menu_id + ' a').each(function (i) { + $(this).removeClass('selected'); + }); + tab.addClass('selected'); + }; + + /** + * Changes view of media files list + * + * @author Kate Arzamastseva <pshns@ukr.net> + */ + list_view = function (event) { + var link, content; + link = $(this); + + event.preventDefault(); + + content = $('#mediamanager__file_list'); + if (link.hasClass('mediamanager-link-thumbnails')) { + content.removeClass('mediamanager-list'); + content.addClass('mediamanager-thumbs'); + } else if (link.hasClass('mediamanager-link-list')) { + content.removeClass('mediamanager-thumbs'); + content.addClass('mediamanager-list'); + } + }; + + /** + * Lists the content of the right column (image details) using AJAX + * + * @author Kate Arzamastseva <pshns@ukr.net> + */ + details = function (event) { + var link, content, call, full; + link = $(this); + + event.preventDefault(); + + jQuery('div.success, div.info, div.error, div.notify').remove(); + + full=''; + if (document.getElementById('mediamanager__details')) { + content = $('#mediamanager__details'); + } else { + content = $('#mediamanager__layout_detail'); + full = '&full=true'; + } + + if (link.hasClass('name')) { + change_tab($('.view'), '#mediamanager__tabs_details'); + } else { + change_tab(link, '#mediamanager__tabs_details'); + } + content.html('<img src="' + DOKU_BASE + 'lib/images/loading.gif" alt="..." class="load" />'); + + $.post( + DOKU_BASE + 'lib/exe/ajax.php', + link[0].search.substr(1)+'&call=mediadetails'+full, + function (data) { + content.html(data); + }, + 'html' + ); + }; + prepare_content = function (content) { // hide syntax example content.find('div.example:visible').hide(); @@ -748,5 +829,12 @@ $('#media__tree').delegate('img', 'click', toggle) .delegate('a', 'click', list); + + $('#mediamanager__tabs_files').delegate('a', 'click', list); + + $('#mediamanager__files').delegate('#mediamanager__tabs_list a', 'click', list_view) + .delegate('#mediamanager__file_list a', 'click', details); + + $('#mediamanager__layout_detail').delegate('#mediamanager__tabs_details a', 'click', details); }); }(jQuery)); |