--- loncom/cgi/quotacheck.pl 2014/07/31 15:57:24 1.5 +++ loncom/cgi/quotacheck.pl 2014/08/23 18:54:45 1.7 @@ -6,7 +6,7 @@ $|=1; # requested domain, or current server should belong to requested # domain. # -# $Id: quotacheck.pl,v 1.5 2014/07/31 15:57:24 musolffc Exp $ +# $Id: quotacheck.pl,v 1.7 2014/08/23 18:54:45 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -101,6 +101,7 @@ sub main { $crstype = $params{'type'}; } if ($params{'fixeddom'}) { $reqdom = $params{'fixeddom'} } + unless ($params{'sortby'}) { $params{'sortby'} = 'cdesc'; } } if (($reqdom eq '') && ($ENV{'QUERY_STRING'})) { &LONCAPA::loncgi::cgi_getitems($ENV{'QUERY_STRING'},\%gets); @@ -246,26 +247,57 @@ sub print_usage { } if (@showcourses) { - print(&Apache::loncommon::start_data_table(). - &Apache::loncommon::start_data_table_header_row() - .'' - .&Apache::lonlocal::mt('Course Type') - .'' - .'' - .&Apache::lonlocal::mt('Course Title') - .'' - .'' - .&Apache::lonlocal::mt('Institutional Code') - .'' - .'' - .&Apache::lonlocal::mt('Quota (MB)') - .'' - .'' - .&Apache::lonlocal::mt('Usage (MB)') - .'' - .'' - .&Apache::lonlocal::mt('Percent usage') - .'' + # Order in which columns are displayed from left to right + my @order = ('quotatype','cdesc','instcode','quota', + 'current_disk_usage','percent'); + + # Up and down arrows to indicate sort order + my @arrows = (' ▲',' ▼',''); + + # Default sort order and column title + my %columns = ( + quotatype => { + order => 'ascending', + text => &Apache::lonlocal::mt('Course Type'), + }, + cdesc => { + order => 'ascending', + text => &Apache::lonlocal::mt('Course Title'), + }, + instcode => { + order => 'ascending', + text => &Apache::lonlocal::mt('Institutional Code'), + }, + quota => { + order => 'descending', + text => &Apache::lonlocal::mt('Quota (MB)'), + }, + current_disk_usage => { + order => 'descending', + text => &Apache::lonlocal::mt('Usage (MB)'), + }, + percent => { + order => 'descending', + text => &Apache::lonlocal::mt('Percent usage'), + }, + ); + + # Print column headers + my $output = ''; + foreach my $key (@order) { + my $idx; + # Append an up or down arrow to sorted column + if ($sortby eq $key) { + $idx = ($columns{$key}{order} eq 'ascending') ? 0:1; + if ($sortorder eq 'rev') { $idx ++; } + $idx = $idx%2; + } else { $idx = 2; } # No arrow if column not sorted + $output .= ''.$columns{$key}{text} + .$arrows[$idx].''; + } + print(&Apache::loncommon::start_data_table() + .&Apache::loncommon::start_data_table_header_row().$output .&Apache::loncommon::end_data_table_header_row()); my $usagehash = {}; # Sortable hash of courses @@ -294,7 +326,7 @@ sub print_usage { $quotatype = 'textbook'; } if ($quota eq '') { - $quota = $domdefs{$crstype.'quota'}; + $quota = $domdefs{$quotatype.'quota'}; } $quota =~ s/[^\d\.]+//g; if ($quota eq '') {