Diff for /loncom/interface/lonpreferences.pm between versions 1.89 and 1.93

version 1.89, 2006/06/14 18:59:25 version 1.93, 2006/06/26 18:56:50
Line 304  sub rolesprefchanger { Line 304  sub rolesprefchanger {
     if ($env{'environment.recentroles'}) {      if ($env{'environment.recentroles'}) {
         my %recent_roles =          my %recent_roles =
                &Apache::lonhtmlcommon::get_recent('roles',$env{'environment.recentrolesn'});                 &Apache::lonhtmlcommon::get_recent('roles',$env{'environment.recentrolesn'});
           my %frozen_roles =
                  &Apache::lonhtmlcommon::get_recent_frozen('roles',$env{'environment.recentrolesn'});
                   
           my %role_text = &rolespref_get_role_text([keys(%recent_roles)]);
           my @sorted_roles = sort {$role_text{$a} cmp $role_text{$b}} keys(%role_text);
   
         $roles_check_list .=          $roles_check_list .=
     &Apache::loncommon::start_data_table().      &Apache::loncommon::start_data_table().
     &Apache::loncommon::start_data_table_header_row().      &Apache::loncommon::start_data_table_header_row().
Line 313  sub rolesprefchanger { Line 318  sub rolesprefchanger {
     &Apache::loncommon::end_data_table_header_row().      &Apache::loncommon::end_data_table_header_row().
     "\n";      "\n";
  my $count;   my $count;
         foreach $role_key (sort(keys(%recent_roles))) {          foreach $role_key (@sorted_roles) {
             my $checked = "";              my $checked = "";
             my $value = $recent_roles{$role_key};              my $value = $recent_roles{$role_key};
             if ($value eq 'role_frozen') {              if ($frozen_roles{$role_key}) {
                 $checked = "checked=\"checked\"";                  $checked = "checked=\"checked\"";
             }              }
 # get course information  
             my ($role,$rest) = split(/\./, $role_key);  
             my $trole = &Apache::lonnet::plaintext($role);  
             my ($tdomain,$other,$tsection)=  
                     split(/\//,Apache::lonnet::declutter($rest));  
             my $tother = '-';  
             if ($role =~ /cc|st|in|ta/ ) {  
                my %newhash=&Apache::lonnet::coursedescription($tdomain."_".$other);  
                $tother = " - ".$newhash{'description'};  
             } elsif ($role =~ /dc/) {  
                $tother = "";  
             } else {  
                $tother = " - $other";  
             }  
   
             my $section="";  
     if ($tsection) {  
                $section = " - Section/Group: $tsection";  
             }  
     $count++;      $count++;
             $roles_check_list .=              $roles_check_list .=
  &Apache::loncommon::start_data_table_row().   &Apache::loncommon::start_data_table_row().
Line 345  sub rolesprefchanger { Line 331  sub rolesprefchanger {
  "<input type=\"checkbox\" $checked name=\"freezeroles\"".   "<input type=\"checkbox\" $checked name=\"freezeroles\"".
  " id=\"freezeroles$count\" value=\"$role_key\" /></td>".   " id=\"freezeroles$count\" value=\"$role_key\" /></td>".
  "<td><label for=\"freezeroles$count\">".   "<td><label for=\"freezeroles$count\">".
  "$trole - $tdomain $tother $section</label></td>".   "$role_text{$role_key}</label></td>".
  &Apache::loncommon::end_data_table_row(). "\n";   &Apache::loncommon::end_data_table_row(). "\n";
         }          }
         $roles_check_list .= "</table>\n";          $roles_check_list .= "</table>\n";
Line 370  sub rolesprefchanger { Line 356  sub rolesprefchanger {
 </form>');  </form>');
 }  }
   
   sub rolespref_get_role_text {
   # Get a line of text for each role
       my ($roles) = @_;
       my %roletext = ();
   
       foreach my $item (@$roles) {
   # get course information
           my ($role,$rest) = split(/\./, $item);
           my $trole = "";
           $trole = &Apache::lonnet::plaintext($role);
           my ($tdomain,$other,$tsection)= split(/\//,Apache::lonnet::declutter($rest));
           my $tother = '-';
           if ($role =~ /^(cc|st|in|ta|ep|cr)/ ) {
               my %newhash=&Apache::lonnet::coursedescription($tdomain."_".$other);
               $tother = " - ".$newhash{'description'};
           } elsif ($role =~ /dc/) {
               $tother = "";
           } else {
               $tother = " - $other";
           }
    
           my $section="";
           if ($tsection) {
               $section = " - Section/Group: $tsection";
           }
           $roletext{$item} = $tdomain." - ".$trole.$tother.$section;
       }
       return %roletext;
   }
   
 sub verify_and_change_rolespref {  sub verify_and_change_rolespref {
     my $r = shift;      my $r = shift;
     my $user       = $env{'user.name'};      my $user       = $env{'user.name'};
Line 391  sub verify_and_change_rolespref { Line 407  sub verify_and_change_rolespref {
         &Apache::lonnet::put('environment',{'recentrolesn' => $hotlist_n});          &Apache::lonnet::put('environment',{'recentrolesn' => $hotlist_n});
         &Apache::lonnet::appenv('environment.recentrolesn' => $hotlist_n);          &Apache::lonnet::appenv('environment.recentrolesn' => $hotlist_n);
         if ($hotlist_flag) {          if ($hotlist_flag) {
             $message.="<br />".&mt('Display [_1]$hotlist_n Most Recent Roles',              $message.="<br />".
    $hotlist_n)."\n";   &mt('Display [_1] Most Recent Roles',$hotlist_n)."\n";
         }          }
     }      }
   
 # Get list of froze roles and list of recent roles  # Get list of froze roles and list of recent roles
     my @freeze_list = &Apache::loncommon::get_env_multiple('form.freezeroles');      my @freeze_list = &Apache::loncommon::get_env_multiple('form.freezeroles');
     my %freeze = ();      my %freeze = ();
       my %roletext = ();
   
     foreach my $key (@freeze_list) {      foreach my $key (@freeze_list) {
         $freeze{$key}='role_frozen';          $freeze{$key}='1';
     }      }
       
     my %recent_roles =      my %recent_roles =
         &Apache::lonhtmlcommon::get_recent('roles',$env{'environment.recentrolesn'});          &Apache::lonhtmlcommon::get_recent('roles',$env{'environment.recentrolesn'});
       my %frozen_roles =
           &Apache::lonhtmlcommon::get_recent_frozen('roles',$env{'environment.recentrolesn'});
       my %role_text = &rolespref_get_role_text([keys(%recent_roles)]);
   
 # Unset any roles that were previously frozen but aren't in list  # Unset any roles that were previously frozen but aren't in list
   
     foreach my $role_key (sort(keys(%recent_roles))) {      foreach my $role_key (sort(keys(%recent_roles))) {
         if (($recent_roles{$role_key} eq 'role_frozen') &&          if (($frozen_roles{$role_key}) && (!exists($freeze{$role_key}))) {
                      (!exists($freeze{$role_key}))) {      $message .= "<br />".&mt('Unfreezing Role: [_1]',$role_text{$role_key})."\n";
     $message .= "<br />".&mt('Unfreezing Role: [_1]',$role_key)."\n";      &Apache::lonhtmlcommon::store_recent('roles',$role_key,' ',0);
     &Apache::lonhtmlcommon::store_recent('roles',$role_key,' ');  
         }          }
     }      }
   
 # Freeze selected roles  # Freeze selected roles
     foreach my $role_key (@freeze_list) {      foreach my $role_key (@freeze_list) {
         $message .= "<br />".&mt('Freezing Role: [_1]',$role_key)."\n";          if (!$frozen_roles{$role_key}) {
         if ($recent_roles{$role_key} ne 'role_frozen') {               $message .= "<br />".&mt('Freezing Role: [_1]',$role_text{$role_key})."\n";
              &Apache::lonhtmlcommon::store_recent('roles',               &Apache::lonhtmlcommon::store_recent('roles',
                                           $role_key,'role_frozen');                                            $role_key,' ',1);
         }          }
     }      }
     $message .= "<hr /><br />\n";      $message .= "<hr /><br />\n";

Removed from v.1.89  
changed lines
  Added in v.1.93


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