From d971ea8b02ccca4dd879a5db966670e0f3b4f102 Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva <pshns@ukr.net> Date: Sat, 30 Jul 2011 20:50:49 +0300 Subject: [PATCH] issue #39 sort by date desc, saved in cookie --- inc/media.php | 6 ++++++ inc/search.php | 2 +- lib/scripts/media.js | 7 +++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/inc/media.php b/inc/media.php index 5f9fb63de..bb3fc22dc 100644 --- a/inc/media.php +++ b/inc/media.php @@ -659,6 +659,12 @@ function media_tab_files($ns,$auth=null,$jump='') { if(is_null($auth)) $auth = auth_quickaclcheck("$ns:*"); $sort = $_REQUEST['sort']; + if (!$sort && @strpos($_COOKIE['DOKU_PREFS'], 'sort')) { + $parts = explode('#', $_COOKIE['DOKU_PREFS']); + for ($i = 0; $i < count($parts); $i+=2){ + if ($parts[$i] == 'sort') $sort = $parts[$i+1]; + } + } media_tab_files_options($ns, $sort); echo '<div class="scroll-container" >'; diff --git a/inc/search.php b/inc/search.php index c11111efc..a6089c479 100644 --- a/inc/search.php +++ b/inc/search.php @@ -40,7 +40,7 @@ function search(&$data,$base,$func,$opts,$dir='',$lvl=1,$sort=false){ } closedir($dh); if ($sort == 'date') { - @array_multisort(array_map('filemtime', $filepaths), SORT_NUMERIC, SORT_ASC, $files); + @array_multisort(array_map('filemtime', $filepaths), SORT_NUMERIC, SORT_DESC, $files); } else { sort($files); } diff --git a/lib/scripts/media.js b/lib/scripts/media.js index ebd9da2f8..ff87299cf 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -292,6 +292,10 @@ var dw_mediamanager = { params = dw_mediamanager.form_params($link)+'&call=medialist'; } else if ($link.parents('form')) { params = dw_mediamanager.form_params($link.parents('form'))+'&call=medialist'; + + if ($link.parents('form')[0].id == 'mediamanager__form_sort') { + DokuCookie.setValue('sort', $link[0].value); + } } // fetch the subtree @@ -305,6 +309,7 @@ var dw_mediamanager = { * @author Kate Arzamastseva <pshns@ukr.net> */ form_params: function ($form) { + if (!$form.length) return; var elements = $form.serialize(); var action = ''; var i = $form[0].action.indexOf('?'); @@ -471,6 +476,8 @@ var dw_mediamanager = { if (jQuery('#mediamanager__difftype').length) return; $form = jQuery('#mediamanager__form_diffview'); + if (!$form.length) return; + $label = jQuery(document.createElement('label')); $label.append('<span>'+LANG.media_diff+'</span>'); $select = jQuery(document.createElement('select')) -- GitLab