--- loncom/interface/lonparmset.pm 2005/08/30 00:40:12 1.245 +++ loncom/interface/lonparmset.pm 2005/08/30 01:25:53 1.246 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.245 2005/08/30 00:40:12 banghart Exp $ +# $Id: lonparmset.pm,v 1.246 2005/08/30 01:25:53 banghart Exp $ # # Copyright Michigan State University Board of Trustees # @@ -2730,6 +2730,7 @@ sub setinstmeta { my $next_meta; my $output; my $item_num; + my $put_result; if ($env{'form.serial'}) { $next_meta = $env{'form.serial'}; } else { @@ -2745,60 +2746,60 @@ sub setinstmeta { my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'}; my $crs = $env{'course.'.$env{'request.course.id'}.'.num'}; my $key_base = $env{'course.'.$env{'request.course.id'}.'.metadata.'}; - if ($env{'form.state'}eq 'add') { - $r->print('Compose a new metadata item:
'); - $r->print('
'); - $r->print ('Title of item: '.&Apache::lonhtmlcommon::textbox("title",undef,undef,undef).'
'); - $r->print ('List if items (comma separated): '.&Apache::lonhtmlcommon::textbox("values",undef,undef,undef).'
'); - $r->print ('Select one:
'); - $r->print ('Select many:
'); - $r->print(''); - $r->print(''); - $r->print(''); - $r->print(''); - $r->print('
'); - } elsif ($env{'form.state'}eq 'save') { - $r->print('Here we save the metadata'); - $key_base.=$env{'form.serial'}.'.'; - $r->print('The title: '.$env{'form.title'}.'
'); - $r->print('The values: '.$env{'form.values'}.'
'); - $r->print('The type: '.$env{'form.type'}.'
'); - $r->print('The number: '.$env{'form.serial'}.'
'); - my $name = 'metadata.'.$env{'form.serial'}.'.title'; - my $value = $env{'form.title'}; - my $put_result = &Apache::lonnet::put('environment', + foreach my $field (%env) { + # start by looking for populated fields + if ($field=~m/type(\d+)/) { + my $item_num = $1; + my $name = 'metadata.'.$item_num.'.type'; + my $value = $env{'form.type'.$item_num}; + $put_result = &Apache::lonnet::put('environment', {$name=>$value},$dom,$crs); - $r->print('the put result was: '.$put_result.'
'); - $name = 'metadata.'.$env{'form.serial'}.'.type'; - $value = $env{'form.type'}; - $put_result = &Apache::lonnet::put('environment', + $name = 'metadata.'.$item_num.'.values'; + $value = $env{'form.values'.$item_num}; + $put_result = &Apache::lonnet::put('environment', {$name=>$value},$dom,$crs); - $name = 'metadata.'.$env{'form.serial'}.'.values'; - $value = $env{'form.values'}; - $put_result = &Apache::lonnet::put('environment', + } + if ($field=~m/newfield/) { + my $item_num = $env{'form.serial'}; + my $name = 'metadata.'.$item_num.'.type'; + my $value = $env{'form.typenew'}; + $put_result = &Apache::lonnet::put('environment', {$name=>$value},$dom,$crs); - &Apache::lonnet::coursedescription($env{'request.course.id'}); - } else { + $name = 'metadata.'.$item_num.'.values'; + $value = $env{'form.valuesnew'}; + $put_result = &Apache::lonnet::put('environment', + {$name=>$value},$dom,$crs); + $name = 'metadata.'.$item_num.'.title'; + $value = $env{'form.titlenew'}; + $put_result = &Apache::lonnet::put('environment', + {$name=>$value},$dom,$crs); + + } - foreach my $key (sort keys %env) { - if ($key=~m/^course\.$env{'request.course.id'}\.metadata\.\d+\.title$/) { - $key=~m/^course\.$env{'request.course.id'}\.metadata\.(\d+)\.title/; - $item_num = $1; - if ($1 ge $next_meta) { - $next_meta = $1 + 1; - } - $output.=''.$env{$key}.''; - $output.='Select one:
'; - $output.='Select many: '; - $output.=''; - } + + } + &Apache::lonnet::coursedescription($env{'request.course.id'}); + foreach my $key (sort keys %env) { + if ($key=~m/^course\.$env{'request.course.id'}\.metadata\.\d+\.title$/) { + $key=~m/(^course\.$env{'request.course.id'}\.metadata\.)(\d+)\.title/; + $key_base = $1; + $item_num = $2; + if ($item_num ge $next_meta) { + $next_meta = $item_num + 1; + } + $output.=''.$env{$key}.''; + $output.='Select one:
'; + $output.='Select many: '; + $output.=''; } + } $output.='Create new instructor metadata item
'; - $output.=''; + $output.=''; $output.='Select one:
'; $output.='Select many: '; $output.=''; - $output.=''; + $output.=''; + $output.=''; $r->print(< @@ -2812,7 +2813,7 @@ sub setinstmeta { ENDenv - } + $r->print(' '); return 'ok';