version 1.258, 2006/09/25 19:41:56
|
version 1.267, 2007/04/07 00:12:42
|
Line 96 sub get_target {
|
Line 96 sub get_target {
|
return ('grade','webgrade'); |
return ('grade','webgrade'); |
} |
} |
if ( defined($env{'form.submitted'}) && |
if ( defined($env{'form.submitted'}) && |
( !defined($env{'form.resetdata'})) && |
|
( !defined($env{'form.newrandomization'}))) { |
( !defined($env{'form.newrandomization'}))) { |
return ('grade', 'web'); |
return ('grade', 'web'); |
} else { |
} else { |
Line 113 sub get_target {
|
Line 112 sub get_target {
|
return ('web'); |
return ('web'); |
} |
} |
} else { |
} else { |
if ( $env{'form.problemmode'} eq &mt('View') || |
if ($env{'form.problemstate'} eq 'WEB_GRADE') { |
|
#$env{'form.webgrade'} = 'yes'; |
|
return ('grade','webgrade','answer'); |
|
} elsif ( $env{'form.problemmode'} eq &mt('View') || |
$env{'form.problemmode'} eq &mt('Discard Edits and View')) { |
$env{'form.problemmode'} eq &mt('Discard Edits and View')) { |
if ( defined($env{'form.submitted'}) && |
if ( defined($env{'form.submitted'}) && |
(!defined($env{'form.resetdata'})) && |
(!defined($env{'form.resetdata'})) && |
Line 393 sub check_access {
|
Line 395 sub check_access {
|
&Apache::lonxml::debug("checking for part :$id:"); |
&Apache::lonxml::debug("checking for part :$id:"); |
&Apache::lonxml::debug("time:".time); |
&Apache::lonxml::debug("time:".time); |
|
|
my ($symb)=&Apache::lonxml::whichuser(); |
my ($symb)=&Apache::lonnet::whichuser(); |
&Apache::lonxml::debug("symb:".$symb); |
&Apache::lonxml::debug("symb:".$symb); |
#if ($env{'request.state'} ne "construct" && $symb ne '') { |
#if ($env{'request.state'} ne "construct" && $symb ne '') { |
if ($env{'request.state'} ne "construct") { |
if ($env{'request.state'} ne "construct") { |
Line 604 sub setuppermissions {
|
Line 606 sub setuppermissions {
|
|
|
if ($Apache::lonhomework::browse eq 'F' && |
if ($Apache::lonhomework::browse eq 'F' && |
$env{'form.devalidatecourseresdata'} eq 'on') { |
$env{'form.devalidatecourseresdata'} eq 'on') { |
my (undef,$courseid) = &Apache::lonxml::whichuser(); |
my (undef,$courseid) = &Apache::lonnet::whichuser(); |
&Apache::lonnet::devalidatecourseresdata($env{"course.$courseid.num"}, |
&Apache::lonnet::devalidatecourseresdata($env{"course.$courseid.num"}, |
$env{"course.$courseid.domain"}); |
$env{"course.$courseid.domain"}); |
} |
} |
Line 657 sub handle_save_or_undo {
|
Line 659 sub handle_save_or_undo {
|
my $filebak =$file.".bak"; |
my $filebak =$file.".bak"; |
my $filetmp =$file.".tmp"; |
my $filetmp =$file.".tmp"; |
my $error=0; |
my $error=0; |
|
|
&Apache::lonnet::correct_line_ends($result); |
|
|
|
if ($env{'form.Undo'} eq &mt('undo')) { |
if ($env{'form.Undo'} eq &mt('undo')) { |
my $error=0; |
my $error=0; |
if (!copy($file,$filetmp)) { $error=1; } |
if (!copy($file,$filetmp)) { $error=1; } |
if ((!$error) && (!copy($filebak,$file))) { $error=1; } |
if ((!$error) && (!copy($filebak,$file))) { $error=1; } |
if ((!$error) && (!move($filetmp,$filebak))) { $error=1; } |
if ((!$error) && (!move($filetmp,$filebak))) { $error=1; } |
if (!$error) { |
if (!$error) { |
&Apache::lonxml::info("<p><b>".&mt("Undid changes, Switched")." $filebak ".&mt("and")." $file</b></p>"); |
&Apache::lonxml::info("<p><b>". |
} else { |
&mt("Undid changes, Switched [_1] and [_2]", |
&Apache::lonxml::info("<p><font color=\"red\" size=\"+1\"><b>".&mt("Unable to undo, unable to switch")." $filebak ".&mt("and")." $file</b></font></p>"); |
'<span class="LC_filename">'.$filebak. |
|
'</span>', |
|
'<span class="LC_filename">'.$file. |
|
'</span>')."</b></p>"); |
|
} else { |
|
&Apache::lonxml::info("<p><span class=\"LC_error\">". |
|
&mt("Unable to undo, unable to switch [_1] and [_2]", |
|
'<span class="LC_filename">'. |
|
$filebak.'</span>', |
|
'<span class="LC_filename">'. |
|
$file.'</span>')."</span></p>"); |
$error=1; |
$error=1; |
} |
} |
} else { |
} else { |
|
&Apache::lonnet::correct_line_ends($result); |
my $fs=Apache::File->new(">$filebak"); |
my $fs=Apache::File->new(">$filebak"); |
if (defined($fs)) { |
if (defined($fs)) { |
print $fs $$problem; |
print $fs $$problem; |
&Apache::lonxml::info("<b>".&mt("Making Backup to"). |
&Apache::lonxml::info("<b>".&mt("Making Backup to [_1]", |
" $filebak</b>"); |
'<span class="LC_filename">'. |
} else { |
$filebak.'</span>'). |
&Apache::lonxml::info("<font color=\"red\" size=\"+1\"><b>".&mt("Unable to make backup")." $filebak</b></font>"); |
"</b>"); |
|
} else { |
|
&Apache::lonxml::info("<span class=\"LC_error\">". |
|
&mt("Unable to make backup [_1]", |
|
'<span class="LC_filename">'. |
|
$filebak.'</span>')."</span>"); |
$error=2; |
$error=2; |
} |
} |
my $fh=Apache::File->new(">$file"); |
my $fh=Apache::File->new(">$file"); |
if (defined($fh)) { |
if (defined($fh)) { |
print $fh $$result; |
print $fh $$result; |
&Apache::lonxml::info("<b>".&mt("Saving Modifications to"). |
&Apache::lonxml::info("<b>".&mt("Saving Modifications to [_1]", |
" $file</b>"); |
'<span class="LC_filename">'. |
} else { |
$file.'</span>' )."</b>"); |
&Apache::lonxml::info("<font color=\"red\" size=\"+1\"><b>". |
} else { |
&mt("Unable to write to")." $file</b></font>"); |
&Apache::lonxml::info('<span class="LC_error">'. |
|
&mt("Unable to write to [_1]", |
|
'<span class="LC_filename">'. |
|
$file.'</span>'). |
|
'</span>'); |
$error|=4; |
$error|=4; |
} |
} |
} |
} |
Line 755 sub analyze {
|
Line 774 sub analyze {
|
if ($analyze{$part.'.type'} eq 'numericalresponse' || |
if ($analyze{$part.'.type'} eq 'numericalresponse' || |
$analyze{$part.'.type'} eq 'stringresponse' || |
$analyze{$part.'.type'} eq 'stringresponse' || |
$analyze{$part.'.type'} eq 'formularesponse' ) { |
$analyze{$part.'.type'} eq 'formularesponse' ) { |
my $concatanswer=join("\0",@{ $analyze{$part.'.answer'} }); |
foreach my $name (keys(%{ $analyze{$part.'.answer'} })) { |
if (($concatanswer eq '') || ($concatanswer=~/^\@/)) { |
my $i=0; |
@{$analyze{$part.'.answer'}}=('<font color="red">'.&mt('Error').'</font>'); |
foreach my $answer_part (@{ $analyze{$part.'.answer'}{$name} }) { |
|
push( @{ $overall{$part.'.answer'}[$i] }, |
|
$answer_part); |
|
my $concatanswer= join("\0",@{ $answer_part }); |
|
if (($concatanswer eq '') || ($concatanswer=~/^\@/)) { |
|
$answer_part = ['<span class="LC_error">'.&mt('Error').'</span>']; |
|
} |
|
$seedexample{join("\0",$part,$i,@{$answer_part})}= |
|
$thisseed; |
|
$i++; |
|
} |
} |
} |
push( @{ $overall{$part.'.answer'} }, |
|
[@{ $analyze{$part.'.answer'} }]); |
|
$seedexample{join("\0",@{ $analyze{$part.'.answer'}})}=$thisseed; |
|
} |
} |
} |
} |
} |
} |
Line 770 sub analyze {
|
Line 796 sub analyze {
|
$request->print('<hr />'.&mt('List of possible answers').': '); |
$request->print('<hr />'.&mt('List of possible answers').': '); |
foreach my $part (sort(keys(%allparts))) { |
foreach my $part (sort(keys(%allparts))) { |
if (defined(@{ $overall{$part.'.answer'} })) { |
if (defined(@{ $overall{$part.'.answer'} })) { |
my $num_cols=scalar(@{ $overall{$part.'.answer'}->[0] }); |
for (my $i=0;$i<scalar(@{ $overall{$part.'.answer'} });$i++) { |
$request->print('<table class="thinborder"><tr><th colspan="'.($num_cols+1).'">'.&mt('Part').' '.$part.'</th></tr>'); |
my $num_cols=scalar(@{ $overall{$part.'.answer'}[$i][0] }); |
my %frequency; |
$request->print('<table class="thinborder"><tr><th colspan="'.($num_cols+1).'">'.&mt('Part').' '.$part); |
foreach my $answer (sort {$a->[0] <=> $b->[0]} (@{ $overall{$part.'.answer'} })) { |
if (scalar(@{ $overall{$part.'.answer'} }) > 1) { |
$frequency{join("\0",@{ $answer })}++; |
$request->print(&mt(' Answer [_1]',$i+1)); |
} |
} |
$request->print('<tr><th colspan="'.($num_cols).'">'.&mt('Answer').'</th><th>'.&mt('Frequency').'<br />(' |
$request->print('</th></tr>'); |
.&mt('click for example').')</th></tr>'); |
my %frequency; |
foreach my $answer (sort {(split("\0",$a))[0] <=> (split("\0",$b))[0]} (keys(%frequency))) { |
foreach my $answer (sort {$a->[0] <=> $b->[0]} (@{ $overall{$part.'.answer'}[$i] })) { |
$request->print('<tr><td class="center">'. |
$frequency{join("\0",@{ $answer })}++; |
join('</td><td class="center">',split("\0",$answer)). |
} |
'</td><td class="center"><a href="'.$request->uri.'?rndseed='.$seedexample{$answer}.'">'.$frequency{$answer}. |
$request->print('<tr><th colspan="'.($num_cols).'">'.&mt('Answer').'</th><th>'.&mt('Frequency').'<br />(' |
'</a></td></tr>'); |
.&mt('click for example').')</th></tr>'); |
|
foreach my $answer (sort {(split("\0",$a))[0] <=> (split("\0",$b))[0]} (keys(%frequency))) { |
|
$request->print('<tr><td class="center">'. |
|
join('</td><td class="center">',split("\0",$answer)). |
|
'</td><td class="center"><a href="'.$request->uri.'?rndseed='.$seedexample{join("\0",$part,$i,$answer)}.'">'.$frequency{$answer}. |
|
'</a></td></tr>'); |
|
} |
|
$request->print('</table>'); |
} |
} |
$request->print('</table>'); |
|
} else { |
} else { |
$request->print('<p>'.&mt('Response').' '.$part.' '. |
$request->print('<p>'.&mt('Response').' '.$part.' '. |
&mt('is not analyzable at this time').'</p>'); |
&mt('is not analyzable at this time').'</p>'); |
Line 830 sub editxmlmode {
|
Line 862 sub editxmlmode {
|
if ($cols < 70) { $cols = 70; } |
if ($cols < 70) { $cols = 70; } |
if ($rows < 20) { $rows = 20; } |
if ($rows < 20) { $rows = 20; } |
my $start_page = |
my $start_page = |
&Apache::loncommon::start_page("EditXML $file", |
&Apache::loncommon::start_page(&mt("EditXML [_1]",$file), |
&Apache::edit::js_change_detection()); |
&Apache::edit::js_change_detection(), |
|
{'no_auto_mt_title' => 1,}); |
|
|
$result.=$start_page. |
$result.=$start_page. |
&renderpage($request,$file,['no_output_web'],1). |
&renderpage($request,$file,['no_output_web'],1). |
Line 885 sub renderpage {
|
Line 918 sub renderpage {
|
my $problem=&Apache::lonnet::getfile($file); |
my $problem=&Apache::lonnet::getfile($file); |
my $result; |
my $result; |
if ($problem eq -1) { |
if ($problem eq -1) { |
my $filename=(split('/',$file))[-1]; |
|
$result.="<b> ".&mt('Unable to find')." <i>$filename</i></b>"; |
|
$problem=''; |
$problem=''; |
|
my $filename=(split('/',$file))[-1]; |
|
my $error = |
|
"<b> ".&mt('Unable to find [_1]', |
|
' <span class="LC_filename">'.$filename.'</span>') |
|
."</b>"; |
|
$result.= |
|
&Apache::loncommon::simple_error_page($request,'Not available', |
|
$error); |
|
return; |
} |
} |
|
|
my %mystyle; |
my %mystyle; |
Line 981 sub newproblem {
|
Line 1021 sub newproblem {
|
my $dest = &Apache::lonnet::filelocation("",$request->uri); |
my $dest = &Apache::lonnet::filelocation("",$request->uri); |
my $errormsg; |
my $errormsg; |
if ($env{'form.newfile'}) { |
if ($env{'form.newfile'}) { |
$errormsg='<p><font color="red">'.&mt('You did not select a template.').'</font></p>'."\n"; |
$errormsg='<p><span class="LC_error">'.&mt('You did not select a template.').'</span></p>'."\n"; |
} |
} |
my $instructions; |
my $instructions; |
my $start_page = |
my $start_page = |
&Apache::loncommon::start_page("Create New $extension"); |
&Apache::loncommon::start_page("Create New $extension"); |
if ($templatelist) { $instructions=&mt(", select a template from the pull-down menu below.").'<br />'.&mt("Then");} |
|
my %lt=&Apache::lonlocal::texthash( 'create' => 'Creating a new', |
|
'resource' => 'resource', |
|
'requested' => 'The requested file', |
|
'not exist' => 'currently does not exist', |
|
'createnew' => 'To create a new', |
|
'click' => 'click on the', |
|
'Create' => 'Create', |
|
'button' => 'button'); |
|
my $extensionTranslated = &mt($extension); |
|
$request->print(" |
$request->print(" |
$start_page |
$start_page |
<h1>".&mt("Creating a new $extension resource.")."</h1> |
<h1>".&mt("Creating a new $extension resource.")."</h1> |
Line 1006 $errormsg
|
Line 1036 $errormsg
|
<b> |
<b> |
".&mt("To create a new $extension, select a template from the". |
".&mt("To create a new $extension, select a template from the". |
"pull-down menu below. Then click on the \"Create $extension\" button.")."</b> |
"pull-down menu below. Then click on the \"Create $extension\" button.")."</b> |
</p>"); |
</p><form action=\"$url\" method=\"POST\">"); |
|
|
if (defined($templatelist)) { |
if (defined($templatelist)) { |
$request->print("<select name=\"template\">$templatelist</select>"); |
$request->print("<select name=\"template\">$templatelist</select>"); |
Line 1051 sub handler {
|
Line 1081 sub handler {
|
} |
} |
&Apache::lonxml::debug("Permissions:$Apache::lonhomework::browse:$Apache::lonhomework::viewgrades:$Apache::lonhomework::modifygrades:$Apache::lonhomework::queuegrade"); |
&Apache::lonxml::debug("Permissions:$Apache::lonhomework::browse:$Apache::lonhomework::viewgrades:$Apache::lonhomework::modifygrades:$Apache::lonhomework::queuegrade"); |
&Apache::lonxml::debug("Problem Mode ".$env{'form.problemmode'}); |
&Apache::lonxml::debug("Problem Mode ".$env{'form.problemmode'}); |
my ($symb) = &Apache::lonxml::whichuser(); |
my ($symb) = &Apache::lonnet::whichuser(); |
&Apache::lonxml::debug('symb is '.$symb); |
&Apache::lonxml::debug('symb is '.$symb); |
if ($env{'request.state'} eq "construct") { |
if ($env{'request.state'} eq "construct") { |
if ( -e $file ) { |
if ( -e $file ) { |