--- loncom/interface/courseclassifier.pm 2009/05/01 01:30:08 1.6 +++ loncom/interface/courseclassifier.pm 2010/07/08 23:19:19 1.9 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Utilities for classifying courses based on institutional code # -# $Id: courseclassifier.pm,v 1.6 2009/05/01 01:30:08 raeburn Exp $ +# $Id: courseclassifier.pm,v 1.9 2010/07/08 23:19:19 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -445,7 +445,7 @@ END } sub instcode_selectors_data { - my ($codedom,$formname,$cat_items,$codetitles,$cat_titles,$cat_order) = @_; + my ($codedom,$formname,$cat_items,$codetitles,$cat_titles,$cat_order,$officialjs) = @_; my ($jscript,%coursecodes,%codes,%idlist,%idnums,%idlist_titles, %by_year,%by_sem,%by_dept); my ($numtitles,$lasttitle); @@ -478,7 +478,37 @@ sub instcode_selectors_data { $level = &recurse_options($codetitles->[$k],$idlist{$codetitles->[$k]},$level,$cat,$cat_items,\@data,\%by_year,\%by_sem,\%by_dept); } $scripttext .= &build_javascript(\%by_year,\%by_sem,\%by_dept,$cat_order,$codetitles); - $jscript .= &javascript_select_filler($formname,$scripttext,$codetitles,$longtitles_str,$allidlist); + if ($officialjs) { + $jscript .= ' + +function toggleOfficial() {'; + for (my $i=0; $i<@{$codetitles}-1; $i++) { + $jscript .= ' + document.'.$formname.'.'.$codetitles->[$i].'.selectedIndex = 0;'; + } + $jscript .= ' +} + +function setOfficial(caller) { + if (typeof(caller) != "undefined") { + if (caller.options[caller.selectedIndex].value != 0) { + if (document.'.$formname.'.official.length > 0) { + for (var j=0; j'; for (my $k=0; $k<$lasttitle-1; $k++) { @@ -532,8 +563,8 @@ sub build_instcode_selectors { @longitems = @items; } $output .= ''.$codetitles->[$k].'
'."\n". - ''."\n".''."\n"; for (my $i=0; $i<@items; $i++) { if ($longitems[$i] eq '') { $longitems[$i] = $items[$i]; @@ -543,13 +574,13 @@ sub build_instcode_selectors { $output .= ''; } $output .= ''.$codetitles->[$lasttitle-1].'
'."\n". - ''."\n". ''."\n".''."\n". ''."\n"; if ($numtitles > 4) { $output .= '

'.$codetitles->[$numtitles-1].'
'."\n". - '
'."\n"; } $output .= '
'; @@ -640,10 +671,10 @@ sub build_javascript { } sub javascript_select_filler { - my ($formname,$scripttext,$codetitles,$longtitles_str,$allidlist) = @_; + my ($formname,$scripttext,$codetitles,$longtitles_str,$allidlist,$officialjs) = @_; my $output = <[$i]} = $standardnames[$i]; + } + } if ($defaults_result eq 'ok') { $instcode ='^'; - foreach my $item (@code_order) { - if ($env{'form.'.$item} eq '0' ) { - $instcode .= $codedefaults{$item}; + foreach my $loctitle (@code_order) { + my $item = $local_to_standard{$loctitle}; + if ($item ne '') { + if ($env{'form.'.$item} eq '0' ) { + $instcode .= $codedefaults{$item}; + } else { + $instcode .= $env{'form.'.$item}; + } } else { - $instcode .= $env{'form.'.$item}; + $instcode .= '.+'; } } $instcode .= '$'; @@ -806,5 +850,9 @@ sub instcode_search_str { return $instcode; } +sub get_standard_codeitems { + return ('Year','Semester','Department','Number'); +} + 1;