version 1.480, 2010/12/19 21:12:20
|
version 1.491, 2011/07/21 09:18:40
|
Line 128 sub homework_js {
|
Line 128 sub homework_js {
|
&setmode_javascript(). |
&setmode_javascript(). |
<<'JS'; |
<<'JS'; |
<script type="text/javascript"> |
<script type="text/javascript"> |
|
// <![CDATA[ |
function setSubmittedPart (part) { |
function setSubmittedPart (part) { |
this.document.lonhomework.submitted.value="part_"+part; |
this.document.lonhomework.submitted.value="part_"+part; |
} |
} |
Line 145 function image_response_click (which, e)
|
Line 146 function image_response_click (which, e)
|
input_element.value = click; |
input_element.value = click; |
img_element.src = '/adm/randomlabel.png?token='+token+'&clickdata='+click; |
img_element.src = '/adm/randomlabel.png?token='+token+'&clickdata='+click; |
} |
} |
|
// ]]> |
</script> |
</script> |
JS |
JS |
} |
} |
Line 153 JS
|
Line 154 JS
|
sub setmode_javascript { |
sub setmode_javascript { |
return <<"ENDSCRIPT"; |
return <<"ENDSCRIPT"; |
<script type="text/javascript"> |
<script type="text/javascript"> |
|
// <![CDATA[ |
function setmode(form,probmode) { |
function setmode(form,probmode) { |
form.problemmode.value = probmode; |
form.problemmode.value = probmode; |
form.submit(); |
form.submit(); |
} |
} |
|
// ]]> |
</script> |
</script> |
ENDSCRIPT |
ENDSCRIPT |
} |
} |
|
|
sub file_delchk_js { |
sub file_delchk_js { |
my $delfilewarn = &mt('You have indicated you wish to delete some files previously included for submission.').'\\n'. |
my $delfilewarn = &mt('You have indicated you wish to remove some files previously included in your submission.').'\\n'. |
&mt('Deleted files will not be graded.').' '. |
&mt('Continue submission with these files removed?'); |
&mt('Submit Answer?'); |
|
return <<"ENDSCRIPT"; |
return <<"ENDSCRIPT"; |
<script type="text/javascript"> |
<script type="text/javascript"> |
|
// <![CDATA[ |
function file_deletion_check(formname) { |
function file_deletion_check(formname) { |
var str = new RegExp("^HWFILE.+_delete\$"); |
|
var delfilecount = 0; |
|
var elemnum = formname.elements.length; |
var elemnum = formname.elements.length; |
if (elemnum == 0) { |
if (elemnum == 0) { |
return true; |
return true; |
} |
} |
for (i=0; i<formname.elements.length; i++) { |
var str = new RegExp("^HWFILE.+_delete\$"); |
|
var delboxes = new Array(); |
|
for (var i=0; i<formname.elements.length; i++) { |
var id = formname.elements[i].id; |
var id = formname.elements[i].id; |
if (id != '') { |
if (id != '') { |
if (str.test(id)) { |
if (str.test(id)) { |
if (formname.elements[i].type == 'checkbox') { |
if (formname.elements[i].type == 'checkbox') { |
if (formname.elements[i].checked) { |
if (formname.elements[i].checked) { |
delfilecount ++; |
delboxes.push(id); |
} |
} |
} |
} |
} |
} |
} |
} |
} |
} |
if (delfilecount > 0) { |
if (delboxes.length > 0) { |
if (confirm("$delfilewarn")) { |
if (confirm("$delfilewarn")) { |
return true; |
return true; |
} else { |
} else { |
|
for (var j=0; j<delboxes.length; j++) { |
|
formname.elements[delboxes[j]].checked = false; |
|
} |
return false; |
return false; |
} |
} |
} else { |
} else { |
return true; |
return true; |
} |
} |
} |
} |
|
// ]]> |
</script> |
</script> |
ENDSCRIPT |
ENDSCRIPT |
} |
} |
Line 404 sub setup_rndseed {
|
Line 411 sub setup_rndseed {
|
delete($env{'form.resetdata'}); |
delete($env{'form.resetdata'}); |
delete($env{'form.newrandomization'}); |
delete($env{'form.newrandomization'}); |
} |
} |
if (defined($rndseed) && $rndseed ne int($rndseed)) { |
$rndseed=~s/\,/\:/g; |
$rndseed=join(':',&Apache::lonnet::digest($rndseed)); |
$rndseed=~s/[^\w\d\:\-]//g; |
|
if (defined($rndseed)) { |
|
my ($c1,$c2)=split(/\:/,$rndseed); |
|
unless ($c2) { $c2=0; } |
|
unless (($c1==int($c1)) && ($c2==int($c2))) { |
|
$rndseed=join(':',&Apache::lonnet::digest($rndseed)); |
|
} |
} |
} |
if ($Apache::lonhomework::history{'resource.CODE'}) { |
if ($Apache::lonhomework::history{'resource.CODE'}) { |
$rndseed=&Apache::lonnet::rndseed(); |
$rndseed=&Apache::lonnet::rndseed(); |
Line 457 sub remember_problem_state {
|
Line 470 sub remember_problem_state {
|
<input type="hidden" name="problemstatus" value="'.$env{'form.problemstatus'}.'" />'; |
<input type="hidden" name="problemstatus" value="'.$env{'form.problemstatus'}.'" />'; |
} |
} |
|
|
|
sub problem_edit_action_button { |
|
my ($name,$action,$accesskey,$text,$flag)=@_; |
|
my $actionscript="setmode(this.form,'$action')"; |
|
return "\n<input type='button' name='$name' accesskey='$accesskey' value='".&mt($text)."'". |
|
($flag?&Apache::edit::submit_ask_anyway($actionscript):&Apache::edit::submit_dont_ask($actionscript))." />"; |
|
} |
|
|
sub problem_edit_buttons { |
sub problem_edit_buttons { |
return ' |
my ($mode)=@_; |
<div class="LC_edit_problem_discards"> |
# Buttons that do not save |
<input type="button" name="submitmode" accesskey="d" value="'.&mt('Discard Edits and View').'" '. |
my $result='<div class="LC_edit_problem_discards">'. |
' onclick="javscript:setmode(this.form,'."'discard'".')" /> |
&problem_edit_action_button('subdiscview','discard','d','Discard Edits and View',1); |
<input '.&Apache::edit::submit_ask_anyway('setmode(this.form,'."'editxml'".')').' type="button" name="submitmode" accesskey="x" value="'.&mt('EditXML').'" /> |
if ($mode eq 'editxml') { |
<input type="submit" name="Undo" accesskey="u" value="'.&mt('undo').'" /> |
$result.=&problem_edit_action_button('subedit','edit','e','Edit',1); |
</div> |
$result.=&problem_edit_action_button('subundo','undoxml','u','Undo',1); |
<div class="LC_edit_problem_saves"> |
$result.=&Apache::lonhtmlcommon::dragmath_button("LC_editxmltext",1); |
<input type="submit" name="submitbutton" accesskey="s" value="'.&mt('Save and Edit').'" /> |
} else { |
<input type="submit" name="submitbutton" accesskey="v" value="'.&mt('Save and View').'" /> |
$result.=&problem_edit_action_button('subeditxml','editxml','x','EditXML',1); |
</div>'; |
$result.=&problem_edit_action_button('subundo','undo','u','Undo',1); |
|
} |
|
$result.="\n</div>"; |
|
# Buttons that save |
|
$result.='<div class="LC_edit_problem_saves">'; |
|
if ($mode eq 'editxml') { |
|
$result.=&problem_edit_action_button('subsaveedit','saveeditxml','s','Save and EditXML'); |
|
$result.=&problem_edit_action_button('subsaveview','saveviewxml','v','Save and View'); |
|
} else { |
|
$result.=&problem_edit_action_button('subsaveedit','saveedit','s','Save and Edit'); |
|
$result.=&problem_edit_action_button('subsaveview','saveview','v','Save and View'); |
|
} |
|
$result.="\n</div>\n"; |
|
return $result; |
} |
} |
|
|
sub problem_edit_header { |
sub problem_edit_header { |
return '<input type="hidden" name="submitted" value="edit" /><input type="hidden" name="problemmode" value="edit" />'. |
return '<input type="hidden" name="submitted" value="edit" />'. |
&Apache::structuretags::remember_problem_state().' |
&remember_problem_state('edit').' |
<div class="LC_edit_problem_header"> |
<div class="LC_edit_problem_header"> |
<div class="LC_edit_problem_header_title"> |
<div class="LC_edit_problem_header_title"> |
'.&mt('Problem Editing').&Apache::loncommon::help_open_menu('Problem Editing','Problem_Editor_XML_Index',5,'Authoring').' |
'.&mt('Problem Editing').&Apache::loncommon::help_open_menu('Problem Editing','Problem_Editor_XML_Index',5,'Authoring').' |
</div>'. |
</div>'. |
|
'<input type="hidden" name="problemmode" value="saveedit" />'. |
&problem_edit_buttons().' |
&problem_edit_buttons().' |
<hr style="clear:both;" /> |
<hr style="clear:both;" /> |
'.&Apache::lonxml::message_location().' |
'.&Apache::lonxml::message_location().' |
Line 614 $show_all
|
Line 648 $show_all
|
<div class="LC_edit_problem_header_randomize_row"> |
<div class="LC_edit_problem_header_randomize_row"> |
<input type="submit" name="newrandomization" accesskey="a" value="'.&mt('New Randomization').'" /> |
<input type="submit" name="newrandomization" accesskey="a" value="'.&mt('New Randomization').'" /> |
<input type="submit" name="changerandseed" value="'.&mt('Change Random Seed To:').'" /> |
<input type="submit" name="changerandseed" value="'.&mt('Change Random Seed To:').'" /> |
<input type="text" name="rndseed" size="10" value="'. |
<input type="text" name="rndseed" size="24" value="'. |
$rndseed.'" |
$rndseed.'" |
onchange="javascript:document.lonhomework.changerandseed.click()" />'; |
onchange="javascript:document.lonhomework.changerandseed.click()" />'; |
|
|
Line 798 sub store_aggregates {
|
Line 832 sub store_aggregates {
|
$cdomain,$cname); |
$cdomain,$cname); |
} |
} |
if (keys(%anoncounter) > 0) { |
if (keys(%anoncounter) > 0) { |
&Apache::lonnet::cinc('nohist_anonsurveys',\%anoncounter, |
&Apache::lonnet::cput('nohist_anonsurveys',\%anoncounter, |
$cdomain,$cname); |
$cdomain,$cname); |
} |
} |
if (keys(%randtrycounter) > 0) { |
if (keys(%randtrycounter) > 0) { |
&Apache::lonnet::cinc('nohist_randomizetry',\%randtrycounter, |
&Apache::lonnet::cput('nohist_randomizetry',\%randtrycounter, |
$cdomain,$cname); |
$cdomain,$cname); |
} |
} |
} |
} |
|
|
Line 1149 sub start_problem {
|
Line 1183 sub start_problem {
|
} |
} |
} |
} |
} |
} |
|
if ($env{'form.grade_imsexport'}) { |
|
$result = ''; |
|
} |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$result .= 'INSERTTEXFRONTMATTERHERE'; |
$result .= 'INSERTTEXFRONTMATTERHERE'; |
|
|
Line 1253 sub end_problem {
|
Line 1290 sub end_problem {
|
} else { |
} else { |
$frontmatter.= $begin_doc.$toc_line; |
$frontmatter.= $begin_doc.$toc_line; |
if ($Apache::lonhomework::type eq 'exam' and $allow_print_points==1) { |
if ($Apache::lonhomework::type eq 'exam' and $allow_print_points==1) { |
$frontmatter .= '\fbox{\textit{'.$weight.' pt}}'; |
$frontmatter .= '\fbox{\textit{'.$weight.&mt(' pt').'}}'; |
} |
} |
} |
} |
} else { |
} else { |
Line 1263 sub end_problem {
|
Line 1300 sub end_problem {
|
if (not $env{'request.symb'} =~ m/\.page_/) { |
if (not $env{'request.symb'} =~ m/\.page_/) { |
$frontmatter .= $begin_doc.$toc_line; |
$frontmatter .= $begin_doc.$toc_line; |
if (($Apache::lonhomework::type eq 'exam') and ($allow_print_points==1)) { |
if (($Apache::lonhomework::type eq 'exam') and ($allow_print_points==1)) { |
$frontmatter .= '\fbox{\textit{'.$weight.' pt}}'; |
$frontmatter .= '\fbox{\textit{'.$weight.&mt(' pt').'}}'; |
} |
} |
} else { |
} else { |
$frontmatter .= '\vskip 1mm \\\\\\\\'.$startminipage; |
$frontmatter .= '\vskip 1mm \\\\\\\\'.$startminipage; |
Line 1287 sub end_problem {
|
Line 1324 sub end_problem {
|
} |
} |
} elsif ( ($target eq 'web' || $target eq 'tex') && |
} elsif ( ($target eq 'web' || $target eq 'tex') && |
$Apache::inputtags::part eq '0' && |
$Apache::inputtags::part eq '0' && |
$status ne 'UNCHECKEDOUT' && $status ne 'NOT_YET_VIEWED') { |
$status ne 'UNCHECKEDOUT' && $status ne 'NOT_YET_VIEWED' |
|
&& !$env{'form.grade_imsexport'}) { |
# if part is zero, no <part>s existed, so we need show the current |
# if part is zero, no <part>s existed, so we need show the current |
# grading status |
# grading status |
my $gradestatus = &Apache::inputtags::gradestatus($Apache::inputtags::part,$target); |
my $gradestatus = &Apache::inputtags::gradestatus($Apache::inputtags::part,$target); |
Line 1297 sub end_problem {
|
Line 1335 sub end_problem {
|
(($target eq 'web') && ($env{'request.state'} ne 'construct')) || |
(($target eq 'web') && ($env{'request.state'} ne 'construct')) || |
($target eq 'answer') || ($target eq 'tex') |
($target eq 'answer') || ($target eq 'tex') |
) { |
) { |
if ($target ne 'tex' && |
if (($target ne 'tex') && |
$env{'form.answer_output_mode'} ne 'tex') { |
($env{'form.answer_output_mode'} ne 'tex') && |
|
(!$env{'form.grade_imsexport'})) { |
$result.="</form>"; |
$result.="</form>"; |
} |
} |
if ($target eq 'web') { |
if ($target eq 'web') { |
Line 1952 sub start_part {
|
Line 1991 sub start_part {
|
$allow_print_points=0; |
$allow_print_points=0; |
} |
} |
if (($Apache::lonhomework::type eq 'exam') && ($allow_print_points)) { |
if (($Apache::lonhomework::type eq 'exam') && ($allow_print_points)) { |
$result .= '\vskip 10mm\fbox{\textit{'.$weight.' pt}}'; |
$result .= '\vskip |
|
10mm\fbox{\textit{'.$weight.&mt(' pt').'}}'; |
|
|
} |
} |
} elsif ($target eq 'web') { |
} elsif ($target eq 'web') { |
Line 2021 sub end_part {
|
Line 2061 sub end_part {
|
!$hidden && $in_order_show) { |
!$hidden && $in_order_show) { |
my $gradestatus=&Apache::inputtags::gradestatus($Apache::inputtags::part, |
my $gradestatus=&Apache::inputtags::gradestatus($Apache::inputtags::part, |
$target); |
$target); |
if ($Apache::lonhomework::type eq 'exam' && $target eq 'tex') { |
if (($Apache::lonhomework::type eq 'exam' && $target eq 'tex') || |
|
($env{'form.grade_imsexport'})) { |
$gradestatus=''; |
$gradestatus=''; |
} |
} |
$result.=$gradestatus; |
$result.=$gradestatus; |
Line 2262 sub start_simpleeditbutton {
|
Line 2303 sub start_simpleeditbutton {
|
# .&mt('Note: it can take up to 10 minutes for changes to take effect for all users.') |
# .&mt('Note: it can take up to 10 minutes for changes to take effect for all users.') |
# .&Apache::loncommon::help_open_topic('Caching') |
# .&Apache::loncommon::help_open_topic('Caching') |
# .'</p>'; |
# .'</p>'; |
$result.=&Apache::lonhtmlcommon::start_funclist() |
$result.=&Apache::loncommon::head_subbox( |
|
&Apache::lonhtmlcommon::start_funclist() |
.&Apache::lonhtmlcommon::add_item_funclist( |
.&Apache::lonhtmlcommon::add_item_funclist( |
'<a href="'.$url.'/smpedit?symb='.&escape($symb).'">' |
'<a href="'.$url.'/smpedit?symb='.&escape($symb).'">' |
.&mt('Edit').'</a>') |
.&mt('Edit').'</a>') |
.&Apache::lonhtmlcommon::end_funclist(); |
.&Apache::lonhtmlcommon::end_funclist()); |
|
|
} |
} |
return $result; |
return $result; |