Skip to content

Commit

Permalink
mediamanager sort button
Browse files Browse the repository at this point in the history
  • Loading branch information
akate committed Jul 25, 2011
1 parent b5941df commit abc306f
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 9 deletions.
2 changes: 2 additions & 0 deletions inc/lang/en/lang.php
Expand Up @@ -336,6 +336,8 @@
$lang['media_thumbsview'] = 'Thumbnails';
$lang['media_listview'] = 'List';
$lang['media_sort'] = 'Sort';
$lang['media_sort_name'] = 'by name';
$lang['media_sort_date'] = 'by date';
$lang['media_upload'] = 'Upload to the <strong>%s</strong> namespace.';
$lang['media_search'] = 'Search in the <strong>%s</strong> namespace.';
$lang['media_edit'] = 'Edit';
Expand Down
23 changes: 17 additions & 6 deletions inc/media.php
Expand Up @@ -521,7 +521,7 @@ function media_notify($id,$file,$mime,$old_rev=false){
/**
* List all files in a given Media namespace
*/
function media_filelist($ns,$auth=null,$jump='',$fullscreenview=false){
function media_filelist($ns,$auth=null,$jump='',$fullscreenview=false,$sort=false){
global $conf;
global $lang;
$ns = cleanID($ns);
Expand All @@ -540,7 +540,7 @@ function media_filelist($ns,$auth=null,$jump='',$fullscreenview=false){
$dir = utf8_encodeFN(str_replace(':','/',$ns));
$data = array();
search($data,$conf['mediadir'],'search_media',
array('showmsg'=>true,'depth'=>1),$dir);
array('showmsg'=>true,'depth'=>1),$dir,1,$sort);

if(!count($data)){
echo '<div class="nothing">'.$lang['nothingfound'].'</div>'.NL;
Expand Down Expand Up @@ -614,7 +614,7 @@ function media_tabs_details($image, $selected=false){
*
* @author Kate Arzamastseva <pshns@ukr.net>
*/
function media_tab_files_options($ns){
function media_tab_files_options($ns, $sort){
global $lang;

echo '<div class="background-container">';
Expand All @@ -633,7 +633,16 @@ function media_tab_files_options($ns){
echo '</div>';

echo '<div id="mediamanager__sort">';
echo $lang['media_sort'];
$form = new Doku_Form(array('action'=>media_managerURL(array(), '&'), 'id' => 'mediamanager__form_sort'));
$form->addElement(form_makeListboxField(
'sort',
array(
'name' => $lang['media_sort_name'],
'date' => $lang['media_sort_date']),
$sort,
$lang['media_sort']));
$form->addElement(form_makeButton('submit', '', $lang['btn_apply']));
$form->printForm();
echo '</div>';

echo '<div class="clearer"></div>';
Expand All @@ -649,10 +658,12 @@ function media_tab_files($ns,$auth=null,$jump='') {
global $lang;
if(is_null($auth)) $auth = auth_quickaclcheck("$ns:*");

media_tab_files_options($ns);
$sort = $_REQUEST['sort'];
media_tab_files_options($ns, $sort);

echo '<div class="scroll-container" >';
$view = $_REQUEST['view'];

if($auth < AUTH_READ){
echo '<div class="nothing">'.$lang['media_perm_read'].'</div>'.NL;
}else{
Expand All @@ -661,7 +672,7 @@ function media_tab_files($ns,$auth=null,$jump='') {
} else {
echo '<ul class="mediamanager-thumbs" id="mediamanager__file_list">';
}
media_filelist($ns,$auth,$jump,true);
media_filelist($ns,$auth,$jump,true,$sort);
echo '</ul>';
}
echo '</div>';
Expand Down
10 changes: 8 additions & 2 deletions inc/search.php
Expand Up @@ -21,9 +21,10 @@
* @param int $lvl Recursion Level
* @author Andreas Gohr <andi@splitbrain.org>
*/
function search(&$data,$base,$func,$opts,$dir='',$lvl=1){
function search(&$data,$base,$func,$opts,$dir='',$lvl=1,$sort=false){
$dirs = array();
$files = array();
$filepaths = array();

//read in directories and files
$dh = @opendir($base.'/'.$dir);
Expand All @@ -35,9 +36,14 @@ function search(&$data,$base,$func,$opts,$dir='',$lvl=1){
continue;
}
$files[] = $dir.'/'.$file;
$filepaths[] = $base.'/'.$dir.'/'.$file;
}
closedir($dh);
sort($files);
if ($sort == 'date') {
@array_multisort(array_map('filemtime', $filepaths), SORT_NUMERIC, SORT_ASC, $files);
} else {
sort($files);
}
sort($dirs);

//give directories to userfunction then recurse
Expand Down
19 changes: 18 additions & 1 deletion lib/scripts/media.js
Expand Up @@ -60,18 +60,33 @@ var dw_mediamanager = {
}});
$tree.delegate('a', 'click', dw_mediamanager.list);

jQuery('#mediamanager__form_sort').find('input[type=submit]').hide();

// changing opened tab in the file list panel
jQuery('#mediamanager__layout_list').delegate('#mediamanager__tabs_files a', 'click', dw_mediamanager.list)
// changing type of the file list view
.delegate('#mediamanager__tabs_list a', 'click', dw_mediamanager.list_view)
// loading file details
.delegate('#mediamanager__file_list a', 'click', dw_mediamanager.details)
// search form
.delegate('#dw__mediasearch', 'submit', dw_mediamanager.list)
.delegate('#upload__file', 'change', dw_mediamanager.suggest);
// "upload as" field autofill
.delegate('#upload__file', 'change', dw_mediamanager.suggest)
// sort type selection
.delegate('#mediamanager__form_sort select', 'change', dw_mediamanager.list);

// changing opened tab in the file details panel
jQuery('#mediamanager__layout_detail').delegate('#mediamanager__tabs_details a', 'click', dw_mediamanager.details)
// "update new version" button
.delegate('#mediamanager__btn_update', 'submit', dw_mediamanager.list)
// revisions form
.delegate('#page__revisions', 'submit', dw_mediamanager.details)
.delegate('#page__revisions a', 'click', dw_mediamanager.details)
// meta edit form
.delegate('#mediamanager__save_meta', 'submit', dw_mediamanager.details)
// delete button
.delegate('#mediamanager__btn_delete', 'submit', dw_mediamanager.details)
// "restore this version" button
.delegate('#mediamanager__btn_restore', 'submit', dw_mediamanager.details);

},
Expand Down Expand Up @@ -270,6 +285,8 @@ var dw_mediamanager = {
params = $link[0].search.substr(1)+'&call=medialist';
} else if ($link[0].action) {
params = dw_mediamanager.form_params($link)+'&call=medialist';
} else if ($link.parents('form')) {
params = dw_mediamanager.form_params($link.parents('form'))+'&call=medialist';
}

// fetch the subtree
Expand Down

0 comments on commit abc306f

Please sign in to comment.