From 6183fb05112cd318d9a6885d9405cff9917ee82f Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Fri, 8 Jul 2011 13:54:15 +0300 Subject: mediamanager fix --- inc/html.php | 2 +- inc/lang/en/lang.php | 4 ++-- inc/media.php | 27 +++++++++++++++++---------- lib/exe/mediamanager.php | 2 +- lib/scripts/media.js | 3 +++ 5 files changed, 24 insertions(+), 14 deletions(-) diff --git a/inc/html.php b/inc/html.php index ee0711b6a..59b4cb6a9 100644 --- a/inc/html.php +++ b/inc/html.php @@ -450,7 +450,7 @@ function html_revisions($first=0, $media_id = false){ if (!$media_id) print p_locale_xhtml('revisions'); $params = array('id' => 'page__revisions'); - if ($media_id) $params['action'] = media_managerURL(array('image' => $media_id)); + if ($media_id) $params['action'] = media_managerURL(array('image' => $media_id), '&'); $form = new Doku_Form($params); $form->addElement(form_makeOpenTag('ul')); diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index 7a2050fac..ea6bf2646 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -225,6 +225,7 @@ $lang['js']['linkwiz'] = 'Link Wizard'; $lang['js']['linkto'] = 'Link to:'; $lang['js']['del_confirm']= 'Really delete selected item(s)?'; +$lang['js']['restore_confirm']= 'Really restore this version?'; $lang['admin_register']= 'Add new user'; $lang['metaedit'] = 'Edit Metadata'; @@ -333,8 +334,7 @@ $lang['media_historytab'] = 'History'; $lang['media_thumbsview'] = 'Thumbnails'; $lang['media_listview'] = 'List'; $lang['media_sort'] = 'Sort'; -$lang['media_search'] = 'Search'; -$lang['media_view'] = 'View'; +$lang['media_search'] = 'Search in the %s namespace.'; $lang['media_edit'] = 'Edit'; $lang['media_history'] = 'These are the older revisions of the file.'; $lang['media_meta_edited']= 'metadata edited'; diff --git a/inc/media.php b/inc/media.php index 5a1da55cd..fbbca401c 100644 --- a/inc/media.php +++ b/inc/media.php @@ -112,7 +112,7 @@ function media_metaform($id,$auth,$fullscreen = false){ echo '

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

'.NL; $action = DOKU_BASE.'lib/exe/mediamanager.php'; } else { - $action = media_managerURL(array('tab_details' => 'view')); + $action = media_managerURL(array('tab_details' => 'view'), '&'); } echo '
'.NL; @@ -204,6 +204,7 @@ define('DOKU_MEDIA_EMPTY_NS', 8); DOKU_MEDIA_INUSE */ function media_delete($id,$auth){ + global $lang; if($auth < AUTH_DELETE) return DOKU_MEDIA_NOT_AUTH; if(media_inuse($id)) return DOKU_MEDIA_INUSE; @@ -219,9 +220,15 @@ function media_delete($id,$auth){ $data['del'] = false; $evt = new Doku_Event('MEDIA_DELETE_FILE',$data); if ($evt->advise_before()) { + $old = @filemtime($file); + if(!@file_exists(mediaFN($id, $old)) && @file_exists($file)) { + // add old revision to the attic + media_saveOldRevision($id); + } + $data['unl'] = @unlink($file); if($data['unl']){ - addMediaLogEntry(time(), $id, DOKU_CHANGE_TYPE_DELETE); + addMediaLogEntry(time(), $id, DOKU_CHANGE_TYPE_DELETE, $lang['deleted']); $data['del'] = io_sweepNS($id,'mediadir'); } } @@ -394,7 +401,7 @@ function media_upload_finish($fn_tmp, $fn, $id, $imime, $overwrite, $move = 'mov media_notify($id,$fn,$imime); // add a log entry to the media changelog if ($REV){ - addMediaLogEntry($new, $id, DOKU_CHANGE_TYPE_REVERT, '', $REV); + addMediaLogEntry($new, $id, DOKU_CHANGE_TYPE_REVERT, $lang['restored'], $REV); } elseif ($overwrite) { addMediaLogEntry($new, $id, DOKU_CHANGE_TYPE_EDIT); } else { @@ -692,7 +699,7 @@ function media_tab_search($ns,$auth=null) { if (!$query) $query = ''; echo '
'; - echo $lang['media_search']; + echo sprintf($lang['media_search'], $ns); echo'
'; echo '
'; @@ -809,18 +816,18 @@ function media_preview($image, $auth, $rev=false) { // delete button if($auth >= AUTH_DELETE && !$rev){ $form = new Doku_Form(array('id' => 'mediamanager__btn_delete', - 'action'=>media_managerURL(array('delete' => $image)))); + 'action'=>media_managerURL(array('delete' => $image), '&'))); $form->addElement(form_makeButton('submit','',$lang['btn_delete'])); $form->printForm(); $form = new Doku_Form(array('id' => 'mediamanager__btn_update', - 'action'=>media_managerURL(array('image' => $image, 'mediado' => 'update')))); + 'action'=>media_managerURL(array('image' => $image, 'mediado' => 'update'), '&'))); $form->addElement(form_makeButton('submit','',$lang['media_update'])); $form->printForm(); } if($auth >= AUTH_DELETE && $rev){ $form = new Doku_Form(array('id' => 'mediamanager__btn_restore', - 'action'=>media_managerURL(array('image' => $image)))); + 'action'=>media_managerURL(array('image' => $image), '&'))); $form->addHidden('mediado','restore'); $form->addHidden('rev',$rev); $form->addElement(form_makeButton('submit','',$lang['media_restore'])); @@ -1214,7 +1221,7 @@ function media_printimgdetail($item, $fullscreen=false){ * @param string $amp - separator * @return string - link */ -function media_managerURL($params=false, $amp='&') { +function media_managerURL($params=false, $amp='&') { global $conf; global $ID; @@ -1266,7 +1273,7 @@ function media_uploadform($ns, $auth, $fullscreen = false){ $params['action'] = DOKU_BASE.'lib/exe/mediamanager.php'; } else { $params['action'] = media_managerURL(array('tab_files' => 'files', - 'tab_details' => 'view')); + 'tab_details' => 'view'), '&'); } $form = new Doku_Form($params); @@ -1339,7 +1346,7 @@ function media_searchform($ns,$query='',$fullscreen=false){ // The default HTML search form $params = array('id' => 'dw__mediasearch'); if (!$fullscreen) $params['action'] = DOKU_BASE.'lib/exe/mediamanager.php'; - else $params['action'] = media_managerURL(); + else $params['action'] = media_managerURL(array(), '&'); $form = new Doku_Form($params); if (!$fullscreen) $form->addElement('
' . $lang['mediasearch'] . '
'); $form->addElement(formSecurityToken()); diff --git a/lib/exe/mediamanager.php b/lib/exe/mediamanager.php index 77eb2facb..939b5a053 100644 --- a/lib/exe/mediamanager.php +++ b/lib/exe/mediamanager.php @@ -80,7 +80,7 @@ $JUMPTO = media_metasave($IMG,$AUTH,$_REQUEST['meta']); } - if($IMG && $_REQUEST['mediado'] == 'save') { + if($IMG && ($_REQUEST['mediado'] == 'save' || @array_key_exists('save', $_REQUEST['mediado']))) { $JUMPTO = media_metasave($IMG,$AUTH,$_REQUEST['meta']); } diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 245519cbc..4eb1e7b63 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -405,6 +405,9 @@ 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'); $('.scroll-container', content).html('...'); -- cgit v1.2.3