From 7d7ab775ac0252d50835987b276a95b790cd1434 Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Mon, 4 Jul 2011 22:35:44 +0300 Subject: mediamanager ajax forms --- inc/html.php | 5 ++++- inc/media.php | 21 ++++++++++++------ lib/exe/ajax.php | 15 ++++++++----- lib/exe/mediamanager.php | 4 ++-- lib/scripts/media.js | 55 +++++++++++++++++++++++++++++++++--------------- 5 files changed, 68 insertions(+), 32 deletions(-) diff --git a/inc/html.php b/inc/html.php index 809db30bd..ee0711b6a 100644 --- a/inc/html.php +++ b/inc/html.php @@ -449,7 +449,10 @@ function html_revisions($first=0, $media_id = false){ if (!$media_id) print p_locale_xhtml('revisions'); - $form = new Doku_Form(array('id' => 'page__revisions')); + $params = array('id' => 'page__revisions'); + if ($media_id) $params['action'] = media_managerURL(array('image' => $media_id)); + + $form = new Doku_Form($params); $form->addElement(form_makeOpenTag('ul')); if (!$media_id) $exists = $INFO['exists']; diff --git a/inc/media.php b/inc/media.php index b668e7be2..5a1da55cd 100644 --- a/inc/media.php +++ b/inc/media.php @@ -110,11 +110,12 @@ function media_metaform($id,$auth,$fullscreen = false){ // output if (!$fullscreen) { echo '

'.hsc(noNS($id)).'

'.NL; - echo '
'.NL; + $action = DOKU_BASE.'lib/exe/mediamanager.php'; } else { - echo ''.NL; + $action = media_managerURL(array('tab_details' => 'view')); } + echo ''.NL; + formSecurityToken(); foreach($fields as $key => $field){ // get current value @@ -150,8 +151,12 @@ function media_metaform($id,$auth,$fullscreen = false){ } echo '
'.NL; echo ''.NL; - if (!$fullscreen) $do = 'do'; - else $do = 'mediado'; + if (!$fullscreen) { + $do = 'do'; + } else { + echo ''; + $do = 'mediado'; + } echo ''.NL; if (!$fullscreen) @@ -803,7 +808,8 @@ function media_preview($image, $auth, $rev=false) { // delete button if($auth >= AUTH_DELETE && !$rev){ - $form = new Doku_Form(array('action'=>media_managerURL(array('delete' => $image)))); + $form = new Doku_Form(array('id' => 'mediamanager__btn_delete', + 'action'=>media_managerURL(array('delete' => $image)))); $form->addElement(form_makeButton('submit','',$lang['btn_delete'])); $form->printForm(); @@ -813,7 +819,8 @@ function media_preview($image, $auth, $rev=false) { $form->printForm(); } if($auth >= AUTH_DELETE && $rev){ - $form = new Doku_Form(array('action'=>media_managerURL(array('image' => $image)))); + $form = new Doku_Form(array('id' => 'mediamanager__btn_restore', + 'action'=>media_managerURL(array('image' => $image)))); $form->addHidden('mediado','restore'); $form->addHidden('rev',$rev); $form->addElement(form_makeButton('submit','',$lang['media_restore'])); diff --git a/lib/exe/ajax.php b/lib/exe/ajax.php index 8ff0f8eda..59953ddc3 100644 --- a/lib/exe/ajax.php +++ b/lib/exe/ajax.php @@ -224,12 +224,17 @@ function ajax_medialist(){ * @author Kate Arzamastseva */ function ajax_mediadetails(){ - global $conf; - global $NS; + global $DEL, $NS, $IMG, $AUTH, $JUMPTO, $REV, $lang, $fullscreen; + $fullscreen = true; + require_once(DOKU_INC.'lib/exe/mediamanager.php'); - $NS = $_POST['ns']; - $image = $_POST['image']; - tpl_fileDetails($image, false); + if ($_REQUEST['image']) $image = cleanID($_REQUEST['image']); + if (isset($IMG)) $image = $IMG; + if (isset($JUMPTO)) $image = $JUMPTO; + if (isset($REV) && !$JUMPTO) $rev = $REV; + + html_msgarea(); + tpl_fileDetails($image, $rev); } /** diff --git a/lib/exe/mediamanager.php b/lib/exe/mediamanager.php index 46257a9a7..77eb2facb 100644 --- a/lib/exe/mediamanager.php +++ b/lib/exe/mediamanager.php @@ -80,7 +80,7 @@ $JUMPTO = media_metasave($IMG,$AUTH,$_REQUEST['meta']); } - if($IMG && @array_key_exists('save', $_REQUEST['mediado'])){ + if($IMG && $_REQUEST['mediado'] == 'save') { $JUMPTO = media_metasave($IMG,$AUTH,$_REQUEST['meta']); } @@ -98,7 +98,7 @@ } if ($res & DOKU_MEDIA_DELETED) { $msg = sprintf($lang['deletesucc'], noNS($DEL)); - if ($res & DOKU_MEDIA_EMPTY_NS) { + if ($res & DOKU_MEDIA_EMPTY_NS && !$fullscreen) { // current namespace was removed. redirecting to root ns passing msg along send_redirect(DOKU_URL.'lib/exe/mediamanager.php?msg1='. rawurlencode($msg).'&edid='.$_REQUEST['edid']); diff --git a/lib/scripts/media.js b/lib/scripts/media.js index a7574b804..245519cbc 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, form_params, list_view, details; + var toggle, list, prepare_content, insert, confirmattach, attachoptions, initpopup, updatehide, setalign, setsize, inSet, outSet, media_manager, hasFlash, form_params, list_view, details, update_content; var media_manager = { keepopen: false, @@ -331,6 +331,7 @@ if (document.getElementById('media__content')) { //popup content = $('#media__content'); + content.html('...'); } else { //fullscreen media manager @@ -340,6 +341,8 @@ //changing namespace $('#mediamanager__layout_detail').empty(); } + + $('.scroll-container', content).html('...'); } params = ''; @@ -350,19 +353,8 @@ params = form_params(link)+'&call=medialist'; } - $('.scroll-container', content).html('...'); - // fetch the subtree - $.post( - DOKU_BASE + 'lib/exe/ajax.php', - params, - function (data) { - content.html(data); - prepare_content(content); - updatehide(); - }, - 'html' - ); + update_content(content, params); }; @@ -406,7 +398,7 @@ * @author Kate Arzamastseva */ details = function (event) { - var link, content; + var link, content, params, update_list; link = $(this); event.preventDefault(); @@ -416,9 +408,32 @@ content = $('#mediamanager__layout_detail'); $('.scroll-container', content).html('...'); + params = ''; + + if (link[0].search) { + params = link[0].search.substr(1)+'&call=mediadetails'; + } else { + params = form_params(link)+'&call=mediadetails'; + } + + 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 = $('a.files'); + params1 = link1[0].search.substr(1)+'&call=medialist'; + content1 = $('#mediamanager__layout_list'); + $('.scroll-container', content1).html('...'); + + update_content(content1, params1); + } + }; + + update_content = function (content, params) { $.post( DOKU_BASE + 'lib/exe/ajax.php', - link[0].search.substr(1)+'&call=mediadetails', + params, function (data) { content.html(data); }, @@ -832,9 +847,15 @@ $('#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); + .delegate('#mediamanager__file_list a', 'click', details) + .delegate('#dw__mediasearch', 'submit', list); $('#mediamanager__layout_detail').delegate('#mediamanager__tabs_details a', 'click', details) - .delegate('#mediamanager__btn_update', 'submit', list); + .delegate('#mediamanager__btn_update', 'submit', list) + .delegate('#page__revisions', 'submit', details) + .delegate('#page__revisions a', 'click', details) + .delegate('#mediamanager__save_meta', 'submit', details) + .delegate('#mediamanager__btn_delete', 'submit', details) + .delegate('#mediamanager__btn_restore', 'submit', details); }); }(jQuery)); -- cgit v1.2.3