version 1.715, 2014/01/29 16:31:20
|
version 1.723, 2014/02/27 02:28:51
|
Line 330 sub cleanRecord {
|
Line 330 sub cleanRecord {
|
my $grayFont = '<span class="LC_internal_info">'; |
my $grayFont = '<span class="LC_internal_info">'; |
if ($response =~ /^(option|rank)$/) { |
if ($response =~ /^(option|rank)$/) { |
my %answer=&Apache::lonnet::str2hash($answer); |
my %answer=&Apache::lonnet::str2hash($answer); |
|
my @answer = %answer; |
|
%answer = map {&HTML::Entities::encode($_, '"<>&')} @answer; |
my %grading=&Apache::lonnet::str2hash($record->{$version."resource.$partid.$respid.submissiongrading"}); |
my %grading=&Apache::lonnet::str2hash($record->{$version."resource.$partid.$respid.submissiongrading"}); |
my ($toprow,$bottomrow); |
my ($toprow,$bottomrow); |
foreach my $foil (@$order) { |
foreach my $foil (@$order) { |
Line 346 sub cleanRecord {
|
Line 348 sub cleanRecord {
|
$bottomrow.'</tr></table></blockquote>'; |
$bottomrow.'</tr></table></blockquote>'; |
} elsif ($response eq 'match') { |
} elsif ($response eq 'match') { |
my %answer=&Apache::lonnet::str2hash($answer); |
my %answer=&Apache::lonnet::str2hash($answer); |
|
my @answer = %answer; |
|
%answer = map {&HTML::Entities::encode($_, '"<>&')} @answer; |
my %grading=&Apache::lonnet::str2hash($record->{$version."resource.$partid.$respid.submissiongrading"}); |
my %grading=&Apache::lonnet::str2hash($record->{$version."resource.$partid.$respid.submissiongrading"}); |
my @items=&Apache::lonnet::str2array($record->{$version."resource.$partid.$respid.submissionitems"}); |
my @items=&Apache::lonnet::str2array($record->{$version."resource.$partid.$respid.submissionitems"}); |
my ($toprow,$middlerow,$bottomrow); |
my ($toprow,$middlerow,$bottomrow); |
Line 368 sub cleanRecord {
|
Line 372 sub cleanRecord {
|
$bottomrow.'</tr></table></blockquote>'; |
$bottomrow.'</tr></table></blockquote>'; |
} elsif ($response eq 'radiobutton') { |
} elsif ($response eq 'radiobutton') { |
my %answer=&Apache::lonnet::str2hash($answer); |
my %answer=&Apache::lonnet::str2hash($answer); |
|
my @answer = %answer; |
|
%answer = map {&HTML::Entities::encode($_, '"<>&')} @answer; |
my ($toprow,$bottomrow); |
my ($toprow,$bottomrow); |
my $correct = |
my $correct = |
&get_radiobutton_correct_foil($partid,$respid,$symb,$uname,$udom,$type,$trial,$rndseed); |
&get_radiobutton_correct_foil($partid,$respid,$symb,$uname,$udom,$type,$trial,$rndseed); |
Line 401 sub cleanRecord {
|
Line 407 sub cleanRecord {
|
$env{'form.'.$symb} = 1; # so that we don't have to read it from disk for multiple sub of the same prob. |
$env{'form.'.$symb} = 1; # so that we don't have to read it from disk for multiple sub of the same prob. |
} |
} |
$answer =~ s-\n-<br />-g; |
$answer =~ s-\n-<br />-g; |
return '<br /><br /><blockquote><tt>'.&keywords_highlight($answer).'</tt></blockquote>'; |
return '<br /><br /><blockquote><tt>'.&keywords_highlight(&HTML::Entities::encode($answer, '"<>&')).'</tt></blockquote>'; |
|
|
} elsif ( $response eq 'organic') { |
} elsif ( $response eq 'organic') { |
my $result='Smile representation: "<tt>'.$answer.'</tt>"'; |
my $result=&mt('Smile representation: [_1]', |
|
'"<tt>'.&HTML::Entities::encode($answer, '"<>&').'</tt>"'); |
my $jme=$record->{$version."resource.$partid.$respid.molecule"}; |
my $jme=$record->{$version."resource.$partid.$respid.molecule"}; |
$result.=&Apache::chemresponse::jme_img($jme,$answer,400); |
$result.=&Apache::chemresponse::jme_img($jme,$answer,400); |
return $result; |
return $result; |
Line 437 sub cleanRecord {
|
Line 445 sub cleanRecord {
|
$result.='</ul>'; |
$result.='</ul>'; |
return $result; |
return $result; |
} |
} |
} elsif ( $response =~ m/(?:numerical|formula)/) { |
} elsif ( $response =~ m/(?:numerical|formula|custom)/) { |
|
# Respect multiple input fields, see Bug #5409 |
$answer = |
$answer = |
&Apache::loncommon::format_previous_attempt_value('submission', |
&Apache::loncommon::format_previous_attempt_value('submission', |
$answer); |
$answer); |
|
return $answer; |
} |
} |
return $answer; |
return &HTML::Entities::encode($answer, '"<>&'); |
} |
} |
|
|
#-- A couple of common js functions |
#-- A couple of common js functions |
Line 1431 INNERJS
|
Line 1441 INNERJS
|
txtc => 'Text Color', |
txtc => 'Text Color', |
font => 'Font Size', |
font => 'Font Size', |
fnst => 'Font Style', |
fnst => 'Font Style', |
|
col1 => 'red', |
|
col2 => 'green', |
|
col3 => 'blue', |
|
siz1 => 'normal', |
|
siz2 => '+1', |
|
siz3 => '+2', |
|
sty1 => 'normal', |
|
sty2 => 'italic', |
|
sty3 => 'bold', |
); |
); |
$request->print(&Apache::lonhtmlcommon::scripttag(<<SUBJAVASCRIPT)); |
$request->print(&Apache::lonhtmlcommon::scripttag(<<SUBJAVASCRIPT)); |
|
|
Line 1594 INNERJS
|
Line 1613 INNERJS
|
var redsel = ""; |
var redsel = ""; |
var grnsel = ""; |
var grnsel = ""; |
var blusel = ""; |
var blusel = ""; |
if (kwclr=="red") {var redsel="checked"}; |
var txtcol1 = "$lt{'col1'}"; |
if (kwclr=="green") {var grnsel="checked"}; |
var txtcol2 = "$lt{'col2'}"; |
if (kwclr=="blue") {var blusel="checked"}; |
var txtcol3 = "$lt{'col3'}"; |
|
var txtsiz1 = "$lt{'siz1'}"; |
|
var txtsiz2 = "$lt{'siz2'}"; |
|
var txtsiz3 = "$lt{'siz3'}"; |
|
var txtsty1 = "$lt{'sty1'}"; |
|
var txtsty2 = "$lt{'sty2'}"; |
|
var txtsty3 = "$lt{'sty3'}"; |
|
if (kwclr=="red") {var redsel="checked='checked'"}; |
|
if (kwclr=="green") {var grnsel="checked='checked'"}; |
|
if (kwclr=="blue") {var blusel="checked='checked'"}; |
var sznsel = ""; |
var sznsel = ""; |
var sz1sel = ""; |
var sz1sel = ""; |
var sz2sel = ""; |
var sz2sel = ""; |
if (kwsize=="0") {var sznsel="checked"}; |
if (kwsize=="0") {var sznsel="checked='checked'"}; |
if (kwsize=="+1") {var sz1sel="checked"}; |
if (kwsize=="+1") {var sz1sel="checked='checked'"}; |
if (kwsize=="+2") {var sz2sel="checked"}; |
if (kwsize=="+2") {var sz2sel="checked='checked'"}; |
var synsel = ""; |
var synsel = ""; |
var syisel = ""; |
var syisel = ""; |
var sybsel = ""; |
var sybsel = ""; |
if (kwstyle=="") {var synsel="checked"}; |
if (kwstyle=="") {var synsel="checked='checked'"}; |
if (kwstyle=="<i>") {var syisel="checked"}; |
if (kwstyle=="<i>") {var syisel="checked='checked'"}; |
if (kwstyle=="<b>") {var sybsel="checked"}; |
if (kwstyle=="<b>") {var sybsel="checked='checked'"}; |
highlightCentral(); |
highlightCentral(); |
highlightbody('red','red',redsel,'0','normal',sznsel,'','normal',synsel); |
highlightbody('red',txtcol1,redsel,'0',txtsiz1,sznsel,'',txtsty1,synsel); |
highlightbody('green','green',grnsel,'+1','+1',sz1sel,'<i>','italic',syisel); |
highlightbody('green',txtcol2,grnsel,'+1',txtsiz2,sz1sel,'<i>',txtsty2,syisel); |
highlightbody('blue','blue',blusel,'+2','+2',sz2sel,'<b>','bold',sybsel); |
highlightbody('blue',txtcol3,blusel,'+2',txtsiz3,sz2sel,'<b>',txtsty3,sybsel); |
highlightend(); |
highlightend(); |
return; |
return; |
} |
} |
Line 1630 INNERJS
|
Line 1658 INNERJS
|
hDoc.$docopen; |
hDoc.$docopen; |
hDoc.write('$start_page_highlight_central'); |
hDoc.write('$start_page_highlight_central'); |
hDoc.write("<form action=\\"inactive\\" name=\\"hlCenter\\">"); |
hDoc.write("<form action=\\"inactive\\" name=\\"hlCenter\\">"); |
hDoc.write("<h3><span class=\\"LC_info\\"> $lt{'kehi'}<\\/span><\\/h3><br /><br />"); |
hDoc.write("<h1>$lt{'kehi'}<\\/h1>"); |
|
|
hDoc.write('<table border="0" width="100%"><tr><td bgcolor="#777777">'); |
hDoc.write('<table border="0" width="100%"><tr style="background-color:#A1D676">'); |
hDoc.write('<table border="0" width="100%"><tr bgcolor="#DDFFFF">'); |
hDoc.write("<th>$lt{'txtc'}<\\/th><th>$lt{'font'}<\\/th><th>$lt{'fnst'}<\\/th><\\/tr>"); |
hDoc.write("<td><b>$lt{'txtc'}<\\/b><\\/td><td><b>$lt{'font'}<\\/b><\\/td><td><b>$lt{'fnst'}<\\/td><\\/tr>"); |
|
} |
} |
|
|
function highlightbody(clrval,clrtxt,clrsel,szval,sztxt,szsel,syval,sytxt,sysel) { |
function highlightbody(clrval,clrtxt,clrsel,szval,sztxt,szsel,syval,sytxt,sysel) { |
var hDoc = hwdWin.document; |
var hDoc = hwdWin.document; |
hDoc.write("<tr bgcolor=\\"#ffffdd\\">"); |
hDoc.write("<tr>"); |
hDoc.write("<td align=\\"left\\">"); |
hDoc.write("<td align=\\"left\\">"); |
hDoc.write("<input name=\\"kwdclr\\" type=\\"radio\\" value=\\""+clrval+"\\" "+clrsel+"> "+clrtxt+"<\\/td>"); |
hDoc.write("<input name=\\"kwdclr\\" type=\\"radio\\" value=\\""+clrval+"\\" "+clrsel+" \\/> "+clrtxt+"<\\/td>"); |
hDoc.write("<td align=\\"left\\">"); |
hDoc.write("<td align=\\"left\\">"); |
hDoc.write("<input name=\\"kwdsize\\" type=\\"radio\\" value=\\""+szval+"\\" "+szsel+"> "+sztxt+"<\\/td>"); |
hDoc.write("<input name=\\"kwdsize\\" type=\\"radio\\" value=\\""+szval+"\\" "+szsel+" \\/> "+sztxt+"<\\/td>"); |
hDoc.write("<td align=\\"left\\">"); |
hDoc.write("<td align=\\"left\\">"); |
hDoc.write("<input name=\\"kwdstyle\\" type=\\"radio\\" value=\\""+syval+"\\" "+sysel+"> "+sytxt+"<\\/td>"); |
hDoc.write("<input name=\\"kwdstyle\\" type=\\"radio\\" value=\\""+syval+"\\" "+sysel+" \\/> "+sytxt+"<\\/td>"); |
hDoc.write("<\\/tr>"); |
hDoc.write("<\\/tr>"); |
} |
} |
|
|
function highlightend() { |
function highlightend() { |
var hDoc = hwdWin.document; |
var hDoc = hwdWin.document; |
hDoc.write("<\\/table>"); |
hDoc.write("<\\/table><br \\/>"); |
hDoc.write("<\\/td><\\/tr><\\/table> "); |
hDoc.write("<input type=\\"button\\" value=\\"$lt{'save'}\\" onclick=\\"javascript:updateChoice(1)\\" \\/> "); |
hDoc.write("<input type=\\"button\\" value=\\"$lt{'save'}\\" onclick=\\"javascript:updateChoice(1)\\"> "); |
hDoc.write("<input type=\\"button\\" value=\\"$lt{'canc'}\\" onclick=\\"self.close()\\" \\/><br /><br />"); |
hDoc.write("<input type=\\"button\\" value=\\"$lt{'canc'}\\" onclick=\\"self.close()\\"><br /><br />"); |
|
hDoc.write("<\\/form>"); |
hDoc.write("<\\/form>"); |
hDoc.write('$end_page_highlight_central'); |
hDoc.write('$end_page_highlight_central'); |
hDoc.close(); |
hDoc.close(); |
Line 2044 sub submission {
|
Line 2070 sub submission {
|
if (1) { |
if (1) { |
|
|
my %lt = &Apache::lonlocal::texthash( |
my %lt = &Apache::lonlocal::texthash( |
|
keyh => 'Keyword Highlighting for Essays', |
keyw => 'Keyword Options', |
keyw => 'Keyword Options', |
list => 'List', |
list => 'List', |
past => 'Paste Selection to List', |
past => 'Paste Selection to List', |
Line 2052 sub submission {
|
Line 2079 sub submission {
|
# |
# |
# Print out the keyword options line |
# Print out the keyword options line |
# |
# |
$request->print(<<KEYWORDS); |
$request->print( |
<br /><b>$lt{'keyw'}:</b> |
'<div class="LC_columnSection">' |
<a href="javascript:keywords(document.SCORE);" target="_self">$lt{'list'}</a> |
.'<fieldset><legend>'.$lt{'keyh'}.'</legend>' |
<a href="#" onmousedown="javascript:getSel(); return false" |
.&Apache::lonhtmlcommon::funclist_from_array( |
class="page">$lt{'past'}</a> |
['<a href="javascript:keywords(document.SCORE);" target="_self">'.$lt{'list'}.'</a>', |
<a href="javascript:kwhighlight();" target="_self">$lt{'high'}</a><br /><br /> |
'<a href="#" onmousedown="javascript:getSel(); return false" |
KEYWORDS |
class="page">'.$lt{'past'}.'</a>', |
|
'<a href="javascript:kwhighlight();" target="_self">'.$lt{'high'}.'</a>'], |
|
{legend => $lt{'keyw'}}) |
|
.'</fieldset></div>' |
|
); |
|
|
# |
# |
# Load the other essays for similarity check |
# Load the other essays for similarity check |
# |
# |
Line 2279 KEYWORDS
|
Line 2311 KEYWORDS
|
if ($env{'form.lastSub'} eq 'datesub') { |
if ($env{'form.lastSub'} eq 'datesub') { |
my ($parts,$handgrade,$responseType) = &response_type($symb,\$res_error); |
my ($parts,$handgrade,$responseType) = &response_type($symb,\$res_error); |
$request->print(&displaySubByDates($symb,\%record,$parts,$responseType,$checkIcon,$uname,$udom)); |
$request->print(&displaySubByDates($symb,\%record,$parts,$responseType,$checkIcon,$uname,$udom)); |
|
|
} |
} |
if ($env{'form.lastSub'} =~ /^(last|all)$/) { |
if ($env{'form.lastSub'} =~ /^(last|all)$/) { |
$request->print(&Apache::loncommon::get_previous_attempt($symb,$uname,$udom, |
$request->print(&Apache::loncommon::get_previous_attempt($symb,$uname,$udom, |
Line 2513 sub get_last_submission {
|
Line 2546 sub get_last_submission {
|
} |
} |
my ($partid,$foo) = split(/submission$/,$key); |
my ($partid,$foo) = split(/submission$/,$key); |
my $draft = $lasthash{$partid.'awarddetail'} eq 'DRAFT' ? |
my $draft = $lasthash{$partid.'awarddetail'} eq 'DRAFT' ? |
'<span class="LC_warning">Draft Copy</span> ' : ''; |
'<span class="LC_warning">'.&mt('Draft Copy').'</span> ' : ''; |
push(@string, join(':', $key, $hide, $draft.$lasthash{$key})); |
#push(@string, join(':', $key, $hide, $draft.$lasthash{$key})); |
|
push(@string, join(':', $key, $hide, $draft.( |
|
ref($lasthash{$key}) eq 'ARRAY' ? |
|
join(',', @{$lasthash{$key}}) : $lasthash{$key}) )); |
} |
} |
} |
} |
if (!@string) { |
if (!@string) { |
Line 2542 sub keywords_highlight {
|
Line 2578 sub keywords_highlight {
|
sub show_previous_task_version { |
sub show_previous_task_version { |
my ($request,$symb) = @_; |
my ($request,$symb) = @_; |
if ($symb eq '') { |
if ($symb eq '') { |
$request->print("Unable to handle ambiguous references."); |
$request->print( |
|
'<span class="LC_error">'. |
|
&mt('Unable to handle ambiguous references.'). |
|
'</span>'); |
return ''; |
return ''; |
} |
} |
my ($uname,$udom) = ($env{'form.student'},$env{'form.userdom'}); |
my ($uname,$udom) = ($env{'form.student'},$env{'form.userdom'}); |
Line 2737 sub processHandGrade {
|
Line 2775 sub processHandGrade {
|
next; |
next; |
} |
} |
if ($errorflag eq 'not_allowed') { |
if ($errorflag eq 'not_allowed') { |
$request->print("<span class=\"LC_warning\">Not allowed to modify grades for $uname:$udom</span>"); |
$request->print( |
|
'<span class="LC_error">' |
|
.&mt('Not allowed to modify grades for [_1]',"$uname:$udom") |
|
.'</span>'); |
$ctr++; |
$ctr++; |
next; |
next; |
} |
} |
Line 6577 sub scantron_warning_screen {
|
Line 6618 sub scantron_warning_screen {
|
$scantron_config{'CODEstart'} && |
$scantron_config{'CODEstart'} && |
$scantron_config{'CODElength'}) { |
$scantron_config{'CODElength'}) { |
$CODElist=$env{'form.scantron_CODElist'}; |
$CODElist=$env{'form.scantron_CODElist'}; |
if ($env{'form.scantron_CODElist'} eq '') { $CODElist='<span class="LC_warning">None</span>'; } |
if ($env{'form.scantron_CODElist'} eq '') { $CODElist='<span class="LC_warning">'.&mt('None').'</span>'; } |
$CODElist= |
$CODElist= |
'<tr><td><b>'.&mt('List of CODES to validate against:').'</b></td><td><tt>'. |
'<tr><td><b>'.&mt('List of CODES to validate against:').'</b></td><td><tt>'. |
$env{'form.scantron_CODElist'}.'</tt></td></tr>'; |
$env{'form.scantron_CODElist'}.'</tt></td></tr>'; |
Line 8210 sub hand_bubble_option {
|
Line 8251 sub hand_bubble_option {
|
return &mt('The sequence to be graded contains response types which are handgraded.').'<p>'. |
return &mt('The sequence to be graded contains response types which are handgraded.').'<p>'. |
&mt('If you have already graded these by bubbling sheets to indicate points awarded, [_1]what point value is assigned to a filled last bubble in each row?','<br />'). |
&mt('If you have already graded these by bubbling sheets to indicate points awarded, [_1]what point value is assigned to a filled last bubble in each row?','<br />'). |
'<label><input type="radio" name="scantron_lastbubblepoints" value="'.$bubbles_per_row.'" checked="checked" />'.&mt('[quant,_1,point]',$bubbles_per_row).'</label> '.&mt('or').' '. |
'<label><input type="radio" name="scantron_lastbubblepoints" value="'.$bubbles_per_row.'" checked="checked" />'.&mt('[quant,_1,point]',$bubbles_per_row).'</label> '.&mt('or').' '. |
'<label><input type="radio" name="scantron_lastbubblepoints" value="0"/>0 points</label></p>'; |
'<label><input type="radio" name="scantron_lastbubblepoints" value="0" />'.&mt('0 points').'</label></p>'; |
} |
} |
return; |
return; |
} |
} |
Line 8873 sub scantron_download_scantron_data {
|
Line 8914 sub scantron_download_scantron_data {
|
&Apache::lonnet::allowuploaded('/adm/grades',$skipped); |
&Apache::lonnet::allowuploaded('/adm/grades',$skipped); |
$r->print(' |
$r->print(' |
<p> |
<p> |
'.&mt('[_1]Original[_2] file as uploaded by the bubblesheet office.', |
'.&mt('[_1]Original[_2] file as uploaded by the bubblesheet scanning office.', |
'<a href="'.$orig.'">','</a>').' |
'<a href="'.$orig.'">','</a>').' |
</p> |
</p> |
<p> |
<p> |
Line 9044 sub checkscantron_results {
|
Line 9085 sub checkscantron_results {
|
'<td>'.&mt('Bubblesheet').'</td><td>'.$showscandata.'</td><td rowspan="2">'.$last.'</td><td rowspan="2">'.$pid.'</td>'."\n". |
'<td>'.&mt('Bubblesheet').'</td><td>'.$showscandata.'</td><td rowspan="2">'.$last.'</td><td rowspan="2">'.$pid.'</td>'."\n". |
'</tr>'."\n". |
'</tr>'."\n". |
'<tr class="'.$css_class.'">'."\n". |
'<tr class="'.$css_class.'">'."\n". |
'<td>Submissions</td><td>'.$showrecord.'</td></tr>'."\n"; |
'<td>'.&mt('Submissions').'</td><td>'.$showrecord.'</td></tr>'."\n"; |
$passed ++; |
$passed ++; |
} else { |
} else { |
my $css_class = ($failed % 2)?'LC_odd_row':'LC_even_row'; |
my $css_class = ($failed % 2)?'LC_odd_row':'LC_even_row'; |
$badstudents .= '<tr class="'.$css_class.'"><td>'.&mt('Bubblesheet').'</td><td><span class="LC_nobreak">'.$scandata{$pid}.'</span></td><td rowspan="2">'.$last.'</td><td rowspan="2">'.$pid.'</td>'."\n". |
$badstudents .= '<tr class="'.$css_class.'"><td>'.&mt('Bubblesheet').'</td><td><span class="LC_nobreak">'.$scandata{$pid}.'</span></td><td rowspan="2">'.$last.'</td><td rowspan="2">'.$pid.'</td>'."\n". |
'</tr>'."\n". |
'</tr>'."\n". |
'<tr class="'.$css_class.'">'."\n". |
'<tr class="'.$css_class.'">'."\n". |
'<td>Submissions</td><td><span class="LC_nobreak">'.$record{$pid}.'</span></td>'."\n". |
'<td>'.&mt('Submissions').'</td><td><span class="LC_nobreak">'.$record{$pid}.'</span></td>'."\n". |
'</tr>'."\n"; |
'</tr>'."\n"; |
$failed ++; |
$failed ++; |
} |
} |