--- loncom/interface/lonparmset.pm 2009/01/20 16:38:39 1.421 +++ loncom/interface/lonparmset.pm 2009/05/08 22:47:01 1.445 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.421 2009/01/20 16:38:39 bisitz Exp $ +# $Id: lonparmset.pm,v 1.445 2009/05/08 22:47:01 neumanie Exp $ # # Copyright Michigan State University Board of Trustees # @@ -848,12 +848,13 @@ sub plink { my ($hour,$min,$sec,$val)=&preset_defaults($parmname); unless (defined($winvalue)) { $winvalue=$val; } my $valout = &valout($value,$type,1); + my $unencmarker = $marker; foreach my $item (\$type, \$dis, \$winvalue, \$marker, \$return, \$call, \$hour, \$min, \$sec) { $$item = &HTML::Entities::encode($$item,'"<>&'); $$item =~ s/\'/\\\'/g; } - return '
'.
+ return '
| ' .$$part{$which}.' | '); - } else { + } else { $parm=~s|\[.*\]\s||g; } my $automatic=&rulescache(($which=~/\_([^\_]+)$/)[0].'_triggers'); if ($automatic) { $parm.=''.$parm.' | '); + $r->print(''.$parm.' | '); my $thismarker=$which; $thismarker=~s/^parameter\_//; @@ -1075,12 +1076,20 @@ sub print_td { my ($r,$which,$defbg,$result,$outpar,$mprefix,$value,$typeoutpar,$display)=@_; $r->print(''); - if ($which<11 || $which > 12) { - $r->print(&plink($$typeoutpar[$which], - $$display{$value},$$outpar[$which], - $mprefix."$which",'parmform.pres','psub')); + my $nolink = 0; + if ($which == 11 || $which == 12) { + $nolink = 1; + } elsif ($mprefix =~ /availablestudent\&$/) { + if ($which > 3) { + $nolink = 1; + } + } + if ($nolink) { + $r->print(&valout($$outpar[$which],$$typeoutpar[$which])); } else { - $r->print(&valout($$outpar[$which],$$typeoutpar[$which])); + $r->print(&plink($$typeoutpar[$which], + $$display{$value},$$outpar[$which], + $mprefix."$which",'parmform.pres','psub')); } $r->print(' | '."\n"); } @@ -1181,9 +1190,15 @@ sub extractResourceInformation { # my $name=&Apache::lonnet::metadata($srcf,$key.'.name'); if (!exists($$allparms{$name}) || $$allparms{$name} =~ m/^\s*$/ ) { - my $display= &Apache::lonnet::metadata($srcf,$key.'.display'); - my $parmdis = $display; - $parmdis =~ s/\s*\[Part.*$//g; + 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}= @@ -1306,18 +1321,19 @@ sub parmmenu { ENDSCRIPT - $r->print(); - $r->print("\n
'); + $r->print(' />'.($$allparms{$tempkey}=~/\S/ ? $$allparms{$tempkey} + : $tempkey) + .''); $cnt++; if ($cnt==3) { $r->print(" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
'
.'';
+ $r->print(&Apache::lonhtmlcommon::row_title(&mt('Group/Section')));
+ $r->print($sections.$groups);
}
-
- $r->print(''
- .$g_s_header
- .$sections
- .$groups
- .$g_s_footer
- .''
- .''
- );
+ ,$chooseopt));
}
sub displaymenu {
my ($r,$allparms,$allparts,$pscat,$psprt,$keyorder)=@_;
- $r->print('
'); @@ -1790,6 +1805,39 @@ sub assessparms { my @values=split(/\&\&\&/,$env{'form.pres_value'}); my @types=split(/\&\&\&/,$env{'form.pres_type'}); for (my $i=0;$i<=$#markers;$i++) { + if ($markers[$i] =~ /^[\d.]+\&0_availablestudent\&(1|2|3)$/) { + my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; + my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; + my (@ok_slots,@fail_slots,@del_slots); + my $courseopt=&Apache::lonnet::get_courseresdata($cnum,$cdom); + my ($level,@all) = + &parmval_by_symb('0.availablestudent',$pssymb,'',$uname,$udom, + $csec,$cgroup,$courseopt); + foreach my $slot_name (split(/:/,$values[$i])) { + next if ($slot_name eq ''); + if (&update_slots($slot_name,$cdom,$cnum,$pssymb,$uname,$udom) eq 'ok') { + push(@ok_slots,$slot_name); + + } else { + push(@fail_slots,$slot_name); + } + } + if (@ok_slots) { + $values[$i] = join(':',@ok_slots); + } else { + $values[$i] = ''; + } + if ($all[$level] ne '') { + my @existing = split(/:/,$all[$level]); + foreach my $slot_name (@existing) { + if (!grep(/^\Q$slot_name\E$/,split(/:/,$values[$i]))) { + if (&delete_slots($slot_name,$cdom,$cnum,$uname,$udom,$pssymb) eq 'ok') { + push(@del_slots,$slot_name); + } + } + } + } + } $message.=&storeparm(split(/\&/,$markers[$i]), $values[$i], $types[$i], @@ -1814,14 +1862,21 @@ sub assessparms { } if (!$pssymb) { - $r->print('
'); } - &usermenu($r,$uname,$id,$udom,$csec,$cgroup,$parmlev,\@usersgroups); + $r->print(' ');
+ $r->print(' ');
$r->print('Step 3'); + $r->print('' );
+ $r->print(&Apache::lonhtmlcommon::start_pick_box());
+ &usermenu($r,$uname,$id,$udom,$csec,$cgroup,$parmlev,\@usersgroups);
+
+ $r->print(&Apache::lonhtmlcommon::end_pick_box());
+ $r->print(' '.$message.' '); @@ -1968,7 +2030,16 @@ ENDTABLEHEADFOUR if (grep $_ eq $tempkeyp, @catmarker) { $part{$_}=&Apache::lonnet::metadata($uri,$_.'.part'); $name{$_}=&Apache::lonnet::metadata($uri,$_.'.name'); - $display{$_}=&Apache::lonnet::metadata($uri,$_.'.display'); + my $parmdis=&Apache::lonnet::metadata($uri,$_.'.display'); + if ($allparms{$name{$_}} ne '') { + my $identifier; + if ($parmdis =~ /(\s*\[Part.*)$/) { + $identifier = $1; + } + $display{$_} = $allparms{$name{$_}}.$identifier; + } else { + $display{$_} = $parmdis; + } unless ($display{$_}) { $display{$_}=''; } $display{$_}.=' ('.$name{$_}.')'; $default{$_}=&Apache::lonnet::metadata($uri,$_); @@ -2075,7 +2146,16 @@ ENDTABLEHEADFOUR if ((grep $_ eq $fullkeyp, @catmarker) &&(!$name{$tempkeyp})) { $part{$tempkeyp}="0"; $name{$tempkeyp}=&Apache::lonnet::metadata($uri,$fullkeyp.'.name'); - $display{$tempkeyp}=&Apache::lonnet::metadata($uri,$fullkeyp.'.display'); + my $parmdis=&Apache::lonnet::metadata($uri,$fullkeyp.'.display'); + if ($allparms{$name{$tempkeyp}} ne '') { + my $identifier; + if ($parmdis =~ /(\s*\[Part.*)$/) { + $identifier = $1; + } + $display{$tempkeyp} = $allparms{$name{$tempkeyp}}.$identifier; + } else { + $display{$tempkeyp} = $parmdis; + } unless ($display{$tempkeyp}) { $display{$tempkeyp}=''; } $display{$tempkeyp}.=' ('.$name{$tempkeyp}.')'; $display{$tempkeyp} =~ s/_\w+_/_0_/; @@ -2112,7 +2192,7 @@ ENDTABLEHEADFOUR ,''.$coursename.'' ) ."\n" - ); + ); #---------------------------------------------------------------- print table $r->print(' '.&Apache::loncommon::start_data_table() .&Apache::loncommon::start_data_table_header_row() @@ -2128,7 +2208,9 @@ ENDTABLEHEADFOUR \%type,\%display,$defbgone,$defbgtwo,$defbgthree, $parmlev,$uname,$udom,$csec,$cgroup); } - $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) @@ -2166,7 +2248,16 @@ ENDTABLEHEADFOUR if ((grep $_ eq $fullkeyp, @catmarker) &&(!$name{$tempkeyp})) { $part{$tempkeyp}="0"; $name{$tempkeyp}=&Apache::lonnet::metadata($uri,$fullkeyp.'.name'); - $display{$tempkeyp}=&Apache::lonnet::metadata($uri,$fullkeyp.'.display'); + my $parmdis=&Apache::lonnet::metadata($uri,$fullkeyp.'.display'); + if ($allparms{$name{$tempkeyp}} ne '') { + my $identifier; + if ($parmdis =~ /(\s*\[Part.*)$/) { + $identifier = $1; + } + $display{$tempkeyp} = $allparms{$name{$tempkeyp}}.$identifier; + } else { + $display{$tempkeyp} = $parmdis; + } unless ($display{$tempkeyp}) { $display{$tempkeyp}=''; } $display{$tempkeyp}.=' ('.$name{$tempkeyp}.')'; $display{$tempkeyp} =~ s/_\w+_/_0_/; @@ -2231,6 +2322,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 @@ -2241,6 +2333,23 @@ sub crsenv { if ($name eq 'newp') { $name = $env{'form.newp_name'}; } + if ($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\///; my $bkuptime=time; @@ -2291,12 +2400,12 @@ sub crsenv { my ($name,$domain) = split(':',$user); if (!defined($user) || !defined($domain)) { $setoutput.= ' '. - &mt("Invalid email address specified, address must be of the form username:domain what was specified was ([_1])",$user). + &mt("Invalid e-mail address specified, address must be of the form username:domain what was specified was ([_1])",$user). ''; undef($value); } elsif (&Apache::lonnet::homeserver($user,$domain) eq 'no_host') { $setoutput.= ' '. - &mt("Invalid email address specified, user [_1] is unknown.",$name). + &mt("Invalid e-mail address specified, user [_1] is unknown.",$name). ''; undef($value); } @@ -2402,9 +2511,6 @@ sub crsenv { } } - my $start_table =&Apache::loncommon::start_data_table(); - my $start_header_row=&Apache::loncommon::start_data_table_header_row(); - my $end_header_row =&Apache::loncommon::end_data_table_header_row(); # ------------------------- Re-init course environment entries for this session &Apache::lonnet::coursedescription($env{'request.course.id'}, @@ -2416,7 +2522,14 @@ sub crsenv { my $SelectStyleFile=&mt('Select Style File'); my $SelectSpreadsheetFile=&mt('Select Spreadsheet File'); my $output=''; + my $output_SB = ''; # will be replaced by "$output" when all changes are done my $can_categorize; + my %lt=&Apache::lonlocal::texthash( + 'par' => 'Parameter', + 'val' => 'Value', + 'set' => 'Set?', + 'sav' => 'Save', + ); if (! exists($values{'con_lost'})) { my %descriptions= ('url' => ''.&mt('Top Level Map').' '. @@ -2425,7 +2538,7 @@ sub crsenv { &mt('Select Map').' '. &mt('Modification may make assessment data inaccessible!'). '', - 'description' => ''.&mt('Course Description').'', + 'description' => ''.&mt('Course Title').'', 'courseid' => ''.&mt('Course ID or number'). ' '. '('.&mt('internal, optional').')', @@ -2463,12 +2576,12 @@ sub crsenv { .'('.&mt("[_1] for link to each a listing of each student's files.",'"yes"').')', 'student_classlist_opt_in' => ''.&mt("Student's agreement needed for listing in student-viewable roster").' ' .'('.&mt('[_1] to require students to opt-in to listing in the roster (on the roster page).','"yes"').')', - 'plc.roles.denied'=> ''.&mt('Disallow live chatroom use for Roles').' ' + 'plc.roles.denied'=> ''.&mt('Disallow chat room use for Roles').' ' .'('.&mt('[_1]: student, [_2]: TA, [_3]: instructor','"st"','"ta"','"in"').') ' .'("'.&mt('role,role,...').'") ' .Apache::loncommon::help_open_topic("Course_Disable_Discussion"), 'plc.users.denied' => - ''.&mt('Disallow live chatroom use for Users').' '. + ''.&mt('Disallow chat room use for Users').' '. '("'.&mt('user:domain,user:domain,...').'")', 'pch.roles.denied'=> ''.&mt('Disallow Resource Discussion for Roles').' ' @@ -2543,7 +2656,7 @@ sub crsenv { 'externalsyllabus' => ''.&mt('URL of Syllabus (not using internal handler)').'', 'tthoptions' - => ''.&mt('Default set of options to pass to tth/m when converting tex').'', + => ''.&mt('Default set of options to pass to tth/m when converting TeX').'', 'texengine' => ''.&mt('Force all students in the course to use a specific math rendering engine.').' ' @@ -2562,69 +2675,32 @@ 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); - if ($can_toggle_cat) { - push(@Display_Order,'hidefromcat'); - } - if ($can_categorize) { - push(@Display_Order,'categories'); - } - push (@Display_Order,('grading', - 'externalsyllabus', - 'default_xml_style','pageseparators', - 'question.email','question.email.text','comment.email', - 'comment.email.text','policy.email','policy.email.text', - 'student_classlist_view', - 'student_classlist_opt_in', - 'student_classlist_portfiles', - 'plc.roles.denied','plc.users.denied', - 'pch.roles.denied','pch.users.denied', - 'allow_limited_html_in_feedback', - 'allow_discussion_post_editing', - 'languages', - 'timezone', - 'datelocale', - 'nothideprivileged', - 'rndseed', - 'receiptalg', - 'problem_stream_switch', - 'suppress_tries', - 'suppress_embed_prompt', - 'default_paper_size', - 'print_header_format', - 'disable_receipt_display', - 'spreadsheet_default_classcalc', - 'spreadsheet_default_studentcalc', - 'spreadsheet_default_assesscalc', - 'hideemptyrows', - 'default_enrollment_start_date', - 'default_enrollment_end_date', - 'tthoptions', - 'texengine', - 'disablesigfigs', - 'disableexampointprint', - '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')) { - if (! $descriptions{$parameter}) { - $descriptions{$parameter}=$parameter; - push(@Display_Order,$parameter); - } - } - } - - foreach my $parameter (@Display_Order) { - my $description = $descriptions{$parameter}; - # onchange is javascript to automatically check the 'Set' button. - my $onchange = 'onFocus="javascript:window.document.forms'. - "['envform'].elements['".$parameter."_setparmval']". - '.checked=true;"'; - $output .= &Apache::loncommon::start_data_table_row(). - ' | '.$description.' | '; + + +# ---------------------------------------------------------------- +# Begin: New Version with Parameter Categories + + sub parameter_row { + # Create parameter row for course environment screen + + my ($parameter, $description) = @_; + + # Start Parameter Row + my $output = &Apache::loncommon::start_data_table_row(); + + # Column 1/3: Descriptive text of current parameter + $output .= ''.$description.' | '; + + # Column 2/3: Input field (Sometimes special field(s), depending on parameter) + + # onchange is javascript to automatically check the 'Set' button. + my $onchange = 'onFocus="javascript:window.document.forms' + ."['envform'].elements['".$parameter."_setparmval']" + .'.checked=true;"'; if ($parameter =~ /^default_enrollment_(start|end)_date$/) { $output .= ''. &Apache::lonhtmlcommon::date_setter('envform', @@ -2649,7 +2725,27 @@ sub crsenv { $output .= ' | '. &Apache::loncommon::select_datelocale($parameter.'_value', $currdatelocale, - $onchange,$includeempty).' | '; + $onchange,$includeempty).''; + } elsif ($parameter eq 'rolenames') { + $output.= '
|
| ';
} elsif ($parameter eq 'categories') {
my $catdisplay;
if ($values{'categories'} ne '') {
@@ -2665,39 +2761,229 @@ sub crsenv {
$values{'categories'}.'" />'.
'';
- } else {
- $output .= ''. - &Apache::lonhtmlcommon::textbox($parameter.'_value', - $values{$parameter}, - 40,$onchange).' | '; - } - $output .= ''. - &Apache::lonhtmlcommon::checkbox($parameter.'_setparmval'). - ' | '; - $output .= &Apache::loncommon::end_data_table_row()."\n"; - } - my $onchange = 'onFocus="javascript:window.document.forms'. - '[\'envform\'].elements[\'newp_setparmval\']'. - '.checked=true;"'; - $output.=&Apache::loncommon::start_data_table_row(). - ''.&mt('Create New Environment Variable').' '. - ' | '. - ' | '. - ' | '. - &Apache::loncommon::end_data_table_row()."\n"; + } else { # Display default textbox in all other cases + $output .= '' + .&Apache::lonhtmlcommon::textbox($parameter.'_value', + $values{$parameter}, + 40, + $onchange) + .' | '; + } + + # Column 3/3: Check Box (in most cases) + unless ($parameter eq 'rolenames') { + $output .= '' + .&Apache::lonhtmlcommon::checkbox($parameter.'_setparmval') + .' | '; + } + + # End Parameter Row + $output .= &Apache::loncommon::end_data_table_row(); + + return $output; + } # End sub parameter_row + + + # Parameter Category Names + my %parm_cat_names = &Apache::lonlocal::texthash ( + 'cat_0' => 'Parameter Category Zero', + 'cat_1' => 'Parameter Category One', + 'cat_2' => 'Parameter Category Two', + 'cat_3' => 'Parameter Category Three', + 'cat_4' => 'Parameter Category Four', + 'cat_5' => 'Parameter Category Five', + 'cat_6' => 'Parameter Category Six', + 'cat_7' => 'Parameter Category Seven', + 'cat_can' => 'Parameter Category Can', + 'cat_custom' => 'Parameter Category Custom', + ); + + # Display Order of Parameter Categories + my @Display_Order = ( + 'cat_0', + 'cat_1', + 'cat_2', + 'cat_3', + 'cat_4', + 'cat_5', + 'cat_6', + 'cat_7', + 'cat_can', + 'cat_custom', + ); + + # Link Parameter Categories with Parameters + # Order of parameters is display order + my %parm_cat_parms = ( + 'cat_0' => [ + 'url', + 'description', + 'courseid', + 'cloners' + ], + 'cat_1' => [ + 'grading', + 'externalsyllabus', + 'default_xml_style', + 'pageseparators' + ], + 'cat_2' => [ + 'question.email', + 'question.email.text', + 'comment.email', + 'comment.email.text', + 'policy.email', + 'policy.email.text', + ], + 'cat_3' => [ + 'student_classlist_view', + 'student_classlist_opt_in', + 'student_classlist_portfiles', + 'plc.roles.denied', + 'plc.users.denied', + 'pch.roles.denied', + 'pch.users.denied', + 'allow_limited_html_in_feedback', + 'allow_discussion_post_editing', + ], + 'cat_4' => [ + 'languages', + 'timezone', + 'datelocale', + 'rolenames', + 'nothideprivileged', + 'rndseed', + 'receiptalg', + 'problem_stream_switch', + 'suppress_tries', + 'suppress_embed_prompt', + 'default_paper_size', + 'print_header_format', + 'disable_receipt_display', + ], + 'cat_5' => [ + 'spreadsheet_default_classcalc', + 'spreadsheet_default_studentcalc', + 'spreadsheet_default_assesscalc', + 'hideemptyrows', + ], + 'cat_6' => [ + 'default_enrollment_start_date', + 'default_enrollment_end_date', + ], + 'cat_7' => [ + 'tthoptions', + 'texengine', + 'disablesigfigs', + 'disableexampointprint', + 'task_messages', + 'task_grading', + ], + ); + + # Add special parameters depending on special context to parameter categories hash + my @can_cats; + (my $can_toggle_cat,$can_categorize) = &can_modify_catsettings($dom); + if ($can_toggle_cat) { + push(@can_cats,'hidefromcat'); } - my %lt=&Apache::lonlocal::texthash( - 'par' => 'Parameter', - 'val' => 'Value', - 'set' => 'Set?', - 'sav' => 'Save' - ); - - my $Parameter=&mt('Parameter'); - my $Value=&mt('Value'); - my $Set=&mt('Set'); + if ($can_categorize) { + push(@can_cats,'categories'); + } + $parm_cat_parms{'cat_can'} = [@can_cats]; + + # Add custom parameters to custom parameter category + my @custom_cats; + foreach my $parameter (sort(keys(%values))) { + unless (($parameter =~ m/^internal\./)||($parameter =~ m/^metadata\./) || + ($parameter =~ m/^selfenroll_/) || ($parameter =~ /_selfenroll$/) + || ($parameter eq 'type') || + ($parameter =~ m/^(cc|in|ta|ep|ad|st)\.plaintext$/)) { + if (! $descriptions{$parameter}) { + $descriptions{$parameter}=$parameter; + push(@custom_cats,$parameter); + } + } + } + $parm_cat_parms{'cat_custom'} = [@custom_cats]; + + +# Display Course Parameter Overview +# Provide hyperlinks to detailed parameter settings +$output_SB .= '' + .''
+ .''
+ .''.$parm_cat_names{$catkey}.'' + .' | '
+ .&Apache::loncommon::end_data_table_empty_row
+ .&Apache::loncommon::start_data_table_header_row()
+ .''.$lt{'par'}.' | '.$lt{'val'}.' | '.$lt{'set'}.' | ' + .&Apache::loncommon::end_data_table_header_row(); + + foreach my $parameter (@{$parm_cat_parms{$catkey}}) { + my $description = $descriptions{$parameter}; + $output_SB .= ¶meter_row($parameter, $description); + } + # Add special row to custom category + # Offer possibilty to create a new environment variable + if ($catkey eq 'cat_custom') { + my $onchange = 'onFocus="javascript:window.document.forms' + .'[\'envform\'].elements[\'newp_setparmval\']' + .'.checked=true;"'; + $output_SB .= &Apache::loncommon::start_data_table_row() + .''
+ .''.&mt('Create New Environment Variable').' ' + .'' + .' | ' + .'' + .' | ' + .' | ' + .&Apache::loncommon::end_data_table_row(); + } + # Add buttons row at end of each category + $output_SB .= &Apache::loncommon::start_data_table_empty_row() + .'' + .$buttons + .' | ' + .&Apache::loncommon::end_data_table_empty_row; + + $output_SB .= &Apache::loncommon::end_data_table() + . '$lt{'par'} | $lt{'val'} | $lt{'set'} | -$end_header_row -$output -$end_table - +$output_SB $end_page ENDENV @@ -3103,7 +3381,7 @@ sub listdata { } if ($part ne $oldpart) { $r->print(&tableend(). - "\n".&mt('Part').": $part"); + "\n".''.&mt('Part').": $part"); $oldpart=$part; } # @@ -3138,7 +3416,7 @@ sub listdata { $r->print(&default_selector($thiskey,$$resourcedata{$thiskey})); } $r->print(''); + $thistype.'" />'); $r->print(''.&Apache::loncommon::end_data_table_row()); } } @@ -3325,21 +3603,32 @@ ENDOVER } # Menu to select levels, etc - $r->print('
---|
');
+ #$r->print('
');
+ $r->print(' ');
+
$r->print('');
-
+
# Build the list data hash from the specified parms
my $listdata;
@@ -3450,7 +3744,7 @@ ENDOVER
my $foundkeys=&listdata($r,$resourcedata,$resourcedata,$sortorder);
$r->print(&tableend().'' );
my $sortorder=$env{'form.sortorder'};
unless ($sortorder) { $sortorder='realmstudent'; }
&sortmenu($r,$sortorder);
-
+ $r->print(' '. - ($foundkeys?'':&mt('There are no parameters.')).' '. + ($foundkeys?'':&mt('There are no parameters.')).''. &Apache::loncommon::end_page()); } @@ -3882,20 +4176,20 @@ sub output_row { my $multiple_checked; my $single_checked; if ($options =~ m/onlyone/) { - $multiple_checked = ""; - $single_checked = " CHECKED "; + $multiple_checked = ''; + $single_checked = ' checked="checked"'; } else { - $multiple_checked = " CHECKED "; - $single_checked = ""; + $multiple_checked = ' checked="checked"'; + $single_checked = ''; } $output .= &Apache::loncommon::continue_data_table_row(); $output .= ' | '.(' ' x 10).' | '; $output .= &Apache::loncommon::end_data_table_row(); $output .= &Apache::loncommon::continue_data_table_row(); $output .= ''.(' ' x 10).' | '; $output .= &Apache::loncommon::end_data_table_row(); } @@ -4310,12 +4604,12 @@ ENDINPUTDATE } elsif ($defkeytype{$tempkey} eq 'string_yesno') { my $yeschecked=''; my $nochecked=''; - if (&rulescache($tempkey.'_value') eq 'yes') { $yeschecked='checked="checked"'; } - if (&rulescache($tempkey.'_value') eq 'no') { $nochecked='checked="checked"'; } + if (&rulescache($tempkey.'_value') eq 'yes') { $yeschecked=' checked="checked"'; } + if (&rulescache($tempkey.'_value') eq 'no') { $nochecked=' checked="checked"'; } $r->print(<