diff options
Diffstat (limited to 'lib/scripts')
-rw-r--r-- | lib/scripts/media.js | 132 |
1 files changed, 126 insertions, 6 deletions
diff --git a/lib/scripts/media.js b/lib/scripts/media.js index f7e78c747..3f263f42a 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -60,6 +60,20 @@ var dw_mediamanager = { DOKU_BASE + 'lib/images/plus.gif'); }}); $tree.delegate('a', 'click', dw_mediamanager.list); + + jQuery('#mediamanager__layout_list').delegate('#mediamanager__tabs_files a', 'click', dw_mediamanager.list) + .delegate('#mediamanager__tabs_list a', 'click', dw_mediamanager.list_view) + .delegate('#mediamanager__file_list a', 'click', dw_mediamanager.details) + .delegate('#dw__mediasearch', 'submit', dw_mediamanager.list); + + jQuery('#mediamanager__layout_detail').delegate('#mediamanager__tabs_details a', 'click', dw_mediamanager.details) + .delegate('#mediamanager__btn_update', 'submit', dw_mediamanager.list) + .delegate('#page__revisions', 'submit', dw_mediamanager.details) + .delegate('#page__revisions a', 'click', dw_mediamanager.details) + .delegate('#mediamanager__save_meta', 'submit', dw_mediamanager.details) + .delegate('#mediamanager__btn_delete', 'submit', dw_mediamanager.details) + .delegate('#mediamanager__btn_restore', 'submit', dw_mediamanager.details); + }, /** @@ -219,22 +233,128 @@ var dw_mediamanager = { * @author Pierre Spring <pierre.spring@caillou.ch> */ list: function (event) { - var $link, $content; + var $link, $content, params; + $link = jQuery(this); event.preventDefault(); jQuery('div.success, div.info, div.error, div.notify').remove(); - $link = jQuery(this); - $content = jQuery('#media__content'); - $content.html('<img src="' + DOKU_BASE + 'lib/images/loading.gif" alt="..." class="load" />'); + if (document.getElementById('media__content')) { + //popup + $content = jQuery('#media__content'); + $content.html('<img src="' + DOKU_BASE + 'lib/images/loading.gif" alt="..." class="load" />'); + + } else { + //fullscreen media manager + $content = jQuery('#mediamanager__layout_list'); + + if ($link.hasClass('idx_dir')) { + //changing namespace + jQuery('#mediamanager__layout_detail').empty(); + jQuery('#media__tree .selected').each(function(){ + $(this).removeClass('selected'); + }); + $link.addClass('selected'); + } + + jQuery('.scroll-container', $content).html('<img src="' + DOKU_BASE + 'lib/images/loading.gif" alt="..." class="load" />'); + } + + params = ''; + + if ($link[0].search) { + params = $link[0].search.substr(1)+'&call=medialist'; + } else if ($link[0].action) { + params = dw_mediamanager.form_params($link)+'&call=medialist'; + } // fetch the subtree + dw_mediamanager.update_content($content, params); + + }; + + /** + * Returns form parameters + * + * @author Kate Arzamastseva <pshns@ukr.net> + */ + form_params: function ($form) { + var elements = $form.serialize(); + var action = ''; + var i = $form[0].action.indexOf('?'); + if (i >= 0) action = $form[0].action.substr(i+1); + return elements+'&'+action; + }, + + /** + * Changes view of media files list + * + * @author Kate Arzamastseva <pshns@ukr.net> + */ + list_view: function (event) { + var $link, $content; + $link = jQuery(this); + + event.preventDefault(); + + $content = jQuery('#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, params, update_list; + $link = jQuery(this); + + event.preventDefault(); + + jQuery('div.success, div.info, div.error, div.notify').remove(); + + if ($link[0].id == 'mediamanager__btn_delete' && !confirm(LANG['del_confirm'])) return false; + if ($link[0].id == 'mediamanager__btn_restore' && !confirm(LANG['restore_confirm'])) return false; + + $content = $('#mediamanager__layout_detail'); + jQuery('.scroll-container', $content).html('<img src="' + DOKU_BASE + 'lib/images/loading.gif" alt="..." class="load" />'); + + params = ''; + + if ($link[0].search) { + params = $link[0].search.substr(1)+'&call=mediadetails'; + } else { + params = dw_mediamanager.form_params($link)+'&call=mediadetails'; + } + + dw_mediamanager.update_content($content, params); + + update_list = ($link[0].id == 'mediamanager__btn_delete' || $link[0].id == 'mediamanager__btn_restore'); + if (update_list) { + var $link1, $content1, params1; + $link1 = jQuery('a.files'); + params1 = $link1[0].search.substr(1)+'&call=medialist'; + $content1 = jQuery('#mediamanager__layout_list'); + jQuery('.scroll-container', $content1).html('<img src="' + DOKU_BASE + 'lib/images/loading.gif" alt="..." class="load" />'); + + dw_mediamanager.update_content($content1, params1); + } + }, + + update_content: function ($content, params) { jQuery.post( DOKU_BASE + 'lib/exe/ajax.php', - $link[0].search.substr(1)+'&call=medialist', + params, function (data) { - $content.html(data); + content.html(data); dw_mediamanager.prepare_content($content); dw_mediamanager.updatehide(); }, |