--- loncom/interface/courseprefs.pm 2016/10/24 18:10:08 1.49.2.21 +++ loncom/interface/courseprefs.pm 2014/06/13 01:48:26 1.67 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set configuration settings for a course # -# $Id: courseprefs.pm,v 1.49.2.21 2016/10/24 18:10:08 raeburn Exp $ +# $Id: courseprefs.pm,v 1.67 2014/06/13 01:48:26 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). @@ -217,7 +217,6 @@ use Apache::lonhtmlcommon(); use Apache::lonconfigsettings; use Apache::lonrelrequtils; use Apache::lonparmset; -use Apache::courseclassifier; use Apache::lonlocal; use LONCAPA qw(:DEFAULT :match); @@ -235,9 +234,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 +309,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 +343,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 +381,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'}, @@ -464,15 +463,13 @@ sub handler { help => 'Course_Prefs_Display', ordered => ['default_xml_style','pageseparators', 'disable_receipt_display','texengine', - 'tthoptions','uselcmath','usejsme'], + 'tthoptions'], itemtext => { default_xml_style => 'Default XML style file', pageseparators => 'Visibly Separate Items on Pages', disable_receipt_display => 'Disable display of problem receipts', texengine => 'Force use of a specific math rendering engine', tthoptions => 'Default set of options to pass to tth/m when converting TeX', - uselcmath => 'Student formula entry uses inline preview, not DragMath pop-up', - usejsme => 'Molecule editor uses JSME (HTML5) in place of JME (Java)', }, }, 'grading' => @@ -493,7 +490,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 +532,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'})) { - my $jscript = &get_jscript($cid,$cdom,$phase,$crstype,\%values); + $cnum,undef,\@allitems,'coursepref'); + } elsif ($phase eq 'display') { + my $jscript = &get_jscript($cid,$cdom,$phase,$crstype); 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 +566,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 = ' @@ -641,9 +603,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 .= '
@@ -664,7 +626,7 @@ sub print_config_box { $output .= &mt($item->{'header'}->[1]->{'col2'}).' '; if ($action eq 'classlists') { - $output .= &print_classlists('middle',$cdom,$settings,$itemtext,\$rowtotal,$crstype,$noedit). + $output .= &print_classlists('middle',$cdom,$settings,$itemtext,\$rowtotal,$crstype). ' @@ -703,27 +665,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 .= ' @@ -822,7 +784,7 @@ sub process_changes { my @clonedoms; if (exists($env{'form.cloners_activate'})) { my $actnum = $env{'form.cloners_activate'}; - if ($actnum ne '-1') { + if ($actnum ne '') { if ($env{'form.cloners_dom_'.$actnum} ne '') { my $clonedom = $env{'form.cloners_dom_'.$actnum}; if (&check_clone($clonedom,$disallowed) eq 'ok') { @@ -840,7 +802,7 @@ sub process_changes { my $clonedom = $env{'form.cloners_dom_'.$i}; if (&check_clone($clonedom,$disallowed) eq 'ok') { if (!grep(/^\*:\Q$clonedom\E$/,@clonedoms)) { - push(@clonedoms,'*:'.$clonedom); + push (@clonedoms,'*:'.$clonedom); } } } @@ -886,37 +848,6 @@ sub process_changes { } } } - if (ref($values) eq 'HASH') { - my (@code_order,%codedefaults); - &Apache::lonnet::auto_instcode_defaults($cdom,\%codedefaults, - \@code_order); - my $clonebycode; - if ($env{'form.cloners_instcode'}) { - if (@code_order > 0) { - my @standardnames = &Apache::loncommon::get_standard_codeitems(); - my %local_to_standard; - for (my $i=0; $i<@code_order; $i++) { - $local_to_standard{$code_order[$i]} = $standardnames[$i]; - } - foreach my $item (@code_order) { - my $key = $local_to_standard{$item}; - if ($key ne '') { - if ($env{'form.'.$key}) { - $clonebycode .= $key.'='.&escape($env{'form.'.$key}).'&'; - } - } - } - $clonebycode =~ s/\&$//; - } - } - if ($clonebycode) { - if ($newvalues{$entry}) { - $newvalues{$entry} .= ','.$clonebycode; - } else { - $newvalues{$entry} = $clonebycode; - } - } - } } if (ref($disallowed) eq 'HASH') { if (ref($disallowed->{'cloners'}) eq 'HASH') { @@ -1116,14 +1047,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 +1062,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 +1071,7 @@ sub process_changes { } if ($fontchange) { $changes->{$entry} = 1; - } + } } elsif ($entry eq 'nothideprivileged') { my @curr_nothide; my @new_nothide; @@ -1215,7 +1146,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 +1162,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; @@ -1474,7 +1405,7 @@ sub store_changes { $displayval = &Apache::lonlocal::locallocaltime($displayval); } elsif ($key eq 'categories') { $displayval = $env{'form.categories_display'}; - } elsif (($key eq 'canuse_pdfforms') || ($key eq 'usejsme') || ($key eq 'uselcmath')) { + } elsif ($key eq 'canuse_pdfforms') { if ($changes->{$item}{$key} eq '1') { $displayval = &mt('Yes'); } elsif ($changes->{$item}{$key} eq '0') { @@ -1751,93 +1682,12 @@ sub get_course { } sub get_jscript { - my ($cid,$cdom,$phase,$crstype,$settings) = @_; + my ($cid,$cdom,$phase,$crstype) = @_; my ($can_toggle_cat,$can_categorize) = &can_modify_catsettings($cdom,$crstype); - my ($jscript,$categorize_js,$loncaparev_js,$instcode_js); + my ($jscript,$categorize_js,$loncaparev_js); my $stubrowse_js = &Apache::loncommon::studentbrowser_javascript(); my $browse_js = &Apache::loncommon::browser_and_searcher_javascript('parmset'); my $cloners_js = &cloners_javascript($phase); - my @code_order; - if ($crstype ne 'Community') { - if (ref($settings) eq 'HASH') { - my %codedefaults; - &Apache::lonnet::auto_instcode_defaults($cdom,\%codedefaults, - \@code_order); - if (@code_order > 0) { - if ($phase eq 'display') { - my @actions = &Apache::loncommon::get_env_multiple('form.actions'); - if (grep(/^courseinfo$/,@actions)) { - if ($settings->{'cloners'} ne '') { - unless ($settings->{'cloners'} eq '*') { - my @cloners = split(/,/,$settings->{'cloners'}); - my @standardnames = &Apache::loncommon::get_standard_codeitems(); - my %local_to_standard; - for (my $i=0; $i<@code_order; $i++) { - $local_to_standard{$code_order[$i]} = $standardnames[$i]; - } - foreach my $cloner (@cloners) { - if (($cloner !~ /^\Q*:\E$match_domain$/) && - ($cloner !~ /^$match_username\:$match_domain$/)) { - foreach my $item (split(/\&/,$cloner)) { - my ($key,$val) = split(/\=/,$item); - $val = &unescape($val); - foreach my $code (@code_order) { - if ($key eq $local_to_standard{$code}) { - $env{'form.'.$key} = $val; - } - } - } - } - } - } - } - } - } - my @codetitles; - (undef,$instcode_js) = - &Apache::courseclassifier::instcode_selectors($cdom,'display',undef, - \@codetitles); - $instcode_js .= <'."\n". ''."\n".$stubrowse_js."\n"; return $jscript; @@ -1916,7 +1766,7 @@ function update_cloners(caller,num) { if (document.$formname.cloners_activate[i].value == '0') { document.$formname.cloners_activate[i].checked = false; } - if (document.$formname.cloners_activate[i].value == '-1') { + if (document.$formname.cloners_activate[i].value == '') { document.$formname.cloners_activate[i].checked = true; } } @@ -1969,14 +1819,13 @@ 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); + my ($cathash,$categoriesform,$autocoowner); my %domconf = - &Apache::lonnet::get_dom('configuration', - ['coursecategories','autoenroll','coursedefaults'],$cdom); + &Apache::lonnet::get_dom('configuration',['coursecategories','autoenroll'],$cdom); if (ref($domconf{'coursecategories'}) eq 'HASH') { $cathash = $domconf{'coursecategories'}{'cats'}; if (ref($cathash) eq 'HASH') { @@ -1988,58 +1837,10 @@ sub print_courseinfo { if (ref($domconf{'autoenroll'}) eq 'HASH') { $autocoowner = $domconf{'autoenroll'}{'co-owners'}; } - my ($currcanclone,@code_order,$cloner_instcode); - my %codedefaults; - &Apache::lonnet::auto_instcode_defaults($cdom,\%codedefaults, - \@code_order); - if ($settings->{'cloners'}) { - unless ($settings->{'cloners'} eq '*') { - my @currclone = split(/,/,$settings->{'cloners'}); - foreach my $item (@currclone) { - unless ($item eq '*') { - if (($item !~ /\:/) && ($item =~ /=/)) { - $cloner_instcode = 1; - } - } - } - } - } - if (ref($domconf{'coursedefaults'}) eq 'HASH') { - my $canclone = $domconf{'coursedefaults'}{'canclone'}; - if (ref($canclone) eq 'HASH') { - if (ref($canclone->{'instcode'}) eq 'ARRAY') { - if ($settings->{'internal.coursecode'}) { - my @posscodes; - if (@code_order > 0) { - $currcanclone = 'instcode'; - foreach my $item (@{$canclone->{'instcode'}}) { - if (grep(/^\Q$item\E$/,@code_order)) { - push(@posscodes,$item); - } - } - my $codestr = join(' + ',@posscodes); - $clonedefaults = &mt('Default for official courses is to also allow cloning if [_1] match in cloner and cloned.', - '"'.$codestr.'"').'
'; - } - } - } - } elsif ($canclone eq 'domain') { - $clonedefaults = &mt('Default is for any course requester in [_1] domain to be able to clone.', - ''.$cdom.'').'
'; - $currcanclone = 'domain'; - } - if ($clonedefaults) { - if ($settings->{'cloners'} ne '') { - $clonedefaults .= '
'.&mt('Default does [_1]not[_2] currently apply because values have been set in the course.','',''); - } else { - $clonedefaults .= &mt('Default is disregarded if [_1]any[_2] values are set here in the course.','',''); - } - $clonedefaults = '

'.$clonedefaults; - } - } if (!defined($categoriesform)) { $categoriesform = &mt('No categories defined in this domain.'); } + my ($can_toggle_cat,$can_categorize) = &can_modify_catsettings($cdom,$crstype); my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; @@ -2086,8 +1887,7 @@ sub print_courseinfo { }, 'cloners' => { text => ''.&mt($itemtext->{'cloners'}).'
'. - &mt('Owner and Coordinators included automatically'). - $clonedefaults, + &mt('Owner and Coordinators included automatically'), input => 'textbox', size => '40' }, @@ -2124,10 +1924,6 @@ sub print_courseinfo { ); my $datatable; my $count = 0; - my $disabled; - if ($noedit) { - $disabled = ' disabled="disabled"'; - } foreach my $item (@{$ordered}) { my $colspan; if ($item eq 'hidefromcat') { @@ -2138,7 +1934,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) { @@ -2147,7 +1943,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; @@ -2161,14 +1957,13 @@ sub print_courseinfo { $datatable .= ' checked="checked" '; } $datatable .= 'onchange="javascript:update_cloners('. - "'cloners_all'".');"'.$disabled.' />'.&mt('Yes').''. - (' 'x2).''. + (' 'x2).'{$item} ne '*') { $datatable .= ' checked="checked" '; } $datatable .= ' onchange="javascript:update_cloners('. - "'cloners_all'".');"'.$disabled.' />'.&mt('No').''. + "'cloners_all'".');"/>'.&mt('No').''. &Apache::loncommon::end_data_table_row(). &Apache::loncommon::end_data_table(). ''. &Apache::loncommon::end_data_table_row(); $num ++; @@ -2226,8 +2015,7 @@ sub print_courseinfo { ''.&Apache::loncommon::end_data_table_row(). &Apache::loncommon::end_data_table(). @@ -2239,40 +2027,9 @@ sub print_courseinfo { &mt('Specific users').' ('. &mt('user:domain,user:domain').')
'. &Apache::lonhtmlcommon::textbox($item,$cloners_str, - $items{$item}{'size'},$disabled). + $items{$item}{'size'}). ''.&Apache::loncommon::end_data_table_row(). &Apache::loncommon::end_data_table(); - if (@code_order > 0) { - my (%cat_items,@codetitles,%cat_titles,%cat_order); - my ($jscript,$totcodes,$numtitles,$lasttitle) = - &Apache::courseclassifier::instcode_selectors_data($cdom,'display', - \%cat_items,\@codetitles, - \%cat_titles,\%cat_order); - my $showncodes = 'off'; - my $checkedoff = ' checked="checked"'; - my $checkedon = ''; - if ($cloner_instcode) { - $checkedon = $checkedoff; - $checkedoff = ''; - $showncodes = 'on'; - } - $datatable .= '
'.&mt('Or'). @@ -2176,13 +1971,7 @@ 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); - } + $datatable .= &new_cloners_dom_row($cdom,'0'); } elsif ($settings->{$item} ne '*') { my @entries = split(/,/,$settings->{$item}); if (@entries > 0) { @@ -2203,7 +1992,7 @@ sub print_courseinfo { '
'. '
'. $add_domtitle.'
'. &Apache::loncommon::select_dom_form('','cloners_newdom', - $includeempty,undef,undef, - undef,undef,$noedit). + $includeempty). ''. '
'.&mt('And'). - '
'. - &Apache::loncommon::start_data_table(). - &Apache::loncommon::start_data_table_row(). - ''. - &mt('Cloning by official course(s) based on course category').(' 'x2). - ''. - (' '). - ''. - &Apache::courseclassifier::build_instcode_selectors($numtitles, - $lasttitle,\%cat_items,\@codetitles,\%cat_titles,\%cat_order, - $showncodes,'LC_cloners_instcodes','LC_cloners_instcode',$noedit). - ''.&Apache::loncommon::end_data_table_row(). - &Apache::loncommon::end_data_table(); - } } elsif ($item eq 'rolenames') { $datatable .= ''. &Apache::loncommon::start_data_table(); @@ -2290,17 +2047,12 @@ sub print_courseinfo { ''. &Apache::lonhtmlcommon::textbox('rolenames_'.$role, $settings->{$role.'.plaintext'}, - $items{$item}{size},$disabled).''. + $items{$item}{size}).''. &Apache::loncommon::end_data_table_row(); } $datatable .= &Apache::loncommon::end_data_table().''; } 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 .= ''. &Apache::lonhtmlcommon::textbox($item.'_display',$settings->{$item}, $items{$item}{size},$launcher); @@ -2321,12 +2073,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; } @@ -2340,13 +2092,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') { @@ -2373,12 +2125,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]', '', - ''); + ''); } elsif ($item eq 'loncaparev') { my $loncaparev = $env{'course.'.$env{'request.course.id'}.'.internal.releaserequired'}; my $showreqd; @@ -2390,7 +2142,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(); } @@ -2399,24 +2151,19 @@ sub print_courseinfo { } sub new_cloners_dom_row { - my ($newdom,$num,$default) = @_; - my ($output,$checkedon,$checkedoff); + my ($newdom,$num) = @_; + my $output; if ($newdom ne '') { - if ($num eq $default) { - $checkedon = 'checked="checked" '; - } else { - $checkedoff = 'checked="checked" '; - } $output .= &Apache::loncommon::start_data_table_row(). ''. &mt('Any user in domain:').' '.$newdom.''. (' 'x2).''.(' 'x2). ' @@ -2554,7 +2300,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'}; @@ -2587,8 +2333,8 @@ sub display_loncaparev_constraints { } else { $value = ''; } - } elsif ($item eq 'printstartdate') { - if ($value =~ /^\d+$/) { + } elsif ($item eq 'printstartdate') { + if ($value =~ /^\d+$/) { if ($value > $now) { $value = 'future'; } @@ -2599,7 +2345,6 @@ sub display_loncaparev_constraints { $value = 'past'; } } - } my ($middle,$scope,$which,$level,$map,$resource); if (grep(/^\Q$value\E$/,@{$Apache::lonrelrequtils::checkparms{$item}})) { @@ -2780,7 +2525,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(). ''.$rev.''.$lt{$type}.''; @@ -2860,7 +2605,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; } @@ -2879,9 +2624,9 @@ sub display_loncaparev_constraints { } foreach my $map (keys(%allmaps)) { my $mapres = $navmap->getResourceByUrl($map); + my $mapsymb = $mapres->symb(); + $toshow{$mapsymb} = 1; if (ref($mapres)) { - my $mapsymb = $mapres->symb(); - $toshow{$mapsymb} = 1; my $pcslist = $mapres->map_hierarchy(); if ($pcslist ne '') { foreach my $pc (split(/,/,$pcslist)) { @@ -3073,13 +2818,8 @@ 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; if (ref($bymap->{$url}) eq 'HASH') { foreach my $rev (sort(keys(%{$bymap->{$url}}))) { - if ($newrow) { - $r->print(&Apache::loncommon::end_data_table_row(). - &Apache::loncommon::continue_data_table_row()); - } $r->print(''.$rev.''); if (ref($bymap->{$url}{$rev}) eq 'HASH') { $r->print(''); @@ -3101,7 +2841,6 @@ sub releases_by_map { $r->print('
'); } $r->print(''); - $newrow = 1; } } else { $r->print(' '); @@ -3158,20 +2897,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))) { @@ -3189,7 +2921,7 @@ sub coowner_invitations { ''.&mt('Current co-owners').''; foreach my $person (@currcoown) { my ($co_uname,$co_dom) = split(':',$person); - $output .= ''.(' 'x2).' '; + $output .= ''.(' 'x2).' '; } $output .= ''. &Apache::loncommon::end_data_table_row(); @@ -3199,7 +2931,7 @@ sub coowner_invitations { ''.&mt('Invited as co-owners [_1](agreement pending)','
').'
'; foreach my $person (@pendingcoown) { my ($co_uname,$co_dom) = split(':',$person); - $output .= ''.(' 'x2).' '; + $output .= ''.(' 'x2).' '; } $output .= ''. &Apache::loncommon::end_data_table_row(); @@ -3209,7 +2941,7 @@ sub coowner_invitations { ''.&mt('Invite other Coordinators [_1]to become co-owners','
').'
'; foreach my $person (@othercoords) { my ($co_uname,$co_dom) = split(':',$person); - $output .= ''.(' 'x2).' '; + $output .= ''.(' 'x2).' '; } $output .= ''. &Apache::loncommon::end_data_table_row(); @@ -3222,20 +2954,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'}; @@ -3267,8 +2992,8 @@ sub manage_coownership { if ($is_coowner) { $output .= &mt('You are currently a co-owner:').' '; } else { - $output .= &mt('The course owner has invited you to become a co-owner:').' '.(' 'x2). - ''; + $output .= &mt('The course owner has invited you to become a co-owner:').' '.(' 'x2). + ''; } $output .= '
'; if (@currcoown) { @@ -3282,7 +3007,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; } @@ -3301,16 +3026,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') { @@ -3318,7 +3040,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(); @@ -3328,13 +3050,11 @@ sub print_localization { } $datatable .= &Apache::loncommon::select_datelocale($item,$currdatelocale, - undef,$includeempty,$disabled); + undef,$includeempty); } else { if ($settings->{$item} eq '') { - unless ($noedit) { - $datatable .= ''. - &Apache::loncommon::select_language('languages_0','',1); - } + $datatable .= ''. + &Apache::loncommon::select_language('languages_0','',1); } else { my $num = 0; my @languages = split(/\s*[,;:]\s*/,$settings->{$item}); @@ -3354,22 +3074,19 @@ sub print_localization { '
'. ''. &Apache::loncommon::end_data_table_row(); $num ++; } } - unless ($noedit) { - $datatable .= - &Apache::loncommon::start_data_table_row(). + $datatable .= &Apache::loncommon::start_data_table_row(). ''. &mt('Additional language:'). '
'. &Apache::loncommon::select_language('languages_'.$num,'',1). ''. - ''.&Apache::loncommon::end_data_table_row(); - } - $datatable .= &Apache::loncommon::end_data_table().'
'; + ''.&Apache::loncommon::end_data_table_row(). + &Apache::loncommon::end_data_table().'
'; } } $datatable .= &item_table_row_end(); @@ -3390,7 +3107,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; } @@ -3425,10 +3142,7 @@ sub print_feedback { del => 'Delete?', sec => 'Sections:', ); - my $disabled; - if ($noedit) { - $disabled = ' disabled="disabled"'; - } + foreach my $item (@{$ordered}) { $count ++; if ($position eq 'top') { @@ -3438,12 +3152,12 @@ sub print_feedback { } if ($position eq 'top') { my $includeempty = 0; - $datatable .= ''. - &user_table($cdom,$item,\@sections, - $settings->{$item},\%lt,$noedit); + $datatable .= ''. + &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(); } @@ -3452,21 +3166,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 .= ''; 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)(\(?[^\)]*\)?)$/); @@ -3478,7 +3186,7 @@ sub user_table { $currusers .= ''. ''; @@ -3507,16 +3215,12 @@ sub user_table { '
'. ''. ''.(' 'x2). @@ -3489,7 +3197,7 @@ sub user_table { if (@{$sections}) { $currusers.= (' 'x3).$lt->{'sec'}.' '. &select_sections($item,$num,$sections, - \@selsec,$noedit); + \@selsec); } } $currusers .= '
'.$currusers.'
'. ''; } - unless ($noedit) { - $output .= - ''. + $output .= ''. ''. $lt->{'add'}.'
'. &select_recipient($item,$num,$cdom,$sections). ''. - ''; - } - $output .= ''; + ''; } return $output; } @@ -3543,17 +3247,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; @@ -3563,7 +3264,7 @@ sub select_sections { $mult .= ' size="4"'; } } - $output = ''. ' '; foreach my $sec (@{$sections}) { my $is_sel; @@ -3579,7 +3280,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; } @@ -3641,26 +3342,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 .= ''. - ''.&role_checkboxes($cdom,$cnum,$item,$settings,undef,undef,$noedit). + '
'.&role_checkboxes($cdom,$cnum,$item,$settings). '
'; } elsif ($item eq 'plc.users.denied') { - $datatable .= ''. - &user_table($cdom,$item,undef, - $settings->{$item},\%lt,$noedit); + $datatable .= ''. + &user_table($cdom,$item,undef, + $settings->{$item},\%lt); } elsif ($item eq 'pch.roles.denied') { $datatable .= ''. - ''.&role_checkboxes($cdom,$cnum,$item,$settings,undef,undef,$noedit). + '
'.&role_checkboxes($cdom,$cnum,$item,$settings). '
'; } elsif ($item eq 'pch.users.denied') { $datatable .= ''. &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 .= '
'. &Apache::loncommon::start_data_table(). @@ -3668,7 +3369,7 @@ sub print_discussion { ''.&mt('Role').''. &mt('Sections').''. &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().'
'; } elsif ($item eq 'discussion_post_fonts') { $datatable .= '
'. @@ -3678,9 +3379,9 @@ sub print_discussion { ''.&mt('font-size').''. ''.&mt('font-weight').''. ''.&mt('font-style').''. - ''.&mt('Other css').''. + ''.&mt('Other css').''. &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().'
'; } $datatable .= &item_table_row_end(); @@ -3690,7 +3391,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'); @@ -3728,10 +3429,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)) { @@ -3750,11 +3447,11 @@ sub role_checkboxes { } } $output .= ''; if ($showsections) { $output .= ''. - &select_sections($item,$role,\@sections,$currsec{$role},$noedit). + &select_sections($item,$role,\@sections,$currsec{$role}). ''; } $count ++; @@ -3782,11 +3479,11 @@ sub role_checkboxes { } } $output .= ''; if ($showsections) { $output .= ''. - &select_sections($item,$role,\@sections,$currsec{$role},$noedit). + &select_sections($item,$role,\@sections,$currsec{$role}). ''.&Apache::loncommon::end_data_table_row(); } $total ++; @@ -3808,15 +3505,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'}) = @@ -3833,12 +3526,12 @@ sub set_discussion_fonts { ($currsize,$currunit) = ($1,$2); $curr{'size'} = $currunit; } - $output .= ''. + $output .= ''. ' '; $selitem = 'unit'; } if ((ref($styleitems) eq 'HASH') && (ref($styleitems->{$item}) eq 'ARRAY')) { - $output .= ''; foreach my $val (@{$styleitems->{$item}}) { my $sel; if ($val eq $curr{$item}) { @@ -3849,7 +3542,7 @@ sub set_discussion_fonts { } } } - $output .= ''; + $output .= ''; } $output .= &Apache::loncommon::end_data_table_row(); } @@ -3858,7 +3551,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', @@ -3881,7 +3574,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', @@ -3924,7 +3617,7 @@ sub print_classlists { 'defaultcredits' => { text => ''.&mt($itemtext->{'defaultcredits'}).'', }, - + 'nothideprivileged' => { text => ''.&mt($itemtext->{'nothideprivileged'}).'', input => 'checkbox', @@ -3955,11 +3648,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; } @@ -3992,10 +3685,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' => { @@ -4003,20 +3697,12 @@ sub print_appearance { input => 'textbox', size => 40, }, - 'uselcmath' => { - text => ''.&mt($itemtext->{'uselcmath'}).'', - input => 'radio', - }, - 'usejsme' => { - text => ''.&mt($itemtext->{'usejsme'}).'', - 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; } @@ -4027,11 +3713,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 => ''.&mt($itemtext->{'rndseed'}).''. @@ -4067,11 +3754,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; } @@ -4120,11 +3807,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; } @@ -4156,11 +3843,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; } @@ -4198,11 +3885,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; } @@ -4223,7 +3910,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 { @@ -4272,43 +3959,25 @@ sub item_table_row_end { } sub yesno_radio { - my ($item,$settings,$unsetdefault,$valueyes,$valueno,$noedit) = @_; + my ($item,$settings) = @_; my $itemon = ' '; my $itemoff = ' checked="checked" '; - if (($valueyes eq '') && ($valueno eq '')) { - $valueyes = 'yes'; - $valueno = ''; - } if (ref($settings) eq 'HASH') { - if ($settings->{$item} eq $valueyes) { + if ($settings->{$item} eq 'yes') { $itemon = $itemoff; $itemoff = ' '; } - unless (exists($settings->{$item})) { - if ($unsetdefault eq $valueyes) { - $itemon = $itemoff; - $itemoff = ' '; - } - } - } - my $disabled; - if ($noedit) { - $disabled = ' disabled="disabled"'; } return ' '. + $itemon.' value="yes" />'.&mt('Yes').' '. ''; + $itemoff.' value="" />'.&mt('No').''; } 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=''.&mt('Hidden').' '. - ''. + $hideon.' value="" />'.&mt('Hidden').' '. + ''. ''; } $datatable .= ''; @@ -4503,7 +4148,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) { @@ -4516,24 +4161,19 @@ sub checkforpriv_row { if ($settings->{$item} eq '') { $datatable = ''. &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 = '
'. &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(). ''. @@ -4541,22 +4181,22 @@ sub checkforpriv_row { '
'. ''. &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(). ''. &mt('Additional domain:'). '
'. &Apache::loncommon::select_dom_form('','checkforpriv_'.$num,1, - 1,undef,undef,\@excdoms,$noedit). + 1,undef,undef,\@excdoms). ''.&Apache::loncommon::end_data_table_row(); } $datatable .= &Apache::loncommon::end_data_table(). @@ -4567,7 +4207,7 @@ sub checkforpriv_row { } sub print_hdrfmt_row { - my ($item,$settings,$noedit) = @_; + my ($item,$settings) = @_; my @curr; my $currnum = 0; my $maxnum = 2; @@ -4640,43 +4280,36 @@ function getIndexByName(item) { ENDJS $output .= '
'. $currstr.''; - my $disabled; - if ($noedit) { - $disabled = ' disabled="disabled"'; - } if (@curr > 0) { for (my $i=0; $i<@curr; $i++) { my $pos = $i+1; $output .= ''. ''; + '" />'; if ($curr[$i] =~ /^%\d*[nca]$/) { my ($limit,$subst) = ($curr[$i] =~ /^%(\d*)([nca])$/); $output .= ''; + &substitution_selector($i,$subst,$limit).''; } else { $output .= ''; + ' value="'.$curr[$i].'" size="25" />'; } $output .= ''; } } my $pos = $currnum+1; - unless ($noedit) { - $output .= - ''. + $output .= ''. ''. ''; - $pos ++; - $currnum ++; - $output .= - ''. + $pos ++; + $currnum ++; + $output .= ''. ''. @@ -4685,15 +4318,14 @@ ENDJS '" value="" size ="25" />'. ''. - ''; - } - $output .= '
'. - &position_selector($pos,$i,$maxnum,$disabled).&mt('Delete:'). + &position_selector($pos,$i,$maxnum).&mt('Delete:'). ''. - &substitution_selector($i,$subst,$limit,$disabled).''.&mt('Text').'
'. '
'. &position_selector($pos,$currnum,$maxnum). ''.&mt('New').''. &substitution_selector($currnum).'
'. &position_selector($pos,$currnum,$maxnum). ''.&mt('New').'

'; + ''. + '
'; return $output; } sub position_selector { - my ($pos,$num,$maxnum,$disabled) = @_; - my $output = ''; for (my $j=1; $j<=$maxnum; $j++) { my $sel = ''; if ($pos == $j) { @@ -4707,7 +4339,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'; @@ -4722,7 +4354,7 @@ sub substitution_selector { a => 'assignment note', ); my $output .= &mt('Substitution').'
'. - ''; if ($subst eq '') { $output .= ''; } @@ -4736,7 +4368,7 @@ sub substitution_selector { } $output .= ''.&mt('Size limit').'
'. ''; + '" value="'.$limit.'" size="5" />'; return $output; } @@ -4754,19 +4386,17 @@ sub change_clone { foreach my $currclone (@allowclone) { if (!grep(/^$currclone$/,@$oldcloner)) { if ($currclone ne '*') { - if ($currclone =~ /:/) { - my ($uname,$udom) = split(/:/,$currclone); - if ($uname && $udom && $uname ne '*') { - if (&Apache::lonnet::homeserver($uname,$udom) ne 'no_host') { - my %currclonecrs = &Apache::lonnet::dump('environment',$udom,$uname,'cloneable'); - if ($currclonecrs{'cloneable'} !~ /\Q$clone_crs\E/) { - if ($currclonecrs{'cloneable'} eq '') { - $currclonecrs{'cloneable'} = $clone_crs; - } else { - $currclonecrs{'cloneable'} .= ','.$clone_crs; - } - &Apache::lonnet::put('environment',\%currclonecrs,$udom,$uname); + my ($uname,$udom) = split(/:/,$currclone); + if ($uname && $udom && $uname ne '*') { + if (&Apache::lonnet::homeserver($uname,$udom) ne 'no_host') { + my %currclonecrs = &Apache::lonnet::dump('environment',$udom,$uname,'cloneable'); + if ($currclonecrs{'cloneable'} !~ /\Q$clone_crs\E/) { + if ($currclonecrs{'cloneable'} eq '') { + $currclonecrs{'cloneable'} = $clone_crs; + } else { + $currclonecrs{'cloneable'} .= ','.$clone_crs; } + &Apache::lonnet::put('environment',\%currclonecrs,$udom,$uname); } } } @@ -4776,26 +4406,24 @@ sub change_clone { foreach my $oldclone (@$oldcloner) { if (!grep(/^\Q$oldclone\E$/,@allowclone)) { if ($oldclone ne '*') { - if ($oldclone =~ /:/) { - my ($uname,$udom) = split(/:/,$oldclone); - if ($uname && $udom && $uname ne '*' ) { - if (&Apache::lonnet::homeserver($uname,$udom) ne 'no_host') { - my %currclonecrs = &Apache::lonnet::dump('environment',$udom,$uname,'cloneable'); - my %newclonecrs = (); - if ($currclonecrs{'cloneable'} =~ /\Q$clone_crs\E/) { - if ($currclonecrs{'cloneable'} =~ /,/) { - my @currclonecrs = split/,/,$currclonecrs{'cloneable'}; - foreach my $crs (@currclonecrs) { - if ($crs ne $clone_crs) { - $newclonecrs{'cloneable'} .= $crs.','; - } + my ($uname,$udom) = split(/:/,$oldclone); + if ($uname && $udom && $uname ne '*' ) { + if (&Apache::lonnet::homeserver($uname,$udom) ne 'no_host') { + my %currclonecrs = &Apache::lonnet::dump('environment',$udom,$uname,'cloneable'); + my %newclonecrs = (); + if ($currclonecrs{'cloneable'} =~ /\Q$clone_crs\E/) { + if ($currclonecrs{'cloneable'} =~ /,/) { + my @currclonecrs = split/,/,$currclonecrs{'cloneable'}; + foreach my $crs (@currclonecrs) { + if ($crs ne $clone_crs) { + $newclonecrs{'cloneable'} .= $crs.','; } - $newclonecrs{'cloneable'} =~ s/,$//; - } else { - $newclonecrs{'cloneable'} = ''; } - &Apache::lonnet::put('environment',\%newclonecrs,$udom,$uname); + $newclonecrs{'cloneable'} =~ s/,$//; + } else { + $newclonecrs{'cloneable'} = ''; } + &Apache::lonnet::put('environment',\%newclonecrs,$udom,$uname); } } }