[LON-CAPA-cvs] cvs: loncom /interface loncoursegroups.pm
raeburn
lon-capa-cvs@mail.lon-capa.org
Wed, 19 Jul 2006 23:28:21 -0000
This is a MIME encoded message
--raeburn1153351701
Content-Type: text/plain
raeburn Wed Jul 19 19:28:21 2006 EDT
Modified files:
/loncom/interface loncoursegroups.pm
Log:
Bug 4853. Wording changes. Also can now configure automatic group enrollment during course creation when no sections exist. quota information (Mb) displayed to 2 decimal places. Eliminate javascript error on add members page when modifiying a course by removing setFormElements() onload in this case. Some replacement of gpterm with group now all groups will be termed groups, regardless of course type.
--raeburn1153351701
Content-Type: text/plain
Content-Disposition: attachment; filename="raeburn-20060719192821.txt"
Index: loncom/interface/loncoursegroups.pm
diff -u loncom/interface/loncoursegroups.pm:1.52 loncom/interface/loncoursegroups.pm:1.53
--- loncom/interface/loncoursegroups.pm:1.52 Mon Jul 17 11:07:26 2006
+++ loncom/interface/loncoursegroups.pm Wed Jul 19 19:28:20 2006
@@ -1,6 +1,6 @@
# The LearningOnline Network with CAPA
#
-# $Id: loncoursegroups.pm,v 1.52 2006/07/17 15:07:26 raeburn Exp $
+# $Id: loncoursegroups.pm,v 1.53 2006/07/19 23:28:20 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -91,17 +91,23 @@
my $action = $env{'form.action'};
my $state = $env{'form.state'};
- if ((!defined($action)) || ($action eq 'view')) {
+ if ((!defined($action)) || ($action eq 'view') || ($action eq 'modify')) {
if (!defined($state)) {
$state = 'view';
}
}
if ($action eq 'create' || $action eq 'modify' || $action eq 'view') {
if ($view_permission || $manage_permission) {
- &group_administration($r,$action,$state,$cdom,$cnum,
- \%functions,\%idx,$view_permission,
- $manage_permission,$gpterm,$ucgpterm,
- $crstype);
+ if ($state eq 'view') {
+ &print_main_menu($r,$cdom,$cnum,\%functions,\%idx,
+ $view_permission,$manage_permission,
+ $action,$state,$gpterm,$ucgpterm,$crstype);
+ } else {
+ &group_administration($r,$action,$state,$cdom,$cnum,
+ \%functions,\%idx,$view_permission,
+ $manage_permission,$gpterm,$ucgpterm,
+ $crstype);
+ }
} else {
$r->print(&mt('You do not have [_1] administration '.
'privileges in this [_2]',$gpterm,lc($crstype)));
@@ -117,17 +123,21 @@
sub print_main_menu {
my ($r,$cdom,$cnum,$functions,$idx,$view_permission,$manage_permission,
$action,$state,$gpterm,$ucgpterm,$crstype) = @_;
- my $pagename = "$crstype $ucgpterm".'s';
my $jscript = qq|
function changeSort(caller) {
document.$state.sortby.value = caller;
document.$state.submit();
}\n|;
- $r->print(&header($pagename,$jscript,$action,$state));
+ $r->print(&header('Groups',$jscript,$action,$state));
+ if ($env{'form.refpage'} eq 'enrl') {
+ &Apache::lonhtmlcommon::add_breadcrumb
+ ({href=>"/adm/dropadd",
+ text=>"Enrollment Manager"});
+ }
&Apache::lonhtmlcommon::add_breadcrumb
({href=>"/adm/coursegroups",
- text=>"$pagename"});
- $r->print(&Apache::lonhtmlcommon::breadcrumbs($pagename));
+ text=>"Groups"});
+ $r->print(&Apache::lonhtmlcommon::breadcrumbs('Groups'));
&display_groups($r,$cdom,$cnum,$functions,$idx,$view_permission,
$manage_permission,$action,$state,$gpterm,$ucgpterm,
$crstype);
@@ -142,7 +152,7 @@
my %grp_info = ();
my %actionlinks = (
modify => '<a href="/adm/coursegroups?action=modify&refpage='.
- $env{'form.refpage'}.'&groupname=',
+ $env{'form.refpage'}.'&state=pick_task&groupname=',
view => '<a href="/adm/'.$cdom.'/'.$cnum.'/',
delete => '<a href="/adm/coursegroups?action=delete&refpage='.
$env{'form.refpage'}.'&groupname=',
@@ -152,23 +162,23 @@
view => 'View',
delete => 'Delete',
act => 'Action',
- gname => "$ucgpterm Name",
- desc => 'Description',
+ gname => 'Group Name',
+ desc => 'Group Title',
crea => 'Creator',
crtd => 'Created',
last => 'Last Modified',
- func => 'Functionality',
+ func => 'Collaborative Tools',
quot => 'Quota (Mb)',
memb => 'Members',
file => 'Files',
dibd => 'Discussion Boards',
dius => 'Disk Use (%)',
- nogr => 'No '.$gpterm.'s exist.',
- crng => 'Create a new '.$gpterm,
+ nogr => 'No groups exist.',
+ crng => 'Create a new group',
alth => 'Although your current role has privileges'.
- ' to view any existing '.$gpterm.'s in this'.
+ ' to view any existing groups in this'.
lc($crstype).', you do not have privileges'.
- 'to create new '.$gpterm.'s.',
+ 'to create new groups.',
);
if ($view_permission) {
if (!defined($action)) {
@@ -177,7 +187,9 @@
my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum);
if (%curr_groups) {
if ($manage_permission) {
- $r->print('<br /><a href="/adm/coursegroups?action=create&refpage='.$env{'form.refpage'}.'">'.$lt{'crng'}.'</a>');
+ if (!exists($env{'form.refpage'})) {
+ $r->print('<br /><a href="/adm/coursegroups?action=create">'.$lt{'crng'}.'</a>');
+ }
}
$r->print('<br /><br />');
$r->print(&Apache::loncommon::start_data_table().
@@ -274,6 +286,9 @@
$link .= $group;
} else {
$link .= $group.'/smppg?ref=grouplist';
+ if (exists($env{'form.refpage'})) {
+ $link .= '&refpage='.$env{'form.refpage'};
+ }
}
$link .= '">'.$lt{$action}.'</a>';
if ($action eq 'view') {
@@ -312,7 +327,9 @@
} else {
$r->print($lt{'nogr'});
if ($manage_permission) {
- $r->print('<br /><br /><a href="/adm/coursegroups?action=create&refpage='.$env{'form.refpage'}.'">'.$lt{'crng'}.'</a>');
+ if (!exists($env{'form.refpage'})) {
+ $r->print('<br /><br /><a href="/adm/coursegroups?action=create">'.$lt{'crng'}.'</a>');
+ }
} else {
$r->print('<br /><br />'.$lt{'alth'});
@@ -349,6 +366,7 @@
my @types = ();
my @roles = ();
my @sections = ();
+ my @buildsections = ();
my %users = ();
my %userdata = ();
my @members = ();
@@ -400,8 +418,6 @@
if ($state eq '') {
if (defined($env{'form.groupname'})) {
$state = 'pick_task';
- } else {
- $state = 'pick_group';
}
} else {
%stored = &retrieve_settings($cdom,$cnum,$groupname);
@@ -495,11 +511,9 @@
(($action eq 'modify') && (($state eq 'change_settings') ||
($state eq 'add_members')))) {
%sectioncount = &Apache::loncommon::get_sections($cdom,$cnum);
- if (%sectioncount) {
- $elements{'create'}{'pick_name'}{'sectionpick'} = 'selectbox';
- $elements{'modify'}{'change_mapping'}{'sectionpick'} = 'selectbox';
- $elements{'modify'}{'add_members'}{'sectionpick'} = 'selectbox';
- }
+ $elements{'create'}{'pick_name'}{'sectionpick'} = 'selectbox';
+ $elements{'modify'}{'change_mapping'}{'sectionpick'} = 'selectbox';
+ $elements{'modify'}{'add_members'}{'sectionpick'} = 'selectbox';
}
if (($action eq 'create') ||
@@ -513,13 +527,15 @@
if (defined($env{'form.sectionpick'})) {
@sections=&Apache::loncommon::get_env_multiple('form.sectionpick');
if (grep/^all$/,@sections) {
- @sections = sort {$a cmp $b} keys(%sectioncount);
+ @buildsections = sort {$a cmp $b} keys(%sectioncount);
+ } else {
+ @buildsections = @sections;
}
}
}
if (($state eq 'pick_members') || ($state eq 'pick_privs') || ($state eq 'change_privs')) {
- &build_members_list($cdom,$cnum,\@types,\@roles,\@sections,\%users,
+ &build_members_list($cdom,$cnum,\@types,\@roles,\@buildsections,\%users,
\%userdata);
}
if ($state eq 'pick_members') {
@@ -724,13 +740,13 @@
my $space_trim = '/^\s*|\s*\$/g,""';
my $float_check = '/^([0-9]*\.?[0-9]*)$/';
$validate_script = '
- var newquota = document.'.$state.'.quota.value;
+ var newquota = new String(document.'.$state.'.quota.value);
newquota.replace('.$space_trim.');
if (newquota == "" ) {
document.'.$state.'.quota.value = 0;
- newquota = 0;
+ newquota = "0";
}
- var maxposs = '.$maxposs.';
+ var maxposs = '.sprintf("%.2f",$maxposs).';
if (newquota > maxposs) {
alert("The file repository quota you entered for this group ("+newquota+" Mb) exceeds the maximum possible ("+maxposs+" Mb). Please enter a smaller number.");
return;
@@ -781,7 +797,7 @@
my %states = ();
my %branchstates = ();
@{$states{'create'}} = ('pick_name','pick_members','pick_privs','result');
- @{$states{'modify'}} = ('pick_group','pick_task');
+ @{$states{'modify'}} = ('pick_task');
@{$branchstates{'noprivs'}} = ('result');
@{$branchstates{'settings'}} = ('change_settings','chgresult');
@{$branchstates{'members'}} = ('change_members','change_privs','memresult');
@@ -805,8 +821,7 @@
}
my $loaditems = &onload_action($action,$state);
- my $crumbtitle = "$crstype $ucgpterm".'s';
- $r->print(&header("$crumbtitle Manager",
+ $r->print(&header("Groups Manager",
$jscript,$action,$state,$page,$loaditems));
if ($env{'form.refpage'} eq 'enrl') {
@@ -814,11 +829,17 @@
({href=>"/adm/dropadd",
text=>"Enrollment Manager",
faq=>9,bug=>'Instructor Interface',});
- } else {
+ if ($action eq 'modify') {
+ &Apache::lonhtmlcommon::add_breadcrumb
+ ({href=>"/adm/coursegroups?refpage=enrl&action=modify",
+ text=>"Groups",
+ faq=>9,bug=>'Instructor Interface',});
+ }
+ } else {
&Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"/adm/coursegroups",
- text=>"$crumbtitle",
- faq=>9,bug=>'Instructor Interface',});
+ ({href=>"/adm/coursegroups",
+ text=>"Groups",
+ faq=>9,bug=>'Instructor Interface',});
}
my %trail = ();
@@ -829,7 +850,6 @@
result => 'Creation Complete',
);
%{$trail{'modify'}} = &Apache::lonlocal::texthash(
- pick_group => $ucgpterm.'s',
pick_task => 'Choose Task',
change_settings => "$ucgpterm Settings",
change_members => 'Modify/Delete Members',
@@ -857,7 +877,7 @@
&Apache::lonhtmlcommon::add_breadcrumb(
{text=>"$trail{$action}{$state}"});
$r->print(&Apache::lonhtmlcommon::breadcrumbs
- ("$crumbtitle Manager"));
+ ("Groups Manager"));
&display_control($r,$cdom,$cnum,$action,$state,$page,
\%sectioncount,$groupname,$description,$functions,
\@tools,$toolprivs,$fixedprivs,$startdate,$enddate,
@@ -882,9 +902,8 @@
} elsif (($action eq 'view') && ($view_permission)) {
&Apache::lonhtmlcommon::add_breadcrumb(
{text=>"View $gpterm".'s'});
- my $crumbtitle = "$crstype $ucgpterm".'s Manager';
$r->print(&Apache::lonhtmlcommon::breadcrumbs
- (&mt($crumbtitle)));
+ ('Groups Manager'));
&display_groups($r,$cdom,$cnum,$functions,$idx,$view_permission,
$manage_permission,$action,$state,$gpterm,$ucgpterm,
$crstype);
@@ -988,11 +1007,7 @@
}
} elsif ($action eq 'modify') {
my $groupname = $env{'form.groupname'};
- if ($state eq 'pick_group') {
- &display_groups($r,$cdom,$cnum,$functions,$idx,$view_permission,
- $manage_permission,$action,$state,$gpterm,
- $ucgpterm,$crstype);
- } elsif ($state eq 'pick_task') {
+ if ($state eq 'pick_task') {
&modify_menu($r,$groupname,$page,$gpterm);
} elsif ($state eq 'change_settings') {
&general_settings_form($r,$cdom,$cnum,$action,$state,$page,
@@ -1077,8 +1092,7 @@
}
if (($action eq 'modify') &&
($state eq 'change_settings' || $state eq 'change_members' ||
- $state eq 'change_privs' || $state eq 'add_members' ||
- $state eq 'pick_members')) {
+ $state eq 'change_privs' || $state eq 'add_members')) {
$loaditems{'onload'} =
'javascript:setFormElements(document.'.$state.')';
}
@@ -1200,15 +1214,14 @@
my ($r,$functions,$action,$formname,$stored,$image,$gpterm,
$ucgpterm,$crstype) = @_;
my %lt = &Apache::lonlocal::texthash(
- 'gdat' => "$ucgpterm open and close dates",
- 'sten' => "Set a start date/time and end date/time for the $gpterm",
- 'gfun' => "$ucgpterm functionality",
- 'gnde' => "$ucgpterm name, description and available functionality",
- 'desc' => 'Description',
- 'func' => 'Functionality',
- 'gnam' => "$ucgpterm Name",
- 'doyo' => "Do you want to assign different functionality ".
- "to different $gpterm members?",
+ 'gdat' => "Group access start and end dates",
+ 'gnde' => "Group name, title and available collaborative tools",
+ 'desc' => 'Group Title',
+ 'func' => 'Collaborative Tools',
+ 'gnam' => 'Group Name',
+ 'lett' => 'Letters, numbers and underscore only',
+ 'doyo' => 'Different subsets of the chosen collaborative tools '.
+ 'for different group members?',
);
my ($crsquota,$freespace,$maxposs) = &get_quota_constraints($action,$stored);
&topic_bar($r,$image,$lt{'gnde'});
@@ -1219,7 +1232,8 @@
<td colspan="5">
');
if ($action eq 'create') {
- $r->print('<input type="text" name="groupname" size="25" />');
+ $r->print('<input type="text" name="groupname" size="25" /> ('.
+ $lt{'lett'}.')');
} else {
$r->print('<input type="hidden" name="groupname" value="'.
$env{'form.groupname'}.'" />'.$env{'form.groupname'});
@@ -1289,14 +1303,14 @@
$r->print('<br />'.
&mt('A total of [_1] Mb can be divided amongst all [_2]s in the '.
'[_3], and [_4] Mb are currently unallocated.',$crsquota,
- $gpterm,lc($crstype),$freespace));
+ $gpterm,lc($crstype),sprintf("%.2f",$freespace)));
} else {
$r->print(' ('.&mt('The quota is currently [_1] Mb',
$$stored{'quota'}).').');
$r->print('<br />'.&mt('The quota can be increased to [_1] Mb, '.
'by adding all unallocated space for [_2]s in the [_3].',
- $maxposs,$gpterm,lc($crstype)));
+ sprintf("%.2f",$maxposs),$gpterm,lc($crstype)));
}
$r->print('
</td>
@@ -1326,15 +1340,15 @@
my ($r,$action,$state,$sectioncount,$image,$gpterm,$ucgpterm) = @_;
my $crstype = &Apache::loncommon::course_type();
my %lt = &Apache::lonlocal::texthash(
- 'pipa' => 'Pick parameters to generate membership list',
- 'gmem' => "$ucgpterm membership options",
+ 'pipa' => 'Build a list of users for selection of group members',
+ 'gmem' => "Group membership selection list criteria:",
'picr' => 'Pick the criteria to use to build a list of '.
lc($crstype).' users from which you will select ',
- 'meof' => "members of the new $gpterm.",
- 'admg' => "additional members of the $gpterm.",
+ 'meof' => "members of the new group.",
+ 'admg' => "additional members of the group.",
'ifno' => "If you do not wish to add members when you first ".
- "create the $gpterm, do not make any selections.",
- 'asub' => "A subsequent step will also allow you to specify automatic adding/dropping of $gpterm members triggered by specified role and section changes.",
+ "create the group, there is no need to pick any criteria.",
+ 'asub' => "A subsequent step will also allow you to specify automatic adding/dropping of group members triggered by specified user role and section <i>changes</i> in the course.",
'acty' => 'Access types',
'coro' => $crstype.' roles',
'cose' => $crstype.' sections',
@@ -1364,12 +1378,9 @@
<table class="LC_status_selector">
<tr>
<th>'.$lt{'acty'}.'</th>
- <th>'.$lt{'coro'}.'</th>');
- if (@sections >0) {
- $r->print('
- <th>'.$lt{'cose'}.'</th>');
- }
- $r->print('</tr><tr><td>');
+ <th>'.$lt{'coro'}.'</th>
+ <th>'.$lt{'cose'}.'</th>
+ </tr><tr><td>');
$r->print(&Apache::lonhtmlcommon::status_select_row(\%status_types));
$r->print('</td><td>');
$r->print(&Apache::lonhtmlcommon::role_select_row(\@roles));
@@ -1377,10 +1388,11 @@
@sections = sort {$a cmp $b} @sections;
unshift(@sections,'none'); # Put 'no sections' next
unshift(@sections,'all'); # Put 'all' at the front of the list
- $r->print('</td><td>'.
- §ions_selection(\@sections,'sectionpick').'</td>');
+ } else {
+ @sections = ('all','none');
}
- $r->print('
+ $r->print('</td><td>'.
+ §ions_selection(\@sections,'sectionpick').'</td>
</tr>
</table>');
return;
@@ -1395,7 +1407,7 @@
}
foreach my $sec (@{$sections}) {
if ($sec eq 'all') {
- $section_sel .= ' <option value="'.$sec.'" selected="selected">'.&mt('all sections').'</option>'."\n";
+ $section_sel .= ' <option value="'.$sec.'">'.&mt('all sections').'</option>'."\n";
} elsif ($sec eq 'none') {
$section_sel .= ' <option value="'.$sec.'">'.&mt('no section').'</option>'."\n";
} else {
@@ -1527,15 +1539,15 @@
$granularity,$quota,$available,$unavailable,$gpterm,$ucgpterm) = @_;
my %lt = &Apache::lonlocal::texthash(
- grna => "$ucgpterm Name",
- desc => 'Description',
- grfn => "$ucgpterm Functions",
+ grna => 'Group Name',
+ desc => 'Group Title',
+ grfn => "Collaborative Tools",
gran => 'Granularity',
quot => 'File quota',
dfac => 'Default access dates',
- ygrs => "Your $gpterm selections",
- tfwa => "The following settings will apply to the $gpterm:",
- difn => 'Different functionality<br />for different members:',
+ ygrs => "Your group selections - ",
+ tfwa => "The following settings will apply to the group:",
+ difn => 'Different collaborative tools<br />for different members:',
stda => 'Start date',
enda => 'End date:',
);
@@ -1570,8 +1582,8 @@
<td>
');
if (@{$available} > 0) {
- $r->print('<b>Available:</b>
- <table class="LC_group_priv"><tr>');
+ $r->print(&mt('<b>Available for assignment to members:</b>').
+ '<table class="LC_group_priv"><tr>');
my $rowcell = int(@{$available}/2) + @{$available}%2;
for (my $i=0; $i<@{$available}; $i++) {
if (@{$available} > 3) {
@@ -1588,8 +1600,8 @@
$r->print('</tr></table><br />');
}
if (@{$unavailable} > 0) {
- $r->print('<b>Unavailable:</b>
- <table class="LC_group_priv"><tr>');
+ $r->print(&mt('<b>Unavailable for assignment:</b>').
+ '<table class="LC_group_priv"><tr>');
my $rowcell = int(@{$unavailable}/2) + @{$unavailable}%2;
for (my $j=0; $j<@{$unavailable}; $j++) {
if (@{$unavailable} > 3) {
@@ -1622,14 +1634,15 @@
my ($r,$action,$formname,$available,$idx,$stored,$img,$users,$userdata,
$granularity,$origmembers,$gpterm,$ucgpterm) = @_;
my %lt = &Apache::lonlocal::texthash(
- 'gpme' => "$ucgpterm membership",
+ 'gpme' => "Group membership",
'addm' => 'Add members',
- 'setf' => 'Set functionality',
- 'func' => 'Functionality',
- 'nome' => 'No members to add at this time.',
+ 'setf' => 'Assign collaborative tools',
+ 'func' => 'Tools',
+ 'nome' => 'No members to add at this time, as there are no users '.
+ 'matching the specified type(s), role(s) and section(s).',
'nnew' => "There are no users to add as new members, as all users".
- " matching the specified type(s), role(s), and/or ".
- "section(s) are already affiliated with this $gpterm.",
+ " matching the specified type(s), role(s), and ".
+ "section(s) are already affiliated with this group.",
'yoma' => 'You may need to use the '."'".'modify existing, past or '.
'future members'."'".' page if you need to re-enable '.
'or activate access for previous or future members.',
@@ -1765,34 +1778,35 @@
my ($r,$action,$img,$tools,$stored,$toolprivs,$fixedprivs,$available,
$formname,$gpterm,$ucgpterm) = @_;
my %lt = &Apache::lonlocal::texthash (
- 'uprv' => 'User privileges',
- 'frty' => 'For each type of functionality you have chosen to include, '.
- 'there is a set of standard privileges which apply to all '.
- 'of those for whom the functionality is enabled.',
- 'thar' => 'There are also additional privileges which can be set for '.
- 'some, or all, members. Please choose one of the following:',
- 'fort' => 'For the types of functionality you have chosen to include '.
- 'there are no additional privileges which can be set for some '.
- 'or all members.',
- 'eaty' => 'Each of the types of functionality includes standard '.
- 'privileges which apply to members with access to that '.
- 'functionality, and may also include additional privileges '.
+ 'uprv' => 'User privileges for collaborative tools',
+ 'frty' => 'For each collaborative tool you have chosen to include, '.
+ 'there is a set of core privileges which all group members '.
+ 'assigned use of the tool will receive.',
+ 'thar' => 'For some tools there are also additional optional '.
+ 'privileges which can be set.',
+ 'plch' => 'Choose one of the following:',
+ 'fort' => 'For the collaborative tools you have chosen to include '.
+ 'only core privileges are available, '.
+ 'so there are no optional privileges to assign.',
+ 'eaty' => 'Each collaborative tool includes core '.
+ 'privileges assigned to all members with access to the '.
+ 'tool. Some tools may also feature additional privileges '.
'which can be set for specific members.',
- 'cutg' => "Currently the $gpterm is configured ",
- 'sdif' => "so different $gpterm members can receive different privileges.",
- 'sall' => "so all $gpterm members will receive the same privileges.",
- 'algm' => "All $gpterm members will receive the same privileges.",
- 'smgp' => "Some $gpterm members will receive different privileges from ".
- "others.",
- 'thwi' => "These will be the privileges all $gpterm members receive, ".
- "if you selected the first option above.",
+ 'cutg' => 'Currently the group is configured ',
+ 'sdif' => 'so different members can receive different optional privileges for a particular tool.',
+ 'sall' => 'so all members will receive the same optional privileges for a particular tool.',
+ 'algm' => 'All group members will receive the same privileges for any tool assigned to them, including the default set of optional privileges.',
+ 'smgp' => 'Different group members may receive different privileges from '.
+ 'others for the tools they have been assigned.',
+ 'thwi' => 'These will be the privileges all group members receive for a particular assigned tool, '.
+ 'if you selected the first option above.',
'thes' => "These will be the privileges given to members assigned ".
- "in the future, including via automatic $gpterm assignment ".
- "for specific sections/roles ",
- 'asyo' => "As you have chosen not to include any functionality in the ".
- "$gpterm, no default user privileges settings need to be set.",
- 'plin' => 'Please indicate which <b>optional</b> privileges members '.
- 'will receive by default.',
+ "in the future via automatic group assignment ".
+ "for users who receive specific sections/roles in the course ",
+ 'asyo' => "As you have chosen not to include any collaborative tools ".
+ "in the group, no default optional privileges need to be set.",
+ 'plin' => 'Indicate which <b>optional</b> privileges members '.
+ 'will receive by default for a specific tool.',
'oppr' => 'Optional privileges',
'defp' => 'The default privileges new members will receive are:',
);
@@ -1814,7 +1828,7 @@
if ($action eq 'create') {
$r->print($lt{'frty'}.'<br />');
if ($totaloptionalprivs) {
- $r->print($lt{'thar'});
+ $r->print($lt{'thar'}.'<br /><br />'.$lt{'plch'});
} else {
$r->print($lt{'fort'});
}
@@ -1830,16 +1844,16 @@
}
if ($totaloptionalprivs) {
$r->print('
-<br /><br />
+<br />
<label><nobr><input type="radio" name="specificity" value="No" '.$specific{'No'}.' /> '.$lt{'algm'}.'</nobr></label><br />
-<label><nobr><input type="radio" name="specificity" value="Yes" '.$specific{'Yes'}.' /> '.$lt{'smgp'}.'</nobr></label>');
+<label><nobr><input type="radio" name="specificity" value="Yes" '.$specific{'Yes'}.' /> '.$lt{'smgp'}.'</nobr></label><br /><br />');
} else {
$r->print('<input type="hidden" name="specificity" value="No" />');
}
if ($totaloptionalprivs) {
$r->print($lt{'plin'});
if ($action eq 'create') {
- $r->print(' '.$lt{'thwi'});
+ $r->print('<br />'.$lt{'thwi'});
}
$r->print('<br />'.$lt{'thes'});
if ($action eq 'create') {
@@ -1887,7 +1901,7 @@
'addp' => 'Additional privileges',
'fixp' => 'Fixed privileges',
'oppr' => 'Optional privileges',
- 'func' => 'Function',
+ 'func' => 'Collaborative Tool',
);
$r->print(&Apache::lonhtmlcommon::start_pick_box('LC_group_priv_box').
&Apache::lonhtmlcommon::row_title($lt{'func'},undef,
@@ -1907,7 +1921,7 @@
if ($fixed ne '') {
$fixed .= '</td><td class="LC_groups_fixed">';
}
- $fixed .= '<input type="hidden" name="defpriv" value="'.$priv.'" />'.$$toolprivs{$tool}{$priv}.' ';
+ $fixed .= '<input type="hidden" name="defpriv" value="'.$priv.'" /><nobr>'.$$toolprivs{$tool}{$priv}.' ';
if ($action eq 'modify') {
if (grep(/^$tool$/,@{$available})) {
$fixed .= '<small>'.&mt('(on)').'<small> ';
@@ -1915,21 +1929,21 @@
$fixed .= '<small>'.&mt('(off)').'<small> ';
}
}
+ $fixed .= '</nobr>';
} else {
$privcount++;
if ($privcount == 3) {
$dynamic .= '</tr>
<tr>'."\n";
}
- $dynamic .= '<td><label><input type="checkbox" name="defpriv" value="'.$priv.'" />'.$$toolprivs{$tool}{$priv}.'</label></td>'."\n";
+ $dynamic .= '<td><nobr><label><input type="checkbox" name="defpriv" value="'.$priv.'" />'.$$toolprivs{$tool}{$priv}.'</label></nobr></td>'."\n";
}
}
if ($privcount == 0) {
$dynamic .= '<td>None</td>'."\n";
}
if ($privcount < 3) {
- $dynamic .= '</td>
- <td> </td>'."\n";
+ $dynamic .= '<td> </td>'."\n";
} elsif ($privcount%2) {
$dynamic = '<td> </td>'."\n";
}
@@ -1956,7 +1970,7 @@
my $rowColor2 = "#eeeeee";
my %lt = &Apache::lonlocal::texthash(
'priv' => 'Privileges',
- 'func' => 'Function',
+ 'func' => 'Collaborative Tool',
);
$r->print(&Apache::lonhtmlcommon::start_pick_box());
$r->print('<tr>');
@@ -2049,10 +2063,15 @@
$groupname,$description,$granularity,$quota,
\@available,\@unavailable,$gpterm,$ucgpterm);
&topic_bar($r,2,$lt{'mogm'});
- ¤t_membership($r,$cdom,$cnum,$formname,$groupname,\@available,
- \@unavailable,$fixedprivs,$granularity,$specificity);
- &display_navbuttons($r,$formname,$$states{$action}[$page-1],$prevtext,
- $$states{$action}[$page+1],$nexttext);
+ my $numcurrent = ¤t_membership($r,$cdom,$cnum,$formname,$groupname,
+ \@available,\@unavailable,$fixedprivs,
+ $granularity,$specificity);
+ if ($numcurrent > 0) {
+ &display_navbuttons($r,$formname,$$states{$action}[$page-1],$prevtext,
+ $$states{$action}[$page+1],$nexttext);
+ } else {
+ &display_navbuttons($r,$formname,$$states{$action}[$page-1],$prevtext);
+ }
return;
}
@@ -2072,13 +2091,14 @@
'reen' => 'Re-enable',
'acti' => 'Activate',
'dele' => 'Delete',
- 'curf' => 'Current Functionality',
+ 'curf' => 'Current Tool Set',
'chpr' => 'Change Privileges'
);
my ($current,$num_items,$hastools,$addtools) =
&Apache::longroup::group_memberlist($cdom,$cnum,$groupname,$fixedprivs,
$available);
- if (keys(%{$current}) > 0) {
+ my $numcurrent = scalar(keys(%{$current}));
+ if ($numcurrent > 0) {
$r->print('
<table>
<tr>');
@@ -2135,7 +2155,7 @@
$colspan++;
}
if ($addtools) {
- $r->print('<th>'.&mt('Additional Functionality').'</th>');
+ $r->print('<th>'.&mt('Additional Tools').'</th>');
$colspan++;
}
$r->print(&Apache::loncommon::end_data_table_header_row());
@@ -2248,8 +2268,10 @@
}
}
$r->print(&Apache::loncommon::end_data_table());
+ } else {
+ $r->print(&mt('There are no active, future or previous group members to modify.'));
}
- return;
+ return $numcurrent;
}
sub check_uncheck_buttons {
@@ -2318,7 +2340,7 @@
$r->print($lt{'nome'}.'<br />');
}
- &topic_bar($r,4,&mt('[_1] member privileges',$ucgpterm));
+ &topic_bar($r,4,&mt('Setting optional privileges for specific group members'));
my $numchgs = &member_privileges_form($r,$action,$formname,$tools,
$toolprivs,$fixedprivs,$userdata,
@@ -2374,20 +2396,18 @@
$nexttext = $$navbuttons{'adme'};
}
- &topic_bar($r,6,&mt('[_1] member privileges',$ucgpterm));
+ &topic_bar($r,6,&mt('Setting optional privileges for specific group members'));
&member_privileges_form($r,$action,$formname,$tools,$toolprivs,
$fixedprivs,$userdata,$usertools,$idx,undef,
$states,$stored,$gpterm);
if ($action eq 'create') {
- if (keys(%{$sectioncount}) > 0) {
- my $img1 = 7;
- my $img2 = 8;
- &mapping_options($r,$action,$formname,$page,$sectioncount,
- $states,$stored,$navbuttons,$img1,$img2,
- $gpterm,$ucgpterm,$crstype);
- }
+ my $img1 = 7;
+ my $img2 = 8;
+ &mapping_options($r,$action,$formname,$page,$sectioncount,
+ $states,$stored,$navbuttons,$img1,$img2,
+ $gpterm,$ucgpterm,$crstype);
}
my $prevtext = $$navbuttons{'gtps'};
&display_navbuttons($r,$formname,$$states{$action}[$page-1],$prevtext,
@@ -2458,21 +2478,22 @@
$usertools,$idx,$memchg,$states,$stored,$gpterm) = @_;
my %lt = &Apache::lonlocal::texthash(
'addp' => 'Additional privileges',
- 'fixp' => 'Fixed privileges',
+ 'fixp' => 'Core privileges',
'oppr' => 'Optional privileges',
- 'func' => 'Function',
- 'forf' => 'For the functionality you have chosen to include '.
- 'there are no optional privileges to set besides '.
- 'the standard privileges.',
- 'algr' => "All $gpterm members will receive the same privileges.",
- 'asno' => "As no $gpterm members are being added, ".
- "there are no specific user privileges to set.",
- 'asng' => "As no $gpterm tools will be made available to users, ".
- "there are no specific user privileges to set.",
- 'nogm' => "No $gpterm member privileges to display or set, ".
- "as you have not indicated that you will be activating,".
- " re-enabling, changing privileges, or adding/removing ".
- "functionality for any current members ",
+ 'func' => 'Tool',
+ 'forf' => 'For the collaborative tools included for group '.
+ 'members being added or modified, '.
+ 'there are no optional privileges to set '.
+ 'for specific members.',
+ 'algr' => 'All group members will receive the same privileges.',
+ 'asno' => 'As no group members are being added, '.
+ 'there are no specific user privileges to set.',
+ 'asng' => 'As no group tools will be made available to users, '.
+ 'there are no specific user privileges to set.',
+ 'nogm' => 'No group member privileges to display or set, '.
+ 'as you have not indicated that you will be activating,'.
+ ' re-enabling, changing privileges, or adding/removing '.
+ 'tools for any current members.',
'full' => 'Fullname',
'user' => 'Username',
'doma' => 'Domain',
@@ -2710,7 +2731,7 @@
}
if ($quota > $maxposs) {
$quota = $maxposs;
- $r->print(&mt('The value you entered for the quota for the file repository in this [_1] exceeded the maximum possible value, so it has been set to [_2] Mb (the maximum possible value).<br />',$gpterm,$maxposs));
+ $r->print(&mt('The value you entered for the quota for the file repository in this [_1] exceeded the maximum possible value, so it has been set to [_2] Mb (the maximum possible value).<br />',$gpterm,sprintf("%.2f",$maxposs)));
}
my %groupinfo = (
description => $esc_description,
@@ -2999,7 +3020,7 @@
}
if ($roster_result eq 'ok') {
$r->print('<br />'.&mt('[_1] membership list updated.',$ucgpterm));
- $r->print('<p>'.&mt("For full access to all of [_1]'s privileges, users will need to log out and log back in.",$groupname).'</p>');
+ $r->print('<p>'.&mt("Any currently logged in course users affected by the changes you made to group membership or privileges for the [_1] group will need to log out and log back in for their LON-CAPA sessions to reflect these changes.",$groupname).'</p>');
} else {
$r->print('<br />'.&mt('An error occurred while updating the [_1] membership list -',$gpterm).$roster_result.'<br />');
}
@@ -3014,7 +3035,7 @@
'gmma' => "$ucgpterm membership mapping to specific sections/roles",
'endi' => "Enable/disable automatic $gpterm enrollment for ".
"users in specified roles and sections",
- 'adds' => "If automatic $gpterm enrollment is enabled, when a user is assigned a ".lc($crstype)."-wide or section-specific role, he/she will automatically be added as a member of the $gpterm, with start and end access dates defined by the default dates set for the $gpterm, unless he/she is already a $gpterm member, with access dates that permit either current or future $gpterm access.",
+ 'adds' => "If automatic $gpterm enrollment is enabled, when a user is newly assigned a ".lc($crstype)."-wide or section-specific role, he/she will automatically be added as a member of the $gpterm, with start and end access dates defined by the default dates set for the $gpterm, unless he/she is already a $gpterm member, with access dates that permit either current or future $gpterm access.",
'drops' => "If automatic $gpterm disenrollment is enabled, when a user's role is expired, access to the $gpterm will be terminated unless the user continues to have other ".lc($crstype)."-wide or section-specific active or future roles which receive automatic membership in the $gpterm.",
'pirs' => "Pick roles and sections for automatic $gpterm enrollment",
'curr' => 'Currently set to',
@@ -3064,6 +3085,8 @@
@sections = sort {$a cmp $b} @sections;
unshift(@sections,'none'); # Put 'no sections' next
unshift(@sections,'all'); # Put 'all' at the front of the list
+ } else {
+ @sections = ('all','none');
}
&topic_bar($r,$image,$$lt{'pirs'});
my @roles = &standard_roles();
@@ -3105,8 +3128,8 @@
}
$r->print(&Apache::loncommon::start_data_table_row().
'<td><input type="checkbox" '.
- 'value="'.$role.'" /></td><td>'.$role.'</td>'.
- $sections_sel.
+ 'value="'.$role.'" /></td><td>'.&mt('Custom role: ').
+ '<i>'.$role.'</i></td>'.$sections_sel.
&Apache::loncommon::end_data_table_row());
}
$r->print(&Apache::loncommon::end_data_table());
@@ -3181,7 +3204,20 @@
<td>'.$$userdata{$user}[$$idx{fullname}].'</td>
<td>'.$uname.'</td>
<td>'.$udom.'</td>
- <td valign="top"><table><tr><td><b>Function</b></td></tr><tr><td><b>Fixed</b></td></tr><tr><td><b>Optional</b></td></tr></table></td>');
+ <td valign="top">
+ <table>
+ <tr>
+ <td><b>'.
+ &mt('Collaborative Tool').'</b></td>
+ </tr>
+ <tr>
+ <td><b>'.&mt('Fixed').'</b></td>
+ </tr>
+ <tr>
+ <td><b>'.&mt('Optional').'</b></td>
+ </tr>
+ </table>
+ </td>');
foreach my $tool (@{$showtools}) {
if (exists($$usertools{$user}{$tool})) {
$r->print('<td valign="top"><table><tr><th colspan="2">'.$tool.'</th></tr>');
--raeburn1153351701--