version 1.9, 2010/07/08 23:19:19
|
version 1.14, 2011/03/03 00:06:38
|
Line 30 package Apache::courseclassifier;
|
Line 30 package Apache::courseclassifier;
|
use strict; |
use strict; |
use lib '/home/httpd/lib/perl/'; |
use lib '/home/httpd/lib/perl/'; |
use Apache::lonnet; |
use Apache::lonnet; |
|
use Apache::loncommon; |
use Apache::lonlocal; |
use Apache::lonlocal; |
use LONCAPA; |
use LONCAPA; |
|
|
Line 39 sub retrieve_instcodes {
|
Line 40 sub retrieve_instcodes {
|
my %courses = &Apache::lonnet::courseiddump($codedom,'.',1,'.','.','.', undef,undef,'Course'); |
my %courses = &Apache::lonnet::courseiddump($codedom,'.',1,'.','.','.', undef,undef,'Course'); |
foreach my $course (keys(%courses)) { |
foreach my $course (keys(%courses)) { |
if (ref($courses{$course}) eq 'HASH') { |
if (ref($courses{$course}) eq 'HASH') { |
$$coursecodes{$course} = $courses{$course}{'inst_code'}; |
if ($courses{$course}{'inst_code'} ne '') { |
$totcodes ++; |
$$coursecodes{$course} = $courses{$course}{'inst_code'}; |
|
$totcodes ++; |
|
} |
} |
} |
} |
} |
return $totcodes; |
return $totcodes; |
Line 52 sub sort_cats {
|
Line 55 sub sort_cats {
|
if (defined($$cat_order{$$codetitles[$num]})) { |
if (defined($$cat_order{$$codetitles[$num]})) { |
foreach my $item (@{$$cat_order{$$codetitles[$num]}}) { |
foreach my $item (@{$$cat_order{$$codetitles[$num]}}) { |
if (grep/^\Q$item\E$/,@unsorted) { |
if (grep/^\Q$item\E$/,@unsorted) { |
push @{$sorted}, $item; |
push(@{$sorted},$item); |
} |
} |
} |
} |
} else { |
} else { |
Line 258 sub build_code_selections {
|
Line 261 sub build_code_selections {
|
sub javascript_code_selections { |
sub javascript_code_selections { |
my ($formname,@codetitles) = @_; |
my ($formname,@codetitles) = @_; |
my $numtitles = @codetitles; |
my $numtitles = @codetitles; |
|
my %lt = &Apache::lonlocal::texthash( |
|
Select => 'Select', |
|
Pick => 'Pick', |
|
); |
my $output = (<<END_OF_BLOCK); |
my $output = (<<END_OF_BLOCK); |
var display = new Array($numtitles) |
var display = new Array($numtitles) |
if (caller == "" || caller == "$codetitles[0]") { |
if (caller == "" || caller == "$codetitles[0]") { |
if (caller == "") { |
if (caller == "") { |
document.$formname.Year.length = 0 |
document.$formname.Year.length = 0 |
document.$formname.Year.options[0] = new Option("Select","-1",true,true) |
document.$formname.Year.options[0] = new Option("$lt{'Select'}","-1",true,true) |
display[0] = new Array(idyears.length) |
display[0] = new Array(idyears.length) |
for (var i=0; i<idyears.length; i++) { |
for (var i=0; i<idyears.length; i++) { |
display[0][i] = idyears[i] |
display[0][i] = idyears[i] |
Line 284 sub javascript_code_selections {
|
Line 291 sub javascript_code_selections {
|
document.$formname.Semester.length = 0 |
document.$formname.Semester.length = 0 |
document.$formname.Department.length = 0; |
document.$formname.Department.length = 0; |
document.$formname.Number.length = 0 |
document.$formname.Number.length = 0 |
document.$formname.Department.options[0] = new Option("<-Pick $codetitles[1]","-1",true,true) |
document.$formname.Department.options[0] = new Option("<-$lt{'Pick'} $codetitles[1]","-1",true,true) |
document.$formname.Number.options[0] = new Option("<-Pick $codetitles[2]","-1",true,true) |
document.$formname.Number.options[0] = new Option("<-$lt{'Pick'} $codetitles[2]","-1",true,true) |
if (idyr == 0 || caller == "") { |
if (idyr == 0 || caller == "") { |
document.$formname.Semester.options[0] = new Option("<-Pick $codetitles[0]","-1",true,true) |
document.$formname.Semester.options[0] = new Option("<-$lt{'Pick'} $codetitles[0]","-1",true,true) |
} |
} |
else { |
else { |
document.$formname.Semester.options[0] = new Option("Select","-1",true,true) |
document.$formname.Semester.options[0] = new Option("$lt{'Select'}","-1",true,true) |
display[1] = new Array(idsems[idyr-1].length) |
display[1] = new Array(idsems[idyr-1].length) |
for (var i=0; i<idsems[idyr-1].length; i++) { |
for (var i=0; i<idsems[idyr-1].length; i++) { |
display[1][i] = idsems[idyr-1][i] |
display[1][i] = idsems[idyr-1][i] |
Line 309 sub javascript_code_selections {
|
Line 316 sub javascript_code_selections {
|
document.$formname.Number.length = 0 |
document.$formname.Number.length = 0 |
document.$formname.Number.options[0] = new Option("<-Pick $codetitles[2]","-1",true,true) |
document.$formname.Number.options[0] = new Option("<-Pick $codetitles[2]","-1",true,true) |
if (idsem == 0) { |
if (idsem == 0) { |
document.$formname.Department.options[0] = new Option("<-Pick $codetitles[1]","-1",true,true) |
document.$formname.Department.options[0] = new Option("<-$lt{'Pick'} $codetitles[1]","-1",true,true) |
} |
} |
else { |
else { |
document.$formname.Department.options[0] = new Option("Select","-1",true,true) |
document.$formname.Department.options[0] = new Option("$lt{'Select'}","-1",true,true) |
display[2] = new Array(idcodes[idyr-1][idsem-1].length) |
display[2] = new Array(idcodes[idyr-1][idsem-1].length) |
for (var i=0; i<idcodes[idyr-1][idsem-1].length; i++) { |
for (var i=0; i<idcodes[idyr-1][idsem-1].length; i++) { |
display[2][i] = idcodes[idyr-1][idsem-1][i] |
display[2][i] = idcodes[idyr-1][idsem-1][i] |
Line 329 sub javascript_code_selections {
|
Line 336 sub javascript_code_selections {
|
if (caller == "$codetitles[2]") { |
if (caller == "$codetitles[2]") { |
document.$formname.Number.length = 0 |
document.$formname.Number.length = 0 |
if (iddept == 0) { |
if (iddept == 0) { |
document.$formname.Number.options[0] = new Option("<-Pick $codetitles[2]","-1",true,true) |
document.$formname.Number.options[0] = new Option("<-$lt{'Pick'} $codetitles[2]","-1",true,true) |
} |
} |
else { |
else { |
document.$formname.Number.options[0] = new Option("Select","-1",true,true) |
document.$formname.Number.options[0] = new Option("Select","-1",true,true) |
Line 510 function setOfficial(caller) {
|
Line 517 function setOfficial(caller) {
|
} |
} |
$jscript .= &javascript_select_filler($formname,$scripttext,$codetitles,$longtitles_str,$allidlist,$officialjs); |
$jscript .= &javascript_select_filler($formname,$scripttext,$codetitles,$longtitles_str,$allidlist,$officialjs); |
if ($env{'form.state'} eq 'listing') { |
if ($env{'form.state'} eq 'listing') { |
|
my @standardnames = &Apache::loncommon::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]; |
|
} |
|
} |
$jscript .= ' |
$jscript .= ' |
function setElements() { |
function setElements() { |
'; |
'; |
for (my $i=0; $i<@{$codetitles}-1; $i++) { |
for (my $i=0; $i<@{$codetitles}-1; $i++) { |
if ($env{'form.'.$codetitles->[$i]} != -1) { |
my $item = $local_to_standard{$codetitles->[$i]}; |
|
if ($env{'form.'.$item} != -1) { |
$jscript .= ' |
$jscript .= ' |
for (var j=0; j<document.'.$formname.'.'.$codetitles->[$i].'.length; j++) { |
for (var j=0; j<document.'.$formname.'.'.$item.'.length; j++) { |
if (document.'.$formname.'.'.$codetitles->[$i].'[j].value == "'.$env{'form.'.$codetitles->[$i]}.'") { |
if (document.'.$formname.'.'.$item.'[j].value == "'.$env{'form.'.$item}.'") { |
document.'.$formname.'.'.$codetitles->[$i].'.selectedIndex = j; |
document.'.$formname.'.'.$item.'.selectedIndex = j; |
} |
} |
} |
} |
'; |
'; |
} |
} |
} |
} |
$jscript .= ' courseSet()'."\n"; |
$jscript .= ' courseSet()'."\n"; |
if ($env{'form.'.$codetitles->[-1]} != -1) { |
my $lastcodetitle = $local_to_standard{$codetitles->[-1]}; |
|
if ($env{'form.'.$lastcodetitle} != -1) { |
$jscript .= ' |
$jscript .= ' |
for (var j=0; j<document.'.$formname.'.'.$codetitles->[-1].'.length; j++) { |
for (var j=0; j<document.'.$formname.'.'.$lastcodetitle.'.length; j++) { |
if (document.'.$formname.'.'.$codetitles->[-1].'[j].value == "'.$env{'form.'.$codetitles->[-1]}.'") { |
if (document.'.$formname.'.'.$lastcodetitle.'[j].value == "'.$env{'form.'.$lastcodetitle}.'") { |
document.'.$formname.'.'.$codetitles->[-1].'.selectedIndex = j; |
document.'.$formname.'.'.$lastcodetitle.'.selectedIndex = j; |
} |
} |
} |
} |
'; |
'; |
Line 545 function setElements() {
|
Line 561 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(); |
my @standardnames = &Apache::loncommon::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 672 sub build_javascript {
|
Line 688 sub build_javascript {
|
|
|
sub javascript_select_filler { |
sub javascript_select_filler { |
my ($formname,$scripttext,$codetitles,$longtitles_str,$allidlist,$officialjs) = @_; |
my ($formname,$scripttext,$codetitles,$longtitles_str,$allidlist,$officialjs) = @_; |
|
my $all = &mt('All'); |
|
my $nocrs = &mt('No courses'); |
my $output = <<END; |
my $output = <<END; |
|
|
function courseSet(caller) { |
function courseSet(caller) { |
Line 694 function courseSet(caller) {
|
Line 712 function courseSet(caller) {
|
if (selYear == -1) { |
if (selYear == -1) { |
if (selSemester == -1) { |
if (selSemester == -1) { |
if (selDepartment > -1) { |
if (selDepartment > -1) { |
document.$formname.Number.options[0] = new Option('All','0',false,false); |
document.$formname.Number.options[0] = new Option('$all','0',false,false); |
for (var k=0; k<idcse_by_dep[selDepartment].length; k++) { |
for (var k=0; k<idcse_by_dep[selDepartment].length; k++) { |
document.$formname.Number.options[k+1] = new Option(idcse_by_dep[selDepartment][k],idcse_by_dep[selDepartment][k],false,false); |
document.$formname.Number.options[k+1] = new Option(idcse_by_dep[selDepartment][k],idcse_by_dep[selDepartment][k],false,false); |
|
|
} |
} |
} |
} |
else { |
else { |
document.$formname.Number.options[0] = new Option("All","0",true,true); |
document.$formname.Number.options[0] = new Option('$all','0',true,true); |
} |
} |
} |
} |
else { |
else { |
Line 719 function courseSet(caller) {
|
Line 737 function courseSet(caller) {
|
} |
} |
} |
} |
if (iddept != -1) { |
if (iddept != -1) { |
document.$formname.Number.options[0] = new Option('All','0',false,false); |
document.$formname.Number.options[0] = new Option('$all','0',false,false); |
for (var k=0; k<idcse_by_sem_num[idsem][iddept].length; k++) { |
for (var k=0; k<idcse_by_sem_num[idsem][iddept].length; k++) { |
document.$formname.Number.options[k+1] = new Option(idcse_by_sem_num[idsem][iddept][k],idcse_by_sem_num[idsem][iddept][k],false,false); |
document.$formname.Number.options[k+1] = new Option(idcse_by_sem_num[idsem][iddept][k],idcse_by_sem_num[idsem][iddept][k],false,false); |
} |
} |
} |
} |
else { |
else { |
document.$formname.Number.options[0] = new Option('No courses','0',true,true); |
document.$formname.Number.options[0] = new Option('$nocrs','0',true,true); |
} |
} |
} |
} |
else { |
else { |
document.$formname.Number.options[0] = new Option("All","0",true,true); |
document.$formname.Number.options[0] = new Option('$all','0',true,true); |
} |
} |
} |
} |
} |
} |
Line 749 function courseSet(caller) {
|
Line 767 function courseSet(caller) {
|
} |
} |
} |
} |
if (iddept != -1) { |
if (iddept != -1) { |
document.$formname.Number.options[0] = new Option('All','0',false,false); |
document.$formname.Number.options[0] = new Option('$all','0',false,false); |
for (var k=0; k<idcse_by_yr_num[idyr][iddept].length; k++) { |
for (var k=0; k<idcse_by_yr_num[idyr][iddept].length; k++) { |
document.$formname.Number.options[k+1] = new Option(idcse_by_yr_num[idyr][iddept][k],idcse_by_yr_num[idyr][iddept][k],false,false); |
document.$formname.Number.options[k+1] = new Option(idcse_by_yr_num[idyr][iddept][k],idcse_by_yr_num[idyr][iddept][k],false,false); |
} |
} |
} |
} |
else { |
else { |
document.$formname.Number.options[0] = new Option('No courses','0',true,true); |
document.$formname.Number.options[0] = new Option('$nocrs','0',true,true); |
} |
} |
} |
} |
else { |
else { |
document.$formname.Number.options[0] = new Option("All","0",true,true); |
document.$formname.Number.options[0] = new Option('$all','0',true,true); |
} |
} |
} |
} |
else { |
else { |
Line 784 function courseSet(caller) {
|
Line 802 function courseSet(caller) {
|
} |
} |
} |
} |
if (iddept != -1) { |
if (iddept != -1) { |
document.$formname.Number.options[0] = new Option('All','0',false,false); |
document.$formname.Number.options[0] = new Option('$all','0',false,false); |
for (var i=0; i<idcourses[idyr][idsem][iddept].length; i++) { |
for (var i=0; i<idcourses[idyr][idsem][iddept].length; i++) { |
var display = idcourses[idyr][idsem][iddept][i]; |
var display = idcourses[idyr][idsem][iddept][i]; |
if (longtitles[3] == 1) { |
if (longtitles[3] == 1) { |
Line 796 function courseSet(caller) {
|
Line 814 function courseSet(caller) {
|
} |
} |
} |
} |
else { |
else { |
document.$formname.Number.options[0] = new Option('No courses','0',true,true); |
document.$formname.Number.options[0] = new Option('$nocrs','0',true,true); |
} |
} |
} |
} |
else { |
else { |
document.$formname.Number.options[0] = new Option('All','0',true,true); |
document.$formname.Number.options[0] = new Option('$all','0',true,true); |
} |
} |
} |
} |
document.$formname.Number.selectedIndex = 0 |
document.$formname.Number.selectedIndex = 0 |
Line 821 sub instcode_search_str {
|
Line 839 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 @standardnames = &Apache::loncommon::get_standard_codeitems(); |
my %local_to_standard; |
my %local_to_standard; |
if (ref($codetitles) eq 'ARRAY') { |
if (ref($codetitles) eq 'ARRAY') { |
for (my $i=0; $i<@{$codetitles}; $i++) { |
for (my $i=0; $i<@{$codetitles}; $i++) { |
Line 834 sub instcode_search_str {
|
Line 852 sub instcode_search_str {
|
my $item = $local_to_standard{$loctitle}; |
my $item = $local_to_standard{$loctitle}; |
if ($item ne '') { |
if ($item ne '') { |
if ($env{'form.'.$item} eq '0' ) { |
if ($env{'form.'.$item} eq '0' ) { |
$instcode .= $codedefaults{$item}; |
$instcode .= $codedefaults{$loctitle}; |
} else { |
} else { |
$instcode .= $env{'form.'.$item}; |
$instcode .= $env{'form.'.$item}; |
} |
} |
Line 850 sub instcode_search_str {
|
Line 868 sub instcode_search_str {
|
return $instcode; |
return $instcode; |
} |
} |
|
|
sub get_standard_codeitems { |
sub instcode_from_selectors { |
return ('Year','Semester','Department','Number'); |
my ($cdom,$noregexps) = @_; |
|
my $instcode; |
|
my $caller = 'global'; |
|
my (%coursecodes,%codes,@codetitles,%cat_titles,%cat_order, |
|
%codedefaults,@code_order); |
|
my $format_reply = |
|
&Apache::lonnet::auto_instcode_format($caller,$cdom,\%coursecodes, |
|
\%codes,\@codetitles,\%cat_titles,\%cat_order); |
|
my $defaults_result = |
|
&Apache::lonnet::auto_instcode_defaults($cdom,\%codedefaults, |
|
\@code_order); |
|
if (($defaults_result eq 'ok') && ($format_reply eq 'ok')) { |
|
my @standardnames = &Apache::loncommon::get_standard_codeitems(); |
|
my %local_to_standard; |
|
for (my $i=0; $i<@codetitles; $i++) { |
|
$local_to_standard{$codetitles[$i]} = $standardnames[$i]; |
|
} |
|
foreach my $loctitle (@code_order) { |
|
my $category = $local_to_standard{$loctitle}; |
|
if ($category ne '') { |
|
if ($env{'form.'.$category} eq '-1' ) { |
|
if ($noregexps) { |
|
$instcode .= ' '; |
|
} else { |
|
$instcode .= $codedefaults{$category}; |
|
} |
|
} else { |
|
$instcode .= $env{'form.'.$category}; |
|
} |
|
} else { |
|
$instcode .= '.+'; |
|
} |
|
} |
|
} |
|
return $instcode; |
} |
} |
|
|
1; |
1; |