[LON-CAPA-cvs] cvs: rat / lonratmenu.pm

bisitz bisitz@source.lon-capa.org
Fri, 04 Dec 2009 15:13:05 -0000


bisitz		Fri Dec  4 15:13:05 2009 EDT

  Modified files:              
    /rat	lonratmenu.pm 
  Log:
  Functions in Advanced RAT page header:
  - Replaced hardcoded tables, deprecated tags and special, outdated colors by standard function boxes
  - Introduce function categories
  - Include functions in CSTR head_subbox
  - Allow links to float when screen width is to small
  - Localizaton: Added &mt() calls to function names
  - Reordered data flow: First collect all data, then print it
  - Added some code comments
  (CSTR header work in progress, see bug #6142 and bug #6144)
  
  
Index: rat/lonratmenu.pm
diff -u rat/lonratmenu.pm:1.14 rat/lonratmenu.pm:1.15
--- rat/lonratmenu.pm:1.14	Tue Jun  9 15:01:28 2009
+++ rat/lonratmenu.pm	Fri Dec  4 15:13:04 2009
@@ -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.14 2009/06/09 15:01:28 bisitz Exp $
+# $Id: lonratmenu.pm,v 1.15 2009/12/04 15:13:04 bisitz Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -32,65 +32,122 @@
 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();",);
-   my $brcrum = [{'href' => &Apache::loncommon::authorspace(),
-                  'text' => 'Construction Space'},
-                 {'href' => '',
-                  'text' => 'RAT'},
-                 {'href' => '',
-                  'text' => 'Advanced Editor'}];
-
-    $r->print(&Apache::loncommon::start_page('Advanced Editor',$js,
-                  {'add_entries' => \%loaditem,
-                   'bread_crumbs' => $brcrum,})
-             .&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";
-<table border="0"><tr><td bgcolor="#AAAAAA">
-<table border="0"><tr>
-<td bgcolor="#ffffcc">$help</td>
-<td bgcolor="#ffffcc"><a href="javascript:togglemode();"><font size="-2">Toggle display</font></a></td>
-<td bgcolor="#ffffcc"><a href="javascript:if (zscale>1) { zscale--; draw();}"><font size="-2">Zoom out</font></a></td>
-<td bgcolor="#ffffcc"><a href="javascript:if (zscale<3) { zscale++; draw();}"><font size="-2">Zoom in</font></a></td>
-<td bgcolor="#ffffcc"><a href="javascript:condense();draw();"><font size="-2">Condense</font></a></td>
-<td bgcolor="#ffffcc"><a href="javascript:graphopt();draw();"><font size="-2">Straighten</font></a></td>
-<td bgcolor="#ffffcc"><a href="javascript:revert();"><font size="-2">Revert</font></a></td>
-<td bgcolor="#ffffcc"><a href="javascript:undo();"><font size="-2">Undo</font></a></td>
-<td bgcolor="#ffffcc"><a href="javascript:redo();"><font size="-2">Redo</font></a></td>
-<td bgcolor="#ffffcc"><a href="javascript:groupopen('$readfile');"><font size="-2">Recover deleted</font></a></td>
-<td bgcolor="#ffffcc"><a href="javascript:groupsearch();"><font size="-2">Search</font></a></td>
-<td bgcolor="#ffffcc"><a href="javascript:groupimport();"><font size="-2">Import</font></a></td>
-<td bgcolor="#ffffcc"><a href="javascript:bookmarkopen();"><font size="-2">Import Bookmarks</font></a></td>
-<td bgcolor="#ffffcc"><a href="javascript:groupcopy();"><font size="-2">Copy</font></a></td>
-<td bgcolor="#ffffcc"><a href="javascript:graphdef='no';save();storechange();"><font size="-2">Save map</font></a></td>
-<td bgcolor="#ccffcc"><a href="javascript:storechange();"><font size="-2">Save map and layout</font></a></td>
-</tr></table>
-</td></tr></table>
-<script type="text/javascript">
-main();
-</script>
-END
-    return $pagetext;
+    # Breadcrumbs
+    my $brcrum = [{'href' => &Apache::loncommon::authorspace(),
+                   'text' => 'Construction Space'},
+                  {'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 = '<div class="LC_columnSection">';
+
+    $functions .= $help; # FIXME: Move help to bread_crumbs_component
+
+    $functions .=
+       &Apache::lonhtmlcommon::start_funclist(&mt('Display Actions'))
+      .&Apache::lonhtmlcommon::add_item_funclist(
+           '<a href="javascript:togglemode();">'
+          .&mt('Toggle display').'</a>')
+      .&Apache::lonhtmlcommon::add_item_funclist(
+           '<a href="javascript:if (zscale>1) { zscale--; draw();}">'
+          .&mt('Zoom out').'</a>')
+      .&Apache::lonhtmlcommon::add_item_funclist(
+           '<a href="javascript:if (zscale<3) { zscale++; draw();}">'
+          .&mt('Zoom in').'</a>')
+      .&Apache::lonhtmlcommon::add_item_funclist(
+           '<a href="javascript:condense();draw();">'
+          .&mt('Condense').'</a>')
+      .&Apache::lonhtmlcommon::add_item_funclist(
+           '<a href="javascript:graphopt();draw();">'
+          .&mt('Straighten').'</a>')
+      .&Apache::lonhtmlcommon::add_item_funclist(
+           '<a href="javascript:revert();">'
+          .&mt('Revert').'</a>')
+      .&Apache::lonhtmlcommon::end_funclist();
+
+    $functions .=
+       &Apache::lonhtmlcommon::start_funclist(&mt('Version Actions'))
+      .&Apache::lonhtmlcommon::add_item_funclist(
+           '<a href="javascript:undo();">'
+          .&mt('Undo').'</a>')
+      .&Apache::lonhtmlcommon::add_item_funclist(
+           '<a href="javascript:redo();">'
+          .&mt('Redo').'</a>')
+      .&Apache::lonhtmlcommon::add_item_funclist(
+           '<a href="javascript:groupopen(\''.$readfile.'\');">'
+          .&mt('Recover deleted').'</a>')
+      .&Apache::lonhtmlcommon::end_funclist();
+
+    $functions .=
+       &Apache::lonhtmlcommon::start_funclist(&mt('Import'))
+      .&Apache::lonhtmlcommon::add_item_funclist(
+           '<a href="javascript:groupsearch();">'
+          .&mt('Search').'</a>')
+      .&Apache::lonhtmlcommon::add_item_funclist(
+           '<a href="javascript:groupimport();">'
+          .&mt('Import').'</a>')
+      .&Apache::lonhtmlcommon::add_item_funclist(
+           '<a href="javascript:bookmarkopen();">'
+          .&mt('Import Bookmarks').'</a>')
+      .&Apache::lonhtmlcommon::add_item_funclist(
+           '<a href="javascript:groupcopy();">'
+          .&mt('Copy').'</a>')
+      .&Apache::lonhtmlcommon::end_funclist();
+
+    $functions .=
+       &Apache::lonhtmlcommon::start_funclist(&mt('Save'))
+      .&Apache::lonhtmlcommon::add_item_funclist(
+           '<a href="javascript:graphdef=\'no\';save();storechange();">'
+          .&mt('Save map').'</a>')
+      .&Apache::lonhtmlcommon::add_item_funclist(
+           '<a href="javascript:storechange();">'
+          .&mt('Save map and layout').'</a>')
+      .&Apache::lonhtmlcommon::end_funclist();
+
+    $functions .= '</div>'; # End: LC_columnSection
+
+    $functions .= &Apache::lonhtmlcommon::scripttag('main();');
+
+
+    # Print Advanced RAT page header
+    $r->send_http_header('text/html');
+
+    $r->print(
+        &Apache::loncommon::start_page(
+            'Advanced Editor',
+            $js,
+            {'add_entries' => \%loaditem,
+             'bread_crumbs' => $brcrum,})
+
+       .&Apache::loncommon::head_subbox(
+            &Apache::loncommon::CSTR_pageheader()
+           .$functions)
+
+       .&Apache::loncommon::end_page()
+    );
+
+    return OK;
 }
 
 1;