[LON-CAPA-cvs] cvs: loncom /interface lonaboutme.pm

raeburn raeburn@source.lon-capa.org
Mon, 29 Mar 2010 12:21:38 -0000


This is a MIME encoded message

--raeburn1269865298
Content-Type: text/plain

raeburn		Mon Mar 29 12:21:38 2010 EDT

  Modified files:              
    /loncom/interface	lonaboutme.pm 
  Log:
  - Propagate register=1 from aboutme page (both course page, and user page)
    when included in a course, e.g., when displaying list of available 
    group or user portfolio files.
  
  
--raeburn1269865298
Content-Type: text/plain
Content-Disposition: attachment; filename="raeburn-20100329122138.txt"

Index: loncom/interface/lonaboutme.pm
diff -u loncom/interface/lonaboutme.pm:1.145 loncom/interface/lonaboutme.pm:1.146
--- loncom/interface/lonaboutme.pm:1.145	Thu Mar 18 08:56:00 2010
+++ loncom/interface/lonaboutme.pm	Mon Mar 29 12:21:38 2010
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Personal Information Page
 #
-# $Id: lonaboutme.pm,v 1.145 2010/03/18 08:56:00 wenzelju Exp $
+# $Id: lonaboutme.pm,v 1.146 2010/03/29 12:21:38 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -168,16 +168,22 @@
 
     if ($is_course) {
         if ($target ne 'tex') {
-            my $brcrum = [{href=>"/adm/navmaps",text=>"Course Contents"},
-              {href=>"/adm/aboutme",text=>"Course Information"}];
-            my $start_page =
-                &Apache::loncommon::start_page(
-                    "Course Information",
-                     undef,
-                     {'function' => $env{'forcestudent'},
-                      'domain'   => $cdom,
-                      'force_register' => $env{'forceregister'},
-                      'bread_crumbs' => $brcrum});
+            my $args = {'function'       => $env{'forcestudent'},
+                        'domain'         => $cdom};
+            if ($env{'form.register'}) {
+                $args->{'force_register'} = $env{'form.register'};
+            } else {
+                my %coursedescription = 
+                    &Apache::lonnet::coursedescription($cdom.'_'.$cnum);
+                my $cdescr = $coursedescription{'description'};
+                my $brcrum = [{href=>"/adm/$cdom/$cnum/aboutme",
+                               text=>&mt('Course Information - [_1]',$cdescr),
+                               no_mt=>1}
+                             ];
+                $args->{'bread_crumbs'} = $brcrum;
+            }
+            my $start_page = &Apache::loncommon::start_page(
+                                 "Course Information",undef,$args);
             $r->print($start_page);
             $r->print('<h2>'.&mt('Group Portfolio').'</h2>');
             &print_portfiles_link($r,$is_course);
@@ -190,11 +196,6 @@
     my $forcestudent='';
     if ($env{'form.forcestudent'}) { $forcestudent='student'; };
 
-    my $forceregister = '';
-    if ($forcestudent eq '') {
-        $forceregister = $env{'form.register'};
-    }
-
 #------------Get rights
     my %courseenv=&Apache::lonnet::dump('environment',$cdom,$cnum);
      my %syllabus=&Apache::lonnet::dump('aboutme',$cdom,$cnum);
@@ -209,18 +210,13 @@
         my $rss_link = &Apache::lonrss::rss_link($cnum,$cdom);
         my $args = {'function' => undef,
                     'domain'   => $cdom,
-# if this page is part of course content it looses the menu line when switching from Edit Mode to Public Mode. To avoid
-#this, I take take the value of the environment Variable $env{form.register}
-#                    'force_register' => $forceregister};
-                    'force_register' => $env{'form.register'}};
-
-        if ($env{'form.popup'}) {
+                    'force_register' => $env{'form.register'},
+                   };
+        if ($env{'form.popup'}) { # Don't show breadcrumbs in popup window 
             $args->{'no_nav_bar'} = 1;
-		#Don't show breadcrumbs twice, when this page is part of course content and you call it  
-		} elsif ($env{'form.register'}) {
-			#do nothing
-        } else { # Don't show breadcrumbs in popup window
-            $args->{'bread_crumbs'} = [{href=>"/adm/$cdom/$cnum/aboutme",text=>"Personal Information Page"}];
+        } elsif (!$env{'form.register'}) { #Don't show breadcrumbs twice, when this page is part of course content and you call it
+            $args->{'bread_crumbs'} = [{href=>"/adm/$cdom/$cnum/aboutme",
+                                        text=>"Personal Information Page"}];
         }
         my $start_page = &Apache::loncommon::start_page('Personal Information Page',$rss_link,$args);
         $r->print($start_page);
@@ -526,6 +522,8 @@
         }
         $output .= '</ul>';
         $output .= '</div>';
+    } elsif ($is_course) {
+        $output .= '<div class="LC_info">'.&mt('There are currently no publicly accessible or password protected group portfolio files.').'</div>'; 
     }
     $r->print($output);
     return;
@@ -565,34 +563,47 @@
     my ($r,$is_course) = @_;
     my ($cdom,$cnum,$name) = &aboutme_info($r,$is_course);
     my $query_string = &build_query_string();
-    &Apache::lonhtmlcommon::clear_breadcrumbs();
-    my $forcestudent='';
-    if ($env{'form.forcestudent'}) { $forcestudent='student'; };
-
+    my $args = {'domain' => $cdom};
+    if ($env{'form.forcestudent'}) {
+        $args->{'function'} = 'student';
+    }
     my $output;
     if ($is_course) {
-        $output =
-            &Apache::loncommon::start_page('Viewable group portfolio files',undef,
-                                            {'function' => $forcestudent,
-                                             'domain'   => $cdom,});
-        $output .= '<h3>'.&mt('Group Portfolio files').'</h3>';
-    } else {
-        $output  =
-            &Apache::loncommon::start_page('Viewable portfolio files',undef,
-                                            {'function' => $forcestudent,
-                                             'domain'   => $cdom,});
-        if (!($env{'user.name'} eq 'public' && $env{'user.domain'} eq 'public')) {
-            &Apache::lonhtmlcommon::add_breadcrumb
-                ({href=>"/adm/$cdom/$cnum/aboutme".$query_string,
-                  text=>&mt('Personal Information Page - [_1]',$name),
-                  title=>&mt('Go to personal information page for [_1]', $name)},
-         {href=>"/adm/$cdom/$cnum/aboutme/portfolio",
-                  text=>&mt('Viewable files - [_1]', $name),
-                  title=>&mt('Viewable portfolio files for [_1]', $name)}
-            );
-            $output .= &Apache::lonhtmlcommon::breadcrumbs(&mt('Viewable portfolio files.'));
+        if (($env{'request.course.id'} eq $cdom.'_'.$cnum) && 
+            ($env{'form.register'})) {
+            $args->{force_register} = $env{'form.register'};
+        } else {
+            my %coursedescription = &Apache::lonnet::coursedescription($cdom.'_'.$cnum);
+            my $cdescr = $coursedescription{'description'}; 
+            my $brcrum = [{href=>"/adm/$cdom/$cnum/aboutme".$query_string,
+                           text=>&mt('Course Information - [_1]',$cdescr),
+                           no_mt=>1},
+                          {href=>"/adm/$cdom/$cnum/aboutme/portfolio".$query_string,
+                           text=>'Viewable group portfolio files'}
+                         ];
+            $args->{bread_crumbs} = $brcrum;
         }
-        $output .= '<h3>'.&mt('Portfolio files for [_1]',$name).'</h3>';
+        $output = &Apache::loncommon::start_page('Viewable group portfolio files',undef,$args).
+                  '<h3>'.&mt('Group Portfolio files').'</h3>';
+    } else {
+        if ($env{'request.course.id'} && $env{'form.register'}) {
+            $args->{force_register} = $env{'form.register'};
+        } else {
+            my $brcrum = [{href  => "/adm/$cdom/$cnum/aboutme".$query_string,
+                          text  => &mt('Personal Information Page - [_1]',$name),
+                          title => &mt('Go to personal information page for [_1]',$name),
+                          no_mt => 1},
+                         {href  => "/adm/$cdom/$cnum/aboutme/portfolio".$query_string,
+                          text  => 'Viewable files',
+                          title => &mt('Viewable portfolio files for [_1]',$name),
+                          no_mt => 1}
+                         ];
+            $args->{bread_crumbs} = $brcrum;
+        } 
+        $output  = 
+            &Apache::loncommon::start_page('Viewable portfolio files',
+                                           undef,$args).
+            '<h3>'.&mt('Portfolio files for [_1]',$name).'</h3>';
     }
     $r->print($output);
     return;
@@ -622,23 +633,28 @@
         }
         $output .= '>'.$lt{$type}.'</option>';
     }
-    $output .= '</select>'."\n".
-        '<input type="submit" name="portaccessbutton" value="'.
-        &mt('Update display').'" />';
-    $output .= '</form><br /><br />';
+    $output .= '</select>'."\n";
+    if ($env{'form.register'}) {
+        $output .= '<input type="hidden" name="register" value="'.$env{'form.register'}.'" />'."\n";
+    }
+    $output .= '<input type="submit" name="portaccessbutton" value="'.
+               &mt('Update display').'" />'.
+               '</form><br /><br />';
     $r->print($output);
     my $filecounts = &portfolio_files($r,'listfiles',\%lt,$is_course,
                                       $cdom,$cnum,$name);
     if (!($env{'user.name'} eq 'public' && $env{'user.domain'} eq 'public')) {
-        my $query_string = &build_query_string();
-        $r->print('<br /><br /><a href="/adm/'.$cdom.'/'.$cnum.
-                  '/aboutme'.$query_string.'">');
-        if ($is_course) {
-            $r->print(&mt('Course Information page'));
-        } else {
-            $r->print(&mt('Information about [_1]',$name));
+        if ($env{'request.course.id'} && $env{'form.register'}) {
+            my $query_string = &build_query_string();
+            $r->print('<br /><a href="/adm/'.$cdom.'/'.$cnum.
+                      '/aboutme'.$query_string.'">');
+            if ($is_course) {
+                $r->print(&mt('Course Information page'));
+            } else {
+                $r->print(&mt('Information about [_1]',$name));
+            }
+            $r->print('</a>');
         }
-        $r->print('</a>');
     }
     return;
 }

--raeburn1269865298--