version 1.6, 2009/05/01 01:30:08
|
version 1.9, 2010/07/08 23:19:19
|
Line 445 END
|
Line 445 END
|
} |
} |
|
|
sub instcode_selectors_data { |
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, |
my ($jscript,%coursecodes,%codes,%idlist,%idnums,%idlist_titles, |
%by_year,%by_sem,%by_dept); |
%by_year,%by_sem,%by_dept); |
my ($numtitles,$lasttitle); |
my ($numtitles,$lasttitle); |
Line 478 sub instcode_selectors_data {
|
Line 478 sub instcode_selectors_data {
|
$level = &recurse_options($codetitles->[$k],$idlist{$codetitles->[$k]},$level,$cat,$cat_items,\@data,\%by_year,\%by_sem,\%by_dept); |
$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); |
$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<document.'.$formname.'.official.length; j++) { |
|
if (document.'.$formname.'.official[j].value == "on") { |
|
document.'.$formname.'.official[j].checked = true; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
return; |
|
} |
|
|
|
'; |
|
|
|
$officialjs = 'setOfficial(caller);'; |
|
} |
|
$jscript .= &javascript_select_filler($formname,$scripttext,$codetitles,$longtitles_str,$allidlist,$officialjs); |
if ($env{'form.state'} eq 'listing') { |
if ($env{'form.state'} eq 'listing') { |
$jscript .= ' |
$jscript .= ' |
function setElements() { |
function setElements() { |
Line 515 function setElements() {
|
Line 545 function setElements() {
|
sub build_instcode_selectors { |
sub build_instcode_selectors { |
my ($numtitles,$lasttitle,$cat_items,$codetitles,$cat_titles,$cat_order) = @_; |
my ($numtitles,$lasttitle,$cat_items,$codetitles,$cat_titles,$cat_order) = @_; |
my $output; |
my $output; |
|
my @standardnames = &get_standard_codeitems(); |
if ($numtitles > 0) { |
if ($numtitles > 0) { |
$output .= '<table><tr>'; |
$output .= '<table><tr>'; |
for (my $k=0; $k<$lasttitle-1; $k++) { |
for (my $k=0; $k<$lasttitle-1; $k++) { |
Line 532 sub build_instcode_selectors {
|
Line 563 sub build_instcode_selectors {
|
@longitems = @items; |
@longitems = @items; |
} |
} |
$output .= '<td align="center">'.$codetitles->[$k].'<br />'."\n". |
$output .= '<td align="center">'.$codetitles->[$k].'<br />'."\n". |
'<select name="'.$codetitles->[$k].'" onChange="courseSet()"'. |
'<select name="'.$standardnames[$k].'" onChange="courseSet(this)"'. |
'>'."\n".'<option value="0" />All'."\n"; |
'>'."\n".'<option value="0">'.&mt('All').'</option>'."\n"; |
for (my $i=0; $i<@items; $i++) { |
for (my $i=0; $i<@items; $i++) { |
if ($longitems[$i] eq '') { |
if ($longitems[$i] eq '') { |
$longitems[$i] = $items[$i]; |
$longitems[$i] = $items[$i]; |
Line 543 sub build_instcode_selectors {
|
Line 574 sub build_instcode_selectors {
|
$output .= '</select></td>'; |
$output .= '</select></td>'; |
} |
} |
$output .= '<td align="center">'.$codetitles->[$lasttitle-1].'<br />'."\n". |
$output .= '<td align="center">'.$codetitles->[$lasttitle-1].'<br />'."\n". |
'<select name="'.$codetitles->[$lasttitle-1].'">'."\n". |
'<select name="'.$standardnames[$lasttitle-1].'">'."\n". |
'<option value="0">'.&mt('All')."\n". |
'<option value="0">'.&mt('All')."\n". |
'</option>'."\n".'</select>'."\n". |
'</option>'."\n".'</select>'."\n". |
'</td></tr></table>'."\n"; |
'</td></tr></table>'."\n"; |
if ($numtitles > 4) { |
if ($numtitles > 4) { |
$output .= '<br /><br />'.$codetitles->[$numtitles-1].'<br />'."\n". |
$output .= '<br /><br />'.$codetitles->[$numtitles-1].'<br />'."\n". |
'<input type="text" name="'.$codetitles->[$numtitles-1]. |
'<input type="text" name="'.$standardnames[$numtitles-1]. |
'" /><br />'."\n"; |
'" /><br />'."\n"; |
} |
} |
$output .= '<br />'; |
$output .= '<br />'; |
Line 640 sub build_javascript {
|
Line 671 sub build_javascript {
|
} |
} |
|
|
sub javascript_select_filler { |
sub javascript_select_filler { |
my ($formname,$scripttext,$codetitles,$longtitles_str,$allidlist) = @_; |
my ($formname,$scripttext,$codetitles,$longtitles_str,$allidlist,$officialjs) = @_; |
my $output = <<END; |
my $output = <<END; |
|
|
function courseSet() { |
function courseSet(caller) { |
var longtitles = new Array ("$longtitles_str"); |
var longtitles = new Array ("$longtitles_str"); |
var valyr = document.$formname.Year.options[document.$formname.Year.selectedIndex].value |
var valyr = document.$formname.Year.options[document.$formname.Year.selectedIndex].value |
var valsem = document.$formname.Semester.options[document.$formname.Semester.selectedIndex].value |
var valsem = document.$formname.Semester.options[document.$formname.Semester.selectedIndex].value |
Line 774 function courseSet() {
|
Line 805 function courseSet() {
|
} |
} |
document.$formname.Number.selectedIndex = 0 |
document.$formname.Number.selectedIndex = 0 |
} |
} |
|
$officialjs |
} |
} |
END |
END |
return $output; |
return $output; |
} |
} |
|
|
sub instcode_search_str { |
sub instcode_search_str { |
my ($domain,$numtitles) = @_; |
my ($domain,$numtitles,$codetitles) = @_; |
my $instcode; |
my $instcode; |
if (defined($numtitles) && $numtitles == 0) { |
if (defined($numtitles) && $numtitles == 0) { |
$instcode = '.+'; |
$instcode = '.+'; |
Line 789 sub instcode_search_str {
|
Line 821 sub instcode_search_str {
|
my $defaults_result = |
my $defaults_result = |
&Apache::lonnet::auto_instcode_defaults($domain,\%codedefaults, |
&Apache::lonnet::auto_instcode_defaults($domain,\%codedefaults, |
\@code_order); |
\@code_order); |
|
my @standardnames = &get_standard_codeitems(); |
|
my %local_to_standard; |
|
if (ref($codetitles) eq 'ARRAY') { |
|
for (my $i=0; $i<@{$codetitles}; $i++) { |
|
$local_to_standard{$codetitles->[$i]} = $standardnames[$i]; |
|
} |
|
} |
if ($defaults_result eq 'ok') { |
if ($defaults_result eq 'ok') { |
$instcode ='^'; |
$instcode ='^'; |
foreach my $item (@code_order) { |
foreach my $loctitle (@code_order) { |
if ($env{'form.'.$item} eq '0' ) { |
my $item = $local_to_standard{$loctitle}; |
$instcode .= $codedefaults{$item}; |
if ($item ne '') { |
|
if ($env{'form.'.$item} eq '0' ) { |
|
$instcode .= $codedefaults{$item}; |
|
} else { |
|
$instcode .= $env{'form.'.$item}; |
|
} |
} else { |
} else { |
$instcode .= $env{'form.'.$item}; |
$instcode .= '.+'; |
} |
} |
} |
} |
$instcode .= '$'; |
$instcode .= '$'; |
Line 806 sub instcode_search_str {
|
Line 850 sub instcode_search_str {
|
return $instcode; |
return $instcode; |
} |
} |
|
|
|
sub get_standard_codeitems { |
|
return ('Year','Semester','Department','Number'); |
|
} |
|
|
1; |
1; |
|
|