version 1.124, 2014/02/27 11:16:06
|
version 1.130, 2017/03/19 17:56:04
|
Line 37 use Apache::lonnavmaps();
|
Line 37 use Apache::lonnavmaps();
|
use Apache::longroup(); |
use Apache::longroup(); |
use Apache::portfolio(); |
use Apache::portfolio(); |
use Apache::Constants qw(:common :http); |
use Apache::Constants qw(:common :http); |
|
use HTML::Entities; |
use LONCAPA::map(); |
use LONCAPA::map(); |
use lib '/home/httpd/lib/perl/'; |
use lib '/home/httpd/lib/perl/'; |
use LONCAPA; |
use LONCAPA; |
Line 135 function changeSort(caller) {
|
Line 136 function changeSort(caller) {
|
} |
} |
function openGroupRoster(group,status) { |
function openGroupRoster(group,status) { |
var url = '/adm/grouproster?'; |
var url = '/adm/grouproster?'; |
url += 'group='+group+'&status='+status+'&ref=popup'; |
url += 'group='+group+'&status='+status+'&ref=popup'; |
var title = 'Group_Membership'; |
var title = 'Group_Membership'; |
var options = 'scrollbars=1,resizable=1,menubar=0'; |
var options = 'scrollbars=1,resizable=1,menubar=0'; |
options += ',width=700,height=600'; |
options += ',width=700,height=600'; |
Line 169 sub display_groups {
|
Line 170 sub display_groups {
|
my %curr_groups = (); |
my %curr_groups = (); |
my %grp_info = (); |
my %grp_info = (); |
my %actionlinks = ( |
my %actionlinks = ( |
modify => '<a href="/adm/coursegroups?action=modify&refpage='. |
modify => '/adm/coursegroups?action=modify&refpage='. |
$env{'form.refpage'}.'&state=pick_task&groupname=', |
$env{'form.refpage'}.'&state=pick_task&groupname=', |
view => '<a href="', |
view => '', |
delete => '<a href="/adm/coursegroups?action=delete&refpage='. |
delete => '/adm/coursegroups?action=delete&refpage='. |
$env{'form.refpage'}.'&state=verify&groupname=', |
$env{'form.refpage'}.'&state=verify&groupname=', |
reenable => '<a href="/adm/coursegroups?action=reenable&refpage='. |
reenable => '/adm/coursegroups?action=reenable&refpage='. |
$env{'form.refpage'}.'&state=verify&groupname=', |
$env{'form.refpage'}.'&state=verify&groupname=', |
); |
); |
my %lt = &Apache::lonlocal::texthash( |
my %lt = &Apache::lonlocal::texthash( |
modify => 'Modify', |
modify => 'Modify', |
Line 226 sub display_groups {
|
Line 227 sub display_groups {
|
if (!defined($navmap)) { |
if (!defined($navmap)) { |
$r->print('<div class="LC_error">'. |
$r->print('<div class="LC_error">'. |
&mt('An error occurred retrieving information about resources in the course.').'<br />'. |
&mt('An error occurred retrieving information about resources in the course.').'<br />'. |
&mt('It is recommended that you [_1]re-initialize the course[_2] and then return to this page.','<a href="/adm/roles?selectrole=1&newrole='.$env{'request.role'}.'&orgurl=%2fadm%2fcoursegroups">','</a>'). |
&mt('It is recommended that you [_1]re-initialize the course[_2] and then return to this page.','<a href="/adm/roles?selectrole=1&newrole='.$env{'request.role'}.'&orgurl=%2fadm%2fcoursegroups">','</a>'). |
'</div>'); |
'</div>'); |
return; |
return; |
} |
} |
Line 249 sub display_groups {
|
Line 250 sub display_groups {
|
<th><a href="javascript:changeSort('creator')">$lt{'crea'}</a></th> |
<th><a href="javascript:changeSort('creator')">$lt{'crea'}</a></th> |
<th><a href="javascript:changeSort('creation')">$lt{'crtd'}</a></th> |
<th><a href="javascript:changeSort('creation')">$lt{'crtd'}</a></th> |
<th><a href="javascript:changeSort('modified')">$lt{'last'}</a></th> |
<th><a href="javascript:changeSort('modified')">$lt{'last'}</a></th> |
<th>$lt{'func'}</b></td> |
<th>$lt{'func'}</th> |
<th><a href="javascript:changeSort('quota')">$lt{'quot'}</a></th> |
<th><a href="javascript:changeSort('quota')">$lt{'quot'}</a></th> |
<th><a href="javascript:changeSort('totalmembers')">$lt{'memb'}</a></th> |
<th><a href="javascript:changeSort('totalmembers')">$lt{'memb'}</a></th> |
<th><a href="javascript:changeSort('totalfiles')">$lt{'file'}</a></th> |
<th><a href="javascript:changeSort('totalfiles')">$lt{'file'}</a></th> |
Line 328 END
|
Line 329 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 = '<a href="'.&HTML::Entities::encode($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, |
$link .= (($link=~/\?/)?'&':'?').'ref=grouplist'; |
$view_permission); |
if (exists($env{'form.refpage'})) { |
if ($link) { |
$link .= '&refpage='.$env{'form.refpage'}; |
$link = '<a href="'.$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 .= ' <a href="'. |
$group.'">'.$lt{'modify'}.'</a>'. |
&HTML::Entities::encode($actionlinks{'modify'}.$group,'<>&"'). |
' '.$actionlinks{'delete'}. |
'">'.$lt{'modify'}.'</a> <a href="'. |
$group.'">'.$lt{'delete'}.'</a>'; |
&HTML::Entities::encode($actionlinks{'delete'}.$group,'<>&"'). |
|
'">'.$lt{'delete'}.'</a>'; |
} |
} |
} |
} |
$r->print(&Apache::loncommon::start_data_table_row('LC_data_table_dense'). |
$r->print(&Apache::loncommon::start_data_table_row('LC_data_table_dense'). |
Line 394 END
|
Line 401 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 401 END
|
Line 409 END
|
if (!defined($navmap)) { |
if (!defined($navmap)) { |
$r->print('<div class="LC_error">'. |
$r->print('<div class="LC_error">'. |
&mt('An error occurred retrieving information about resources in the course.').'<br />'. |
&mt('An error occurred retrieving information about resources in the course.').'<br />'. |
&mt('It is recommended that you [_1]re-initialize the course[_2] and then return to this page.','<a href="/adm/roles?selectrole=1&newrole='.$env{'request.role'}.'&orgurl=%2fadm%2fcoursegroups">','</a>'). |
&mt('It is recommended that you [_1]re-initialize the course[_2] and then return to this page.','<a href="/adm/roles?selectrole=1&newrole='.$env{'request.role'}.'&orgurl=%2fadm%2fcoursegroups">','</a>'). |
'</div>'); |
'</div>'); |
return; |
return; |
} |
} |
Line 410 END
|
Line 418 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, |
'&ref=grouplist'; |
$view_permission); |
$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 831 sub group_administration {
|
Line 863 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 897 function changeSort(caller) {
|
Line 929 function changeSort(caller) {
|
faq=>9,bug=>'Instructor Interface',}); |
faq=>9,bug=>'Instructor Interface',}); |
if ($action eq 'modify' || $action eq 'delete') { |
if ($action eq 'modify' || $action eq 'delete') { |
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({href=>"/adm/coursegroups?refpage=cusr&action=$action", |
({href=>"/adm/coursegroups?refpage=cusr&action=$action", |
text=>"Groups", |
text=>"Groups", |
faq=>9,bug=>'Instructor Interface',}); |
faq=>9,bug=>'Instructor Interface',}); |
} |
} |
Line 1587 sub group_members {
|
Line 1619 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 1702 sub groupsettings_options {
|
Line 1734 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 3503 sub process_membership {
|
Line 3535 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 3756 sub modify_menu {
|
Line 3788 sub modify_menu {
|
items => [ |
items => [ |
|
|
{ linktext => "Modify default $gpterm settings", |
{ linktext => "Modify default $gpterm settings", |
url => '/adm/coursegroups?action=modify&refpage='.$env{'form.refpage'}.'&groupname='.$groupname.'&state=change_settings&branch=settings', |
url => '/adm/coursegroups?action=modify&refpage='.$env{'form.refpage'}.'&groupname='.$groupname.'&state=change_settings&branch=settings', |
icon => 'grp_settings.png', |
icon => 'grp_settings.png', |
alttext => "Modify default $gpterm settings", |
alttext => "Modify default $gpterm settings", |
permission => '1', |
permission => '1', |
help => 'Course_Modify_Group', |
help => 'Course_Modify_Group', |
}, |
}, |
{ linktext => 'Modify access, tools and privileges for members', |
{ linktext => 'Modify access, tools and privileges for members', |
url => '/adm/coursegroups?action=modify&refpage='.$env{'form.refpage'}.'&groupname='.$groupname.'&state=change_members&branch=members', |
url => '/adm/coursegroups?action=modify&refpage='.$env{'form.refpage'}.'&groupname='.$groupname.'&state=change_members&branch=members', |
icon => 'grp_tools.png', |
icon => 'grp_tools.png', |
alttext => 'Modify access, tools and privileges for members', |
alttext => 'Modify access, tools and privileges for members', |
permission => '1', |
permission => '1', |
help => 'Course_Modify_Group_Membership', |
help => 'Course_Modify_Group_Membership', |
}, |
}, |
{ linktext => "Add member(s) to the $gpterm", |
{ linktext => "Add member(s) to the $gpterm", |
url => '/adm/coursegroups?action=modify&refpage='.$env{'form.refpage'}.'&groupname='.$groupname.'&state=add_members&branch=adds', |
url => '/adm/coursegroups?action=modify&refpage='.$env{'form.refpage'}.'&groupname='.$groupname.'&state=add_members&branch=adds', |
icon => 'grp_add.png', |
icon => 'grp_add.png', |
alttext => "Add member(s) to the $gpterm", |
alttext => "Add member(s) to the $gpterm", |
permission => '1', |
permission => '1', |
Line 4188 sub validate_groupname {
|
Line 4220 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 $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 $gpterm which previously existed"). |
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("$ucgpterm name:").' '.$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; |