Diff for /loncom/interface/lonparmset.pm between versions 1.254 and 1.268.2.4

version 1.254, 2005/09/29 21:10:32 version 1.268.2.4, 2006/05/15 23:46:03
Line 126  sub parmval_by_symb { Line 126  sub parmval_by_symb {
     my @outpar=();      my @outpar=();
 # ----------------------------------------------------- Cascading lookup scheme  # ----------------------------------------------------- Cascading lookup scheme
     my $map=(&Apache::lonnet::decode_symb($symb))[0];          my $map=(&Apache::lonnet::decode_symb($symb))[0];    
       $map = &Apache::lonnet::deversion($map);
   
     my $symbparm=$symb.'.'.$what;      my $symbparm=$symb.'.'.$what;
     my $mapparm=$map.'___(all).'.$what;      my $mapparm=$map.'___(all).'.$what;
Line 316  sub storeparm_by_symb { Line 317  sub storeparm_by_symb {
 # store parameter  # store parameter
     &storeparm_by_symb_inner      &storeparm_by_symb_inner
  ($symb,$spnam,$snum,$nval,$ntype,$uname,$udom,$csec);   ($symb,$spnam,$snum,$nval,$ntype,$uname,$udom,$csec);
   # don't do anything if parameter was reset
       unless ($nval) { return; }
     my ($prefix,$parm)=($spnam=~/^(.*[\_\.])([^\_\.]+)$/);      my ($prefix,$parm)=($spnam=~/^(.*[\_\.])([^\_\.]+)$/);
 # remember that this was set  # remember that this was set
     $recstack{$parm}=1;      $recstack{$parm}=1;
Line 361  sub storeparm_by_symb_inner { Line 364  sub storeparm_by_symb_inner {
 # ---------------------------------------------------------- Construct prefixes  # ---------------------------------------------------------- Construct prefixes
     $spnam=~s/\_([^\_]+)$/\.$1/;      $spnam=~s/\_([^\_]+)$/\.$1/;
     my $map=(&Apache::lonnet::decode_symb($symb))[0];          my $map=(&Apache::lonnet::decode_symb($symb))[0];    
       $map = &Apache::lonnet::deversion($map);
   
     my $symbparm=$symb.'.'.$spnam;      my $symbparm=$symb.'.'.$spnam;
     my $mapparm=$map.'___(all).'.$spnam;      my $mapparm=$map.'___(all).'.$spnam;
   
Line 527  sub plink { Line 532  sub plink {
     my ($parmname)=((split(/\&/,$marker))[1]=~/\_([^\_]+)$/);      my ($parmname)=((split(/\&/,$marker))[1]=~/\_([^\_]+)$/);
     my ($hour,$min,$sec,$val)=&preset_defaults($parmname);      my ($hour,$min,$sec,$val)=&preset_defaults($parmname);
     unless (defined($winvalue)) { $winvalue=$val; }      unless (defined($winvalue)) { $winvalue=$val; }
     return       return '<table width="100%"><tr valign="top" align="right"><td><a name="'.$marker.'" /></td></tr><tr><td align="center">'.
  '<a href="javascript:pjump('."'".$type."','".$dis."','".$winvalue."','"   '<a href="javascript:pjump('."'".$type."','".$dis."','".$winvalue."','"
     .$marker."','".$return."','".$call."','".$hour."','".$min."','".$sec."'".');">'.      .$marker."','".$return."','".$call."','".$hour."','".$min."','".$sec."'".');">'.
  &valout($value,$type).'</a><a name="'.$marker.'"></a>';   &valout($value,$type).'</a></td></tr></table>';
 }  }
   
 sub startpage {  sub startpage {
Line 1456  ENDTABLEHEADFOUR Line 1461  ENDTABLEHEADFOUR
                     my $totalparms=scalar keys %name;                      my $totalparms=scalar keys %name;
                     if ($totalparms>0) {                      if ($totalparms>0) {
                         my $firstrow=1;                          my $firstrow=1;
  my $title=&Apache::lonnet::gettitle($uri);   my $title=&Apache::lonnet::gettitle($symbp{$rid});
                         $r->print('<tr><td bgcolor='.$defbgone.                          $r->print('<tr><td bgcolor='.$defbgone.
                              ' rowspan='.$totalparms.                               ' rowspan='.$totalparms.
                              '><tt><font size=-1>'.                               '><tt><font size=-1>'.
                              join(' / ',split(/\//,$uri)).                               join(' / ',split(/\//,$uri)).
                              '</font></tt><p><b>'.                               '</font></tt><p><b>'.
                              "<a href=\"javascript:openWindow('".                               "<a href=\"javascript:openWindow('".
   &Apache::lonnet::clutter($uri).    &Apache::lonnet::clutter($uri).'?symb='.
     &Apache::lonnet::escape($symbp{$rid}).
                              "', 'metadatafile', '450', '500', 'no', 'yes')\";".                               "', 'metadatafile', '450', '500', 'no', 'yes')\";".
                              " TARGET=_self>$title");                               " TARGET=_self>$title");
   
Line 1571  Set Defaults for All Resources in $folde Line 1577  Set Defaults for All Resources in $folde
 Specifically for  Specifically for
 ENDMAPONE  ENDMAPONE
                 if ($uname) {                  if ($uname) {
                     my %name=&Apache::lonnet::userenvironment($udom,$uname,      my $person=&Apache::loncommon::plainname($uname,$udom);
                       ('firstname','middlename','lastname','generation', 'id'));  
                     my $person=$name{'firstname'}.' '.$name{'middlename'}.' '  
                            .$name{'lastname'}.' '.$name{'generation'};  
                     $r->print(&mt("User")." <font color=\"red\"><i>$uname \($person\) </i></font> ".                      $r->print(&mt("User")." <font color=\"red\"><i>$uname \($person\) </i></font> ".
                         &mt('in')." \n");                          &mt('in')." \n");
                 } else {                  } else {
Line 1652  ENDMAPONE Line 1655  ENDMAPONE
 <font color="red"><i>$coursename</i></font><br />  <font color="red"><i>$coursename</i></font><br />
 ENDMAPONE  ENDMAPONE
             if ($uname) {              if ($uname) {
                 my %name=&Apache::lonnet::userenvironment($udom,$uname,   my $person=&Apache::loncommon::plainname($uname,$udom);
                   ('firstname','middlename','lastname','generation', 'id'));  
                 my $person=$name{'firstname'}.' '.$name{'middlename'}.' '  
                        .$name{'lastname'}.' '.$name{'generation'};  
                 $r->print(" ".&mt("User")."<font color=\"red\"> <i>$uname \($person\) </i></font> \n");                  $r->print(" ".&mt("User")."<font color=\"red\"> <i>$uname \($person\) </i></font> \n");
             } else {              } else {
                 $r->print("<i><font color=\"red\"> ".&mt("ALL")."</i> ".&mt("USERS")."</font> \n");                  $r->print("<i><font color=\"red\"> ".&mt("ALL")."</i> ".&mt("USERS")."</font> \n");
Line 1897  sub crsenv { Line 1897  sub crsenv {
          => '<b>'.&mt('Receipt algorithm used').'</b> <br />'.           => '<b>'.&mt('Receipt algorithm used').'</b> <br />'.
                     &mt('This controls how receipt numbers are generated.'),                      &mt('This controls how receipt numbers are generated.'),
              'suppress_tries'               'suppress_tries'
                  => '<b>'.&mt('Suppress number of tries in printing').'</b>('.                   => '<b>'.&mt('Suppress number of tries in printing').'</b><br />'.
                     &mt('yes if supress').')',                      ' ('.&mt('"[_1]" to suppress, anything else to not suppress','<tt>yes</tt>').')',
              'problem_stream_switch'               'problem_stream_switch'
                  => '<b>'.&mt('Allow problems to be split over pages').'</b><br />'.                   => '<b>'.&mt('Allow problems to be split over pages').'</b><br />'.
                     ' ('.&mt('"[_1]" if allowed, anything else if not','<tt>yes</tt>').')',                      ' ('.&mt('"[_1]" if allowed, anything else if not','<tt>yes</tt>').')',
Line 2696  ENDMAINFORMHEAD Line 2696  ENDMAINFORMHEAD
 #  #
     my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};      my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
     my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};      my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
       my $vgr  = &Apache::lonnet::allowed('vgr',$env{'request.course.id'});
   
     my @menu =      my @menu =
         (          (
           { text => 'Set Course Environment Parameters',            { text => 'Set Course Environment Parameters',
     action => 'crsenv',      action => 'crsenv',
             permission => $parm_permission,              permission => $parm_permission,
             },              },
           { text => 'Set Instructor Defined Metadata',            { text => 'Set Portfolio Metadata',
     action => 'setinstmeta',      action => 'setrestrictmeta',
             permission => $parm_permission,              permission => $parm_permission,
             },              },
     { text => 'Manage Course Slots',
       url => '/adm/slotrequest?command=showslots',
       permission => $vgr,
               },
     { divider => 1,
       },
           { text => 'Set/Modify Resource Parameters - Helper Mode',            { text => 'Set/Modify Resource Parameters - Helper Mode',
             url => '/adm/helper/parameter.helper',              url => '/adm/helper/parameter.helper',
             permission => $parm_permission,              permission => $parm_permission,
Line 2730  ENDMAINFORMHEAD Line 2738  ENDMAINFORMHEAD
           );            );
     my $menu_html = '';      my $menu_html = '';
     foreach my $menu_item (@menu) {      foreach my $menu_item (@menu) {
    if ($menu_item->{'divider'}) {
       $menu_html .= '<hr />';
       next;
    }
         next if (! $menu_item->{'permission'});          next if (! $menu_item->{'permission'});
         $menu_html.='<p>';          $menu_html.='<p>';
         $menu_html.='<font size="+1">';          $menu_html.='<font size="+1">';
Line 2749  ENDMAINFORMHEAD Line 2761  ENDMAINFORMHEAD
     $r->print($menu_html);      $r->print($menu_html);
     return;      return;
 }  }
 ### Set instructor defined metadata  ### Set portfolio metadata
 sub output_row {  sub output_row {
     my ($r, $field_name) = @_;      my ($r, $field_name, $field_text) = @_;
     my $output;      my $output;
     my $options=$env{'course.'.$env{'request.course.id'}.'.metadata.'.$field_name.'.options'};      my $options=$env{'course.'.$env{'request.course.id'}.'.metadata.'.$field_name.'.options'};
     my $values=$env{'course.'.$env{'request.course.id'}.'.metadata.'.$field_name.'.values'};      my $values=$env{'course.'.$env{'request.course.id'}.'.metadata.'.$field_name.'.values'};
     my $checked;  
     unless (defined($options)) {      unless (defined($options)) {
         $options = 'active,stuadd';          $options = 'active,stuadd';
         $values = 'Type a list of values separated by commas.';          $values = '';
     }      }
     $output.='<tr><td><strong>'.$field_name.'</strong></td>';      $output.='<strong>'.$field_text.':</strong>';
     $output.='<td><input name="'.$field_name.'_values" type="text" value="'.$values.'" /></td>';      $output.='<input name="'.$field_name.'_values" type="text" value="'.$values.'" size="80" /><br />';
     if ($options =~ m/onlyone/) {  
         $checked = ' CHECKED ';      my @options= ( ['active', 'Show to student'],
     } else {     ['onlyone','Student may select only one choice'],
         $checked = '  ';     ['stuadd', 'Student may type choices']);
     }      foreach my $opt (@options) {
     $output.='<td><center><input type="checkbox" name="'.$field_name.'_onlyone"" value="yes"'.$checked.' /></center></td>';   my $checked = ($options =~ m/$opt->[0]/) ? ' checked="checked" ' : '' ;
     if ($options =~ m/stuadd/) {   $output.=('&nbsp;'x5).'<label><input type="checkbox" name="'.
         $checked = ' CHECKED ';      $field_name.'_'.$opt->[0].'" value="yes"'.$checked.' />'.
     } else {      &mt($opt->[1]).'</label> <br />';
         $checked = ' ';  
     }      }
     $output.='<td><input type="checkbox" name="'.$field_name.'_stuadd" value="yes"'.$checked.' /></td>';  
       
     $output.='</tr>';  
     return ($output);      return ($output);
 }  }
 sub setinstmeta {  
   sub setrestrictmeta {
     my ($r)=@_;      my ($r)=@_;
     my $next_meta;      my $next_meta;
     my $output;      my $output;
Line 2786  sub setinstmeta { Line 2794  sub setinstmeta {
     my $put_result;      my $put_result;
     $r->print(&Apache::lonxml::xmlbegin());      $r->print(&Apache::lonxml::xmlbegin());
     $r->print('<head>      $r->print('<head>
             <title>LON-CAPA Set Instructor Metadata</title>              <title>LON-CAPA Restrict Metadata</title>
             </head>');              </head>');
     $r->print(&Apache::loncommon::bodytag('Set Instructor Metadata'));      $r->print(&Apache::loncommon::bodytag('Restrict Metadata'));
     $r->print(&Apache::lonhtmlcommon::breadcrumbs(undef,      $r->print(&Apache::lonhtmlcommon::breadcrumbs(undef,
     'Set Instructor Metadata'));      'Restrict Metadata'));
     my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};      my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};
     my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};      my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};
     my $key_base = $env{'course.'.$env{'request.course.id'}.'.metadata.'};      my $key_base = $env{'course.'.$env{'request.course.id'}.'.'};
     my $save_field = '';      my $save_field = '';
     if ($env{'form.instmeta'}) {      if ($env{'form.restrictmeta'}) {
         foreach my $field (sort(keys(%env))) {          foreach my $field (sort(keys(%env))) {
             if ($field=~m/^form.(.+)_(.+)$/) {              if ($field=~m/^form.(.+)_(.+)$/) {
                 my $options;                  my $options;
Line 2812  sub setinstmeta { Line 2820  sub setinstmeta {
                if ($env{'form.'.$meta_field.'_active'}) {                 if ($env{'form.'.$meta_field.'_active'}) {
                    $options.='active,';                     $options.='active,';
                }                 }
                     my $name = 'metadata.'.$save_field;                      my $name = $save_field;
                      $put_result = &Apache::lonnet::put('environment',                       $put_result = &Apache::lonnet::put('environment',
                                                   {'metadata.'.$meta_field.'.options'=>$options,                                                    {'metadata.'.$meta_field.'.options'=>$options,
                                                    'metadata.'.$meta_field.'.values'=>$env{'form.'.$meta_field.'_values'},                                                     'metadata.'.$meta_field.'.values'=>$env{'form.'.$meta_field.'_values'},
Line 2820  sub setinstmeta { Line 2828  sub setinstmeta {
                 }                  }
             }              }
         }          }
           
     }      }
     &Apache::lonnet::coursedescription($env{'request.course.id'});      &Apache::lonnet::coursedescription($env{'request.course.id'});
     $output.= &output_row($r, "Title");      my %metadata_fields = &Apache::lonmeta::fieldnames('portfolio');
     $output.= &output_row($r, "Subject");      foreach my $field (sort(keys(%metadata_fields))) {
     $output.= &output_row($r, "Keywords");               &Apache::lonnet::logthis ($field);
           if ($field ne 'courserestricted') {
       $output.= &output_row($r, $field, $metadata_fields{$field});
    }
       }
     $r->print(<<ENDenv);             $r->print(<<ENDenv);       
         <form method="post" action="/adm/parmset?action=setinstmeta" name="form">          <form method="post" action="/adm/parmset?action=setrestrictmeta" name="form">
           
         <p>          <p>
         <table border=2>  
         <tr><th>Metadata Item</th><th>Values</th><th>Only One Choice</th><th>Student Can Add Choices</th></tr>  
         $output          $output
         </table>          <input type="submit" name="restrictmeta" value="Update Metadata Restrictions">
         <input type="submit" name="instmeta" value="Update Instructor Metadata">  
         </form>          </form>
   
 ENDenv  ENDenv
           
       
     $r->print('</body>      $r->print('</body>
                 </html>');                  </html>');
     return 'ok';      return 'ok';
Line 3016  Main handler.  Calls &assessparms and &c Line 3020  Main handler.  Calls &assessparms and &c
 ##################################################  ##################################################
 #    use Data::Dumper;  #    use Data::Dumper;
   
   
 sub handler {  sub handler {
     my $r=shift;      my $r=shift;
   
Line 3076  sub handler { Line 3081  sub handler {
             &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setoverview',              &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setoverview',
     text=>"Overview Mode"});      text=>"Overview Mode"});
     &overview($r);      &overview($r);
         } elsif ($env{'form.action'} eq 'setinstmeta' && $parm_permission) {          } elsif ($env{'form.action'} eq 'setrestrictmeta' && $parm_permission) {
             &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setinstmeta',              &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setrestrictmeta',
     text=>"Instructor Metadata"});      text=>"Restrict Metadata"});
     &setinstmeta($r);      &setrestrictmeta($r);
         } elsif ($env{'form.action'} eq 'newoverview' && $parm_permission) {          } elsif ($env{'form.action'} eq 'newoverview' && $parm_permission) {
             &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setoverview',              &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setoverview',
     text=>"Overview Mode"});      text=>"Overview Mode"});

Removed from v.1.254  
changed lines
  Added in v.1.268.2.4


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