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

version 1.13, 2010/03/25 17:38:43 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 61  sub handler { Line 62  sub handler {
         return OK;          return OK;
     }      }
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},      &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
                                             ['register']);                                   ['register','forceedit','action','symb','todocs']);
     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 87  ENDHEADER Line 88  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('<div class="LC_info">'.  
                   &mt("Display of a student-viewable course roster is not currently enabled.").          # Print classlist
                   '</div>');          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);

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


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