--- loncom/homework/structuretags.pm 2007/08/10 11:35:57 1.388 +++ loncom/homework/structuretags.pm 2007/10/31 01:37:52 1.408 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: structuretags.pm,v 1.388 2007/08/10 11:35:57 foxr Exp $ +# $Id: structuretags.pm,v 1.408 2007/10/31 01:37:52 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -42,7 +42,7 @@ use lib '/home/httpd/lib/perl/'; use LONCAPA; BEGIN { - &Apache::lonxml::register('Apache::structuretags',('block','languageblock','instructorcomment','while','randomlist','problem','library','web','tex','part','preduedate','postanswerdate','solved','notsolved','problemtype','startouttext','endouttext','simpleeditbutton','definetag')); + &Apache::lonxml::register('Apache::structuretags',('block','languageblock','translated','instructorcomment','while','randomlist','problem','library','web','tex','part','preduedate','postanswerdate','solved','notsolved','problemtype','startouttext','endouttext','simpleeditbutton','definetag')); } sub start_web { @@ -92,6 +92,31 @@ sub end_tex { return ''; } +sub homework_js { + return &Apache::loncommon::resize_textarea_js(). + <<'JS'; + +JS +} + sub page_start { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$name, $extra_head)=@_; @@ -108,13 +133,7 @@ sub page_start { $parstack,$parser,$safeeval); } - $extra_head.= ' - -'; + $extra_head .= &homework_js(); my %body_args; if (defined($found{'html'})) { @@ -139,7 +158,9 @@ function setSubmittedPart (part) { } elsif (!defined($found{'body'}) && $env{'request.state'} eq 'construct') { if ($target eq 'web' || $target eq 'edit') { - # no extra args to bodytag + if ($env{'environment.remote'} ne 'off') { + $body_args{'only_body'} = 1; + } } } elsif (!defined($found{'body'})) { my %add_entries; @@ -157,6 +178,10 @@ function setSubmittedPart (part) { $body_args{'no_title'} = 1; $body_args{'force_register'} = 1; $body_args{'add_entries'} = \%add_entries; + if ($env{'environment.remote'} eq 'off' + && $env{'request.state'} eq 'construct') { + $body_args{'only_body'} = 1; + } } $body_args{'no_auto_mt_title'} = 1; my $page_start = &Apache::loncommon::start_page($name,$extra_head, @@ -207,7 +232,7 @@ sub get_resource_name { $name = $Apache::lonhomework::name; } else { my ($symb)=&Apache::lonnet::whichuser(); - my $name=&Apache::lonnet::gettitle($symb); + $name=&Apache::lonnet::gettitle($symb); if ($name eq '') { $name=&Apache::lonnet::EXT('resource.title'); if ($name eq 'con_lost') { $name = ''; } @@ -277,14 +302,23 @@ sub remember_problem_state { sub problem_edit_header { return ''. &Apache::structuretags::remember_problem_state().' +
'. - &Apache::loncommon::help_open_menu('Problem Editing Help','Problem_Editor_XML_Index',5,'Authoring',undef,undef,undef,'Problem Editing Help') - .' |
';
}
@@ -307,35 +341,38 @@ sub option {
sub problem_web_to_edit_header {
my ($rndseed)=@_;
- my $result.='';
- $result .= '';
- $result .= '
-
-
- '; - $result.=&mt('Apply style file: ').' -&').'" /> - '.&mt('Select').' - - '; + my $show_all= ''; + + + $result .= ' ';
if (!$Apache::lonhomework::parsing_a_task) {
$result.="
- ';
return $result;
}
@@ -551,19 +627,19 @@ sub init_problem_globals {
if ($type eq 'problem') {
$Apache::inputtags::part='0';
@Apache::inputtags::partlist=('0');
- $Apache::lonhomework::problemstatus=&get_problem_status('0');
+ &Apache::lonhomework::set_show_problem_status(&get_problem_status('0'));
$Apache::lonhomework::ignore_response_errors=0;
} elsif ($type eq 'library') {
$Apache::inputtags::part='';
@Apache::inputtags::partlist=();
- $Apache::lonhomework::problemstatus='';
+ &Apache::lonhomework::reset_show_problem_status();
$Apache::lonhomework::ignore_response_errors=1;
} elsif ($type eq 'Task') {
$Apache::inputtags::part='0';
@Apache::inputtags::partlist=('0');
- $Apache::lonhomework::problemstatus='';
+ &Apache::lonhomework::reset_show_problem_status();
$Apache::lonhomework::ignore_response_errors=1;
}
@Apache::inputtags::responselist = ();
@@ -592,8 +668,8 @@ sub reset_problem_globals {
undef($Apache::lonhomework::default_type);
undef($Apache::lonhomework::type);
undef($Apache::lonhomework::scantronmode);
- undef($Apache::lonhomework::problemstatus);
undef($Apache::lonhomework::ignore_response_errors);
+ &Apache::lonhomework::reset_show_problem_status();
}
sub set_problem_state {
@@ -644,7 +720,6 @@ sub start_problem {
}
if ($target ne 'analyze') {
- if ($env{'request.state'} eq 'construct') { &set_problem_state('0'); }
$Apache::lonhomework::type=&Apache::lonnet::EXT('resource.0.type');
if (($env{'request.state'} eq 'construct') &&
defined($env{'form.problemtype'})) {
@@ -665,6 +740,11 @@ sub start_problem {
$Apache::lonhomework::default_type = $Apache::lonhomework::type;
&initialize_storage();
+ if ($target ne 'analyze'
+ && $env{'request.state'} eq 'construct') {
+ &set_problem_state('0');
+ }
+
if ($target eq 'web') {
&Apache::lonxml::debug(" grading history ");
&Apache::lonhomework::showhash(%Apache::lonhomework::history);
@@ -757,7 +837,7 @@ sub start_problem {
$msg.='
+
+".&mt("Problem Status:")."
-
-
+
+
+".&mt("Feedback Mode:")."
-
-
-
+ "; - my $numtoanalyze=$env{'form.numtoanalyze'}; - if (!$numtoanalyze) { $numtoanalyze=20; } - $result.= ' for - '.&mt('versions of this problem'). - '.'.&Apache::loncommon::help_open_topic("Analyze_Problem", - '',undef,undef,300). - ' '; + +"; + } elsif ($Apache::lonhomework::parsing_a_task) { $result.=" -
+
+".&mt("Problem Status:")."
-
-
-
+
+
+
+ "; + +$show_all +"; + } + + $result.=' + + '.&mt('Apply style file: ').' + &').'" /> + '.&mt('Select').' + + +
+
+
+ ';
+
+ if (!$Apache::lonhomework::parsing_a_task) {
+ my $numtoanalyze=$env{'form.numtoanalyze'};
+ if (!$numtoanalyze) { $numtoanalyze=20; }
+ $result .= ''.
+ &mt('[_1] for [_2] versions.',
+ '',
+ '').
+ &Apache::loncommon::help_open_topic("Analyze_Problem",'',undef,undef,300).
+ '';
+
}
+
+ $result.='
+
+ ';
+ $result.='';
+ $result .= '';
+ $result .= '';
+
+ $result.='
+
+'.&mt('Not open to be viewed').''; } if ($status eq 'CLOSED' || $status eq 'INVALID_ACCESS') { - $msg.='The problem '.$accessmsg; + $msg.=&mt('The problem ').$accessmsg; } elsif ($status eq 'UNCHECKEDOUT') { $msg.=&checkout_msg(); } elsif ($status eq 'NOT_YET_VIEWED') { @@ -1062,16 +1142,19 @@ sub start_definetag { my $name = $token->[2]->{'name'}; my $skip=&Apache::lonxml::get_all_text("/definetag",$parser,$style); - if ($name=~/^\//) { - $result= - '
'.$skip.' |