--- loncom/interface/lonparmset.pm 2005/09/02 22:40:07 1.239.2.1 +++ loncom/interface/lonparmset.pm 2005/09/02 22:36:38 1.249 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.239.2.1 2005/09/02 22:40:07 albertel Exp $ +# $Id: lonparmset.pm,v 1.249 2005/09/02 22:36:38 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1950,7 +1950,7 @@ sub crsenv { 'disablesigfigs' ); foreach my $parameter (sort(keys(%values))) { - unless ($parameter =~ m/^internal\./) { + unless (($parameter =~ m/^internal\./)||($parameter =~ m/^metadata\./)) { if (! $descriptions{$parameter}) { $descriptions{$parameter}=$parameter; push(@Display_Order,$parameter); @@ -2698,6 +2698,10 @@ ENDMAINFORMHEAD action => 'crsenv', permission => $parm_permission, }, + { text => 'Set Instructor Defined Metadata', + action => 'setinstmeta', + permission => $parm_permission, + }, { text => 'Set/Modify Resource Parameters - Helper Mode', url => '/adm/helper/parameter.helper', permission => $parm_permission, @@ -2741,8 +2745,100 @@ ENDMAINFORMHEAD $r->print($menu_html); return; } +### Set instructor defined metadata +sub setinstmeta { + my ($r)=@_; + my $next_meta; + my $output; + my $item_num; + my $put_result; + if ($env{'form.serial'}) { + $next_meta = $env{'form.serial'}; + } else { + $next_meta = 1; + } + $r->print(&Apache::lonxml::xmlbegin()); + $r->print(' + LON-CAPA Set Instructor Metadata + '); + $r->print(&Apache::loncommon::bodytag('Set Instructor Metadata')); + $r->print(&Apache::lonhtmlcommon::breadcrumbs(undef, + 'Set Instructor Metadata')); + 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.'}; + 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); + $name = 'metadata.'.$item_num.'.values'; + $value = $env{'form.values'.$item_num}; + $put_result = &Apache::lonnet::put('environment', + {$name=>$value},$dom,$crs); + } + 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); + $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); + + } + + + } + &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.='Select one:
'; + $output.='Select many: '; + $output.=''; + $output.=''; + $output.=''; + $r->print(< + +

+ + + $output +
TitleOptionsChoices
+ + - +ENDenv + + + $r->print(' + '); + return 'ok'; +} ################################################## sub defaultsetter { @@ -2928,7 +3024,7 @@ sub handler { 'pres_marker', 'pres_value', 'pres_type', - 'udom','uname','symb']); + 'udom','uname','symb','serial']); &Apache::lonhtmlcommon::clear_breadcrumbs(); @@ -2975,6 +3071,10 @@ sub handler { &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setoverview', text=>"Overview Mode"}); &overview($r); + } elsif ($env{'form.action'} eq 'setinstmeta' && $parm_permission) { + &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setinstmeta', + text=>"Instructor Metadata"}); + &setinstmeta($r); } elsif ($env{'form.action'} eq 'newoverview' && $parm_permission) { &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setoverview', text=>"Overview Mode"});