--- loncom/interface/lonsimplepage.pm 2006/06/30 18:06:47 1.42
+++ loncom/interface/lonsimplepage.pm 2006/07/08 01:12:53 1.44
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Simple Page Editor
#
-# $Id: lonsimplepage.pm,v 1.42 2006/06/30 18:06:47 raeburn Exp $
+# $Id: lonsimplepage.pm,v 1.44 2006/07/08 01:12:53 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -38,6 +38,7 @@ use Apache::lonlocal;
use Apache::lonprintout;
use Apache::lonxml;
use Apache::longroup;
+use LONCAPA;
sub handler {
my $r = shift;
@@ -49,7 +50,7 @@ sub handler {
if ($target eq 'tex') {
$r->print(&Apache::lonprintout::print_latex_header($env{'form.latex_type'}));
}
- my (undef,undef,undef,undef,$marker,$caller)=split(/\//,$r->uri);
+ my (undef,undef,$udom,$uname,$marker,$caller)=split(/\//,$r->uri);
# Is this even in a course?
unless ($env{'request.course.id'}) {
if ($target ne 'tex') {
@@ -64,21 +65,23 @@ sub handler {
my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};
my $grp_view_permission = &Apache::lonnet::allowed('vcg',
$env{'request.course.id'});
- my $namespace;
+ my ($namespace,$group,$grp_desc);
my %curr_group = ();
my %groupinfo = ();
- if ($caller eq 'grppg') {
+ if ($dom && $crs && ($udom eq $dom) && ($uname eq $crs)) {
$marker =~ s/\W//g;
- $namespace = 'grppage_'.$marker;
- my %curr_groups = &Apache::longroup::coursegroups($dom,$crs,$marker);
+ $group = $marker;
+ my %curr_groups = &Apache::longroup::coursegroups($dom,$crs,$group);
if (!%curr_groups) {
&Apache::loncommon::simple_error_page($r,'','Invalid group name');
return OK;
}
%groupinfo =
- &Apache::longroup::get_group_settings($curr_groups{$marker});
- } else {
+ &Apache::longroup::get_group_settings($curr_groups{$group});
+ $grp_desc = &unescape($groupinfo{'description'});
+ $namespace = 'grppage_'.$group;
+ } else {
$marker=~s/\D//g;
$namespace = 'smppage_'.$marker;
}
@@ -93,14 +96,15 @@ sub handler {
'aaa_title' => 'Page Title',
'bbb_content' => 'Content',
'ccc_webreferences' => 'Web References');
- if ($caller eq 'grppg') {
+ if ($group ne '') {
$syllabusfields{'abb_links'} = &mt('Functionality');
}
# ------------------------------------------------------------ Get query string
&Apache::loncommon::get_unprocessed_cgi
- ($ENV{'QUERY_STRING'},['forcestudent','forceedit','register']);
+ ($ENV{'QUERY_STRING'},['forcestudent','forceedit',
+ 'register','ref']);
# --------------------------------------------------------------- Force Student
my $forcestudent='';
if ($env{'form.forcestudent'} || $target eq 'tex' ) { $forcestudent='student'; };
@@ -114,7 +118,7 @@ sub handler {
if ($target ne 'tex') {
my $title = 'Course Page';
- if ($caller eq 'grppg') {
+ if ($group ne '') {
$title = 'Group Page';
}
my $start_page =
@@ -126,13 +130,20 @@ sub handler {
$r->print($start_page);
}
- if ($caller eq 'grppg') {
+ if ($group ne '') {
if (($grp_view_permission) ||
- (&Apache::longroup::check_group_access($caller))) {
+ (&Apache::longroup::check_group_access($caller))) {
if ((!&Apache::lonnet::allowed('vgh',
$env{'request.course.id'}.'/'.$marker))
&& (!&Apache::lonnet::allowed('mdg',
- $env{'request.course.id'}.'/'.$marker))) {
+ $env{'request.course.id'}.'/'.$marker))) {
+ if ($env{'form.ref'} eq 'grouplist') {
+ my $gpterm = &Apache::loncommon::group_term();
+ my $ucgpterm = $gpterm;
+ $ucgpterm =~ s/^(\w)/uc($1)/e;
+ $r->print(&grouppage_breadcrumbs($dom,$crs,$group,$gpterm,
+ $ucgpterm,$grp_desc));
+ }
&display_group_links($r,$target,$marker,'view',%groupinfo);
return OK;
}
@@ -150,7 +161,7 @@ sub handler {
}
my $allowed;
- if ($caller eq 'grppg') {
+ if ($group ne '') {
$allowed = &Apache::lonnet::allowed('mdg',$env{'request.course.id'});
if (!$allowed) {
$allowed = &Apache::lonnet::allowed('mgh',$env{'request.course.id'}.
@@ -236,7 +247,7 @@ sub handler {
$message=&Apache::lonspeller::markeduptext($message);
}
$message=&Apache::lontexconvert::msgtexconverted($message);
- if ($_ eq 'abb_links' && $caller eq 'grppg') {
+ if ($_ eq 'abb_links' && $group ne '') {
$r->print('
');
&display_group_links($r,$target,$marker,'edit',%groupinfo);
@@ -306,15 +317,20 @@ sub handler {
sub display_group_links {
my ($r,$target,$marker,$context,%groupinfo) = @_;
+ my $refarg;
+ if ($env{'form.ref'} eq 'grouplist') {
+ $refarg = '&ref=grouplist';
+ }
my @available = ();
my %menu = ();
%{$menu{'email'}} = (
text => 'Group e-mail',
- href => '/adm/email?compose=group&group='.$marker,
+ href => '/adm/email?compose=group&group='.$marker.
+ $refarg,
);
%{$menu{'discussion'}} = (
text => 'Discussion Boards',
- href => '/adm/groupboards?group='.$marker,
+ href => '/adm/groupboards?group='.$marker.$refarg,
);
%{$menu{'chat'}} = (
text => 'Group chat',
@@ -322,11 +338,11 @@ sub display_group_links {
);
%{$menu{'files'}} = (
text => 'File repository',
- href => '/adm/coursegrp_portfolio?group='.$marker,
+ href => '/adm/coursegrp_portfolio?group='.$marker.$refarg,
);
%{$menu{'roster'}} = (
text => 'Membership roster',
- href => '/adm/grouproster?group='.$marker,
+ href => '/adm/grouproster?group='.$marker.$refarg,
);
foreach my $tool (sort(keys(%menu))) {
if ($groupinfo{functions}{$tool} eq 'on') {
@@ -363,7 +379,21 @@ sub display_group_links {
}
}
}
-
+
+sub grouppage_breadcrumbs {
+ my ($cdom,$cnum,$group,$gpterm,$ucgpterm,$description) = @_;
+ &Apache::lonhtmlcommon::clear_breadcrumbs();
+ &Apache::lonhtmlcommon::add_breadcrumb
+ ({href=>"/adm/coursegroups",
+ text=>"$ucgpterm".'s',
+ title=>"Display $ucgpterm".'s'},
+ {href=>"/adm/$cdom/$cnum/$group/smppg?ref=grouplist",
+ text=>"$ucgpterm: $description",
+ title=>"Go to group's home page"},
+ );
+ my $output .= &Apache::lonhtmlcommon::breadcrumbs(&mt('[_1] page - [_2]',$gpterm,$description));
+ return $output;
+}
1;
__END__