');
+ $r->print(&Apache::loncommon::end_page());
+ return OK;
+ }
+
+ # Put out actions for directory, browse/upload + new file page.
+ &dircontrols($r,$uname,$udom,$thisdisfn, $current_disk_usage, $disk_quota);
&resourceactions($r,$uname,$udom,$thisdisfn); # Put out form used for printing/deletion etc.
my $numdir = 0;
my $numres = 0;
+ if ((@files == 0) && ($thisdisfn =~ m{^/$match_domain/$match_username})) {
+ if ($thisdisfn =~ m{^/$match_domain/$match_username$}) {
+ $r->print('
'.&mt('This Authoring Space is currently empty.').'
');
+ } else {
+ $r->print('
'.&mt('This subdirectory is currently empty.').'
');
+ }
+ $r->print(&Apache::loncommon::end_page());
+ return OK;
+ }
+
# Retrieving value for "sortby" and "sortorder" from QUERY_STRING
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
['sortby','sortorder']);
@@ -102,57 +151,86 @@ sub handler {
# Sort by name as default, not reversed
if (! exists($env{'form.sortby'})) { $env{'form.sortby'} = 'filename' }
if (! exists($env{'form.sortorder'})) { $env{'form.sortorder'} = '' }
-
my $sortby = $env{'form.sortby'};
my $sortorder = $env{'form.sortorder'};
- opendir(DIR,$fn);
- my @files = readdir(DIR);
- closedir(DIR);
-
- if ((@files == 0) && ($thisdisfn =~ m{^/$match_domain/$match_username})) {
- $r->print('
'.&mt('This Authoring Space is currently empty.').'
'
+ # Order in which columns are displayed from left to right
+ my @order = ('filetype','actions','filename','title',
+ 'pubstatus','cmtime','size');
+
+ # Up and down arrows to indicate sort order
+ my @arrows = (' ▲',' ▼','');
+
+ # Default sort order and column title
+ my %columns = (
+ filetype => {
+ order => 'ascending',
+ text => &mt('Type'),
+ },
+ actions => {
+ # Not sortable
+ text => &mt('Actions'),
+ },
+ filename => {
+ order => 'ascending',
+ text => &mt('Name'),
+ },
+ title => {
+ order => 'ascending',
+ text => &mt('Title'),
+ },
+ pubstatus => {
+ order => 'ascending',
+ text => &mt('Status'),
+ colspan => '2',
+ },
+ cmtime => {
+ order => 'descending',
+ text => &mt('Last Modified'),
+ },
+ size => {
+ order => 'ascending',
+ text => &mt('Size').' (kB)',
+ },
+ );
+
+ # 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 is not sorted
+ $output .= (($columns{$key}{order}) ?
+ '
'
.&Apache::loncommon::CSTR_pageheader()));
my $esc_thisdisfn = &Apache::loncommon::escape_single($thisdisfn);
- my $doctitle = 'LON-CAPA '.&mt('Authoring Space');
+ my $doctitle = 'LON-CAPA '.&mt($title);
my $newname = &mt('New Name');
my $pubdirscript=(<
@@ -411,7 +512,7 @@ ENDPUBDIRSCRIPT
}
sub dircontrols {
- my ($r,$uname,$udom,$thisdisfn) = @_;
+ my ($r,$uname,$udom,$thisdisfn, $current_disk_usage, $disk_quota) = @_;
my %lt=&Apache::lonlocal::texthash(
cnpd => 'Cannot publish directory',
cnrd => 'Cannot retrieve directory',
@@ -442,12 +543,18 @@ sub dircontrols {
go => 'Go',
prnt => 'Print contents of directory',
crea => 'Create a new directory or LON-CAPA document',
+ qs => 'Quick Search',
+ cs => 'Case Sensitive',
+ re => 'Regular Expression',
acti => 'Actions for current directory',
updc => 'Upload a new document',
pick => 'Please select an action to perform using the new filename',
);
my $mytype = $lt{'type'}; # avoid conflict with " and ' in javascript
- $r->print(<printf(<
-
-
-
-
END
@@ -523,26 +680,26 @@ END
sub resourceactions {
my ($r,$uname,$udom,$thisdisfn) = @_;
$r->print(<
+
-
+
-
+
-
+
-
+
-
+
END
@@ -620,7 +777,7 @@ sub putdirectory {
} else {
$actionitem =
'