--- loncom/interface/portfolio.pm 2009/01/03 19:39:37 1.196.2.2 +++ loncom/interface/portfolio.pm 2010/01/25 21:24:26 1.212.2.2 @@ -1,7 +1,7 @@ # The LearningOnline Network # portfolio browser # -# $Id: portfolio.pm,v 1.196.2.2 2009/01/03 19:39:37 raeburn Exp $ +# $Id: portfolio.pm,v 1.212.2.2 2010/01/25 21:24:26 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -87,13 +87,12 @@ sub display_common { my $groupitem = &group_form_data(); my $iconpath= $r->dir_config('lonIconsURL') . "/"; - my %text=&Apache::lonlocal::texthash( + my %lt=&Apache::lonlocal::texthash( 'upload' => 'Upload', - 'upload_label' => - 'Upload file to current directory:', + 'upload_label' => 'Upload file to current directory', 'createdir' => 'Create Subdirectory', 'createdir_label' => - 'Create subdirectory in current directory:', + 'Create subdirectory in current directory', 'parse' => 'If HTML file, upload embedded images/multimedia/css/linked files' ); my $escuri = &HTML::Entities::encode($r->uri,'&<>"'); @@ -106,51 +105,51 @@ sub display_common { $parse_check = <<"END";
- END } - $r->print(<<"TABLE"); -$help_portfolio - - - - - - - - - -
- $text{'upload_label'} - -
- $groupitem - - - - - - -$help_fileupload -$parse_check -
-
- $text{'createdir_label'} - -
- $groupitem - - - - - $help_createdir -
-
-TABLE - } + + $r->print('
'.$help_portfolio); + # Upload File + $r->print('
' + .'
' + .'
' + .''.$lt{'upload_label'}.'' + .$groupitem + .'' + .'' + .'' + .'' + .'' + .'' + .$help_fileupload + .$parse_check + .'
' + .'
' + .'
' + ); + # Create Subdirectory + $r->print('
' + .'
' + .'
' + .''.$lt{'createdir_label'}.'' + .''.$groupitem + .'' + .'' + .'' + .'' + .'' + .$help_createdir + .'
' + .'
' + .'
' + ); + $r->print('
'); + } # end "if can_upload" + my @tree = split (/\//,$current_path); my %anchor_fields = ( 'selectfile' => $port_path, @@ -159,6 +158,7 @@ TABLE 'fieldname' => $env{"form.fieldname"}, 'continue' => $env{"form.continue"} ); + $r->print('
'); $r->print(''.&make_anchor($url,\%anchor_fields,$port_path).'/'); if (@tree > 1){ my $newCurrentPath = '/'; @@ -218,11 +218,11 @@ sub display_usage { $prog_width = 100; } my $disk_meter = ' -
'.&mt('Currently using [_1] of the [_2] available.',$usage.' MB ('.$percent.'%)',$quota.' MB')."\n". -'
'."\n". -'
'."\n". +
'.&mt('Currently using [_1] of the [_2] available.',$usage.' MB ('.$percent.'%)',$quota.' MB')."\n". +'
'."\n". +'
'."\n". '
'."\n". -'

'; +'
'; return $disk_meter; } @@ -232,7 +232,7 @@ sub display_directory_line { $href_location, $url, $current_path, $access_admin_text, $versions)=@_; my $fullpath = &prepend_group($current_path.$filename); - $r->print(''); + $r->print(&Apache::loncommon::start_data_table_row()); $r->print($line); # contains first two cells of table my $lock_info; if ($version_flag) { # versioned can't be versioned, so TRUE when root file @@ -268,15 +268,19 @@ sub display_directory_line { $r->print(''.$size.''); $r->print(''.&Apache::lonlocal::locallocaltime($mtime).''); if ($select_mode ne 'true') { - $r->print(''. - &mt($curr_access).'   '); + $r->print('  '); # Display status + $r->print('' + .&mt($curr_access).'   ' + ); my %anchor_fields = ( 'access' => $filename, 'currentpath' => $current_path ); $r->print(&make_anchor($url, \%anchor_fields, $access_admin_text).''); + } else { + $r->print('  '); # Display status } - $r->print(''.$/); + $r->print(&Apache::loncommon::end_data_table_row().$/); } sub display_directory { @@ -308,7 +312,9 @@ sub display_directory { $display_out = '
'. &group_form_data(). ''. + '

'. ''. + '

'. ''. ''. '
'; @@ -318,21 +324,30 @@ sub display_directory { } if ($select_mode eq 'true') { $r->print('
'); - $r->print(''. - ''); + $r->print(&Apache::loncommon::start_data_table() + .&Apache::loncommon::start_data_table_header_row() + .'' + .'' + .'' + .'' + .'' + .'' + .&Apache::loncommon::end_data_table_header_row() + ); } else { $r->print(''); $r->print(&Apache::loncommon::help_open_topic('Portfolio FileList', &mt('Using the portfolio file list'))); - $r->print('
Select  NameSizeLast Modified
'.&mt('Select').'  '.&mt('Name').''.&mt('Size').''.&mt('Last Modified').' 
'. - '' + $r->print(&Apache::loncommon::start_data_table() + .&Apache::loncommon::start_data_table_header_row() .'' .'' .'' .'' .'' + .'' .'' - .''); + .&Apache::loncommon::end_data_table_header_row()); } $r->print("\n".&group_form_data()."\n"); @@ -390,12 +405,17 @@ sub display_directory { $version_flag = ' '; } if ($dirptr&$testdir) { - my $colspan='colspan="2"'; + my $colspan_folder=''; + my $colspan_fill=''; if ($select_mode eq 'true'){ - undef($colspan); + $colspan_fill=' colspan="3"'; + } else { + $colspan_folder=' colspan="2"'; + $colspan_fill=' colspan="4"'; } - $r->print(''); - $r->print(''); + $r->print(''); + $r->print(''.&mt('closed folder').'' + .''); my %anchor_fields = ( 'selectfile' => $filename.'/', 'currentpath' => $current_path.$filename.'/', @@ -403,7 +423,9 @@ sub display_directory { 'fieldname' => $env{"form.fieldname"}, 'continue' => $env{"form.continue"} ); - $r->print(''); + $r->print('' + .''); + $r->print(' '); $r->print(''); } else { my $css_class = 'LC_browser_file'; @@ -411,7 +433,7 @@ sub display_directory { if ($select_mode eq 'true') { $line='
'.&mt('Actions'). &Apache::loncommon::help_open_topic('Portfolio FileAction').'  '.&mt('Name').&Apache::loncommon::help_open_topic('Portfolio OpenFile').''.&mt('Size').''.&mt('Last Modified').' '.&mt('Current Access Status').&Apache::loncommon::help_open_topic('Portfolio ShareFile').'
'.&mt('closed folder').''.&mt('Go to ...').'
'.&mt('Go to ...').''.$version_flag.''.&make_anchor($url,\%anchor_fields,$filename.'/').''.$version_flag.''.&make_anchor($url,\%anchor_fields,$filename.'/').'
'; } if ($can_modify) { - my $cat=''.&mt('Catalog Information').
-                            ''; + my $cat=''.&mt('Metadata').''; +# src="'.#&Apache::loncommon::lonhttpdurl('/res/adm/pages/catalog.gif').'" />'; my %anchor_fields = ( 'rename' => $filename, currentpath => $current_path @@ -494,20 +516,24 @@ sub display_directory { } } if ($select_mode eq 'true') { - $r->print('
+ $r->print(&Apache::loncommon::end_data_table().' -
- +

+
+ +

'); } else { - $r->print(''); + $r->print(&Apache::loncommon::end_data_table()); if ($can_delete) { $r->print(' +

'. &Apache::loncommon::help_open_topic('Portfolio DeleteFile').' +

' @@ -1332,7 +1358,7 @@ sub standard_settings { &build_access_summary($r,$count,$chg,%conditionals); $r->print(&Apache::loncommon::end_data_table()); } else { - $r->print(&make_anchor($url,\%anchor_fields,&mt('Add conditional access')).' '.&mt('based on domain, username, or course affiliation.')); + $r->print(&make_anchor($url,\%anchor_fields,&mt('Add conditional access')).' '.&mt('based on domain, username, or course/community affiliation.')); } } @@ -1520,13 +1546,13 @@ sub course_row { $r->print(''); } $r->print('
'.&mt('Add a roles-based condition'). - ' {'domain'}','$content->{'number'}', '$uctype'".')" value="" />'); $newrole_id = $max_id; } else { - $r->print(''); + $r->print(''); } $r->print(&add_course_role($num,$newrole_id)); $r->print(''); @@ -1547,14 +1573,14 @@ sub domains_row { my ($r,$status,$item,$all_doms,$access_controls,$now,$then) = @_; my ($num,$scope,$end,$start) = &set_identifiers($status,$item,$now,$then, 'domains'); - my $dom_select = ''. ' '; if ($status eq 'old') { my $content = $$access_controls{$item}; foreach my $dom (@{$all_doms}) { if ((@{$content->{'dom'}} > 0) && (grep(/^\Q$dom\E$/,@{$content->{'dom'}}))) { - $dom_select .= ''; } else { $dom_select .= ''; @@ -1691,12 +1717,12 @@ sub role_selectors { 'group' => $groups, ); foreach my $item ('role','access','section','group') { - $output .= ''."\n"; foreach my $entry (@{$allitems{$item}}) { if ($caller eq 'display') { if ((@{$$content{'roles'}{$role_id}{$item}} > 0) && (grep(/^\Q$entry\E$/,@{$$content{'roles'}{$role_id}{$item}}))) { - $output .= ' '; next; } @@ -1794,15 +1820,28 @@ ENDSMP ENDSMP $r->print($javascript); - $r->print("

".&mt('Select portfolio files')."

". - &mt('Check as many as you wish in response to the problem.')."
"); + $r->print("

".&mt('Select portfolio files')."

"); my @otherfiles=&Apache::lonnet::files_not_in_path($env{'user.name'}, $env{'form.currentpath'}); if (@otherfiles) { - $r->print("".&mt('Files selected from other directories:')."
"); + $r->print(&Apache::loncommon::start_data_table() + .&Apache::loncommon::start_data_table_header_row() + .''.&mt('Files selected from other directories:')."" + .&Apache::loncommon::end_data_table_header_row() + ); foreach my $file (@otherfiles) { - $r->print($file."
"); + $r->print(&Apache::loncommon::start_data_table_row() + .''.$file."" + .&Apache::loncommon::end_data_table_row() + ); } + $r->print(&Apache::loncommon::end_data_table() + .'
' + ); } + $r->print('
' + .&mt('Check as many files as you wish in response to the problem:') + .'
' + ); } @@ -2099,7 +2138,7 @@ sub missing_priv { $r->print(&mt('You do not have sufficient privileges to [_1] ', $longtext->{$priv})); if (defined($env{'form.group'})) { - $r->print(&mt("in the group's file repository.")); + $r->print(&mt("in the group's group portfolio.")); $rtnlink .= &group_args() } else { $r->print(&mt('in this portfolio.')); @@ -2207,7 +2246,7 @@ sub handler { $r->print(&mt('Not a valid group for this course')); $earlyout = 1; } - $title = &mt('Group files for [_1]', $group); + $title = &mt('Group portfolio for [_1]', $group); } else { $r->print(&mt('Invalid group')); $earlyout = 1; @@ -2247,22 +2286,20 @@ sub handler { &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; # Give the LON-CAPA page header + my $brcrum = [{href=>"/adm/portfolio",text=>"Portfolio Manager"}]; + if ($env{"form.mode"} eq 'selectfile'){ $r->print(&Apache::loncommon::start_page($title,undef, {'only_body' => 1})); } elsif ($env{'form.action'} eq 'rolepicker') { $r->print(&Apache::loncommon::start_page('New role-based condition',undef, {'no_nav_bar' => 1, })); - } else { + } elsif ($caller eq 'coursegrp_portfolio') { $r->print(&Apache::loncommon::start_page($title)); - } - $r->rflush(); - if ($caller ne 'coursegrp_portfolio') { - &Apache::lonhtmlcommon::clear_breadcrumbs(); - &Apache::lonhtmlcommon::add_breadcrumb({href=>"/adm/portfolio", - text=>"Portfolio Manager"}); + } else { + $r->print(&Apache::loncommon::start_page($title,undef, + {'bread_crumbs' => $brcrum})); if (!&Apache::lonnet::usertools_access($uname,$udom,'portfolio')) { - $r->print(&Apache::lonhtmlcommon::breadcrumbs()); $r->print('

'.&mt('No user portfolio available') .'

'. &mt('This is a result of one of the following:').'
    '. '
  • '.&mt('The administrator of this domain has disabled portfolio functionality for this specific user.').'
  • '. @@ -2270,10 +2307,9 @@ sub handler { '
'); $r->print(&Apache::loncommon::end_page()); return OK; - } else { - $r->print(&Apache::lonhtmlcommon::breadcrumbs('Portfolio Manager')); } } + $r->rflush(); my ($blocked,$blocktext) = &Apache::loncommon::blocking_status('port',$uname,$udom); if ($blocked) {