From ed69a2ae06c0707fdd5634e18d569c25f0cda6d5 Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Sun, 3 Jul 2011 23:56:26 +0300 Subject: ajax mediamanager fix --- inc/media.php | 4 ++-- inc/template.php | 32 ++++++++++++------------- lib/exe/ajax.php | 8 ++----- lib/scripts/media.js | 68 ++++++++++++++++++++++++++-------------------------- 4 files changed, 54 insertions(+), 58 deletions(-) diff --git a/inc/media.php b/inc/media.php index fd917a5a0..b668e7be2 100644 --- a/inc/media.php +++ b/inc/media.php @@ -807,8 +807,8 @@ function media_preview($image, $auth, $rev=false) { $form->addElement(form_makeButton('submit','',$lang['btn_delete'])); $form->printForm(); - $form = new Doku_Form(array('action'=>media_managerURL(array('image' => $image)))); - $form->addHidden('mediado','update'); + $form = new Doku_Form(array('id' => 'mediamanager__btn_update', + 'action'=>media_managerURL(array('image' => $image, 'mediado' => 'update')))); $form->addElement(form_makeButton('submit','',$lang['media_update'])); $form->printForm(); } diff --git a/inc/template.php b/inc/template.php index c3b705421..70253bb90 100644 --- a/inc/template.php +++ b/inc/template.php @@ -1135,7 +1135,7 @@ function tpl_mediaContent($fromajax=false){ * * @author Kate Arzamastseva */ -function tpl_fileList($fromajax=false){ +function tpl_fileList(){ global $AUTH; global $NS; global $JUMPTO; @@ -1144,22 +1144,22 @@ function tpl_fileList($fromajax=false){ if (!$opened_tab) $opened_tab = 'files'; if ($_REQUEST['mediado'] == 'update') $opened_tab = 'upload'; - if(!$fromajax) media_tabs_files($opened_tab); + media_tabs_files($opened_tab); if ($opened_tab == 'files') { - if (!$fromajax) echo '
'; + echo '
'; media_tab_files($NS,$AUTH,$JUMPTO); - if (!$fromajax) echo '
'; + echo '
'; } elseif ($opened_tab == 'upload') { - if (!$fromajax) echo '
'; + echo '
'; media_tab_upload($NS,$AUTH,$JUMPTO); - if (!$fromajax) echo '
'; + echo '
'; } elseif ($opened_tab == 'search') { - if (!$fromajax) echo ''; } } @@ -1172,7 +1172,7 @@ function tpl_fileList($fromajax=false){ * * @author Kate Arzamastseva */ -function tpl_fileDetails($image, $rev, $fromajax=false){ +function tpl_fileDetails($image, $rev){ global $AUTH; global $NS; @@ -1186,22 +1186,22 @@ function tpl_fileDetails($image, $rev, $fromajax=false){ if ($_REQUEST['edit']) $opened_tab = 'edit'; if ($do == 'restore') $opened_tab = 'view'; - if(!$fromajax) media_tabs_details($image, $opened_tab); + media_tabs_details($image, $opened_tab); if ($opened_tab == 'view') { - if (!$fromajax) echo '
'; + echo '
'; media_tab_view($image, $NS, $AUTH, $rev); - if (!$fromajax) echo '
'; + echo '
'; } elseif ($opened_tab == 'edit') { - if (!$fromajax) echo '
'; + echo '
'; media_tab_edit($image, $NS, $AUTH); - if (!$fromajax) echo '
'; + echo '
'; } elseif ($opened_tab == 'history') { - if (!$fromajax) echo '
'; + echo '
'; media_tab_history($image,$NS,$AUTH); - if (!$fromajax) echo '
'; + echo '
'; } } diff --git a/lib/exe/ajax.php b/lib/exe/ajax.php index 16efd9ac7..8ff0f8eda 100644 --- a/lib/exe/ajax.php +++ b/lib/exe/ajax.php @@ -211,7 +211,7 @@ function ajax_medialist(){ $NS = $_POST['ns']; if ($_POST['do'] == 'media') { - tpl_fileList(true); + tpl_fileList(); } else { tpl_mediaContent(true); } @@ -229,11 +229,7 @@ function ajax_mediadetails(){ $NS = $_POST['ns']; $image = $_POST['image']; - if (isset($_POST['full'])) { - tpl_fileDetails($image, false); - } else { - tpl_fileDetails($image, false, true); - } + tpl_fileDetails($image, false); } /** diff --git a/lib/scripts/media.js b/lib/scripts/media.js index e03d1cf7b..a7574b804 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -11,7 +11,7 @@ * @author Pierre Spring */ (function ($) { - var toggle, list, prepare_content, insert, confirmattach, attachoptions, initpopup, updatehide, setalign, setsize, inSet, outSet, media_manager, hasFlash; + var toggle, list, prepare_content, insert, confirmattach, attachoptions, initpopup, updatehide, setalign, setsize, inSet, outSet, media_manager, hasFlash, form_params, list_view, details; var media_manager = { keepopen: false, @@ -321,7 +321,7 @@ * @author Pierre Spring */ list = function (event) { - var link, content; + var link, content, params; link = $(this); event.preventDefault(); @@ -329,22 +329,33 @@ jQuery('div.success, div.info, div.error, div.notify').remove(); if (document.getElementById('media__content')) { + //popup content = $('#media__content'); + } else { - content = $('#mediamanager__files'); + //fullscreen media manager + content = $('#mediamanager__layout_list'); + if (link.hasClass('idx_dir')) { - change_tab($('.files'), '#mediamanager__tabs_files'); + //changing namespace $('#mediamanager__layout_detail').empty(); - } else { - change_tab(link, '#mediamanager__tabs_files'); } } - content.html('...'); + + params = ''; + + if (link[0].search) { + params = link[0].search.substr(1)+'&call=medialist'; + } else if (link[0].action) { + params = form_params(link)+'&call=medialist'; + } + + $('.scroll-container', content).html('...'); // fetch the subtree $.post( DOKU_BASE + 'lib/exe/ajax.php', - link[0].search.substr(1)+'&call=medialist', + params, function (data) { content.html(data); prepare_content(content); @@ -356,15 +367,16 @@ }; /** - * Changes selected tab + * Returns form parameters * * @author Kate Arzamastseva */ - change_tab = function (tab, tab_menu_id) { - $(tab_menu_id + ' a').each(function (i) { - $(this).removeClass('selected'); - }); - tab.addClass('selected'); + 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; }; /** @@ -394,31 +406,19 @@ * @author Kate Arzamastseva */ details = function (event) { - var link, content, call, full; + var link, content; 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('...'); + content = $('#mediamanager__layout_detail'); + $('.scroll-container', content).html('...'); $.post( DOKU_BASE + 'lib/exe/ajax.php', - link[0].search.substr(1)+'&call=mediadetails'+full, + link[0].search.substr(1)+'&call=mediadetails', function (data) { content.html(data); }, @@ -830,11 +830,11 @@ $('#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) + $('#mediamanager__layout_list').delegate('#mediamanager__tabs_files a', 'click', list) + .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); + $('#mediamanager__layout_detail').delegate('#mediamanager__tabs_details a', 'click', details) + .delegate('#mediamanager__btn_update', 'submit', list); }); }(jQuery)); -- cgit v1.2.3