[LON-CAPA-cvs] cvs: loncom /homework optionresponse.pm
www
www@source.lon-capa.org
Fri, 05 Feb 2010 15:34:02 -0000
www Fri Feb 5 15:34:02 2010 EDT
Modified files:
/loncom/homework optionresponse.pm
Log:
Saving my work: bug #2294 true/false as checkbox
Still needs XML structure and editor interface, otherwise works.
Index: loncom/homework/optionresponse.pm
diff -u loncom/homework/optionresponse.pm:1.158 loncom/homework/optionresponse.pm:1.159
--- loncom/homework/optionresponse.pm:1.158 Mon May 4 13:42:50 2009
+++ loncom/homework/optionresponse.pm Fri Feb 5 15:34:02 2010
@@ -1,7 +1,7 @@
# LearningOnline Network with CAPA
# option list style responses
#
-# $Id: optionresponse.pm,v 1.158 2009/05/04 13:42:50 onken Exp $
+# $Id: optionresponse.pm,v 1.159 2010/02/05 15:34:02 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -463,12 +463,39 @@
}
}
}
+# debug for checkbox
+ my $checkboxopt='';
+# end debug for checkbox
if ($target ne 'tex') {
if ($Apache::lonhomework::type ne 'exam') {
- $optionlist='<select onchange="javascript:setSubmittedPart(\''.
+# we are on the web, this is not an exam, and the problem can be answered
+ if ($checkboxopt) {
+# generate checkboxes
+ my $fieldname=$Apache::inputtags::response['-1'].':'.$temp;
+ my $altopt=$opt[0];
+ if ($opt[0] eq $checkboxopt) {
+ $altopt=$opt[1];
+ }
+ my $defopt=$lastopt;
+ unless ($defopt) { $defopt=$altopt; }
+ my $escdefopt=&HTML::Entities::encode($defopt,'\'"&<>');
+ my $esccheckboxopt=&HTML::Entities::encode($checkboxopt,'\'"&<>');
+ my $escaltopt=&HTML::Entities::encode($altopt,'\'"&<>');
+# checkboxopt is how the box is labelled
+# altopt is the alternative option
+# lastopt is what the user submitted before
+# defopt is what the field is going to start out with: either previous choice or altopt
+# fieldname is this input field's name after HWVAL_
+ $optionlist='<input type="hidden" name="HWVAL_'.$fieldname.'" value="'.$escdefopt.'" />'.
+ '<label><input type="checkbox" name="HWCHK_'.$fieldname.'" onclick="javascript:if (this.form.elements[\'HWCHK_'.
+ $fieldname.'\'].checked) { this.form.elements[\'HWVAL_'.$fieldname.'\'].value=\''.$esccheckboxopt.'\'; } else { this.form.elements[\'HWVAL_'.$fieldname.'\'].value=\''.$escaltopt.'\'; };setSubmittedPart(\''.$part.'\');"'.($defopt eq $checkboxopt?' checked="checked"':'').' /><i>'.$checkboxopt.":</i></label>\n";
+ } else {
+# classic selection list
+ $optionlist='<select onchange="javascript:setSubmittedPart(\''.
$part.'\');" name="HWVAL_'.
$Apache::inputtags::response['-1'].':'.$temp.'">'.
$optionlist."</select>\n";
+ }
} else {
$optionlist='<u>'.(' 'x10).'</u>';
}