--- rat/lonratmenu.pm 2009/06/03 17:13:26 1.13 +++ rat/lonratmenu.pm 2022/05/29 11:47:01 1.24 @@ -2,7 +2,7 @@ # Build menu bar for Advanced RAT. Uses javascript code originally in # static file: rat/client/code.html, now in rat/client/ratcode.js # -# $Id: lonratmenu.pm,v 1.13 2009/06/03 17:13:26 bisitz Exp $ +# $Id: lonratmenu.pm,v 1.24 2022/05/29 11:47:01 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -32,58 +32,131 @@ use strict; use Apache::Constants qw(:common); use Apache::File; use Apache::loncommon; +use Apache::lonhtmlcommon; +use Apache::lonlocal; use Apache::lonnet; sub handler { my $r = shift; my $include = $Apache::lonnet::perlvar{'lonIncludes'}; my $jsh=Apache::File->new($include."/ratcode.js"); - $r->send_http_header('text/html'); my $js = join('',<$jsh>); my %loaditem = ('onunload' => "leave();",); - $r->print(&Apache::loncommon::start_page('Advanced Editor',$js, - {'add_entries' => \%loaditem}) - .&Apache::lonhtmlcommon::breadcrumbs() # FIXME add breadcrumbs - .&Apache::loncommon::head_subbox( - &Apache::loncommon::CSTR_pageheader()) - ); + my $readfile=$r->uri; $readfile=~s/\/loadonly\/adveditmenu$//; - $r->print(&print_html($readfile)); - $r->print(&Apache::loncommon::end_page()); - return OK; -} -sub print_html { - my $readfile=shift; - my $help=&Apache::loncommon::help_open_menu('Sequence_Advanced_Editor_Creation','Sequence_Advanced_Editor_Creation',6,'RAT'); - - my $pagetext = <<"END"; -
- - - - - - - - - - - - - - - - - -
$helpToggle displayZoom outZoom inCondenseStraightenRevertUndoRedoRecover deletedSearchImportImport BookmarksCopySave mapSave map and layout
-
- -END - return $pagetext; + my $target = '_top'; + if ((($env{'request.lti.login'}) && ($env{'request.lti.target'} eq 'iframe')) || + (($env{'request.deeplink.login'}) && ($env{'request.deeplink.target'}))) { + $target = '_parent'; + } + + # Breadcrumbs + my $brcrum = [{'href' => &Apache::loncommon::authorspace($r->uri), + 'text' => 'Authoring Space', + 'target' => $target}, + {'href' => '', + 'text' => 'RAT'}, + {'href' => '', + 'text' => 'Advanced Editor'}]; + + my $help=&Apache::loncommon::help_open_menu( + 'Sequence_Advanced_Editor_Creation', + 'Sequence_Advanced_Editor_Creation',6,'RAT'); + + + # Compile available Advanced RAT functions + my $functions = '
'; + + $functions .= $help; # FIXME: Move help to bread_crumbs_component + + $functions .= + &Apache::lonhtmlcommon::start_funclist(&mt('Display Actions')) + .&Apache::lonhtmlcommon::add_item_funclist( + '' + .&mt('Toggle display').'') + .&Apache::lonhtmlcommon::add_item_funclist( + '' + .&mt('Zoom out').'') + .&Apache::lonhtmlcommon::add_item_funclist( + '' + .&mt('Zoom in').'') + .&Apache::lonhtmlcommon::add_item_funclist( + '' + .&mt('Condense').'') + .&Apache::lonhtmlcommon::add_item_funclist( + '' + .&mt('Straighten').'') + .&Apache::lonhtmlcommon::add_item_funclist( + '' + .&mt('Revert').'') + .&Apache::lonhtmlcommon::end_funclist(); + + $functions .= + &Apache::lonhtmlcommon::start_funclist(&mt('Version Actions')) + .&Apache::lonhtmlcommon::add_item_funclist( + '' + .&mt('Undo').'') + .&Apache::lonhtmlcommon::add_item_funclist( + '' + .&mt('Redo').'') + .&Apache::lonhtmlcommon::add_item_funclist( + '' + .&mt('Recover deleted').'') + .&Apache::lonhtmlcommon::end_funclist(); + + $functions .= + &Apache::lonhtmlcommon::start_funclist(&mt('Import')) + .&Apache::lonhtmlcommon::add_item_funclist( + '' + .&mt('Search').'') + .&Apache::lonhtmlcommon::add_item_funclist( + '' + .&mt('Import').'') + .&Apache::lonhtmlcommon::add_item_funclist( + '' + .&mt('Import from Stored Links').'') + .&Apache::lonhtmlcommon::add_item_funclist( + '' + .&mt('Copy').'') + .&Apache::lonhtmlcommon::end_funclist(); + + $functions .= + &Apache::lonhtmlcommon::start_funclist(&mt('Save')) + .&Apache::lonhtmlcommon::add_item_funclist( + '' + .&mt('Save map').'') + .&Apache::lonhtmlcommon::add_item_funclist( + '' + .&mt('Save map and layout').'') + .&Apache::lonhtmlcommon::end_funclist(); + + $functions .= '
'; # End: LC_columnSection + + $functions .= &Apache::lonhtmlcommon::scripttag('main();'); + + + # Print Advanced RAT page header + $r->send_http_header('text/html'); + my $frameset = 1; + + $r->print( + &Apache::loncommon::start_page( + 'Advanced Editor', + $js, + {'add_entries' => \%loaditem, + 'bread_crumbs' => $brcrum, + 'links_target' => '_parent',}) + + .&Apache::loncommon::head_subbox( + &Apache::loncommon::CSTR_pageheader('',$frameset) + .$functions) + + .&Apache::loncommon::end_page() + ); + + return OK; } 1;