Diff for /loncom/interface/lonviewclasslist.pm between versions 1.8 and 1.14

version 1.8, 2007/07/20 00:15:06 version 1.14, 2012/12/31 14:29:08
Line 34  use strict; Line 34  use strict;
 use Apache::loncoursedata();  use Apache::loncoursedata();
 use Apache::loncommon();  use Apache::loncommon();
 use Apache::lonhtmlcommon();  use Apache::lonhtmlcommon();
   use Apache::courseprefs();
 use Apache::Constants qw(:common :http REDIRECT);  use Apache::Constants qw(:common :http REDIRECT);
 use Apache::lonlocal;  use Apache::lonlocal;
 use Apache::lonnet;  use Apache::lonnet;
Line 60  sub handler { Line 61  sub handler {
         $r->send_http_header;          $r->send_http_header;
         return OK;          return OK;
     }      }
 #    &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},      &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
 #                                            ['action','state']);                                   ['register','forceedit','action','symb','todocs']);
     &Apache::lonhtmlcommon::clear_breadcrumbs();  
     &Apache::lonhtmlcommon::add_breadcrumb  
         ({href=>"/adm/viewclasslist",  
           text=>"View Classlist",  
           faq=>9,bug=>'Instructor Interface',});  
     #  Needs to be in a course  
     if (! ($env{'request.course.fn'})) {      if (! ($env{'request.course.fn'})) {
         $env{'user.error.msg'}=          $env{'user.error.msg'}=
             "/adm/viewclasslist:not in course role";              "/adm/viewclasslist:not in course role";
Line 76  sub handler { Line 71  sub handler {
     &Apache::loncommon::content_type($r,'text/html');      &Apache::loncommon::content_type($r,'text/html');
     $r->send_http_header;      $r->send_http_header;
     #      #
     my $start_page = &Apache::loncommon::start_page('Classlist');      my $start_page;
     my $breadcrumbs= &Apache::lonhtmlcommon::breadcrumbs(undef,      if ($env{'form.register'}) {
  'Enrollment Manager');          $start_page = &Apache::loncommon::start_page('Classlist',undef,
                                {'force_register' => $env{'form.register'}});
       } else {
           my $brcrum = [{'href' => 'adm/viewclasslist',
                          'text' => 'View Classlist'},];
           $start_page = &Apache::loncommon::start_page('Classlist',undef,
                                                        {'bread_crumbs' => $brcrum});
       }
     $r->print(<<ENDHEADER);      $r->print(<<ENDHEADER);
 $start_page  $start_page
 $breadcrumbs  
 ENDHEADER  ENDHEADER
   
     # Get classlist view settings      # Get classlist view settings
     my %viewsettings = &retrieve_view_settings();      my %viewsettings = &retrieve_view_settings();
   
     # Print classlist      if (($env{'form.forceedit'}) || ($env{'form.action'} eq 'setconfig'))  {
     if (keys(%viewsettings) > 0) {          if (&Apache::lonnet::allowed('opa',$env{'request.course.id'})) {
         $r->print(&html_classlist($r,\%viewsettings));              my $crstype = &Apache::loncommon::course_type();
               my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
               my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
               my $rosterprefs = &roster_prefs($crstype);
               my $allitems = {};
               if ($env{'form.action'} eq 'setconfig') {
                   my %values=&Apache::lonnet::dump('environment',$cdom,$cnum);
                   if (keys(%values) > 0) {
                       my ($numchanged,%changes,%disallowed);
                       my $prefs = {
                                       classlists => $rosterprefs,
                                   };
                       $changes{'classlists'} = {};
                       &Apache::courseprefs::process_changes($cdom,'classlists',\%values,
                                                             $rosterprefs,
                                                             $changes{'classlists'},
                                                             $allitems,\%disallowed,$crstype);
                       my $message;
                       if (keys(%{$changes{'classlists'}}) > 0) {
                           my $actions = ['classlists'];
                           $message =
                               &Apache::courseprefs::store_changes($cdom,$cnum,$actions,
                                                                   $actions,$prefs,\%values,
                                                                   \%changes,$crstype);
                       } else {
                           if ($crstype eq 'Community') {
                               $message = &mt('No changes made to community settings.');
                           } else {
                               $message = &mt('No changes made to course settings.');
                           }
                       }
                       $r->print(&Apache::loncommon::confirmwrapper($message));
                  } else {
                       $r->print('<div class="LC_info">'.
                                 &mt('Unable to retrieve current settings.').'<br />'.
                                 &mt('No changes saved.').
                                 '</div>');
                  }
              } else {
                  my $current = {};
                  my @settings = ('student_classlist_view','student_classlist_opt_in',
                                  'student_classlist_portfiles');
                  foreach my $setting (@settings) {
                      $current->{$setting} = $env{"course.$env{'request.course.id'}.$setting"};
                  }
                  my ($output,$rowtotal) =
                      &Apache::courseprefs::print_config_box($r,$cdom,'display',
                                                             'viewableroster',
                                                             $rosterprefs,$current,
                                                             $allitems,$crstype);
                  if ($output) {
                      $r->print('<form method="post" name="display" action="/adm/viewclasslist">'."\n".
                                '<input type="hidden" name="action" value="setconfig" />'."\n".
                                '<input type="hidden" name="register" value="'.$env{'form.register'}.'" />'."\n".
                                '<input type="hidden" name="forceedit" value="'.$env{'form.forceedit'}.'" />'."\n");
                      if ($env{'form.symb'}) {
                           $r->print('<input type="hidden" name="symb" value="'.$env{'form.symb'}.'" />'."\n");
                      }
                      if ($env{'form.symb'}) {
                           $r->print('<input type="hidden" name="todocs" value="'.$env{'form.todocs'}.'" />'."\n");
                      }
                      $r->print('<div class="LC_left_float">'.
                                $output.
                                '</div><br clear="all" />'.
                                '<input type="submit" value="'.&mt('Save').'" />'.
                                '</form>');
                  } else {
                      $r->print('<div class="LC_info">'.
                                &mt('No student-viewable course roster settings available.').
                                '</div>');
                  }
              }
           } else {
               $r->print('<div class="LC_info">'.
                         &mt('You do not have rights to modify student-viewable course roster settings.').
                         '</div>');
           }
     } else {      } else {
         $r->print('<h3>'.  
                   &mt("Display of a student-viewable course roster is not currently enabled.").          # Print classlist
                   '</h3>');          if (keys(%viewsettings) > 0) {
               $r->print(&html_classlist($r,\%viewsettings));
           } else {
               $r->print('<div class="LC_info">'.
                         &mt("Display of a student-viewable course roster is not currently enabled.").
                         '</div>');
           }
     }      }
     #      #
     # Finish up      # Finish up
Line 123  sub retrieve_view_settings { Line 206  sub retrieve_view_settings {
     return %viewsettings;      return %viewsettings;
 }  }
   
   sub roster_prefs {
       my ($crstype) = @_;
       my %lt;
       if ($crstype eq 'Community') {
           %lt = &Apache::lonlocal::texthash (
                     stuv => 'Member-viewable membership list options',
                     stul => 'Member agreement needed to be listed',
           );
       } else {
           %lt = &Apache::lonlocal::texthash(
                     stuv => 'Student-viewable classlist options',
                     stul => 'Student agreement needed to be listed',
           );
       }
       $lt{'incl'} = &mt('Include link to accessible portfolio files');
   
       return 
           { text => 'Student-viewable roster settings',
             header => [ {col1 => 'Setting',
                          col2 => $lt{'stuv'}}],
             ordered => ['student_classlist_view',
                         'student_classlist_opt_in',
                         'student_classlist_portfiles'],
             itemtext => {
                          student_classlist_view        => $lt{'stuv'},
                          student_classlist_opt_in      => $lt{'stul'},
                          student_classlist_portfiles   => $lt{'incl'},
                         },
           };
   }
   
 sub html_classlist {  sub html_classlist {
     my ($r,$viewsettings) = @_;      my ($r,$viewsettings) = @_;
     my ($Str,$title,$secdisplay,$cid,$cdom,$cnum,$listtype,%publicroster);      my ($Str,$title,$secdisplay,$cid,$cdom,$cnum,$listtype,%publicroster);
Line 262  sub html_classlist { Line 376  sub html_classlist {
             '<td>'.('&nbsp;'x2).              '<td>'.('&nbsp;'x2).
             &Apache::loncommon::messagewrapper              &Apache::loncommon::messagewrapper
             ('<img src="/adm/lonIcons/mailto.gif" border="0" />&nbsp;'.              ('<img src="/adm/lonIcons/mailto.gif" border="0" />&nbsp;'.
              $username.'@'.$domain,$username,$domain).'</td>';               $username.':'.$domain,$username,$domain).'</td>';
         if (! $viewsettings->{'limit_to_section'}) {          if (! $viewsettings->{'limit_to_section'}) {
             $Str .= '<td>'.$section.'</td>';              $Str .= '<td>'.$section.'</td>';
         }          }
Line 275  sub html_classlist { Line 389  sub html_classlist {
                     $link = '<a href="/adm/'.$domain.'/'.$username.'/aboutme/portfolio?classlist">'.$link.'</a>';                       $link = '<a href="/adm/'.$domain.'/'.$username.'/aboutme/portfolio?classlist">'.$link.'</a>'; 
                 }                  }
             } else {              } else {
                 $link = &mt("Error retrieving file information.");                  $link = '<span class="LC_error">'.&mt("Error retrieving file information.").'</span>';
             }              }
             $Str .= '<td>'.$link.'</td>';              $Str .= '<td>'.$link.'</td>';
         }          }
Line 337  sub process_student_prefs { Line 451  sub process_student_prefs {
         my $putresult = &Apache::lonnet::put('environment',          my $putresult = &Apache::lonnet::put('environment',
                                              \%changeHash,$udom,$uname);                                               \%changeHash,$udom,$uname);
         if ($putresult eq 'ok') {          if ($putresult eq 'ok') {
             &Apache::lonnet::appenv(%changeHash);              &Apache::lonnet::appenv(\%changeHash);
             my $result = &Apache::lonnet::put('publicroster',{$student => $showinroster,},$cdom,$cnum);              my $result = &Apache::lonnet::put('publicroster',{$student => $showinroster,},$cdom,$cnum);
             if ($result eq 'ok') {              if ($result eq 'ok') {
                 $output .= &mt('Display of your name in the student-viewable roster set to <b>[_1]</b>.',$visibility);                  $output .= &mt('Display of your name in the student-viewable roster set to <b>[_1]</b>.',$visibility);
             } else {              } else {
                 $output .= &mt('Error occurred saving display setting.');                  $output .= '<span class="LC_error">'.&mt('Error occurred saving display setting.').'</span>';
             }              }
         } else {          } else {
             $output .= &mt('Error occurred saving display setting.');              $output .= '<span class="LC_error">'.&mt('Error occurred saving display setting.').'</span>';
         }          }
     } else {      } else {
         $output .= &mt('Display of your name in the student-viewable roster unchanged (set to <b>[_1]</b>).',$visibility);          $output .= &mt('Display of your name in the student-viewable roster unchanged (set to <b>[_1]</b>).',$visibility);

Removed from v.1.8  
changed lines
  Added in v.1.14


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>