--- loncom/interface/lonmenu.pm 2006/05/08 22:34:01 1.180 +++ loncom/interface/lonmenu.pm 2008/12/04 13:41:37 1.247 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Routines to control the menu # -# $Id: lonmenu.pm,v 1.180 2006/05/08 22:34:01 albertel Exp $ +# $Id: lonmenu.pm,v 1.247 2008/12/04 13:41:37 harmsja Exp $ # # Copyright Michigan State University Board of Trustees # @@ -36,6 +36,105 @@ # browser.interface is 'textual' # +=head1 NAME + +Apache::lonmenu + +=head1 SYNOPSIS + +Coordinates the response to clicking an image. + +This is part of the LearningOnline Network with CAPA project +described at http://www.lon-capa.org. + +=head1 SUBROUTINES + +=over + +=item show_course() + +Little texts + +=item initlittle() + +=item menubuttons() + +This gets called at the top of the body section + +=item show_return_link() + +=item registerurl() + +This gets called in the header section + +=item innerregister() + +This gets called in order to register a URL, both with the Remote +and in the body of the document + +=item loadevents() + +=item unloadevents() + +=item startupremote() + +=item setflags() + +=item maincall() + +=item load_remote_msg() + +=item get_menu_name() + +=item reopenmenu() + +=item open() + +Open the menu + +=item clear() + +=item switch() + +Switch a button or create a link +Switch acts on the javascript that is executed when a button is clicked. +The javascript is usually similar to "go('/adm/roles')" or "cstrgo(..)". + +=item secondlevel() + +=item openmenu() + +=item inlinemenu() + +=item rawconfig() + +=item close() + +=item footer() + +=item utilityfunctions() + +=item serverform() + +=item constspaceform() + +=item get_nav_status() + +=item convert_menu_function() + +FIXME this needs to move into mydesktab and the other locations +the text is generated + +=item hidden_button_check() + +=item roles_selector() + +=item jump_to_role() + +=back + +=cut + package Apache::lonmenu; use strict; @@ -44,28 +143,45 @@ use Apache::lonhtmlcommon(); use Apache::loncommon(); use Apache::lonenc(); use Apache::lonlocal; +use LONCAPA qw(:DEFAULT :match); -use vars qw(@desklines $readdesk); +use vars qw(@desklines %category_names %category_members %category_positions $readdesk); my @inlineremote; -# ================================================================ Little texts + + +sub show_course { + my $course = !$env{'user.adv'}; + if (!$env{'user.adv'}) { + foreach my $env (keys(%env)) { + next if ($env !~ m/^user\.priv\./); + if ($env !~ m/^user\.priv\.(?:st|cm)/) { + $course = 0; + last; + } + } + } + return $course; +} sub initlittle { return &Apache::lonlocal::texthash('ret' => 'Return to Last Location', 'nav' => 'Navigate Contents', 'main' => 'Main Menu', - 'roles' => ($env{'user.adv'}? - 'Roles':'Courses'), - 'docs' => 'Course Documents', + 'roles' => (&show_course()? + 'Courses':'Roles'), + 'other' => 'Other Roles', + 'docs' => 'Edit Course', 'exit' => 'Exit', + 'login' => 'Log In', 'launch' => 'Launch Remote Control', - 'groups' => 'Groups'); + 'groups' => 'Groups', + 'gdoc' => 'Group Documents', + ); } -# ============================= This gets called at the top of the body section - sub menubuttons { my $forcereg=shift; my $registration=shift; @@ -82,39 +198,50 @@ sub menubuttons { my $reloadlink=''; my $docs=''; my $groups=''; + my $roles=''.$lt{'roles'}.''; + my $role_selector; my $showgroups=0; - my $escurl=&Apache::lonnet::escape(&Apache::lonenc::check_encrypt($env{'request.noversionuri'})); - my $escsymb=&Apache::lonnet::escape(&Apache::lonenc::check_encrypt($env{'request.symb'})); + my ($cnum,$cdom); + my $escurl=&escape(&Apache::lonenc::check_encrypt($env{'request.noversionuri'})); + my $escsymb=&escape(&Apache::lonenc::check_encrypt($env{'request.symb'})); + + my $logo=&Apache::loncommon::lonhttpdurl("/adm/lonIcons/minilogo.gif"); + $logo = '
$lt{'main'} | $reloadlink $navmaps $docs $groups -$remote -$lt{'roles'} | -$lt{'exit'} | -LON-CAPA | +$roles +$helplink | +$lt{'exit'} |
';
+ for (my $row=1; $row<=8; $row++) {
+ foreach my $cat (keys(%category_members)) {
+ if ($category_positions{$cat} ne "$col,$row") { next; }
+ #$output.='
Link Name: | " + +" Address: |