version 1.21, 2006/05/22 22:35:46
|
version 1.26, 2006/06/27 18:49:14
|
Line 1
|
Line 1
|
|
# The LearningOnline Network with CAPA |
|
# |
|
# $Id$ |
# |
# |
# Copyright Michigan State University Board of Trustees |
# Copyright Michigan State University Board of Trustees |
# |
# |
Line 32 use Apache::lonlocal;
|
Line 35 use Apache::lonlocal;
|
use Apache::lonnavmaps; |
use Apache::lonnavmaps; |
use Apache::longroup; |
use Apache::longroup; |
use Apache::Constants qw(:common :http); |
use Apache::Constants qw(:common :http); |
|
use lib '/home/httpd/lib/perl/'; |
|
use LONCAPA; |
|
|
sub handler { |
sub handler { |
my ($r) = @_; |
my ($r) = @_; |
Line 235 END
|
Line 240 END
|
$rowColor = $rowColor2; |
$rowColor = $rowColor2; |
} |
} |
my $description = |
my $description = |
&Apache::lonnet::unescape($grp_info{$group}{'description'}); |
&unescape($grp_info{$group}{'description'}); |
my $creator = $grp_info{$group}{'creator'}; |
my $creator = $grp_info{$group}{'creator'}; |
my $creation = $grp_info{$group}{'creation'}; |
my $creation = $grp_info{$group}{'creation'}; |
my $modified = $grp_info{$group}{'modified'}; |
my $modified = $grp_info{$group}{'modified'}; |
Line 300 END
|
Line 305 END
|
foreach my $group (@coursegroups) { |
foreach my $group (@coursegroups) { |
my %group_info = &Apache::longroup::get_group_settings( |
my %group_info = &Apache::longroup::get_group_settings( |
$curr_groups{$group}); |
$curr_groups{$group}); |
my $description = &Apache::lonnet::unescape( |
my $description = &unescape( |
$group_info{description}); |
$group_info{description}); |
my ($uname,$udom) = split(/:/,$group_info{creator}); |
my ($uname,$udom) = split(/:/,$group_info{creator}); |
$r->print('<font size="+1"><a href="/adm/'.$udom.'/'.$uname.'/'.$group.'/grppg">'.$group,'</a><font><br /><small>'.$description.'</small><br /><br />'); |
$r->print('<font size="+1"><a href="/adm/'.$udom.'/'.$uname.'/'.$group.'/grppg">'.$group,'</a><font><br /><small>'.$description.'</small><br /><br />'); |
Line 397 sub group_administration {
|
Line 402 sub group_administration {
|
} |
} |
} |
} |
|
|
my %toolprivs = (); |
my %toolprivs = |
%{$toolprivs{'email'}} = ( |
( |
sgm => 'Send group mail', |
email => { |
sgb => 'Broadcast mail', |
sgm => 'Send group mail', |
); |
sgb => 'Broadcast mail', |
%{$toolprivs{'discussion'}} = ( |
}, |
cgb => 'Create boards', |
discussion => { |
pgd => 'Post', |
cgb => 'Create boards', |
pag => 'Anon. posts', |
pgd => 'Post', |
rgi => 'Get identities', |
pag => 'Anon. posts', |
vgb => 'View boards', |
rgi => 'Get identities', |
); |
vgb => 'View boards', |
%{$toolprivs{'chat'}} = ( |
}, |
pgc => 'Chat', |
chat => { |
); |
pgc => 'Chat', |
%{$toolprivs{'files'}} = ( |
}, |
rgf => 'Retrieve', |
files => { |
ugf => 'Upload', |
rgf => 'Retrieve', |
dgf => 'Delete', |
ugf => 'Upload', |
); |
mgf => 'Modify', |
%{$toolprivs{'roster'}} = ( |
dgf => 'Delete', |
vgm => 'View', |
agf => 'Control Access', |
); |
}, |
%{$toolprivs{'homepage'}} = ( |
roster => { |
vgh => 'View page', |
vgm => 'View', |
mgh => 'Modify page', |
}, |
); |
homepage => { |
my %fixedprivs = (); |
vgh => 'View page', |
%{$fixedprivs{'email'}} = ('sgm' => 1); |
mgh => 'Modify page', |
%{$fixedprivs{'discussion'}} = ('vgb' => 1); |
}, |
%{$fixedprivs{'chat'}} = ('pgc' => 1); |
); |
%{$fixedprivs{'files'}} = ('rgf' => 1); |
|
%{$fixedprivs{'roster'}} = ('vgm' => 1); |
my %fixedprivs = |
%{$fixedprivs{'homepage'}} = ('vgh' => 1); |
( |
|
email => {sgm => 1}, |
my %elements = (); |
discussion => {vgb => 1}, |
%{$elements{'create'}} = (); |
chat => {pgc => 1}, |
%{$elements{'modify'}} = (); |
files => {rgf => 1}, |
%{$elements{'create'}{'pick_name'}} = ( |
roster => {vgm => 1}, |
startdate_month => 'selectbox', |
homepage => {vgh => 1}, |
startdate_hour => 'selectbox', |
); |
enddate_month => 'selectbox', |
|
enddate_hour => 'selectbox', |
my %elements = |
startdate_day => 'text', |
( |
startdate_year => 'text', |
create => { |
startdate_minute => 'text', |
pick_name => { |
startdate_second => 'text', |
startdate_month => 'selectbox', |
enddate_day => 'text', |
startdate_hour => 'selectbox', |
enddate_year => 'text', |
enddate_month => 'selectbox', |
enddate_minute => 'text', |
enddate_hour => 'selectbox', |
enddate_second => 'text', |
startdate_day => 'text', |
groupname => 'text', |
startdate_year => 'text', |
description => 'text', |
startdate_minute => 'text', |
tool => 'checkbox', |
startdate_second => 'text', |
granularity => 'radio', |
enddate_day => 'text', |
no_end_date => 'checkbox', |
enddate_year => 'text', |
); |
enddate_minute => 'text', |
%{$elements{'modify'}{'change_settings'}} = ( |
enddate_second => 'text', |
%{$elements{'create'}{'pick_name'}}, |
groupname => 'text', |
specificity => 'radio', |
description => 'text', |
defpriv => 'checkbox', |
tool => 'checkbox', |
autorole => 'checkbox', |
granularity => 'radio', |
autoadd => 'radio', |
no_end_date => 'checkbox', |
autodrop => 'radio', |
}, |
); |
pick_members => { |
|
member => 'checkbox', |
|
defpriv => 'checkbox', |
|
}, |
|
}, |
|
); |
|
|
|
$elements{'modify'} = { |
|
change_settings => { |
|
%{$elements{'create'}{'pick_name'}}, |
|
specificity => 'radio', |
|
defpriv => 'checkbox', |
|
autorole => 'checkbox', |
|
autoadd => 'radio', |
|
autodrop => 'radio', |
|
}, |
|
add_members => { |
|
types => 'selectbox', |
|
roles => 'selectbox', |
|
}, |
|
}; |
|
|
if (ref($stored{'autorole'}) eq 'ARRAY') { |
if (ref($stored{'autorole'}) eq 'ARRAY') { |
foreach my $role (@{$stored{'autorole'}}) { |
foreach my $role (@{$stored{'autorole'}}) { |
unless ($role eq 'cc') { |
unless ($role eq 'cc') { |
Line 470 sub group_administration {
|
Line 496 sub group_administration {
|
} |
} |
} |
} |
} |
} |
%{$elements{'create'}{'pick_members'}} = ( |
|
member => 'checkbox', |
|
defpriv => 'checkbox', |
|
); |
|
|
|
%{$elements{'modify'}{'add_members'}} = ( |
|
types => 'selectbox', |
|
roles => 'selectbox', |
|
); |
|
|
|
if (($action eq 'create') && ($state eq 'pick_name')) { |
if (($action eq 'create') && ($state eq 'pick_name')) { |
$elements{'create'}{'pick_name'}{'types'} = 'selectbox'; |
$elements{'create'}{'pick_name'}{'types'} = 'selectbox'; |
Line 857 sub retrieve_settings {
|
Line 874 sub retrieve_settings {
|
my %stored; |
my %stored; |
|
|
$stored{'description'} = |
$stored{'description'} = |
&Apache::lonnet::unescape($groupinfo{'description'}); |
&unescape($groupinfo{'description'}); |
$stored{'startdate'} = $groupinfo{'startdate'}; |
$stored{'startdate'} = $groupinfo{'startdate'}; |
$stored{'enddate'} = $groupinfo{'enddate'}; |
$stored{'enddate'} = $groupinfo{'enddate'}; |
if ($stored{'enddate'} == 0) { |
if ($stored{'enddate'} == 0) { |
Line 2114 sub current_membership {
|
Line 2131 sub current_membership {
|
my($end,$start,@userprivs) = split(/:/,$membership{$key}); |
my($end,$start,@userprivs) = split(/:/,$membership{$key}); |
unless ($start == -1) { |
unless ($start == -1) { |
$allnames{$udom}{$uname} = 1; |
$allnames{$udom}{$uname} = 1; |
%{$current{$user}} = (); |
$current{$user} = { |
$current{$user}{uname} = $uname; |
uname => $uname, |
$current{$user}{udom} = $udom; |
udom => $udom, |
$current{$user}{start} = |
start => &Apache::lonlocal::locallocaltime($start), |
&Apache::lonlocal::locallocaltime($start); |
currtools => [], |
|
newtools => [], |
|
}; |
|
|
if ($end == 0) { |
if ($end == 0) { |
$current{$user}{end} = 'No end date'; |
$current{$user}{end} = 'No end date'; |
} else { |
} else { |
Line 2136 sub current_membership {
|
Line 2156 sub current_membership {
|
$current{$user}{changestate} = 'expire'; |
$current{$user}{changestate} = 'expire'; |
$num_expire ++; |
$num_expire ++; |
} |
} |
@{$current{$user}{currtools}} = (); |
|
@{$current{$user}{newtools}} = (); |
|
if (@userprivs > 0) { |
if (@userprivs > 0) { |
foreach my $tool (sort(keys(%{$fixedprivs}))) { |
foreach my $tool (sort(keys(%{$fixedprivs}))) { |
foreach my $priv (keys(%{$$fixedprivs{$tool}})) { |
foreach my $priv (keys(%{$$fixedprivs{$tool}})) { |
Line 2850 sub write_group_data {
|
Line 2868 sub write_group_data {
|
$creation = $$stored{'creation'}; |
$creation = $$stored{'creation'}; |
$creator = $$stored{'creator'}; |
$creator = $$stored{'creator'}; |
} |
} |
my $esc_description = &Apache::lonnet::escape($description); |
my $esc_description = &escape($description); |
my @single_attributes = ('description','functions','startdate','enddate', |
my @single_attributes = ('description','functions','startdate','enddate', |
'creation','modified','creator','granularity', |
'creation','modified','creator','granularity', |
'specificity','autoadd','autodrop'); |
'specificity','autoadd','autodrop'); |
Line 2963 sub process_membership {
|
Line 2981 sub process_membership {
|
} |
} |
} else { |
} else { |
if (@{$defprivs} > 0) { |
if (@{$defprivs} > 0) { |
foreach my $priv (@{$defprivs}) { |
if (grep/^\Q$priv\E$/,@{$defprivs}) { |
foreach my $user (sort(keys(%{$usertools}))) { |
foreach my $user (sort(keys(%{$usertools}))) { |
if ($$usertools{$user}{$tool}) { |
if ($$usertools{$user}{$tool}) { |
$group_privs{$user} .= $priv.':'; |
$group_privs{$user} .= $priv.':'; |
Line 3439 sub date_setting_table {
|
Line 3457 sub date_setting_table {
|
sub create_homepage { |
sub create_homepage { |
my ($cdom,$cnum,$name,$groupinfo,$tools) = @_; |
my ($cdom,$cnum,$name,$groupinfo,$tools) = @_; |
my $functionality = join(',',@{$tools}); |
my $functionality = join(',',@{$tools}); |
my $content = &Apache::lonnet::unescape($$groupinfo{description}); |
my $content = &unescape($$groupinfo{description}); |
$content=~s/\s+$//s; |
$content=~s/\s+$//s; |
$content=~s/^\s+//s; |
$content=~s/^\s+//s; |
$content=~s/\<br\s*\/*\>$//s; |
$content=~s/\<br\s*\/*\>$//s; |