[LON-CAPA-cvs] cvs: loncom /homework bridgetask.pm grades.pm /interface lonhtmlcommon.pm
raeburn
raeburn at source.lon-capa.org
Mon Jan 2 19:28:30 EST 2012
raeburn Tue Jan 3 00:28:30 2012 EDT
Modified files:
/loncom/homework bridgetask.pm grades.pm
/loncom/interface lonhtmlcommon.pm
Log:
- Bug 6450. Course personnel with vgr priv can view student's prior
versions of a Bridge Task (BT).
- bridgetask.pm
- generation of Show Slot list and Show Grading Status buttons moved
to new routine: &add_slotlist_button().
- "Show Slot list", "Show Grading Status", "Show a previously done version"
"Get a submission to grade", "Change reservation" buttons not shown
when course personnel display student's version of a BT.
- ensure tags have unique ids (replace duplicate LC_task_feedback with
LC_task_answer.
- grades.pm
- Header: "View of the problem" replaced with "View of the problem for
<student name>
- Header: "Correct answer" replaced with "Correct answer for "
<student name>
- New routine: &show_previous_task_version() to show student's previous
version of a BT.
- New routine: &choose_task_version_form() provides a web form to select
display of a student's version of a BT (in same window or in pop-up).
- New routine: &previous_display_javascript() javascript to launch pop-up
etc. for other version.
- &startpage() has four additional args: $stuvcurrent,$stuvdisp,$nomenu,$js
student's current BT version, version being displayed, no page menu (for
pop-up), and javascript to launch previous version pop-up.a
- lonhtmlcommon.pm
- &resource_info_box() has two additional args: $stuvcurrent,$stuvdisp
student's current BT version, and version being displayed.
-------------- next part --------------
Index: loncom/homework/bridgetask.pm
diff -u loncom/homework/bridgetask.pm:1.257 loncom/homework/bridgetask.pm:1.258
--- loncom/homework/bridgetask.pm:1.257 Fri Dec 31 02:40:14 2010
+++ loncom/homework/bridgetask.pm Tue Jan 3 00:28:17 2012
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# definition of tags that give a structure to a document
#
-# $Id: bridgetask.pm,v 1.257 2010/12/31 02:40:14 raeburn Exp $
+# $Id: bridgetask.pm,v 1.258 2012/01/03 00:28:17 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -199,6 +199,10 @@
sub add_previous_version_button {
my ($status)=@_;
+ my (undef,undef,$udom,$uname)=&Apache::lonnet::whichuser();
+ if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) {
+ return;
+ }
my $result;
if ($Apache::lonhomework::history{'resource.0.version'} eq '') {
return '';
@@ -235,7 +239,10 @@
}
sub add_grading_button {
- my (undef,$cid)=&Apache::lonnet::whichuser();
+ my (undef,$cid,$udom,$uname)=&Apache::lonnet::whichuser();
+ if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) {
+ return;
+ }
my $cnum=$env{'course.'.$cid.'.num'};
my $cdom=$env{'course.'.$cid.'.domain'};
my %sections = &Apache::loncommon::get_sections($cdom,$cnum);
@@ -250,10 +257,14 @@
$sec_select .= "\t<option value=\"$sec\">$sec</option>\n";
}
$sec_select .= "\t<option value='none'>none</option>\n</select>\n";
-
- my $result="\n\t".'<input type="submit" name="gradeasubmission" value="'.
- &mt("Get a submission to grade").'" />';
- $result.="\n\t".'<input type="hidden" name="grade_target" value="webgrade" />';
+
+ my $uri=$env{'request.uri'};
+ if ($env{'request.enc'}) { $uri=&Apache::lonenc::encrypted($uri); }
+ my $result =
+ '<form name="gradesubmission" method="post" action="'.$uri.'">'.
+ "\n\t".'<input type="submit" name="gradeasubmission" value="'.
+ &mt("Get a submission to grade").'" />'.
+ "\n\t".'<input type="hidden" name="grade_target" value="webgrade" />';
my $see_all = &Apache::lonnet::allowed('mgq',$env{'request.course.id'});
my $see_sec = &Apache::lonnet::allowed('mgq',$env{'request.course.id'}.
'/'.$env{'request.course.sec'});
@@ -299,11 +310,46 @@
$result.=&Apache::loncommon::studentbrowser_javascript();
$result.= '</p>'."\n";
}
+ $result .= '</form>'."\n";
+ return $result;
+}
+
+sub add_slotlist_button {
+ my (undef,$cid,$udom,$uname)=&Apache::lonnet::whichuser();
+ if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) {
+ return;
+ }
+ my $symb=&Apache::lonnet::symbread();
+ my $result;
+ if (&Apache::lonnet::allowed('mgq',$env{'request.course.id'}) ||
+ &Apache::lonnet::allowed('mgq',$env{'request.course.id'}.'/'.$env{'request.course.sec'})) {
+ $result = '<form method="post" name="slotrequest" action="/adm/slotrequest">'.
+ '<input type="hidden" name="symb" value="'.$symb.'" />'.
+ '<input type="hidden" name="command" value="showslots" />'.
+ '<input type="submit" name="requestattempt" value="'.
+ &mt('Show Slot list').'" />'.
+ '</form>';
+ my $target_id =
+ &Apache::lonstathelpers::make_target_id({symb => $symb,
+ part => '0'});
+ if (!§ion_restricted()) {
+ $result.='<form method="post" name="gradingstatus" action="/adm/statistics">'.
+ '<input type="hidden" name="problemchoice" value="'.$target_id.'" />'.
+ '<input type="hidden" name="reportSelected" value="grading_analysis" />'.
+ '<input type="submit" name="grading" value="'.
+ &mt('Show Grading Status').'" />'.
+ '</form>';
+ }
+ }
return $result;
}
sub add_request_another_attempt_button {
my ($text)=@_;
+ my (undef,$cid,$udom,$uname)=&Apache::lonnet::whichuser();
+ if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) {
+ return;
+ }
if (!$text) { $text=&mt('Request another attempt'); }
my $result;
my $symb=&Apache::lonnet::symbread();
@@ -642,30 +688,11 @@
if ($target eq 'web' && $env{'request.state'} ne 'construct') {
if ($Apache::lonhomework::queuegrade
|| $Apache::lonhomework::modifygrades) {
- $result.='<form name="gradesubmission" method="post" action="';
- my $uri=$env{'request.uri'};
- if ($env{'request.enc'}) { $uri=&Apache::lonenc::encrypted($uri); }
- $result.=$uri.'">'.&add_grading_button()."</form>\n";
+ $result .= &add_grading_button();
my $symb=&Apache::lonnet::symbread();
if (&Apache::lonnet::allowed('mgq',$env{'request.course.id'})
|| &Apache::lonnet::allowed('mgq',$env{'request.course.id'}.'/'.$env{'request.course.sec'})) {
- $result.='<form method="post" name="slotrequest" action="/adm/slotrequest">'.
- '<input type="hidden" name="symb" value="'.$symb.'" />'.
- '<input type="hidden" name="command" value="showslots" />'.
- '<input type="submit" name="requestattempt" value="'.
- &mt('Show Slot list').'" />'.
- '</form>';
- my $target_id =
- &Apache::lonstathelpers::make_target_id({symb => $symb,
- part => '0'});
- if (!§ion_restricted()) {
- $result.='<form method="post" name="gradingstatus" action="/adm/statistics">'.
- '<input type="hidden" name="problemchoice" value="'.$target_id.'" />'.
- '<input type="hidden" name="reportSelected" value="grading_analysis" />'.
- '<input type="submit" name="grading" value="'.
- &mt('Show Grading Status').'" />'.
- '</form>';
- }
+ $result .= &add_slotlist_button();
}
}
}
@@ -693,9 +720,12 @@
($version,$previous)=&get_version();
}
- my $status_id =
- ($previous || $status eq 'SHOW_ANSWER') ? 'LC_task_feedback'
- : 'LC_task_take';
+ my $status_id = 'LC_task_take';
+ if ($previous && $target eq 'answer') {
+ $status_id = 'LC_task_answer';
+ } elsif ($previous || $status eq 'SHOW_ANSWER') {
+ $status_id = 'LC_task_feedback';
+ }
$result .= '<div class="LC_task" id="'.$status_id.'">'."\n";
push(@Apache::inputtags::status,$status);
@@ -1214,7 +1244,9 @@
}
$result.="\n</div>\n".
&Apache::loncommon::end_page({'discussion' => 1});
- }
+ } elsif ($target eq 'answer') {
+ $result.="\n</div>\n";
+ }
}
my $useslots = &Apache::lonnet::EXT("resource.0.useslots");
@@ -1225,7 +1257,7 @@
} elsif (defined($Apache::lonhomework::history{"resource.$version.0.checkedin.slot"})) {
$queue_data{'slot'} = $Apache::lonhomework::history{"resource.$version.0.checkedin.slot"};
}
-
+
if ($target eq 'grade' && !$env{'form.webgrade'} && !$previous
&& $status eq 'CAN_ANSWER') {
Index: loncom/homework/grades.pm
diff -u loncom/homework/grades.pm:1.670 loncom/homework/grades.pm:1.671
--- loncom/homework/grades.pm:1.670 Mon Jan 2 22:09:25 2012
+++ loncom/homework/grades.pm Tue Jan 3 00:28:17 2012
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# The LON-CAPA Grading handler
#
-# $Id: grades.pm,v 1.670 2012/01/02 22:09:25 raeburn Exp $
+# $Id: grades.pm,v 1.671 2012/01/03 00:28:17 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1827,14 +1827,27 @@
$companswer=~s|</form>||g;
$companswer=~s|name="submit"|name="would_have_been_submit"|g;
}
+ my $renderheading = &mt('View of the problem');
+ my $answerheading = &mt('Correct answer');
+ if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) {
+ my $stu_fullname = $env{'form.fullname'};
+ if ($stu_fullname eq '') {
+ $stu_fullname = &Apache::loncommon::plainname($uname,$udom,'lastname');
+ }
+ my $forwhom = &nameUserString(undef,$stu_fullname,$uname,$udom);
+ if ($forwhom ne '') {
+ $renderheading = &mt('View of the problem for[_1]',$forwhom);
+ $answerheading = &mt('Correct answer for[_1]',$forwhom);
+ }
+ }
$rendered=
'<div class="LC_Box">'
- .'<h3 class="LC_hcell">'.&mt('View of the problem').'</h3>'
+ .'<h3 class="LC_hcell">'.$renderheading.'</h3>'
.$rendered
.'</div>';
$companswer=
'<div class="LC_Box">'
- .'<h3 class="LC_hcell">'.&mt('Correct answer').'</h3>'
+ .'<h3 class="LC_hcell">'.$answerheading.'</h3>'
.$companswer
.'</div>';
my $result;
@@ -2506,6 +2519,183 @@
return $string;
}
+# For Tasks provide a mechanism to display previous version for one specific student
+
+sub show_previous_task_version {
+ my ($request,$symb) = @_;
+ if ($symb eq '') {
+ $request->print("Unable to handle ambiguous references.");
+
+ return '';
+ }
+ my ($uname,$udom) = ($env{'form.student'},$env{'form.userdom'});
+ my $usec = &Apache::lonnet::getsection($udom,$uname,$env{'request.course.id'});
+ if (!&canview($usec)) {
+ $request->print('<span class="LC_warning">Unable to view previous version for requested student.('.
+ $uname.':'.$udom.' in section '.$usec.' in course id '.
+ $env{'request.course.id'}.')</span>');
+ return;
+ }
+ my $mode = 'both';
+ my $isTask = ($symb =~/\.task$/);
+ if ($isTask) {
+ if ($env{'form.previousversion'} =~ /^\d+$/) {
+ if ($env{'form.fullname'} eq '') {
+ $env{'form.fullname'} =
+ &Apache::loncommon::plainname($uname,$udom,'lastname');
+ }
+ my $probtitle=&Apache::lonnet::gettitle($symb);
+ $request->print("\n\n".
+ '<div class="LC_grade_show_user">'.
+ '<h2>'.&nameUserString(undef,$env{'form.fullname'},$uname,$udom).
+ '</h2>'."\n");
+ &Apache::lonxml::clear_problem_counter();
+ $request->print(&show_problem($request,$symb,$uname,$udom,1,1,$mode,
+ {'previousversion' => $env{'form.previousversion'} }));
+ $request->print("\n</div>");
+ }
+ }
+ return;
+}
+
+sub choose_task_version_form {
+ my ($symb,$uname,$udom,$nomenu) = @_;
+ my $isTask = ($symb =~/\.task$/);
+ my ($current,$version,$result,$js,$displayed,$rowtitle);
+ if ($isTask) {
+ my %record = &Apache::lonnet::restore($symb,$env{'request.course.id'},
+ $udom,$uname);
+ if (($record{'resource.0.version'} eq '') ||
+ ($record{'resource.0.version'} < 2)) {
+ return ($record{'resource.0.version'},
+ $record{'resource.0.version'},$result,$js);
+ } else {
+ $current = $record{'resource.0.version'};
+ }
+ if ($env{'form.previousversion'}) {
+ $displayed = $env{'form.previousversion'};
+ $rowtitle = &mt('Choose another version:')
+ } else {
+ $displayed = $current;
+ $rowtitle = &mt('Show earlier version:');
+ }
+ $result = '<div class="LC_left_float">';
+ my $list;
+ my $numversions = 0;
+ for (my $i=1; $i<=$record{'resource.0.version'}; $i++) {
+ if ($i == $current) {
+ if (!$env{'form.previousversion'} || $nomenu) {
+ next;
+ } else {
+ $list .= '<option value="'.$i.'">'.&mt('Current').'</option>'."\n";
+ $numversions ++;
+ }
+ } elsif (defined($record{'resource.'.$i.'.0.status'})) {
+ unless ($i == $env{'form.previousversion'}) {
+ $numversions ++;
+ }
+ $list .= '<option value="'.$i.'">'.$i.'</option>'."\n";
+ }
+ }
+ if ($numversions) {
+ $symb = &HTML::Entities::encode($symb,'<>"&');
+ $result .=
+ '<form name="getprev" method="post" action=""'.
+ ' onsubmit="return previousVersion('."'$uname','$udom','$symb','$displayed'".');">'.
+ &Apache::loncommon::start_data_table().
+ &Apache::loncommon::start_data_table_row().
+ '<th align="left">'.$rowtitle.'</th>'.
+ '<td><select name="version">'.
+ '<option>'.&mt('Select').'</option>'.
+ $list.
+ '</select></td>'.
+ &Apache::loncommon::end_data_table_row();
+ unless ($nomenu) {
+ $result .= &Apache::loncommon::start_data_table_row().
+ '<th align="left">'.&mt('Open in new window').'</th>'.
+ '<td><span class="LC_nobreak">'.
+ '<label><input type="radio" name="prevwin" value="1" />'.
+ &mt('Yes').'</label>'.
+ '<label><input type="radio" name="prevwin" value="0" checked="checked" />'.&mt('No').'</label>'.
+ '</span></td>'.
+ &Apache::loncommon::end_data_table_row();
+ }
+ $result .=
+ &Apache::loncommon::start_data_table_row().
+ '<th align="left"> </th>'.
+ '<td>'.
+ '<input type="submit" name="prevsub" value="'.&mt('Display').'" />'.
+ '</td>'.
+ &Apache::loncommon::end_data_table_row().
+ &Apache::loncommon::end_data_table().
+ '</form>';
+ $js = &previous_display_javascript($nomenu,$current);
+ } elsif ($displayed && $nomenu) {
+ $result .= '<a href="javascript:window.close()">'.&mt('Close window').'</a>';
+ } else {
+ $result .= &mt('No previous versions to show for this student');
+ }
+ $result .= '</div>';
+ }
+ return ($current,$displayed,$result,$js);
+}
+
+sub previous_display_javascript {
+ my ($nomenu,$current) = @_;
+ my $js = <<"JSONE";
+<script type="text/javascript">
+// <![CDATA[
+function previousVersion(uname,udom,symb) {
+ var current = '$current';
+ var version = document.getprev.version.options[document.getprev.version.selectedIndex].value;
+ var prevstr = new RegExp("^\\\\d+\$");
+ if (!prevstr.test(version)) {
+ return false;
+ }
+ var url = '';
+ if (version == current) {
+ url = '/adm/grades?student='+uname+'&userdom='+udom+'&symb='+symb+'&command=submission';
+ } else {
+ url = '/adm/grades?student='+uname+'&userdom='+udom+'&symb='+symb+'&command=versionsub&previousversion='+version;
+ }
+JSONE
+ if ($nomenu) {
+ $js .= <<"JSTWO";
+ document.location.href = url;
+JSTWO
+ } else {
+ $js .= <<"JSTHREE";
+ var newwin = 0;
+ for (var i=0; i<document.getprev.prevwin.length; i++) {
+ if (document.getprev.prevwin[i].checked == true) {
+ newwin = document.getprev.prevwin[i].value;
+ }
+ }
+ if (newwin == 1) {
+ var options = 'height=600,width=800,resizable=yes,scrollbars=yes,location=no,menubar=no,toolbar=no';
+ url = url+'&inhibitmenu=yes';
+ if (typeof(previousWin) == 'undefined' || previousWin.closed) {
+ previousWin = window.open(url,'',options,1);
+ } else {
+ previousWin.location.href = url;
+ }
+ previousWin.focus();
+ return false;
+ } else {
+ document.location.href = url;
+ return false;
+ }
+JSTHREE
+ }
+ $js .= <<"ENDJS";
+ return false;
+}
+// ]]>
+</script>
+ENDJS
+
+}
+
#--- Called from submission routine
sub processHandGrade {
my ($request,$symb) = @_;
@@ -4538,6 +4728,7 @@
&Apache::loncommon::start_data_table_header_row().
'<th>'.&mt('Date/Time').'</th>'.
($isCODE?'<th>'.&mt('CODE').'</th>':'').
+ ($isTask?'<th>'.&mt('Version').'</th>':'').
'<th>'.&mt('Submission').'</th>'.
'<th>'.&mt('Status').'</th>'.
&Apache::loncommon::end_data_table_header_row();
@@ -4558,7 +4749,9 @@
if (exists($$record{$version.':resource.0.version'})) {
$interaction = $$record{$version.':resource.0.version'};
}
-
+ if ($isTask && $env{'form.previousversion'}) {
+ next unless ($interaction == $env{'form.previousversion'});
+ }
my $where = ($isTask ? "$version:resource.$interaction"
: "$version:resource");
$studentTable.=&Apache::loncommon::start_data_table_row().
@@ -4566,6 +4759,9 @@
if ($isCODE) {
$studentTable.='<td>'.$record->{$version.':resource.CODE'}.'</td>';
}
+ if ($isTask) {
+ $studentTable.='<td>'.$interaction.'</td>';
+ }
my @versionKeys = split(/\:/,$$record{$version.':keys'});
my @displaySub = ();
foreach my $partid (@{$parts}) {
@@ -5410,6 +5606,7 @@
LastNameLength - number of columns that the last name spans
BubblesPerRow - number of bubbles available in each row used to
bubble an answer. (If not specified, 10 assumed).
+
=cut
sub get_scantron_config {
@@ -9380,13 +9577,17 @@
}
sub startpage {
- my ($r,$symb,$crumbs,$onlyfolderflag,$nodisplayflag) = @_;
- unshift(@$crumbs,{href=>&href_symb_cmd($symb,'gradingmenu'),text=>"Grading"});
- $r->print(&Apache::loncommon::start_page('Grading',undef,
- {'bread_crumbs' => $crumbs}));
- &Apache::lonquickgrades::startGradeScreen($r,($env{'form.symb'}?'probgrading':'grading'));
+ my ($r,$symb,$crumbs,$onlyfolderflag,$nodisplayflag,$stuvcurrent,$stuvdisp,$nomenu,$js) = @_;
+ if ($nomenu) {
+ $r->print(&Apache::loncommon::start_page("Student's Version",$js,{'only_body' => '1'}));
+ } else {
+ unshift(@$crumbs,{href=>&href_symb_cmd($symb,'gradingmenu'),text=>"Grading"});
+ $r->print(&Apache::loncommon::start_page('Grading',$js,
+ {'bread_crumbs' => $crumbs}));
+ &Apache::lonquickgrades::startGradeScreen($r,($env{'form.symb'}?'probgrading':'grading'));
+ }
unless ($nodisplayflag) {
- $r->print(&Apache::lonhtmlcommon::resource_info_box($symb,$onlyfolderflag));
+ $r->print(&Apache::lonhtmlcommon::resource_info_box($symb,$onlyfolderflag,$stuvcurrent,$stuvdisp));
}
}
@@ -9449,8 +9650,29 @@
&select_problem($request);
} else {
if ($command eq 'submission' && $perm{'vgr'}) {
- &startpage($request,$symb,[{href=>"", text=>"Student Submissions"}]);
+ my ($stuvcurrent,$stuvdisp,$versionform,$js);
+ if (($env{'form.student'} ne '') && ($env{'form.userdom'} ne '')) {
+ ($stuvcurrent,$stuvdisp,$versionform,$js) =
+ &choose_task_version_form($symb,$env{'form.student'},
+ $env{'form.userdom'});
+ }
+ &startpage($request,$symb,[{href=>"", text=>"Student Submissions"}],undef,undef,$stuvcurrent,$stuvdisp,undef,$js);
+ if ($versionform) {
+ $request->print($versionform);
+ }
+ $request->print('<br clear="all" />');
($env{'form.student'} eq '' ? &listStudents($request,$symb) : &submission($request,0,0,$symb));
+ } elsif ($command eq 'versionsub' && $perm{'vgr'}) {
+ my ($stuvcurrent,$stuvdisp,$versionform,$js) =
+ &choose_task_version_form($symb,$env{'form.student'},
+ $env{'form.userdom'},
+ $env{'form.inhibitmenu'});
+ &startpage($request,$symb,[{href=>"", text=>"Previous Student Version"}],undef,undef,$stuvcurrent,$stuvdisp,$env{'form.inhibitmenu'},$js);
+ if ($versionform) {
+ $request->print($versionform);
+ }
+ $request->print('<br clear="all" />');
+ $request->print(&show_previous_task_version($request,$symb));
} elsif ($command eq 'pickStudentPage' && $perm{'vgr'}) {
&startpage($request,$symb,[{href=>&href_symb_cmd($symb,'all_for_one'),text=>'Grade page/folder for one student'},
{href=>'',text=>'Select student'}],1,1);
@@ -9588,7 +9810,11 @@
if ($ssi_error) {
&ssi_print_error($request);
}
- &Apache::lonquickgrades::endGradeScreen($request);
+ if ($env{'form.inhibitmenu'}) {
+ $request->print(&Apache::loncommon::end_page());
+ } else {
+ &Apache::lonquickgrades::endGradeScreen($request);
+ }
&reset_caches();
return OK;
}
@@ -9659,6 +9885,75 @@
=over
+=head1 Routines to display previous version of a Task for a specific student
+
+Tasks are graded pass/fail. Students who have yet to pass a particular Task
+can receive another opportunity. Access to tasks is slot-based. If a slot
+requires a proctor to check-in the student, a new version of the Task will
+be created when the student is checked in to the new opportunity.
+
+If a particular student has tried two or more versions of a particular task,
+the submission screen provides a user with vgr privileges (e.g., a Course
+Coordinator) the ability to display a previous version worked on by the
+student. By default, the current version is displayed. If a previous version
+has been selected for display, submission data are only shown that pertain
+to that particular version, and the interface to submit grades is not shown.
+
+=over 4
+
+=item show_previous_task_version()
+
+Displays a specified version of a student's Task, as the student sees it.
+
+Inputs: 2
+ request - request object
+ symb - unique symb for current instance of resource
+
+Output: None.
+
+Side Effects: calls &show_problem() to print version of Task, with
+ version contained in form item: $env{'form.previousversion'}
+
+=item choose_task_version_form()
+
+Displays a web form used to select which version of a student's view of a
+Task should be displayed. Either launches a pop-up window, or replaces
+content in existing pop-up, or replaces page in main window.
+
+Inputs: 4
+ symb - unique symb for current instance of resource
+ uname - username of student
+ udom - domain of student
+ nomenu - 1 if display is in a pop-up window, and hence no menu
+ breadcrumbs etc., are displayed
+
+Output: 4
+ current - student's current version
+ displayed - student's version being displayed
+ result - scalar containing HTML for web form used to switch to
+ a different version (or a link to close window, if pop-up).
+ js - javascript for processing selection in versions web form
+
+Side Effects: None.
+
+=item previous_display_javascript()
+
+Inputs: 2
+ nomenu - 1 if display is in a pop-up window, and hence no menu
+ breadcrumbs etc., are displayed.
+ current - student's current version number.
+
+Output: 1
+ js - javascript for processing selection in versions web form.
+
+Side Effects: None.
+
+=back
+
+=head1 Routines to process bubblesheet data.
+
+=over 4
+
=item scantron_get_correction() :
Builds the interface screen to interact with the operator to fix a
@@ -9764,7 +10059,9 @@
=item navmap_errormsg() :
Returns HTML mark-up inside a <div></div> with a link to re-initialize the course.
- Should be called whenever the request to instantiate a navmap object fails.
+ Should be called whenever the request to instantiate a navmap object fails.
+
+=back
=back
Index: loncom/interface/lonhtmlcommon.pm
diff -u loncom/interface/lonhtmlcommon.pm:1.299 loncom/interface/lonhtmlcommon.pm:1.300
--- loncom/interface/lonhtmlcommon.pm:1.299 Mon Jan 2 20:38:18 2012
+++ loncom/interface/lonhtmlcommon.pm Tue Jan 3 00:28:29 2012
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common html routines
#
-# $Id: lonhtmlcommon.pm,v 1.299 2012/01/02 20:38:18 raeburn Exp $
+# $Id: lonhtmlcommon.pm,v 1.300 2012/01/03 00:28:29 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -2003,26 +2003,41 @@
sub resource_info_box {
- my ($symb,$onlyfolderflag)=@_;
+ my ($symb,$onlyfolderflag,$stuvcurrent,$stuvdisp)=@_;
my $return='';
+ if ($stuvcurrent ne '') {
+ $return = '<div class="LC_left_float">';
+ }
if ($symb) {
- $return=&Apache::loncommon::start_data_table();
+ $return.=&Apache::loncommon::start_data_table();
my ($map,$id,$resource)=&Apache::lonnet::decode_symb($symb);
my $folder=&Apache::lonnet::gettitle($map);
$return.=&Apache::loncommon::start_data_table_row().
- '<th>'.&mt('Folder:').'</th><td>'.$folder.'</td>'.
+ '<th align="left">'.&mt('Folder:').'</th><td>'.$folder.'</td>'.
&Apache::loncommon::end_data_table_row();
unless ($onlyfolderflag) {
$return.=&Apache::loncommon::start_data_table_row().
- '<th>'.&mt('Resource:').'</th><td>'.&Apache::lonnet::gettitle($symb).'</td>'.
+ '<th align="left">'.&mt('Resource:').'</th><td>'.&Apache::lonnet::gettitle($symb).'</td>'.
+ &Apache::loncommon::end_data_table_row();
+ }
+ if ($stuvcurrent ne '') {
+ $return .= &Apache::loncommon::start_data_table_row().
+ '<th align="left">'.&mt("Student's current version:").'</th><td>'.$stuvcurrent.'</td>'.
+ &Apache::loncommon::end_data_table_row();
+ }
+ if ($stuvdisp ne '') {
+ $return .= &Apache::loncommon::start_data_table_row().
+ '<th align="left">'.&mt("Student's version displayed:").'</th><td>'.$stuvdisp.'</td>'.
&Apache::loncommon::end_data_table_row();
}
$return.=&Apache::loncommon::end_data_table();
} else {
$return='<p><span class="LC_error">'.&mt('No context provided.').'</span></p>';
}
+ if ($stuvcurrent ne '') {
+ $return .= '</div>';
+ }
return $return;
-
}
##############################################
More information about the LON-CAPA-cvs
mailing list