[LON-CAPA-cvs] cvs: loncom(version_2_2_X) /interface portfolio.pm

albertel lon-capa-cvs@mail.lon-capa.org
Wed, 19 Jul 2006 10:26:46 -0000


albertel		Wed Jul 19 06:26:46 2006 EDT

  Modified files:              (Branch: version_2_2_X)
    /loncom/interface	portfolio.pm 
  Log:
  - backport 1.132 1.133
  
  
Index: loncom/interface/portfolio.pm
diff -u loncom/interface/portfolio.pm:1.121.2.5 loncom/interface/portfolio.pm:1.121.2.6
--- loncom/interface/portfolio.pm:1.121.2.5	Mon Jul  3 00:25:08 2006
+++ loncom/interface/portfolio.pm	Wed Jul 19 06:26:43 2006
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # portfolio browser
 #
-# $Id: portfolio.pm,v 1.121.2.5 2006/07/03 04:25:08 albertel Exp $
+# $Id: portfolio.pm,v 1.121.2.6 2006/07/19 10:26:43 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -36,6 +36,7 @@
 use Apache::lonlocal;
 use Apache::lonnet;
 use Apache::longroup;
+use Apache::lonhtmlcommon;
 use HTML::Entities;
 use LONCAPA;
 
@@ -526,7 +527,7 @@
 }
 
 sub display_access {
-    my ($r,$url,$group,$can_setacl) = @_;
+    my ($r,$url,$group,$can_setacl,$port_path) = @_;
     my ($uname,$udom) = &get_name_dom($group);
     my $file_name = $env{'form.currentpath'}.$env{'form.access'};
     $file_name = &prepend_group($file_name,$group);
@@ -534,7 +535,9 @@
                                                                         $uname);
     my %access_controls = &Apache::lonnet::get_access_controls($current_permissions,$group,$file_name);
     my $aclcount = keys(%access_controls);
-    my $header = '<h3>'.&mt('Allowing others to retrieve portfolio file: [_1]',$env{'form.currentpath'}.$env{'form.access'}).'</h3>';
+    my $header = '<h3>'.&mt('Allowing others to retrieve portfolio file: [_1]',
+			    $port_path.$env{'form.currentpath'}.
+			    $env{'form.access'}).'</h3>';
     my $info .= 
 	&mt('Access to this file by others can be set to be one or more of the following types: public, passphrase-protected or conditional.').
 	'<br /><ul><li>'.
@@ -703,7 +706,7 @@
 
 
 sub update_access {
-    my ($r,$url,$group) = @_;
+    my ($r,$url,$group,$port_path) = @_;
     my $totalprocessed = 0;
     my %processing;
     my %title  = (
@@ -729,7 +732,7 @@
     }
     my $file_name = $env{'form.currentpath'}.$env{'form.selectfile'};
     $r->print('<h3>'.&mt('Allowing others to retrieve portfolio file: [_1]',
-              $file_name).'</h3>'."\n");
+              $port_path.$file_name).'</h3>'."\n");
     $file_name = &prepend_group($file_name,$group);
     my ($uname,$udom) = &get_name_dom($group);
     my ($errors,$outcome,$deloutcome,$new_values,$translation);
@@ -825,7 +828,10 @@
         }
         $r->print('<br /><a href="'.$url.'?access='.$env{'form.selectfile'}.
                   '&amp;currentpath='.$env{'form.currentpath'}.$group_arg.'">'.
-                   &mt('Display all access settings for this file').'</a>');
+                   &mt('Display all access settings for this file').'</a>'.
+                  '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.
+                  '<a href="'.$url.'?currentpath='.$env{'form.currentpath'}.
+                  $group_arg.'">'.&mt('Return to directory listing').'</a>');
     }
     return;
 }
@@ -1682,6 +1688,24 @@
     return;
 }
 
+sub coursegrp_portfolio_header {
+    my ($cdom,$cnum,$group,$grp_desc)=@_;
+    my $gpterm  = &Apache::loncommon::group_term();
+    my $ucgpterm = $gpterm;
+    $ucgpterm =~ s/^(\w)/uc($1)/e;
+    &Apache::lonhtmlcommon::add_breadcrumb
+        ({href=>"/adm/$cdom/$cnum/$group/smppg",
+          text=>"$ucgpterm: $grp_desc",
+          title=>"Go to group's home page"},
+         {href=>"//?group=$group",
+          text=>"Group Portfolio",
+          title=>"Display group portfolio"},);
+    my $output = &Apache::lonhtmlcommon::breadcrumbs(
+                         &mt('[_1] portfolio files - [_2]',$gpterm,$grp_desc));
+    return $output;
+}
+
+
 sub handler {
     # this handles file management
     my $r = shift;
@@ -1689,7 +1713,7 @@
          ['selectfile','currentpath','meta','lockinfo','currentfile','action',
 	  'fieldname','mode','rename','continue','group','access','setnum',
           'cnum','cdom','type','setroles']);
-    my ($uname,$udom,$portfolio_root,$url,$group,$caller,$title);
+    my ($uname,$udom,$portfolio_root,$url,$group,$caller,$title,$grp_desc);
     if ($r->uri =~ m|^(/adm/)([^/]+)|) {
         $url = $1.$2;
         $caller = $2;
@@ -1713,6 +1737,9 @@
             my %curr_groups = &Apache::longroup::coursegroups($udom,$uname,
 							       $group); 
             if (%curr_groups) {
+                my %grp_content = &Apache::longroup::get_group_settings(
+                                                         $curr_groups{$group});
+                $grp_desc = &unescape($grp_content{'description'});
                 if (($view_permission) || (&Apache::lonnet::allowed('rgf',
                                       $env{'request.course.id'}.'/'.$group))) {
                     $portfolio_root = &get_portfolio_root($group);
@@ -1759,6 +1786,7 @@
         $can_setacl = 1;
     }
 
+    my $port_path = &get_port_path($group);
     &Apache::loncommon::no_cache($r);
     &Apache::loncommon::content_type($r,'text/html');
     $r->send_http_header;
@@ -1836,10 +1864,10 @@
     } elsif ($env{'form.access'}) {
         $env{'form.selectfile'} = $env{'form.access'};
         $env{'form.action'} = 'chgaccess';
-        &display_access($r,$url,$group,$can_setacl);
+        &display_access($r,$url,$group,$can_setacl,$port_path);
     } elsif ($env{'form.action'} eq 'chgaccess') {
         if ($can_setacl) {
-            &update_access($r,$url,$group);
+            &update_access($r,$url,$group,$port_path);
         } else {
             &missing_priv($r,$url,'setacl',$group);
         }
@@ -1862,6 +1890,10 @@
 	if ($env{'form.currentpath'}) {
 	    $current_path = $env{'form.currentpath'};
 	}
+        if ($caller eq 'coursegrp_portfolio') {
+            &Apache::lonhtmlcommon::clear_breadcrumbs();
+            $r->print(&coursegrp_portfolio_header($udom,$uname,$group,$grp_desc));
+        }
         my @dir_list=&get_dir_list($portfolio_root,$group);
 	if ($dir_list[0] eq 'no_such_dir'){
 	    # two main reasons for this: