--- loncom/homework/lonsimpleproblemedit.pm 2005/05/26 20:35:53 1.16 +++ loncom/homework/lonsimpleproblemedit.pm 2009/04/06 12:59:07 1.21 @@ -1,7 +1,7 @@ # The LearningOnline Network # Simple Problem Parameter Setting "Editor" # -# $Id: lonsimpleproblemedit.pm,v 1.16 2005/05/26 20:35:53 albertel Exp $ +# $Id: lonsimpleproblemedit.pm,v 1.21 2009/04/06 12:59:07 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -34,6 +34,9 @@ use Apache::loncommon; use Apache::lonnet; use Apache::lonlocal; use Apache::lonnavmaps; +use lib '/home/httpd/lib/perl/'; +use LONCAPA; + my %qparms; my $prefix; @@ -66,7 +69,7 @@ sub questiontext { my $spell_link= &Apache::lonhtmlcommon::spelllink('simpleedit','questiontext'); return (<<ENDQUESTION); -<table bgcolor="#dddd22" cellspacing="4" cellpadding="2"> +<table bgcolor="#dddd22" cellspacing="4" cellpadding="2" style="width:100%"> <tr><td><b>$qt</b><br /> <textarea style="width:100%" name="questiontext" cols="80" rows="8">$text</textarea> <br />$spell_link @@ -140,13 +143,16 @@ ENDFOIL sub get_parent_uri { my ($cur_symb)=@_; my $navmap = Apache::lonnavmaps::navmap->new(); - my $it = $navmap->getIterator(undef, undef, undef, 1); - while ( my $res=$it->next()) { - if (ref($res) && $res->symb() eq $cur_symb) { last; } + if (defined($navmap)) { + my $it = $navmap->getIterator(undef, undef, undef, 1); + while ( my $res=$it->next()) { + if (ref($res) && $res->symb() eq $cur_symb) { last; } + } + my ($src,$symb,$anchor)=&Apache::lonnavmaps::getLinkForResource($it->getStack()); + if (defined($anchor)) { $anchor='#'.$anchor; } + return $src.'?symb='.&escape($symb).$anchor; } - my ($src,$symb,$anchor)=&Apache::lonnavmaps::getLinkForResource($it->getStack()); - if (defined($anchor)) { $anchor='#'.$anchor; } - return $src.'?symb='.&Apache::lonnet::escape($symb).$anchor; + return; } sub handler { @@ -212,19 +218,32 @@ sub handler { # ------------------------------------------------------------ Print the screen my $spell_header=&Apache::lonhtmlcommon::spellheader(); - $r->print(<<ENDDOCUMENT); -<html> -<head> -<title>The LearningOnline Network with CAPA</title> -$spell_header -</head> -ENDDOCUMENT - $r->print(&Apache::loncommon::bodytag('Simple Problem Editor')); + $r->print(&Apache::loncommon::start_page('Simple Problem Editor', + $spell_header)); if ($symb) { $r->print('<h1>'.&Apache::lonnet::gettitle($symb).'</h1>'); - $r->print('<table width="100%" bgcolor="#FFFFAA" border="2"><tr><td>'. - '<a href="'.&get_parent_uri($symb).'">'.&mt('Student View').'</a> - '.&mt('Note: it can take up to 10 minutes for changes to take effect for all users.'). - &Apache::loncommon::help_open_topic('Caching').'</td></tr></table>'); + $r->print('<p class="LC_warning">' + .&mt('Note: it can take up to 10 minutes for changes to take effect for all users.') + .&Apache::loncommon::help_open_topic('Caching') + .'</p>' + ); + my $displaylink = &get_parent_uri($symb); + if ($displaylink ne '') { + $r->print(&Apache::lontemplate::start_functionslist() + .&Apache::lontemplate::item_functionslist( + '<a href="'.$displaylink.'">'.&mt('Student View').'</a>') + .&Apache::lontemplate::end_functionslist() + ); + } else { + $r->print('<p class="LC_error">' + .&mt('An error occurred retrieving the link to this problem.') + .'<br />' + .&mt('You may need to [_1]re-select the course[_2] and then return to this resource to view it.' + ,'<a href="/adm/roles">','</a>') + .'</p>' + ); + } + $r->print('<table border="2" bgcolor="#FFFFFF" width="100%"><tr><td>'. &rawrendering($symb). '</td></tr></table><br />'); @@ -317,7 +336,7 @@ ENDDOCUMENT } else { $r->print(&mt('Could not identify problem.')); } - $r->print('</body></html>'); + $r->print(&Apache::loncommon::end_page()); return OK; }