Diff for /loncom/interface/lonparmset.pm between versions 1.251 and 1.268.2.3

version 1.251, 2005/09/23 20:16:50 version 1.268.2.3, 2005/12/29 17:59:31
Line 316  sub storeparm_by_symb { Line 316  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 527  sub plink { Line 529  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 1458  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 1574  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 1652  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 1894  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 2693  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 2735  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 2758  ENDMAINFORMHEAD
     $r->print($menu_html);      $r->print($menu_html);
     return;      return;
 }  }
 ### Set instructor defined metadata  ### Set portfolio metadata
 sub setinstmeta {  sub output_row {
       my ($r, $field_name, $field_text) = @_;
       my $output;
       my $options=$env{'course.'.$env{'request.course.id'}.'.metadata.'.$field_name.'.options'};
       my $values=$env{'course.'.$env{'request.course.id'}.'.metadata.'.$field_name.'.values'};
       unless (defined($options)) {
           $options = 'active,stuadd';
           $values = '';
       }
       $output.='<strong>'.$field_text.':</strong>';
       $output.='<input name="'.$field_name.'_values" type="text" value="'.$values.'" size="80" /><br />';
   
       my @options= ( ['active', 'Show to student'],
      ['onlyone','Student may select only one choice'],
      ['stuadd', 'Student may type choices']);
       foreach my $opt (@options) {
    my $checked = ($options =~ m/$opt->[0]/) ? ' checked="checked" ' : '' ;
    $output.=('&nbsp;'x5).'<label><input type="checkbox" name="'.
       $field_name.'_'.$opt->[0].'" value="yes"'.$checked.' />'.
       &mt($opt->[1]).'</label> <br />';
       }
       return ($output);
   }
   
   sub setrestrictmeta {
     my ($r)=@_;      my ($r)=@_;
     my $next_meta;      my $next_meta;
     my $output;      my $output;
Line 2758  sub setinstmeta { Line 2791  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'}.'.'};
     foreach my $field (%env) {      my $save_field = '';
         # start by looking for populated fields      if ($env{'form.restrictmeta'}) {
         if ($field=~m/type(\d+)/) {          foreach my $field (sort(keys(%env))) {
      my $name;              if ($field=~m/^form.(.+)_(.+)$/) {
     my $value;                  my $options;
             $put_result = &Apache::lonnet::put('environment',                  my $meta_field = $1;
                                                   {$name=>$value},$dom,$crs);                  my $meta_key = $2;
             $put_result = &Apache::lonnet::put('environment',                  if ($save_field ne $meta_field) {
                                                   {$name=>$value},$dom,$crs);                      $save_field = $meta_field;
         }                 if ($env{'form.'.$meta_field.'_stuadd'}) {
         if ($field=~m/newfield/) {                     $options.='stuadd,';
             my $name = 'metadata.'.$env{'form.titlenew'};                 } 
             my %meta_hash = {values=>[$env{'form.valuesnew'}],                 if ($env{'form.'.$meta_field.'_onlyone'}) {
             allow_pick=>'many',                     $options.='onlyone,';
             allow_type=>'no'};                 } 
                             if ($env{'form.'.$meta_field.'_active'}) {
             my $value = \%meta_hash;                     $options.='active,';
             $put_result = &Apache::lonnet::put('environment',                 }
                                                   {$name=>$value},$dom,$crs);                      my $name = $save_field;
                        $put_result = &Apache::lonnet::put('environment',
                                                     {'metadata.'.$meta_field.'.options'=>$options,
                                                      'metadata.'.$meta_field.'.values'=>$env{'form.'.$meta_field.'_values'},
                                                      },$dom,$crs);
                   }
               }
         }          }
     }       }
     &Apache::lonnet::coursedescription($env{'request.course.id'});            &Apache::lonnet::coursedescription($env{'request.course.id'});
     foreach my $key (sort keys %env) {      my %metadata_fields = &Apache::lonmeta::fieldnames('portfolio');
         if ($key=~m/^course\.$env{'request.course.id'}\.metadata\.(.+)$/) {      foreach my $field (sort(keys(%metadata_fields))) {
             my $meta_data_item = $1;          &Apache::lonnet::logthis ($field);
             my $meta_hash=$env{$key};          if ($field ne 'courserestricted') {
             $output.='<tr><td>'.$meta_data_item.'</td>';      $output.= &output_row($r, $field, $metadata_fields{$field});
             $output.='<td>Select one: <input type="checkbox" name="" value="one" /><br />';   }
             $output.='Select many: <input type="checkbox" name="type" value="many" /></td>';      }
             $output.='<td><input name="values" type="text" value="$env{$key_base.$item_num.'.'" /></td></tr>';  
         }  
     }  
     $output.='<tr><td><i>Create new instructor metadata item</i><br />';  
     $output.='<input type="text" name="titlenew" /></td>';  
     $output.='<td>students must pick only one: <input type="checkbox" name="pickonenew" value="one" /><br />';  
     $output.='Allow student to type extra info: <input type="checkbox" name="typeextranew" value="extra" /></td>';  
     $output.='<td><input name="valuesnew" type="text" value="" /></td></tr>';  
     $output.='<input type="hidden" name="serial" value="'.$next_meta.'" />';  
     $output.='<input type="hidden" name="state" value="save" /></tr>';  
     $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>Title</th><th>Options</th><th>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 2995  Main handler.  Calls &assessparms and &c Line 3017  Main handler.  Calls &assessparms and &c
 ##################################################  ##################################################
 #    use Data::Dumper;  #    use Data::Dumper;
   
   
 sub handler {  sub handler {
     my $r=shift;      my $r=shift;
   
Line 3055  sub handler { Line 3078  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.251  
changed lines
  Added in v.1.268.2.3


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