--- loncom/homework/structuretags.pm 2009/12/02 18:22:12 1.444.4.2.2.2 +++ loncom/homework/structuretags.pm 2010/08/16 17:51:02 1.465.2.2 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: structuretags.pm,v 1.444.4.2.2.2 2009/12/02 18:22:12 raeburn Exp $ +# $Id: structuretags.pm,v 1.465.2.2 2010/08/16 17:51:02 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -66,7 +66,7 @@ use lib '/home/httpd/lib/perl/'; use LONCAPA; BEGIN { - &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')); + &Apache::lonxml::register('Apache::structuretags',('block','languageblock','translated','instructorcomment','while','randomlist','problem','library','web','tex','part','preduedate','postanswerdate','solved','notsolved','problemtype','startpartmarker','startouttext','endpartmarker','endouttext','simpleeditbutton','definetag')); } sub start_web { @@ -203,6 +203,7 @@ sub page_start { } } + my $pageheader = ''; if (defined($found{'body'})) { $body_args{'skip_phases'}{'body'}=1; } elsif (!defined($found{'body'}) @@ -211,6 +212,22 @@ sub page_start { if ($env{'environment.remote'} ne 'off') { $body_args{'only_body'} = 1; } + # Breadcrumbs for Construction Space + &Apache::lonhtmlcommon::clear_breadcrumbs(); + &Apache::lonhtmlcommon::add_breadcrumb({ + 'text' => 'Construction Space', + 'href' => &Apache::loncommon::authorspace(), + }); + # breadcrumbs (and tools) will be created + # in start_page->bodytag->innerregister + +# FIXME Where are we? +# &Apache::lonhtmlcommon::add_breadcrumb({ +# 'text' => 'Problem Editing', # 'Problem Testing' +# 'href' => '', +# }); + $pageheader =&Apache::loncommon::head_subbox( + &Apache::loncommon::CSTR_pageheader()); } } elsif (!defined($found{'body'})) { my %add_entries; @@ -222,31 +239,30 @@ sub page_start { my $bgcolor=&Apache::lonxml::get_param('bgcolor',$parstack, $safeeval); - if ($bgcolor eq '' ) { $bgcolor = '#FFFFFF'; } + if ($bgcolor eq '' ) { $bgcolor = '#FFFFFF'; } - $body_args{'bgcolor'} = $bgcolor; - $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{'bgcolor'} = $bgcolor; + # $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, \%body_args); - unless ($env{'request.gcicontext'} eq 'buildtest') { - if (!defined($found{'body'}) - && $env{'request.state'} ne 'construct' - && ($target eq 'web' || $target eq 'webgrade')) { - - my ($symb,undef,undef,undef,$publicuser)= &Apache::lonnet::whichuser(); - if ($symb eq '' && !$publicuser) { - $page_start .= '

' - .&mt('Browsing resource, all submissions are temporary.') - .'

'; - } + $page_start .= $pageheader; + if (!defined($found{'body'}) + && $env{'request.state'} ne 'construct' + && ($target eq 'web' || $target eq 'webgrade')) { + + my ($symb,undef,undef,undef,$publicuser)= &Apache::lonnet::whichuser(); + if ($symb eq '' && !$publicuser) { + $page_start .= '

' + .&mt('Browsing resource, all submissions are temporary.') + .'

'; } } @@ -257,7 +273,9 @@ sub page_start { my $form_tag_start; if (!defined($found{'form'})) { $form_tag_start='
'. &problem_edit_buttons().' -
+
'.&Apache::lonxml::message_location().' '. - ''; + $result.=&Apache::edit::end_table(); + + } + return $result; +} + +sub end_startpartmarker { + my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; + my @result; + if ($target eq 'edit') { $result[1]='no'; } + return @result; +} + +sub start_endpartmarker { + my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; + my $result=''; + if ($target eq 'edit') { + $result=&Apache::edit::tag_start($target,$token); + $result.=&mt('Marker for the end of a part. Place start marker above to wrap in-between tags into a new part.').''; + $result.=&Apache::edit::end_table(); + + } + return $result; +} + +sub end_endpartmarker { + my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; + my @result; + if ($target eq 'edit') { $result[1]='no'; } + return @result; +} + sub start_part { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; if (!$Apache::lonxml::metamode) { @@ -1762,7 +1821,10 @@ sub start_part { '.disableexampointprint'}) eq 'yes') { $allow_print_points=0; } - if (($Apache::lonhomework::type eq 'exam') && ($allow_print_points)) { $result .= '\fbox{\textit{'.$weight.' pt}}';} + if (($Apache::lonhomework::type eq 'exam') && ($allow_print_points)) { + $result .= '\vskip 10mm\fbox{\textit{'.$weight.' pt}}'; + + } } elsif ($target eq 'web') { $result.=''; } @@ -1931,6 +1993,9 @@ sub start_problemtype { $result .=&Apache::edit::checked_arg('When used as type(s):','for', [ ['exam','Exam/Quiz Problem'], ['survey','Survey'], + ['surveycred','Survey (with credit)'], + ['anonsurvey','Anonymous Survey'], + ['anonsurveycred','Anonymous Survey (with credit)'], ['problem','Homework Problem'], ['practice','Practice Problem'] ] ,$token); @@ -2044,15 +2109,16 @@ sub start_simpleeditbutton { my $url=$env{'request.noversionuri'}; $url=~s/\?.*$//; my ($symb) = &Apache::lonnet::whichuser(); -# Warning make more sense and is more important on edit screen +# Warning makes more sense and is more important on edit screen # $result='

' # .&mt('Note: it can take up to 10 minutes for changes to take effect for all users.') # .&Apache::loncommon::help_open_topic('Caching') # .'

'; - $result.=&Apache::lontemplate::start_functionslist() - .&Apache::lontemplate::item_functionslist( - '
'.&mt('Edit').'') - .&Apache::lontemplate::end_functionslist(); + $result.=&Apache::lonhtmlcommon::start_funclist() + .&Apache::lonhtmlcommon::add_item_funclist( + '' + .&mt('Edit').'') + .&Apache::lonhtmlcommon::end_funclist(); } return $result;
'; + '
'; } sub problem_edit_footer { return '

'. @@ -419,10 +437,10 @@ sub problem_web_to_edit_header { ''; } - my $show_all_foils_text = - ($Apache::lonhomework::parsing_a_task) ? - &mt('Show All Instances') - : &mt('Show All Foils'); + my $show_all_foils_text = + ($Apache::lonhomework::parsing_a_task) ? + &mt('Show All Instances') + : &mt('Show All Foils'); my $show_all= ' @@ -501,7 +522,7 @@ $show_all -
+
@@ -525,7 +546,8 @@ $show_all $result.='
-
'; +
+
'; $result.=''; $result .= ''; @@ -533,6 +555,7 @@ $show_all 'onclick="javascript:setmode(this.form,'."'editxml'".')" />'; $result.='
+
'.&Apache::lonxml::message_location().'
'; return $result; @@ -895,34 +918,28 @@ sub start_problem { if ($env{'request.state'} ne "construct" && ($symb eq '' || $Apache::lonhomework::type eq 'practice')) { $form_tag_start.=''; - unless ($env{'request.gcicontext'} eq 'buildtest') { - $form_tag_start .= ''. + ''; - } if (exists($env{'form.username'})) { $form_tag_start.= ''; } - unless ($env{'request.gcicontext'} eq 'buildtest') { - if ($env{'request.role.adv'}) { - $form_tag_start.= '