--- loncom/interface/courseprefs.pm 2016/10/11 22:58:55 1.80 +++ loncom/interface/courseprefs.pm 2018/01/02 14:43:17 1.85 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set configuration settings for a course # -# $Id: courseprefs.pm,v 1.80 2016/10/11 22:58:55 raeburn Exp $ +# $Id: courseprefs.pm,v 1.85 2018/01/02 14:43:17 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1978,7 +1978,10 @@ sub print_courseinfo { unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { return; } - my ($cathash,$categoriesform,$autocoowner,$clonedefaults); + my ($cathash,$categoriesform,$autocoowner,$clonedefaults,$disabled); + if ($noedit) { + $disabled = ' disabled="disabled"'; + } my %domconf = &Apache::lonnet::get_dom('configuration', ['coursecategories','autoenroll','coursedefaults'],$cdom); @@ -1987,7 +1990,7 @@ sub print_courseinfo { if (ref($cathash) eq 'HASH') { $categoriesform = &Apache::loncommon::assign_categories_table($cathash, - $settings->{'categories'},$crstype)."\n"; + $settings->{'categories'},$crstype,$disabled)."\n"; } } if (ref($domconf{'autoenroll'}) eq 'HASH') { @@ -2054,14 +2057,20 @@ 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). + '". + &mt('Select Map').'
'. + &mt('Modification may make assessment data inaccessible!'). + ''; + $editsyllabus = &mt('[_1]Edit[_2]','', + ''); + } my %items = ( 'url' => { - text => ''.&mt($itemtext->{'url'}).''.(' 'x2). - '". - &mt('Select Map').'
'. - &mt('Modification may make assessment data inaccessible!'). - '', + text => ''.&mt($itemtext->{'url'}).''.$editmap, input => 'textbox', size => '55', advanced => 1 @@ -2106,8 +2115,7 @@ sub print_courseinfo { 'externalsyllabus' => { text => ''.&mt($itemtext->{'externalsyllabus'}).'
'. &mt('(Syllabus type in use)').(' ' x2). - &mt('[_1]Edit[_2]','', - ''), + $editsyllabus, }, 'hidefromcat' => { text => ''.&mt($itemtext->{'hidefromcat'}).'
'. @@ -2129,10 +2137,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') { @@ -2576,7 +2580,7 @@ sub display_loncaparev_constraints { $Apache::lonrelrequtils::checkcrstypes{$crstype}).''; } my (%fromparam,%rowspan,%bymap,%byresource,@scopeorder,%toshow,%allmaps, - %byresponsetype,%bysubmission,%fromblocks); + %byresponsetype,%bysubmission,%fromblocks,%bycrsrestype); @scopeorder = ('all','section/group','user'); my $now = time; my $resourcedata = &Apache::lonparmset::readdata($cnum,$cdom); @@ -2850,15 +2854,22 @@ sub display_loncaparev_constraints { my $rev_anonsurv=$Apache::lonnet::needsrelease{'parameter:type:anonsurvey::'}; my %randtrysubms=&Apache::lonnet::dump('nohist_randomizetry',$cdom,$cnum); my $rev_randtry=$Apache::lonnet::needsrelease{'parameter:type:randomizetry::'}; + my $rev_exttool=$Apache::lonnet::needsrelease{'course:courserestype:exttool'}; my $stdtype=&Apache::lonparmset::standard_parameter_types('type'); my $stdname=&Apache::lonparmset::standard_parameter_names('type'); my $valanon=&get_param_description($stdtype,'anonsurvey'); my $valrandtry=&get_param_description($stdtype,'randomizetry'); my %checkedrev; - foreach my $res ($navmap->retrieveResources(undef,sub { $_[0]->is_problem() },1,0)) { + foreach my $res ($navmap->retrieveResources(undef,sub { $_[0]->is_problem() || $_[0]->is_tool() },1,0)) { my @parts = @{$res->parts()}; my $symb = $res->symb(); my $enclosing_map = &Apache::lonnet::declutter($res->enclosing_map_src()); + if ($res->is_tool()) { + my $rev = $rev_exttool; + $bycrsrestype{$symb}{$rev} = &mt('External Tool'); + $allmaps{$enclosing_map} = 1; + next; + } foreach my $part (@parts) { if (exists($anonsubms{$symb."\0".$part})) { my $rev = $rev_anonsurv; @@ -2962,7 +2973,7 @@ sub display_loncaparev_constraints { $r->print($output); if (defined($navmap)) { &show_contents_view($r,$navmap,$cid,\%toshow,\%bymap,\%byresource,\%bysubmission, - \%byresponsetype,\@scopeorder,\%lt); + \%byresponsetype,\%bycrsrestype,\@scopeorder,\%lt); } $r->print('

'); } else { @@ -2980,9 +2991,10 @@ sub display_loncaparev_constraints { sub show_contents_view { my ($r,$navmap,$cid,$toshow,$bymap,$byresource,$bysubmission,$byresponsetype, - $scopeorder,$lt) = @_; + $bycrsrestype,$scopeorder,$lt) = @_; if ((keys(%{$toshow}) > 0) || (keys(%{$byresource}) > 0) || - (keys(%{$bysubmission}) > 0) || (keys(%{$byresponsetype}) > 0)) { + (keys(%{$bysubmission}) > 0) || (keys(%{$byresponsetype}) > 0) || + (keys(%{$bycrsrestype}) > 0)) { my $location=&Apache::loncommon::lonhttpdurl("/adm/lonIcons"); my $whitespace = ''; my $icon = ''; @@ -3046,6 +3058,9 @@ sub show_contents_view { if (ref($byresponsetype->{$symb}) eq 'HASH') { $rowspan += scalar(keys(%{$byresponsetype->{$symb}})); } + if (ref($bycrsrestype->{$symb}) eq 'HASH') { + $rowspan += scalar(keys(%{$bycrsrestype->{$symb}})); + } next if (!$rowspan); $icon = ''.
                             &mt('Problem').''; @@ -3110,6 +3125,15 @@ sub show_contents_view { $r->print(''); } $r->print(&Apache::loncommon::end_data_table_row()); + $newrow = 1; + } + if (ref($bycrsrestype->{$symb}) eq 'HASH') { + foreach my $rev (sort(keys(%{$bycrsrestype->{$symb}}))) { + if ($newrow) { + $r->print(&Apache::loncommon::continue_data_table_row()); + } + $r->print(''.$rev.''.$bycrsrestype->{$symb}{$rev}.''); + } } } } @@ -3953,7 +3977,7 @@ sub set_discussion_fonts { ($currsize,$currunit) = ($1,$2); $curr{'size'} = $currunit; } - $output .= ''. + $output .= ''. ' '; $selitem = 'unit'; } @@ -4662,8 +4686,8 @@ sub checkforpriv_row { '
'. ''. + 'name="checkforpriv_delete" value="'.$num.'"'.$disabled.' />'. + &mt('Delete').''. &Apache::loncommon::end_data_table_row(); $num ++; unless (grep(/^\Q$currdom\E$/,@excdoms)) { @@ -4795,8 +4819,8 @@ ENDJS &substitution_selector($currnum).''. ''; $pos ++; - $currnum ++; - $output .= + $currnum ++; + $output .= ''. ''. &position_selector($pos,$currnum,$maxnum). @@ -4857,7 +4881,7 @@ sub substitution_selector { } $output .= ''.&mt('Size limit').'
'. '
'; + '" value="'.$limit.'" size="5"'.$disabled.' />'; return $output; }