');
&mapping_options($r,$action,$formname,$page,$tabcol,$sectioncount,
$states,$stored,$navbuttons,4,5,$rowColor1,
- $rowColor2);
+ $rowColor2,$gpterm,$ucgpterm,$crstype);
$nexttext = $$navbuttons{'mose'};
}
$prevtext = $$navbuttons{'gtpp'};
@@ -1104,18 +1191,25 @@ sub general_settings_form {
}
sub groupsettings_options {
- my ($r,$tabcol,$functions,$action,$formname,$stored,$image) = @_;
+ my ($r,$tabcol,$functions,$action,$formname,$stored,$image,$gpterm,
+ $ucgpterm,$crstype) = @_;
my %lt = &Apache::lonlocal::texthash(
- 'gdat' => 'Group open and close dates',
- 'sten' => 'Set a start date/time and end date/time for the group',
- 'gfun' => 'Group functionality',
- 'gnde' => 'Group name, description and available functionality',
+ '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' => 'Group Name',
- 'doyo' => 'Do you want to assign different functionality '.
- 'to different group members?',
+ 'gnam' => "$ucgpterm Name",
+ 'doyo' => "Do you want to assign different functionality ".
+ "to different $gpterm members?",
);
+ my $crsquota = $env{'course.'.$env{'request.course.id'}.'.internal.coursequota'};
+ if ($crsquota eq '') {
+ $crsquota = 20;
+ }
+ my $freespace = $crsquota - &Apache::longroup::sum_quotas();
+ my $maxposs = $$stored{'quota'} + $freespace;
&topic_bar($r,$tabcol,$image,$lt{'gnde'});
$r->print('
@@ -1176,8 +1270,8 @@ END
-
Granularity:
-
'.$lt{'doyo'}.' ');
+
'.&mt('Granularity:').'
+
'.$lt{'doyo'}.' ');
if ($action eq 'modify') {
$r->print(' ('.&mt('Currently set to "[_1]"',
$$stored{'granularity'}).')');
@@ -1185,6 +1279,30 @@ END
$r->print('
+
+
'.&mt('Disk quota: ').'
');
+ if ($action eq 'create') {
+ $r->print(&mt('If you enable the file repository for the [_1], allocate a disk quota.',$gpterm));
+ } else {
+ $r->print(&mt('Quota allocated to file repository:'));
+ }
+ $r->print(' Mb');
+ if ($action eq 'create') {
+ $r->print(' '.
+ &mt('A total of [_1] Mb is shared between all [_2]s in the '.
+ '[_3], and [_4] Mb are currently unallocated.',$crsquota,
+ $gpterm,lc($crstype),$freespace));
+ } else {
+ $r->print(' ('.&mt('The quota is currently [_1] Mb',
+ $$stored{'quota'}).').');
+
+ $r->print(' '.&mt('The quota can be increased to [_1] Mb, '.
+ 'by adding all unallocated space for [_2]s in the [_3].',
+ $maxposs,$gpterm,lc($crstype)));
+ }
+ $r->print('
+
+
@@ -1193,27 +1311,30 @@ END
}
sub membership_options {
- my ($r,$action,$state,$tabcol,$sectioncount,$image) = @_;
+ my ($r,$action,$state,$tabcol,$sectioncount,$image,$gpterm,$ucgpterm) = @_;
+ my $crstype = &Apache::loncommon::course_type();
my %lt = &Apache::lonlocal::texthash(
'pipa' => 'Pick parameters to generate membership list',
- 'gmem' => 'Group membership options',
+ 'gmem' => "$ucgpterm membership options",
'picr' => 'Pick the criteria to use to build a list of '.
- 'course users from which you will select ',
- '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 group, do not make any selections',
+ lc($crstype).' users from which you will select ',
+ 'meof' => "members of the new $gpterm.",
+ 'admg' => "additional members of the $gpterm.",
+ '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.",
'acty' => 'Access types',
- 'coro' => 'Course roles',
- 'cose' => 'Course sections',
+ 'coro' => $crstype.' roles',
+ 'cose' => $crstype.' sections',
);
my %status_types = (
active => &mt('Currently has access'),
previous => &mt('Previously had access'),
future => &mt('Will have future access'),
);
-
- my @roles = ('st','cc','in','ta','ep','cr');
+
+ #FIXME need to plumb around for the various cr roles defined by the user
+ my @roles = ('st','cc','in','ta','ep');
my @sections = keys(%{$sectioncount});
@@ -1224,7 +1345,7 @@ sub membership_options {
'.$lt{'gmem'}.' '.$lt{'picr'});
if ($action eq 'create') {
- $r->print($lt{'meof'}.' '.$lt{'ifno'});
+ $r->print($lt{'meof'}.' '.$lt{'ifno'}.' '.$lt{'asub'});
} else {
$r->print($lt{'admg'});
}
@@ -1248,8 +1369,8 @@ sub membership_options {
$r->print(&Apache::lonhtmlcommon::role_select_row(\@roles));
if (@sections > 0) {
@sections = sort {$a cmp $b} @sections;
- 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
+ unshift(@sections,'all'); # Put 'all' at the front of the list
$r->print('
');
@@ -1270,12 +1391,12 @@ sub sections_selection {
$numvisible = @{$sections};
}
foreach my $sec (@{$sections}) {
- if ($sec eq '_all') {
- $section_sel .= ' all sections'."\n";
- } elsif ($sec eq '_nosec') {
- $section_sel .= ' no section'."\n";
+ if ($sec eq 'all') {
+ $section_sel .= ' '."\n";
+ } elsif ($sec eq 'none') {
+ $section_sel .= ' '."\n";
} else {
- $section_sel .= ' '.$sec."\n";
+ $section_sel .= ' \n";
}
}
my $output = '
@@ -1286,9 +1407,9 @@ sub sections_selection {
}
sub access_date_settings {
- my ($r,$tabcol,$action,$formname,$stored,$image) = @_;
+ my ($r,$tabcol,$action,$formname,$stored,$image,$gpterm,$ucgpterm) = @_;
my %lt = &Apache::lonlocal::texthash(
- 'sten' => 'Default start and end dates for group access',
+ 'sten' => "Default start and end dates for $gpterm access",
);
my $starttime = time;
my $endtime = time+(6*30*24*60*60); # 6 months from now, approx
@@ -1318,16 +1439,17 @@ sub access_date_settings {
sub choose_members_form {
my ($r,$cdom,$cnum,$tabcol,$action,$formname,$page,$groupname,$description,
- $granularity,$startdate,$enddate,$tools,$fixedprivs,$toolprivs,
+ $granularity,$quota,$startdate,$enddate,$tools,$fixedprivs,$toolprivs,
$functions,$users,$userdata,$idx,$stored,$states,$navbuttons,
- $rowColor1,$rowColor2) = @_;
+ $rowColor1,$rowColor2,$gpterm,$ucgpterm,$crstype) = @_;
my @regexps = ('user_','userpriv_','sec_');
my %origmembers;
$r->print(&Apache::lonhtmlcommon::echo_form_input(
['origin','action','state','page','member','specificity','branch',
'defpriv','autorole','autoadd','autodrop','sortby','togglefunc'],
\@regexps));
- my $earlyout = &validate_groupname($groupname,$action,$cdom,$cnum);
+ my $earlyout = &validate_groupname($groupname,$action,$cdom,$cnum,$gpterm,
+ $ucgpterm,$crstype);
$r->print('
@@ -1348,8 +1470,8 @@ sub choose_members_form {
if ($action eq 'create') {
&print_current_settings($r,$action,$tabcol,$rowColor1,$rowColor2,
$functions,$startdate,$enddate,$groupname,
- $description,$granularity,\@available,
- \@unavailable);
+ $description,$granularity,$quota,\@available,
+ \@unavailable,$gpterm,$ucgpterm);
$specimg = 4;
$memimg = 5;
} else {
@@ -1371,11 +1493,11 @@ sub choose_members_form {
}
&privilege_specificity($r,$tabcol,$rowColor1,$rowColor2,$action,
$specimg,$tools,$stored,$toolprivs,
- $fixedprivs,\@available,$formname);
+ $fixedprivs,\@available,$formname,$gpterm,$ucgpterm);
my $newusers = &pick_new_members($r,$action,$formname,$tabcol,$rowColor1,
$rowColor2,\@available,$idx,$stored,
$memimg,$users,$userdata,$granularity,
- \%origmembers);
+ \%origmembers,$gpterm,$ucgpterm);
if ($newusers || $action eq 'create') {
&display_navbuttons($r,$formname,$$states{$action}[$page-1],
$$navbuttons{'gtps'},$$states{$action}[$page+1],
@@ -1428,17 +1550,19 @@ sub check_tools {
sub print_current_settings {
my ($r,$action,$tabcol,$rowColor1,$rowColor2,$functions,$startdate,$enddate,
- $groupname,$description,$granularity,$available,$unavailable) =@_;
+ $groupname,$description,$granularity,$quota,$available,$unavailable,
+ $gpterm,$ucgpterm) = @_;
my %lt = &Apache::lonlocal::texthash(
- grna => 'Group Name',
+ grna => "$ucgpterm Name",
desc => 'Description',
- grfn => 'Group Functions',
+ grfn => "$ucgpterm Functions",
gran => 'Granularity',
+ quot => 'File quota',
dfac => 'Default access dates',
- ygrs => 'Your group selections',
- tfwa => 'The following settings will apply to the group:',
- difn => 'Different functionality for different users:',
+ ygrs => "Your $gpterm selections",
+ tfwa => "The following settings will apply to the $gpterm:",
+ difn => 'Different functionality for different members:',
stda => 'Start date',
enda => 'End date:',
);
@@ -1469,6 +1593,7 @@ sub print_current_settings {
'.$lt{'desc'}.'
'.$lt{'grfn'}.'
'.$lt{'gran'}.'
+
'.$lt{'quot'}.'
'.$lt{'dfac'}.'
@@ -1515,7 +1640,8 @@ sub print_current_settings {
$r->print(<<"END");
$lt{'difn'}
- $granularity
+ $granularity
+
$quota Mb
$lt{'stda'} $showstart $lt{'enda'} $showend
@@ -1531,16 +1657,17 @@ END
sub pick_new_members {
my ($r,$action,$formname,$tabcol,$rowColor1,$rowColor2,$available,$idx,
- $stored,$img,$users,$userdata,$granularity,$origmembers) = @_;
+ $stored,$img,$users,$userdata,$granularity,$origmembers,$gpterm,
+ $ucgpterm) = @_;
my %lt = &Apache::lonlocal::texthash(
- 'gpme' => 'Group membership',
+ 'gpme' => "$ucgpterm membership",
'addm' => 'Add members',
'setf' => 'Set functionality',
'func' => 'Functionality',
'nome' => 'No members to add at this time.',
- '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 group.',
+ '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.",
'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.',
@@ -1606,6 +1733,7 @@ sub pick_new_members {