[LON-CAPA-cvs] cvs: loncom /interface lonpreferences.pm

droeschl droeschl@source.lon-capa.org
Mon, 01 Dec 2008 22:19:33 -0000


This is a MIME encoded message

--droeschl1228169973
Content-Type: text/plain

droeschl		Mon Dec  1 22:19:33 2008 EDT

  Modified files:              
    /loncom/interface	lonpreferences.pm 
  Log:
  Changes related to LON-CAPA redesign project.
  lonpreferences.pm:
  Split the handler into handler and print_main_menu. Similar to other modules.
  Changed look and feel of the menu.
  Stylesheets arent quite right yet.
  
  
--droeschl1228169973
Content-Type: text/plain
Content-Disposition: attachment; filename="droeschl-20081201221933.txt"

Index: loncom/interface/lonpreferences.pm
diff -u loncom/interface/lonpreferences.pm:1.125 loncom/interface/lonpreferences.pm:1.126
--- loncom/interface/lonpreferences.pm:1.125	Fri Jul 18 12:36:11 2008
+++ loncom/interface/lonpreferences.pm	Mon Dec  1 22:19:33 2008
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Preferences
 #
-# $Id: lonpreferences.pm,v 1.125 2008/07/18 12:36:11 raeburn Exp $
+# $Id: lonpreferences.pm,v 1.126 2008/12/01 22:19:33 droeschl Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -98,6 +98,12 @@
 
 sub wysiwygchanger {
     my $r = shift;
+    Apache::lonhtmlcommon::add_breadcrumb(
+	    {	href => '/adm/preferences?action=changewysiwyg',
+                text => 'Change WYSIWYG Preferences'});
+    $r->print(Apache::loncommon::start_page('Change WYSIWYG Preferences'));
+    $r->print(Apache::lonhtmlcommon::breadcrumbs('Change WYSIWYG Preferences'));
+
     my %userenv = &Apache::lonnet::get
         ('environment',['wysiwygeditor']);
     my $onselect='checked="checked"';
@@ -129,7 +135,9 @@
     my $newsetting=$env{'form.wysiwyg'};
     &Apache::lonnet::put('environment',{'wysiwygeditor' => $newsetting});
     &Apache::lonnet::appenv({'environment.wysiwygeditor' => $newsetting});
-    $r->print('<p>'.&mt('Setting WYSIWYG editor to:').' '.&mt($newsetting).'</p>');
+#   $r->print('<p>'.&mt('Setting WYSIWYG editor to:').' '.&mt($newsetting).'</p>');
+    print_main_menu($r,'<p>'.&mt('Setting WYSIWYG editor to:').' '
+			.&mt($newsetting).'</p>');
 }
 
 ################################################################
@@ -137,6 +145,12 @@
 ################################################################
 sub languagechanger {
     my $r = shift;
+    
+    Apache::lonhtmlcommon::add_breadcrumb(
+	    {	href => '/adm/preferences?action=changelanguages',
+                text => 'Change Colors'});
+    $r->print(Apache::loncommon::start_page('Change Language'));
+    $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Language')); 
     my $user       = $env{'user.name'};
     my $domain     = $env{'user.domain'};
     my %userenv = &Apache::lonnet::get
@@ -179,9 +193,10 @@
         &Apache::lonnet::delenv('environment\.languages');
         $message=&mt('Reset preferred language.');
     }
-    $r->print(<<ENDVCSCREEN);
-$message
-ENDVCSCREEN
+    print_main_menu($r, $message);
+#    $r->print(<<ENDVCSCREEN);
+#$message
+#ENDVCSCREEN
 }
 
 ################################################################
@@ -189,6 +204,11 @@
 ################################################################
 sub texenginechanger {
     my $r = shift;
+    Apache::lonhtmlcommon::add_breadcrumb(
+	    {	href => '/adm/preferences?action=changetexenginepref',
+                text => 'Change How Math Equations Are Displayed'});
+    $r->print(Apache::loncommon::start_page('Change How Math Equations Are Displayed'));
+    $r->print(Apache::lonhtmlcommon::breadcrumbs('Change How Math Equations Are Displayed'));
     my $user       = $env{'user.name'};
     my $domain     = $env{'user.domain'};
     my %userenv = &Apache::lonnet::get('environment',['texengine']);
@@ -290,9 +310,10 @@
     }
 
 
-    $r->print(<<ENDVCSCREEN);
-$message
-ENDVCSCREEN
+#    $r->print(<<ENDVCSCREEN);
+#$message
+#ENDVCSCREEN
+    print_main_menu($r, $message);
 }
 
 ################################################################
@@ -306,6 +327,11 @@
     my $domain     = $env{'user.domain'};
     my %userenv = &Apache::lonnet::get
         ('environment',['recentroles','recentrolesn']);
+    Apache::lonhtmlcommon::add_breadcrumb(
+	    {	href => '/adm/preferences?action=changerolespref',
+                text => 'Change '.$role.' Page Pref'});
+    $r->print(Apache::loncommon::start_page('Change '.$role.' Page Pref'));
+    $r->print(Apache::lonhtmlcommon::breadcrumbs('Change '.$role.' Page Pref'));
     my $hotlist_flag=$userenv{'recentroles'};
     my $hotlist_n=$userenv{'recentrolesn'};
     my $checked;
@@ -469,9 +495,10 @@
     }
     $message .= "<hr /><br />\n";
 
-    $r->print(<<ENDRPSCREEN);
-$message
-ENDRPSCREEN
+#    $r->print(<<ENDRPSCREEN);
+#$message
+#ENDRPSCREEN
+    print_main_menu($r, $message);
 }
 
 
@@ -492,6 +519,11 @@
                                           text_nickname  => 'New nickname (shown if you post non-anonymously):',
                                           text_submit => 'Change',
                                         );
+    Apache::lonhtmlcommon::add_breadcrumb(
+		{ href => '/adm/preferences?action=changescreenname',
+                  text => 'Change Screen Name'});
+    $r->print(Apache::loncommon::start_page('Change Screen Name'));
+    $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Screen Name'));
     $r->print(<<ENDSCREEN);
 <form name="prefs" action="/adm/preferences" method="post">
 <input type="hidden" name="action" value="verify_and_change_screenname" />
@@ -536,9 +568,10 @@
         $message.=&mt('Reset nickname.');
     }
     &Apache::lonnet::devalidate_cache_new('namescache',$user.':'.$domain);
-    $r->print(<<ENDVCSCREEN);
-$message
-ENDVCSCREEN
+#    $r->print(<<ENDVCSCREEN);
+#$message
+#ENDVCSCREEN
+    print_main_menu($r, $message);
 }
 
 ################################################################
@@ -546,6 +579,12 @@
 ################################################################
 sub iconchanger {
     my $r = shift;
+    Apache::lonhtmlcommon::add_breadcrumb(
+	    {	href => '/adm/preferences?action=changeicons',
+                text => 'Change Main Menu'});
+    $r->print(Apache::loncommon::start_page('Change Main Menu'));
+    $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Main Menu'));
+
     my $user       = $env{'user.name'};
     my $domain     = $env{'user.domain'};
     my %userenv = &Apache::lonnet::get
@@ -584,7 +623,8 @@
 
     &Apache::lonnet::put('environment',{'icons' => $newicons});
     &Apache::lonnet::appenv({'environment.icons' => $newicons});
-    $r->print(&mt('Set menu mode to [_1].',$newicons));
+#    $r->print(&mt('Set menu mode to [_1].',$newicons));
+    print_main_menu($r, &mt('Set menu mode to [_1].',$newicons));
 }
 
 ################################################################
@@ -593,6 +633,11 @@
 
 sub clickerchanger {
     my $r = shift;
+    Apache::lonhtmlcommon::add_breadcrumb(
+	    {	href => '/adm/preferences?action=changeclicker',
+                text => 'Register Clicker'});
+    $r->print(Apache::loncommon::start_page('Register Clicker'));
+    $r->print(Apache::lonhtmlcommon::breadcrumbs('Register Clicker'));
     my $user       = $env{'user.name'};
     my $domain     = $env{'user.domain'};
     my %userenv = &Apache::lonnet::get
@@ -626,7 +671,8 @@
     $newclickers=~s/\,$//;
     &Apache::lonnet::put('environment',{'clickers' => $newclickers});
     &Apache::lonnet::appenv({'environment.clickers' => $newclickers});
-    $r->print(&mt('Registering clickers: [_1]',$newclickers));
+#    $r->print(&mt('Registering clickers: [_1]',$newclickers));
+    print_main_menu($r, &mt('Registering clickers: [_1]',$newclickers));
 }
 
 ################################################################
@@ -635,6 +681,11 @@
 
 sub domcoordchanger {
     my $r = shift;
+    Apache::lonhtmlcommon::add_breadcrumb(
+	    {	href => '/adm/preferences?action=changedomcoord',
+                text => 'Restrict Domain Coordinator Access'});
+    $r->print(Apache::loncommon::start_page('Restrict Domain Coordinator Access'));
+    $r->print(Apache::lonhtmlcommon::breadcrumbs('Restrict Domain Coordinator Access'));
     my $user       = $env{'user.name'};
     my $domain     = $env{'user.domain'};
     my %userenv = &Apache::lonnet::get
@@ -664,7 +715,8 @@
     if ($env{'form.construction'}) { $domcoord{'domcoord.author'}='blocked'; }
     &Apache::lonnet::put('environment',\%domcoord);
     &Apache::lonnet::appenv({'environment.domcoord.author' => $domcoord{'domcoord.author'}});
-    $r->print(&mt('Registering Domain Coordinator access restrictions.'));
+#    $r->print(&mt('Registering Domain Coordinator access restrictions.'));
+    print_main_menu($r, &mt('Registering Domain Coordinator access restrictions.'));
 }
 
 #################################################################
@@ -728,6 +780,11 @@
                                           toen => "To enter multiple addresses, enter one address at a time, click 'Change' and then add the next one", 
                                           prme => 'Back to preferences menu',
                                         );
+    Apache::lonhtmlcommon::add_breadcrumb(
+	    {	href => '/adm/preferences?action=changemsgforward',
+		text => 'Change Message Forwarding/Notification'});
+    $r->print(Apache::loncommon::start_page('Change Message Forwarding/Notification'));
+    $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Message Forwarding/Notification'));
     my $forwardingHelp = &Apache::loncommon::help_open_topic("Prefs_Forwarding");
     my $notificationHelp = &Apache::loncommon::help_open_topic("Prefs_Notification");
     my $criticalMessageHelp = &Apache::loncommon::help_open_topic("Course_Critical_Message");
@@ -1023,6 +1080,11 @@
 
 sub colorschanger {
     my $r = shift;
+    Apache::lonhtmlcommon::add_breadcrumb(
+	    {	href => '/adm/preferences?action=changecolors',
+                text => 'Change Colors'});
+    $r->print(Apache::loncommon::start_page('Change Colors'));
+    $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Colors'));
 # figure out colors
     my $function=&Apache::loncommon::get_users_function();
     my $domain=&Apache::loncommon::determinedomain();
@@ -1123,12 +1185,13 @@
     &Apache::lonnet::put('environment',{'color.timestamp' => $now});
     &Apache::lonnet::appenv({'environment.color.timestamp' => $now});
 
-    $r->print(<<ENDVCCOL);
-$message
-<form name="client" action="/adm/preferences" method="post">
-<input type="hidden" name="action" value="changecolors" />
-</form>
-ENDVCCOL
+    print_main_menu($r, $message);
+#    $r->print(<<ENDVCCOL);
+#$message
+#<form name="client" action="/adm/preferences" method="post">
+#<input type="hidden" name="action" value="changecolors" />
+#</form>
+#ENDVCCOL
 }
 
 ######################################################
@@ -1140,6 +1203,11 @@
     # Passwords are encrypted using londes.js (DES encryption)
     $errormessage = ($errormessage || '');
     my ($user,$domain,$currentpass,$defdom);
+    Apache::lonhtmlcommon::add_breadcrumb(
+		{ href => '/adm/preferences?action=changepass',
+                  text => 'Change Password'});
+    $r->print(Apache::loncommon::start_page('Change Password'));
+    $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Password'));
     if ((!defined($caller)) || ($caller eq 'preferences')) {
         $user = $env{'user.name'};
         $domain = $env{'user.domain'};
@@ -1473,12 +1541,18 @@
     my $result = &Apache::lonnet::changepass
 	($user,$domain,$currentpass,$newpass1,$homeserver,$caller);
     # Inform the user the password has (not?) been changed
+    my $message;
     if ($result =~ /^ok$/) {
-	$r->print("<h3>".&mt('The password for [_1] was successfully changed',$user)."</h3>");
+        $message = &mt('The password for [_1] was successfully changed',$user);
+        print_main_menu($r, $message);
+#	$r->print("<h3>".&mt('The password for [_1] was successfully changed',$user)."</h3>");
     } else {
 	# error error: run in circles, scream and shout
-        $r->print("<h3><span class='LC_error'>".&mt("The password for [_1] was not changed",$user)."</span></h3>".
-                  &mt('Please make sure your old password was entered correctly.'));
+        $message = &mt("The password for [_1] was not changed",$user)
+		.&mt('Please make sure your old password was entered correctly.');
+        print_main_menu($r, $message);
+#        $r->print("<h3><span class='LC_error'>".&mt("The password for [_1] was not changed",$user)."</span></h3>".
+#                  &mt('Please make sure your old password was entered correctly.'));
         return 1;
     }
     return;
@@ -1489,6 +1563,11 @@
 ################################################################
 sub discussionchanger {
     my $r = shift;
+    Apache::lonhtmlcommon::add_breadcrumb(
+	    {	href => '/adm/preferences?action=changediscussions',
+                text => 'Change Discussion Preferences'});
+    $r->print(Apache::loncommon::start_page('Change Discussion Preferences'));
+    $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Discussion Preferences'));
     my $user       = $env{'user.name'};
     my $domain     = $env{'user.domain'};
     my %userenv = &Apache::lonnet::get
@@ -1619,9 +1698,10 @@
             &Apache::lonnet::delenv('environment\.discmarkread');
         }
     }
-    $r->print(<<ENDVCSCREEN);
-$message
-ENDVCSCREEN
+#    $r->print(<<ENDVCSCREEN);
+#$message
+#ENDVCSCREEN
+    print_main_menu($r, $message);
 }
 
 ################################################################
@@ -1629,6 +1709,11 @@
 ################################################################
 sub coursedisplaychanger {
     my $r = shift;
+    Apache::lonhtmlcommon::add_breadcrumb(
+	    {	href => '/adm/preferences?action=changecourseinit',
+                text => 'Change Course Init. Pref.'});
+    $r->print(Apache::loncommon::start_page('Change Course Initialization Preference'));
+    $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Course Init. Pref.'));
     my $user       = $env{'user.name'};
     my $domain     = $env{'user.domain'};
     my %userenv = &Apache::lonnet::get('environment',['course_init_display']);
@@ -1696,12 +1781,195 @@
                         $refpage.'">'.$lt{'dasp'}.'</a></font>';
         }
     }
-    $r->print(<<ENDVCSCREEN);
-$message
-<br /><br />
-ENDVCSCREEN
+#    $r->print(<<ENDVCSCREEN);
+#$message
+#<br /><br />
+#ENDVCSCREEN
+    print_main_menu($r, $message);
 }
 
+sub print_main_menu {
+    my ($r, $message) = @_;
+    # Determine current authentication method
+    my $user = $env{'user.name'};
+    my $domain = $env{'user.domain'};
+    my $currentauth=&Apache::lonnet::queryauthenticate($user,$domain);
+
+    # build the data structure for menu generation
+my $aboutmeurl='/adm/'.$env{'user.domain'}.'/'.$env{'user.name'}.'/aboutme';
+my $role = ($env{'user.adv'} ? 'Roles' : 'Course');
+my @menu=
+    ({	categorytitle=>'Personal Data',
+	items =>[
+	    {	linktext => 'About Me',
+		url => $aboutmeurl,
+		permission => 'F',
+		#help => 'Prefs_About_Me',
+		icon => 'system-users.png',
+		linktitle => 'Edit information about yourself that should be displayed on your public profile.'
+	    },
+	    {	linktext => 'Screen Name',
+		url => '/adm/preferences?action=changescreenname',
+		permission => 'F',
+		#help => 'Prefs_Screen_Name_Nickname',
+		icon => 'preferences-desktop-font.png',
+		linktitle => 'Change the name that is displayed in your posts.'
+	    },
+		]
+    },
+    {	categorytitle=>'Page Display Settings',
+	items =>[
+	    {	linktext => 'Color Scheme',
+		url => '/adm/preferences?action=changecolors',
+		permission => 'F',
+		#help => 'Change_Colors',
+		icon => 'preferences-desktop-theme.png',
+		linktitle => 'Change LON-CAPA default colors.'
+	    },
+	    {	linktext => 'Menu Display',
+		url => '/adm/preferences?action=changeicons',
+		permission => 'F',
+		#help => '',
+		icon => 'preferences-system-windows.png',
+		linktitle => 'Change whether the menus are displayed with buttons, icons or icons and text.'
+	    }
+
+		]
+    },
+    {	categorytitle=>'Message Management',
+	items =>[
+	    {	linktext => 'Messages & Notifications',
+		url => '/adm/preferences?action=changemsgforward',
+		permission => 'F',
+		#help => 'Prefs_Messages',
+		icon => 'mail-reply-all.png',
+		linktitle => 'Change messageforwarding or notifications settings.'
+	    },
+	    {	linktext => 'Discussion Display Preferences',
+		url => '/adm/preferences?action=changediscussions',
+		permission => 'F',
+		#help => 'Change_Discussion_Display',
+		icon => 'mail-message-new.png',
+		linktitle => 'Set display preferences for discussion posts for both bulletin boards and individual resources in all your courses.'
+	    },
+		]
+    },
+    {	categorytitle=>'Content Display Settings',
+	items =>[
+	    {	linktext => 'Language',
+		url => '/adm/preferences?action=changelanguages',
+		permission => 'F',
+		#help => 'Prefs_Language',
+		icon => 'preferences-desktop-locale.png',
+		linktitle => 'Choose the default language for LON-CAPA.'
+	    },
+	    {	linktext => 'WYSIWYG Editor Preferences',
+		url => '/adm/preferences?action=changewysiwyg',
+		permission => 'F',
+		#help => '',
+		icon => 'edit-select-all.png',
+		linktitle => 'Enable or disable the WYSIWYG-Editor.'
+	    },
+	    {	linktext => $role.' Page Preferences',
+		url => '/adm/preferences?action=changerolespref',
+		permission => 'F',
+		#help => '',
+		icon => 'sctr.png',
+		linktitle => 'Configure the roles hotlist.'
+	    },
+	    {	linktext => 'Display of Math Equations',
+		url => '/adm/preferences?action=changetexenginepref',
+		permission => 'F',
+		#help => '',
+		icon => 'stat.png',
+		linktitle => 'Change how Math Equations are displayed.'
+	    },
+		]
+    },
+    {	categorytitle=>'Other',
+	items =>[
+	    {	linktext => 'Register Response Devices ("Clickers")',
+		url => '/adm/preferences?action=changeclicker',
+		permission => 'F',
+		#help => '',
+		icon => 'network-workgroup.png',
+		linktitle => 'Register your clicker.'
+	    },
+		]
+    },
+    );
+
+    if ($currentauth =~ /^(unix|internal):/) {
+push(@{ $menu[0]->{items} }, {
+	linktext => 'Password',
+	url => '/adm/preferences?action=changepass',
+	permission => 'F',
+	#help => 'Change_Password',
+	icon => 'emblem-readonly.png',
+	linktitle => 'Change your password.',
+	});
+    }
+    if ($env{'environment.remote'} eq 'off') {
+push(@{ $menu[1]->{items} }, {
+	linktext => 'Launch Remote Control',
+	url => '/adm/remote?url=/adm/preferences?action=launch',
+	permission => 'F',
+	#help => '',
+	icon => 'network-wireless.png',
+	linktitle => 'Launch the remote control for LON-CAPA.',
+	});
+    }else{
+push(@{ $menu[1]->{items} }, {
+	linktext => 'Collapse Remote Control',
+	url => '/adm/remote?url=/adm/preferences?action=collapse',
+	permission => 'F',
+	#help => '',
+	icon => 'network-wireless.png',
+	linktitle => 'Collapse the remote control for LON-CAPA.',
+	});
+    }
+    my %author_roles = &Apache::lonnet::get_my_roles($user,$domain,'userroles','',['au']);
+    if (keys(%author_roles) > 0) {
+push(@{ $menu[4]->{items} }, {
+	linktext => 'Restrict Domain Coordinator Access',
+	url => '/adm/preferences?action=changedomcoord',
+	permission => 'F',
+	#help => '',
+	icon => 'system-lock-screen.png',
+	linktitle => 'Restrict domain coordinator access.',
+	});
+    }
+
+    if (&Apache::lonnet::allowed('whn',$env{'request.course.id'})
+	|| &Apache::lonnet::allowed('whn',$env{'request.course.id'}.'/'
+				    .$env{'request.course.sec'})) {
+push(@{ $menu[4]->{items} }, {
+	linktext => 'Course Initialization Preference',
+	url => '/adm/preferences?action=changecourseinit',
+	permission => 'F',
+	#help => '',
+	icon => 'edit-copy.png',
+	linktitle => 'Set the default page to be displayed when you select a course role.',
+	});
+
+    }
+    if ($env{'user.name'} =~ /^(albertel|fox|foxr|kortemey|korte|raeburn)$/) {
+push(@{ $menu[4]->{items} }, {
+	linktext => 'Toggle Debug Messages (Current:'.$env{'user.debug'}.')',
+	url => '/adm/preferences?action=debugtoggle',
+	permission => 'F',
+	#help => '',
+	icon => 'blog.png',
+	linktitle => 'Toggle Debug Messages.',
+	});
+    }   
+
+    $r->print(&Apache::loncommon::start_page('Change Preferences'));
+    $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Preferences'));
+    $r->print($message);
+    $r->print(Apache::lonhtmlcommon::generate_menu(@menu));
+    $r->print(Apache::loncommon::end_page());
+}
 
 ######################################################
 #            other handler subroutines               #
@@ -1710,7 +1978,91 @@
 ################################################################
 #                          Main handler                        #
 ################################################################
-sub handler {
+sub handler {    
+    my $r = shift;
+    Apache::loncommon::content_type($r,'text/html');
+    # Some pages contain DES keys and should not be cached.
+    Apache::loncommon::no_cache($r);
+    $r->send_http_header;
+    return OK if $r->header_only;
+    #
+    Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
+                                   ['action','wysiwyg','returnurl','refpage']);
+    #
+    Apache::lonhtmlcommon::clear_breadcrumbs();
+    Apache::lonhtmlcommon::add_breadcrumb
+        ({href => '/adm/preferences',
+          text => 'Set User Preferences'});
+    if(!exists $env{'form.action'}) {
+	&print_main_menu($r);
+    }elsif($env{'form.action'} eq 'changepass'){
+        &passwordchanger($r);
+    }elsif($env{'form.action'} eq 'verify_and_change_pass'){
+        &verify_and_change_password($r);
+    }elsif($env{'form.action'} eq 'changescreenname'){
+        &screennamechanger($r);
+    }elsif($env{'form.action'} eq 'verify_and_change_screenname'){
+        &verify_and_change_screenname($r);
+    }elsif($env{'form.action'} eq 'changemsgforward'){
+        &msgforwardchanger($r);
+    }elsif($env{'form.action'} eq 'verify_and_change_msgforward'){
+        &verify_and_change_msgforward($r);
+    }elsif($env{'form.action'} eq 'changecolors'){
+        &colorschanger($r);
+    }elsif($env{'form.action'} eq 'verify_and_change_colors'){
+        &verify_and_change_colors($r);
+    }elsif($env{'form.action'} eq 'changelanguages'){
+        &languagechanger($r);
+    }elsif($env{'form.action'} eq 'verify_and_change_languages'){
+        &verify_and_change_languages($r);
+    }elsif($env{'form.action'} eq 'changewysiwyg'){
+        &wysiwygchanger($r);
+    }elsif($env{'form.action'} eq 'set_wysiwyg'){
+        &verify_and_change_wysiwyg($r);
+    }elsif($env{'form.action'} eq 'changediscussions'){
+        &discussionchanger($r);
+    }elsif($env{'form.action'} eq 'verify_and_change_discussion'){
+        &verify_and_change_discussion($r);
+    }elsif($env{'form.action'} eq 'changerolespref'){
+        &rolesprefchanger($r);
+    }elsif($env{'form.action'} eq 'verify_and_change_rolespref'){
+        &verify_and_change_rolespref($r);
+    }elsif($env{'form.action'} eq 'changetexenginepref'){
+        &texenginechanger($r);
+    }elsif($env{'form.action'} eq 'verify_and_change_texengine'){
+        &verify_and_change_texengine($r);
+    }elsif($env{'form.action'} eq 'changeicons'){
+        &iconchanger($r);
+    }elsif($env{'form.action'} eq 'verify_and_change_icons'){
+        &verify_and_change_icons($r);
+    }elsif($env{'form.action'} eq 'changeclicker'){
+        &clickerchanger($r);
+    }elsif($env{'form.action'} eq 'verify_and_change_clicker'){
+        &verify_and_change_clicker($r);
+    }elsif($env{'form.action'} eq 'changedomcoord'){
+        &domcoordchanger($r);
+    }elsif($env{'form.action'} eq 'verify_and_change_domcoord'){
+        &verify_and_change_domcoord($r);
+    }elsif($env{'form.action'} eq 'lockwarning'){
+        &lockwarning($r);
+    }elsif($env{'form.action'} eq 'verify_and_change_locks'){
+        &verify_and_change_lockwarning($r);
+    }elsif($env{'form.action'} eq 'changecourseinit'){
+        &coursedisplaychanger($r);
+    }elsif($env{'form.action'} eq 'verify_and_change_coursepage'){
+        &verify_and_change_coursepage($r);
+    }elsif($env{'form.action'} eq 'debugtoggle'){
+        toggle_debug();
+	print_main_menu($r);
+    }
+
+    return OK;
+
+
+}
+#remove when done
+#old handler routine
+sub handler2 {
     my $r = shift;
     my $user = $env{'user.name'};
     my $domain = $env{'user.domain'};
@@ -1780,7 +2132,7 @@
                       breadcrumb => 
                           { href => '/adm/preferences?action=changemsgforward',
                             text => 'Change Message Forwarding/Notification'},
-                      printmenu => 'no',
+                      printmenu => 'yes',
                       subroutine => \&verify_and_change_msgforward }));
     my $aboutmeaction=
         '/adm/'.$env{'user.domain'}.'/'.$env{'user.name'}.'/aboutme';

--droeschl1228169973--