--- loncom/interface/lonparmset.pm 2012/05/07 23:46:11 1.522.2.1 +++ loncom/interface/lonparmset.pm 2013/06/27 18:22:41 1.522.2.7 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.522.2.1 2012/05/07 23:46:11 raeburn Exp $ +# $Id: lonparmset.pm,v 1.522.2.7 2013/06/27 18:22:41 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -640,7 +640,7 @@ sub storeparm_by_symb { } sub log_parmset { - return &Apache::lonnet::instructor_log('parameterlog',@_); + return &Apache::lonnet::write_log('course','parameterlog',@_); } sub storeparm_by_symb_inner { @@ -747,11 +747,14 @@ sub valout { my $result = ''; # Values of zero are valid. if (! $value && $value ne '0') { - if ($editable) { - $result = '*'; - } else { - $result=' '; - } + if ($editable) { + $result = + ''; + } else { + $result=' '; + } } else { if ($type eq 'date_interval') { my ($sec,$min,$hour,$mday,$mon,$year)=gmtime($value); @@ -873,6 +876,26 @@ ENDJS } +sub showhide_js { + return <<"COURSECONTENTSCRIPT"; + +function showHide_courseContent() { + var parmlevValue=document.getElementById("parmlev").value; + if (parmlevValue == 'general') { + document.getElementById('mapmenu').style.display="none"; + } else { + if ((parmlevValue == "full") || (parmlevValue == "map")) { + document.getElementById('mapmenu').style.display =""; + } else { + document.getElementById('mapmenu').style.display="none"; + } + } + return; +} + +COURSECONTENTSCRIPT +} + sub startpage { my ($r,$psymb) = @_; @@ -880,7 +903,7 @@ sub startpage { 'onload' => "group_or_section('cgroup')", ); if (!$psymb) { - $loaditems{'onload'} = "showHide_courseContent(); group_or_section('cgroup')"; + $loaditems{'onload'} = "showHide_courseContent(); group_or_section('cgroup'); resize_scrollbox('mapmenuscroll','1','1');"; } if ((($env{'form.command'} eq 'set') && ($env{'form.url'}) @@ -892,9 +915,16 @@ sub startpage { text=>"Table Mode", help => 'Course_Setting_Parameters'}); } + my $js = &page_js().' + +'; my $start_page = - &Apache::loncommon::start_page('Set/Modify Course Parameters', - &page_js(), + &Apache::loncommon::start_page('Set/Modify Course Parameters',$js, {'add_entries' => \%loaditems,}); my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Table Mode Parameter Setting','Table_Mode'); @@ -1052,6 +1082,10 @@ sub print_td { if ($which > 3) { $nolink = 1; } + } elsif ($mprefix =~ /examcode\&$/) { + unless ($which == 2) { + $nolink = 1; + } } if ($nolink) { $r->print(&valout($$outpar[$which],$$typeoutpar[$which])); @@ -1205,7 +1239,7 @@ sub extractResourceInformation { $$mapp{$mapid}=$$mapp{$id}; $$allmaps{$mapid}=$$mapp{$id}; if ($mapid eq '1') { - $$maptitles{$mapid}=&mt('Main Course Documents'); + $$maptitles{$mapid}=&mt('Main Content'); } else { $$maptitles{$mapid}=&Apache::lonnet::gettitle($$mapp{$id}); } @@ -1375,7 +1409,7 @@ sub lookUpTableParameter { 'lenient' => 'grading', 'retrypartial' => 'tries', 'discussvote' => 'misc', - + 'examcode' => 'high_level_randomization', ); } @@ -1513,8 +1547,12 @@ sub shortCuts { sub partmenu { my ($r,$allparts,$psprt)=@_; + my $selsize = 1+scalar(keys(%{$allparts})); + if ($selsize > 8) { + $selsize = 8; + } - $r->print(''); + $r->print(''); $r->print('print(' selected="selected"') unless (@{$psprt}); $r->print('>'.&mt('All Parts').''); @@ -1715,12 +1753,12 @@ sub mapmenu { .'' ); - $r->print(&Apache::loncommon::start_scrollbox()); - $r->print(&Apache::loncommon::start_data_table()); + $r->print(&Apache::loncommon::start_scrollbox(undef,undef,undef,'mapmenuscroll')); + $r->print(&Apache::loncommon::start_data_table(undef,'mapmenuinner')); # Display row: "All Maps or Folders" $r->print( - &Apache::loncommon::start_data_table_row() + &Apache::loncommon::start_data_table_row(undef,'picklevel') .'' .'' .'print( &Apache::loncommon::start_data_table_row() @@ -1795,8 +1833,9 @@ sub mapmenu { ); } - $r->print(&Apache::loncommon::end_data_table()); - $r->print(&Apache::loncommon::end_scrollbox()); + $r->print(&Apache::loncommon::end_data_table(). + ''. + &Apache::loncommon::end_scrollbox()); } } @@ -2127,16 +2166,22 @@ sub assessparms { } } } - } elsif ($markers[$i] =~ /_(type|lenient|retrypartial|discussvote)\&\d+$/) { + } elsif ($markers[$i] =~ /_(type|lenient|retrypartial|discussvote|examcode)\&\d+$/) { $name = $1; + my $val = $values[$i]; + if ($name eq 'examcode') { + if (&Apache::lonnet::validCODE($values[$i])) { + $val = 'valid'; + } + } $needsrelease = - $Apache::lonnet::needsrelease{"parameter:$name:$values[$i]"}; + $Apache::lonnet::needsrelease{"parameter:$name:$val"}; if ($needsrelease) { unless ($got_chostname) { ($chostname,$cmajor,$cminor) = ¶meter_release_vars(); $got_chostname = 1; } - $needsnewer = ¶meter_releasecheck($name,$values[$i], + $needsnewer = ¶meter_releasecheck($name,$val, $needsrelease, $chostname, $cmajor,$cminor); @@ -2199,27 +2244,15 @@ ENDPARMSELSCRIPT } # Step 1 - $r->print(&Apache::lonhtmlcommon::topic_bar(1,&mt('Resource Specification'))); - $r->print(<print(&Apache::lonhtmlcommon::topic_bar(1,&mt('Resource Specification'),'parmstep1')); + $r->print(' -COURSECONTENTSCRIPT - - $r->print(&Apache::lonhtmlcommon::start_pick_box()); +'); + $r->print(&Apache::lonhtmlcommon::start_pick_box(undef,'parmlevel')); &levelmenu($r,\%alllevs,$parmlev); $r->print(&Apache::lonhtmlcommon::row_closure()); &mapmenu($r,\%allmaps,$pschp,\%maptitles, \%symbp); @@ -2230,11 +2263,11 @@ COURSECONTENTSCRIPT $r->print(&Apache::lonhtmlcommon::end_pick_box()); # Step 2 - $r->print(&Apache::lonhtmlcommon::topic_bar(2,&mt('Parameter Specification'))); + $r->print(&Apache::lonhtmlcommon::topic_bar(2,&mt('Parameter Specification'),'parmstep2')); &displaymenu($r,\%allparms,\@pscat,\@psprt,\%keyorder); # Step 3 - $r->print(&Apache::lonhtmlcommon::topic_bar(3,&mt('User Specification (optional)'))); + $r->print(&Apache::lonhtmlcommon::topic_bar(3,&mt('User Specification (optional)'),'parmstep3')); $r->print(&Apache::lonhtmlcommon::start_pick_box()); &usermenu($r,$uname,$id,$udom,$csec,$cgroup,$parmlev,\@usersgroups); $r->print(&Apache::lonhtmlcommon::row_closure(1)); @@ -2796,6 +2829,8 @@ sub storedata { $name = 'lenient'; } elsif ($typeof eq 'string_discussvote') { $name = 'discussvote'; + } elsif ($typeof eq 'string_examcode') { + $name = 'examcode'; } elsif ($typeof eq 'string_yesno') { if ($thiskey =~ /\.retrypartial$/) { $name = 'retrypartial'; @@ -2872,7 +2907,7 @@ sub storedata { if (&Apache::lonnet::del('resourcedata',\@deldata,$dom,$crs) eq 'ok') { my %loghash=map { $_ => '' } @deldata; &log_parmset(\%loghash,1); - $r->print(''.&mt('Deleted [_1] parameter(s)',$delentries)); + $r->print(''.&mt('Deleted [_1] parameter(s)',$delentries).''); } else { $r->print(''. &mt('Error deleting parameters').''); @@ -3267,7 +3302,21 @@ sub newoverview { my $crs = $env{'course.'.$env{'request.course.id'}.'.num'}; &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setoverview', text=>"Overview Mode"}); - my $start_page = &Apache::loncommon::start_page('Set Parameters'); + + my %loaditems = ( + 'onload' => "showHide_courseContent(); resize_scrollbox('mapmenuscroll','1','1');", + ); + my $js = ' + +'; + my $start_page = &Apache::loncommon::start_page('Set Parameters',$js, + {'add_entries' => \%loaditems,}); my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Overview'); $r->print($start_page.$breadcrumbs); $r->print(<print(''); #$r->print('Step 1'); $r->print(''); - $r->print(&Apache::lonhtmlcommon::start_pick_box()); + $r->print(&Apache::lonhtmlcommon::start_pick_box(undef,'parmlevel')); &levelmenu($r,\%alllevs,$parmlev); if ($parmlev ne 'general') { $r->print(&Apache::lonhtmlcommon::row_closure()); @@ -3463,7 +3512,7 @@ sub overview { my $foundkeys=&listdata($r,$resourcedata,$resourcedata,$sortorder); $r->print(&tableend().''. - ($foundkeys?'':&mt('There are no parameters.')).''. + ($foundkeys?'':''.&mt('There are no parameters.').'').''. &Apache::loncommon::end_page()); } @@ -3539,8 +3588,9 @@ ENDOVER } elsif ($data{'realm_type'} eq 'symb') { my ($map,$resid,$url) = &Apache::lonnet::decode_symb($data{'realm'}); - $r->print(&mt('Resource: [_1] with ID: [_2] in folder [_3]', - $url,$resid,$map)); + $r->print(&mt('Resource: [_1]with ID: [_2]in folder [_3]', + $url.' ', + $resid.' ',$map)); } $r->print(' '.&mt('Part: [_1]',$data{'parameter_part'})); $r->print(''); @@ -3638,7 +3688,7 @@ sub parse_key { sub header { - return &Apache::loncommon::start_page('Parameter Manager'); + return &Apache::loncommon::start_page('Content and Problem Settings'); } @@ -3647,7 +3697,7 @@ sub print_main_menu { my ($r,$parm_permission)=@_; # $r->print(&header()); - $r->print(&Apache::lonhtmlcommon::breadcrumbs('Parameter Manager')); + $r->print(&Apache::lonhtmlcommon::breadcrumbs('Content and Problem Settings')); $r->print(< @@ -4525,10 +4575,10 @@ sub update_slots { action => 'reserve', context => 'parameter', ); - &Apache::lonnet::instructor_log('slotreservationslog',\%storehash, + &Apache::lonnet::write_log('course','slotreservationslog',\%storehash, '',$uname,$udom,$cnum,$cdom); - &Apache::lonnet::instructor_log($cdom.'_'.$cnum.'_slotlog',\%storehash, + &Apache::lonnet::write_log('course',$cdom.'_'.$cnum.'_slotlog',\%storehash, '',$uname,$udom,$uname,$udom); } return $success; @@ -4559,9 +4609,9 @@ sub delete_slots { action => 'release', context => 'parameter', ); - &Apache::lonnet::instructor_log('slotreservationslog',\%storehash, + &Apache::lonnet::write_log('course','slotreservationslog',\%storehash, 1,$uname,$udom,$cnum,$cdom); - &Apache::lonnet::instructor_log($cdom.'_'.$cnum.'_slotlog',\%storehash, + &Apache::lonnet::write_log('course',$cdom.'_'.$cnum.'_slotlog',\%storehash, 1,$uname,$udom,$uname,$udom); } } @@ -4605,9 +4655,12 @@ sub oldversion_warning { lenient => 'string_lenient', retrypartial => 'string_yesno', discussvote => 'string_discussvote', + examcode => 'string_examcode', ); if (exists($stringtypes{$name})) { - if (ref($strings{$stringtypes{$name}}) eq 'ARRAY') { + if ($name eq 'examcode') { + $desc = $value; + } elsif (ref($strings{$stringtypes{$name}}) eq 'ARRAY') { foreach my $possibilities (@{ $strings{$stringtypes{$name}} }) { next unless (ref($possibilities) eq 'ARRAY'); my ($parmval, $description) = @{ $possibilities }; @@ -4648,7 +4701,7 @@ sub handler { &Apache::lonhtmlcommon::clear_breadcrumbs(); &Apache::lonhtmlcommon::add_breadcrumb({href=>"/adm/parmset", - text=>"Parameter Manager", + text=>"Content and Problem Settings", faq=>10, bug=>'Instructor Interface', help =>
'. - ($foundkeys?'':&mt('There are no parameters.')).'