summaryrefslogtreecommitdiff
path: root/lib/scripts/media.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/scripts/media.js')
-rw-r--r--lib/scripts/media.js132
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();
},