--- loncom/interface/courseprefs.pm 2017/03/14 12:29:42 1.49.2.23 +++ loncom/interface/courseprefs.pm 2015/09/13 19:55:34 1.73 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set configuration settings for a course # -# $Id: courseprefs.pm,v 1.49.2.23 2017/03/14 12:29:42 raeburn Exp $ +# $Id: courseprefs.pm,v 1.73 2015/09/13 19:55:34 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -137,7 +137,7 @@ whether Domain coordinators who are curr advanced course user .db file for a course are to be hidden (e.g., in syllabus, or from course user lists). -Inputs: $cdom,$item,$settings,$crstype,$noedit +Inputs: $cdom,$item,$settings,$crstype where $cdom is course domain, item is nothideprivileged, $settings is HASH ref of the current values for nothideprivileged, $crstype is course type (Course or Community). @@ -235,9 +235,9 @@ sub handler { my $cid = $env{'request.course.id'}; my ($cnum,$cdom,$chome) = &get_course($cid); my $crstype = &Apache::loncommon::course_type(); - my ($parm_permission,$allowed) = &get_permission($cid); + my $parm_permission = &Apache::lonnet::allowed('opa',$cid); my $navmap = Apache::lonnavmaps::navmap->new(); - if ($allowed && $navmap) { + if ($parm_permission && $navmap) { &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; } else { @@ -310,7 +310,7 @@ sub handler { idnu => 'Course ID or number', unco => 'Unique code', desc => 'Course Description', - cred => 'Student credits', + cred => 'Student credits', ownr => 'Course Owner', cown => 'Course Co-owners', catg => 'Categorize course', @@ -344,12 +344,12 @@ sub handler { $phase = $env{'form.phase'}; } - if (($phase eq 'categorizecourse') && ($parm_permission->{'categorizecourse'})) { + if ($phase eq 'categorizecourse') { &assign_course_categories($r,$crstype); return OK; } - if (($phase eq 'releaseinfo') && ($parm_permission->{'releaseinfo'})) { + if ($phase eq 'releaseinfo') { my $loncaparev = $env{'course.'.$cid.'.internal.releaserequired'}; if ($loncaparev) { if (&display_loncaparev_constraints($r,$navmap,$loncaparev,$crstype)) { @@ -382,7 +382,7 @@ sub handler { 'co-owners' => $lt{'cown'}, 'description' => $lt{'desc'}, 'courseid' => $lt{'idnu'}, - 'uniquecode' => $lt{'unco'}, + 'uniquecode' => $lt{'unco'}, 'categories' => $lt{'catg'}, 'hidefromcat' => $lt{'excc'}, 'cloners' => $lt{'clon'}, @@ -493,7 +493,7 @@ sub handler { help => 'Course_Prefs_Printouts', ordered => ['problem_stream_switch','suppress_tries', 'default_paper_size','print_header_format', - 'disableexampointprint'], + 'disableexampointprint','canuse_pdfforms'], itemtext => { problem_stream_switch => 'Allow problems to be split over pages', suppress_tries => 'Suppress number of tries in printing', @@ -535,52 +535,23 @@ sub handler { }], }, ); - if (($phase eq 'process') && ($parm_permission->{'process'})) { + if ($phase eq 'process') { my @allitems = &get_allitems(%prefs); &Apache::lonconfigsettings::make_changes($r,$cdom,$phase,$context, \@prefs_order,\%prefs,\%values, - $cnum,undef,\@allitems, - 'coursepref',$parm_permission); - } elsif (($phase eq 'display') && ($parm_permission->{'display'})) { + $cnum,undef,\@allitems,'coursepref'); + } elsif ($phase eq 'display') { my $jscript = &get_jscript($cid,$cdom,$phase,$crstype,\%values); my @allitems = &get_allitems(%prefs); &Apache::lonconfigsettings::display_settings($r,$cdom,$phase,$context, - \@prefs_order,\%prefs,\%values,undef,$jscript,\@allitems,$crstype, - 'coursepref',$parm_permission); + \@prefs_order,\%prefs,\%values,undef,$jscript,\@allitems,$crstype,'coursepref'); } else { &Apache::lonconfigsettings::display_choices($r,$phase,$context, - \@prefs_order,\%prefs, - 'coursepref',$parm_permission); + \@prefs_order,\%prefs,'coursepref'); } return OK; } -sub get_permission { - my ($cid) = @_; - my %permission; - my $allowed = 0; - return (\%permission,$allowed) unless ($cid); - if (&Apache::lonnet::allowed('opa',$cid)) { - %permission= ( - 'pickactions' => 1, - 'categorizecourse' => 1, - 'releaseinfo' => 1, - 'process' => 1, - 'display' => 1, - ); - } elsif (&Apache::lonnet::allowed('vpa',$env{'request.course.id'})) { - %permission = ( - 'pickactions' => 1, - 'releaseinfo' => 1, - 'display' => 1, - ); - } - foreach my $perm (values(%permission)) { - if ($perm) { $allowed=1; last; } - } - return (\%permission,$allowed); -} - sub get_allitems { my (%prefs) = @_; my @allitems; @@ -598,15 +569,9 @@ sub get_allitems { } sub print_config_box { - my ($r,$cdom,$phase,$action,$item,$settings,$allitems,$crstype,$parm_permission) = @_; + my ($r,$cdom,$phase,$action,$item,$settings,$allitems,$crstype) = @_; my $ordered = $item->{'ordered'}; my $itemtext = $item->{'itemtext'}; - my $noedit; - if (ref($parm_permission) eq 'HASH') { - unless ($parm_permission->{'process'}) { - $noedit = 1; - } - } my $rowtotal = 0; my $output = '<table class="LC_nested_outer"> @@ -641,9 +606,9 @@ sub print_config_box { } $rowtotal ++; if ($action eq 'feedback') { - $output .= &print_feedback('top',$cdom,$settings,$ordered,$itemtext,\$rowtotal,$noedit); + $output .= &print_feedback('top',$cdom,$settings,$ordered,$itemtext,\$rowtotal); } elsif ($action eq 'classlists') { - $output .= &print_classlists('top',$cdom,$settings,$itemtext,\$rowtotal,$crstype,$noedit); + $output .= &print_classlists('top',$cdom,$settings,$itemtext,\$rowtotal,$crstype); } $output .= ' </table> @@ -664,7 +629,7 @@ sub print_config_box { $output .= &mt($item->{'header'}->[1]->{'col2'}).'</td> </tr>'; if ($action eq 'classlists') { - $output .= &print_classlists('middle',$cdom,$settings,$itemtext,\$rowtotal,$crstype,$noedit). + $output .= &print_classlists('middle',$cdom,$settings,$itemtext,\$rowtotal,$crstype). ' </table> </td> @@ -703,27 +668,27 @@ sub print_config_box { } $rowtotal ++; if ($action eq 'courseinfo') { - $output .= &print_courseinfo($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype,$noedit); + $output .= &print_courseinfo($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype); } elsif ($action eq 'localization') { - $output .= &print_localization($cdom,$settings,$ordered,$itemtext,\$rowtotal,$noedit); + $output .= &print_localization($cdom,$settings,$ordered,$itemtext,\$rowtotal); } elsif ($action eq 'feedback') { - $output .= &print_feedback('bottom',$cdom,$settings,$ordered,$itemtext,\$rowtotal,$noedit); + $output .= &print_feedback('bottom',$cdom,$settings,$ordered,$itemtext,\$rowtotal); } elsif ($action eq 'discussion') { - $output .= &print_discussion($cdom,$settings,$ordered,$itemtext,\$rowtotal,$noedit); + $output .= &print_discussion($cdom,$settings,$ordered,$itemtext,\$rowtotal); } elsif (($action eq 'classlists') || ($action eq 'viewableroster')) { - $output .= &print_classlists('bottom',$cdom,$settings,$itemtext,\$rowtotal,$crstype,$noedit); + $output .= &print_classlists('bottom',$cdom,$settings,$itemtext,\$rowtotal,$crstype); } elsif ($action eq 'appearance') { - $output .= &print_appearance($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype,$noedit); + $output .= &print_appearance($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype); } elsif ($action eq 'grading') { - $output .= &print_grading($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype,$noedit); + $output .= &print_grading($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype); } elsif ($action eq 'printouts') { - $output .= &print_printouts($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype,$noedit); + $output .= &print_printouts($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype); } elsif ($action eq 'spreadsheet') { - $output .= &print_spreadsheet($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype,$noedit); + $output .= &print_spreadsheet($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype); } elsif ($action eq 'bridgetasks') { - $output .= &print_bridgetasks($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype,$noedit); + $output .= &print_bridgetasks($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype); } elsif ($action eq 'other') { - $output .= &print_other($cdom,$settings,$allitems,\$rowtotal,$crstype,$noedit); + $output .= &print_other($cdom,$settings,$allitems,\$rowtotal,$crstype); } $output .= ' </table> @@ -1116,14 +1081,14 @@ sub process_changes { my ($classorder,$classtitles) = &discussion_vote_classes(); my $fontchange = 0; foreach my $class (@{$classorder}) { - my $ext_entry = $entry.'_'.$class; + my $ext_entry = $entry.'_'.$class; my $size = $env{'form.'.$ext_entry.'_size'}; my $unit = $env{'form.'.$ext_entry.'_unit'}; my $weight = $env{'form.'.$ext_entry.'_weight'}; my $style = $env{'form.'.$ext_entry.'_style'}; my $other = $env{'form.'.$ext_entry.'_other'}; $size =~ s/,//g; - $unit =~ s/,//g; + $unit =~ s/,//g; $weight =~ s/,//g; $style =~ s/,//g; $other =~ s/[^\w;:\s\-\%.]//g; @@ -1131,7 +1096,7 @@ sub process_changes { $newvalues{$ext_entry} = join(',',($size.$unit,$weight,$style,$other)); my $current = $values->{$ext_entry}; if ($values->{$ext_entry} eq '') { - $current = ',,,'; + $current = ',,,'; } if ($newvalues{$ext_entry} ne $current) { $changes->{$ext_entry} = $newvalues{$ext_entry}; @@ -1140,7 +1105,7 @@ sub process_changes { } if ($fontchange) { $changes->{$entry} = 1; - } + } } elsif ($entry eq 'nothideprivileged') { my @curr_nothide; my @new_nothide; @@ -1215,7 +1180,7 @@ sub process_changes { my $newtext = $maxnum-1; $newhdr[$env{'form.printfmthdr_pos_'.$newtext}] = $env{'form.printfmthdr_text_'.$newtext}; $newvalues{$entry} = join('',@newhdr); - } elsif (($entry eq 'languages') || + } elsif (($entry eq 'languages') || ($entry eq 'checkforpriv')) { my $settings; my $total = $env{'form.'.$entry.'_total'}; @@ -1231,7 +1196,7 @@ sub process_changes { } if ($env{'form.'.$entry.'_'.$total} ne '') { my $new = $env{'form.'.$entry.'_'.$total}; - if ($entry eq 'languages') { + if ($entry eq 'languages') { my %langchoices = &get_lang_choices(); if ($langchoices{$new}) { $settings .= $new; @@ -1776,7 +1741,7 @@ sub get_jscript { $local_to_standard{$code_order[$i]} = $standardnames[$i]; } foreach my $cloner (@cloners) { - if (($cloner !~ /^\Q*:\E$match_domain$/) && + if (($cloner !~ /^\Q*:\E$match_domain$/) && ($cloner !~ /^$match_username\:$match_domain$/)) { foreach my $item (split(/\&/,$cloner)) { my ($key,$val) = split(/\=/,$item); @@ -1878,7 +1843,7 @@ function syllabusinfo() { } ENDSCRIPT $jscript = '<script type="text/javascript" language="Javascript">'."\n". - '// <![CDATA['."\n". + '// <![CDATA['."\n". $browse_js."\n".$categorize_js."\n".$loncaparev_js."\n". $cloners_js."\n".$instcode_js. $syllabus_js."\n".'//]]>'."\n". @@ -1969,14 +1934,11 @@ ENDSCRIPT sub print_courseinfo { - my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype,$noedit) = @_; + my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype) = @_; unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { return; } - my ($cathash,$categoriesform,$autocoowner,$clonedefaults,$disabled); - if ($noedit) { - $disabled = ' disabled="disabled"'; - } + my ($cathash,$categoriesform,$autocoowner,$clonedefaults); my %domconf = &Apache::lonnet::get_dom('configuration', ['coursecategories','autoenroll','coursedefaults'],$cdom); @@ -1985,7 +1947,7 @@ sub print_courseinfo { if (ref($cathash) eq 'HASH') { $categoriesform = &Apache::loncommon::assign_categories_table($cathash, - $settings->{'categories'},$crstype,$disabled)."\n"; + $settings->{'categories'},$crstype)."\n"; } } if (ref($domconf{'autoenroll'}) eq 'HASH') { @@ -2052,20 +2014,14 @@ sub print_courseinfo { } else { $replace = &mt('To replace the standard title for a course role, enter a title, otherwise leave blank'); } - my ($editmap,$editsyllabus); - unless ($noedit) { - $editmap = (' 'x2). - '<a href="javascript:openbrowser'. - "('display','url','sequence')\">". - &mt('Select Map').'</a><br /><span class="LC_warning"> '. - &mt('Modification may make assessment data inaccessible!'). - '</span>'; - $editsyllabus = &mt('[_1]Edit[_2]','<a href="/public/'.$cdom.'/'.$cnum.'/syllabus?forceedit=1">', - '</a>'); - } my %items = ( 'url' => { - text => '<b>'.&mt($itemtext->{'url'}).'</b>'.$editmap, + text => '<b>'.&mt($itemtext->{'url'}).'</b>'.(' 'x2). + '<a href="javascript:openbrowser'. + "('display','url','sequence')\">". + &mt('Select Map').'</a><br /><span class="LC_warning"> '. + &mt('Modification may make assessment data inaccessible!'). + '</span>', input => 'textbox', size => '55', advanced => 1 @@ -2110,7 +2066,8 @@ sub print_courseinfo { 'externalsyllabus' => { text => '<b>'.&mt($itemtext->{'externalsyllabus'}).'</b><br />'. &mt('(Syllabus type in use)').(' ' x2). - $editsyllabus, + &mt('[_1]Edit[_2]','<a href="/public/'.$cdom.'/'.$cnum.'/syllabus?forceedit=1">', + '</a>'), }, 'hidefromcat' => { text => '<b>'.&mt($itemtext->{'hidefromcat'}).'</b><br />'. @@ -2142,7 +2099,7 @@ sub print_courseinfo { next if (!$env{'course.'.$env{'request.course.id'}.'.internal.uniquecode'}); } unless (($item eq 'cloners') || ($item eq 'rolenames')) { - $colspan = 2; + $colspan = 2; } $count ++; if (exists $items{$item}{advanced} && $items{$item}{advanced} == 1) { @@ -2151,7 +2108,7 @@ sub print_courseinfo { $datatable .= &item_table_row_start($items{$item}{text},$count,undef,$colspan); } if ($items{$item}{input} eq 'radio') { - $datatable .= &yesno_radio($item,$settings,undef,undef,undef,$noedit); + $datatable .= &yesno_radio($item,$settings); } elsif ($item eq 'cloners') { my $includeempty = 1; my $num = 0; @@ -2165,14 +2122,14 @@ sub print_courseinfo { $datatable .= ' checked="checked" '; } $datatable .= 'onchange="javascript:update_cloners('. - "'cloners_all'".');"'.$disabled.' />'.&mt('Yes').'</label>'. + "'cloners_all'".');" />'.&mt('Yes').'</label>'. (' 'x2).'<label>'. '<input type="radio" name="cloners_all" value="0" '; if ($settings->{$item} ne '*') { $datatable .= ' checked="checked" '; } $datatable .= ' onchange="javascript:update_cloners('. - "'cloners_all'".');"'.$disabled.' />'.&mt('No').'</label></td>'. + "'cloners_all'".');" />'.&mt('No').'</label></td>'. &Apache::loncommon::end_data_table_row(). &Apache::loncommon::end_data_table(). '<table><tr><td align="left"><b>'.&mt('Or'). @@ -2180,13 +2137,11 @@ sub print_courseinfo { &Apache::loncommon::start_data_table(); my @cloners; if ($settings->{$item} eq '') { - unless ($noedit) { - my $default; - if ($currcanclone eq 'domain') { - $default = '0'; - } - $datatable .= &new_cloners_dom_row($cdom,'0',$default); - } + my $default; + if ($currcanclone eq 'domain') { + $default = '0'; + } + $datatable .= &new_cloners_dom_row($cdom,'0',$default); } elsif ($settings->{$item} ne '*') { my @entries = split(/,/,$settings->{$item}); if (@entries > 0) { @@ -2207,7 +2162,7 @@ sub print_courseinfo { '</b><input type="hidden" name="cloners_dom_'.$num. '" value="'.$udom.'" /></span><br />'. '<span class="LC_nobreak"><label><input type="checkbox" '. - 'name="cloners_delete" value="'.$num.'" onchange="javascript:update_cloners('."'cloners_delete','$num'".');"'.$disabled.' />'. + 'name="cloners_delete" value="'.$num.'" onchange="javascript:update_cloners('."'cloners_delete','$num'".');" />'. &mt('Delete').'</label></span></td>'. &Apache::loncommon::end_data_table_row(); $num ++; @@ -2230,8 +2185,7 @@ sub print_courseinfo { '<td align="left"><span class="LC_nobreak">'. $add_domtitle.'</span><br />'. &Apache::loncommon::select_dom_form('','cloners_newdom', - $includeempty,undef,undef, - undef,undef,$noedit). + $includeempty). '<input type="hidden" name="cloners_total" value="'.$num.'" />'. '</td>'.&Apache::loncommon::end_data_table_row(). &Apache::loncommon::end_data_table(). @@ -2243,7 +2197,7 @@ sub print_courseinfo { &mt('Specific users').' (<tt>'. &mt('user:domain,user:domain').'</tt>)<br />'. &Apache::lonhtmlcommon::textbox($item,$cloners_str, - $items{$item}{'size'},$disabled). + $items{$item}{'size'}). '</td>'.&Apache::loncommon::end_data_table_row(). &Apache::loncommon::end_data_table(); if (@code_order > 0) { @@ -2267,13 +2221,13 @@ sub print_courseinfo { '<td align="left"><span class="LC_nobreak">'. &mt('Cloning by official course(s) based on course category').(' 'x2). '<label>'. - '<input type="radio" name="cloners_instcode" value="1" onclick="toggleCloners(this);"'.$checkedon.$disabled.' />'.&mt('Yes').'</label>'. + '<input type="radio" name="cloners_instcode" value="1" onclick="toggleCloners(this);"'.$checkedon.' />'.&mt('Yes').'</label>'. (' '). '<label>'. - '<input type="radio" name="cloners_instcode" value="0" onclick="toggleCloners(this);"'.$checkedoff.$disabled.' />'.&mt('No').'</label>'. + '<input type="radio" name="cloners_instcode" value="0" onclick="toggleCloners(this);"'.$checkedoff.' />'.&mt('No').'</label>'. &Apache::courseclassifier::build_instcode_selectors($numtitles, $lasttitle,\%cat_items,\@codetitles,\%cat_titles,\%cat_order, - $showncodes,'LC_cloners_instcodes','LC_cloners_instcode',$noedit). + $showncodes,'LC_cloners_instcodes','LC_cloners_instcode'). '</td>'.&Apache::loncommon::end_data_table_row(). &Apache::loncommon::end_data_table(); } @@ -2294,17 +2248,12 @@ sub print_courseinfo { '</span></td><td align="left">'. &Apache::lonhtmlcommon::textbox('rolenames_'.$role, $settings->{$role.'.plaintext'}, - $items{$item}{size},$disabled).'</td>'. + $items{$item}{size}).'</td>'. &Apache::loncommon::end_data_table_row(); } $datatable .= &Apache::loncommon::end_data_table().'</td>'; } elsif ($item eq 'categories') { - my $launcher; - if ($noedit) { - $launcher = $disabled; - } else { - $launcher = 'onfocus="this.blur();javascript:catsbrowser();"'; - } + my $launcher = 'onfocus="this.blur();javascript:catsbrowser();"'; $datatable .= '<input type="hidden" name="categories" value="'.$settings->{$item}.'" />'. &Apache::lonhtmlcommon::textbox($item.'_display',$settings->{$item}, $items{$item}{size},$launcher); @@ -2325,12 +2274,12 @@ sub print_courseinfo { if ($clonesrc =~ m{/$match_domain/$match_courseid}) { my %clonesrcinfo = &Apache::lonnet::coursedescription($clonesrc); if ($clonesrcinfo{'description'}) { - $clonedfrom = $clonesrcinfo{'description'}.' '.($clonesrc); + $clonedfrom = $clonesrcinfo{'description'}.' '.($clonesrc); } } $datatable .= $clonedfrom; } elsif ($item eq 'uniquecode') { - my $code = $env{'course.'.$env{'request.course.id'}.'.internal.uniquecode'}; + my $code = $env{'course.'.$env{'request.course.id'}.'.internal.uniquecode'}; if ($code) { $datatable .= $code; } @@ -2344,13 +2293,13 @@ sub print_courseinfo { if (($crstype eq 'Course') && ($env{'course.'.$env{'request.course.id'}.'.internal.coursecode'}) && ($autocoowner)) { $datatable .= &show_autocoowners(@currcoown); } else { - $datatable .= &coowner_invitations($cnum,$cdom,\@currcoown,$noedit); + $datatable .= &coowner_invitations($cnum,$cdom,@currcoown); } } else { if (($crstype eq 'Course') && ($env{'course.'.$env{'request.course.id'}.'.internal.coursecode'}) && ($autocoowner)) { $datatable .= &show_autocoowners(@currcoown); } else { - $datatable .= &manage_coownership($cnum,$cdom,\@currcoown,$noedit); + $datatable .= &manage_coownership($cnum,$cdom,@currcoown); } } } elsif ($item eq 'externalsyllabus') { @@ -2377,12 +2326,12 @@ sub print_courseinfo { } elsif ($uploaded) { $datatable .= &mt('Uploaded file'); } else { - $datatable .= &mt('Standard template'); + $datatable .= &mt('Standard template'); } $datatable .= (' ' x 2). &mt('[_1]View[_2]', '<a href="javascript:syllabusinfo();">', - '</a>'); + '</a>'); } elsif ($item eq 'loncaparev') { my $loncaparev = $env{'course.'.$env{'request.course.id'}.'.internal.releaserequired'}; my $showreqd; @@ -2394,7 +2343,7 @@ sub print_courseinfo { } $datatable .= $showreqd; } else { - $datatable .= &Apache::lonhtmlcommon::textbox($item,$settings->{$item},$items{$item}{size},$disabled); + $datatable .= &Apache::lonhtmlcommon::textbox($item,$settings->{$item},$items{$item}{size}); } $datatable .= &item_table_row_end(); } @@ -2407,7 +2356,7 @@ sub new_cloners_dom_row { my ($output,$checkedon,$checkedoff); if ($newdom ne '') { if ($num eq $default) { - $checkedon = 'checked="checked" '; + $checkedon = 'checked="checked" '; } else { $checkedoff = 'checked="checked" '; } @@ -2558,7 +2507,7 @@ ENDSCRIPT sub display_loncaparev_constraints { my ($r,$navmap,$loncaparev,$crstype) = @_; - my ($reqdmajor,$reqdminor); + my ($reqdmajor,$reqdminor); my $cid = $env{'request.course.id'}; my $cdom = $env{'course.'.$cid.'.domain'}; my $cnum = $env{'course.'.$cid.'.num'}; @@ -2581,110 +2530,128 @@ sub display_loncaparev_constraints { my $resourcedata = &Apache::lonparmset::readdata($cnum,$cdom); if (ref($resourcedata) eq 'HASH') { foreach my $key (keys(%{$resourcedata})) { + my %found; foreach my $item (keys(%Apache::lonrelrequtils::checkparms)) { if ($key =~ /(\Q$item\E)$/) { - if (ref($Apache::lonrelrequtils::checkparms{$item}) eq 'ARRAY') { - my $value = $resourcedata->{$key}; - if ($item eq 'examcode') { - if (&Apache::lonnet::validCODE($value)) { - $value = 'valid'; - } else { - $value = ''; - } - } elsif ($item eq 'printstartdate') { - if ($value =~ /^\d+$/) { - if ($value > $now) { - $value = 'future'; - } - } - } elsif ($item eq 'printenddate') { - if ($value =~ /^\d+$/) { - if ($value < $now) { - $value = 'past'; - } - } - - } - my ($middle,$scope,$which,$level,$map,$resource); - if (grep(/^\Q$value\E$/,@{$Apache::lonrelrequtils::checkparms{$item}})) { - my $stdtype = &Apache::lonparmset::standard_parameter_types($item); - my $stdname = &Apache::lonparmset::standard_parameter_names($item); - my $valname = &get_param_description($stdtype,$value); - my $rev = $Apache::lonnet::needsrelease{'parameter:'.$item.':'.$value}; - my $start = $cid.'.'; - if ($key =~ /^\Q$start\E(\[useropt\:($match_username\:$match_domain)\]\.)/) { - $middle = $1; - $which = $2; - $scope = 'user'; - } elsif ($key =~ /^\Q$start\E(\[(\w+)\]\.)/) { - $middle = $1; - $which = $2; - $scope = 'section/group'; - } else { - $scope = 'all'; - } - my $what="$stdname=$valname"; - if ($key =~ /^\Q$start$middle\E\w+\.\Q$item\E$/) { - $level = 'general'; - if ($scope eq 'all') { - if (ref($fromparam{$rev}{$scope}) eq 'ARRAY') { - unless(grep(/^\Q$what\E$/,@{$fromparam{$rev}{$scope}})) { - push(@{$fromparam{$rev}{$scope}},$what); - } - } else { - push(@{$fromparam{$rev}{$scope}},$what); - } - } else { - if (ref($fromparam{$rev}{$scope}{$which}) eq 'ARRAY') { - unless (grep(/^\Q$what\E$/,@{$fromparam{$rev}{$scope}{$which}})) { - push(@{$fromparam{$rev}{$scope}{$which}},$what); - } - } else { - push(@{$fromparam{$rev}{$scope}{$which}},$what); - } - } - $rowspan{$rev} ++; - } elsif ($key =~ /^\Q$start$middle\E(.+)___\(all\).\w+\.\Q$item\E$/) { - $level = 'folder'; - $map = $1; - if ($scope eq 'all') { - if (ref($bymap{$map}{$rev}{$scope}) eq 'ARRAY') { - unless(grep(/^\Q$what\E$/,@{$bymap{$map}{$rev}{$scope}})) { - push(@{$bymap{$map}{$rev}{$scope}},$what); - } - } else { - push(@{$bymap{$map}{$rev}{$scope}},$what); - } - } else { - if (ref($bymap{$map}{$rev}{$scope}{$which}) eq 'ARRAY') { - unless(grep(/^\Q$what\E$/,@{$bymap{$map}{$rev}{$scope}{$which}})) { - push(@{$bymap{$map}{$rev}{$scope}{$which}},$what); - } - } else { - push(@{$bymap{$map}{$rev}{$scope}{$which}},$what); - } - } - } elsif ($key =~ /^\Q$start$middle\E(.+)\.\w+\.\Q$item\E$/) { - $level = 'resource'; - $resource = $1; - if ($scope eq 'all') { - if (ref($byresource{$resource}{$rev}{$scope}) eq 'ARRAY') { - unless(grep(/^\Q$what\E$/,@{$byresource{$resource}{$rev}{$scope}})) { - push(@{$byresource{$resource}{$rev}{$scope}},$what); - } - } else { - push(@{$byresource{$resource}{$rev}{$scope}},$what); - } - } else { - if (ref($byresource{$resource}{$rev}{$scope}{$which}) eq 'ARRAY') { - unless (grep(/^\Q$what\E$/,@{$byresource{$resource}{$rev}{$scope}{$which}})) { - push(@{$byresource{$resource}{$rev}{$scope}{$which}},$what); - } - } else { - push(@{$byresource{$resource}{$rev}{$scope}{$which}},$what); - } - } - } + if (ref($Apache::lonrelrequtils::checkparms{$item}) eq 'ARRAY') { + my $value = $resourcedata->{$key}; + if ($item eq 'examcode') { + if (&Apache::lonnet::validCODE($value)) { + $value = 'valid'; + } else { + $value = ''; + } + } elsif ($item eq 'printstartdate') { + if ($value =~ /^\d+$/) { + if ($value > $now) { + $value = 'future'; + } + } + } elsif ($item eq 'printenddate') { + if ($value =~ /^\d+$/) { + if ($value < $now) { + $value = 'past'; + } + } + } + if (grep(/^\Q$value\E$/,@{$Apache::lonrelrequtils::checkparms{$item}})) { + my $stdtype = &Apache::lonparmset::standard_parameter_types($item); + $found{$item}{'valname'} = &get_param_description($stdtype,$value); + $found{$item}{'rev'} = $Apache::lonnet::needsrelease{'parameter:'.$item.':'.$value.':'}; + } + } + } + } + foreach my $item (keys(%Apache::lonrelrequtils::checkparmsmatch)) { + if (ref($Apache::lonrelrequtils::checkparmsmatch{$item}) eq 'ARRAY') { + my $value = $resourcedata->{$key}; + foreach my $valuematch (@{$Apache::lonrelrequtils::checkparmsmatch{$item}}) { + if ($value =~ /$valuematch/) { + my $stdtype = &Apache::lonparmset::standard_parameter_types($item); + $found{$item}{'valname'} = &get_param_description($stdtype,$value,1); + $found{$item}{'rev'} = + $Apache::lonnet::needsrelease{'parameter:'.$item.'::'.$valuematch}; + last; + } + } + } + } + foreach my $item (keys(%found)) { + my $stdname = &Apache::lonparmset::standard_parameter_names($item); + my $rev = $found{$item}{'rev'}; + my $valname = $found{$item}{'valname'}; + my ($middle,$scope,$which,$level,$map,$resource); + my $start = $cid.'.'; + if ($key =~ /^\Q$start\E(\[useropt\:($match_username\:$match_domain)\]\.)/) { + $middle = $1; + $which = $2; + $scope = 'user'; + } elsif ($key =~ /^\Q$start\E(\[(\w+)\]\.)/) { + $middle = $1; + $which = $2; + $scope = 'section/group'; + } else { + $scope = 'all'; + } + my $what="$stdname=$valname"; + if ($key =~ /^\Q$start$middle\E\w+\.\Q$item\E$/) { + $level = 'general'; + if ($scope eq 'all') { + if (ref($fromparam{$rev}{$scope}) eq 'ARRAY') { + unless(grep(/^\Q$what\E$/,@{$fromparam{$rev}{$scope}})) { + push(@{$fromparam{$rev}{$scope}},$what); + } + } else { + push(@{$fromparam{$rev}{$scope}},$what); + } + } else { + if (ref($fromparam{$rev}{$scope}{$which}) eq 'ARRAY') { + unless (grep(/^\Q$what\E$/,@{$fromparam{$rev}{$scope}{$which}})) { + push(@{$fromparam{$rev}{$scope}{$which}},$what); + } + } else { + push(@{$fromparam{$rev}{$scope}{$which}},$what); + } + } + $rowspan{$rev} ++; + } elsif ($key =~ /^\Q$start$middle\E(.+)___\(all\).\w+\.\Q$item\E$/) { + $level = 'folder'; + $map = $1; + if ($scope eq 'all') { + if (ref($bymap{$map}{$rev}{$scope}) eq 'ARRAY') { + unless(grep(/^\Q$what\E$/,@{$bymap{$map}{$rev}{$scope}})) { + push(@{$bymap{$map}{$rev}{$scope}},$what); + } + } else { + push(@{$bymap{$map}{$rev}{$scope}},$what); + } + } else { + if (ref($bymap{$map}{$rev}{$scope}{$which}) eq 'ARRAY') { + unless(grep(/^\Q$what\E$/,@{$bymap{$map}{$rev}{$scope}{$which}})) { + push(@{$bymap{$map}{$rev}{$scope}{$which}},$what); + } + } else { + push(@{$bymap{$map}{$rev}{$scope}{$which}},$what); + } + } + } elsif ($key =~ /^\Q$start$middle\E(.+)\.\w+\.\Q$item\E$/) { + $level = 'resource'; + $resource = $1; + if ($scope eq 'all') { + if (ref($byresource{$resource}{$rev}{$scope}) eq 'ARRAY') { + unless(grep(/^\Q$what\E$/,@{$byresource{$resource}{$rev}{$scope}})) { + push(@{$byresource{$resource}{$rev}{$scope}},$what); + } + } else { + push(@{$byresource{$resource}{$rev}{$scope}},$what); + } + } else { + if (ref($byresource{$resource}{$rev}{$scope}{$which}) eq 'ARRAY') { + unless (grep(/^\Q$what\E$/,@{$byresource{$resource}{$rev}{$scope}{$which}})) { + push(@{$byresource{$resource}{$rev}{$scope}{$which}},$what); + } + } else { + push(@{$byresource{$resource}{$rev}{$scope}{$which}},$what); } } } @@ -2784,7 +2751,7 @@ sub display_loncaparev_constraints { if (ref($fromblocks{$type}) eq 'HASH') { foreach my $rev (keys(%{$fromblocks{$type}})) { my ($major,$minor) = split(/\./,$rev); - ($reqdmajor,$reqdminor) = + ($reqdmajor,$reqdminor) = &Apache::lonrelrequtils::update_reqd_loncaparev($major,$minor,$reqdmajor,$reqdminor); $output .= &Apache::loncommon::start_data_table_row(). '<td>'.$rev.'</td><td>'.$lt{$type}.'</td><td>'; @@ -2864,7 +2831,7 @@ sub display_loncaparev_constraints { &Apache::lonrelrequtils::update_reqd_loncaparev($major,$minor, $reqdmajor,$reqdminor); $checkedrev{$key} = 1; - } + } push(@{$byresponsetype{$symb}{$rev}},$key); $allmaps{$enclosing_map} = 1; } @@ -3077,7 +3044,7 @@ sub show_contents_view { sub releases_by_map { my ($r,$bymap,$url,$scopeorder,$lt) = @_; return unless ((ref($bymap) eq 'HASH') && (ref($scopeorder) eq 'ARRAY')); - my $newrow = 0; + my $newrow = 0; if (ref($bymap->{$url}) eq 'HASH') { foreach my $rev (sort(keys(%{$bymap->{$url}}))) { if ($newrow) { @@ -3114,18 +3081,52 @@ sub releases_by_map { } sub get_param_description { - my ($stdtype,$value) = @_; - my $name = $value; - my $paramstrings = &Apache::lonparmset::standard_string_options($stdtype); - unless (ref($paramstrings) eq 'ARRAY') { - return $name; + my ($stdtype,$value,$regexp) = @_; + my ($name,$parammatches,$paramstrings,@possibles); + $paramstrings = &Apache::lonparmset::standard_string_options($stdtype); + if ($regexp) { + $parammatches = &Apache::lonparmset::standard_string_matches($stdtype); + if (ref($parammatches) eq 'ARRAY') { + @possibles = @{$parammatches}; + } else { + undef($regexp); + $name = $value; + } } - foreach my $possibilities (@{$paramstrings}) { + unless ($regexp) { + $name = $value; + if (ref($paramstrings) eq 'ARRAY') { + @possibles = @{$paramstrings}; + } else { + return $name; + } + } + foreach my $possibilities (@possibles) { next unless (ref($possibilities) eq 'ARRAY'); - my ($thing, $description) = @{ $possibilities }; - if ($thing eq $value) { - $name = $description; - last; + my $gotregexmatch = ''; + if ($regexp) { + last if ($gotregexmatch); + my ($item,$pattern) = @{ $possibilities }; + if ($value =~ /$pattern/) { + if (ref($paramstrings) eq 'ARRAY') { + foreach my $possibles (@{$paramstrings}) { + next unless (ref($possibles) eq 'ARRAY'); + my ($thing,$description) = @{$possibles}; + if ($thing eq $item) { + $name = $description; + $gotregexmatch = 1; + last; + } + } + last if ($gotregexmatch); + } + } + } else { + my ($thing,$description) = @{ $possibilities }; + if ($thing eq $value) { + $name = $description; + last; + } } } return $name; @@ -3162,20 +3163,13 @@ sub show_autocoowners { } sub coowner_invitations { - my ($cnum,$cdom,$currcoownref,$noedit) = @_; - my ($output,@pendingcoown,@othercoords,@currcoown); + my ($cnum,$cdom,@currcoown) = @_; + my ($output,@pendingcoown,@othercoords); my $pendingcoowners = $env{'course.'.$env{'request.course.id'}.'.internal.pendingco-owners'}; if ($pendingcoowners) { @pendingcoown = split(',',$pendingcoowners); } - if (ref($currcoownref) eq 'ARRAY') { - @currcoown == @{$currcoownref}; - } - my $disabled; - if ($noedit) { - $disabled = ' disabled="disabled"'; - } my $ccrole = 'cc'; my %ccroles = &Apache::lonnet::get_my_roles($cnum,$cdom,undef,undef,[$ccrole]); foreach my $key (sort(keys(%ccroles))) { @@ -3193,7 +3187,7 @@ sub coowner_invitations { '<td><i>'.&mt('Current co-owners').'</i></td><td>'; foreach my $person (@currcoown) { my ($co_uname,$co_dom) = split(':',$person); - $output .= '<span class="LC_nobreak"><label><input type="checkbox" name="coowners" checked="checked" value="'.$person.'"'.$disabled.' />'.&Apache::loncommon::plainname($co_uname,$co_dom).'</label></span>'.(' 'x2).' '; + $output .= '<span class="LC_nobreak"><label><input type="checkbox" name="coowners" checked="checked" value="'.$person.'" />'.&Apache::loncommon::plainname($co_uname,$co_dom).'</label></span>'.(' 'x2).' '; } $output .= '</td>'. &Apache::loncommon::end_data_table_row(); @@ -3203,7 +3197,7 @@ sub coowner_invitations { '<td><i>'.&mt('Invited as co-owners [_1](agreement pending)','<br />').'</i></td><td>'; foreach my $person (@pendingcoown) { my ($co_uname,$co_dom) = split(':',$person); - $output .= '<span class="LC_nobreak"><label><input type="checkbox" name="pendingcoowners" checked="checked" value="'.$person.'"'.$disabled.' />'.&Apache::loncommon::plainname($co_uname,$co_dom).'</label></span>'.(' 'x2).' '; + $output .= '<span class="LC_nobreak"><label><input type="checkbox" name="pendingcoowners" checked="checked" value="'.$person.'" />'.&Apache::loncommon::plainname($co_uname,$co_dom).'</label></span>'.(' 'x2).' '; } $output .= '</td>'. &Apache::loncommon::end_data_table_row(); @@ -3213,7 +3207,7 @@ sub coowner_invitations { '<td><i>'.&mt('Invite other Coordinators [_1]to become co-owners','<br />').'</i></td><td>'; foreach my $person (@othercoords) { my ($co_uname,$co_dom) = split(':',$person); - $output .= '<span class="LC_nobreak"><label><input type="checkbox" name="invitecoowners" value="'.$person.'"'.$disabled.' />'.&Apache::loncommon::plainname($co_uname,$co_dom).'</label></span>'.(' 'x2).' '; + $output .= '<span class="LC_nobreak"><label><input type="checkbox" name="invitecoowners" value="'.$person.'" />'.&Apache::loncommon::plainname($co_uname,$co_dom).'</label></span>'.(' 'x2).' '; } $output .= '</td>'. &Apache::loncommon::end_data_table_row(); @@ -3226,20 +3220,13 @@ sub coowner_invitations { } sub manage_coownership { - my ($cnum,$cdom,$currcoownref,$noedit) = @_; - my (@pendingcoown,@currcoown); + my ($cnum,$cdom,@currcoown) = @_; + my (@pendingcoown); my $pendingcoowners = $env{'course.'.$env{'request.course.id'}.'.internal.pendingco-owners'}; if ($pendingcoowners) { @pendingcoown = split(',',$pendingcoowners); } - if (ref($currcoownref) eq 'ARRAY') { - @currcoown == @{$currcoownref}; - } - my $disabled; - if ($noedit) { - $disabled = ' disabled="disabled"'; - } my ($is_coowner,$is_pending,$output); my $uname = $env{'user.name'}; my $udom = $env{'user.domain'}; @@ -3271,8 +3258,8 @@ sub manage_coownership { if ($is_coowner) { $output .= &mt('You are currently a co-owner:').' <label><input type="checkbox" name="remove_coowoner" value="'.$uname.':'.$udom.'" />'.&mt('Discontinue?').'</label>'; } else { - $output .= &mt('The course owner has invited you to become a co-owner:').' <label><input type="radio" name="pending_coowoner" value="accept"'.$disabled.' />'.&mt('Accept?').'</label>'.(' 'x2). - '<label><input type="radio" name=pending_coowoner" value="decline"'.$disabled.' />'.&mt('Decline?').'</label>'; + $output .= &mt('The course owner has invited you to become a co-owner:').' <label><input type="radio" name="pending_coowoner" value="accept" />'.&mt('Accept?').'</label>'.(' 'x2). + '<label><input type="radio" name=pending_coowoner" value="decline" />'.&mt('Decline?').'</label>'; } $output .= '</span>'; if (@currcoown) { @@ -3286,7 +3273,7 @@ sub manage_coownership { } sub print_localization { - my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$noedit) = @_; + my ($cdom,$settings,$ordered,$itemtext,$rowtotal) = @_; unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { return; } @@ -3305,16 +3292,13 @@ sub print_localization { input => 'selectbox', }, ); - my ($datatable,$disabled); + my $datatable; my $count = 0; - if ($noedit) { - $disabled = ' disabled="disabled"'; - } foreach my $item (@{$ordered}) { $count ++; my $colspan; unless ($item eq 'languages') { - $colspan = 2; + $colspan = 2; } $datatable .= &item_table_row_start($items{$item}{text},$count,undef,$colspan); if ($item eq 'timezone') { @@ -3322,7 +3306,7 @@ sub print_localization { my $timezone = &Apache::lonlocal::gettimezone(); $datatable .= &Apache::loncommon::select_timezone($item,$timezone,undef, - $includeempty,$disabled); + $includeempty); } elsif ($item eq 'datelocale') { my $includeempty = 1; my $locale_obj = &Apache::lonlocal::getdatelocale(); @@ -3332,13 +3316,11 @@ sub print_localization { } $datatable .= &Apache::loncommon::select_datelocale($item,$currdatelocale, - undef,$includeempty,$disabled); + undef,$includeempty); } else { if ($settings->{$item} eq '') { - unless ($noedit) { - $datatable .= '</td><td align="right">'. - &Apache::loncommon::select_language('languages_0','',1); - } + $datatable .= '</td><td align="right">'. + &Apache::loncommon::select_language('languages_0','',1); } else { my $num = 0; my @languages = split(/\s*[,;:]\s*/,$settings->{$item}); @@ -3358,22 +3340,19 @@ sub print_localization { '</b><input type="hidden" name="languages_'.$num. '" value="'.$lang.'" /></span><br />'. '<span class="LC_nobreak"><label><input type="checkbox" '. - 'name="languages_delete" value="'.$num.'"'.$disabled.' />'. + 'name="languages_delete" value="'.$num.'" />'. &mt('Delete').'</label></span></td>'. &Apache::loncommon::end_data_table_row(); $num ++; } } - unless ($noedit) { - $datatable .= - &Apache::loncommon::start_data_table_row(). + $datatable .= &Apache::loncommon::start_data_table_row(). '<td align="left"><span class="LC_nobreak">'. &mt('Additional language:'). '</span><br />'. &Apache::loncommon::select_language('languages_'.$num,'',1). '<input type="hidden" name="languages_total" value="'.$num.'" />'. - '</td>'.&Apache::loncommon::end_data_table_row(); - } - $datatable .= &Apache::loncommon::end_data_table().'<br />'; + '</td>'.&Apache::loncommon::end_data_table_row(). + &Apache::loncommon::end_data_table().'<br />'; } } $datatable .= &item_table_row_end(); @@ -3394,7 +3373,7 @@ sub get_lang_choices { } sub print_feedback { - my ($position,$cdom,$settings,$ordered,$itemtext,$rowtotal,$noedit) = @_; + my ($position,$cdom,$settings,$ordered,$itemtext,$rowtotal) = @_; unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { return; } @@ -3429,10 +3408,7 @@ sub print_feedback { del => 'Delete?', sec => 'Sections:', ); - my $disabled; - if ($noedit) { - $disabled = ' disabled="disabled"'; - } + foreach my $item (@{$ordered}) { $count ++; if ($position eq 'top') { @@ -3442,12 +3418,12 @@ sub print_feedback { } if ($position eq 'top') { my $includeempty = 0; - $datatable .= '</td><td align="right">'. - &user_table($cdom,$item,\@sections, - $settings->{$item},\%lt,$noedit); + $datatable .= '</td><td align="right">'. + &user_table($cdom,$item,\@sections, + $settings->{$item},\%lt); } else { $datatable .= &Apache::lonhtmlcommon::textbox($item.'.text', - $settings->{$item.'.text'},$items{$item}{size},$disabled); + $settings->{$item.'.text'},$items{$item}{size}); } $datatable .= &item_table_row_end(); } @@ -3456,21 +3432,15 @@ sub print_feedback { } sub user_table { - my ($cdom,$item,$sections,$currvalue,$lt,$noedit) = @_; + my ($cdom,$item,$sections,$currvalue,$lt) = @_; my $output; if ($currvalue eq '') { - unless ($noedit) { - $output .= &select_recipient($item,'0',$cdom,$sections); - } + $output .= &select_recipient($item,'0',$cdom,$sections); } else { my $num = 0; my @curr = split(/,/,$currvalue); $output .= '<table class="LC_data_table">'; my ($currusers); - my $disabled; - if ($noedit) { - $disabled = ' disabled="disabled"'; - } foreach my $val (@curr) { next if ($val eq ''); my ($uname,$udom,$seclist) = ($val =~ /^($match_username):($match_domain)(\(?[^\)]*\)?)$/); @@ -3482,7 +3452,7 @@ sub user_table { $currusers .= '<tr>'. '<td valign="top"><span class="LC_nobreak">'. '<label><input type="checkbox" '. - 'name="'.$item.'_delete" value="'.$num.'"'.$disabled.' />'. + 'name="'.$item.'_delete" value="'.$num.'" />'. $lt->{'del'}.'</label>'. '<input type="hidden" name="'.$item.'_user_'. $num.'" value="'.$uname.':'.$udom.'" />'.(' 'x2). @@ -3493,7 +3463,7 @@ sub user_table { if (@{$sections}) { $currusers.= (' 'x3).$lt->{'sec'}.' '. &select_sections($item,$num,$sections, - \@selsec,$noedit); + \@selsec); } } $currusers .= '</span></td></tr>'; @@ -3511,16 +3481,12 @@ sub user_table { '<table>'.$currusers.'</table></td>'. '</tr>'; } - unless ($noedit) { - $output .= - '<tr>'. + $output .= '<tr>'. '<td align="left"><span class="LC_nobreak"><i>'. $lt->{'add'}.'</i></span><br />'. &select_recipient($item,$num,$cdom,$sections). '<input type="hidden" name="'.$item.'_total" value="'.$num.'" />'. - '</td></tr>'; - } - $output .= '</table>'; + '</td></tr></table>'; } return $output; } @@ -3547,17 +3513,14 @@ sub select_recipient { } sub select_sections { - my ($item,$num,$sections,$selected,$noedit) = @_; - my ($output,@currsecs,$allsec,$disabled); + my ($item,$num,$sections,$selected) = @_; + my ($output,@currsecs,$allsec); if (ref($selected) eq 'ARRAY') { @currsecs = @{$selected}; } if (!@currsecs) { $allsec = ' selected="selected"'; } - if ($noedit) { - $disabled = ' disabled="disabled"'; - } if (ref($sections) eq 'ARRAY') { if (@{$sections}) { my $mult; @@ -3567,7 +3530,7 @@ sub select_sections { $mult .= ' size="4"'; } } - $output = '<select name="'.$item.'_sections_'.$num.'"'.$mult.$disabled.'>'. + $output = '<select name="'.$item.'_sections_'.$num.'"'.$mult.'>'. ' <option value=""'.$allsec.'>'.&mt('All').'</option>'; foreach my $sec (@{$sections}) { my $is_sel; @@ -3583,7 +3546,7 @@ sub select_sections { } sub print_discussion { - my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$noedit) = @_; + my ($cdom,$settings,$ordered,$itemtext,$rowtotal) = @_; unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { return; } @@ -3645,26 +3608,26 @@ sub print_discussion { my $colspan; if ($item eq 'allow_limited_html_in_feedback') { $colspan = 2; - } + } $datatable .= &item_table_row_start($items{$item}{text},$count,undef,$colspan); if ($item eq 'plc.roles.denied') { $datatable .= '</td><td align="right">'. - '<table>'.&role_checkboxes($cdom,$cnum,$item,$settings,undef,undef,$noedit). + '<table>'.&role_checkboxes($cdom,$cnum,$item,$settings). '</table>'; } elsif ($item eq 'plc.users.denied') { - $datatable .= '</td><td align="right">'. - &user_table($cdom,$item,undef, - $settings->{$item},\%lt,$noedit); + $datatable .= '</td><td align="right">'. + &user_table($cdom,$item,undef, + $settings->{$item},\%lt); } elsif ($item eq 'pch.roles.denied') { $datatable .= '</td><td align="right">'. - '<table>'.&role_checkboxes($cdom,$cnum,$item,$settings,undef,undef,$noedit). + '<table>'.&role_checkboxes($cdom,$cnum,$item,$settings). '</table>'; } elsif ($item eq 'pch.users.denied') { $datatable .= '</td><td align="right">'. &user_table($cdom,$item,undef, - $settings->{$item},\%lt,$noedit); + $settings->{$item},\%lt); } elsif ($item eq 'allow_limited_html_in_feedback') { - $datatable .= &yesno_radio($item,$settings,undef,undef,undef,$noedit); + $datatable .= &yesno_radio($item,$settings); } elsif ($item eq 'allow_discussion_post_editing') { $datatable .= '</td><td align="right"><br />'. &Apache::loncommon::start_data_table(). @@ -3672,7 +3635,7 @@ sub print_discussion { '<th align="left">'.&mt('Role').'</th><th>'. &mt('Sections').'</th>'. &Apache::loncommon::end_data_table_row(). - &role_checkboxes($cdom,$cnum,$item,$settings,1,undef,$noedit). + &role_checkboxes($cdom,$cnum,$item,$settings,1). &Apache::loncommon::end_data_table().'<br />'; } elsif ($item eq 'discussion_post_fonts') { $datatable .= '</td><td align="right"><br />'. @@ -3682,9 +3645,9 @@ sub print_discussion { '<th align="center">'.&mt('font-size').'</th>'. '<th align="center">'.&mt('font-weight').'</th>'. '<th align="center">'.&mt('font-style').'</th>'. - '<th align="center">'.&mt('Other css').'</th>'. + '<th align="center">'.&mt('Other css').'</th>'. &Apache::loncommon::end_data_table_row(). - &set_discussion_fonts($cdom,$cnum,$item,$settings,$noedit). + &set_discussion_fonts($cdom,$cnum,$item,$settings). &Apache::loncommon::end_data_table().'<br />'; } $datatable .= &item_table_row_end(); @@ -3694,7 +3657,7 @@ sub print_discussion { } sub role_checkboxes { - my ($cdom,$cnum,$item,$settings,$showsections,$crstype,$noedit) = @_; + my ($cdom,$cnum,$item,$settings,$showsections,$crstype) = @_; my @roles = ('st','ad','ta','ep','in'); if ($crstype eq 'Community') { push(@roles,'co'); @@ -3732,10 +3695,6 @@ sub role_checkboxes { } my $numinrow = 3; my $count = 0; - my $disabled; - if ($noedit) { - $disabled = ' disabled="disabled"'; - } foreach my $role (@roles) { my $checked = ''; if (grep(/^\Q$role\E$/,@current)) { @@ -3754,11 +3713,11 @@ sub role_checkboxes { } } $output .= '<td align="left"><span class="LC_nobreak"><label><input type="checkbox" name="'. - $item.'" value="'.$role.'"'.$checked.$disabled.'/> '. + $item.'" value="'.$role.'"'.$checked.'/> '. $plrole.'</label></span></td>'; if ($showsections) { $output .= '<td align="left">'. - &select_sections($item,$role,\@sections,$currsec{$role},$noedit). + &select_sections($item,$role,\@sections,$currsec{$role}). '</td></tr>'; } $count ++; @@ -3786,11 +3745,11 @@ sub role_checkboxes { } } $output .= '<td><span class="LC_nobreak"><label><input type="checkbox" name="'. - $item.'" value="'.$value.'"'.$checked.$disabled.' /> '.$rolename. + $item.'" value="'.$value.'"'.$checked.' /> '.$rolename. '</label></span></td>'; if ($showsections) { $output .= '<td>'. - &select_sections($item,$role,\@sections,$currsec{$role},$noedit). + &select_sections($item,$role,\@sections,$currsec{$role}). '</td>'.&Apache::loncommon::end_data_table_row(); } $total ++; @@ -3812,15 +3771,11 @@ sub role_checkboxes { } sub set_discussion_fonts { - my ($cdom,$cnum,$item,$settings,$noedit) = @_; + my ($cdom,$cnum,$item,$settings) = @_; my ($classorder,$classtitles) = &discussion_vote_classes(); my ($styleorder,$styleitems) = &discussion_vote_styles(); my $output; if (ref($classorder) eq 'ARRAY') { - my $disabled; - if ($noedit) { - $disabled = ' disabled="disabled"'; - } foreach my $cat (@{$classorder}) { my %curr = (); ($curr{'size'},$curr{'weight'},$curr{'style'},$curr{'other'}) = @@ -3837,12 +3792,12 @@ sub set_discussion_fonts { ($currsize,$currunit) = ($1,$2); $curr{'size'} = $currunit; } - $output .= '<input type="textbox" name="discussion_post_fonts_'.$cat.'_'.$item.'" value="'.$currsize.'" size="5"'.$disabled.' />'. + $output .= '<input type="textbox" name="discussion_post_fonts_'.$cat.'_'.$item.'" value="'.$currsize.'" size="5">'. ' '; $selitem = 'unit'; } if ((ref($styleitems) eq 'HASH') && (ref($styleitems->{$item}) eq 'ARRAY')) { - $output .= '<select name="discussion_post_fonts_'.$cat.'_'.$selitem.'"'.$disabled.'>'; + $output .= '<select name="discussion_post_fonts_'.$cat.'_'.$selitem.'">'; foreach my $val (@{$styleitems->{$item}}) { my $sel; if ($val eq $curr{$item}) { @@ -3853,7 +3808,7 @@ sub set_discussion_fonts { } } } - $output .= '</span></td><td><input type="textbox" size="10" name="discussion_post_fonts_'.$cat.'_other" value="'.$curr{'other'}.'"'.$disabled.' /></td>'; + $output .= '</span></td><td><input type="textbox" size="10" name="discussion_post_fonts_'.$cat.'_other" value="'.$curr{'other'}.'" /></td>'; } $output .= &Apache::loncommon::end_data_table_row(); } @@ -3862,7 +3817,7 @@ sub set_discussion_fonts { sub discussion_vote_classes { my $classorder = ['twoplus','oneplus','zero','oneminus','twominus']; - my %classtitles = &Apache::lonlocal::texthash( + my %classtitles = &Apache::lonlocal::texthash( 'twoplus' => 'Two sigma above mean', 'oneplus' => 'One sigma above mean', 'zero' => 'Within one sigma of mean', @@ -3885,7 +3840,7 @@ sub discussion_vote_styles { } sub print_classlists { - my ($position,$cdom,$settings,$itemtext,$rowtotal,$crstype,$noedit) = @_; + my ($position,$cdom,$settings,$itemtext,$rowtotal,$crstype) = @_; my @ordered; if ($position eq 'top') { @ordered = ('default_enrollment_start_date', @@ -3928,7 +3883,7 @@ sub print_classlists { 'defaultcredits' => { text => '<b>'.&mt($itemtext->{'defaultcredits'}).'</b>', }, - + 'nothideprivileged' => { text => '<b>'.&mt($itemtext->{'nothideprivileged'}).'</b>', input => 'checkbox', @@ -3959,11 +3914,11 @@ sub print_classlists { ($settings->{'student_classlist_view'} eq 'section')) { $settings->{'student_classlist_view'} = 'disabled'; } - return &make_item_rows($cdom,\%items,\@ordered,$settings,$rowtotal,$crstype,'classlists',$noedit); + return &make_item_rows($cdom,\%items,\@ordered,$settings,$rowtotal,$crstype,'classlists'); } sub print_appearance { - my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype,$noedit) = @_; + my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype) = @_; unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { return; } @@ -3996,10 +3951,11 @@ sub print_appearance { input => 'selectbox', options => { MathJax => 'MathJax', + jsMath => 'jsMath', mimetex => &mt('Convert to Images'), tth => &mt('TeX to HTML'), }, - order => ['MathJax','mimetex','tth'], + order => ['MathJax','jsMath','mimetex','tth'], nullval => $mathdef, }, 'tthoptions' => { @@ -4016,11 +3972,11 @@ sub print_appearance { input => 'radio', }, ); - return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'appearance',$noedit); + return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'appearance'); } sub print_grading { - my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype,$noedit) = @_; + my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype) = @_; unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { return; } @@ -4031,11 +3987,12 @@ sub print_grading { input => 'selectbox', options => { standard => &mt('Standard: shows points'), + categories => &mt('Categories: shows points according to categories'), external => &mt('External: shows number of completed parts and totals'), externalnototals => &mt('External: shows only number of completed parts'), spreadsheet => &mt('Spreadsheet: (with link to detailed scores)'), }, - order => ['standard','external','externalnototals','spreadsheet'], + order => ['standard','categories','external','externalnototals','spreadsheet'], }, 'rndseed' => { text => '<b>'.&mt($itemtext->{'rndseed'}).'</b>'. @@ -4071,11 +4028,11 @@ sub print_grading { input => 'radio', }, ); - return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'grading',$noedit); + return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'grading'); } sub print_printouts { - my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype,$noedit) = @_; + my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype) = @_; unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { return; } @@ -4124,11 +4081,11 @@ sub print_printouts { nullval => &mt('None specified - use domain default'), } ); - return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'printouts',$noedit); + return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'printouts'); } sub print_spreadsheet { - my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype,$noedit) = @_; + my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype) = @_; unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { return; } @@ -4160,11 +4117,11 @@ sub print_spreadsheet { input => 'radio', }, ); - return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'spreadsheet',$noedit); + return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'spreadsheet'); } sub print_bridgetasks { - my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype,$noedit) = @_; + my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype) = @_; unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { return; } @@ -4202,11 +4159,11 @@ sub print_bridgetasks { input => 'radio', }, ); - return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'bridgetasks',$noedit); + return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'bridgetasks'); } sub print_other { - my ($cdom,$settings,$allitems,$rowtotal,$crstype,$noedit) = @_; + my ($cdom,$settings,$allitems,$rowtotal,$crstype) = @_; unless ((ref($settings) eq 'HASH') && (ref($allitems) eq 'ARRAY')) { return; } @@ -4227,7 +4184,7 @@ sub print_other { input => 'textbox', size => '30', }; - my $output = &make_item_rows($cdom,\%items,\@ordered,$settings,$rowtotal,$crstype,'other',$noedit); + my $output = &make_item_rows($cdom,\%items,\@ordered,$settings,$rowtotal,$crstype,'other'); } sub get_other_items { @@ -4276,7 +4233,7 @@ sub item_table_row_end { } sub yesno_radio { - my ($item,$settings,$unsetdefault,$valueyes,$valueno,$noedit) = @_; + my ($item,$settings,$unsetdefault,$valueyes,$valueno) = @_; my $itemon = ' '; my $itemoff = ' checked="checked" '; if (($valueyes eq '') && ($valueno eq '')) { @@ -4295,24 +4252,16 @@ sub yesno_radio { } } } - my $disabled; - if ($noedit) { - $disabled = ' disabled="disabled"'; - } return '<span class="LC_nobreak"><label>'. '<input type="radio" name="'.$item.'"'. - $itemon.' value="'.$valueyes.'"'.$disabled.' />'.&mt('Yes').'</label> '. + $itemon.' value="'.$valueyes.'" />'.&mt('Yes').'</label> '. '<label><input type="radio" name="'.$item.'"'. - $itemoff.' value="'.$valueno.'"'.$disabled.' />'.&mt('No').'</label></span>'; + $itemoff.' value="'.$valueno.'" />'.&mt('No').'</label></span>'; } sub select_from_options { - my ($item,$order,$options,$curr,$nullval,$multiple,$maxsize,$onchange,$noedit) = @_; + my ($item,$order,$options,$curr,$nullval,$multiple,$maxsize,$onchange) = @_; my $output; - my $disabled; - if ($noedit) { - $disabled = ' disabled=disabled"'; - } if ((ref($order) eq 'ARRAY') && (ref($options) eq 'HASH')) { $output='<select name="'.$item.'" '.$onchange; if ($multiple) { @@ -4323,7 +4272,7 @@ sub select_from_options { $output .= ' size="'.$maxsize.'"'; } } - $output .= $disabled.'>'."\n"; + $output .= '>'."\n"; if ($nullval ne '') { $output .= '<option value=""'; if (ref($curr) eq 'ARRAY') { @@ -4356,7 +4305,7 @@ sub select_from_options { } sub make_item_rows { - my ($cdom,$items,$ordered,$settings,$rowtotal,$crstype,$caller,$noedit) = @_; + my ($cdom,$items,$ordered,$settings,$rowtotal,$crstype,$caller) = @_; my $datatable; if ((ref($items) eq 'HASH') && (ref($ordered) eq 'ARRAY')) { my $count = 0; @@ -4382,19 +4331,15 @@ sub make_item_rows { } $datatable .= $showcredits; } elsif ($item eq 'nothideprivileged') { - $datatable .= ¬hidepriv_row($cdom,$item,$settings,$crstype,$noedit); + $datatable .= ¬hidepriv_row($cdom,$item,$settings,$crstype); } elsif ($item eq 'checkforpriv') { - $datatable .= &checkforpriv_row($cdom,$item,$settings,$crstype,$noedit); + $datatable .= &checkforpriv_row($cdom,$item,$settings,$crstype); } elsif ($item eq 'print_header_format') { - $datatable .= &print_hdrfmt_row($item,$settings,$noedit); + $datatable .= &print_hdrfmt_row($item,$settings); } elsif ($items->{$item}{input} eq 'dates') { - my $disabled; - if ($noedit) { - $disabled = ' disabled="disabled"'; - } $datatable .= &Apache::lonhtmlcommon::date_setter('display',$item, - $settings->{$item},$disabled); + $settings->{$item}); } elsif ($items->{$item}{input} eq 'radio') { my ($unsetdefault,$valueyes,$valueno); if (($item eq 'usejsme') || ($item eq 'uselcmath')) { @@ -4405,23 +4350,17 @@ sub make_item_rows { $valueyes = "1"; $valueno = "0"; } - $datatable .= &yesno_radio($item,$settings,$unsetdefault,$valueyes,$valueno,$noedit); + $datatable .= &yesno_radio($item,$settings,$unsetdefault,$valueyes,$valueno); } elsif ($items->{$item}{input} eq 'selectbox') { my $curr = $settings->{$item}; $datatable .= &select_from_options($item,$items->{$item}{'order'}, $items->{$item}{'options'},$curr, - $items->{$item}{'nullval'}, - undef,undef,undef,$noedit); + $items->{$item}{'nullval'}); } elsif ($items->{$item}{input} eq 'textbox') { - my $disabled; - if ($noedit) { - $disabled = ' disabled=disabled"'; - } $datatable .= &Apache::lonhtmlcommon::textbox($item,$settings->{$item}, - $items->{$item}{size}, - $disabled); + $items->{$item}{size}); } $datatable .= &item_table_row_end(); } @@ -4433,7 +4372,7 @@ sub make_item_rows { } sub nothidepriv_row { - my ($cdom,$item,$settings,$crstype,$noedit) = @_; + my ($cdom,$item,$settings,$crstype) = @_; my ($cnum) = &get_course(); my ($datatable,%nothide,@checkdoms); if (ref($settings) eq 'HASH') { @@ -4447,7 +4386,7 @@ sub nothidepriv_row { } } if ($settings->{'checkforpriv'}) { - @checkdoms = split(/,/,$settings->{'checkforpriv'}); + @checkdoms = split(/,/,$settings->{'checkforpriv'}); } } push(@checkdoms,$cdom); @@ -4461,7 +4400,7 @@ sub nothidepriv_row { if ($end == -1 || $start == -1) { next; } - foreach my $dom (@checkdoms) { + foreach my $dom (@checkdoms) { if (&Apache::lonnet::privileged($uname,$udom,\@checkdoms,['dc','su'])) { unless (grep(/^\Q$user\E$/,@privusers)) { push(@privusers,$user); @@ -4470,10 +4409,6 @@ sub nothidepriv_row { } } if (@privusers > 0) { - my $disabled; - if ($noedit) { - $disabled = ' disabled="disabled"'; - } $datatable .= '<table align="right">'; foreach my $user (sort(@privusers)) { my $hideon = ' checked="checked" '; @@ -4490,9 +4425,9 @@ sub nothidepriv_row { '</td><td align="left">'. '<span class="LC_nobreak"><label>'. '<input type="radio" name="'.$item.'_'.$user.'"'. - $hideon.' value=""'.$disabled.' />'.&mt('Hidden').'</label> '. + $hideon.' value="" />'.&mt('Hidden').'</label> '. '<label><input type="radio" name="'.$item.'_'.$user.'"'. - $hideoff.' value="yes"'.$disabled.' />'.&mt('Shown').'</label></span></td>'. + $hideoff.' value="yes" />'.&mt('Shown').'</label></span></td>'. '</tr>'; } $datatable .= '</table>'; @@ -4507,7 +4442,7 @@ sub nothidepriv_row { } sub checkforpriv_row { - my ($cdom,$item,$settings,$crstype,$noedit) = @_; + my ($cdom,$item,$settings,$crstype) = @_; my $datatable; my %domains=map { $_ => 1; } &Apache::lonnet::all_domains(); if (keys(%domains) == 1) { @@ -4520,24 +4455,19 @@ sub checkforpriv_row { if ($settings->{$item} eq '') { $datatable = '</td><td align="right">'. &Apache::loncommon::select_dom_form('','checkforpriv_'.$num, - 1,1,undef,undef,\@excdoms, - $noedit); + 1,1,undef,undef,\@excdoms); } else { my @privdoms = split(/,/,$settings->{$item}); my %domains=map { $_ => 1; } &Apache::lonnet::all_domains(); $datatable = '</td><td align="right"><br />'. &Apache::loncommon::start_data_table(); - my $disabled; - if ($noedit) { - $disabled = ' disabled="disabled"'; - } if (@privdoms > 0) { foreach my $currdom (@privdoms) { next unless ($domains{$currdom}); my $domdesc = &Apache::lonnet::domain($currdom,'description'); if ($domdesc eq '') { $domdesc = $currdom; - } + } $datatable .= &Apache::loncommon::start_data_table_row(). '<td align="left"><span class="LC_nobreak">'. @@ -4545,22 +4475,22 @@ sub checkforpriv_row { '</b><input type="hidden" name="checkforpriv_'.$num. '" value="'.$currdom.'" /></span><br />'. '<span class="LC_nobreak"><label><input type="checkbox" '. - 'name="checkforpriv_delete" value="'.$num.'"'.$disabled.' />'. + 'name="checkforpriv_delete" value="'.$num.'" />'. &mt('Delete').'</label></span></td>'. &Apache::loncommon::end_data_table_row(); $num ++; - unless (grep(/^\Q$currdom\E$/,@excdoms)) { + unless (grep(/^\Q$currdom\E$/,@excdoms)) { push(@excdoms,$currdom); } } } if ((scalar(keys(%domains)) - scalar(@excdoms)) > 0) { - $datatable .= + $datatable .= &Apache::loncommon::start_data_table_row(). '<td align="left"><span class="LC_nobreak">'. &mt('Additional domain:'). '</span><br />'. &Apache::loncommon::select_dom_form('','checkforpriv_'.$num,1, - 1,undef,undef,\@excdoms,$noedit). + 1,undef,undef,\@excdoms). '</td>'.&Apache::loncommon::end_data_table_row(); } $datatable .= &Apache::loncommon::end_data_table(). @@ -4571,7 +4501,7 @@ sub checkforpriv_row { } sub print_hdrfmt_row { - my ($item,$settings,$noedit) = @_; + my ($item,$settings) = @_; my @curr; my $currnum = 0; my $maxnum = 2; @@ -4644,43 +4574,36 @@ function getIndexByName(item) { ENDJS $output .= '</td><td align="right"><br />'. $currstr.'<table class="LC_data_table">'; - my $disabled; - if ($noedit) { - $disabled = ' disabled="disabled"'; - } if (@curr > 0) { for (my $i=0; $i<@curr; $i++) { my $pos = $i+1; $output .= '<tr>'. '<td align="left"><span class="LC_nobreak">'. - &position_selector($pos,$i,$maxnum,$disabled).&mt('Delete:'). + &position_selector($pos,$i,$maxnum).&mt('Delete:'). '<input type="checkbox" name="printfmthdr_del_'.$i. - '"'.$disabled.' /></span></td>'; + '" /></span></td>'; if ($curr[$i] =~ /^%\d*[nca]$/) { my ($limit,$subst) = ($curr[$i] =~ /^%(\d*)([nca])$/); $output .= '<td align="left">'. - &substitution_selector($i,$subst,$limit,$disabled).'</td>'; + &substitution_selector($i,$subst,$limit).'</td>'; } else { $output .= '<td colspan="2" align="left">'.&mt('Text').'<br />'. '<input type="textbox" name="printfmthdr_text_'.$i.'"'. - ' value="'.$curr[$i].'" size="25"'.$disabled.' /></td>'; + ' value="'.$curr[$i].'" size="25" /></td>'; } $output .= '</tr>'; } } my $pos = $currnum+1; - unless ($noedit) { - $output .= - '<tr>'. + $output .= '<tr>'. '<td align="left"><span class="LC_nobreak">'. &position_selector($pos,$currnum,$maxnum). '<b>'.&mt('New').'</b></span></td><td align="left">'. &substitution_selector($currnum).'</td>'. '</tr>'; - $pos ++; - $currnum ++; - $output .= - '<tr>'. + $pos ++; + $currnum ++; + $output .= '<tr>'. '<td align="left"><span class="LC_nobreak">'. &position_selector($pos,$currnum,$maxnum). '<b>'.&mt('New').'</b></span></td>'. @@ -4689,15 +4612,14 @@ ENDJS '" value="" size ="25" />'. '<input type="hidden" name="printfmthdr_maxnum" value="'. $maxnum.'" /></td>'. - '</tr>'; - } - $output .= '</table><br />'; + '</tr>'. + '</table><br />'; return $output; } sub position_selector { - my ($pos,$num,$maxnum,$disabled) = @_; - my $output = '<select name="printfmthdr_pos_'.$num.'" onchange="reOrder('."'$num'".');"'.$disabled.'>'; + my ($pos,$num,$maxnum) = @_; + my $output = '<select name="printfmthdr_pos_'.$num.'" onchange="reOrder('."'$num'".');">'; for (my $j=1; $j<=$maxnum; $j++) { my $sel = ''; if ($pos == $j) { @@ -4711,7 +4633,7 @@ sub position_selector { } sub substitution_selector { - my ($num,$subst,$limit,$crstype,$disabled) = @_; + my ($num,$subst,$limit,$crstype) = @_; my ($stunametxt,$crsidtxt); if ($crstype eq 'Community') { $stunametxt = 'member name'; @@ -4726,7 +4648,7 @@ sub substitution_selector { a => 'assignment note', ); my $output .= &mt('Substitution').'<br />'. - '<select name="printfmthdr_sub_'.$num.'"'.$disabled.'>'; + '<select name="printfmthdr_sub_'.$num.'">'; if ($subst eq '') { $output .= '<option value="" selected="selected"> </option>'; } @@ -4740,7 +4662,7 @@ sub substitution_selector { } $output .= '</select></td><td align="left">'.&mt('Size limit').'<br />'. '<input type="textbox" name="printfmthdr_limit_'.$num. - '" value="'.$limit.'" size="5"'.$disabled.' /></span>'; + '" value="'.$limit.'" size="5" /></span>'; return $output; }