--- loncom/auth/lonroles.pm 2010/07/30 20:35:16 1.255
+++ loncom/auth/lonroles.pm 2010/08/17 21:35:40 1.256.2.2
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# User Roles Screen
#
-# $Id: lonroles.pm,v 1.255 2010/07/30 20:35:16 raeburn Exp $
+# $Id: lonroles.pm,v 1.256.2.2 2010/08/17 21:35:40 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -57,7 +57,8 @@ course they should act on, etc. Both in
handler determines via C's C<&allowed> function that a certain
action is not allowed, C is used as error handler. This
allows the user to select another role which may have permission to do
-what they were trying to do.
+what they were trying to do. C can also be accessed via the
+B button in the Remote Control.
=begin latex
@@ -144,11 +145,19 @@ use HTML::Entities;
sub redirect_user {
- my ($r,$title,$url,$msg) = @_;
+ my ($r,$title,$url,$msg,$launch_nav) = @_;
$msg = $title if (! defined($msg));
&Apache::loncommon::content_type($r,'text/html');
&Apache::loncommon::no_cache($r);
$r->send_http_header;
+ my $swinfo=&Apache::lonmenu::rawconfig();
+ my $navwindow;
+ if ($launch_nav eq 'on') {
+ $navwindow.=&Apache::lonnavdisplay::launch_win('now',undef,undef,
+ ($url =~ m-^/adm/whatsnew-));
+ } else {
+ $navwindow.=&Apache::lonnavmaps::close();
+ }
# Breadcrumbs
my $brcrum = [{'href' => $url,
@@ -163,6 +172,12 @@ sub redirect_user {
$url=~s/ /\%20/g;
$r->print(<
+//
+
+$navwindow
$msg
$end_page
ENDREDIR
@@ -329,33 +344,34 @@ sub handler {
my @ids = &Apache::lonnet::current_machine_ids();
unless ($loncaparev eq '' && $home && grep(/^\Q$home\E$/,@ids)) {
my %curr_reqd_hash = &Apache::lonnet::userenvironment($cdom,$cnum,'internal.releaserequired');
- if ($curr_reqd_hash{'internal.releaserequired'} &&
- $curr_reqd_hash{'internal.releaserequired'} > $loncaparev) {
+ if ($curr_reqd_hash{'internal.releaserequired'} ne '') {
my ($switchserver,$switchwarning) =
&check_release_required($loncaparev,$cdom.'_'.$cnum,$trolecode,$curr_reqd_hash{'internal.releaserequired'});
- &Apache::loncommon::content_type($r,'text/html');
- &Apache::loncommon::no_cache($r);
- $r->send_http_header;
- my $end_page=&Apache::loncommon::end_page();
- $r->print(&Apache::loncommon::start_page('Selected course unavailable on this server').
- '');
- if ($switchwarning) {
- $r->print($switchwarning.'
');
- if (&Apache::loncommon::show_course()) {
- $r->print(&mt('Display courses'));
- } else {
- $r->print(&mt('Display roles'));
+ if ($switchwarning ne '' || $switchserver ne '') {
+ &Apache::loncommon::content_type($r,'text/html');
+ &Apache::loncommon::no_cache($r);
+ $r->send_http_header;
+ my $end_page=&Apache::loncommon::end_page();
+ $r->print(&Apache::loncommon::start_page('Selected course unavailable on this server').
+ '');
+ if ($switchwarning) {
+ $r->print($switchwarning.'
');
+ if (&Apache::loncommon::show_course()) {
+ $r->print(&mt('Display courses'));
+ } else {
+ $r->print(&mt('Display roles'));
+ }
+ $r->print('');
+ } elsif ($switchserver) {
+ $r->print(&mt('This course requires a newer version of LON-CAPA than is installed on this server.').
+ '
'.
+ ''.
+ &mt('Switch Server').
+ '');
}
- $r->print('
');
- } elsif ($switchserver) {
- $r->print(&mt('This course requires a newer version of LON-CAPA than is installed on this server.').
- '
'.
- ''.
- &mt('Switch Server').
- '');
+ $r->print('
'.&Apache::loncommon::end_page());
+ return OK;
}
- $r->print('
'.&Apache::loncommon::end_page());
- return OK;
}
}
}
@@ -541,7 +557,8 @@ ENDENTERKEY
}
&redirect_user($r, &mt('Entering [_1]',
$env{'course.'.$courseid.'.description'}),
- $dest, $msg);
+ $dest, $msg,
+ $env{'environment.remotenavmap'});
return OK;
}
if (&Apache::lonnet::allowed('whn',
@@ -554,8 +571,9 @@ ENDENTERKEY
unless ($startpage eq 'firstres') {
$msg = &mt('Entering [_1] ...',
$env{'course.'.$courseid.'.description'});
- &redirect_user($r, &mt('New in course'),
- '/adm/whatsnew?refpage=start', $msg);
+ &redirect_user($r,&mt('New in course'),
+ '/adm/whatsnew?refpage=start',$msg,
+ $env{'environment.remotenavmap'});
return OK;
}
}
@@ -567,9 +585,10 @@ ENDENTERKEY
}
$msg = &mt('Entering [_1] ...',
$env{'course.'.$courseid.'.description'});
- &redirect_user($r, &mt('Entering [_1]',
- $env{'course.'.$courseid.'.description'}),
- $furl, $msg);
+ &redirect_user($r,&mt('Entering [_1]',
+ $env{'course.'.$courseid.'.description'}),
+ $furl,$msg,
+ $env{'environment.remotenavmap'});
}
return OK;
}
@@ -1563,7 +1582,7 @@ sub check_release_required {
my ($switchserver,$warning);
if ($required ne '') {
my ($reqdmajor,$reqdminor) = ($required =~ /^(\d+)\.(\d+)$/);
- my ($major,$minor) = ($loncaparev =~ /^\'?(\d+)\.(\d+)\.[\d.\-]+\'?$/);
+ my ($major,$minor) = ($loncaparev =~ /^\'?(\d+)\.(\d+)\.[\w.\-]+\'?$/);
if ($reqdmajor ne '' && $reqdminor ne '') {
my $otherserver;
if (($major eq '' && $minor eq '') ||
@@ -1572,7 +1591,7 @@ sub check_release_required {
my $switchlcrev =
&Apache::lonnet::get_server_loncaparev($env{'user.domain'},
$userdomserver);
- my ($swmajor,$swminor) = ($switchlcrev =~ /^\'?(\d+)\.(\d+)\.[\d.\-]+\'?$/);
+ my ($swmajor,$swminor) = ($switchlcrev =~ /^\'?(\d+)\.(\d+)\.[\w.\-]+\'?$/);
if (($swmajor eq '' && $swminor eq '') || ($reqdmajor > $swmajor) ||
(($reqdmajor == $swmajor) && ($reqdminor > $swminor))) {
my $cdom = $env{'course.'.$tcourseid.'.domain'};
@@ -1813,7 +1832,8 @@ course they should act on, etc. Both in
handler determines via C's C<&allowed> function that a certain
action is not allowed, C is used as error handler. This
allows the user to select another role which may have permission to do
-what they were trying to do.
+what they were trying to do. C can also be accessed via the
+B button in the Remote Control.
=begin latex