--- loncom/homework/structuretags.pm 2010/07/29 18:00:06 1.470
+++ loncom/homework/structuretags.pm 2010/11/03 17:06:28 1.478
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# definition of tags that give a structure to a document
#
-# $Id: structuretags.pm,v 1.470 2010/07/29 18:00:06 raeburn Exp $
+# $Id: structuretags.pm,v 1.478 2010/11/03 17:06:28 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -161,6 +161,45 @@ function setmode(form,probmode) {
ENDSCRIPT
}
+sub file_delchk_js {
+ my $delfilewarn = &mt('You have indicated you wish to delete some files previously included for submission.').'\\n'.
+ &mt('Deleted files will not be graded.').' '.
+ &mt('Submit Answer?');
+ return <<"ENDSCRIPT";
+
+ENDSCRIPT
+}
+
sub page_start {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$name,
$extra_head)=@_;
@@ -177,12 +216,17 @@ sub page_start {
$parstack,$parser,$safeeval);
}
- $extra_head .= &homework_js();
-
- if ($env{'environment.wysiwygeditor'} eq 'on') {
- $extra_head .= &Apache::lonhtmlcommon::dragmath_js("FCKEditMathPopup");
- } else {
- $extra_head .= &Apache::lonhtmlcommon::dragmath_js("EditMathPopup");
+ $extra_head .= &homework_js().
+ &Apache::lonhtmlcommon::dragmath_js("EditMathPopup");
+ if (&Apache::lonhtmlcommon::htmlareabrowser()) {
+ my %textarea_args = (
+ dragmath => 'math',
+ );
+ $extra_head .= &Apache::lonhtmlcommon::htmlareaselectactive(\%textarea_args);
+ }
+ my $is_task = ($env{'request.uri'} =~ /\.task$/);
+ if ($is_task) {
+ $extra_head .= &file_delchk_js();
}
my %body_args;
@@ -276,6 +320,9 @@ sub page_start {
if ($target eq 'edit') {
$form_tag_start.=&Apache::edit::form_change_detection();
}
+ if ($is_task) {
+ $form_tag_start .= ' onsubmit="return file_deletion_check(this);"';
+ }
$form_tag_start.='>'."\n";
my $symb=&Apache::lonnet::symbread();
@@ -401,8 +448,6 @@ sub problem_edit_footer {
'.
-
- &Apache::lonhtmlcommon::htmlareaselectactive(&Apache::lonhtmlcommon::get_htmlareafields()).
"\n\n".&Apache::loncommon::end_page();
}
@@ -649,7 +694,7 @@ item store_aggregates()
sub store_aggregates {
my ($symb,$courseid) = @_;
- my %aggregate;
+ my (%aggregate,%anoncounter);
my @parts;
my $cdomain = $env{'course.'.$env{'request.course.id'}.'.domain'};
my $cname = $env{'course.'.$env{'request.course.id'}.'.num'};
@@ -680,17 +725,17 @@ sub store_aggregates {
}
if (($Apache::lonhomework::results{'resource.'.$part.'.type'} eq 'anonsurvey') ||
($Apache::lonhomework::results{'resource.'.$part.'.type'} eq 'anonsurveycred')) {
- $aggregate{$symb."\0".$part."\0anonymous"} = 1;
+ $anoncounter{$symb."\0".$part} = 1;
my $needsrelease = $Apache::lonnet::needsrelease{'parameter:type:'.$Apache::lonhomework::results{'resource.'.$part.'.type'}};
if ($needsrelease) {
my $curr_required = $env{'course.'.$env{'request.course.id'}.'.internal.releaserequired'};
if ($curr_required eq '') {
- &update_courseenv($needsrelease,$cdomain,$cname);
+ &Apache::lonnet::update_released_required($needsrelease);
} else {
my ($currmajor,$currminor) = split(/\./,$curr_required);
my ($needsmajor,$needsminor) = split(/\./,$needsrelease);
if (($currmajor < $needsmajor) || ($currmajor == $needsmajor && $currminor < $needsminor)) {
- &update_courseenv($needsrelease,$cdomain,$cname);
+ &Apache::lonnet::update_released_required($needsrelease);
}
}
}
@@ -700,23 +745,9 @@ sub store_aggregates {
&Apache::lonnet::cinc('nohist_resourcetracker',\%aggregate,
$cdomain,$cname);
}
-}
-
-sub update_courseenv {
- my ($needsrelease,$cdom,$cnum) = @_;
- my $chome = $env{'course.'.$env{'request.course.id'}.'.home'};
- my %needshash = (
- 'internal.releaserequired' => $needsrelease,
- );
- my $putresult = &put('environment',\%needshash,$cdom,$cnum);
- if ($putresult eq 'ok') {
- &appenv({'course.'.$env{'request.course.id'}.'.internal.releaserequired' => $needsrelease});
- my %crsinfo =
- &Apache::lonnet::courseiddump($cdom,'.',1,'.','.',$cnum,undef,undef,'.');
- if (ref($crsinfo{$env{'request.course.id'}}) eq 'HASH') {
- $crsinfo{$env{'request.course.id'}}{'releaserequired'} = $needsrelease;
- }
- &Apache::lonnet::courseidput($cdom,\%crsinfo,$chome,'notime');
+ if (keys(%anoncounter) > 0) {
+ &Apache::lonnet::cinc('nohist_anonsurveys',\%anoncounter,
+ $cdomain,$cname);
}
}
@@ -798,6 +829,7 @@ sub init_problem_globals {
&Apache::lonhomework::reset_show_problem_status();
$Apache::lonhomework::ignore_response_errors=1;
}
+ @Apache::functionplotresponse::callscripts=();
@Apache::inputtags::responselist = ();
@Apache::inputtags::importlist = ();
@Apache::inputtags::previous=();
@@ -825,6 +857,7 @@ sub reset_problem_globals {
undef($Apache::lonhomework::type);
undef($Apache::lonhomework::scantronmode);
undef($Apache::lonhomework::ignore_response_errors);
+ undef(@Apache::functionplotresponse::callscripts);
&Apache::lonhomework::reset_show_problem_status();
}
@@ -1197,7 +1230,6 @@ sub end_problem {
if ($target ne 'tex' &&
$env{'form.answer_output_mode'} ne 'tex') {
$result.="";
- $result.= &Apache::lonhtmlcommon::htmlareaselectactive(&Apache::lonhtmlcommon::get_htmlareafields());
}
if ($target eq 'web') {
$result.= &Apache::loncommon::end_page({'discussion' => 1});
@@ -1218,6 +1250,9 @@ sub end_problem {
}
}
}
+ if ($target eq 'web') {
+ $result.=&Apache::functionplotresponse::init_script();
+ }
if ($target eq 'grade') {
&Apache::lonhomework::showhash(%Apache::lonhomework::results);
&finalize_storage();
@@ -1851,7 +1886,7 @@ sub start_part {
}
} elsif ($target eq 'web') {
- $result.='';
+ $result.='';
}
}
}
@@ -2061,17 +2096,15 @@ sub end_startouttext {
$result.=&Apache::edit::start_table($token)."".&mt('Text Block')." | "
.''.&mt('Delete?').' '
.&Apache::edit::deletelist($target,$token)
- .' | ';
- unless ($env{'environment.wysiwygeditor'} eq 'on') {
- $result .= ''
- .&Apache::lonhtmlcommon::dragmath_button($areaid,1)
- .' | '
- .''
- .&Apache::edit::insertlist($target,$token)
- .' | ';
- }
- $result.='' .
- &Apache::loncommon::helpLatexCheatsheet().
+ .' | '
+ .''
+ .&Apache::lonhtmlcommon::dragmath_button($areaid,1)
+ .' | '
+ .''
+ .&Apache::edit::insertlist($target,$token)
+ .' | '
+ .'' .
+ &Apache::loncommon::helpLatexCheatsheet().
&Apache::edit::end_row().
&Apache::edit::start_spanning_row()."\n".
&Apache::edit::editfield($token->[1],$text,"",80,8,1);
|