Diff for /loncom/interface/lonparmset.pm between versions 1.206 and 1.207

version 1.206, 2005/06/03 21:19:04 version 1.207, 2005/06/04 15:26:13
Line 1805  $output Line 1805  $output
 ENDenv  ENDenv
 }  }
 ##################################################  ##################################################
   # Overview mode
   ##################################################
 my $tableopen;  my $tableopen;
   
 sub tablestart {  sub tablestart {
Line 1827  sub tableend { Line 1828  sub tableend {
     }      }
 }  }
   
   sub readdata {
       my ($crs,$dom)=@_;
   # Read coursedata
       my $resourcedata=&Apache::lonnet::get_courseresdata($crs,$dom);
   # Read userdata
   
       my $classlist=&Apache::loncoursedata::get_classlist();
       foreach (keys %$classlist) {
           # the following undefs are for 'domain', and 'username' respectively.
           if ($_=~/^(\w+)\:(\w+)$/) {
       my ($tuname,$tudom)=($1,$2);
       my $useropt=&Apache::lonnet::get_userresdata($tuname,$tudom);
               foreach my $userkey (keys %{$useropt}) {
    if ($userkey=~/^$env{'request.course.id'}/) {
                       my $newkey=$userkey;
       $newkey=~s/^($env{'request.course.id'}\.)/$1\[useropt\:$tuname\:$tudom\]\./;
       $$resourcedata{$newkey}=$$useropt{$userkey};
    }
       }
    }
       }
       return $resourcedata;
   }
   
   sub extractuser {
       my $key=shift;
       return ($key=~/^$env{'request.course.id'}.\[useropt\:(\w+)\:(\w+)\]\./);
   }
   
 sub overview {  sub overview {
     my $r=shift;      my $r=shift;
     my $bodytag=&Apache::loncommon::bodytag(      my $bodytag=&Apache::loncommon::bodytag(
Line 1846  $breadcrumbs Line 1876  $breadcrumbs
 <input type="hidden" name="overview" value="1" />  <input type="hidden" name="overview" value="1" />
 ENDOVER  ENDOVER
 # Setting  # Setting
     my %olddata=&Apache::lonnet::dump('resourcedata',$dom,$crs);  # Set userlevel immediately
   # Do an intermediate store of course level
       my $olddata=&readdata($crs,$dom);
     my %newdata=();      my %newdata=();
     undef %newdata;      undef %newdata;
     my @deldata=();      my @deldata=();
Line 1855  ENDOVER Line 1887  ENDOVER
  if ($_=~/^form\.([a-z]+)\_(.+)$/) {   if ($_=~/^form\.([a-z]+)\_(.+)$/) {
     my $cmd=$1;      my $cmd=$1;
     my $thiskey=$2;      my $thiskey=$2;
       my ($tuname,$tudom)=&extractuser($thiskey);
       my $tkey=$thiskey;
               if ($tuname) {
    $tkey=~s/\.\[useropt\:$tuname\:$tudom\]\./\./;
       }
     if ($cmd eq 'set') {      if ($cmd eq 'set') {
  my $data=$env{$_};   my $data=$env{$_};
  if ($olddata{$thiskey} ne $data) { $newdata{$thiskey}=$data; }   if ($$olddata{$thiskey} ne $data) { 
       if ($tuname) {
    if (&Apache::lonnet::put('resourcedata',{$tkey=>$data},$tudom,$tuname) eq 'ok') {
       $r->print('<br />'.&mt('Stored modified parameter for').' '.
         &Apache::loncommon::plainname($tuname,$tudom));
    } else {
       $r->print('<h2><font color="red">'.
         &mt('Error storing parameters').'</font></h2>');
    }
    &Apache::lonnet::devalidateuserresdata($tuname,$tudom);
       } else {
    $newdata{$thiskey}=$data;
                       } 
    }
     } elsif ($cmd eq 'del') {      } elsif ($cmd eq 'del') {
  push (@deldata,$thiskey);   if ($tuname) {
       if (&Apache::lonnet::del('resourcedata',[$tkey],$tudom,$tuname) eq 'ok') {
    $r->print('<br />'.&mt('Deleted parameter for').' '.&Apache::loncommon::plainname($tuname,$tudom));
       } else {
    $r->print('<h2><font color="red">'.
     &mt('Error deleting parameters').'</font></h2>');
       }
       &Apache::lonnet::devalidateuserresdata($tuname,$tudom);
    } else {
       push (@deldata,$thiskey);
    }
     } elsif ($cmd eq 'datepointer') {      } elsif ($cmd eq 'datepointer') {
  my $data=&Apache::lonhtmlcommon::get_date_from_form($env{$_});   my $data=&Apache::lonhtmlcommon::get_date_from_form($env{$_});
  if (defined($data) and $olddata{$thiskey} ne $data) { $newdata{$thiskey}=$data; }   if (defined($data) and $$olddata{$thiskey} ne $data) { 
       if ($tuname) {
    if (&Apache::lonnet::put('resourcedata',{$tkey=>$data},$tudom,$tuname) eq 'ok') {
       $r->print('<br />'.&mt('Stored modified date for').' '.&Apache::loncommon::plainname($tuname,$tudom));
    } else {
       $r->print('<h2><font color="red">'.
         &mt('Error storing parameters').'</font></h2>');
    }
    &Apache::lonnet::devalidateuserresdata($tuname,$tudom);
       } else {
    $newdata{$thiskey}=$data; 
       }
    }
     }      }
  }   }
     }      }
 # Store  # Store all course level
     my $delentries=$#deldata+1;      my $delentries=$#deldata+1;
     my @newdatakeys=keys %newdata;      my @newdatakeys=keys %newdata;
     my $putentries=$#newdatakeys+1;      my $putentries=$#newdatakeys+1;
Line 1888  ENDOVER Line 1960  ENDOVER
  }   }
  &Apache::lonnet::devalidatecourseresdata($crs,$dom);   &Apache::lonnet::devalidatecourseresdata($crs,$dom);
     }      }
 # Read coursedata  # Read modified data
     my $resourcedata=&Apache::lonnet::get_courseresdata($crs,$dom);  
 # Read userdata  
   
     my $classlist=&Apache::loncoursedata::get_classlist();      my $resourcedata=&readdata($crs,$dom);
     foreach (keys %$classlist) {  
         # the following undefs are for 'domain', and 'username' respectively.  # Start list output
         if ($_=~/^(\w+)\:(\w+)$/) {  
     my ($tuname,$tudom)=($1,$2);  
     my $useropt=&Apache::lonnet::get_userresdata($tuname,$tudom);  
             foreach my $userkey (keys %{$useropt}) {  
  if ($userkey=~/^$env{'request.course.id'}/) {  
                     my $newkey=$userkey;  
     $newkey=~s/^($env{'request.course.id'}\.)/$1\[useropt\:$tuname\:$tudom\]\./;  
     $$resourcedata{$newkey}=$$useropt{$userkey};  
  }  
     }  
  }  
     }  
   
     my $oldsection='';      my $oldsection='';
     my $oldrealm='';      my $oldrealm='';
Line 1916  ENDOVER Line 1974  ENDOVER
     my $foundkeys=0;      my $foundkeys=0;
     foreach my $thiskey (sort keys %{$resourcedata}) {      foreach my $thiskey (sort keys %{$resourcedata}) {
  if ($$resourcedata{$thiskey.'.type'}) {   if ($$resourcedata{$thiskey.'.type'}) {
     $r->print($thiskey);      my ($middle,$part,$name)=
     my ($course,$middle,$part,$name)=   ($thiskey=~/^$env{'request.course.id'}\.(?:(.+)\.)*([\w\s]+)\.(\w+)$/);
  ($thiskey=~/^(\w+)\.(?:(.+)\.)*([\w\s]+)\.(\w+)$/);  
     my $section=&mt('All Students');      my $section=&mt('All Students');
     if ($middle=~/^\[(.*)\]\./) {      if ($middle=~/^\[(.*)\]/) {
  my $issection=$1;   my $issection=$1;
  if ($issection=~/^useropt\:(\w+)\:(\w+)/) {   if ($issection=~/^useropt\:(\w+)\:(\w+)/) {
     $section=&mt('User').": ".&Apache::loncommon::plainname($1,$2);      $section=&mt('User').": ".&Apache::loncommon::plainname($1,$2);
  } else {   } else {
     $section=&mt('Group/Section').': '.$issection;      $section=&mt('Group/Section').': '.$issection;
  }   }
  $middle=~s/^\[(.*)\]\.//;   $middle=~s/^\[(.*)\]//;
     }      }
     $middle=~s/\.$//;      $middle=~s/\.+$//;
       $middle=~s/^\.+//;
     my $realm='<font color="red">'.&mt('All Resources').'</font>';      my $realm='<font color="red">'.&mt('All Resources').'</font>';
     if ($middle=~/^(.+)\_\_\_\(all\)$/) {      if ($middle=~/^(.+)\_\_\_\(all\)$/) {
  $realm='<font color="green">'.&mt('Folder/Map').': '.&Apache::lonnet::gettitle($1).' <br /><font color="#aaaaaa" size="-2">('.$1.')</font></font>';   $realm='<font color="green">'.&mt('Folder/Map').': '.&Apache::lonnet::gettitle($1).' <br /><font color="#aaaaaa" size="-2">('.$1.')</font></font>';

Removed from v.1.206  
changed lines
  Added in v.1.207


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