--- loncom/interface/lonparmset.pm 2009/03/19 17:05:52 1.413.2.2 +++ loncom/interface/lonparmset.pm 2009/09/15 03:01:17 1.413.6.2 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.413.2.2 2009/03/19 17:05:52 raeburn Exp $ +# $Id: lonparmset.pm,v 1.413.6.2 2009/09/15 03:01:17 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1007,7 +1007,7 @@ sub extractResourceInformation { $parmdis = $display; $parmdis =~ s/\s*\[Part.*$//g; } else { - $parmdis = $display; + $parmdis = &mt($display); } $$allparms{$name}=$parmdis; if (ref($defkeytype)) { @@ -2120,6 +2120,7 @@ sub crsenv { my $crs = $env{'course.'.$env{'request.course.id'}.'.num'}; my (%crsinfo,$chome); + my $crstype = &Apache::loncommon::course_type(); # # Go through list of changes @@ -2129,6 +2130,22 @@ sub crsenv { my $value = $env{'form.'.$name.'_value'}; if ($name eq 'newp') { $name = $env{'form.newp_name'}; + } elsif ($name =~ /^rolenames_([^_]+)$/) { + $name = $1.'.plaintext'; + my $standardtitle = + &Apache::lonnet::plaintext($1,$crstype,$env{'request.course.id'},1); + my %adv_roles = + &Apache::lonnet::get_course_adv_roles($env{'request.course.id'},1); + if ($value ne '') { + foreach my $role (keys(%adv_roles)) { + if ($role =~ m{^cr/$match_domain/$match_name/\Q$value\E$}) { + $setoutput.= ''. + &mt('Requested replacement title for [_1] role is already used as the name of a custom role ([_2]).',$standardtitle,$value). + '
'; + undef($value); + } + } + } } if ($name eq 'url') { $value=~s/^\/res\///; @@ -2451,6 +2468,9 @@ sub crsenv { &mt('Display Categories').'', 'datelocale' => ''.&mt('Locale used for course calendar').'', + 'rolenames' + => ''.&mt('Replacement titles for standard course roles').'
'. + '('.&mt('To replace the standard title for a course role, enter the title you wish to use, otherwise leave blank.').')', ); my @Display_Order = ('url','description','courseid','cloners'); (my $can_toggle_cat,$can_categorize) = &can_modify_catsettings($dom); @@ -2475,6 +2495,7 @@ sub crsenv { 'languages', 'timezone', 'datelocale', + 'rolenames', 'nothideprivileged', 'rndseed', 'receiptalg', @@ -2497,8 +2518,9 @@ sub crsenv { 'task_messages','task_grading')); foreach my $parameter (sort(keys(%values))) { unless (($parameter =~ m/^internal\./)||($parameter =~ m/^metadata\./) || - ($parameter =~ m/^selfenroll_/) || ($parameter =~ /_selfenroll$/) - || ($parameter eq 'type')) { + ($parameter =~ m/^selfenroll_/) || ($parameter =~ /_selfenroll$/) || + ($parameter eq 'type') || + ($parameter =~ m/^(cc|in|ta|ep|ad|st)\.plaintext$/)) { if (! $descriptions{$parameter}) { $descriptions{$parameter}=$parameter; push(@Display_Order,$parameter); @@ -2538,7 +2560,28 @@ sub crsenv { $output .= ''. &Apache::loncommon::select_datelocale($parameter.'_value', $currdatelocale, - $onchange,$includeempty).''; + $onchange,$includeempty).''; + } elsif ($parameter eq 'rolenames') { + $output.= ''; + foreach my $role ('cc','in','ta','ep','ad','st') { + my $onchange = 'onFocus="javascript:window.document.forms'. + "['envform'].elements['". + $parameter.'_'.$role."_setparmval']". + '.checked=true;"'; + + $output.= ''; + } + $output .= '
'.&Apache::lonnet::plaintext($role,$crstype,undef,1). + ''. + &Apache::lonhtmlcommon::textbox($parameter.'_'.$role.'_value', + $values{$role.'.plaintext'}, + 15,$onchange). + '
'; + foreach my $role ('cc','in','ta','ep','ad','st') { + $output .= ''; + } + $output .= '
'.&Apache::lonhtmlcommon::checkbox($parameter.'_'.$role.'_setparmval'). + '
'; } elsif ($parameter eq 'categories') { my $catdisplay; if ($values{'categories'} ne '') { @@ -2560,9 +2603,11 @@ sub crsenv { $values{$parameter}, 40,$onchange).''; } - $output .= ''. - &Apache::lonhtmlcommon::checkbox($parameter.'_setparmval'). - ''; + unless ($parameter eq 'rolenames') { + $output .= ''. + &Apache::lonhtmlcommon::checkbox($parameter.'_setparmval'). + ''; + } $output .= &Apache::loncommon::end_data_table_row()."\n"; } my $onchange = 'onFocus="javascript:window.document.forms'. @@ -2998,9 +3043,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++; @@ -3387,9 +3433,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')); @@ -4280,7 +4327,6 @@ 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); } sub standard_parameter_names { @@ -4394,15 +4440,18 @@ sub parm_change_log { } else { $makenewrow=1; } + my $parmitem = &standard_parameter_names($parmname); $output .=''.$realm.''.$section.''. - &standard_parameter_names($parmname).''. + &mt($parmitem).''. ($part?&mt('Part: [_1]',$part):&mt('All Parts')).''; 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); @@ -4420,8 +4469,11 @@ 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 .=