version 1.116, 2012/12/17 17:27:20
|
version 1.128, 2016/02/26 21:44:39
|
Line 31 use strict;
|
Line 31 use strict;
|
use Apache::lonnet; |
use Apache::lonnet; |
use Apache::loncommon(); |
use Apache::loncommon(); |
use Apache::lonhtmlcommon(); |
use Apache::lonhtmlcommon(); |
|
use Apache::lonhtmlgateway; |
use Apache::lonlocal; |
use Apache::lonlocal; |
use Apache::lonnavmaps(); |
use Apache::lonnavmaps(); |
use Apache::longroup(); |
use Apache::longroup(); |
Line 188 sub display_groups {
|
Line 189 sub display_groups {
|
crtd => 'Created', |
crtd => 'Created', |
last => 'Last Modified', |
last => 'Last Modified', |
func => 'Collaborative Tools', |
func => 'Collaborative Tools', |
quot => 'Quota (Mb)', |
quot => 'Quota (MB)', |
memb => 'Members', |
memb => 'Members', |
file => 'Files', |
file => 'Files', |
dibd => 'Discussion Boards', |
dibd => 'Discussion Boards', |
Line 327 END
|
Line 328 END
|
if (!$functionality) { |
if (!$functionality) { |
$functionality = &mt('None available'); |
$functionality = &mt('None available'); |
} |
} |
my $link = $actionlinks{$action}; |
my $link; |
if ($action eq 'modify' || $action eq 'delete' || |
if ($action eq 'modify' || $action eq 'delete' || |
$action eq 'reenable') { |
$action eq 'reenable') { |
$link .= $group; |
$link = $actionlinks{$action}.$group.'">'.$lt{$action}.'</a>'; |
} else { |
} else { |
$link .= |
$link = |
&Apache::longroup::get_group_link($cdom,$cnum,$group,$navmap); |
&Apache::longroup::get_group_link($cdom,$cnum,$group,$navmap,$view_permission); |
$link .= (($link=~/\?/)?'&':'?').'ref=grouplist'; |
print STDERR "link is ||$link||\n"; |
if (exists($env{'form.refpage'})) { |
if ($link) { |
$link .= '&refpage='.$env{'form.refpage'}; |
$link = $actionlinks{$action}.$link; |
} |
$link .= (($link=~/\?/)?'&':'?').'ref=grouplist'; |
|
if (exists($env{'form.refpage'})) { |
|
$link .= '&refpage='.$env{'form.refpage'}; |
|
} |
|
$link .= '">'.$lt{$action}.'</a>'; |
|
} |
} |
} |
$link .= '">'.$lt{$action}.'</a>'; |
|
if ($action eq 'view') { |
if ($action eq 'view') { |
if ($manage_permission) { |
if ($manage_permission) { |
$link .= ' '.$actionlinks{'modify'}. |
$link .= ' '.$actionlinks{'modify'}. |
Line 393 END
|
Line 398 END
|
} else { |
} else { |
my @coursegroups = split(/:/,$env{'request.course.groups'}); |
my @coursegroups = split(/:/,$env{'request.course.groups'}); |
if (@coursegroups > 0) { |
if (@coursegroups > 0) { |
|
my $numlinks = 0; |
$r->print('<br /><br />'); |
$r->print('<br /><br />'); |
my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum); |
my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum); |
if (%curr_groups) { |
if (%curr_groups) { |
Line 409 END
|
Line 415 END
|
$curr_groups{$group}); |
$curr_groups{$group}); |
my $description = &unescape( |
my $description = &unescape( |
$group_info{description}); |
$group_info{description}); |
my $link = |
my ($link,$hidden) = |
&Apache::longroup::get_group_link($cdom,$cnum,$group,$navmap). |
&Apache::longroup::get_group_link($cdom,$cnum,$group,$navmap,$view_permission); |
'&ref=grouplist'; |
print STDERR "link is ||$link||\n"; |
$r->print('<span style="font-size: larger"><a href="'.$link.'">'.$group,'</a></span><br /><small>'.$description.'</small><br /><br />'); |
if ($link) { |
|
$link .= '&ref=grouplist'; |
|
$r->print('<span style="font-size: larger"><a href="'.$link.'">'. |
|
$description.'</a></span><br /><br />'); |
|
$numlinks ++; |
|
} elsif ($hidden) { |
|
my $numtools = 0; |
|
my $refarg = '&ref=grouplist'; |
|
my $output = |
|
&Apache::longroup::display_group_links($r,$env{'form.grade_target'},$group,'view', |
|
$refarg,\$numtools,$hidden,%group_info); |
|
if ($numtools) { |
|
$r->print('<span style="font-size: larger">'.$description.'</a></span>'. |
|
'<br />'.$output.'<br /><br />'); |
|
$numlinks ++; |
|
} |
|
} |
} |
} |
} |
} |
|
if (!$numlinks) { |
|
$r->print( |
|
'<p class="LC_info">' |
|
.&mt('You do not currently have access to any '.$gpterm.'s' |
|
.' in this '.lc($crstype).'.') |
|
.'</p>' |
|
); |
|
} |
} else { |
} else { |
$r->print( |
$r->print( |
'<p class="LC_info">' |
'<p class="LC_info">' |
Line 811 sub group_administration {
|
Line 841 sub group_administration {
|
} |
} |
var maxposs = '.sprintf("%.2f",$maxposs).'; |
var maxposs = '.sprintf("%.2f",$maxposs).'; |
if (newquota > maxposs) { |
if (newquota > maxposs) { |
alert("The group portfolio quota you entered for this group ("+newquota+" Mb) exceeds the maximum possible ("+maxposs+" Mb). Please enter a smaller number."); |
alert("The group portfolio quota you entered for this group ("+newquota+" MB) exceeds the maximum possible ("+maxposs+" MB). Please enter a smaller number."); |
return; |
return; |
} |
} |
var re_quota = '.$float_check.'; |
var re_quota = '.$float_check.'; |
Line 830 sub group_administration {
|
Line 860 sub group_administration {
|
} |
} |
} |
} |
if (warn_zero == 1) { |
if (warn_zero == 1) { |
alert("You have indicated that the group portfolio should be enabled, but you have set the respository quota to 0 Mb.\nThis will prevent any upload of files.\nPlease set a value or disable the repository feature."); |
alert("You have indicated that the group portfolio should be enabled, but you have set the repository quota to 0 MB.\nThis will prevent any upload of files.\nPlease set a value or disable the repository feature."); |
return; |
return; |
} |
} |
} |
} |
Line 1492 sub header {
|
Line 1522 sub header {
|
{'add_entries' => $loaditems,}); |
{'add_entries' => $loaditems,}); |
my $output = <<"END"; |
my $output = <<"END"; |
$start_page |
$start_page |
<form method="post" name="$state"> |
<form method="post" name="$state" action=""> |
|
|
END |
END |
if ($action eq 'create' || $action eq 'modify') { |
if ($action eq 'create' || $action eq 'modify') { |
Line 1586 sub group_members {
|
Line 1616 sub group_members {
|
future => 0, |
future => 0, |
); |
); |
my $totalmembers = 0; |
my $totalmembers = 0; |
foreach my $member (keys %memberhash) { |
foreach my $member (keys(%memberhash)) { |
$totalmembers ++; |
$totalmembers ++; |
my ($end,$start) = split(/:/,$memberhash{$member}); |
my ($end,$start) = split(/:/,$memberhash{$member}); |
unless ($start == -1) { |
unless ($start == -1) { |
Line 1701 sub groupsettings_options {
|
Line 1731 sub groupsettings_options {
|
if ($remnum) { |
if ($remnum) { |
$halfnum ++; |
$halfnum ++; |
} |
} |
my @allfunctions = sort(keys (%{$functions})); |
my @allfunctions = sort(keys(%{$functions})); |
|
|
$r->print(&Apache::lonhtmlcommon::row_title($lt{'func'}) |
$r->print(&Apache::lonhtmlcommon::row_title($lt{'func'}) |
.'<div>' |
.'<div>' |
Line 1756 sub groupsettings_options {
|
Line 1786 sub groupsettings_options {
|
} else { |
} else { |
$r->print(&mt('Quota allocated to group portfolio:')); |
$r->print(&mt('Quota allocated to group portfolio:')); |
} |
} |
$r->print(' '.&mt('[_1] Mb','<input type="text" name="quota" size="4" />')); |
$r->print(' '.&mt('[_1] MB','<input type="text" name="quota" size="4" />')); |
if ($action eq 'create') { |
if ($action eq 'create') { |
$r->print('<br />' |
$r->print('<br />' |
.&mt('A total of [_1] Mb can be divided amongst all '.$gpterm.'s in the ' |
.&mt('A total of [_1] MB can be divided amongst all '.$gpterm.'s in the ' |
.lc($crstype).', and [_2] Mb are currently unallocated.' |
.lc($crstype).', and [_2] MB are currently unallocated.' |
,$crsquota,sprintf("%.2f",$freespace)) |
,$crsquota,sprintf("%.2f",$freespace)) |
); |
); |
} else { |
} else { |
$r->print(' ('.&mt('The quota is currently [_1] Mb', |
$r->print(' ('.&mt('The quota is currently [_1] MB', |
$$stored{'quota'}).').'); |
$$stored{'quota'}).').'); |
|
|
$r->print('<br />' |
$r->print('<br />' |
.&mt('The quota can be increased to [_1] Mb, ' |
.&mt('The quota can be increased to [_1] MB, ' |
.'by adding all unallocated space for '.$gpterm.'s in the '.lc($crstype).'.' |
.'by adding all unallocated space for '.$gpterm.'s in the '.lc($crstype).'.' |
,sprintf("%.2f",$maxposs))); |
,sprintf("%.2f",$maxposs))); |
} |
} |
Line 2016 sub print_current_settings {
|
Line 2046 sub print_current_settings {
|
dfac => 'Default access dates', |
dfac => 'Default access dates', |
ygrs => "Your group selections - ", |
ygrs => "Your group selections - ", |
tfwa => "The following settings will apply to the group:", |
tfwa => "The following settings will apply to the group:", |
difn => 'Different collaborative tools<br />for different members:', |
|
stda => 'Start date:', |
stda => 'Start date:', |
enda => 'End date:', |
enda => 'End date:', |
); |
); |
|
$lt{'difn'} = &mt('Different collaborative tools[_1]for different members:','<br />'); |
my $showstart = &Apache::lonlocal::locallocaltime($startdate); |
my $showstart = &Apache::lonlocal::locallocaltime($startdate); |
my $showend; |
my $showend; |
if ($enddate == 0) { |
if ($enddate == 0) { |
Line 2069 sub print_current_settings {
|
Line 2099 sub print_current_settings {
|
$r->print('</ul>'); |
$r->print('</ul>'); |
} |
} |
|
|
my $quota_text=&mt('[_1] Mb',$quota); |
my $quota_text=&mt('[_1] MB',$quota); |
my $granu_text=&mt($granularity); |
my $granu_text=&mt($granularity); |
$r->print(<<"END"); |
$r->print(<<"END"); |
</td> |
</td> |
Line 2548 sub current_membership {
|
Line 2578 sub current_membership {
|
'actn' => 'Action?', |
'actn' => 'Action?', |
'name' => 'Name', |
'name' => 'Name', |
'usnm' => 'Username', |
'usnm' => 'Username', |
|
'stid' => 'ID', |
'doma' => 'Domain', |
'doma' => 'Domain', |
'stda' => 'Start Date', |
'stda' => 'Start Date', |
'enda' => 'End Date', |
'enda' => 'End Date', |
Line 2609 END
|
Line 2640 END
|
<th><a href="javascript:changeSort('fullname')">$lt{'name'}</a></th> |
<th><a href="javascript:changeSort('fullname')">$lt{'name'}</a></th> |
<th><a href="javascript:changeSort('username')">$lt{'usnm'}</a></th> |
<th><a href="javascript:changeSort('username')">$lt{'usnm'}</a></th> |
<th><a href="javascript:changeSort('domain')">$lt{'doma'}</a></th> |
<th><a href="javascript:changeSort('domain')">$lt{'doma'}</a></th> |
<th><a href="javascript:changeSort('id')">ID</a></th> |
<th><a href="javascript:changeSort('id')">$lt{'ID'}</a></th> |
<th><a href="javascript:changeSort('start')">$lt{'stda'}</a></th> |
<th><a href="javascript:changeSort('start')">$lt{'stda'}</a></th> |
<th><a href="javascript:changeSort('end')">$lt{'enda'}</a></th> |
<th><a href="javascript:changeSort('end')">$lt{'enda'}</a></th> |
END |
END |
Line 2733 END
|
Line 2764 END
|
} |
} |
$r->print(&Apache::loncommon::end_data_table()); |
$r->print(&Apache::loncommon::end_data_table()); |
} else { |
} else { |
$r->print(&mt('There are no active, future or previous group members to modify.')); |
$r->print( |
|
'<p class="LC_info">' |
|
.&mt('There are no active, future or previous group members to modify.') |
|
.'</p>'); |
} |
} |
return $numcurrent; |
return $numcurrent; |
} |
} |
Line 2801 sub change_privs_form {
|
Line 2835 sub change_privs_form {
|
} |
} |
} |
} |
if (!$exp_or_del) { |
if (!$exp_or_del) { |
$r->print($lt{'nome'}.'<br />'); |
$r->print('<p class="LC_info">'.$lt{'nome'}.'</p>'); |
} |
} |
|
|
$r->print(&Apache::lonhtmlcommon::topic_bar(4,&mt('Setting optional privileges for specific group members'))); |
$r->print(&Apache::lonhtmlcommon::topic_bar(4,&mt('Setting optional privileges for specific group members'))); |
Line 3197 sub write_group_data {
|
Line 3231 sub write_group_data {
|
$quota = 0; |
$quota = 0; |
$r->print('<div class="LC_warning">' |
$r->print('<div class="LC_warning">' |
.&mt('The value you entered for the quota for the group portfolio in this '.$gpterm |
.&mt('The value you entered for the quota for the group portfolio in this '.$gpterm |
.' contained invalid characters, so it has been set to 0 Mb. You can change this by' |
.' contained invalid characters, so it has been set to 0 MB. You can change this by' |
.' modifying the '.$gpterm.' settings.') |
.' modifying the '.$gpterm.' settings.') |
.'</div>'); |
.'</div>'); |
} |
} |
Line 3205 sub write_group_data {
|
Line 3239 sub write_group_data {
|
$quota = $maxposs; |
$quota = $maxposs; |
$r->print('<div class="LC_warning">' |
$r->print('<div class="LC_warning">' |
.&mt('The value you entered for the quota for the group portfolio in this '.$gpterm |
.&mt('The value you entered for the quota for the group portfolio in this '.$gpterm |
.' exceeded the maximum possible value, so it has been set to [_1] Mb ' |
.' exceeded the maximum possible value, so it has been set to [_1] MB ' |
.'(the maximum possible value).',sprintf("%.2f",$maxposs)) |
.'(the maximum possible value).',sprintf("%.2f",$maxposs)) |
.'</div>'); |
.'</div>'); |
} |
} |
Line 3364 sub write_group_data {
|
Line 3398 sub write_group_data {
|
&Apache::lonnet::logthis("Failed to store $gpterm $groupname ". |
&Apache::lonnet::logthis("Failed to store $gpterm $groupname ". |
'in '.lc($crstype).': '.$cnum. |
'in '.lc($crstype).': '.$cnum. |
' in domain: '.$cdom); |
' in domain: '.$cdom); |
$r->print('<div class="LC_error">' |
$r->print('<p class="LC_error">' |
.&mt('An error occurred when [_1] the '.$gpterm.'. ' |
.&mt('An error occurred when '.$actiontype{$action}.' the '.$gpterm.'. ' |
.'Please try again.',$actiontype{$action}) |
.'Please try again.') |
.'</div>'); |
.'</p'); |
} |
} |
return $result; |
return $result; |
} |
} |
Line 3498 sub process_membership {
|
Line 3532 sub process_membership {
|
if (grep/^$user$/,@reenable) { |
if (grep/^$user$/,@reenable) { |
$start = $startdate; |
$start = $startdate; |
$end = $enddate; |
$end = $enddate; |
$type = 'reenabled'; |
$type = 're-enabled'; |
} |
} |
} |
} |
if ($type eq '') { |
if ($type eq '') { |
Line 3534 sub process_membership {
|
Line 3568 sub process_membership {
|
if ($num_ok) { |
if ($num_ok) { |
my $msgall =''; |
my $msgall =''; |
foreach my $type (sort(keys(%added))) { |
foreach my $type (sort(keys(%added))) { |
my $message = &mt('The following users were successfully [_1]',$type); |
my $message; |
|
my $tmsg = "The following users were successfully $type"; |
if (!($type eq 'deleted' || $type eq 'expired')) { |
if (!($type eq 'deleted' || $type eq 'expired')) { |
$message .= &mt(' with the following privileges'); |
$tmsg .= ' with the following privileges'; |
} |
} |
$message .= ':<br/>'; |
$message .= &mt($tmsg.':').'<br/>'; |
foreach my $user (@{$added{$type}}) { |
foreach my $user (@{$added{$type}}) { |
my $privlist = ''; |
my $privlist = ''; |
if (!($type eq 'deleted' || $type eq 'expired')) { |
if (!($type eq 'deleted' || $type eq 'expired')) { |
Line 4120 sub create_homepage {
|
Line 4155 sub create_homepage {
|
my ($cdom,$cnum,$name,$groupinfo,$tools,$gpterm,$ucgpterm,$now) = @_; |
my ($cdom,$cnum,$name,$groupinfo,$tools,$gpterm,$ucgpterm,$now) = @_; |
my $functionality = join(',',@{$tools}); |
my $functionality = join(',',@{$tools}); |
my $content = &unescape($$groupinfo{description}); |
my $content = &unescape($$groupinfo{description}); |
$content=~s/\s+$//s; |
chomp($content); |
$content=~s/^\s+//s; |
my $gateway = Apache::lonhtmlgateway->new(); |
$content=~s/\<br\s*\/*\>$//s; |
$content = $gateway->process_incoming_html($content,1); |
$content=&Apache::lonfeedback::clear_out_html($content,1); |
|
|
|
my %pageinfo = ( |
my %pageinfo = ( |
'aaa_title' => "$ucgpterm: $name", |
'aaa_title' => "$ucgpterm: $name", |
Line 4183 sub validate_groupname {
|
Line 4217 sub validate_groupname {
|
} |
} |
my %lt = &Apache::lonlocal::texthash ( |
my %lt = &Apache::lonlocal::texthash ( |
igna => "Invalid $gpterm name", |
igna => "Invalid $gpterm name", |
tgne => "The $gpterm name entered ", |
|
grna => "$ucgpterm names and section names used in a ". |
grna => "$ucgpterm names and section names used in a ". |
"$crstype must be unique.", |
"$crstype must be unique.", |
isno => "is not a valid name.", |
|
gnmo => "$ucgpterm names may only contain letters, ". |
gnmo => "$ucgpterm names may only contain letters, ". |
"numbers or underscores.", |
"numbers or underscores.", |
cnnb => "can not be used as it is the name of ", |
|
inth => " in this $crstype", |
|
thgr => "- does not correspond to the name of an ". |
|
"existing $gpterm", |
|
); |
); |
|
|
my $exitmsg = '<span class="LC_error">'.$lt{'igna'}.'</span><br /><br />'. |
my $exitmsg = '<span class="LC_error">'.$lt{'igna'}.'</span><br /><br />'; |
$lt{'tgne'}.' "'.$groupname.'" '; |
my $nameshown = &Apache::loncommon::cleanup_html($groupname); |
my $dupmsg = $lt{'grna'}; |
|
my $earlyout; |
|
if (($groupname eq '') || ($groupname =~ /\W/)) { |
if (($groupname eq '') || ($groupname =~ /\W/)) { |
$earlyout = $exitmsg.$lt{'isno'}.'<br />'.$lt{'gnmo'}; |
return $exitmsg. |
return $earlyout; |
&mt("The $gpterm name entered '[_1]' is not a valid name.",$nameshown). |
|
'<br />'.$lt{'gnmo'}; |
|
} elsif ($groupname eq 'syllabus') { |
|
return $exitmsg. |
|
&mt("The $gpterm name entered '[_1]' is reserved for use by LON-CAPA.",$nameshown); |
} |
} |
if (exists($sectioncount{$groupname})) { |
if (exists($sectioncount{$groupname})) { |
return $exitmsg.$lt{'cnnb'}.&mt('a section').$lt{'inth'}. |
return $exitmsg. |
'<br />'.$lt{'grna'}; |
&mt("The $gpterm name entered '[_1]' can not be used as it is the name of a section in this $crstype.",$nameshown). |
|
'<br />'.$lt{'grna'}; |
} |
} |
if ($action eq 'create') { |
if ($action eq 'create') { |
if (exists($curr_groups{$groupname})) { |
if (exists($curr_groups{$groupname})) { |
return $exitmsg.$lt{'cnnb'}.&mt('an existing [_1]',$gpterm). |
return $exitmsg. |
$lt{'inth'}.'.<br />'.$lt{'grna'}; |
&mt("The $gpterm name entered '[_1]' can not be used as it is the name of an existing $gpterm in this $crstype.",$nameshown). |
|
'<br />'.$lt{'grna'}; |
} elsif (exists($deleted_groups{$groupname})) { |
} elsif (exists($deleted_groups{$groupname})) { |
return $exitmsg.$lt{'cnnb'}.&mt('a [_1] which previously existed',$gpterm). |
return $exitmsg. |
$lt{'inth'}.'.<br />'.$lt{'grna'}; |
&mt("The $gpterm name entered '[_1]' can not be used as it is the name of a $gpterm which previously existed in this $crstype.",$nameshown). |
|
'<br />'.$lt{'grna'}; |
} |
} |
} elsif ($action eq 'modify') { |
} elsif ($action eq 'modify') { |
unless(exists($curr_groups{$groupname})) { |
unless(exists($curr_groups{$groupname})) { |
$earlyout = &mt('[_1] name:',$ucgpterm).' '.$groupname.$lt{'thgr'}. |
return &mt("$ucgpterm name: [_1] does not correspond to the name of an existing $gpterm in this $crstype.",$nameshown); |
$lt{'inth'}; |
|
return $earlyout; |
|
} |
} |
} |
} |
return; |
return; |