version 1.535, 2008/12/15 16:37:49
|
version 1.541, 2008/12/22 14:55:28
|
Line 217 sub showResourceInfo {
|
Line 217 sub showResourceInfo {
|
$partsseen{$partID}=1; |
$partsseen{$partID}=1; |
} |
} |
my $display_part=&get_display_part($partID,$symb); |
my $display_part=&get_display_part($partID,$symb); |
$result.='<td>'.&mt('<b>Part: </b>[_1]',$display_part).' <span class="LC_internal_info">'. |
$result.='<td><b>'.&mt('Part').': </b>'.$display_part. |
$resID.'</span></td>'. |
' <span class="LC_internal_info">'.$resID.'</span></td>'. |
'<td>'.&mt('<b>Type: </b>[_1]',$responsetype).'</td></tr>'; |
'<td><b>'.&mt('Type').': </b>'.$responsetype.'</td></tr>'; |
# '<td>'.&mt('<b>Handgrade: </b>[_1]',$handgrade).'</td></tr>'; |
# '<td>'.&mt('<b>Handgrade: </b>[_1]',$handgrade).'</td></tr>'; |
} |
} |
} |
} |
Line 779 sub listStudents {
|
Line 779 sub listStudents {
|
my $getsec = $env{'form.section'} eq '' ? 'all' : $env{'form.section'}; |
my $getsec = $env{'form.section'} eq '' ? 'all' : $env{'form.section'}; |
my $getgroup = $env{'form.group'} eq '' ? 'all' : $env{'form.group'}; |
my $getgroup = $env{'form.group'} eq '' ? 'all' : $env{'form.group'}; |
my $submitonly= $env{'form.submitonly'} eq '' ? 'all' : $env{'form.submitonly'}; |
my $submitonly= $env{'form.submitonly'} eq '' ? 'all' : $env{'form.submitonly'}; |
my $viewgrade = $env{'form.showgrading'} eq 'yes' ? 'View/Grade/Regrade' : 'View'; |
my $viewgrade = $env{'form.showgrading'} eq 'yes' ? &mt('View/Grade/Regrade') : &mt('View'); |
$env{'form.probTitle'} = $env{'form.probTitle'} eq '' ? |
$env{'form.probTitle'} = $env{'form.probTitle'} eq '' ? |
&Apache::lonnet::gettitle($symb) : $env{'form.probTitle'}; |
&Apache::lonnet::gettitle($symb) : $env{'form.probTitle'}; |
|
|
my $result='<h3><span class="LC_info"> '. |
my $result='<h3><span class="LC_info"> '.$viewgrade. |
&mt($viewgrade.' Submissions for a Student or a Group of Students') |
&mt(' Submissions for a Student or a Group of Students') |
.'</span></h3>'; |
.'</span></h3>'; |
|
|
my ($table,undef,$hdgrade,$partlist,$handgrade) = &showResourceInfo($symb,$env{'form.probTitle'},($env{'form.showgrading'} eq 'yes')); |
my ($table,undef,$hdgrade,$partlist,$handgrade) = &showResourceInfo($symb,$env{'form.probTitle'},($env{'form.showgrading'} eq 'yes')); |
|
|
my %lt = ( 'multiple' => |
my %lt = ( 'multiple' => |
"Please select a student or group of students before clicking on the Next button.", |
&mt("Please select a student or group of students before clicking on the Next button."), |
'single' => |
'single' => |
"Please select the student before clicking on the Next button.", |
&mt("Please select the student before clicking on the Next button."), |
); |
); |
%lt = &Apache::lonlocal::texthash(%lt); |
%lt = &Apache::lonlocal::texthash(%lt); |
$request->print(<<LISTJAVASCRIPT); |
$request->print(<<LISTJAVASCRIPT); |
Line 837 LISTJAVASCRIPT
|
Line 837 LISTJAVASCRIPT
|
"\n".$table; |
"\n".$table; |
|
|
$gradeTable .= |
$gradeTable .= |
' '. |
' <b>'.&mt('View Problem Text').': </b>'. |
&mt('<b>View Problem Text: </b>[_1]', |
|
'<label><input type="radio" name="vProb" value="no" checked="checked" /> '.&mt('no').' </label>'."\n". |
'<label><input type="radio" name="vProb" value="no" checked="checked" /> '.&mt('no').' </label>'."\n". |
'<label><input type="radio" name="vProb" value="yes" /> '.&mt('one student').' </label>'."\n". |
'<label><input type="radio" name="vProb" value="yes" /> '.&mt('one student').' </label>'."\n". |
'<label><input type="radio" name="vProb" value="all" /> '.&mt('all students').' </label>').'<br />'."\n"; |
'<label><input type="radio" name="vProb" value="all" /> '.&mt('all students').' </label><br />'."\n"; |
$gradeTable .= |
$gradeTable .= |
' '. |
' <b>'.&mt('View Answer').': </b>'. |
&mt('<b>View Answer: </b>[_1]', |
|
'<label><input type="radio" name="vAns" value="no" /> '.&mt('no').' </label>'."\n". |
'<label><input type="radio" name="vAns" value="no" /> '.&mt('no').' </label>'."\n". |
'<label><input type="radio" name="vAns" value="yes" /> '.&mt('one student').' </label>'."\n". |
'<label><input type="radio" name="vAns" value="yes" /> '.&mt('one student').' </label>'."\n". |
'<label><input type="radio" name="vAns" value="all" checked="checked" /> '.&mt('all students').' </label>').'<br />'."\n"; |
'<label><input type="radio" name="vAns" value="all" checked="checked" /> '.&mt('all students').' </label><br />'."\n"; |
|
|
my $submission_options; |
my $submission_options; |
if ($env{'form.handgrade'} eq 'yes' && scalar(@$partlist) > 1) { |
if ($env{'form.handgrade'} eq 'yes' && scalar(@$partlist) > 1) { |
Line 863 LISTJAVASCRIPT
|
Line 861 LISTJAVASCRIPT
|
'<label><input type="radio" name="lastSub" value="datesub" /> '.&mt('by dates and submissions').' </label>'."\n". |
'<label><input type="radio" name="lastSub" value="datesub" /> '.&mt('by dates and submissions').' </label>'."\n". |
'<label><input type="radio" name="lastSub" value="all" /> '.&mt('all details').'</label>'; |
'<label><input type="radio" name="lastSub" value="all" /> '.&mt('all details').'</label>'; |
$gradeTable .= |
$gradeTable .= |
' '. |
' <b>'.&mt('Submissions').': </b>'.$submission_options.'<br />'."\n"; |
&mt('<b>Submissions: </b>[_1]',$submission_options).'<br />'."\n"; |
|
|
|
$gradeTable .= |
$gradeTable .= |
' '. |
' <b>'.&mt('Grading Increments').': </b>'. |
&mt('<b>Grading Increments:</b> [_1]', |
|
'<select name="increment">'. |
'<select name="increment">'. |
'<option value="1">'.&mt('Whole Points').'</option>'. |
'<option value="1">'.&mt('Whole Points').'</option>'. |
'<option value=".5">'.&mt('Half Points').'</option>'. |
'<option value=".5">'.&mt('Half Points').'</option>'. |
'<option value=".25">'.&mt('Quarter Points').'</option>'. |
'<option value=".25">'.&mt('Quarter Points').'</option>'. |
'<option value=".1">'.&mt('Tenths of a Point').'</option>'. |
'<option value=".1">'.&mt('Tenths of a Point').'</option>'. |
'</select>'); |
'</select>'; |
|
|
$gradeTable .= |
$gradeTable .= |
&build_section_inputs(). |
&build_section_inputs(). |
Line 893 LISTJAVASCRIPT
|
Line 889 LISTJAVASCRIPT
|
&Apache::lonhtmlcommon::StatusOptions($saveStatus,undef,1,'javascript:reLoadList(this.form);')).'<br />'; |
&Apache::lonhtmlcommon::StatusOptions($saveStatus,undef,1,'javascript:reLoadList(this.form);')).'<br />'; |
} |
} |
|
|
$gradeTable.=&mt('To '.lc($viewgrade).' a submission or a group of submissions, click on the check box(es) '. |
$gradeTable.=&mt('To [_1] a submission or a group of submissions, click on the check box(es) next to the student\'s name(s). Then click on the Next button.',lc($viewgrade)).'<br />'."\n". |
'next to the student\'s name(s). Then click on the Next button.').'<br />'."\n". |
|
'<input type="hidden" name="command" value="processGroup" />'."\n"; |
'<input type="hidden" name="command" value="processGroup" />'."\n"; |
|
|
# checkall buttons |
# checkall buttons |
$gradeTable.=&check_script('gradesub', 'stuinfo'); |
$gradeTable.=&check_script('gradesub', 'stuinfo'); |
$gradeTable.='<input type="button" '."\n". |
$gradeTable.='<input type="button" '."\n". |
'onClick="javascript:checkSelect(this.form.stuinfo);" '."\n". |
'onClick="javascript:checkSelect(this.form.stuinfo);" '."\n". |
'value="'.&mt('Next->').'" /> <br />'."\n"; |
'value="'.&mt('Next').' →" /> <br />'."\n"; |
$gradeTable.=&check_buttons(); |
$gradeTable.=&check_buttons(); |
$gradeTable.='<label><input type="checkbox" name="checkPlag" checked="checked" />'.&mt('Check For Plagiarism').'</label>'; |
$gradeTable.='<label><input type="checkbox" name="checkPlag" checked="checked" />'.&mt('Check For Plagiarism').'</label>'; |
my ($classlist, undef, $fullname) = &getclasslist($getsec,'1',$getgroup); |
my ($classlist, undef, $fullname) = &getclasslist($getsec,'1',$getgroup); |
Line 1021 LISTJAVASCRIPT
|
Line 1016 LISTJAVASCRIPT
|
$gradeTable.=&Apache::loncommon::end_data_table()."\n". |
$gradeTable.=&Apache::loncommon::end_data_table()."\n". |
'<input type="button" '. |
'<input type="button" '. |
'onClick="javascript:checkSelect(this.form.stuinfo);" '. |
'onClick="javascript:checkSelect(this.form.stuinfo);" '. |
'value="'.&mt('Next->').'" /></form>'."\n"; |
'value="'.&mt('Next').' →" /></form>'."\n"; |
if ($ctr == 0) { |
if ($ctr == 0) { |
my $num_students=(scalar(keys(%$fullname))); |
my $num_students=(scalar(keys(%$fullname))); |
if ($num_students eq 0) { |
if ($num_students eq 0) { |
Line 1117 sub processGroup {
|
Line 1112 sub processGroup {
|
#--- Javascript to handle the submission page functionality --- |
#--- Javascript to handle the submission page functionality --- |
sub sub_page_js { |
sub sub_page_js { |
my $request = shift; |
my $request = shift; |
|
my $alertmsg = &mt('A number equal or greater than 0 is expected. Entered value = '); |
$request->print(<<SUBJAVASCRIPT); |
$request->print(<<SUBJAVASCRIPT); |
<script type="text/javascript" language="javascript"> |
<script type="text/javascript" language="javascript"> |
function updateRadio(formname,id,weight) { |
function updateRadio(formname,id,weight) { |
Line 1127 sub sub_page_js {
|
Line 1123 sub sub_page_js {
|
gradeBox.value = pts; |
gradeBox.value = pts; |
var resetbox = false; |
var resetbox = false; |
if (isNaN(pts) || pts < 0) { |
if (isNaN(pts) || pts < 0) { |
alert("A number equal or greater than 0 is expected. Entered value = "+pts); |
alert("$alertmsg"+pts); |
for (var i=0; i<radioButton.length; i++) { |
for (var i=0; i<radioButton.length; i++) { |
if (radioButton[i].checked) { |
if (radioButton[i].checked) { |
gradeBox.value = i; |
gradeBox.value = i; |
Line 1372 INNERJS
|
Line 1368 INNERJS
|
|
|
my $docopen=&Apache::lonhtmlcommon::javascript_docopen(); |
my $docopen=&Apache::lonhtmlcommon::javascript_docopen(); |
$docopen=~s/^document\.//; |
$docopen=~s/^document\.//; |
|
my $alertmsg = &mt('Please select a word or group of words from document and then click this link.'); |
$request->print(<<SUBJAVASCRIPT); |
$request->print(<<SUBJAVASCRIPT); |
<script type="text/javascript" language="javascript"> |
<script type="text/javascript" language="javascript"> |
|
|
Line 1404 INNERJS
|
Line 1401 INNERJS
|
else return; |
else return; |
var cleantxt = txt.replace(new RegExp('([\\f\\n\\r\\t\\v ])+', 'g')," "); |
var cleantxt = txt.replace(new RegExp('([\\f\\n\\r\\t\\v ])+', 'g')," "); |
if (cleantxt=="") { |
if (cleantxt=="") { |
alert("Please select a word or group of words from document and then click this link."); |
alert("$alertmsg"); |
return; |
return; |
} |
} |
var nret = prompt("Add selection to keyword list? Edit if desired.",cleantxt); |
var nret = prompt("Add selection to keyword list? Edit if desired.",cleantxt); |
Line 1659 sub gradeBox {
|
Line 1656 sub gradeBox {
|
$wgt.')" /></td>'."\n"; |
$wgt.')" /></td>'."\n"; |
$line.='<td>/'.$wgt.' '.$wgtmsg. |
$line.='<td>/'.$wgt.' '.$wgtmsg. |
($$record{'resource.'.$partid.'.solved'} eq 'correct_by_student' ? ' '.$checkIcon : ''). |
($$record{'resource.'.$partid.'.solved'} eq 'correct_by_student' ? ' '.$checkIcon : ''). |
' </td><td>'."\n"; |
' </td><td><b>'.&mt('Grade Status').':</b>'."\n"; |
$line.='<select name="GD_SEL'.$counter.'_'.$partid.'" '. |
$line.='<select name="GD_SEL'.$counter.'_'.$partid.'" '. |
'onChange="javascript:clearRadBox(this.form,\''.$counter.'_'.$partid.'\')" >'."\n"; |
'onChange="javascript:clearRadBox(this.form,\''.$counter.'_'.$partid.'\')" >'."\n"; |
if ($$record{'resource.'.$partid.'.solved'} eq 'excused') { |
if ($$record{'resource.'.$partid.'.solved'} eq 'excused') { |
Line 1672 sub gradeBox {
|
Line 1669 sub gradeBox {
|
$line.='<option value="reset status">'.&mt('reset status').'</option></select>'."\n"; |
$line.='<option value="reset status">'.&mt('reset status').'</option></select>'."\n"; |
|
|
|
|
|
#&mt('<td><b>Part:</b></td><td>[_1]</td><td><b>Points:</b></td><td>[_2]</td><td>or</td><td>[_3]</td>',$display_part,$radio,$line); |
$result .= |
$result .= |
&mt('<td><b>Part:</b></td><td>[_1]</td><td><b>Points:</b></td><td>[_2]</td><td>or</td><td>[_3]</td>',$display_part,$radio,$line); |
'<td><b>'.&mt('Part').':</b></td><td>'.$display_part.'</td><td><b>'.&mt('Points').':</b></td><td>'.$radio.'</td><td>'.&mt('or').'</td><td>'.$line.'</td>'. |
|
|
|
|
$result.='</tr></table>'."\n"; |
$result.='</tr></table>'."\n"; |
$result.='<input type="hidden" name="stores'.$counter.'_'.$partid.'" value="" />'."\n". |
$result.='<input type="hidden" name="stores'.$counter.'_'.$partid.'" value="" />'."\n". |
Line 2056 KEYWORDS
|
Line 2053 KEYWORDS
|
$lastsubonly.="\n".'<div class="LC_grade_submission_part"><b>Part:</b> '. |
$lastsubonly.="\n".'<div class="LC_grade_submission_part"><b>Part:</b> '. |
$display_part.' <span class="LC_internal_info">( ID '.$respid. |
$display_part.' <span class="LC_internal_info">( ID '.$respid. |
' )</span> '. |
' )</span> '. |
'<span class="LC_warning">'.&mt('Nothing submitted - no attempts').'</span><br /><br /></div>'; |
'<span class="LC_warning">'.&mt('Nothing submitted - no attempts.').'</span><br /><br /></div>'; |
next; |
next; |
} |
} |
foreach my $submission (@$string) { |
foreach my $submission (@$string) { |
Line 2334 sub get_last_submission {
|
Line 2331 sub get_last_submission {
|
} |
} |
if (!@string) { |
if (!@string) { |
$string[0] = |
$string[0] = |
'<span class="LC_warning">Nothing submitted - no attempts.</span>'; |
'<span class="LC_warning">'.&mt('Nothing submitted - no attempts.').'</span>'; |
} |
} |
return (\@string,\$timestamp); |
return (\@string,\$timestamp); |
} |
} |
Line 2758 sub handback_files {
|
Line 2755 sub handback_files {
|
$newflg.'_'.$part_resp.'_returndoc'.$file_counter, |
$newflg.'_'.$part_resp.'_returndoc'.$file_counter, |
$save_file_name); |
$save_file_name); |
if ($result !~ m|^/uploaded/|) { |
if ($result !~ m|^/uploaded/|) { |
$request->print('<span class="LC_error">An error occurred ('.$result. |
$request->print('<br /><span class="LC_error">'. |
') while trying to upload '.$newflg.'_'.$part_resp.'_returndoc'.$file_counter.'</span><br />'); |
&mt('An error occurred ([_1]) while trying to upload [_2].', |
|
$result,$newflg.'_'.$part_resp.'_returndoc'.$file_counter). |
|
'</span>'); |
} else { |
} else { |
# mark the file as read only |
# mark the file as read only |
my @files = ($save_file_name); |
my @files = ($save_file_name); |
Line 2978 sub file_name_version_ext {
|
Line 2977 sub file_name_version_ext {
|
sub viewgrades_js { |
sub viewgrades_js { |
my ($request) = shift; |
my ($request) = shift; |
|
|
|
my $alertmsg = &mt('A number equal or greater than 0 is expected. Entered value = '); |
$request->print(<<VIEWJAVASCRIPT); |
$request->print(<<VIEWJAVASCRIPT); |
<script type="text/javascript" language="javascript"> |
<script type="text/javascript" language="javascript"> |
function writePoint(partid,weight,point) { |
function writePoint(partid,weight,point) { |
Line 2986 sub viewgrades_js {
|
Line 2986 sub viewgrades_js {
|
if (point == "textval") { |
if (point == "textval") { |
point = document.classgrade["TEXTVAL_"+partid].value; |
point = document.classgrade["TEXTVAL_"+partid].value; |
if (isNaN(point) || parseFloat(point) < 0) { |
if (isNaN(point) || parseFloat(point) < 0) { |
alert("A number equal or greater than 0 is expected. Entered value = "+parseFloat(point)); |
alert("$alertmsg"+parseFloat(point)); |
var resetbox = false; |
var resetbox = false; |
for (var i=0; i<radioButton.length; i++) { |
for (var i=0; i<radioButton.length; i++) { |
if (radioButton[i].checked) { |
if (radioButton[i].checked) { |
Line 3084 sub viewgrades_js {
|
Line 3084 sub viewgrades_js {
|
var weight = document.classgrade["weight_"+partid].value; |
var weight = document.classgrade["weight_"+partid].value; |
|
|
if (isNaN(point) || parseFloat(point) < 0) { |
if (isNaN(point) || parseFloat(point) < 0) { |
alert("A number equal or greater than 0 is expected. Entered value = "+parseFloat(point)); |
alert("$alertmsg"+parseFloat(point)); |
textbox.value = ""; |
textbox.value = ""; |
return; |
return; |
} |
} |
Line 3176 sub viewgrades {
|
Line 3176 sub viewgrades {
|
my $sectionClass; |
my $sectionClass; |
my $section_display = join (", ",&Apache::loncommon::get_env_multiple('form.section')); |
my $section_display = join (", ",&Apache::loncommon::get_env_multiple('form.section')); |
if ($env{'form.section'} eq 'all') { |
if ($env{'form.section'} eq 'all') { |
$sectionClass='Class'; |
$sectionClass=&mt('Class'); |
} elsif ($env{'form.section'} eq 'none') { |
} elsif ($env{'form.section'} eq 'none') { |
$sectionClass='Students in no Section'; |
$sectionClass=&mt('Students in no Section'); |
} else { |
} else { |
$sectionClass='Students in Section(s) [_1]'; |
$sectionClass=&mt('Students in Section(s) [_1]'); |
} |
} |
$result.= |
$result.= |
'<h3>'. |
'<h3>'. |
&mt("Assign Common Grade To $sectionClass",$section_display).'</h3>'; |
&mt("Assign Common Grade to [_1]",$sectionClass,$section_display).'</h3>'; |
$result.= &Apache::loncommon::start_data_table(); |
$result.= &Apache::loncommon::start_data_table(); |
#radio buttons/text box for assigning points for a section or class. |
#radio buttons/text box for assigning points for a section or class. |
#handles different parts of a problem |
#handles different parts of a problem |
Line 3216 sub viewgrades {
|
Line 3216 sub viewgrades {
|
my $line = '<input type="text" name="TEXTVAL_'. |
my $line = '<input type="text" name="TEXTVAL_'. |
$partid.'" size="4" '.'onChange="javascript:writePoint(\''. |
$partid.'" size="4" '.'onChange="javascript:writePoint(\''. |
$partid.'\','.$weight{$partid}.',\'textval\')" /> /'. |
$partid.'\','.$weight{$partid}.',\'textval\')" /> /'. |
$weight{$partid}.' (problem weight)</td>'."\n"; |
$weight{$partid}.' '.&mt('(problem weight)').'</td>'."\n"; |
$line.= '<td><select name="SELVAL_'.$partid.'"'. |
$line.= '<td><b>'.&mt('Grade Status').':</b><select name="SELVAL_'.$partid.'"'. |
'onChange="javascript:writeRadText(\''.$partid.'\','. |
'onChange="javascript:writeRadText(\''.$partid.'\','. |
$weight{$partid}.')"> '. |
$weight{$partid}.')"> '. |
'<option selected="selected"> </option>'. |
'<option selected="selected"> </option>'. |
Line 3232 sub viewgrades {
|
Line 3232 sub viewgrades {
|
|
|
$result.= |
$result.= |
&Apache::loncommon::start_data_table_row()."\n". |
&Apache::loncommon::start_data_table_row()."\n". |
&mt('<td><b>Part:</b></td><td>[_1]</td><td><b>Points:</b></td><td>[_2]</td><td>or</td><td>[_3]</td>',$display_part,$radio,$line). |
'<td><b>'.&mt('Part').':</b></td><td>'.$display_part.'</td><td><b>'.&mt('Points').':</b></td><td>'.$radio.'</td><td>'.&mt('or').'</td><td>'.$line.'</td>'. |
&Apache::loncommon::end_data_table_row()."\n"; |
&Apache::loncommon::end_data_table_row()."\n"; |
$ctsparts++; |
$ctsparts++; |
} |
} |
Line 3243 sub viewgrades {
|
Line 3243 sub viewgrades {
|
|
|
#table listing all the students in a section/class |
#table listing all the students in a section/class |
#header of table |
#header of table |
$result.= '<h3>'.&mt('Assign Grade to Specific Students in '.$sectionClass, |
$result.= '<h3>'.&mt('Assign Grade to Specific Students in ').$sectionClass, |
$section_display).'</h3>'; |
$section_display.'</h3>'; |
$result.= &Apache::loncommon::start_data_table(). |
$result.= &Apache::loncommon::start_data_table(). |
&Apache::loncommon::start_data_table_header_row(). |
&Apache::loncommon::start_data_table_header_row(). |
'<th>'.&mt('No.').'</th>'. |
'<th>'.&mt('No.').'</th>'. |
Line 3254 sub viewgrades {
|
Line 3254 sub viewgrades {
|
my @partids = (); |
my @partids = (); |
foreach my $part (@parts) { |
foreach my $part (@parts) { |
my $display=&Apache::lonnet::metadata($url,$part.'.display'); |
my $display=&Apache::lonnet::metadata($url,$part.'.display'); |
$display =~ s|^Number of Attempts|Tries<br />|; # makes the column narrower |
my $narrowtext = &mt('Tries'); |
|
$display =~ s|^Number of Attempts|$narrowtext <br />|; # makes the column narrower |
if (!$display) { $display = &Apache::lonnet::metadata($url,$part.'.name'); } |
if (!$display) { $display = &Apache::lonnet::metadata($url,$part.'.name'); } |
my ($partid) = &split_part_type($part); |
my ($partid) = &split_part_type($part); |
push(@partids,$partid); |
push(@partids,$partid); |
Line 3426 sub editgrades {
|
Line 3427 sub editgrades {
|
if ($type eq 'awarded' || $type eq 'solved') { next; } |
if ($type eq 'awarded' || $type eq 'solved') { next; } |
my $display=&Apache::lonnet::metadata($url,$stores.'.display'); |
my $display=&Apache::lonnet::metadata($url,$stores.'.display'); |
$display =~ s/\[Part: (\w)+\]//; |
$display =~ s/\[Part: (\w)+\]//; |
$display =~ s/Number of Attempts/Tries/; |
my $narrowtext = &mt('Tries'); |
$header .= '<th align="center">'.&mt('Old '.$display).'</th>'. |
$display =~ s/Number of Attempts/$narrowtext/; |
'<th align="center">'.&mt('New '.$display).'</th>'; |
$header .= '<th align="center">'.&mt('Old').' '.$display.'</th>'. |
|
'<th align="center">'.&mt('New').' '.$display.'</th>'; |
$columns{$partid}+=2; |
$columns{$partid}+=2; |
} |
} |
} |
} |
Line 3770 ENDPICK
|
Line 3772 ENDPICK
|
} |
} |
|
|
sub checkforfile_js { |
sub checkforfile_js { |
|
my $alertmsg = &mt('Please use the browse button to select a file from your local directory.'); |
my $result =<<CSVFORMJS; |
my $result =<<CSVFORMJS; |
<script type="text/javascript" language="javascript"> |
<script type="text/javascript" language="javascript"> |
function checkUpload(formname) { |
function checkUpload(formname) { |
if (formname.upfile.value == "") { |
if (formname.upfile.value == "") { |
alert("Please use the browse button to select a file from your local directory."); |
alert("$alertmsg"); |
return false; |
return false; |
} |
} |
formname.submit(); |
formname.submit(); |
Line 3794 sub upcsvScores_form {
|
Line 3797 sub upcsvScores_form {
|
$result.=$table; |
$result.=$table; |
$result.='<br /><table width="100%" border="0"><tr><td bgcolor="#777777">'."\n"; |
$result.='<br /><table width="100%" border="0"><tr><td bgcolor="#777777">'."\n"; |
$result.='<table width="100%" border="0"><tr bgcolor="#e6ffff"><td>'."\n"; |
$result.='<table width="100%" border="0"><tr bgcolor="#e6ffff"><td>'."\n"; |
$result.=' <b>'.&mt('Specify a file containing the class scores for current resource'). |
$result.=' <b>'.&mt('Specify a file containing the class scores for current resource.'). |
'.</b></td></tr>'."\n"; |
'</b></td></tr>'."\n"; |
$result.='<tr bgcolor=#ffffe6><td>'."\n"; |
$result.='<tr bgcolor=#ffffe6><td>'."\n"; |
my $upload=&mt("Upload Scores"); |
my $upload=&mt("Upload Scores"); |
my $upfile_select=&Apache::loncommon::upfile_select_html(); |
my $upfile_select=&Apache::loncommon::upfile_select_html(); |
Line 4048 sub csvuploadassign {
|
Line 4051 sub csvuploadassign {
|
sub pickStudentPage { |
sub pickStudentPage { |
my ($request) = shift; |
my ($request) = shift; |
|
|
|
my $alertmsg = &mt('Please select the student you wish to grade.'); |
$request->print(<<LISTJAVASCRIPT); |
$request->print(<<LISTJAVASCRIPT); |
<script type="text/javascript" language="javascript"> |
<script type="text/javascript" language="javascript"> |
|
|
function checkPickOne(formname) { |
function checkPickOne(formname) { |
if (radioSelection(formname.student) == null) { |
if (radioSelection(formname.student) == null) { |
alert("Please select the student you wish to grade."); |
alert("$alertmsg"); |
return; |
return; |
} |
} |
ptr = pullDownSelection(formname.selectpage); |
ptr = pullDownSelection(formname.selectpage); |
Line 4088 LISTJAVASCRIPT
|
Line 4092 LISTJAVASCRIPT
|
$ctr++; |
$ctr++; |
} |
} |
$select.= '</select>'; |
$select.= '</select>'; |
$result.=&mt(' <b>Problems from:</b> [_1]',$select)."<br />\n"; |
$result.=' <b>'.&mt('Problems from').':</b> '.$select."<br />\n"; |
|
|
$ctr=0; |
$ctr=0; |
foreach (@$titles) { |
foreach (@$titles) { |
Line 4103 LISTJAVASCRIPT
|
Line 4107 LISTJAVASCRIPT
|
my $options = |
my $options = |
'<label><input type="radio" name="vProb" value="no" checked="checked" /> '.&mt('no').' </label>'."\n". |
'<label><input type="radio" name="vProb" value="no" checked="checked" /> '.&mt('no').' </label>'."\n". |
'<label><input type="radio" name="vProb" value="yes" /> '.&mt('yes').' </label>'."<br />\n"; |
'<label><input type="radio" name="vProb" value="yes" /> '.&mt('yes').' </label>'."<br />\n"; |
$result.=' '.&mt('<b>View Problems Text: </b> [_1]',$options); |
$result.=' <b>'.&mt('View Problem Text').': </b>'.$options; |
|
|
$options = |
$options = |
'<label><input type="radio" name="lastSub" value="none" /> '.&mt('none').' </label>'."\n". |
'<label><input type="radio" name="lastSub" value="none" /> '.&mt('none').' </label>'."\n". |
'<label><input type="radio" name="lastSub" value="datesub" checked="checked" /> '.&mt('by dates and submissions').'</label>'."\n". |
'<label><input type="radio" name="lastSub" value="datesub" checked="checked" /> '.&mt('by dates and submissions').'</label>'."\n". |
'<label><input type="radio" name="lastSub" value="all" /> '.&mt('all details').' </label>'."\n"; |
'<label><input type="radio" name="lastSub" value="all" /> '.&mt('all details').' </label>'."\n"; |
$result.=' '.&mt('<b>Submission Details: </b>[_1]',$options); |
$result.=' <b>'.&mt('Submissions').': </b>'.$options; |
|
|
$result.=&build_section_inputs(); |
$result.=&build_section_inputs(); |
my $stu_status = join(':',&Apache::loncommon::get_env_multiple('form.Status')); |
my $stu_status = join(':',&Apache::loncommon::get_env_multiple('form.Status')); |
Line 4118 LISTJAVASCRIPT
|
Line 4122 LISTJAVASCRIPT
|
'<input type="hidden" name="symb" value="'.&Apache::lonenc::check_encrypt($symb).'" />'."\n". |
'<input type="hidden" name="symb" value="'.&Apache::lonenc::check_encrypt($symb).'" />'."\n". |
'<input type="hidden" name="saveState" value="'.$env{'form.saveState'}.'" />'."<br />\n"; |
'<input type="hidden" name="saveState" value="'.$env{'form.saveState'}.'" />'."<br />\n"; |
|
|
$result.=' '.&mt('<b>Use CODE: [_1] </b>', |
$result.=' <b>'.&mt('Use CODE').': </b> <input type="text" name="CODE" value="" /> <br />'."\n"; |
'<input type="text" name="CODE" value="" />'). |
|
'<br />'."\n"; |
|
|
|
$result.=' <input type="button" '. |
$result.=' <input type="button" '. |
'onClick="javascript:checkPickOne(this.form);" value="'.&mt('Next->').'" /><br />'."\n"; |
'onClick="javascript:checkPickOne(this.form);" value="'.&mt('Next').' →" /><br />'."\n"; |
|
|
$request->print($result); |
$request->print($result); |
|
|
Line 4162 LISTJAVASCRIPT
|
Line 4164 LISTJAVASCRIPT
|
} |
} |
$studentTable.=&Apache::loncommon::end_data_table()."\n"; |
$studentTable.=&Apache::loncommon::end_data_table()."\n"; |
$studentTable.='<input type="button" '. |
$studentTable.='<input type="button" '. |
'onClick="javascript:checkPickOne(this.form);" value="'.&mt('Next->').'" /></form>'."\n"; |
'onClick="javascript:checkPickOne(this.form);" value="'.&mt('Next').' →" /></form>'."\n"; |
|
|
$studentTable.=&show_grading_menu_form($symb); |
$studentTable.=&show_grading_menu_form($symb); |
$request->print($studentTable); |
$request->print($studentTable); |
Line 4299 sub displayPage {
|
Line 4301 sub displayPage {
|
# $request->print('match='.$1."<br />\n"); |
# $request->print('match='.$1."<br />\n"); |
# } |
# } |
# $companswer =~ s|<table border=\"1\">|<table border=\"0\">|g; |
# $companswer =~ s|<table border=\"1\">|<table border=\"0\">|g; |
$studentTable.=' <b>'.$title.'</b> <br /> '.&mt('<b>Correct answer:</b><br />[_1]',$companswer); |
$studentTable.=' <b>'.$title.'</b> <br /> <b>'.&mt('Correct answer').':</b><br />'.$companswer; |
} |
} |
|
|
my %record = &Apache::lonnet::restore($symbx,$env{'request.course.id'},$udom,$uname); |
my %record = &Apache::lonnet::restore($symbx,$env{'request.course.id'},$udom,$uname); |
Line 4369 sub displaySubByDates {
|
Line 4371 sub displaySubByDates {
|
my %orders; |
my %orders; |
$mark{'correct_by_student'} = $checkIcon; |
$mark{'correct_by_student'} = $checkIcon; |
if (!exists($$record{'1:timestamp'})) { |
if (!exists($$record{'1:timestamp'})) { |
return '<br /> <span class="LC_warning">'.&mt('Nothing submitted - no attempts').'</span><br />'; |
return '<br /> <span class="LC_warning">'.&mt('Nothing submitted - no attempts.').'</span><br />'; |
} |
} |
|
|
my $interaction; |
my $interaction; |
Line 6187 sub scantron_validate_file {
|
Line 6189 sub scantron_validate_file {
|
} |
} |
if ($stop) { |
if ($stop) { |
if ($validate_phases[$currentphase] eq 'sequence') { |
if ($validate_phases[$currentphase] eq 'sequence') { |
$r->print('<input type="submit" name="submit" value="'.&mt('Ignore ->').' " />'); |
$r->print('<input type="submit" name="submit" value="'.&mt('Ignore').' → " />'); |
$r->print(' '.&mt('this error').' <br />'); |
$r->print(' '.&mt('this error').' <br />'); |
|
|
$r->print(" <p>".&mt("Or click the 'Grading Menu' button to start over.")."</p>"); |
$r->print(" <p>".&mt("Or click the 'Grading Menu' button to start over.")."</p>"); |
} else { |
} else { |
if ($validate_phases[$currentphase] eq 'doublebubble' || $validate_phases[$currentphase] eq 'missingbubbles') { |
if ($validate_phases[$currentphase] eq 'doublebubble' || $validate_phases[$currentphase] eq 'missingbubbles') { |
$r->print('<input type="button" name="submitbutton" value="'.&mt('Continue ->').'" onclick="javascript:verify_bubble_radio(this.form)" />'); |
$r->print('<input type="button" name="submitbutton" value="'.&mt('Continue').' →" onclick="javascript:verify_bubble_radio(this.form)" />'); |
} else { |
} else { |
$r->print('<input type="submit" name="submit" value="'.&mt('Continue ->').'" />'); |
$r->print('<input type="submit" name="submit" value="'.&mt('Continue').' →" />'); |
} |
} |
$r->print(' '.&mt('using corrected info').' <br />'); |
$r->print(' '.&mt('using corrected info').' <br />'); |
$r->print("<input type='submit' value='".&mt("Skip")."' name='scantron_skip_record' />"); |
$r->print("<input type='submit' value='".&mt("Skip")."' name='scantron_skip_record' />"); |
Line 7240 sub scantron_get_maxbubble {
|
Line 7242 sub scantron_get_maxbubble {
|
foreach my $resource (@resources) { |
foreach my $resource (@resources) { |
my $symb = $resource->symb(); |
my $symb = $resource->symb(); |
|
|
my (@parts,@allparts,@possible_parts); |
my @parts; |
|
|
# Need to retrieve part IDs and response IDs because essayresponse, |
|
# reactionresponse and organicresponse items are not included in |
|
# $analysis{'parts'} from lonnet::ssi. |
|
if (ref($resource->parts()) eq 'ARRAY') { |
|
foreach my $part (@{$resource->parts()}) { |
|
if (!&Apache::loncommon::check_if_partid_hidden($part,$symb,$udom,$uname)) { |
|
my @resp_ids = $resource->responseIds($part); |
|
foreach my $id (@resp_ids) { |
|
my $part_id = $part.'.'.$id; |
|
push(@possible_parts,$part_id); |
|
} |
|
} |
|
} |
|
} |
|
|
|
my $result=&ssi_with_retries($resource->src(), $ssi_retries, |
my $result=&ssi_with_retries($resource->src(), $ssi_retries, |
('symb' => $symb, |
('symb' => $symb, |
Line 7276 sub scantron_get_maxbubble {
|
Line 7263 sub scantron_get_maxbubble {
|
} |
} |
} |
} |
} |
} |
# Add part_ids for any essayresponse, reactionresponse or |
|
# organicresponse items. |
|
foreach my $part_id (@possible_parts) { |
|
if (grep(/^\Q$part_id\E$/,@parts)) { |
|
push(@allparts,$part_id); |
|
} else { |
|
if (($analysis{$part_id.'.type'} eq 'essayresponse') || |
|
($analysis{$part_id.'.type'} eq 'reactionresponse') || |
|
($analysis{$part_id.'.type'} eq 'organicresponse')) { |
|
push(@allparts,$part_id); |
|
} |
|
} |
|
} |
|
|
|
foreach my $part_id (@allparts) { |
foreach my $part_id (@parts) { |
my $lines; |
my $lines; |
|
|
# TODO - make this a persistent hash not an array. |
# TODO - make this a persistent hash not an array. |
Line 7548 sub scantron_upload_scantron_data {
|
Line 7522 sub scantron_upload_scantron_data {
|
<script type="text/javascript" language="javascript"> |
<script type="text/javascript" language="javascript"> |
function checkUpload(formname) { |
function checkUpload(formname) { |
if (formname.upfile.value == "") { |
if (formname.upfile.value == "") { |
alert("Please use the browse button to select a file from your local directory."); |
alert("'.&mt('Please use the browse button to select a file from your local directory.').'"); |
return false; |
return false; |
} |
} |
formname.submit(); |
formname.submit(); |
Line 7994 sub grading_menu {
|
Line 7968 sub grading_menu {
|
'saveState'=>"", |
'saveState'=>"", |
'gradingMenu'=>1, |
'gradingMenu'=>1, |
'showgrading'=>"yes"); |
'showgrading'=>"yes"); |
my $url = &Apache::lonhtmlcommon::build_url('grades/',\%fields); |
|
my @menu = ({ url => $url, |
my $url1 = &Apache::lonhtmlcommon::build_url('grades/',\%fields); |
name => &mt('Manual Grading/View Submissions'), |
|
short_description => |
|
&mt('Start the process of hand grading submissions.'), |
|
}); |
|
$fields{'command'} = 'csvform'; |
$fields{'command'} = 'csvform'; |
$url = &Apache::lonhtmlcommon::build_url('grades/',\%fields); |
my $url2 = &Apache::lonhtmlcommon::build_url('grades/',\%fields); |
push(@menu, { url => $url, |
|
name => &mt('Upload Scores'), |
|
short_description => |
|
&mt('Specify a file containing the class scores for current resource.')}); |
|
$fields{'command'} = 'processclicker'; |
$fields{'command'} = 'processclicker'; |
$url = &Apache::lonhtmlcommon::build_url('grades/',\%fields); |
my $url3 = &Apache::lonhtmlcommon::build_url('grades/',\%fields); |
push(@menu, { url => $url, |
|
name => &mt('Process Clicker'), |
|
short_description => |
|
&mt('Specify a file containing the clicker information for this resource.')}); |
|
$fields{'command'} = 'scantron_selectphase'; |
$fields{'command'} = 'scantron_selectphase'; |
$url = &Apache::lonhtmlcommon::build_url('grades/',\%fields); |
my $url4 = &Apache::lonhtmlcommon::build_url('grades/',\%fields); |
push(@menu, { url => $url, |
|
name => &mt('Grade/Manage/Review Scantron Forms'), |
my @menu = ({ categorytitle=>'Course Grading', |
short_description => |
items =>[ |
&mt('Grade scantron exams, upload/download scantron data files, and review previously graded scantron exams.')}); |
{ linktext => 'Manual Grading/View Submissions', |
$fields{'command'} = 'verify'; |
url => $url1, |
$url = &Apache::lonhtmlcommon::build_url('grades/',\%fields); |
permission => 'F', |
push(@menu, { url => "", |
icon => 'edit-find-replace.png', |
name => &mt('Verify Receipt'), |
linktitle => 'Start the process of hand grading submissions.' |
short_description => |
}, |
&mt('')}); |
{ linktext => 'Upload Scores', |
|
url => $url2, |
|
permission => 'F', |
|
icon => 'uploadscores.png', |
|
linktitle => 'Specify a file containing the class scores for current resource.' |
|
}, |
|
{ linktext => 'Process Clicker', |
|
url => $url3, |
|
permission => 'F', |
|
icon => 'addClickerInfoFile.png', |
|
linktitle => 'Specify a file containing the clicker information for this resource.' |
|
}, |
|
{ linktext => 'Grade/Manage/Review Scantron Forms', |
|
url => $url4, |
|
permission => 'F', |
|
icon => 'stat.png', |
|
linktitle => 'Grade scantron exams, upload/download scantron data files, and review previously graded scantron exams.' |
|
} |
|
] |
|
}); |
|
|
|
#$fields{'command'} = 'verify'; |
|
#$url = &Apache::lonhtmlcommon::build_url('grades/',\%fields); |
# |
# |
# Create the menu |
# Create the menu |
my $Str; |
my $Str; |
Line 8037 sub grading_menu {
|
Line 8024 sub grading_menu {
|
'<input type="hidden" name="gradingMenu" value="1" />'."\n". |
'<input type="hidden" name="gradingMenu" value="1" />'."\n". |
'<input type="hidden" name="showgrading" value="yes" />'."\n"; |
'<input type="hidden" name="showgrading" value="yes" />'."\n"; |
|
|
foreach my $menudata (@menu) { |
$Str .= Apache::lonhtmlcommon::generate_menu(@menu); |
if ($menudata->{'name'} ne &mt('Verify Receipt')) { |
#$menudata->{'jscript'} |
$Str .=' <h3><a '. |
$Str .='<hr /><input type="button" value="'.&mt('Verify Receipt').'" '. |
$menudata->{'jscript'}. |
' onClick="javascript:checkChoice(document.forms.gradingMenu,\'5\',\'verify\')" '. |
' href="'. |
' /> '. |
$menudata->{'url'}.'" >'. |
&Apache::lonnet::recprefix($env{'request.course.id'}). |
$menudata->{'name'}."</a></h3>\n"; |
'-<input type="text" name="receipt" size="4" onChange="javascript:checkReceiptNo(this.form,\'OK\')" />'; |
} else { |
|
$Str .='<hr /><input type="button" value="'.&mt('Verify Receipt').'" '. |
|
$menudata->{'jscript'}. |
|
' onClick="javascript:checkChoice(document.forms.gradingMenu,\'5\',\'verify\')" '. |
|
' /> '. |
|
&Apache::lonnet::recprefix($env{'request.course.id'}). |
|
'-<input type="text" name="receipt" size="4" onChange="javascript:checkReceiptNo(this.form,\'OK\')" />'; |
|
} |
|
$Str .= ' '.(' 'x8).$menudata->{'short_description'}. |
|
"\n"; |
|
} |
|
$Str .="</form>\n"; |
$Str .="</form>\n"; |
|
my $receiptalert = &mt("Please enter a receipt number given by a student in the receipt box."); |
$request->print(<<GRADINGMENUJS); |
$request->print(<<GRADINGMENUJS); |
<script type="text/javascript" language="javascript"> |
<script type="text/javascript" language="javascript"> |
function checkChoice(formname,val,cmdx) { |
function checkChoice(formname,val,cmdx) { |
Line 8083 sub grading_menu {
|
Line 8061 sub grading_menu {
|
if (nospace == "OK" && isNaN(receiptNo)) {checkOpt = true;} |
if (nospace == "OK" && isNaN(receiptNo)) {checkOpt = true;} |
if (nospace == "notOK" && (isNaN(receiptNo) || receiptNo == "")) {checkOpt = true;} |
if (nospace == "notOK" && (isNaN(receiptNo) || receiptNo == "")) {checkOpt = true;} |
if (checkOpt) { |
if (checkOpt) { |
alert("Please enter a receipt number given by a student in the receipt box."); |
alert("$receiptalert"); |
formname.receipt.value = ""; |
formname.receipt.value = ""; |
formname.receipt.focus(); |
formname.receipt.focus(); |
return false; |
return false; |
Line 8104 sub submit_options {
|
Line 8082 sub submit_options {
|
if (!$symb) {return '';} |
if (!$symb) {return '';} |
my $probTitle = &Apache::lonnet::gettitle($symb); |
my $probTitle = &Apache::lonnet::gettitle($symb); |
|
|
|
my $receiptalert = &mt("Please enter a receipt number given by a student in the receipt box."); |
$request->print(<<GRADINGMENUJS); |
$request->print(<<GRADINGMENUJS); |
<script type="text/javascript" language="javascript"> |
<script type="text/javascript" language="javascript"> |
function checkChoice(formname,val,cmdx) { |
function checkChoice(formname,val,cmdx) { |
Line 8131 sub submit_options {
|
Line 8110 sub submit_options {
|
if (nospace == "OK" && isNaN(receiptNo)) {checkOpt = true;} |
if (nospace == "OK" && isNaN(receiptNo)) {checkOpt = true;} |
if (nospace == "notOK" && (isNaN(receiptNo) || receiptNo == "")) {checkOpt = true;} |
if (nospace == "notOK" && (isNaN(receiptNo) || receiptNo == "")) {checkOpt = true;} |
if (checkOpt) { |
if (checkOpt) { |
alert("Please enter a receipt number given by a student in the receipt box."); |
alert("$receiptalert"); |
formname.receipt.value = ""; |
formname.receipt.value = ""; |
formname.receipt.focus(); |
formname.receipt.focus(); |
return false; |
return false; |
Line 8176 GRADINGMENUJS
|
Line 8155 GRADINGMENUJS
|
'.$table.' |
'.$table.' |
</div> |
</div> |
|
|
<div class="columnSection"> |
<div class="LC_columnSection"> |
<div> |
|
<fieldset> |
<fieldset> |
<legend> |
<legend> |
'.&mt('Sections').' |
'.&mt('Sections').' |
Line 8187 GRADINGMENUJS
|
Line 8166 GRADINGMENUJS
|
$result.= '<option value="all" '.($saveSec eq 'all' ? 'selected="selected"' : ''). '>all</option></select> '; |
$result.= '<option value="all" '.($saveSec eq 'all' ? 'selected="selected"' : ''). '>all</option></select> '; |
$result.=' |
$result.=' |
</fieldset> |
</fieldset> |
</div> |
|
|
|
<div> |
|
<fieldset> |
<fieldset> |
<legend> |
<legend> |
'.&mt('Groups').' |
'.&mt('Groups').' |
</legend> |
</legend> |
'.&Apache::lonstatistics::GroupSelect('group','multiple',5).' |
'.&Apache::lonstatistics::GroupSelect('group','multiple',5).' |
</fieldset> |
</fieldset> |
</div> |
|
|
|
<div> |
|
<fieldset> |
<fieldset> |
<legend> |
<legend> |
'.&mt('Access Status').' |
'.&mt('Access Status').' |
</legend> |
</legend> |
'.&Apache::lonhtmlcommon::StatusOptions($saveStatus,undef,5,undef,'mult').' |
'.&Apache::lonhtmlcommon::StatusOptions($saveStatus,undef,5,undef,'mult').' |
</fieldset> |
</fieldset> |
</div> |
|
|
|
<div> |
|
<fieldset> |
<fieldset> |
<legend> |
<legend> |
'.&mt('Submission Status').' |
'.&mt('Submission Status').' |
Line 8220 GRADINGMENUJS
|
Line 8193 GRADINGMENUJS
|
<option value="all" '. ($saveSub eq 'all' ? 'selected="selected"' : '').'>'.&mt('with any status').'</option> |
<option value="all" '. ($saveSub eq 'all' ? 'selected="selected"' : '').'>'.&mt('with any status').'</option> |
</select> |
</select> |
</fieldset> |
</fieldset> |
</div> |
|
</div> |
</div> |
|
|
<br /> |
<br /> |
Line 8240 GRADINGMENUJS
|
Line 8213 GRADINGMENUJS
|
</label> |
</label> |
</div> |
</div> |
<div> |
<div> |
<input type="button" onClick="javascript:checkChoice(this.form,\'2\');" value="'.&mt('Next->').'" /> |
<input type="button" onClick="javascript:checkChoice(this.form,\'2\');" value="'.&mt('Next').' →" /> |
</div> |
</div> |
</div> |
</div> |
|
|
Line 8257 GRADINGMENUJS
|
Line 8230 GRADINGMENUJS
|
</label> |
</label> |
</div> |
</div> |
<div> |
<div> |
<input type="button" onClick="javascript:checkChoice(this.form,\'2\');" value="'.&mt('Next->').'" /> |
<input type="button" onClick="javascript:checkChoice(this.form,\'2\');" value="'.&mt('Next').' →" /> |
</div> |
</div> |
</div> |
</div> |
</form>'; |
</form>'; |
Line 8358 sub process_clicker {
|
Line 8331 sub process_clicker {
|
$result.=$table; |
$result.=$table; |
$result.='<br /><table width="100%" border="0"><tr><td bgcolor="#777777">'."\n"; |
$result.='<br /><table width="100%" border="0"><tr><td bgcolor="#777777">'."\n"; |
$result.='<table width="100%" border="0"><tr bgcolor="#e6ffff"><td>'."\n"; |
$result.='<table width="100%" border="0"><tr bgcolor="#e6ffff"><td>'."\n"; |
$result.=' <b>'.&mt('Specify a file containing the clicker information for this resource'). |
$result.=' <b>'.&mt('Specify a file containing the clicker information for this resource.'). |
'.</b></td></tr>'."\n"; |
'</b></td></tr>'."\n"; |
$result.='<tr bgcolor=#ffffe6><td>'."\n"; |
$result.='<tr bgcolor=#ffffe6><td>'."\n"; |
# Attempt to restore parameters from last session, set defaults if not present |
# Attempt to restore parameters from last session, set defaults if not present |
my %Saveable_Parameters=&clicker_grading_parameters(); |
my %Saveable_Parameters=&clicker_grading_parameters(); |