--- loncom/interface/lonparmset.pm 2009/07/14 13:53:03 1.467 +++ loncom/interface/lonparmset.pm 2009/07/31 16:09:03 1.468 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.467 2009/07/14 13:53:03 amueller Exp $ +# $Id: lonparmset.pm,v 1.468 2009/07/31 16:09:03 amueller Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1244,6 +1244,10 @@ sub isdateparm { return (($type=~/^date/) && (!($type eq 'date_interval'))); } +# +# This function prints a list of parameters, which were selected. It also display a link from which you can +# hide or show the complete parameter list, from which you can choose your parameters. +# sub parmmenu { my ($r,$allparms,$pscat,$keyorder)=@_; my $tempkey; @@ -1330,7 +1334,6 @@ sub parmmenu { function checkboxChecked(id) { var li = "_li"; var id_li = id.concat(li); - if (document.getElementById(id_li).style.display == "none") { document.getElementById(id_li).style.display = ""; } @@ -1532,6 +1535,9 @@ sub parmboxes { #&shortCuts($r,$allparms,$pscat,$keyorder); $r->print(''); } +# +# This function offers some links on the parameter section to get with one click a group a parameters +# sub shortCuts { my ($r,$allparms,$pscat,$keyorder)=@_; @@ -1696,6 +1702,9 @@ function group_or_section(caller) { ,$chooseopt)); } +# +# This function shows on table Mode the available Parameters for the selected Resources +# sub displaymenu { my ($r,$allparms,$allparts,$pscat,$psprt,$keyorder)=@_; $r->print(&Apache::lonhtmlcommon::topic_bar (2,&mt('Select Parameters'))); @@ -1711,7 +1720,8 @@ sub displaymenu { } sub mapmenu { - my ($r,$allmaps,$pschp,$maptitles)=@_; + my ($r,$allmaps,$pschp,$maptitles, $symbp)=@_; + my %allmaps_inverted = reverse %$allmaps; my $navmap = Apache::lonnavmaps::navmap->new(); my $tree=[]; my $treeinfo={}; @@ -1719,34 +1729,45 @@ sub mapmenu { my $it=$navmap->getIterator(undef,undef,undef,1,undef,undef); my $curRes; my $depth = 0; - + my %parent = (); + my $startcount = 5; + my $lastcontainer = $startcount; +# preparing what is to show ... while ($curRes = $it->next()) { if ($curRes == $it->BEGIN_MAP()) { $depth++; + $parent{$depth}= $lastcontainer; } if ($curRes == $it->END_MAP()) { $depth--; + $lastcontainer = $parent{$depth}; } if (ref($curRes)) { + my $symb = $curRes->symb(); + my $ressymb = $symb; if (($curRes->is_sequence()) || ($curRes->is_page())) { my $type = 'sequence'; if ($curRes->is_page()) { $type = 'page'; } my $id= $curRes->id(); - my ($mapid,$resid)=split(/\./,$id); - if(!exists($treeinfo->{$mapid})) { - push(@$tree,$mapid); - $treeinfo->{$mapid} = { + my $srcf = $curRes->src(); + my $resource_name = &Apache::lonnet::gettitle($srcf); + if(!exists($treeinfo->{$id})) { + push(@$tree,$id); + my $enclosing_map_folder = &Apache::lonnet::declutter($curRes->enclosing_map_src()); + $treeinfo->{$id} = { depth => $depth, type => $type, + name => $resource_name, + enclosing_map_folder => $enclosing_map_folder, }; } } } } } - +# Show it ... $r->print(&Apache::lonhtmlcommon::row_title(&mt('Select Enclosing Map or Folder'))); if ((ref($tree) eq 'ARRAY') && (ref($treeinfo) eq 'HASH')) { my $icon = ''; @@ -1762,27 +1783,48 @@ sub mapmenu { my $whitespace = ''; - foreach my $mapid (@{$tree}) { + if (exists($$allmaps{1})) { + $r->print(&Apache::loncommon::start_data_table_row() + .'