version 1.15, 2006/05/09 14:38:09
|
version 1.17, 2006/05/18 01:08:50
|
Line 30 use Apache::loncommon;
|
Line 30 use Apache::loncommon;
|
use Apache::lonhtmlcommon; |
use Apache::lonhtmlcommon; |
use Apache::lonlocal; |
use Apache::lonlocal; |
use Apache::lonnavmaps; |
use Apache::lonnavmaps; |
|
use Apache::longroup; |
use Apache::Constants qw(:common :http); |
use Apache::Constants qw(:common :http); |
|
|
sub handler { |
sub handler { |
Line 154 sub display_groups {
|
Line 155 sub display_groups {
|
if (!defined($action)) { |
if (!defined($action)) { |
$action = 'view'; |
$action = 'view'; |
} |
} |
my %curr_groups = &Apache::loncommon::coursegroups($cdom,$cnum); |
my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum); |
if (%curr_groups) { |
if (%curr_groups) { |
$r->print('<br /><br />'); |
$r->print('<br /><br />'); |
$r->print(&Apache::lonhtmlcommon::start_pick_box()); |
$r->print(&Apache::lonhtmlcommon::start_pick_box()); |
Line 182 END
|
Line 183 END
|
my %Sortby = (); |
my %Sortby = (); |
foreach my $group (sort(keys(%curr_groups))) { |
foreach my $group (sort(keys(%curr_groups))) { |
%{$grp_info{$group}} = |
%{$grp_info{$group}} = |
&Apache::loncommon::get_group_settings( |
&Apache::longroup::get_group_settings( |
$curr_groups{$group}); |
$curr_groups{$group}); |
my $members_result = &group_members($cdom,$cnum,$group, |
my $members_result = &group_members($cdom,$cnum,$group, |
\%grp_info); |
\%grp_info); |
Line 267 END
|
Line 268 END
|
my @coursegroups = split(/:/,$env{'request.course.groups'}); |
my @coursegroups = split(/:/,$env{'request.course.groups'}); |
if (@coursegroups > 0) { |
if (@coursegroups > 0) { |
$r->print('<br /><br />'); |
$r->print('<br /><br />'); |
my %curr_groups = &Apache::loncommon::coursegroups($cdom,$cnum); |
my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum); |
if (%curr_groups) { |
if (%curr_groups) { |
foreach my $group (@coursegroups) { |
foreach my $group (@coursegroups) { |
my %group_info = &Apache::loncommon::get_group_settings( |
my %group_info = &Apache::longroup::get_group_settings( |
$curr_groups{$group}); |
$curr_groups{$group}); |
my $description = &Apache::lonnet::unescape( |
my $description = &Apache::lonnet::unescape( |
$group_info{description}); |
$group_info{description}); |
Line 433 sub group_administration {
|
Line 434 sub group_administration {
|
); |
); |
if (ref($stored{'autorole'}) eq 'ARRAY') { |
if (ref($stored{'autorole'}) eq 'ARRAY') { |
foreach my $role (@{$stored{'autorole'}}) { |
foreach my $role (@{$stored{'autorole'}}) { |
$elements{'modify'}{'change_settings'}{'sec_'.$role} = 'selectbox'; |
unless ($role eq 'cc') { |
|
$elements{'modify'}{'change_settings'}{'sec_'.$role} = |
|
'selectbox'; |
|
} |
} |
} |
} |
} |
%{$elements{'create'}{'pick_members'}} = ( |
%{$elements{'create'}{'pick_members'}} = ( |
Line 454 sub group_administration {
|
Line 458 sub group_administration {
|
(($state eq 'pick_name') || ($state eq 'pick_privs'))) || |
(($state eq 'pick_name') || ($state eq 'pick_privs'))) || |
(($action eq 'modify') && (($state eq 'change_settings') || |
(($action eq 'modify') && (($state eq 'change_settings') || |
($state eq 'add_members')))) { |
($state eq 'add_members')))) { |
my $numsections = &Apache::loncommon::get_sections($cdom,$cnum, |
%sectioncount = &Apache::loncommon::get_sections($cdom,$cnum); |
\%sectioncount); |
if (%sectioncount) { |
if ($numsections > 0) { |
|
$elements{'create'}{'pick_name'}{'sectionpick'} = 'selectbox'; |
$elements{'create'}{'pick_name'}{'sectionpick'} = 'selectbox'; |
$elements{'modify'}{'change_mapping'}{'sectionpick'} = 'selectbox'; |
$elements{'modify'}{'change_mapping'}{'sectionpick'} = 'selectbox'; |
$elements{'modify'}{'add_members'}{'sectionpick'} = 'selectbox'; |
$elements{'modify'}{'add_members'}{'sectionpick'} = 'selectbox'; |
Line 808 function changeSort(caller) {
|
Line 811 function changeSort(caller) {
|
|
|
sub retrieve_settings { |
sub retrieve_settings { |
my ($cdom,$cnum,$groupname) = @_; |
my ($cdom,$cnum,$groupname) = @_; |
my %curr_groups = &Apache::loncommon::coursegroups($cdom,$cnum,$groupname); |
my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum,$groupname); |
|
|
return if (!%curr_groups); |
return if (!%curr_groups); |
|
|
my %groupinfo = |
my %groupinfo = |
&Apache::loncommon::get_group_settings($curr_groups{$groupname}); |
&Apache::longroup::get_group_settings($curr_groups{$groupname}); |
|
|
my %stored; |
my %stored; |
|
|
Line 850 sub retrieve_settings {
|
Line 853 sub retrieve_settings {
|
$stored{'autodrop'} = $groupinfo{'autodrop'}; |
$stored{'autodrop'} = $groupinfo{'autodrop'}; |
if (exists($groupinfo{'autosec'})) { |
if (exists($groupinfo{'autosec'})) { |
foreach my $role (sort(keys(%{$groupinfo{'autosec'}}))) { |
foreach my $role (sort(keys(%{$groupinfo{'autosec'}}))) { |
foreach my $section (@{$groupinfo{'autosec'}{$role}}) { |
if (ref($groupinfo{'autosec'}{$role}) eq 'ARRAY') { |
push (@{$stored{'sec_'.$role}},$section); |
foreach my $section (@{$groupinfo{'autosec'}{$role}}) { |
} |
push (@{$stored{'sec_'.$role}},$section); |
if (@{$groupinfo{'autosec'}{$role}} > 0) { |
} |
push(@{$stored{'autorole'}},$role); |
if (@{$groupinfo{'autosec'}{$role}} > 0) { |
} |
push(@{$stored{'autorole'}},$role); |
|
} |
|
} |
} |
} |
} |
} |
return %stored; |
return %stored; |
Line 1248 sub membership_options {
|
Line 1253 sub membership_options {
|
$r->print(&Apache::lonhtmlcommon::role_select_row(\@roles)); |
$r->print(&Apache::lonhtmlcommon::role_select_row(\@roles)); |
if (@sections > 0) { |
if (@sections > 0) { |
@sections = sort {$a cmp $b} @sections; |
@sections = sort {$a cmp $b} @sections; |
unshift(@sections,'_all'); # Put 'all' at the front of the list |
unshift(@sections,'all'); # Put 'all' at the front of the list |
unshift(@sections,'_nosec'); # Put 'no sections' next |
unshift(@sections,'none'); # Put 'no sections' next |
$r->print('<td> </td> |
$r->print('<td> </td> |
<td colspan="3" align="center" valign="top">'. |
<td colspan="3" align="center" valign="top">'. |
§ions_selection(\@sections,'sectionpick').'</td>'); |
§ions_selection(\@sections,'sectionpick').'</td>'); |
Line 1270 sub sections_selection {
|
Line 1275 sub sections_selection {
|
$numvisible = @{$sections}; |
$numvisible = @{$sections}; |
} |
} |
foreach my $sec (@{$sections}) { |
foreach my $sec (@{$sections}) { |
if ($sec eq '_all') { |
if ($sec eq 'all') { |
$section_sel .= ' <option value="'.$sec.'" />all sections'."\n"; |
$section_sel .= ' <option value="'.$sec.'" />all sections'."\n"; |
} elsif ($sec eq '_nosec') { |
} elsif ($sec eq 'none') { |
$section_sel .= ' <option value="'.$sec.'" />no section'."\n"; |
$section_sel .= ' <option value="'.$sec.'" />no section'."\n"; |
} else { |
} else { |
$section_sel .= ' <option value="'.$sec.'" />'.$sec."\n"; |
$section_sel .= ' <option value="'.$sec.'" />'.$sec."\n"; |
Line 2589 sub member_privileges_form {
|
Line 2594 sub member_privileges_form {
|
} |
} |
$specificity = $env{'form.specificity'}; |
$specificity = $env{'form.specificity'}; |
} else { |
} else { |
@defprivs = @{$$stored{'defpriv'}}; |
if (defined($$stored{'defpriv'})) { |
|
@defprivs = @{$$stored{'defpriv'}}; |
|
} |
$specificity = $$stored{'specificity'}; |
$specificity = $$stored{'specificity'}; |
} |
} |
my @showtools; |
my @showtools; |
Line 2773 sub process_request {
|
Line 2780 sub process_request {
|
@defprivs = @temp; |
@defprivs = @temp; |
} |
} |
} else { |
} else { |
@defprivs = @{$$stored{'defpriv'}}; |
if (defined($$stored{'defpriv'})) { |
|
@defprivs = @{$$stored{'defpriv'}}; |
|
} |
} |
} |
|
|
my $outcome; |
my $outcome; |
Line 2853 sub write_group_data {
|
Line 2862 sub write_group_data {
|
if (defined($env{'form.sec_'.$role})) { |
if (defined($env{'form.sec_'.$role})) { |
my @autosections=&Apache::loncommon::get_env_multiple('form.sec_'. |
my @autosections=&Apache::loncommon::get_env_multiple('form.sec_'. |
$role); |
$role); |
if (grep/^_all$/,@autosections) { |
|
@autosections = sort {$a cmp $b} keys(%{$sectioncount}); |
|
} |
|
$autosec .= '<role id="'.$role.'">'; |
$autosec .= '<role id="'.$role.'">'; |
foreach my $sec (@autosections) { |
foreach my $sec (@autosections) { |
$autosec .= '<section>'.$sec.'</section>'; |
$autosec .= '<section>'.$sec.'</section>'; |
Line 3056 sub process_membership {
|
Line 3062 sub process_membership {
|
} |
} |
} |
} |
if ($roster_result eq 'ok') { |
if ($roster_result eq 'ok') { |
$r->print('<br />Group membership list updated.'); |
$r->print('<br />'.&mt('Group membership list updated.')); |
} else { |
} else { |
$r->print('<br />An error occurred while updating the group membership list -'.$roster_result.'<br />'); |
$r->print('<br />'.&mt('An error occurred while updating the group membership list -').$roster_result.'<br />'); |
} |
} |
return; |
return; |
} |
} |
Line 3116 sub automapping {
|
Line 3122 sub automapping {
|
<td> </td> |
<td> </td> |
<td colspan="3"> |
<td colspan="3"> |
<nobr>'.$$lt{'auad'}.': |
<nobr>'.$$lt{'auad'}.': |
<input type="radio" name="autoadd" value="on" />on <input type="radio" name="autoadd" value="off" />off'); |
<input type="radio" name="autoadd" value="on" />on <input type="radio" name="autoadd" value="off" checked="checked" />off'); |
if ($action eq 'modify') { |
if ($action eq 'modify') { |
$r->print(' ('.$$lt{'curr'}.' <b>'.$$lt{$add}.'</b>)'); |
$r->print(' ('.$$lt{'curr'}.' <b>'.$$lt{$add}.'</b>)'); |
} |
} |
Line 3128 sub automapping {
|
Line 3134 sub automapping {
|
<td> </td> |
<td> </td> |
<td colspan="3"> |
<td colspan="3"> |
<nobr>'.$$lt{'auex'}.': |
<nobr>'.$$lt{'auex'}.': |
<input type="radio" name="autodrop" value="on" />on <input type="radio" name="autodrop" value="off" />off'); |
<input type="radio" name="autodrop" value="on" />on <input type="radio" name="autodrop" value="off" checked="checked" />off'); |
if ($action eq 'modify') { |
if ($action eq 'modify') { |
$r->print(' ('.$$lt{'curr'}.' <b>'.$$lt{$drop}.'</b>)'); |
$r->print(' ('.$$lt{'curr'}.' <b>'.$$lt{$drop}.'</b>)'); |
} |
} |
Line 3151 sub mapping_settings {
|
Line 3157 sub mapping_settings {
|
my @sections = keys(%{$sectioncount}); |
my @sections = keys(%{$sectioncount}); |
if (@sections > 0) { |
if (@sections > 0) { |
@sections = sort {$a cmp $b} @sections; |
@sections = sort {$a cmp $b} @sections; |
unshift(@sections,'_nosec'); # Put 'no sections' next |
unshift(@sections,'none'); # Put 'no sections' next |
unshift(@sections,'_all'); # Put 'all' at the front of the list |
unshift(@sections,'all'); # Put 'all' at the front of the list |
} |
} |
&topic_bar($r,$tabcol,$image,$$lt{'pirs'}); |
&topic_bar($r,$tabcol,$image,$$lt{'pirs'}); |
$r->print(' |
$r->print(' |
Line 3176 sub mapping_settings {
|
Line 3182 sub mapping_settings {
|
my $plrole=&Apache::lonnet::plaintext($role); |
my $plrole=&Apache::lonnet::plaintext($role); |
my $sections_sel; |
my $sections_sel; |
if (@sections > 0) { |
if (@sections > 0) { |
$sections_sel='<td>'.§ions_selection(\@sections,'sec_'.$role). |
if ($role eq 'cc') { |
'</td>'; |
$sections_sel = '<td align="right">'. |
|
&mt('all sections').'<input type="hidden" '. |
|
'name="sec_cc" value="all" /></td>'; |
|
} else { |
|
$sections_sel='<td align="right">'. |
|
§ions_selection(\@sections,'sec_'.$role). |
|
'</td>'; |
|
} |
} |
} |
if ($rowNum %2 == 1) { |
if ($rowNum %2 == 1) { |
$rowColor = $rowColor1; |
$rowColor = $rowColor1; |
Line 3210 sub mapping_settings {
|
Line 3223 sub mapping_settings {
|
} |
} |
|
|
sub standard_roles { |
sub standard_roles { |
my @roles = ('st','ep','ta','in','cc'); |
my @roles = ('cc','in','ta','ep','st'); |
return @roles; |
return @roles; |
} |
} |
|
|
Line 3410 function toggleTools(field,caller) {
|
Line 3423 function toggleTools(field,caller) {
|
|
|
sub validate_groupname { |
sub validate_groupname { |
my ($groupname,$action,$cdom,$cnum) = @_; |
my ($groupname,$action,$cdom,$cnum) = @_; |
my %sectioncount; |
my %sectioncount = &Apache::loncommon::get_sections($cdom,$cnum); |
my $numsec=&Apache::loncommon::get_sections($cdom,$cnum,\%sectioncount); |
my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum); |
my %curr_groups = &Apache::loncommon::coursegroups($cdom,$cnum); |
|
|
|
my %lt = &Apache::lonlocal::texthash ( |
my %lt = &Apache::lonlocal::texthash ( |
igna => 'Invalid group name', |
igna => 'Invalid group name', |
Line 3436 sub validate_groupname {
|
Line 3448 sub validate_groupname {
|
$earlyout = $exitmsg.$lt{'isno'}.'<br />'.$lt{'gnmo'}; |
$earlyout = $exitmsg.$lt{'isno'}.'<br />'.$lt{'gnmo'}; |
return $earlyout; |
return $earlyout; |
} |
} |
if ($numsec) { |
if (exists($sectioncount{$groupname})) { |
if (exists($sectioncount{$groupname})) { |
return $exitmsg.$lt{'cnnb'}.&mt('a section').$lt{'inth'}. |
$earlyout = $exitmsg.$lt{'cnnb'}.&mt('a section').$lt{'inth'}. |
'<br />'.$lt{'grna'}; |
'<br />'.$lt{'grna'}; |
|
return $earlyout; |
|
} |
|
} |
} |
if ($action eq 'create' |
if ($action eq 'create' |
&& exists($curr_groups{$groupname})) { |
&& exists($curr_groups{$groupname})) { |