Diff for /loncom/interface/lonparmset.pm between versions 1.44 and 1.45

version 1.44, 2002/02/12 06:28:23 version 1.45, 2002/03/13 21:24:24
Line 366  sub assessparms { Line 366  sub assessparms {
     $ENV{'request.course.id'});      $ENV{'request.course.id'});
     if ($csec eq '-1') {      if ($csec eq '-1') {
  $message="<font color=red>".   $message="<font color=red>".
     "User '$uname' at domain '$udom' not in this course</font>";      "User '$uname' at domain '$udom' not ".
                       "in this course</font>";
  $uname='';   $uname='';
  $csec=$ENV{'form.csec'};   $csec=$ENV{'form.csec'};
     } else {      } else {
Line 464  sub assessparms { Line 465  sub assessparms {
  if ($snum==6) { $storeunder=$seclevel; }   if ($snum==6) { $storeunder=$seclevel; }
  if ($snum==5) { $storeunder=$seclevelm; }   if ($snum==5) { $storeunder=$seclevelm; }
  if ($snum==4) { $storeunder=$seclevelr; }   if ($snum==4) { $storeunder=$seclevelr; }
  $storeunder=&Apache::lonnet::escape($storeunder);  
   
  my $storecontent=          my %storecontent = ($storeunder        => $ENV{'form.pres_value'},
     $storeunder.'='.                              $storeunder.'type' => $ENV{'form.pres_type'});
  &Apache::lonnet::escape($ENV{'form.pres_value'}).'&'.  
     $storeunder.'.type='.  
  &Apache::lonnet::escape($ENV{'form.pres_type'});  
   
  my $reply='';   my $reply='';
  if ($snum>3) {   if ($snum>3) {
 # ---------------------------------------------------------------- Store Course  # ---------------------------------------------------------------- Store Course
Line 485  sub assessparms { Line 481  sub assessparms {
     } else {      } else {
  &Apache::lonnet::expirespread('','','assesscalc');   &Apache::lonnet::expirespread('','','assesscalc');
     }      }
   
 # Store parameter  # Store parameter
     $reply=&Apache::lonnet::critical('put:'.              $reply=&Apache::lonnet::cput
      $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}.':'.                  ('resourcedata',\%storecontent,
      $ENV{'course.'.$ENV{'request.course.id'}.'.num'}.':resourcedata:'.                   $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
      $storecontent,                   $ENV{'course.'.$ENV{'request.course.id'}.'.num'});
      $ENV{'course.'.$ENV{'request.course.id'}.'.home'});  
  } else {   } else {
 # ------------------------------------------------------------------ Store User  # ------------------------------------------------------------------ Store User
 #  #
Line 506  sub assessparms { Line 500  sub assessparms {
     } else {      } else {
  &Apache::lonnet::expirespread($uname,$udom,'assesscalc');   &Apache::lonnet::expirespread($uname,$udom,'assesscalc');
     }      }
   
 # Store parameter  # Store parameter
     $reply=      $reply=&Apache::lonnet::cput
  &Apache::lonnet::critical('put:'.$udom.':'.$uname.':resourcedata:'.                  ('resourcedata',\%storecontent,$udom,$uname);
   $storecontent,$uhome);  
  }   }
   
  if ($reply=~/^error\:(.*)/) {   if ($reply=~/^error\:(.*)/) {
Line 519  sub assessparms { Line 511  sub assessparms {
 # ---------------------------------------------------------------- Done storing  # ---------------------------------------------------------------- Done storing
     }      }
 # -------------------------------------------------------------- Get coursedata  # -------------------------------------------------------------- Get coursedata
     my $reply=&Apache::lonnet::reply('dump:'.      %courseopt = &Apache::lonnet::dump
      $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}.':'.          ('resourcedata',
      $ENV{'course.'.$ENV{'request.course.id'}.'.num'}.':resourcedata',           $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
      $ENV{'course.'.$ENV{'request.course.id'}.'.home'});           $ENV{'course.'.$ENV{'request.course.id'}.'.num'});
     if ($reply!~/^error\:/) {  
  foreach (split(/\&/,$reply)) {  
     my ($name,$value)=split(/\=/,$_);  
     $courseopt{&Apache::lonnet::unescape($name)}=  
  &Apache::lonnet::unescape($value);  
  }  
     }  
 # --------------------------------------------------- Get userdata (if present)  # --------------------------------------------------- Get userdata (if present)
     if ($uname) {      if ($uname) {
  my $reply=          %useropt=&Apache::lonnet::dump('resourcedata',$udom,$uname);
     &Apache::lonnet::reply('dump:'.$udom.':'.$uname.':resourcedata',$uhome);  
  if ($reply!~/^error\:/) {  
     foreach (split(/\&/,$reply)) {  
  my ($name,$value)=split(/\=/,$_);  
  $useropt{&Apache::lonnet::unescape($name)}=  
     &Apache::lonnet::unescape($value);  
     }  
  }  
     }      }
   
 # ------------------------------------------------------------------- Sort this  # ------------------------------------------------------------------- Sort this
Line 713  ENDTABLEHEADFOUR Line 690  ENDTABLEHEADFOUR
     untie(%parmhash);      untie(%parmhash);
 }  }
   
   # Set course environment parameters
 sub crsenv {  sub crsenv {
     my $r=shift;      my $r=shift;
     my $setoutput='';      my $setoutput='';
       my $dom = $ENV{'course.'.$ENV{'request.course.id'}.'.domain'};
       my $crs = $ENV{'course.'.$ENV{'request.course.id'}.'.num'};
 # -------------------------------------------------- Go through list of changes  # -------------------------------------------------- Go through list of changes
     foreach (keys %ENV) {      foreach (keys %ENV) {
  if ($_=~/^form\.(.+)\_setparmval$/) {   if ($_=~/^form\.(.+)\_setparmval$/) {
Line 726  sub crsenv { Line 706  sub crsenv {
             }              }
             if ($name eq 'url') {              if ($name eq 'url') {
  $value=~s/^\/res\///;   $value=~s/^\/res\///;
                   my @tmp = &Apache::lonnet::get
                       ('environment',['url'],$dom,$crs);
                 $setoutput.='Backing up previous URL: '.                  $setoutput.='Backing up previous URL: '.
     &Apache::lonnet::reply('put:'.                      &Apache::lonnet::put
    $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}.                          ('environment',
    ':'.$ENV{'course.'.$ENV{'request.course.id'}.'.num'}.                           {'top level map backup ' => $tmp[1] },
    ':environment:'.                           $dom,$crs).
    &Apache::lonnet::escape('top level map backup '.                      '<br>';
    time).'='.  
    &Apache::lonnet::reply('get:'.  
   $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}.  
   ':'.$ENV{'course.'.$ENV{'request.course.id'}.'.num'}.  
   ':environment:url',  
   $ENV{'course.'.$ENV{'request.course.id'}.'.home'}),  
    $ENV{'course.'.$ENV{'request.course.id'}.'.home'}).  
        '<br>';  
   
             }              }
             if ($name) {              if ($name) {
         $setoutput.='Setting <tt>'.$name.'</tt> to <tt>'.                  $setoutput.='Setting <tt>'.$name.'</tt> to <tt>'.
     $value.'</tt>: '.                      $value.'</tt>: '.
  &Apache::lonnet::reply('put:'.                      &Apache::lonnet::put
        $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}.                              ('environment',{$name=>$value},$dom,$crs).
        ':'.$ENV{'course.'.$ENV{'request.course.id'}.'.num'}.                      '<br>';
        ':environment:'.  
        &Apache::lonnet::escape($name).'='.  
        &Apache::lonnet::escape($value),  
        $ENV{'course.'.$ENV{'request.course.id'}.'.home'}).  
    '<br>';  
     }      }
         }          }
     }      }
 # -------------------------------------------------------- Get parameters again  # -------------------------------------------------------- Get parameters again
     my $rep=&Apache::lonnet::reply  
  ('dump:'.$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}.      my %values=&Apache::lonnet::dump('environment',$dom,$crs);
  ':'.$ENV{'course.'.$ENV{'request.course.id'}.'.num'}.  
  ':environment',  
  $ENV{'course.'.$ENV{'request.course.id'}.'.home'});  
     my $output='';      my $output='';
     if ($rep ne 'con_lost') {      if (! exists($values{'con_lost'})) {
  my %values;  
         my %descriptions=          my %descriptions=
     ('url'            => '<b>Top Level Map</b><br><font color=red> Modification may make assessment data inaccessible</font>',      ('url'            => '<b>Top Level Map</b><br><font color=red> '.
      'description'    => '<b>Course Description</b>',                                   'Modification may make assessment data '.
      'courseid'       => '<b>Course ID or number</b><br>(internal, optional)',                                   'inaccessible</font>',
      'question.email' => '<b>Feedback Addresses for Content Questions</b><br>(<tt>user:domain,user:domain,...</tt>)',               'description'    => '<b>Course Description</b>',
      'comment.email'  => '<b>Feedback Addresses for Comments</b><br>(<tt>user:domain,user:domain,...</tt>)',               'courseid'       => '<b>Course ID or number</b><br>'.
      'policy.email'   => '<b>Feedback Addresses for Course Policy</b><br>(<tt>user:domain,user:domain,...</tt>)',                                   '(internal, optional)',
      'hideemptyrows'  => '<b>Hide Empty Rows in Spreadsheets</b><br>("<tt>yes</tt>" for default hiding)',               'question.email' => '<b>Feedback Addresses for Content '.
      'pch.roles.denied'=> '<b>Disallow Resource Discussion for Students</b><br>"<tt>st</tt>": student, "<tt>ta</tt>": TA, "<tt>in</tt>": instructor;<br><tt>role,role,...</tt>)'                                   'Questions</b><br>(<tt>user:domain,'.
     );                                   'user:domain,...</tt>)',
                'comment.email'  => '<b>Feedback Addresses for Comments</b><br>'.
  foreach (split(/\&/,$rep)) {                                   '(<tt>user:domain,user:domain,...</tt>)',
     my ($name,$value)=split(/\=/,$_);               'policy.email'   => '<b>Feedback Addresses for Course Policy</b>'.
     $name=&Apache::lonnet::unescape($name);                                   '<br>(<tt>user:domain,user:domain,...</tt>)',
     $values{$name}=&Apache::lonnet::unescape($value);               'hideemptyrows'  => '<b>Hide Empty Rows in Spreadsheets</b><br>'.
     unless ($descriptions{$name}) {                                   '("<tt>yes</tt>" for default hiding)',
  $descriptions{$name}=$name;               'pch.roles.denied'=> '<b>Disallow Resource Discussion for '.
                                     'Students</b><br>"<tt>st</tt>": '.
                                     'student, "<tt>ta</tt>": '.
                                     'TA, "<tt>in</tt>": '.
                                     'instructor;<br><tt>role,role,...</tt>)'
                );
    foreach (keys(%values)) {
       unless ($descriptions{$_}) {
    $descriptions{$_}=$_;
     }      }
  }   }
  foreach (sort keys %descriptions) {   foreach (sort keys %descriptions) {
     $output.='<tr><td>'.$descriptions{$_}.'</td><td><input name="'.      $output.='<tr><td>'.$descriptions{$_}.'</td><td><input name="'.
  $_.'_value" size=40 value="'.   $_.'_value" size=40 value="'.
     $values{$_}.   $values{$_}.'"></td><td><input type=checkbox name="'.
  '"></td><td><input type=checkbox name="'.$_.   $_.'_setparmval"></td></tr>';
     '_setparmval"></td></tr>';  
  }   }
  $output.='<tr><td><i>Create New Environment Variable</i><br>'.   $output.='<tr><td><i>Create New Environment Variable</i><br>'.
     '<input type="text" size=40 name="newp_name"></td><td>'.      '<input type="text" size=40 name="newp_name"  ></td><td>'.
                 '<input type="text" size=40 name="newp_value"></td><td>'.              '<input type="text" size=40 name="newp_value" ></td><td>'.
     '<input type="checkbox" name="newp_setparmval"></td></tr>';      '<input type="checkbox" name="newp_setparmval"></td></tr>';
     }      }
     $r->print(<<ENDENV);      $r->print(<<ENDENV);
 <html>  <html>

Removed from v.1.44  
changed lines
  Added in v.1.45


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