- |
- ');
+ ');
&check_uncheck_buttons($r,$formname,'defpriv',$lt{'oppr'});
$r->print('
-
- |
-
- |
-
');
} else {
- $r->print(' | | '.$lt{'algm'}.'
');
+ $r->print($lt{'algm'}.'
');
}
&default_privileges($r,$action,$tabcol,$rowColor1,$rowColor2,
$tools,$toolprivs,$fixedprivs,$available);
@@ -2004,10 +1945,6 @@ sub privilege_specificity {
$toolprivs,\@defprivs);
}
}
- $r->print('
- |
-
-');
return;
}
@@ -2180,19 +2117,18 @@ sub change_members_form {
');
- &topic_bar($r,$tabcol,1,$lt{'grse'});
+ &topic_bar($r,1,$lt{'grse'});
$r->print('
|
');
- &print_current_settings($r,$action,$tabcol,$rowColor1,$rowColor2,
- $functions,$startdate,$enddate,$groupname,
- $description,$granularity,$quota,\@available,
- \@unavailable,$gpterm,$ucgpterm);
+ &print_current_settings($r,$action,$functions,$startdate,$enddate,
+ $groupname,$description,$granularity,$quota,
+ \@available,\@unavailable,$gpterm,$ucgpterm);
$r->print('
| | ');
- &topic_bar($r,$tabcol,2,$lt{'mogm'});
+ &topic_bar($r,2,$lt{'mogm'});
$r->print('
|
@@ -2227,114 +2163,33 @@ sub current_membership {
'curf' => 'Current Functionality',
'chpr' => 'Change Privileges'
);
- if (keys(%membership) > 0) {
- my %current = ();
- my %allnames = ();
- my $hastools = 0;
- my $addtools = 0;
- my $num_reenable = 0;
- my $num_activate = 0;
- my $num_expire = 0;
- foreach my $key (sort(keys(%membership))) {
- if ($key =~ /^\Q$groupname\E:([^:]+):([^:]+)$/) {
- my $uname = $1;
- my $udom = $2;
- my $user = $uname.':'.$udom;
- my($end,$start,@userprivs) = split(/:/,$membership{$key});
- unless ($start == -1) {
- $allnames{$udom}{$uname} = 1;
- $current{$user} = {
- uname => $uname,
- udom => $udom,
- start => &Apache::lonlocal::locallocaltime($start),
- currtools => [],
- newtools => [],
- };
-
- if ($end == 0) {
- $current{$user}{end} = 'No end date';
- } else {
- $current{$user}{end} =
- &Apache::lonlocal::locallocaltime($end);
- }
- my $now = time;
- if (($end > 0) && ($end < $now)) {
- $current{$user}{changestate} = 'reenable';
- $num_reenable++;
- } elsif (($start > $now)) {
- $current{$user}{changestate} = 'activate';
- $num_activate ++;
- } else {
- $current{$user}{changestate} = 'expire';
- $num_expire ++;
- }
- if (@userprivs > 0) {
- foreach my $tool (sort(keys(%{$fixedprivs}))) {
- foreach my $priv (keys(%{$$fixedprivs{$tool}})) {
- if (grep/^$priv$/,@userprivs) {
- push(@{$current{$user}{currtools}},$tool);
- last;
- }
- }
- }
- $hastools = 1;
- }
- if (@{$available} > 0) {
- if (@{$current{$user}{currtools}} > 0) {
- if ("@{$available}" ne "@{$current{$user}{currtools}}") {
- foreach my $tool (@{$available}) {
- unless (grep/^$tool$/,@{$current{$user}{currtools}}) {
- push(@{$current{$user}{newtools}},$tool);
- }
- }
- }
- } else {
- @{$current{$user}{newtools}} = @{$available};
- }
- if (@{$current{$user}{newtools}} > 0) {
- $addtools = 1;
- }
- }
- }
- }
- }
- if (keys(%current) > 0) {
- my %idhash;
- foreach my $udom (keys(%allnames)) {
- %{$idhash{$udom}} = &Apache::lonnet::idrget($udom,
- keys(%{$allnames{$udom}}));
- foreach my $uname (keys(%{$idhash{$udom}})) {
- $current{$uname.':'.$udom}{'id'} = $idhash{$udom}{$uname};
- }
- foreach my $uname (keys(%{$allnames{$udom}})) {
- $current{$uname.':'.$udom}{'fullname'} =
- &Apache::loncommon::plainname($uname,$udom,
- 'lastname');
- }
- }
- $r->print('
+ my ($current,$hastools,$addtools,$num_reenable,$num_activate,$num_expire) =
+ &Apache::longroup::group_memberlist($cdom,$cnum,$groupname,$fixedprivs,
+ $available);
+ if (keys(%{$current}) > 0) {
+ $r->print('
|
');
- if ($num_expire) {
- &check_uncheck_buttons($r,$formname,'expire',$lt{'expi'});
- }
- if ($num_reenable) {
- &check_uncheck_buttons($r,$formname,'reenable',$lt{'reen'});
- }
- if ($num_activate) {
- &check_uncheck_buttons($r,$formname,'activate',$lt{'acti'});
+ if ($num_expire) {
+ &check_uncheck_buttons($r,$formname,'expire',$lt{'expi'});
+ }
+ if ($num_reenable) {
+ &check_uncheck_buttons($r,$formname,'reenable',$lt{'reen'});
+ }
+ if ($num_activate) {
+ &check_uncheck_buttons($r,$formname,'activate',$lt{'acti'});
+ }
+ &check_uncheck_buttons($r,$formname,'deletion',$lt{'dele'});
+ if (@{$available} > 0) {
+ if ($specificity eq 'Yes') {
+ &check_uncheck_buttons($r,$formname,'changepriv',$lt{'chpr'});
}
- &check_uncheck_buttons($r,$formname,'deletion',$lt{'dele'});
- if (@{$available} > 0) {
- if ($specificity eq 'Yes') {
- &check_uncheck_buttons($r,$formname,'changepriv',$lt{'chpr'});
- }
- if ($granularity eq 'Yes') {
- $r->print(&check_uncheck_tools($r,$available));
- $r->print('
+ if ($granularity eq 'Yes') {
+ $r->print(&check_uncheck_tools($r,$available));
+ $r->print('
|
');
- }
}
- $r->print(<<"END");
+ }
+ $r->print(<<"END");
|
@@ -2362,8 +2217,8 @@ sub current_membership {
|
END
- $r->print(&Apache::lonhtmlcommon::start_pick_box());
- $r->print(<<"END");
+ $r->print(&Apache::lonhtmlcommon::start_pick_box());
+ $r->print(<<"END");
$lt{'actn'} |
@@ -2375,135 +2230,134 @@ END
$lt{'stda'} |
$lt{'enda'} |
END
- my $colspan = 0;
- if ($hastools) {
- $r->print(''.$lt{'curf'}.' | ');
- $colspan ++;
- }
- if ($addtools) {
- $r->print('Additional Functionality | ');
- $colspan ++;
- }
- $r->print(' ');
- if ($colspan) {
- if ($granularity eq 'Yes') {
- $r->print('
+ my $colspan = 0;
+ if ($hastools) {
+ $r->print(''.$lt{'curf'}.' | ');
+ $colspan ++;
+ }
+ if ($addtools) {
+ $r->print('Additional Functionality | ');
+ $colspan ++;
+ }
+ $r->print(' ');
+ if ($colspan) {
+ if ($granularity eq 'Yes') {
+ $r->print('
|
'.&mt('All:').
' ');
- foreach my $tool (@{$available}) {
- $r->print(' | ');
}
+ $r->print('');
}
- my %Sortby = ();
- foreach my $user (sort(keys(%current))) {
- if ($env{'form.sortby'} eq 'fullname') {
- push(@{$Sortby{$current{$user}{fullname}}},$user);
- } elsif ($env{'form.sortby'} eq 'username') {
- push(@{$Sortby{$current{$user}{uname}}},$user);
- } elsif ($env{'form.sortby'} eq 'domain') {
- push(@{$Sortby{$current{$user}{udom}}},$user);
- } elsif ($env{'form.sortby'} eq 'id') {
- push(@{$Sortby{$current{$user}{id}}},$user);
+ }
+ my %Sortby = ();
+ foreach my $user (sort(keys(%{$current}))) {
+ if ($env{'form.sortby'} eq 'fullname') {
+ push(@{$Sortby{$$current{$user}{fullname}}},$user);
+ } elsif ($env{'form.sortby'} eq 'username') {
+ push(@{$Sortby{$$current{$user}{uname}}},$user);
+ } elsif ($env{'form.sortby'} eq 'domain') {
+ push(@{$Sortby{$$current{$user}{udom}}},$user);
+ } elsif ($env{'form.sortby'} eq 'id') {
+ push(@{$Sortby{$$current{$user}{id}}},$user);
+ } else {
+ push(@{$Sortby{$$current{$user}{fullname}}},$user);
+ }
+ }
+ my $rowNum = 0;
+ my $rowColor;
+ foreach my $key (sort(keys(%Sortby))) {
+ foreach my $user (@{$Sortby{$key}}) {
+ if ($rowNum %2 == 1) {
+ $rowColor = $rowColor1;
} else {
- push(@{$Sortby{$current{$user}{fullname}}},$user);
+ $rowColor = $rowColor2;
}
- }
- my $rowNum = 0;
- my $rowColor;
- foreach my $key (sort(keys(%Sortby))) {
- foreach my $user (@{$Sortby{$key}}) {
- if ($rowNum %2 == 1) {
- $rowColor = $rowColor1;
- } else {
- $rowColor = $rowColor2;
- }
- my $id = $current{$user}{id};
- my $fullname = $current{$user}{fullname};
- my $udom = $current{$user}{udom};
- my $uname = $current{$user}{uname};
- my $start = $current{$user}{start};
- my $end = $current{$user}{end};
- $r->print('
- ');
- if ($current{$user}{changestate} eq 'reenable') {
- $r->print(''.
+ my $id = $$current{$user}{id};
+ my $fullname = $$current{$user}{fullname};
+ my $udom = $$current{$user}{udom};
+ my $uname = $$current{$user}{uname};
+ my $start = $$current{$user}{start};
+ my $end = $$current{$user}{end};
+ $r->print('
+ ');
+ if ($$current{$user}{changestate} eq 'reenable') {
+ $r->print(''.
''.
$lt{'reen'}.' ');
- } elsif ($current{$user}{changestate} eq 'expire') {
- $r->print(''.
+ } elsif ($$current{$user}{changestate} eq 'expire') {
+ $r->print(''.
''.
$lt{'expi'}.' ');
- } elsif ($current{$user}{changestate} eq 'activate') {
- $r->print(''.
+ } elsif ($$current{$user}{changestate} eq 'activate') {
+ $r->print(''.
''.
$lt{'acti'}.' ');
- }
- $r->print(''.
+ }
+ $r->print(''.
''.
$lt{'dele'}.'');
- if ($specificity eq 'Yes') {
- $r->print(' '.
+ if ($specificity eq 'Yes') {
+ $r->print(' '.
''.$lt{'chpr'}.
'');
- }
- $r->print('
+ }
+ $r->print('
|
'.
$fullname.' | '.$uname.' | '.
$udom.' | '.$id.' | '.$start.
' | '.$end.' | ');
- if ($hastools) {
- $r->print(''.
+ if ($hastools) {
+ $r->print(''.
' ');
- foreach my $tool (@{$current{$user}{currtools}}) {
- if ($granularity eq 'Yes') {
- $r->print('print(''.$tool.'');
- } else {
- $r->print('print(''.$tool);
- }
- $r->print(' ');
- }
- $r->print(' | ');
+ }
+ $r->print(' ');
}
- if ($addtools) {
- $r->print('');
- if ($granularity eq 'Yes') {
- foreach my $tool (@{$current{$user}{newtools}}) {
- $r->print('print(' | ');
+ }
+ if ($addtools) {
+ $r->print('');
+ if ($granularity eq 'Yes') {
+ foreach my $tool (@{$$current{$user}{newtools}}) {
+ $r->print(''.$tool.
' ');
- }
- } else {
- foreach my $tool (@{$current{$user}{newtools}}) {
- $r->print('print(''.$tool.
' ');
- }
}
- $r->print(' | ');
}
- $r->print(' | '."\n");
- $rowNum ++;
+ $r->print(' | ');
}
+ $r->print(' '."\n");
+ $rowNum ++;
}
- $r->print(&Apache::lonhtmlcommon::end_pick_box());
- $r->print('
+ }
+ $r->print(&Apache::lonhtmlcommon::end_pick_box());
+ $r->print('
');
- }
}
return;
}
@@ -2547,7 +2401,7 @@ sub change_privs_form {
$nexttext = $$navbuttons{'mose'};
}
$r->print('
');
- &topic_bar($r,$tabcol,3,&mt('Members to delete or expire'));
+ &topic_bar($r,3,&mt('Members to delete or expire'));
my $exp_or_del = 0;
if (ref($$memchg{'deletion'}) eq 'ARRAY') {
if (@{$$memchg{'deletion'}} > 0) {
@@ -2576,7 +2430,7 @@ sub change_privs_form {
' | ');
}
- &topic_bar($r,$tabcol,4,&mt('[_1] member privileges',$ucgpterm));
+ &topic_bar($r,4,&mt('[_1] member privileges',$ucgpterm));
my $numchgs = &member_privileges_form($r,$tabcol,$action,$formname,$tools,
$toolprivs,$fixedprivs,$userdata,
@@ -2599,34 +2453,18 @@ sub add_members_form {
my ($r,$tabcol,$action,$formname,$page,$startdate,$enddate,$groupname,
$description,$granularity,$quota,$sectioncount,$tools,$functions,
$stored,$states,$navbuttons,$rowColor1,$rowColor2,$gpterm,$ucgpterm)=@_;
- $r->print('
-
-
- |
-
-');
+ $r->print(' ');
my @available = ();
my @unavailable = ();
&check_tools($functions,$tools,\@available,\@unavailable);
- &print_current_settings($r,$action,$tabcol,$rowColor1,$rowColor2,
- $functions,$startdate,$enddate,$groupname,
- $description,$granularity,$quota,\@available,
- \@unavailable,$gpterm,$ucgpterm);
- $r->print('
- |
-
-
- |
- ');
-
- &membership_options($r,$action,$formname,$tabcol,$sectioncount,1,$gpterm,
- $ucgpterm);
+ &print_current_settings($r,$action,$functions,$startdate,$enddate,
+ $groupname,$description,$granularity,$quota,
+ \@available,\@unavailable,$gpterm,$ucgpterm);
+ &membership_options($r,$action,$formname,$sectioncount,1,$gpterm,$ucgpterm);
my $nexttext = $$navbuttons{'gtns'};
my $prevtext = $$navbuttons{'gtpp'};
&display_navbuttons($r,$formname,$$states{$action}[$page-1],$prevtext,
$$states{$action}[$page+1],$nexttext);
- $r->print('
- ');
return;
}
@@ -2652,7 +2490,7 @@ sub choose_privs_form {
}
$r->print('
');
- &topic_bar($r,$tabcol,6,&mt('[_1] member privileges',$ucgpterm));
+ &topic_bar($r,6,&mt('[_1] member privileges',$ucgpterm));
&member_privileges_form($r,$tabcol,$action,$formname,$tools,$toolprivs,
$fixedprivs,$userdata,$usertools,$idx,undef,
@@ -2995,6 +2833,22 @@ sub write_group_data {
'specificity','autoadd','autodrop','quota');
my @mult_attributes = ('roles','types','sectionpick','defpriv');
+ my ($crsquota,$freespace,$maxposs) = &get_quota_constraints($action,
+ $stored);
+ my $quota = $env{'form.quota'};
+
+ $quota =~ s/^\s*([^\s]*)\s*$/$1/;
+ if ($quota eq '') {
+ $quota = 0;
+ }
+ if ($quota !~ /^\d*\.?\d*$/) {
+ $quota = 0;
+ $r->print(&mt('The value you entered for the quota for the file repository in this [_1] contained invalid characters, so it has been set to 0 Mb. You can change this by modifying the [_1] settings. ',$gpterm));
+ }
+ 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). ',$gpterm,$maxposs));
+ }
my %groupinfo = (
description => $esc_description,
startdate => $startdate,
@@ -3006,8 +2860,9 @@ sub write_group_data {
specificity => $specificity,
autoadd => $env{'form.autoadd'},
autodrop => $env{'form.autodrop'},
- quota => $env{'form.quota'},
+ quota => $quota,
);
+
foreach my $func (keys(%{$functions})) {
my $status;
if (grep(/^$func$/,@{$tools})) {
@@ -3058,7 +2913,7 @@ sub write_group_data {
$description,$tools,\%groupinfo,
$gpterm,$ucgpterm,$crstype);
if ($result ne 'ok') {
- $r->print(&mt('A problem occurred when creating folders for the new [_1]. [_2].',$gpterm,$result));
+ $r->print(&mt('A problem occurred when creating folders for the new [_1]. [_2]. ',$gpterm,$result));
}
$r->print(&mt('[_1] [_2] was created. ',$ucgpterm,$groupname));
} else {
@@ -3072,7 +2927,7 @@ sub write_group_data {
&Apache::lonnet::logthis("Failed to store $gpterm $groupname ".
'in '.lc($crstype).': '.$cnum.
' in domain: '.$cdom);
- $r->print(&mt('An error occurred when [_1] the new [_2]. '.
+ $r->print(&mt('An error occurred when [_1] the [_2]. '.
'Please try again.',$actiontype{$action},$gpterm));
}
return $result;
@@ -3192,17 +3047,6 @@ sub process_membership {
my $start = $startdate;
my $end = $enddate;
if ($state eq 'memresult') {
- if ($curr_privs{$user} eq $group_privs{$user}) {
- push(@unchanged,$user);
- next;
- }
- if (exists($curr_start{$user})) {
- $start = $curr_start{$user};
- }
- if (exists($curr_end{$user})) {
- $end = $curr_end{$user};
- }
- $type = 'modified';
if (@activate > 0) {
if (grep/^$user$/,@activate) {
$start = $now;
@@ -3217,6 +3061,19 @@ sub process_membership {
$type = 'reenabled';
}
}
+ if ($type eq '') {
+ if ($curr_privs{$user} eq $group_privs{$user}) {
+ push(@unchanged,$user);
+ next;
+ }
+ if (exists($curr_start{$user})) {
+ $start = $curr_start{$user};
+ }
+ if (exists($curr_end{$user})) {
+ $end = $curr_end{$user};
+ }
+ $type = 'modified';
+ }
} else {
$type = 'added';
}
@@ -3325,7 +3182,7 @@ sub automapping {
if (exists($$stored{'autodrop'})) {
$drop = $$stored{'autodrop'};
}
- &topic_bar($r,$tabcol,$image,$$lt{'endi'});
+ &topic_bar($r,$image,$$lt{'endi'});
$r->print('
|
@@ -3379,7 +3236,7 @@ sub mapping_settings {
unshift(@sections,'none'); # Put 'no sections' next
unshift(@sections,'all'); # Put 'all' at the front of the list
}
- &topic_bar($r,$tabcol,$image,$$lt{'pirs'});
+ &topic_bar($r,$image,$$lt{'pirs'});
$r->print('
|
@@ -3675,12 +3532,12 @@ sub map_updater {
my $newmapurl=&Apache::lonnet::finishuserfileupload($cnum,$cdom,$itemname,
$newfile);
if ($newmapurl !~ m|^/uploaded|) {
- $outcome = "Error uploading new folder ($newfile): $newmapurl";
+ $outcome = &mt('Error uploading new folder.')." ($newfile): $newmapurl".' ';
return $outcome;
}
my ($errtext,$fatal)=&Apache::lonratedt::mapread($parentmap);
if ($fatal) {
- $outcome = "Error reading contents of parent folder ($parentmap): $errtext\n";
+ $outcome = &mt('Error reading contents of parent folder')." ($parentmap): $errtext".' ';
return $outcome;
} else {
my $newidx=&Apache::lonratedt::getresidx($newmapurl);
@@ -3689,7 +3546,7 @@ sub map_updater {
$Apache::lonratedt::order[1+$#Apache::lonratedt::order]=$newidx;
my ($outtext,$errtext) = &Apache::lonratedt::storemap($parentmap,1);
if ($errtext) {
- $outcome = "Error storing updated parent folder ($parentmap): $errtext\n";
+ $outcome = &mt('Error storing updated parent folder')." ($parentmap): $errtext".' ';
return $outcome;
}
}
@@ -3710,7 +3567,7 @@ sub new_map {
sub parm_setter {
my ($navmap,$cdom,$url,$groupname) = @_;
- my %parmresult;
+ my $allresults;
my %hide_settings = (
'course' => {
'num' => 13,
@@ -3725,15 +3582,18 @@ sub parm_setter {
my $res = $navmap->getResourceByUrl($url);
my $symb = $res->symb();
foreach my $level (keys(%hide_settings)) {
- $parmresult{$level} = &Apache::lonparmset::storeparm_by_symb($symb,
+ my $parmresult = &Apache::lonparmset::storeparm_by_symb($symb,
'0_hiddenresource',
$hide_settings{$level}{'num'},
$hide_settings{$level}{'set'},
'string_yesno',undef,$cdom,
undef,undef,
$hide_settings{$level}{'extra'});
+ if ($parmresult) {
+ $allresults .= $level.': '.$parmresult;
+ }
}
- return %parmresult;
+ return $allresults;
}
sub create_homepage {
@@ -3839,22 +3699,12 @@ sub validate_groupname {
}
sub topic_bar {
- my ($r,$tabcol,$imgnum,$title) = @_;
+ my ($r,$imgnum,$title) = @_;
$r->print('
-
- |
-
-
-
-
- |
- '.$title.'
- |
- |
-
-
- |
-
+
+ 
+ '.$title.'
+
');
return;
}
|
|