--- loncom/interface/lonpreferences.pm 2004/05/25 22:00:21 1.43
+++ loncom/interface/lonpreferences.pm 2006/05/08 22:22:48 1.85
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Preferences
#
-# $Id: lonpreferences.pm,v 1.43 2004/05/25 22:00:21 raeburn Exp $
+# $Id: lonpreferences.pm,v 1.85 2006/05/08 22:22:48 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -40,6 +40,7 @@ use DynaLoader; # for Crypt::DES version
use Apache::loncommon();
use Apache::lonhtmlcommon();
use Apache::lonlocal;
+use Apache::lonnet;
#
# Write lonnet::passwd to do the call below.
@@ -92,10 +93,45 @@ sub des_decrypt {
################################################################
# Language Change Subroutines #
################################################################
+
+sub wysiwygchanger {
+ my $r = shift;
+ my %userenv = &Apache::lonnet::get
+ ('environment',['wysiwygeditor']);
+ my $onselect='checked="checked"';
+ my $offselect='';
+ if ($userenv{'wysiwygeditor'} eq 'on') {
+ $onselect='';
+ $offselect='checked="checked"';
+ }
+ my $switchoff=&mt('Disable WYSIWYG editor');
+ my $switchon=&mt('Enable WYSIWYG editor');
+ $r->print(<
+
+
+ $switchoff
+ $switchon
+ENDLSCREEN
+ $r->print(' ');
+}
+
+
+sub verify_and_change_wysiwyg {
+ my $r = shift;
+ my $newsetting=$env{'form.wysiwyg'};
+ &Apache::lonnet::put('environment',{'wysiwygeditor' => $newsetting});
+ &Apache::lonnet::appenv('environment.wysiwygeditor' => $newsetting);
+ $r->print(''.&mt('Setting WYSIWYG editor to:').' '.&mt($newsetting).'
');
+}
+
+################################################################
+# Language Change Subroutines #
+################################################################
sub languagechanger {
my $r = shift;
- my $user = $ENV{'user.name'};
- my $domain = $ENV{'user.domain'};
+ my $user = $env{'user.name'};
+ my $domain = $env{'user.domain'};
my %userenv = &Apache::lonnet::get
('environment',['languages']);
my $language=$userenv{'languages'};
@@ -111,7 +147,7 @@ sub languagechanger {
my $selectionbox=&Apache::loncommon::select_form($language,'language',
%langchoices);
$r->print(<
+
+
+
+
+Enable Recent Roles Hotlist:
+
+ Number of roles in Hotlist:
+
+$options
+
+
+
+
+ENDSCREEN
+}
+
+sub verify_and_change_rolespref {
+ my $r = shift;
+ my $user = $env{'user.name'};
+ my $domain = $env{'user.domain'};
+# Recent Roles Hotlist Flag
+ my $hotlist_flag = $env{'form.recentroles'};
+ my $hotlist_n = $env{'form.recentrolesn'};
+ my $message='';
+ if ($hotlist_flag) {
+ &Apache::lonnet::put('environment',{'recentroles' => $hotlist_flag});
+ &Apache::lonnet::appenv('environment.recentroles' => $hotlist_flag);
+ $message='Recent Roles Hotlist is Enabled';
+ } else {
+ &Apache::lonnet::del('environment',['recentroles']);
+ &Apache::lonnet::delenv('environment\.recentroles');
+ $message='Recent Roles Hotlist is Disabled';
+ }
+ if ($hotlist_n) {
+ &Apache::lonnet::put('environment',{'recentrolesn' => $hotlist_n});
+ &Apache::lonnet::appenv('environment.recentrolesn' => $hotlist_n);
+ if ($hotlist_flag) {
+ $message.=" Display $hotlist_n Most Recent Roles\n";
+ }
+ }
+
+ $r->print(<print(<
+
New screenname (shown if you post anonymously):
@@ -168,10 +375,10 @@ ENDSCREEN
sub verify_and_change_screenname {
my $r = shift;
- my $user = $ENV{'user.name'};
- my $domain = $ENV{'user.domain'};
+ my $user = $env{'user.name'};
+ my $domain = $env{'user.domain'};
# Screenname
- my $newscreen = $ENV{'form.screenname'};
+ my $newscreen = $env{'form.screenname'};
$newscreen=~s/[^ \w]//g;
my $message='';
if ($newscreen) {
@@ -185,7 +392,7 @@ sub verify_and_change_screenname {
}
# Nickname
$message.=' ';
- $newscreen = $ENV{'form.nickname'};
+ $newscreen = $env{'form.nickname'};
$newscreen=~s/[^ \w]//g;
if ($newscreen) {
&Apache::lonnet::put('environment',{'nickname' => $newscreen});
@@ -196,9 +403,8 @@ sub verify_and_change_screenname {
&Apache::lonnet::delenv('environment\.nickname');
$message.='Reset nickname';
}
-
+ &Apache::lonnet::devalidate_cache_new('namescache',$user.':'.$domain);
$r->print(<
$message
ENDVCSCREEN
}
@@ -209,8 +415,8 @@ ENDVCSCREEN
sub msgforwardchanger {
my $r = shift;
- my $user = $ENV{'user.name'};
- my $domain = $ENV{'user.domain'};
+ my $user = $env{'user.name'};
+ my $domain = $env{'user.domain'};
my %userenv = &Apache::lonnet::get('environment',['msgforward','notification','critnotification']);
my $msgforward=$userenv{'msgforward'};
my $notification=$userenv{'notification'};
@@ -224,7 +430,7 @@ sub msgforwardchanger {
$r->print(<
-
+
New Forwarding Address(es) (user:domain,user:domain,... ):
@@ -239,11 +445,11 @@ ENDMSG
sub verify_and_change_msgforward {
my $r = shift;
- my $user = $ENV{'user.name'};
- my $domain = $ENV{'user.domain'};
+ my $user = $env{'user.name'};
+ my $domain = $env{'user.domain'};
my $newscreen = '';
my $message='';
- foreach (split(/\,/,$ENV{'form.msgforward'})) {
+ foreach (split(/\,/,$env{'form.msgforward'})) {
my ($msuser,$msdomain)=split(/[\@\:]/,$_);
$msuser=~s/\W//g;
$msdomain=~s/\W//g;
@@ -265,7 +471,7 @@ sub verify_and_change_msgforward {
&Apache::lonnet::delenv('environment\.msgforward');
$message.='Reset message forwarding ';
}
- my $notification=$ENV{'form.notification'};
+ my $notification=$env{'form.notification'};
$notification=~s/\s//gs;
if ($notification) {
&Apache::lonnet::put('environment',{'notification' => $notification});
@@ -276,7 +482,7 @@ sub verify_and_change_msgforward {
&Apache::lonnet::delenv('environment\.notification');
$message.='Reset message notification ';
}
- my $critnotification=$ENV{'form.critnotification'};
+ my $critnotification=$env{'form.critnotification'};
$critnotification=~s/\s//gs;
if ($critnotification) {
&Apache::lonnet::put('environment',{'critnotification' => $critnotification});
@@ -288,7 +494,6 @@ sub verify_and_change_msgforward {
$message.='Reset critical message notification ';
}
$r->print(<
$message
ENDVCMSG
}
@@ -300,17 +505,7 @@ ENDVCMSG
sub colorschanger {
my $r = shift;
# figure out colors
- my $function='student';
- if ($ENV{'request.role'}=~/^(cc|in|ta|ep)/) {
- $function='coordinator';
- }
- if ($ENV{'request.role'}=~/^(su|dc|ad|li)/) {
- $function='admin';
- }
- if (($ENV{'request.role'}=~/^(au|ca)/) ||
- ($ENV{'REQUEST_URI'}=~/^(\/priv|\~)/)) {
- $function='author';
- }
+ my $function=&Apache::loncommon::get_users_function();
my $domain=&Apache::loncommon::determinedomain();
my %colortypes=('pgbg' => 'Page Background',
'tabbg' => 'Header Background',
@@ -319,19 +514,23 @@ sub colorschanger {
'link' => 'Un-Visited Link',
'vlink' => 'Visited Link',
'alink' => 'Active Link');
+ my $start_data_table = &Apache::loncommon::start_data_table();
my $chtable='';
foreach my $item (sort(keys(%colortypes))) {
my $curcol=&Apache::loncommon::designparm($function.'.'.$item,$domain);
- $chtable.=''.$colortypes{$item}.' Select ';
+ .$item."','parmform.pres','psub'".');">Select'.
+ &Apache::loncommon::end_data_table_row()."\n";
}
+ my $end_data_table = &Apache::loncommon::end_data_table();
my $pjump_def = &Apache::lonhtmlcommon::pjump_javascript_definition();
$r->print(<
+
@@ -495,7 +687,7 @@ $errormessage
ensure that unencrypted passwords will not be sent out by a
crappy browser -->
-
+
@@ -529,24 +721,17 @@ ENDFORM
sub verify_and_change_password {
my $r = shift;
- my $user = $ENV{'user.name'};
- my $domain = $ENV{'user.domain'};
- my $homeserver = $ENV{'user.home'};
+ my $user = $env{'user.name'};
+ my $domain = $env{'user.domain'};
+ my $homeserver = $env{'user.home'};
my $currentauth=&Apache::lonnet::queryauthenticate($user,$domain);
# Check for authentication types that allow changing of the password.
return if ($currentauth !~ /^(unix|internal):/);
#
- $r->print(<
-
-LON-CAPA Preferences: Change password for $user
-
-ENDHEADER
- #
- my $currentpass = $ENV{'form.currentpass'};
- my $newpass1 = $ENV{'form.newpass_1'};
- my $newpass2 = $ENV{'form.newpass_2'};
- my $logtoken = $ENV{'form.logtoken'};
+ my $currentpass = $env{'form.currentpass'};
+ my $newpass1 = $env{'form.newpass_1'};
+ my $newpass2 = $env{'form.newpass_2'};
+ my $logtoken = $env{'form.logtoken'};
# Check for empty data
unless (defined($currentpass) &&
defined($newpass1) &&
@@ -567,7 +752,7 @@ password decryption. Please log out and
ENDERROR
# Probably should log an error here
- return;
+ return 1;
}
my ($ckey,$n1key,$n2key)=split(/&/,$tmpinfo);
#
@@ -580,14 +765,14 @@ ENDERROR
'ERROR: '.
'The new passwords you entered do not match. '.
'Please try again.');
- return;
+ return 1;
}
if (length($newpass1) < 7) {
&passwordchanger($r,
'ERROR: '.
'Passwords must be a minimum of 7 characters long. '.
'Please try again.');
- return;
+ return 1;
}
#
# Check for bad characters
@@ -622,6 +807,7 @@ ENDTEXT
The password for $user was not changed
Please make sure your old password was entered correctly.
ENDERROR
+ return 1;
}
return;
}
@@ -631,8 +817,8 @@ ENDERROR
################################################################
sub discussionchanger {
my $r = shift;
- my $user = $ENV{'user.name'};
- my $domain = $ENV{'user.domain'};
+ my $user = $env{'user.name'};
+ my $domain = $env{'user.domain'};
my %userenv = &Apache::lonnet::get
('environment',['discdisplay','discmarkread']);
my $discdisp = 'allposts';
@@ -654,7 +840,7 @@ sub discussionchanger {
my $function = &Apache::loncommon::get_users_function();
my $color = &Apache::loncommon::designparm($function.'.tabbg',
- $ENV{'user.domain'});
+ $env{'user.domain'});
my %lt = &Apache::lonlocal::texthash(
'pref' => 'Display Preference',
'curr' => 'Current setting ',
@@ -690,40 +876,38 @@ sub discussionchanger {
}
$r->print(<<"END");
-
+
$lt{'sdpf'} $lt{'prca'} $lt{'whpo'} $lt{'unwh'}
-
+END
+ $r->print(&Apache::loncommon::end_data_table_row().
+ &Apache::loncommon::end_data_table());
+ $r->print(<<"END");
@@ -736,11 +920,11 @@ END
sub verify_and_change_discussion {
my $r = shift;
- my $user = $ENV{'user.name'};
- my $domain = $ENV{'user.domain'};
+ my $user = $env{'user.name'};
+ my $domain = $env{'user.domain'};
my $message='';
- if (defined($ENV{'form.discdisp'}) ) {
- my $newdisp = $ENV{'form.newdisp'};
+ if (defined($env{'form.discdisp'}) ) {
+ my $newdisp = $env{'form.newdisp'};
if ($newdisp eq 'unread') {
$message .='In discussions: only new posts will be displayed. ';
&Apache::lonnet::put('environment',{'discdisplay' => $newdisp});
@@ -751,8 +935,8 @@ sub verify_and_change_discussion {
&Apache::lonnet::delenv('environment\.discdisplay');
}
}
- if (defined($ENV{'form.discmark'}) ) {
- my $newmark = $ENV{'form.newmark'};
+ if (defined($env{'form.discmark'}) ) {
+ my $newmark = $env{'form.newmark'};
if ($newmark eq 'ondisp') {
$message.='In discussions: new posts will be cease to be identified as "new" after display. ';
&Apache::lonnet::put('environment',{'discmarkread' => $newmark});
@@ -764,11 +948,89 @@ sub verify_and_change_discussion {
}
}
$r->print(<
$message
ENDVCSCREEN
}
+################################################################
+# Subroutines for page display on course access (Course Coordinators)
+################################################################
+sub coursedisplaychanger {
+ my $r = shift;
+ my $user = $env{'user.name'};
+ my $domain = $env{'user.domain'};
+ my %userenv = &Apache::lonnet::get('environment',['course_init_display']);
+ my $currvalue = 'whatsnew';
+ my $firstselect = '';
+ my $whatsnewselect = 'checked="checked"';
+ if (exists($userenv{'course_init_display'})) {
+ if ($userenv{'course_init_display'} eq 'firstres') {
+ $currvalue = 'firstres';
+ $firstselect = 'checked="checked"';
+ $whatsnewselect = '';
+ }
+ }
+ my %pagenames = (
+ firstres => 'First resource',
+ whatsnew => "What's new page",
+ );
+ my $whatsnew_off=&mt('Display the [_1] in the course.','first resource ');
+ my $whatsnew_on=&mt('Display the "[_1]" page - a summary of items in the course which require attention.',"What's New ");
+
+ $r->print(''.&mt('Set the default page to be displayed when you select a course role').' '.&mt('(Currently: [_1])',$pagenames{$currvalue}).' '.&mt('The global user preference you set for your courses can be overridden in an individual course by setting a course specific setting via the "[_1]" page in the course',"What's New ").' ');
+ $r->print(<
+
+
+ $whatsnew_off
+ $whatsnew_on
+ENDLSCREEN
+ $r->print('
+ ');
+}
+
+sub verify_and_change_coursepage {
+ my $r = shift;
+ my $message='';
+ my %lt = &Apache::lonlocal::texthash(
+ 'defs' => 'Default now set',
+ 'when' => 'when you select a course role from the roles screen',
+ 'ywbt' => 'you will be taken to the start of the course.',
+ 'apwb' => 'a page will be displayed that lists items in the course that may require action from you.',
+ 'gtts' => 'Go to the start of the course',
+ 'dasp' => "Display the What's New page listing course action items",
+ );
+ my $newdisp = $env{'form.newdisp'};
+ $message = ''.$lt{'defs'}.' : '.$lt{'when'}.', ';
+ if ($newdisp eq 'firstres') {
+ $message .= $lt{'ywbt'}.' ';
+ &Apache::lonnet::put('environment',{'course_init_display' => $newdisp});
+ &Apache::lonnet::appenv('environment.course_init_display' => $newdisp);
+ } else {
+ $message .= $lt{'apwb'}.' ';
+ &Apache::lonnet::del('environment',['course_init_display']);
+ &Apache::lonnet::delenv('environment\.course_init_display');
+ }
+ my $refpage = $env{'form.refpage'};
+ if (($env{'request.course.fn'}) && ($env{'request.course.id'})) {
+ if ($newdisp eq 'firstres') {
+ my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
+ my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
+ my ($furl,$ferr)=
+ &Apache::lonuserstate::readmap($cdom.'/'.$cnum);
+ $message .= ''.$lt{'gtts'}.' '.&mt('now').' ';
+ } else {
+ $message .= ''.$lt{'dasp'}.' ';
+ }
+ }
+ $r->print(<
+ENDVCSCREEN
+}
+
+
######################################################
# other handler subroutines #
######################################################
@@ -778,8 +1040,8 @@ ENDVCSCREEN
################################################################
sub handler {
my $r = shift;
- my $user = $ENV{'user.name'};
- my $domain = $ENV{'user.domain'};
+ my $user = $env{'user.name'};
+ my $domain = $env{'user.domain'};
&Apache::loncommon::content_type($r,'text/html');
# Some pages contain DES keys and should not be cached.
&Apache::loncommon::no_cache($r);
@@ -787,7 +1049,7 @@ sub handler {
return OK if $r->header_only;
#
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
- ['action']);
+ ['action','wysiwyg','returnurl','refpage']);
#
&Apache::lonhtmlcommon::clear_breadcrumbs();
&Apache::lonhtmlcommon::add_breadcrumb
@@ -812,7 +1074,7 @@ sub handler {
breadcrumb =>
{ href =>'/adm/preferences?action=changepass',
text => 'Change Password'},
- printmenu => 'yes',
+ printmenu => 'not_on_error',
}));
}
push (@Options,({ action => 'changescreenname',
@@ -833,8 +1095,7 @@ sub handler {
}));
push (@Options,({ action => 'changemsgforward',
- linktext => 'Change Message Forwarding',
- text => 'and Notification Addresses',
+ linktext => 'Change Message Forwarding and Notification Addresses',
href => '/adm/preferences',
help => 'Prefs_Forwarding',
breadcrumb =>
@@ -849,10 +1110,11 @@ sub handler {
printmenu => 'yes',
subroutine => \&verify_and_change_msgforward }));
my $aboutmeaction=
- '/adm/'.$ENV{'user.domain'}.'/'.$ENV{'user.name'}.'/aboutme';
+ '/adm/'.$env{'user.domain'}.'/'.$env{'user.name'}.'/aboutme';
push (@Options,{ action => 'none',
linktext =>
q{Edit the 'About Me' Personal Information Screen},
+ help => 'Prefs_About_Me',
href => $aboutmeaction});
push (@Options,({ action => 'changecolors',
linktext => 'Change Color Scheme',
@@ -873,6 +1135,7 @@ sub handler {
push (@Options,({ action => 'changelanguages',
linktext => 'Change Language Preferences',
href => '/adm/preferences',
+ help => 'Prefs_Language',
breadcrumb=>
{ href => '/adm/preferences?action=changelanguages',
text => 'Change Language'},
@@ -885,9 +1148,25 @@ sub handler {
printmenu => 'yes',
subroutine=>\&verify_and_change_languages, }
));
+ push (@Options,({ action => 'changewysiwyg',
+ linktext => 'Change WYSIWYG Editor Preferences',
+ href => '/adm/preferences',
+ breadcrumb =>
+ { href => '/adm/preferences?action=changewysiwyg',
+ text => 'Change WYSIWYG Preferences'},
+ subroutine => \&wysiwygchanger,
+ },
+ { action => 'set_wysiwyg',
+ breadcrumb =>
+ { href => '/adm/preferences?action=changewysiwyg',
+ text => 'Change WYSIWYG Preferences'},
+ printmenu => 'yes',
+ subroutine => \&verify_and_change_wysiwyg, }
+ ));
push (@Options,({ action => 'changediscussions',
linktext => 'Change Discussion Display Preferences',
href => '/adm/preferences',
+ help => 'Change_Discussion_Display',
breadcrumb =>
{ href => '/adm/preferences?action=changediscussions',
text => 'Change Discussion Preferences'},
@@ -901,45 +1180,108 @@ sub handler {
subroutine => \&verify_and_change_discussion, }
));
- if ($ENV{'user.name'} =~ /^(albertel|koretemey|korte|hallmat3|turtle)$/) {
+ push (@Options,({ action => 'changerolespref',
+ linktext => 'Change Roles Page Preferences',
+ href => '/adm/preferences',
+ subroutine => \&rolesprefchanger,
+ breadcrumb =>
+ { href => '/adm/preferences?action=changerolespref',
+ text => 'Change Roles Pref'},
+ },
+ { action => 'verify_and_change_rolespref',
+ subroutine => \&verify_and_change_rolespref,
+ breadcrumb =>
+ { href => '/adm/preferences?action=changerolespref',
+ text => 'Change Roles Preferences'},
+ printmenu => 'yes',
+ }));
+
+ push (@Options,({ action => 'changetexenginepref',
+ linktext => 'Change How Math Equations Are Displayed',
+ href => '/adm/preferences',
+ subroutine => \&texenginechanger,
+ breadcrumb =>
+ { href => '/adm/preferences?action=changetexenginepref',
+ text => 'Change Math Pref'},
+ },
+ { action => 'verify_and_change_texengine',
+ subroutine => \&verify_and_change_texengine,
+ breadcrumb =>
+ { href => '/adm/preferences?action=changetexenginepref',
+ text => 'Change Math Preferences'},
+ printmenu => 'yes',
+ }));
+
+ if ($env{'environment.remote'} eq 'off') {
+ push (@Options,({ action => 'launch',
+ linktext => 'Launch Remote Control',
+ href => '/adm/remote?url=/adm/preferences',
+ }));
+ } else {
+ push (@Options,({ action => 'collapse',
+ linktext => 'Collapse Remote Control',
+ href => '/adm/remote?url=/adm/preferences',
+ }));
+ }
+
+ if (&Apache::lonnet::allowed('whn',$env{'request.course.id'})
+ || &Apache::lonnet::allowed('whn',$env{'request.course.id'}.'/'
+ .$env{'request.course.sec'})) {
+ push (@Options,({ action => 'changecourseinit',
+ linktext => 'Change Course Initialization Preference',
+ href => '/adm/preferences',
+ subroutine => \&coursedisplaychanger,
+ breadcrumb =>
+ { href => '/adm/preferences?action=changecourseinit',
+ text => 'Change Course Init. Pref.'},
+ },
+ { action => 'verify_and_change_coursepage',
+ breadcrumb =>
+ { href => '/adm/preferences?action=changecourseinit', text => 'Change Course Initialization Preference'},
+ printmenu => 'yes',
+ subroutine => \&verify_and_change_coursepage,
+ }));
+ }
+
+ if ($env{'user.name'} =~ /^(albertel|fox|foxr|koretemey|korte|hallmat3|turtle|raeburn)$/) {
push (@Options,({ action => 'debugtoggle',
printmenu => 'yes',
subroutine => \&toggle_debug,
}));
}
- $r->print(<
-
-LON-CAPA Preferences
-
-ENDHEADER
+
+ $r->print(&Apache::loncommon::start_page('Change Preferences'));
+
my $call = undef;
+ my $help = undef;
my $printmenu = 'yes';
foreach my $option (@Options) {
- if ($option->{'action'} eq $ENV{'form.action'}) {
+ if ($option->{'action'} eq $env{'form.action'}) {
$call = $option->{'subroutine'};
$printmenu = $option->{'printmenu'};
if (exists($option->{'breadcrumb'})) {
&Apache::lonhtmlcommon::add_breadcrumb
($option->{'breadcrumb'});
}
+ $help=$option->{'help'};
}
}
- $r->print(&Apache::loncommon::bodytag('Change Preferences'));
- $r->print(&Apache::lonhtmlcommon::breadcrumbs
- (undef,'Change Preferences'));
+ $r->print(&Apache::lonhtmlcommon::breadcrumbs('Change Preferences',$help));
+ my $error;
if (defined($call)) {
- $call->($r);
+ $error = $call->($r);
}
- if ($printmenu eq 'yes') {
+ if ( ( ($printmenu eq 'yes')
+ || ($printmenu eq 'not_on_error' && !$error) )
+ && (!$env{'form.returnurl'})) {
my $optionlist = '';
- if ($ENV{'user.name'} =~
- /^(albertel|kortemey|korte|hallmat3|turtle)$/
+ if ($env{'user.name'} =~
+ /^(albertel|kortemey|fox|foxr|korte|hallmat3|turtle|raeburn)$/
) {
push (@Options,({ action => 'debugtoggle',
linktext => 'Toggle Debug Messages',
text => 'Current Debug status is -'.
- $ENV{'user.debug'}.'-.',
+ $env{'user.debug'}.'-.',
href => '/adm/preferences',
printmenu => 'yes',
subroutine => \&toggle_debug,
@@ -948,13 +1290,14 @@ ENDHEADER
foreach my $option(@Options) {
my $optiontext = '';
if (exists($option->{'href'})) {
- $optiontext .=
- ''.
- $option->{'linktext'}.' ';
+ $option->{'href_args'}{'action'}=$option->{'action'};
+ $optiontext .=
+ ''.
+ &mt($option->{'linktext'}).' ';
}
if (exists($option->{'text'})) {
- $optiontext .= ' '.$option->{'text'};
+ $optiontext .= ' '.&mt($option->{'text'});
}
if ($optiontext ne '') {
$optiontext = ''.$optiontext.' ';
@@ -971,16 +1314,16 @@ ENDHEADER
}
$optionlist .= '
';
$r->print($optionlist);
+ } elsif ($env{'form.returnurl'}) {
+ $r->print(''.
+ &mt('Return').' ');
}
- $r->print(<
-