--- rat/lonratedt.pm 2007/07/11 20:32:01 1.88 +++ rat/lonratedt.pm 2009/06/09 15:01:28 1.97 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Edit Handler for RAT Maps # -# $Id: lonratedt.pm,v 1.88 2007/07/11 20:32:01 albertel Exp $ +# $Id: lonratedt.pm,v 1.97 2009/06/09 15:01:28 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -29,141 +29,6 @@ package Apache::lonratedt; -=pod - -=head1 NAME - -Apache::lonratedt: simple resource assembly tool - -=head1 SYNOPSIS - -lonratedt provides the routines and the handler for the Advanced - Resource Assembly Tool (RAT), and ties the various pieces together - with Javascript. - -=head1 OVERVIEW - -=head2 Map Representation - -=begin latex - -% -\begin{figure} -\begin{center}\includegraphics[% - width=0.55\paperwidth,bb = 0 0 200 100, draft, type=eps]{Map_Example}\end{center} - - -\caption{\label{Map_In_Advanced_Editor}Example of a Map in the Advanced Editor} -\end{figure} -% -\begin{figure} -\begin{lyxcode} - - -~~ - -~~~~ - -~~ - -~~~~ - -~~ - -~~~~ - -~~ - -~~~~ - -~~ - -~~~~ - -~~ - -~~~~ - -~~ - -~~ - -~~ - -~~ - -~~ -\end{lyxcode} - -\caption{\label{XML}XML for Map in Figure \ref{Map_In_Advanced_Editor}} -\end{figure} - -=end latex - -Fig. "XML for Map in Figure" shows the XML representation of the -resource map shown in Fig. "Example of a Map in the Advanced Editor", -which is the format in which maps are stored. In the figure, however, -additional graphical map layout information generated by the Advanced -Resource Assembly Tool is not displayed. This graphical information is -optional to re-generate the same graphical layout when the map is -brought up again in the Resource Assembly Tool, and is not needed for -any other system functionality. - -Maps can be generated by tools other than the Resource Assembly -Tool. In particular, an author might have some other representation of -a course sequence, which can be converted into a map using scripts. If -this map then were to be brought up in the Resource Assembly Tool, the -Tool would automatically generate a graphical layout for it. Each -entry of the map (resources, conditions and links) is stored in a -separate tag. - -Resources and conditionsX have to have unique ID -numbers. These numbers are automatically generated by the Resource -Assembly Tool when the entry is first created, or added to the entries -when a map generated outside the Resource Assembly Tool is first -retrieved. They can also be assigned by custom scripts or added in by -hand. - -In the XML example, entry 1 is the start resource of the map. When -this map is accessed, the source (src) URL of this tag will be the -first resource rendered. Entry 2 is the finish resource of this -map. This resource will be the last resource in the sequence of -resources. Entry 6 is a problem resource with the given URL and title, -as well as the priority "mandatory". Entry 19 is a condition, which is -used by the link between entries 6, the problem, and 9, a -sequence. I - -=cut - use strict; use Apache::Constants qw(:common); use Apache::lonnet; @@ -193,6 +58,7 @@ sub ratedt { &Apache::loncommon::start_page('Edit Sequence',$js, {'frameset' => 1, 'add_entries' => \%layout}); + my $end_page = &Apache::loncommon::end_page({'frameset' => 1}); @@ -210,19 +76,19 @@ ENDDOCUMENT sub buttons { my $adv=shift; - my $output='
'; + my $output=''; if ($adv==1) { - $output.=''. - &Apache::loncommon::help_open_topic('Sequence_Advanced_Editor_Creation');; + $output.=''. + &Apache::loncommon::help_open_topic('Sequence_Advanced_Editor_Creation'); } else { unless ($adv==2) { - $output.=''. + $output.=''. &Apache::loncommon::help_open_topic('Sequence_Simple_Editor_Creation'); } - $output.=''. + $output.=''. &Apache::loncommon::help_open_topic('Sequence_Advanced_Editor_Creation'); } - return $output.'

'; + return $output.''; } # ----------------------------------------------------------------- Edit script @@ -349,7 +215,6 @@ ENDSCRIPT sub smpedt { my ($r,$url,$errtext)=@_; - my $buttons=&buttons(2); my $tmpfn=&Apache::lonnet::filelocation('',$url).'.tmp'; my $targetmsg=''; if ($env{'form.save'}) { @@ -360,7 +225,7 @@ sub smpedt { unless ($fatal) { $targetmsg=''.&mt('Saved.').'
'; } else { - $targetmsg=''.&mt('An error occured while saving.').'
'; + $targetmsg=''.&mt('An error occurred while saving.').'
'; } } if ($env{'form.revert'}) { @@ -371,7 +236,7 @@ sub smpedt { } if (-e $tmpfn) { $targetmsg= - ''.&mt('You are working with an unsaved version of your map.').'
'; + ''.&mt('You are working with an unsaved version of your map.').'
'; my ($errtext,$fatal)=&LONCAPA::map::mapread($tmpfn,''); } # ---------------------------------------------------------- Process form input @@ -675,81 +540,97 @@ sub smpedt { ENDJS - my $start_page = &Apache::loncommon::start_page(undef,$js). - &Apache::loncommon::help_open_menu('Sequence_Simple_Editor_Creation', - 'Sequence_Simple_Editor_Creation', - 6,'RAT'); + &Apache::lonhtmlcommon::clear_breadcrumbs(); + &Apache::lonhtmlcommon::add_breadcrumb({ + text => 'Construction Space', + href => &Apache::loncommon::authorspace(), + faq => 6, + bug => 'RAT', + help => 'Sequence_Simple_Editor_Creation',}); + &Apache::lonhtmlcommon::add_breadcrumb({ + text => 'RAT', + title => 'Resource Assembly Tool', + href => '',}); + &Apache::lonhtmlcommon::add_breadcrumb({ + text => 'Editor', + title => 'Simple Editor', + href => '',}); + + my $start_page = &Apache::loncommon::start_page('Construction Space',$js) + .&Apache::lonhtmlcommon::breadcrumbs('') + .&Apache::loncommon::head_subbox( + &Apache::loncommon::CSTR_pageheader() + .&buttons(2)); my $end_page = &Apache::loncommon::end_page(); $r->print(<$errtext -
- - - - +$errtext + + + + + - -
$lt{'ta'}   File: $url
- - + + $lt{'as'} -
- - + +
- - - +value="Select Map" />
+ + +
  - - - - + + + + $lt{'as'} -
- - - -
$targetmsg - - - +
+ + + +
$targetmsg + + +
-$lt{'cs'}
-

-


-$lt{'ps'}
-

-


-$lt{'pas'}
- +$lt{'cs'}
+

+


+$lt{'ps'}
+

+ +$lt{'pas'}
+

- - - - + + + +
$end_page ENDSMPHEAD @@ -759,37 +640,69 @@ ENDSMPHEAD sub nodir { my ($r,$dir)=@_; $dir=~s{^/home/$LONCAPA::username_re/public_html}{}; - $r->print(&Apache::loncommon::start_page(undef,undef, - {'only_body' => 1, - 'bgcolor' => '#FFFFFF',}). - "

No such directory: $dir

". - &Apache::loncommon::end_page()); + my $brcrum = [{'href' => &Apache::loncommon::authorspace(), + 'text' => 'Construction Space'}]; +# {'href' => '', +# 'text' => 'No such directory'}]; + $r->print(&Apache::loncommon::start_page('Construction Space', + undef, + {'bread_crumbs' => $brcrum,}) + .&Apache::loncommon::head_subbox( + &Apache::loncommon::CSTR_pageheader()) + .'

' + .&mt('No such directory: [_1]',''.$dir.'' + .'

' + .&Apache::loncommon::end_page()) + ); } # ---------------------------------------------------------------- View Handler sub viewmap { my ($r,$url,$adv,$errtext)=@_; - $r->print( - &Apache::loncommon::start_page('Edit Content of a Map'). - &Apache::loncommon::help_open_menu('','',6,'RAT'). - &buttons($adv)); + + &Apache::lonhtmlcommon::clear_breadcrumbs(); + &Apache::lonhtmlcommon::add_breadcrumb({ + text => 'Construction Space', + href => &Apache::loncommon::authorspace(), + faq => 6, + bug => 'RAT', + help => 'Sequence_Simple_Editor_Creation',}); + &Apache::lonhtmlcommon::add_breadcrumb({ + text => 'RAT', + title => 'Resource Assembly Tool', + href => '',}); + + $r->print(&Apache::loncommon::start_page('Edit Content of a Map') + .&Apache::lonhtmlcommon::breadcrumbs('') + .&Apache::loncommon::head_subbox( + &Apache::loncommon::CSTR_pageheader() + .&buttons($adv)) + ); if ($errtext) { - $r->print($errtext.'
'); + $r->print('
' + .$errtext + .'
' + .'
' + ); } my $idx=0; - $r->print('

'.$url.'

'); + $r->print('

'.$url.'

'); if ($adv) { - $r->print('

'.&mt('Map contents are not shown in order.').'


'); + $r->print('

' + .&mt('Map contents are not shown in order.') + .'


' + ); } - $r->print( ''. - ''. - ''. - ''. - ''. - ''. - ''); - my @backgroundColors = ("#FFFFFF", "#F6F6F6"); + $r->print(&Apache::loncommon::start_data_table() + .&Apache::loncommon::start_data_table_header_row() + .'' + .'' + .'' + .'' + .'' + .&Apache::loncommon::end_data_table_header_row() + ); foreach (&LONCAPA::map::attemptread(&Apache::lonnet::filelocation('',$url))) { if (defined($_)) { $idx++; @@ -807,23 +720,34 @@ sub viewmap { } my $cstrurl = $resurl; $cstrurl =~ s#^/res/[^/]+/([^/]+)/#/priv/$1/#; - my $bgcol = $idx%2; - $r->print('' + .'' + .'' + .''."\n"); + $r->print('' + .&Apache::loncommon::end_data_table_row() + ); } } - $r->print('
'.&mt('Type').''.&mt('Title in map').''.&mt('Filename of resource').''.&mt('Link to published resource').''.&mt('Link to resource in Construction Space').'
'.&mt('Type').''.&mt('Title in map').''.&mt('Filename of resource').''.&mt('Link to published resource').''.&mt('Link to resource in Construction Space').'
'. - ''.&HTML::Entities::encode(&LONCAPA::map::qtescape($title)). - ''.$filename.''); + $r->print(&Apache::loncommon::start_data_table_row() + .'' + .'' + .'' + .&HTML::Entities::encode(&LONCAPA::map::qtescape($title)) + .''.$filename.'' + ); if ($url) { $r->print(''.&mt('Resource space').''); + } else { + $r->print(' '); } $r->print(''); if ($url) { $r->print(''. &mt('Construction space').''); + } else { + $r->print(' '); } - $r->print('
'); + $r->print(&Apache::loncommon::end_data_table()); $r->print(&Apache::loncommon::end_page()); } @@ -888,7 +812,140 @@ __END__ +=pod + +=head1 NAME + +Apache::lonratedt: simple resource assembly tool + +=head1 SYNOPSIS + +lonratedt provides the routines and the handler for the Advanced + Resource Assembly Tool (RAT), and ties the various pieces together + with Javascript. + +=head1 OVERVIEW + +=head2 Map Representation + +=begin latex + +% +\begin{figure} +\begin{center}\includegraphics[% + width=0.55\paperwidth,bb = 0 0 200 100, draft, type=eps]{Map_Example}\end{center} + + +\caption{\label{Map_In_Advanced_Editor}Example of a Map in the Advanced Editor} +\end{figure} +% +\begin{figure} +\begin{lyxcode} + + +~~ + +~~~~ + +~~ + +~~~~ + +~~ + +~~~~ + +~~ + +~~~~ +~~ + +~~~~ + +~~ + +~~~~ + +~~ + +~~ + +~~ + +~~ + +~~ +\end{lyxcode} + +\caption{\label{XML}XML for Map in Figure \ref{Map_In_Advanced_Editor}} +\end{figure} + +=end latex + +Fig. "XML for Map in Figure" shows the XML representation of the +resource map shown in Fig. "Example of a Map in the Advanced Editor", +which is the format in which maps are stored. In the figure, however, +additional graphical map layout information generated by the Advanced +Resource Assembly Tool is not displayed. This graphical information is +optional to re-generate the same graphical layout when the map is +brought up again in the Resource Assembly Tool, and is not needed for +any other system functionality. + +Maps can be generated by tools other than the Resource Assembly +Tool. In particular, an author might have some other representation of +a course sequence, which can be converted into a map using scripts. If +this map then were to be brought up in the Resource Assembly Tool, the +Tool would automatically generate a graphical layout for it. Each +entry of the map (resources, conditions and links) is stored in a +separate tag. + +Resources and conditionsX have to have unique ID +numbers. These numbers are automatically generated by the Resource +Assembly Tool when the entry is first created, or added to the entries +when a map generated outside the Resource Assembly Tool is first +retrieved. They can also be assigned by custom scripts or added in by +hand. + +In the XML example, entry 1 is the start resource of the map. When +this map is accessed, the source (src) URL of this tag will be the +first resource rendered. Entry 2 is the finish resource of this +map. This resource will be the last resource in the sequence of +resources. Entry 6 is a problem resource with the given URL and title, +as well as the priority "mandatory". Entry 19 is a condition, which is +used by the link between entries 6, the problem, and 9, a +sequence. I + +=cut 500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.