--- loncom/interface/lonparmset.pm 2009/07/14 13:53:03 1.467
+++ loncom/interface/lonparmset.pm 2009/09/03 16:58:17 1.471
@@ -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.471 2009/09/03 16:58:17 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1185,7 +1185,7 @@ sub extractResourceInformation {
$parmdis = $display;
$parmdis =~ s/\s*\[Part.*$//g;
} else {
- $parmdis = $display;
+ $parmdis = &mt($display);
}
$$allparms{$name}=$parmdis;
if (ref($defkeytype)) {
@@ -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()
+ .'
'.$icon
+ .''
+ .'
'
+ .&Apache::loncommon::end_data_table_row()
+ );
+ }
+ foreach my $id (@{$tree}) {
+ my ($mapid,$resid)=split(/\./,$id);
# Indentation
- my $depth = $treeinfo->{$mapid}->{'depth'};
+ my $depth = $treeinfo->{$id}->{'depth'};
my $indent;
for (my $i = 0; $i < $depth; $i++) {
$indent.= $whitespace;
}
$icon = '';
- if ($treeinfo->{$mapid}->{'type'} eq 'page') {
+ if ($treeinfo->{$id}->{'type'} eq 'page') {
$icon = '';
}
+ my $symb_name = $$symbp{$id};
+ my ($front, $tail) = split (/___${resid}___/, $symb_name);
+ $symb_name = $tail;
$r->print(&Apache::loncommon::start_data_table_row()
.'
'.$indent.$icon
.''
.'
'
@@ -1970,6 +2012,7 @@ sub assessparms {
} else {
$udom=$r->dir_config('lonDefDomain');
}
+
my @pscat=&Apache::loncommon::get_env_multiple('form.pscat');
my $pschp=$env{'form.pschp'};
@@ -2151,7 +2194,7 @@ ENDPARMSELSCRIPT
$r->print('
');
}
- # Display parameter selection boxes
+ # Display Unit 1 "General Parameters"
if (!$pssymb) {
$r->print(&Apache::lonhtmlcommon::topic_bar (1,&mt('General Parameters')));
$r->print(&Apache::lonhtmlcommon::start_pick_box());
@@ -2160,12 +2203,12 @@ ENDPARMSELSCRIPT
if ($parmlev ne 'general') {
$r->print(&Apache::lonhtmlcommon::row_closure());
- &mapmenu($r,\%allmaps,$pschp,\%maptitles);
+ &mapmenu($r,\%allmaps,$pschp,\%maptitles, \%symbp);
}
$r->print(&Apache::lonhtmlcommon::row_closure(1));
$r->print(&Apache::lonhtmlcommon::end_pick_box());
-
+ #Display Unit 2 "Select Parameter"
&displaymenu($r,\%allparms,\%allparts,\@pscat,\@psprt,\%keyorder);
} else {
my ($map,$id,$resource)=&Apache::lonnet::decode_symb($pssymb);
@@ -2895,9 +2938,10 @@ sub listdata {
#
# Ready to print
#
+ my $parmitem = &standard_parameter_names($name);
$r->print(&tablestart().
&Apache::loncommon::start_data_table_row().
- '
'.&standard_parameter_names($name).
+ '
'.&mt($parmitem).
'
');
$foundkeys++;
@@ -3311,9 +3355,10 @@ ENDOVER
$display_value =
&Apache::lonlocal::locallocaltime($display_value);
}
+ my $parmitem = &standard_parameter_names($data{'parameter_name'});
+ $parmitem = &mt($parmitem);
$r->print(&mt('Parameter: "[_1]" with value: "[_2]"',
- &standard_parameter_names($data{'parameter_name'}),
- $resourcedata->{$thiskey}));
+ $parmitem,$resourcedata->{$thiskey}));
$r->print(' ');
if ($data{'scope_type'} eq 'all') {
$r->print(&mt('All users'));
@@ -4175,7 +4220,7 @@ sub components {
}
my %standard_parms;
-
+my %standard_parms_types;
sub load_parameter_names {
open(my $config,"<$Apache::lonnet::perlvar{'lonTabDir'}/packages.tab");
@@ -4186,12 +4231,13 @@ sub load_parameter_names {
my (undef,$name,$type)=split(/\&/,$short,3);
if ($type eq 'display') {
$standard_parms{$name} = $plain;
- }
+ } elsif ($type eq 'type') {
+ $standard_parms_types{$name} = $plain;
+ }
}
close($config);
$standard_parms{'int_pos'} = 'Positive Integer';
$standard_parms{'int_zero_pos'} = 'Positive Integer or Zero';
- %standard_parms=&Apache::lonlocal::texthash(%standard_parms);
}
sub standard_parameter_names {
@@ -4206,7 +4252,16 @@ sub standard_parameter_names {
}
}
-
+sub standard_parameter_types {
+ my ($name)=@_;
+ if (!%standard_parms_types) {
+ &load_parameter_names();
+ }
+ if ($standard_parms_types{$name}) {
+ return $standard_parms_types{$name};
+ }
+ return;
+}
sub parm_change_log {
my ($r)=@_;
@@ -4304,23 +4359,37 @@ sub parm_change_log {
} else {
$makenewrow=1;
}
+ my $parmitem = &standard_parameter_names($parmname);
$output .='
';
my $stillactive=0;
if ($parmlog{$id}{'delflag'}) {
$output .= &mt('Deleted');
} else {
if ($typeflag) {
- $output .= &mt('Type: [_1]',&standard_parameter_names($value));
+ my $parmitem = &standard_parameter_names($value);
+ $parmitem = &mt($parmitem);
+ $output .= &mt('Type: [_1]',$parmitem);
} else {
my ($level,@all)=&parmval_by_symb($what,$middle,&Apache::lonnet::metadata($middle,$what),
$uname,$udom,$issection,$issection,$courseopt);
- if (&isdateparm($istype{$parmname})) {
- $output .= &Apache::lonlocal::locallocaltime($value);
- } else {
- $output .= $value;
- }
+ my $showvalue = $value;
+ if ($istype{$parmname} eq '') {
+ my $type = &standard_parameter_types($parmname);
+ if ($type ne '') {
+ if (&isdateparm($type)) {
+ $showvalue =
+ &Apache::lonlocal::locallocaltime($value);
+ }
+ }
+ } else {
+ if (&isdateparm($istype{$parmname})) {
+ $showvalue =
+ &Apache::lonlocal::locallocaltime($value);
+ }
+ }
+ $output .= $showvalue;
if ($value ne $all[$level]) {
$output .= ' '.&mt('Not active anymore').'';
} else {
@@ -4329,9 +4398,13 @@ sub parm_change_log {
}
}
$output .= '
';
+
if ($stillactive) {
- my $title=&mt('Changed [_1]',&standard_parameter_names($parmname));
- my $description=&mt('Changed [_1] for [_2] to [_3]',&standard_parameter_names($parmname),$realmdescription,
+ my $parmitem = &standard_parameter_names($parmname);
+ $parmitem = &mt($parmitem);
+ my $title=&mt('Changed [_1]',$parmitem);
+ my $description=&mt('Changed [_1] for [_2] to [_3]',
+ $parmitem,$realmdescription,
(&isdateparm($istype{$parmname})?&Apache::lonlocal::locallocaltime($value):$value));
if (($uname) && ($udom)) {
$output .=