--- loncom/interface/lonmodifycourse.pm 2004/11/23 07:02:32 1.13 +++ loncom/interface/lonmodifycourse.pm 2005/02/17 08:29:43 1.15 @@ -45,7 +45,7 @@ sub print_course_selection_page { ); # Determine the courses - my %courseIDs = &Apache::lonnet::courseiddump($dom,'.',1); + my %courseIDs = &Apache::lonnet::courseiddump($dom,'.',1,'.','.'); &print_header($r,$tasklongref); $r->print(<<ENDBLOCK); <form action="/adm/modifycourse" method="post" name="cmod"> @@ -65,23 +65,19 @@ ENDBLOCK foreach my $key (sort keys %courseIDs) { # Get current code my $crs; - my $currcode; - if ($key =~ m/^($dom)_(\w+)$/) { + my ($description,$currcode,$owner); + if ($courseIDs{$key} =~ m/^([^:]*):([^:]+)/ ) { + $currcode = $2; + } elsif ($key =~ m/^($dom)_(\w+)$/) { $crs = $2; my %settings = &Apache::lonnet::get('environment',['internal.coursecode'],$dom,$crs); if (defined($settings{'internal.coursecode'}) ) { $currcode = $settings{'internal.coursecode'}; - if ($currcode eq '') { - $currcode = "___".$iter; - $iter ++; - } - } else { - $currcode = "___".$iter; - $iter ++; } - } else { + } + if ($currcode eq '') { $currcode = "___".$iter; - $iter ++; + $iter ++; } unless (grep/^$currcode$/,@codes) { push @codes,$currcode; @@ -99,15 +95,22 @@ ENDBLOCK unless ($code =~m/^___\d+$/) { $showcode = $code; } if ($item =~ m/^($dom)_(\w+)$/) { $crs = $2; - if ($courseIDs{$item} =~ /^([^:]*):/) { + if ($courseIDs{$item} =~ /^([^:]*):([^:]*):([^:]*)/) { + $description = &Apache::lonnet::unescape($1); + $owner = &Apache::lonnet::unescape($3); + } elsif ($courseIDs{$item} =~ /^([^:]*):([^:]*)$/) { $description = &Apache::lonnet::unescape($1); } else { $description = &Apache::lonnet::unescape($courseIDs{$item}); } # Get course owner - my %settings = &Apache::lonnet::get('environment',['internal.courseowner'],$dom,$crs); - if ( defined($settings{'internal.courseowner'}) ) { - $owner = $settings{'internal.courseowner'}; + if ($owner eq '') { + my %settings = &Apache::lonnet::get('environment',['internal.courseowner'],$dom,$crs); + if ( defined($settings{'internal.courseowner'}) ) { + $owner = $settings{'internal.courseowner'}; + } + } + unless ($owner eq '') { $ownername = &Apache::loncommon::plainname($owner,$dom); } $r->print("<option value=\"$crs\">$showcode -- $description ---------- $ownername"); @@ -139,6 +142,7 @@ sub print_course_modification_page { } else { $ok_course = &check_course($dom,$course); } + print STDERR "Response was $ok_course for $dom,$course\n"; unless ($ok_course eq 'ok') { &print_header($r,$tasklongref,'',\$javascript_validations); @@ -333,13 +337,13 @@ all settings except course code, course my $colflag = $i%2; $ownertable .= "<tr bgcolor=\"$bgcolors[$colflag]\" align=\"left\">"; if ($local_ccs[$i] eq $enrollvar{'courseowner'}) { - $ownertable .= "<td><input type=\"radio\" name=\"courseowner\" value=\"$i\" checked=\"true\"/></td>"; + $ownertable .= "<td><input type=\"radio\" name=\"courseowner\" value=\"$local_ccs[$i]\" checked=\"true\"/></td>"; } else { - $ownertable .= "<td><input type=\"radio\" name=\"courseowner\" value=\"$i\" /></td>"; + $ownertable .= "<td><input type=\"radio\" name=\"courseowner\" value=\"$local_ccs[$i]\" /></td>"; } $ownertable .= " <td>$pname{$local_ccs[$i]}</td> - <td><input type=\"hidden\" name=\"username_$i\" value=\"$local_ccs[$i]\" />$local_ccs[$i]</td> + <td>$local_ccs[$i]</td> <td>$cc_status{$local_ccs[$i]} $lt{'ccor'}</td></tr>"; } $ownertable .= "</table> @@ -505,12 +509,9 @@ sub modify_course { } if ( exists($ENV{'form.courseowner'}) ) { - my $ownerparam = 'username_'.$ENV{'form.courseowner'}; - if ( exists($ENV{"form.$ownerparam"}) ) { - $newattr{'courseowner'}=$ENV{"form.$ownerparam"}; - unless ( $newattr{'courseowner'} eq $currattr{'courseowner'} ) { - $changeowner = 1; - } + $newattr{'courseowner'}=$ENV{'form.courseowner'}; + unless ( $newattr{'courseowner'} eq $currattr{'courseowner'} ) { + $changeowner = 1; } } @@ -518,10 +519,12 @@ sub modify_course { $newattr{'coursecode'}=$ENV{'form.coursecode'}; unless ( $newattr{'coursecode'} eq $currattr{'coursecode'} ) { $changecode = 1; - my $courseid_entry = &Apache::lonnet::escape($dom.'_'.$crs).'='.&Apache::lonnet::escape($description).'='.&Apache::lonnet::escape($ENV{'form.coursecode'}); - &Apache::lonnet::courseidput($dom,$courseid_entry,&Apache::lonnet::homeserver($crs,$dom)); } } + if ($changeowner == 1 || $changecode == 1) { + my $courseid_entry = &Apache::lonnet::escape($dom.'_'.$crs).'='.&Apache::lonnet::escape($description).':'.&Apache::lonnet::escape($ENV{'form.coursecode'}).':'.&Apache::lonnet::escape($ENV{'form.courseowner'}); + &Apache::lonnet::courseidput($dom,$courseid_entry,&Apache::lonnet::homeserver($crs,$dom)); + } foreach (@params) { if ($currattr{$_} eq $newattr{$_}) { @@ -658,9 +661,11 @@ sub print_header { $page .= " -> <b>".$$tasklongref{$action}."</b>"; } } + my $html=&Apache::lonxml::xmlbegin(); $r->print(" -<html> -<head>"); +$html +<head> +"); if ($action eq 'display') { $r->print(" <script language=\"JavaScript\" type=\"text/javascript\"> @@ -697,7 +702,7 @@ ENDBASE sub check_course { my ($dom,$course) = @_; - my %courseIDs = &Apache::lonnet::courseiddump($dom,'.',1); + my %courseIDs = &Apache::lonnet::courseiddump($dom,'.',1,'.','.'); foreach my $key (sort keys %courseIDs) { if ($key =~ m/^($dom)_(\w+)$/) { if ($2 eq $course) {