--- loncom/interface/lonparmset.pm 2009/05/20 18:03:04 1.413.4.1 +++ loncom/interface/lonparmset.pm 2009/05/27 13:36:46 1.451 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.413.4.1 2009/05/20 18:03:04 raeburn Exp $ +# $Id: lonparmset.pm,v 1.451 2009/05/27 13:36:46 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -44,7 +44,9 @@ This module sets coursewide and assessme =head1 INTERNAL SUBROUTINES -=over 4 +=over + +=pod =item parmval() @@ -56,26 +58,26 @@ Inputs: $what - a parameter spec (inclu Returns: A list, the first item is the index into the remaining list of items of parm valuse that is the active one, the list consists of parm values at the 14 possible levels - 14- General Course - 13- Map or Folder level in course - 12- resource default - 11- map default - 10- resource level in course - 9 - General for section - 8 - Map or Folder level for section - 7 - resource level in section - 6 - General for group - 5 - Map or Folder level for group - 4 - resource level in group - 3 - General for specific student - 2 - Map or Folder level for specific student - 1 - resource level for specific student +14- General Course +13- Map or Folder level in course +12- resource default +11- map default +10- resource level in course +9 - General for section +8 - Map or Folder level for section +7 - resource level in section +6 - General for group +5 - Map or Folder level for group +4 - resource level in group +3 - General for specific student +2 - Map or Folder level for specific student +1 - resource level for specific student =item parmval_by_symb() =item reset_caches() -=item cacheparmhash() +=item cacheparmhash() =item parmhash() @@ -118,7 +120,7 @@ Produces a link anchor. Inputs: $type,$dis,$value,$marker,$return,$call -Returns: scalar with html code for a link which will envoke the +Returns: scalar with html code for a link which will envoke the javascript function 'pjump'. =item page_js() @@ -133,7 +135,7 @@ javascript function 'pjump'. =item parm_control_group() -=item extractResourceInformation() : +=item extractResourceInformation() : Given the course data hash, extractResourceInformation extracts lots of information about the course's resources into a variety of hashes. @@ -145,7 +147,6 @@ Input: See list below: =item * B : hash, id->key list, will contain a comma separated list of the meta-data keys available for the given id - =item * B : hash, name of parameter->display value (what is the display value?) =item * B : hash, part identification->text representation of part, where the text representation is "[Part $part]" @@ -190,7 +191,7 @@ Input: See list below: =item standardkeyorder() -=item assessparms() : +=item assessparms() : Show assessment data and parameters. This is a large routine that should be simplified and shortened... someday. @@ -250,11 +251,11 @@ Variables used (guessed by Jeremy): =item check_cloners() : Checks if new users included in list of allowed cloners -are valid users. Replaces supplied list with +are valid users. Replaces supplied list with cleaned list containing only users with valid usernames and domains. -Inputs: $clonelist, $oldcloner +Inputs: $clonelist, $oldcloner where $clonelist is ref to array of requested cloners, and $oldcloner is ref to array of currently allowed cloners. @@ -270,8 +271,8 @@ change is made to the list of users allo a course. Inputs: $action,$cloner -where $action is add or drop, and $cloner is identity of -user for whom cloning ability is to be changed in course. +where $action is add or drop, and $cloner is identity of +user for whom cloning ability is to be changed in course. =item check_cloners() @@ -306,7 +307,7 @@ Set portfolio metadata =item parm_change_log() -=item handler() : +=item handler() : Main handler. Calls &assessparms subroutine. @@ -315,7 +316,6 @@ Main handler. Calls &assessparms subrou =cut - ################################################################### ################################################################### @@ -335,6 +335,7 @@ use Apache::longroup; use Apache::lonrss; use LONCAPA qw(:DEFAULT :match); + sub parmval { my ($what,$id,$def,$uname,$udom,$csec,$cgroup,$courseopt)=@_; return &parmval_by_symb($what,&symbcache($id),$def,$uname,$udom,$csec, @@ -352,7 +353,7 @@ sub parmval_by_symb { my $result=''; my @outpar=(); # ----------------------------------------------------- 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; @@ -454,7 +455,7 @@ sub parmval_by_symb { # --- Caches local to lonparmset - + sub reset_caches { &resetparmhash(); &resetsymbcache(); @@ -468,7 +469,7 @@ sub reset_caches { undef($parmhashid); undef(%parmhash); } - + sub cacheparmhash { if ($parmhashid eq $env{'request.course.fn'}) { return; } my %parmhashfile; @@ -479,7 +480,7 @@ sub reset_caches { $parmhashid=$env{'request.course.fn'}; } } - + sub parmhash { my ($id) = @_; &cacheparmhash(); @@ -487,14 +488,14 @@ sub reset_caches { } } -{ +{ my $symbsid; my %symbs; sub resetsymbcache { undef($symbsid); undef(%symbs); } - + sub symbcache { my $id=shift; if ($symbsid ne $env{'request.course.id'}) { @@ -515,14 +516,14 @@ sub reset_caches { } } -{ +{ my $rulesid; my %rules; sub resetrulescache { undef($rulesid); undef(%rules); } - + sub rulescache { my $id=shift; if ($rulesid ne $env{'request.course.id'} @@ -537,6 +538,7 @@ sub reset_caches { } + sub preset_defaults { my $type=shift; if (&rulescache($type.'_action') eq 'default') { @@ -552,6 +554,8 @@ sub preset_defaults { } + + sub date_sanity_info { my $checkdate=shift; unless ($checkdate) { return ''; } @@ -666,7 +670,7 @@ sub storeparm_by_symb_inner { my ($symb,$spnam,$snum,$nval,$ntype,$uname,$udom,$csec,$cgroup)=@_; # ---------------------------------------------------------- Construct prefixes $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; @@ -679,11 +683,11 @@ sub storeparm_by_symb_inner { my $seclevel=$env{'request.course.id'}.'.['.$csec.'].'.$spnam; my $seclevelr=$env{'request.course.id'}.'.['.$csec.'].'.$symbparm; my $seclevelm=$env{'request.course.id'}.'.['.$csec.'].'.$mapparm; - + my $courselevel=$env{'request.course.id'}.'.'.$spnam; my $courselevelr=$env{'request.course.id'}.'.'.$symbparm; my $courselevelm=$env{'request.course.id'}.'.'.$mapparm; - + my $storeunder=''; if (($snum==14) || ($snum==3)) { $storeunder=$courselevel; } if (($snum==13) || ($snum==2)) { $storeunder=$courselevelm; } @@ -695,7 +699,7 @@ sub storeparm_by_symb_inner { if ($snum==5) { $storeunder=$grplevelm; } if ($snum==4) { $storeunder=$grplevelr; } - + my $delete; if ($nval eq '') { $delete=1;} my %storecontent = ($storeunder => $nval, @@ -752,13 +756,14 @@ sub storeparm_by_symb_inner { } &Apache::lonnet::devalidateuserresdata($uname,$udom); } - + if ($reply=~/^error\:(.*)/) { return "Write Error: $1"; } return ''; } + sub valout { my ($value,$type,$editable)=@_; my $result = ''; @@ -815,6 +820,7 @@ sub valout { return $result; } + sub plink { my ($type,$dis,$value,$marker,$return,$call)=@_; my $winvalue=$value; @@ -835,9 +841,9 @@ sub plink { $$item = &HTML::Entities::encode($$item,'"<>&'); $$item =~ s/\'/\\\'/g; } - return ''); - } else { + } else { $parm=~s|\[.*\]\s||g; } my $automatic=&rulescache(($which=~/\_([^\_]+)$/)[0].'_triggers'); @@ -953,7 +968,7 @@ sub print_row { $parm.='
'.&mt('Automatically sets').' '.join(', ',split(/\:/,$automatic)).'
'; } $r->print(''); - + my $thismarker=$which; $thismarker=~s/^parameter\_//; my $mprefix=$rid.'&'.$thismarker.'&'; @@ -967,9 +982,9 @@ sub print_row { } elsif ($cgroup) { &print_td($r,6,$defbgthree,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display); } elsif ($csec) { - &print_td($r,9,$defbgtwo,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display); + &print_td($r,9,$defbgtwo,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display); } else { - &print_td($r,14,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display); + &print_td($r,14,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display); } } elsif ($parmlev eq 'map') { @@ -1006,7 +1021,7 @@ sub print_row { &print_td($r,12,'#FFDDDD',$result,\@outpar,$mprefix,$_,\@typeoutpar,$display); &print_td($r,11,'#FFDDDD',$result,\@outpar,$mprefix,$_,\@typeoutpar,$display); &print_td($r,10,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display); - + if ($csec) { &print_td($r,9,$defbgtwo,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display); &print_td($r,8,$defbgtwo,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display); @@ -1018,7 +1033,7 @@ sub print_row { &print_td($r,5,$defbgthree,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display); &print_td($r,4,$defbgthree,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display); } - + if ($uname) { if ($othergrp) { $r->print($othergrp); @@ -1040,6 +1055,8 @@ sub print_row { &valout($sessionval,$sessionvaltype).' '. ''); } + $r->print(''); + $r->print("\n"); } sub print_td { @@ -1077,7 +1094,7 @@ sub print_usergroups { $courseopt); my $bgcolor = $defbg; my $grp_parm; - if (($coursereply) && ($cgroup ne $resultgroup)) { + if (($coursereply) && ($cgroup ne $resultgroup)) { if ($result > 3) { $bgcolor = '#AAFFAA'; $grp_parm = &valout($coursereply,$resulttype); @@ -1120,6 +1137,8 @@ sub parm_control_group { return($coursereply,$resultitem,$resultgroup,$resultlevel,$resulttype); } + + sub extractResourceInformation { my $ids = shift; my $typep = shift; @@ -1158,15 +1177,15 @@ sub extractResourceInformation { # my $name=&Apache::lonnet::metadata($srcf,$key.'.name'); if (!exists($$allparms{$name}) || $$allparms{$name} =~ m/^\s*$/ ) { - my ($display,$parmdis); - $display = &standard_parameter_names($name); - if ($display eq '') { - $display= &Apache::lonnet::metadata($srcf,$key.'.display'); - $parmdis = $display; - $parmdis =~ s/\s*\[Part.*$//g; - } else { - $parmdis = $display; - } + my ($display,$parmdis); + $display = &standard_parameter_names($name); + if ($display eq '') { + $display= &Apache::lonnet::metadata($srcf,$key.'.display'); + $parmdis = $display; + $parmdis =~ s/\s*\[Part.*$//g; + } else { + $parmdis = $display; + } $$allparms{$name}=$parmdis; if (ref($defkeytype)) { $$defkeytype{$name}= @@ -1189,14 +1208,14 @@ sub extractResourceInformation { } # # Put in order -# +# unless ($$keyorder{$key}) { $$keyorder{$key}=$keyordercnt; $keyordercnt++; } } - + if (!exists($$mapp{$mapid})) { $$mapp{$id}= &Apache::lonnet::declutter($resource->enclosing_map_src()); @@ -1206,7 +1225,7 @@ sub extractResourceInformation { $$maptitles{$mapid}=&mt('Main Course Documents'); } else { $$maptitles{$mapid}= - &Apache::lonnet::gettitle($$mapp{$id}); + &Apache::lonnet::gettitle($$mapp{$id}); } $$maptitles{$$mapp{$id}}=$$maptitles{$mapid}; $$symbp{$mapid}=$$mapp{$id}.'___(all)'; @@ -1218,8 +1237,6 @@ sub extractResourceInformation { } -################################################## -################################################## sub isdateparm { my $type=shift; @@ -1266,7 +1283,7 @@ sub parmmenu { checkthis('contentopen','pscat'); checkthis('contentclose','pscat'); } - + function checkvisi() { checkthis('hiddenresource','pscat'); @@ -1292,6 +1309,7 @@ sub parmmenu { ENDSCRIPT $r->print(); + $r->print(&Apache::lonhtmlcommon::row_title(&mt('Select Parameters to View'))); $r->print("\n".'
'. + return '
'. ''. + .$marker."','".$return."','".$call."','".$hour."','".$min."','".$sec."'".');">'. $valout.'
'; } @@ -898,11 +904,20 @@ sub startpage { my %loaditems = ('onunload' => "pclose()", 'onload' => "group_or_section('cgroup')",); - my $start_page = + if ((($env{'form.command'} eq 'set') && ($env{'form.url'}) + && (!$env{'form.dis'})) || ($env{'form.symb'})) { + &Apache::lonhtmlcommon::add_breadcrumb({help=>'Problem_Parameters', + text=>"Problem Parameters"}); + } else { + &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=settable', + text=>"Table Mode", + help => 'Course_Setting_Parameters'}); + } + my $start_page = &Apache::loncommon::start_page('Set/Modify Course Parameters', &page_js(), {'add_entries' => \%loaditems,}); - my $breadcrumbs = + my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Table Mode Parameter Setting','Table_Mode'); $r->print(<0;$i--) { - if ($typeoutpar[$i]) { + if ($typeoutpar[$i]) { $cascadetype=$typeoutpar[$i]; } else { $typeoutpar[$i]=$cascadetype; @@ -945,7 +960,7 @@ sub print_row { if ($parmlev eq 'full') { $r->print('
' .$$part{$which}.''.$parm.'
'); my $cnt=0; foreach $tempkey (&keysindisplayorder($allparms,$keyorder)) { @@ -1301,8 +1319,8 @@ ENDSCRIPT $r->print(' checked="checked"'); } $r->print(' />'.($$allparms{$tempkey}=~/\S/ ? $$allparms{$tempkey} - : $tempkey). - ''); + : $tempkey) + .''); $cnt++; if ($cnt==3) { $r->print("\n"); @@ -1353,6 +1371,7 @@ ENDSCRIPT sub partmenu { my ($r,$allparts,$psprt)=@_; + $r->print('
'; - $g_s_footer='
'; + $r->print(&Apache::lonhtmlcommon::row_title(&mt('Group/Section'))); + $r->print($sections.$groups); + $r->print(&Apache::lonhtmlcommon::row_closure()); } - $r->print('' - .$g_s_header - .$sections - .$groups - .$g_s_footer - .'
'.&mt('User').'
' - .&mt('For User [_1] or Student/Employee ID [_2] at Domain [_3]' + $r->print(&Apache::lonhtmlcommon::row_title(&mt('User'))); + $r->print(&mt('For User [_1] or Student/Employee ID [_2] at Domain [_3]' ,'' ,' ' - ,$chooseopt) - .'
' - .'
' - ); + ,$chooseopt)); } sub displaymenu { my ($r,$allparms,$allparts,$pscat,$psprt,$keyorder)=@_; - $r->print('
'.&mt('Select Parameters to View').''. - &mt('Select Parts to View').'
'); + $r->print(&Apache::lonhtmlcommon::topic_bar (2,&mt('Select Parameters'))); + $r->print(&Apache::lonhtmlcommon::start_pick_box()); &parmmenu($r,$allparms,$pscat,$keyorder); - $r->print(''); + $r->print(&Apache::lonhtmlcommon::row_closure()); + + $r->print(&Apache::lonhtmlcommon::row_title(&mt('Select Parts to View'))); &partmenu($r,$allparts,$psprt); - $r->print('
'); + $r->print(&Apache::lonhtmlcommon::row_closure(1)); + $r->print(&Apache::lonhtmlcommon::end_pick_box()); } sub mapmenu { my ($r,$allmaps,$pschp,$maptitles)=@_; - $r->print(''.&mt('Select Enclosing Map or Folder').' '); + + $r->print(&Apache::lonhtmlcommon::row_title(&mt('Select Enclosing Map or Folder'))); $r->print('"); + } sub levelmenu { my ($r,$alllevs,$parmlev)=@_; - $r->print(''.&mt('Select Parameter Level'). - &Apache::loncommon::help_open_topic('Course_Parameter_Levels').' '); + + $r->print(&Apache::lonhtmlcommon::row_title(&mt('Select Parameter Level').&Apache::loncommon::help_open_topic('Course_Parameter_Levels'))); $r->print(''); + $r->print(''); + $r->print('
'); } - &usermenu($r,$uname,$id,$udom,$csec,$cgroup,$parmlev,\@usersgroups); + $r->print(&Apache::lonhtmlcommon::topic_bar (3,&mt('User Selection'))); + $r->print(&Apache::lonhtmlcommon::start_pick_box()); + &usermenu($r,$uname,$id,$udom,$csec,$cgroup,$parmlev,\@usersgroups); + $r->print(&Apache::lonhtmlcommon::row_closure(1)); + $r->print(&Apache::lonhtmlcommon::end_pick_box()); + $r->print('

'.$message.'

'); @@ -1874,8 +1901,8 @@ sub assessparms { my $userspan=3; if ($cgroup ne '') { $coursespan += 3; - } - + } + $r->print('

'); $r->print(''); $r->print(''); @@ -1951,7 +1978,7 @@ ENDTABLEHEADFOUR my $rid=$_; my ($inmapid)=($rid=~/\.(\d+)$/); - if ((!$pssymb && + if ((!$pssymb && (($pschp eq 'all') || ($allmaps{$pschp} eq $mapp{$rid}))) || ($pssymb && $pssymb eq $symbp{$rid})) { @@ -1986,7 +2013,6 @@ ENDTABLEHEADFOUR if (grep $_ eq $tempkeyp, @catmarker) { $part{$_}=&Apache::lonnet::metadata($uri,$_.'.part'); $name{$_}=&Apache::lonnet::metadata($uri,$_.'.name'); - unless ($display{$_}) { $display{$_}=''; } my $parmdis=&Apache::lonnet::metadata($uri,$_.'.display'); if ($allparms{$name{$_}} ne '') { my $identifier; @@ -1997,19 +2023,20 @@ ENDTABLEHEADFOUR } else { $display{$_} = $parmdis; } + unless ($display{$_}) { $display{$_}=''; } $display{$_}.=' ('.$name{$_}.')'; $default{$_}=&Apache::lonnet::metadata($uri,$_); $type{$_}=&Apache::lonnet::metadata($uri,$_.'.type'); $thistitle=&Apache::lonnet::metadata($uri,$_.'.title'); } } - my $totalparms=scalar(keys(%name)); + my $totalparms=scalar keys %name; if ($totalparms>0) { my $firstrow=1; my $title=&Apache::lonnet::gettitle($symbp{$rid}); $r->print(''); $r->print(''); $r->print(''); + ' rowspan='.$totalparms. + '>'.$maptitles{$mapp{$rid}}.''); foreach (&keysinorder_bytype(\%name,\%keyorder)) { unless ($firstrow) { @@ -2040,7 +2067,6 @@ ENDTABLEHEADFOUR \%type,\%display,$defbgone,$defbgtwo, $defbgthree,$parmlev,$uname,$udom,$csec, $cgroup,\@usersgroups); - $print(''."\n"); } } } @@ -2050,14 +2076,14 @@ ENDTABLEHEADFOUR } # end of full #--------------------------------------------------- Entry for parm level map if ($parmlev eq 'map') { - my $defbgone = 'E0E099'; - my $defbgtwo = 'FFFF99'; - my $defbgthree = 'FFBB99'; + my $defbgone = '#E0E099'; + my $defbgtwo = '#FFFF99'; + my $defbgthree = '#FFBB99'; my %maplist; if ($pschp eq 'all') { - %maplist = %allmaps; + %maplist = %allmaps; } else { %maplist = ($pschp => $mapp{$pschp}); } @@ -2077,11 +2103,11 @@ ENDTABLEHEADFOUR my $map = 0; # $r->print("Catmarker: @catmarker
\n"); - + foreach (@ids) { ($map)=(/([\d]*?)\./); my $rid = $_; - + # $r->print("$mapid:$map: $rid
\n"); if ($map eq $mapid) { @@ -2099,7 +2125,7 @@ ENDTABLEHEADFOUR my $tempkeyp = $_; my $fullkeyp = $tempkeyp; $tempkeyp =~ s/_\w+_/_0_/; - + if ((grep $_ eq $fullkeyp, @catmarker) &&(!$name{$tempkeyp})) { $part{$tempkeyp}="0"; $name{$tempkeyp}=&Apache::lonnet::metadata($uri,$fullkeyp.'.name'); @@ -2122,7 +2148,7 @@ ENDTABLEHEADFOUR } # end loop through keys } } # end loop through ids - + #---------------------------------------------------- print header information my $foldermap=&mt($maptitle=~/^uploaded/?'Folder':'Map'); my $showtitle=$maptitles{$maptitle}.($maptitle!~/^uploaded/?' ['.$maptitle.']':''); @@ -2149,30 +2175,32 @@ ENDTABLEHEADFOUR ,''.$coursename.'' ) ."
\n" - ); + ); #---------------------------------------------------------------- print table - $r->print('

'..&Apache::loncommon::start_data_table(). - &Apache::loncommon::start_data_table_header_row(). - '

'. - ''. - ''. - &Apache::loncommon::end_data_table_header_row()); + $r->print('

'.&Apache::loncommon::start_data_table() + .&Apache::loncommon::start_data_table_header_row() + .'

' + .'' + .'' + .&Apache::loncommon::end_data_table_header_row() + ); foreach (&keysinorder(\%name,\%keyorder)) { $r->print(&Apache::loncommon::start_data_table_row()); &print_row($r,$_,\%part,\%name,\%symbp,$mapid,\%default, \%type,\%display,$defbgone,$defbgtwo,$defbgthree, $parmlev,$uname,$udom,$csec,$cgroup); - $r->print(&Apache::loncommon::end_data_table_row()); } - $r->print(&Apache::loncommon::end_data_table().'

'); + $r->print(&Apache::loncommon::end_data_table().'

' + .'' + ); } # end each map } # end of $parmlev eq map #--------------------------------- Entry for parm level general (Course level) if ($parmlev eq 'general') { - my $defbgone = 'E0E099'; - my $defbgtwo = 'FFFF99'; - my $defbgthree = 'FFBB99'; + my $defbgone = '#E0E099'; + my $defbgtwo = '#FFFF99'; + my $defbgthree = '#FFBB99'; #-------------------------------------------- for each map, gather information my $mapid="0.0"; @@ -2183,10 +2211,10 @@ ENDTABLEHEADFOUR my %display = (); my %type = (); my %default = (); - + foreach (@ids) { my $rid = $_; - + my $uri=&Apache::lonnet::declutter($uris{$rid}); #-------------------------------------------------------------------- @@ -2221,7 +2249,7 @@ ENDTABLEHEADFOUR } } # end loop through keys } # end loop through ids - + #---------------------------------------------------- print header information my $setdef=&mt("Set Defaults for All Resources in Course"); $r->print(<print(" ".&mt("ALL")." ".&mt("USERS")." \n"); } - + if ($csec) {$r->print(&mt("Section")." $csec\n")}; if ($cgroup) {$r->print(&mt("Group")." $cgroup\n")}; $r->print("\n"); #---------------------------------------------------------------- print table - $r->print('

'.&Apache::loncommon::start_data_table(). - &Apache::loncommon::start_data_table_header_row(). - '

'. - ''. - ''. - &Apache::loncommon::end_data_table_header_row()); + $r->print('

'.&Apache::loncommon::start_data_table() + .&Apache::loncommon::start_data_table_header_row() + .'

' + .'' + .'' + .&Apache::loncommon::end_data_table_header_row() + ); foreach (&keysinorder(\%name,\%keyorder)) { $r->print(&Apache::loncommon::start_data_table_row()); &print_row($r,$_,\%part,\%name,\%symbp,$mapid,\%default, \%type,\%display,$defbgone,$defbgtwo,$defbgthree, $parmlev,$uname,$udom,$csec,$cgroup); - $r->print(&Apache::loncommon::end_data_table_row()); } - $r->print(&Apache::loncommon::end_data_table().'

'); + $r->print(&Apache::loncommon::end_data_table() + .'

' + .'' + ); } # end of $parmlev eq general } $r->print(''.&Apache::loncommon::end_page()); } # end sub assessparms - ################################################## # Overview mode ################################################## @@ -2344,7 +2374,7 @@ sub storedata { $typeof=$env{'form.typeof_'.$thiskey}; $text = &mt('Saved modified date for'); } - if (defined($data) and $$olddata{$thiskey} ne $data) { + if (defined($data) and $$olddata{$thiskey} ne $data) { if ($tuname) { if (&Apache::lonnet::put('resourcedata',{$tkey=>$data, $tkey.'.type' => $typeof}, @@ -2359,8 +2389,8 @@ sub storedata { &Apache::lonnet::devalidateuserresdata($tuname,$tudom); } else { $newdata{$thiskey}=$data; - $newdata{$thiskey.'.type'}=$typeof; - } + $newdata{$thiskey.'.type'}=$typeof; + } } } elsif ($cmd eq 'del') { if ($tuname) { @@ -2414,7 +2444,7 @@ sub parse_listdata_key { my ($key,$listdata) = @_; # split into student/section affected, and # the realm (folder/resource part and parameter - my ($student,$realm) = + my ($student,$realm) = ($key=~/^\Q$env{'request.course.id'}\E\.\[([^\.]+)\]\.(.+)$/); # if course wide student would be undefined if (!defined($student)) { @@ -2455,13 +2485,13 @@ sub listdata { if ($sortorder eq 'realmstudent') { if ($ares ne $bres ) { $result = ($ares cmp $bres); - } elsif ($astudent ne $bstudent) { + } elsif ($astudent ne $bstudent) { $result = ($astudent cmp $bstudent); } elsif ($apart ne $bpart ) { $result = ($apart cmp $bpart); } } else { - if ($astudent ne $bstudent) { + if ($astudent ne $bstudent) { $result = ($astudent cmp $bstudent); } elsif ($ares ne $bres ) { $result = ($ares cmp $bres); @@ -2469,7 +2499,7 @@ sub listdata { $result = ($apart cmp $bpart); } } - + if (!$result) { if (defined($aparm) && defined($bparm)) { $result = ($aparm <=> $bparm); @@ -2619,7 +2649,7 @@ sub default_selector { return ''; } -my %strings = +my %strings = ( 'string_yesno' => [[ 'yes', 'Yes' ], @@ -2634,7 +2664,7 @@ my %strings = sub string_selector { my ($thistype, $thiskey, $showval) = @_; - + if (!exists($strings{$thistype})) { return &default_selector($thiskey,$showval); } @@ -2692,6 +2722,8 @@ sub newoverview { my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'}; 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 $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Overview'); $r->print(<print('
'.&mt('Any User').'
'. + ' rowspan='.$totalparms. + '>'. join(' / ',split(/\//,$uri)). '

'. "print('

'.$typep{$rid}. + ' rowspan='.$totalparms.'>'.$typep{$rid}. ''.$maptitles{$mapp{$rid}}.'
'.&mt('Parameter Name').''.&mt('Default Value').''.&mt('Parameter in Effect').''.&mt('Parameter Name').''.&mt('Default Value').''.&mt('Parameter in Effect').''.&mt('Parameter Name').''.&mt('Default Value').''.&mt('Parameter in Effect').''.&mt('Parameter Name').''.&mt('Default Value').''.&mt('Parameter in Effect').'
- '. '' ); - + $r->print(''); - + } } $r->print(&Apache::loncommon::end_data_table().'

'. @@ -2969,6 +3025,8 @@ sub date_shift_one { my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'}; my $crs = $env{'course.'.$env{'request.course.id'}.'.num'}; + &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=dateshift1&timebase='.$env{'form.timebase'}, + text=>"Shifting Dates"}); my $start_page=&Apache::loncommon::start_page('Shift Dates'); my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Shift'); $r->print(<'/adm/parmset?action=dateshift1&timebase='.$env{'form.timebase'}, + text=>"Shifting Dates"}); my $start_page=&Apache::loncommon::start_page('Shift Dates'); my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Shift'); $r->print(<print(&header()); + $r->print(&Apache::lonhtmlcommon::breadcrumbs('Parameter Manager')); $r->print(< @@ -3180,86 +3247,87 @@ ENDMAINFORMHEAD my $vgr = &Apache::lonnet::allowed('vgr',$env{'request.course.id'}); my $mgr = &Apache::lonnet::allowed('mgr',$env{'request.course.id'}); + my @menu = - ( { divider=>'Settings for Your Course', - }, - { text => 'Edit course configuration', - url => '/adm/courseprefs?origin=params', - permission => $parm_permission, - help => 'Course_Environment', - }, - { text => 'Set Portfolio Metadata', - action => 'setrestrictmeta', - permission => $parm_permission, - }, - { text => 'Manage Course Slots', - url => '/adm/slotrequest?command=showslots', - permission => $vgr, - }, - { text => 'Reset Student Access Times', - url => '/adm/helper/resettimes.helper', - permission => $mgr, - }, - - { text => 'Set Parameter Setting Default Actions', - action => 'setdefaults', - permission => $parm_permission, - }, - { divider => 'New and Existing Parameter Settings for Your Resources', - }, - { text => 'Set/Modify Resource Parameters - Helper Mode', - url => '/adm/helper/parameter.helper', - permission => $parm_permission, - help => 'Parameter_Helper', - }, - { text => 'Set/Modify Resource Parameters - Overview Mode', - action => 'newoverview', - permission => $parm_permission, - help => 'Parameter_Overview', - }, - { text => 'Set/Modify Resource Parameters - Table Mode', - action => 'settable', - permission => $parm_permission, - help => 'Table_Mode', - }, - { divider => 'Existing Parameter Settings for Your Resources', - }, - { text => 'Modify Resource Parameters - Overview Mode', - action => 'setoverview', - permission => $parm_permission, - help => 'Parameter_Overview', - }, - { text => 'Parameter Change Log and Course Blog Posting/User Notification', - action => 'parameterchangelog', - permission => $parm_permission, - }, + ( { categorytitle=>'Settings for this Course', + items => [ + { linktext => 'Course Configuration', + url => '/adm/courseprefs?origin=params', + permission => $parm_permission, + linktitle =>'Edit course configuration.' , + icon => 'preferences-desktop-remote-desktop.png' , + #help => 'Course_Environment', + }, + { linktext => 'Portfolio Metadata', + url => '/adm/parmset?action=setrestrictmeta', + permission => $parm_permission, + linktitle => 'Restrict metadata for this course.' , + icon =>'contact-new.png' , + }, + { linktext => 'Manage Course Slots', + url => '/adm/slotrequest?command=showslots', + permission => $vgr, + linktitle =>'Manage slots for this course.' , + icon => 'format-justify-fill.png' , + }, + { linktext => 'Reset Student Access Times', + url => '/adm/helper/resettimes.helper', + permission => $mgr, + linktitle =>'Reset access times for folders/maps, resources or the course.' , + icon => 'start-here.png' , + }, + + { linktext => 'Set Parameter Setting Default Actions', + url => '/adm/parmset?action=setdefaults', + permission => $parm_permission, + linktitle =>'Set default actions for parameters.' , + icon => 'folder-new.png' , + }]}, + { categorytitle => 'New and Existing Parameter Settings for Resources', + items => [ + { linktext => 'Edit Resource Parameters - Helper Mode', + url => '/adm/helper/parameter.helper', + permission => $parm_permission, + linktitle =>'Set/Modify resource parameters in helper mode.' , + icon => 'dialog-information.png' , + #help => 'Parameter_Helper', + }, + { linktext => 'Edit Resource Parameters - Overview Mode', + url => '/adm/parmset?action=newoverview', + permission => $parm_permission, + linktitle =>'Set/Modify resource parameters in overview mode.' , + icon => 'edit-find.png' , + #help => 'Parameter_Overview', + }, + { linktext => 'Edit Resource Parameters - Table Mode', + url => '/adm/parmset?action=settable', + permission => $parm_permission, + linktitle =>'Set/Modify resource parameters in table mode.' , + icon => 'edit-copy.png' , + #help => 'Table_Mode', + }]}, + { categorytitle => 'Existing Parameter Settings for Resources', + items => [ + { linktext => 'Modify Resource Parameters - Overview Mode', + url => '/adm/parmset?action=setoverview', + permission => $parm_permission, + linktitle =>'Set/Modify existing resource parameters in overview mode.' , + icon => 'preferences-desktop-wallpaper.png' , + #help => 'Parameter_Overview', + }, + { linktext => 'Change Log', + url => '/adm/parmset?action=parameterchangelog', + permission => $parm_permission, + linktitle =>'View parameter and course blog posting/user notification change log.' , + icon => 'emblem-system.png' , + }]} ); - my $menu_html = ''; - foreach my $menu_item (@menu) { - if ($menu_item->{'divider'}) { - $menu_html .= '

'.&mt($menu_item->{'divider'}).'

'; - next; - } - next if (! $menu_item->{'permission'}); - $menu_html.='

'; - $menu_html.=''; - if (exists($menu_item->{'url'})) { - $menu_html.=qq{}; - } else { - $menu_html.= - qq{}; - } - $menu_html.= &mt($menu_item->{'text'}).''; - if (exists($menu_item->{'help'})) { - $menu_html.= - &Apache::loncommon::help_open_topic($menu_item->{'help'}); - } - $menu_html.='

'.$/; - } - $r->print($menu_html); + $r->print(&Apache::lonhtmlcommon::generate_menu(@menu)); return; } -### Set portfolio metadata + + + sub output_row { my ($r, $field_name, $field_text, $added_flag) = @_; my $output; @@ -3278,48 +3346,53 @@ sub output_row { push @options,['deleted', 'Delete Metadata Field']; } $output = &Apache::loncommon::start_data_table_row(); - $output .= ''; + $output .= ''; $output .= &Apache::loncommon::end_data_table_row(); foreach my $opt (@options) { my $checked = ($options =~ m/$opt->[0]/) ? ' checked="checked" ' : '' ; $output .= &Apache::loncommon::continue_data_table_row(); - $output .= ''; + &mt($opt->[1]).''; $output .= &Apache::loncommon::end_data_table_row(); } $output .= &Apache::loncommon::continue_data_table_row(); - $output .= ''; + $output .= ''; $output .= &Apache::loncommon::end_data_table_row(); my $multiple_checked; my $single_checked; if ($options =~ m/onlyone/) { - $multiple_checked = ""; + $multiple_checked = ''; $single_checked = ' checked="checked"'; } else { $multiple_checked = ' checked="checked"'; - $single_checked = ""; + $single_checked = ''; } $output .= &Apache::loncommon::continue_data_table_row(); - $output .= ''; + $output .= ''; $output .= &Apache::loncommon::end_data_table_row(); $output .= &Apache::loncommon::continue_data_table_row(); - $output .= ''; + $output .= ''; $output .= &Apache::loncommon::end_data_table_row(); } return ($output); } + + + sub order_meta_fields { my ($r)=@_; my $idx = 1; my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'}; my $crs = $env{'course.'.$env{'request.course.id'}.'.num'}; $r->print(&Apache::loncommon::start_page('Order Metadata Fields')); + &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=addmetadata', + text=>"Add Metadata Field"}); &Apache::lonhtmlcommon::add_breadcrumb ({href=>"/adm/parmset?action=setrestrictmeta", text=>"Restrict Metadata"}, @@ -3358,7 +3431,7 @@ sub order_meta_fields { } my $ordered_fields = join ",", @neworder; my $put_result = &Apache::lonnet::put('environment', - {'metadata.addedorder'=>$ordered_fields},$dom,$crs); + {'metadata.addedorder'=>$ordered_fields},$dom,$crs); &Apache::lonnet::appenv({'course.'.$env{'request.course.id'}.'.metadata.addedorder' => $ordered_fields}); } my $fields = &get_added_meta_fieldnames($env{'request.course.id'}); @@ -3371,8 +3444,8 @@ sub order_meta_fields { $ordered_fields = join ",", @fields_in_order; } my $put_result = &Apache::lonnet::put('environment', - {'metadata.addedorder'=>$ordered_fields},$dom,$crs); - } + {'metadata.addedorder'=>$ordered_fields},$dom,$crs); + } $r->print('
'); + #$r->print(' + # '); + #$r->print(''); } - $r->print('
'); + $r->print('
'); + #$r->print('

Step 1

'); + $r->print('
' ); + $r->print(&Apache::lonhtmlcommon::start_pick_box()); &levelmenu($r,\%alllevs,$parmlev); if ($parmlev ne 'general') { - $r->print('
'); + #$r->print(''); + $r->print(&Apache::lonhtmlcommon::row_closure()); &mapmenu($r,\%allmaps,$pschp,\%maptitles); - $r->print('
'); - - $r->print(' -
'); + $r->print(&Apache::lonhtmlcommon::row_closure(1)); + $r->print(&Apache::lonhtmlcommon::end_pick_box()); + $r->print(''); + #$r->print('
'); + + #$r->print(' + #
'); + $r->print('
'); + $r->print('
' ); + $r->print(&Apache::lonhtmlcommon::start_pick_box()); &parmmenu($r,\%allparms,\@pscat,\%keyorder); - $r->print('
- '. + $r->print(&Apache::lonhtmlcommon::row_closure()); + + $r->print(&Apache::lonhtmlcommon::row_title(&mt('Select Parts to View'))); + #$r->print('
'. + $r->print(''. '
'.&mt('Parts').''.&mt('Section(s)'). ''.&mt('Group(s)').'
'); &partmenu($r,\%allparts,\@psprt); @@ -2777,11 +2823,17 @@ ENDOVER $r->print(''); &groupmenu($r,\@selected_groups); $r->print('
'); - $r->print('
'); - + #$r->print('
'); + $r->print(&Apache::lonhtmlcommon::row_closure(1)); + $r->print(&Apache::lonhtmlcommon::end_pick_box()); + $r->print(''); + + $r->print('
'); + $r->print('
' ); my $sortorder=$env{'form.sortorder'}; unless ($sortorder) { $sortorder='realmstudent'; } &sortmenu($r,$sortorder); + $r->print('
'); $r->print('

'); @@ -2852,6 +2904,8 @@ sub overview { my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'}; 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('Modify Parameters'); my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Overview'); $r->print(<'/adm/parmset?action=cleanparameters', + text=>"Clean Parameters"}); my $start_page=&Apache::loncommon::start_page('Clean Parameters'); my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Clean'); $r->print(<print(&Apache::loncommon::start_data_table_row(). '
'); my $display_value = $resourcedata->{$thiskey}; if (&isdateparm($resourcedata->{$thiskey.'.type'})) { - $display_value = + $display_value = &Apache::lonlocal::locallocaltime($display_value); } $r->print(&mt('Parameter: "[_1]" with value: "[_2]"', @@ -2955,7 +3011,7 @@ ENDOVER } $r->print('
   '.&mt('Part: [_1]',$data{'parameter_part'})); $r->print('
'.$field_text.':'.(' ' x 5).''.(' ' x 5).' '.(' ' x 10).''.(' ' x 10).''.(' ' x 10).''.(' ' x 10).' + + '.&mt('Student may select multiple choices from list').''.(' ' x 10).''.(' ' x 10).' + + '.&mt('Student may select only one choice from list').'
'); my $num_fields = scalar(@fields_in_order); foreach my $key (@fields_in_order) { @@ -3396,6 +3469,8 @@ sub order_meta_fields { $r->print('
'); return 'ok'; } + + sub continue { my $output; $output .= '

'; @@ -3403,8 +3478,12 @@ sub continue { $output .= ''; return ($output); } + + sub addmetafield { my ($r)=@_; + &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=addmetadata', + text=>"Add Metadata Field"}); $r->print(&Apache::loncommon::start_page('Add Metadata Field')); $r->print(&Apache::lonhtmlcommon::breadcrumbs('Add Metadata Field')); my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'}; @@ -3417,7 +3496,7 @@ sub addmetafield { $options =~ s/,,/,/; my $put_result = &Apache::lonnet::put('environment', {'metadata.'.$meta_field.'.options'=>$options},$dom,$crs); - + $r->print('Undeleted Metadata Field '.$env{'course.'.$env{'request.course.id'}.'.metadata.'.$meta_field.'.added'}." with result ".$put_result.'
'); } $r->print(&continue()); @@ -3449,12 +3528,17 @@ sub addmetafield { } $r->print('
'); } + + + sub setrestrictmeta { my ($r)=@_; my $next_meta; my $output; my $item_num; my $put_result; + &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setrestrictmeta', + text=>"Restrict Metadata"}); $r->print(&Apache::loncommon::start_page('Restrict Metadata')); $r->print(&Apache::lonhtmlcommon::breadcrumbs('Restrict Metadata')); my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'}; @@ -3471,13 +3555,13 @@ sub setrestrictmeta { $save_field = $meta_field; if ($env{'form.'.$meta_field.'_stuadd'}) { $options.='stuadd,'; - } + } if ($env{'form.'.$meta_field.'_choices'}) { $options.='choices,'; - } + } if ($env{'form.'.$meta_field.'_onlyone'} eq 'single') { $options.='onlyone,'; - } + } if ($env{'form.'.$meta_field.'_active'}) { $options.='active,'; } @@ -3523,7 +3607,7 @@ ENDButtons $output.= &output_row($r, $field, $$added_metadata_fields{$field},$added_flag, $row_alt); } $output .= &Apache::loncommon::end_data_table(); - $r->print(<print(< $output $buttons @@ -3532,7 +3616,9 @@ ENDenv $r->print(&Apache::loncommon::end_page()); return 'ok'; } -################################################## + + + sub get_added_meta_fieldnames { my ($cid) = @_; my %fields; @@ -3545,6 +3631,9 @@ sub get_added_meta_fieldnames { } return \%fields; } + + + sub get_deleted_meta_fieldnames { my ($cid) = @_; my %fields; @@ -3562,7 +3651,9 @@ sub get_deleted_meta_fieldnames { sub defaultsetter { my ($r) = @_; - my $start_page = + &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setdefaults', + text=>"Set Defaults"}); + my $start_page = &Apache::loncommon::start_page('Parameter Setting Default Actions'); my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Defaults'); $r->print(<print(&mt('Manual setting rules apply to all interfaces.').'
'. &mt('Automatic setting rules apply to table mode interfaces only.')); @@ -3713,8 +3804,8 @@ ENDYESNO $r->print(''.&Apache::loncommon::end_data_table_row()); } $r->print(&Apache::loncommon::end_data_table(). - "\n".''."\n". + "\n".''."\n". &Apache::loncommon::end_page()); return; } @@ -3743,7 +3834,7 @@ sub components { $issection=''; } my $realm=''.&mt('All Resources').''; - my $realmdescription=&mt('all resources'); + my $realmdescription=&mt('all resources'); if ($middle=~/^(.+)\_\_\_\(all\)$/) { $realm=''.&mt('Folder/Map').': '.&Apache::lonnet::gettitle($1).'
('.$1.')
'; $realmdescription=&mt('folder').' '.&Apache::lonnet::gettitle($1); @@ -3758,6 +3849,8 @@ sub components { } my %standard_parms; + + sub load_parameter_names { open(my $config,"<$Apache::lonnet::perlvar{'lonTabDir'}/packages.tab"); while (my $configline=<$config>) { @@ -3772,7 +3865,7 @@ sub load_parameter_names { close($config); $standard_parms{'int_pos'} = 'Positive Integer'; $standard_parms{'int_zero_pos'} = 'Positive Integer or Zero'; - %standard_parms=&Apache::lonlocal::texthash(%standard_parms); + %standard_parms=&Apache::lonlocal::texthash(%standard_parms); } sub standard_parameter_names { @@ -3781,19 +3874,18 @@ sub standard_parameter_names { &load_parameter_names(); } if ($standard_parms{$name}) { - return $standard_parms{$name}; - } else { - return $name; + return $standard_parms{$name}; + } else { + return $name; } } -# -# Parameter Change Log -# sub parm_change_log { my ($r)=@_; + &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=settable', + text=>"Parameter Change Log"}); $r->print(&Apache::loncommon::start_page('Parameter Change Log')); $r->print(&Apache::lonhtmlcommon::breadcrumbs('Parameter Change Log')); @@ -3805,7 +3897,7 @@ sub parm_change_log { $r->print('
'); - + my %saveable_parameters = ('show' => 'scalar',); &Apache::loncommon::store_course_settings('parameter_log', \%saveable_parameters); @@ -3833,7 +3925,7 @@ sub parm_change_log { } if ($last) { ($folder) = &Apache::lonnet::decode_symb($last); } } - foreach my $id (sort + foreach my $id (sort { if ($parmlog{$b}{'exe_time'} ne $parmlog{$a}{'exe_time'}) { return $parmlog{$b}{'exe_time'} <=>$parmlog{$a}{'exe_time'} @@ -3846,15 +3938,15 @@ sub parm_change_log { my $count = 0; my $time = &Apache::lonlocal::locallocaltime($parmlog{$id}{'exe_time'}); - my $plainname = + my $plainname = &Apache::loncommon::plainname($parmlog{$id}{'exe_uname'}, $parmlog{$id}{'exe_udom'}); - my $about_me_link = + my $about_me_link = &Apache::loncommon::aboutmewrapper($plainname, $parmlog{$id}{'exe_uname'}, $parmlog{$id}{'exe_udom'}); my $send_msg_link=''; - if ((($parmlog{$id}{'exe_uname'} ne $env{'user.name'}) + if ((($parmlog{$id}{'exe_uname'} ne $env{'user.name'}) || ($parmlog{$id}{'exe_udom'} ne $env{'user.domain'}))) { $send_msg_link ='
'. &Apache::loncommon::messagewrapper(&mt('Send message'), @@ -3877,8 +3969,8 @@ sub parm_change_log { } } if ($typeflag) { - $istype{$parmname}=$value; - if (!$env{'form.includetypes'}) { next; } + $istype{$parmname}=$value; + if (!$env{'form.includetypes'}) { next; } } $count++; if ($makenewrow) { @@ -3916,12 +4008,12 @@ sub parm_change_log { my $description=&mt('Changed [_1] for [_2] to [_3]',&standard_parameter_names($parmname),$realmdescription, (&isdateparm($istype{$parmname})?&Apache::lonlocal::locallocaltime($value):$value)); if (($uname) && ($udom)) { - $output .= + $output .= &Apache::loncommon::messagewrapper('Notify User', $uname,$udom,$title, $description); } else { - $output .= + $output .= &Apache::lonrss::course_blog_link($id,$title, $description); } @@ -3932,7 +4024,7 @@ sub parm_change_log { my $wholeentry=$about_me_link.':'. $parmlog{$id}{'exe_uname'}.':'.$parmlog{$id}{'exe_udom'}.':'. $output; - if ($wholeentry!~/\Q$env{'form.containingphrase'}\E/i) { next; } + if ($wholeentry!~/\Q$env{'form.containingphrase'}\E/i) { next; } } if ($count) { $r->print($row_start.''.$time.' @@ -3942,7 +4034,7 @@ sub parm_change_log { $send_msg_link.''.$output); $shown++; } - if (!($env{'form.show'} eq &mt('all') + if (!($env{'form.show'} eq &mt('all') || $shown<=$env{'form.show'})) { last; } } $r->print(&Apache::loncommon::end_data_table()); @@ -4043,16 +4135,16 @@ sub check_for_course_info { return 0; } + sub handler { my $r=shift; &reset_caches(); - if ($r->header_only) { - &Apache::loncommon::content_type($r,'text/html'); - $r->send_http_header; - return OK; - } + &Apache::loncommon::content_type($r,'text/html'); + $r->send_http_header; + return OK if $r->header_only; + &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['action','state', 'pres_marker', @@ -4066,7 +4158,8 @@ sub handler { text=>"Parameter Manager", faq=>10, bug=>'Instructor Interface', - help => 'Parameter_Manager'}); + help => + 'Parameter_Manager,Course_Environment,Parameter_Helper,Parameter_Overview,Table_Mode'}); # ----------------------------------------------------- Needs to be in a course my $parm_permission = @@ -4076,12 +4169,6 @@ sub handler { my $exists = &check_for_course_info(); if ($env{'request.course.id'} && $parm_permission && $exists) { - - # Start Page - &Apache::loncommon::content_type($r,'text/html'); - $r->send_http_header; - - # # Main switch on form.action and form.state, as appropriate # @@ -4089,62 +4176,34 @@ sub handler { # the table mode if ((($env{'form.command'} eq 'set') && ($env{'form.url'}) && (!$env{'form.dis'})) || ($env{'form.symb'})) { - &Apache::lonhtmlcommon::add_breadcrumb({help=>'Problem_Parameters', - text=>"Problem Parameters"}); &assessparms($r); - } elsif (! exists($env{'form.action'})) { - $r->print(&header()); - $r->print(&Apache::lonhtmlcommon::breadcrumbs('Parameter Manager')); &print_main_menu($r,$parm_permission); - } elsif ($env{'form.action'} eq 'setoverview' && $parm_permission) { - &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setoverview', - text=>"Overview Mode"}); + } elsif ($env{'form.action'} eq 'setoverview') { &overview($r); - } elsif ($env{'form.action'} eq 'addmetadata' && $parm_permission) { - &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=addmetadata', - text=>"Add Metadata Field"}); + } elsif ($env{'form.action'} eq 'addmetadata') { &addmetafield($r); - } elsif ($env{'form.action'} eq 'ordermetadata' && $parm_permission) { - &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=addmetadata', - text=>"Add Metadata Field"}); + } elsif ($env{'form.action'} eq 'ordermetadata') { &order_meta_fields($r); - } elsif ($env{'form.action'} eq 'setrestrictmeta' && $parm_permission) { - &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setrestrictmeta', - text=>"Restrict Metadata"}); + } elsif ($env{'form.action'} eq 'setrestrictmeta') { &setrestrictmeta($r); - } elsif ($env{'form.action'} eq 'newoverview' && $parm_permission) { - &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setoverview', - text=>"Overview Mode"}); + } elsif ($env{'form.action'} eq 'newoverview') { &newoverview($r); - } elsif ($env{'form.action'} eq 'setdefaults' && $parm_permission) { - &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setdefaults', - text=>"Set Defaults"}); + } elsif ($env{'form.action'} eq 'setdefaults') { &defaultsetter($r); - } elsif ($env{'form.action'} eq 'settable' && $parm_permission) { - &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=settable', - text=>"Table Mode", - help => 'Course_Setting_Parameters'}); + } elsif ($env{'form.action'} eq 'settable') { &assessparms($r); - } elsif ($env{'form.action'} eq 'parameterchangelog' && $parm_permission) { - &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=settable', - text=>"Parameter Change Log"}); + } elsif ($env{'form.action'} eq 'parameterchangelog') { &parm_change_log($r); - } elsif ($env{'form.action'} eq 'cleanparameters' && $parm_permission) { - &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=cleanparameters', - text=>"Clean Parameters"}); + } elsif ($env{'form.action'} eq 'cleanparameters') { &clean_parameters($r); - } elsif ($env{'form.action'} eq 'dateshift1' && $parm_permission) { - &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=dateshift1&timebase='.$env{'form.timebase'}, - text=>"Shifting Dates"}); + } elsif ($env{'form.action'} eq 'dateshift1') { &date_shift_one($r); - } elsif ($env{'form.action'} eq 'dateshift2' && $parm_permission) { - &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=dateshift1&timebase='.$env{'form.timebase'}, - text=>"Shifting Dates"}); + } elsif ($env{'form.action'} eq 'dateshift2') { &date_shift_two($r); - } elsif ($env{'form.action'} eq 'categorizecourse' && $parm_permission) { + } elsif ($env{'form.action'} eq 'categorizecourse') { &assign_course_categories($r); - } + } } else { # ----------------------------- Not in a course, or not allowed to modify parms if ($exists) { @@ -4164,3 +4223,4 @@ sub handler { 1; __END__ +