version 1.41, 2006/07/07 17:11:04
|
version 1.45, 2006/07/07 20:31:09
|
Line 103 sub handler {
|
Line 103 sub handler {
|
} |
} |
if ($action eq 'create' || $action eq 'modify' || $action eq 'view') { |
if ($action eq 'create' || $action eq 'modify' || $action eq 'view') { |
if ($view_permission || $manage_permission) { |
if ($view_permission || $manage_permission) { |
&group_administration($r,$action,$state,$cdom,$cnum,$function, |
&group_administration($r,$action,$state,$cdom,$cnum, |
$tabcol,\%functions,\%idx,$view_permission, |
$tabcol,\%functions,\%idx,$view_permission, |
$manage_permission,$rowColor1,$rowColor2, |
$manage_permission,$rowColor1,$rowColor2, |
$gpterm,$ucgpterm,$crstype); |
$gpterm,$ucgpterm,$crstype); |
Line 348 END
|
Line 348 END
|
} |
} |
|
|
sub group_administration { |
sub group_administration { |
my ($r,$action,$state,$cdom,$cnum,$function,$tabcol,$functions,$idx, |
my ($r,$action,$state,$cdom,$cnum,$tabcol,$functions,$idx, |
$view_permission,$manage_permission,$rowColor1,$rowColor2,$gpterm, |
$view_permission,$manage_permission,$rowColor1,$rowColor2,$gpterm, |
$ucgpterm,$crstype) = @_; |
$ucgpterm,$crstype) = @_; |
my %sectioncount = (); |
my %sectioncount = (); |
Line 869 function changeSort(caller) {
|
Line 869 function changeSort(caller) {
|
\%sectioncount,$groupname,$description,$functions, |
\%sectioncount,$groupname,$description,$functions, |
\@tools,$toolprivs,$fixedprivs,$startdate,$enddate, |
\@tools,$toolprivs,$fixedprivs,$startdate,$enddate, |
\%users,\%userdata,$idx,\%memchg,\%usertools, |
\%users,\%userdata,$idx,\%memchg,\%usertools, |
$function,$view_permission,$manage_permission, |
$view_permission,$manage_permission, |
\%stored,$granularity,$quota,$specificity,\@types,\@roles, |
\%stored,$granularity,$quota,$specificity,\@types,\@roles, |
\@sections,\%states,\%navbuttons,$rowColor1,$rowColor2, |
\@sections,\%states,\%navbuttons,$rowColor1,$rowColor2, |
$gpterm,$ucgpterm,$crstype); |
$gpterm,$ucgpterm,$crstype); |
Line 962 sub retrieve_settings {
|
Line 962 sub retrieve_settings {
|
sub display_control { |
sub display_control { |
my ($r,$cdom,$cnum,$tabcol,$action,$state,$page,$sectioncount,$groupname, |
my ($r,$cdom,$cnum,$tabcol,$action,$state,$page,$sectioncount,$groupname, |
$description,$functions,$tools,$toolprivs,$fixedprivs,$startdate, |
$description,$functions,$tools,$toolprivs,$fixedprivs,$startdate, |
$enddate,$users,$userdata,$idx,$memchg,$usertools,$function, |
$enddate,$users,$userdata,$idx,$memchg,$usertools, |
$view_permission,$manage_permission,$stored,$granularity,$quota, |
$view_permission,$manage_permission,$stored,$granularity,$quota, |
$specificity,$types,$roles,$sections,$states,$navbuttons,$rowColor1, |
$specificity,$types,$roles,$sections,$states,$navbuttons,$rowColor1, |
$rowColor2,$gpterm,$ucgpterm,$crstype) = @_; |
$rowColor2,$gpterm,$ucgpterm,$crstype) = @_; |
Line 981 sub display_control {
|
Line 981 sub display_control {
|
$stored,$states,$navbuttons,$rowColor1, |
$stored,$states,$navbuttons,$rowColor1, |
$rowColor2,$gpterm,$ucgpterm,$crstype); |
$rowColor2,$gpterm,$ucgpterm,$crstype); |
} elsif ($state eq 'pick_privs') { |
} elsif ($state eq 'pick_privs') { |
&choose_privs_form($r,$cdom,$cnum,$tabcol,$action,$state,$page, |
&choose_privs_form($r,$cdom,$cnum,$action,$state,$page, |
$startdate,$enddate,$tools,$functions, |
$startdate,$enddate,$tools,$functions, |
$toolprivs,$fixedprivs,$userdata,$usertools, |
$toolprivs,$fixedprivs,$userdata,$usertools, |
$idx,$states,$stored,$sectioncount,$navbuttons, |
$idx,$states,$stored,$sectioncount,$navbuttons, |
$rowColor1,$rowColor2,$gpterm,$ucgpterm, |
$gpterm,$ucgpterm,$crstype); |
$crstype); |
|
} elsif ($state eq 'result') { |
} elsif ($state eq 'result') { |
&process_request($r,$cdom,$cnum,$tabcol,$action,$state,$page, |
&process_request($r,$cdom,$cnum,$action,$state,$page, |
$groupname,$description,$specificity,$userdata, |
$groupname,$description,$specificity,$userdata, |
$startdate,$enddate,$tools,$functions, |
$startdate,$enddate,$tools,$functions, |
$toolprivs,$usertools,$idx,$types,$roles, |
$toolprivs,$usertools,$idx,$types,$roles, |
$sections,$states,$navbuttons,$memchg, |
$sections,$states,$navbuttons,$memchg, |
$sectioncount,$stored,$rowColor1,$rowColor2, |
$sectioncount,$stored,$gpterm,$ucgpterm,$crstype); |
$gpterm,$ucgpterm,$crstype); |
|
} |
} |
} elsif ($action eq 'modify') { |
} elsif ($action eq 'modify') { |
my $groupname = $env{'form.groupname'}; |
my $groupname = $env{'form.groupname'}; |
Line 1037 sub display_control {
|
Line 1035 sub display_control {
|
$idx,$states,$stored,$sectioncount,$navbuttons, |
$idx,$states,$stored,$sectioncount,$navbuttons, |
$rowColor1,$rowColor2,$gpterm,$ucgpterm,$crstype); |
$rowColor1,$rowColor2,$gpterm,$ucgpterm,$crstype); |
} elsif ($state eq 'change_privs') { |
} elsif ($state eq 'change_privs') { |
&change_privs_form($r,$cdom,$cnum,$tabcol,$action,$state,$page, |
&change_privs_form($r,$cdom,$cnum,$action,$state,$page, |
$startdate,$enddate,$tools,$functions, |
$startdate,$enddate,$tools,$functions, |
$toolprivs,$fixedprivs,$userdata,$usertools, |
$toolprivs,$fixedprivs,$userdata,$usertools, |
$memchg,$idx,$states,$stored,$sectioncount, |
$memchg,$idx,$states,$stored,$sectioncount, |
$navbuttons,$rowColor1,$rowColor2,$gpterm, |
$navbuttons,$gpterm,$ucgpterm); |
$ucgpterm); |
|
} elsif ($state eq 'chgresult' || $state eq 'memresult' || |
} elsif ($state eq 'chgresult' || $state eq 'memresult' || |
$state eq 'addresult') { |
$state eq 'addresult') { |
&process_request($r,$cdom,$cnum,$tabcol,$action,$state,$page, |
&process_request($r,$cdom,$cnum,$action,$state,$page, |
$groupname,$description,$specificity,$userdata, |
$groupname,$description,$specificity,$userdata, |
$startdate,$enddate,$tools,$functions, |
$startdate,$enddate,$tools,$functions, |
$toolprivs,$usertools,$idx,$types,$roles, |
$toolprivs,$usertools,$idx,$types,$roles, |
$sections,$states,$navbuttons,$memchg, |
$sections,$states,$navbuttons,$memchg, |
$sectioncount,$stored,$rowColor1,$rowColor2, |
$sectioncount,$stored,$gpterm,$ucgpterm,$crstype); |
$gpterm,$ucgpterm,$crstype); |
|
} |
} |
} |
} |
} |
} |
Line 1182 sub general_settings_form {
|
Line 1178 sub general_settings_form {
|
$toolprivs,$fixedprivs,$sectioncount,$stored,$states,$navbuttons, |
$toolprivs,$fixedprivs,$sectioncount,$stored,$states,$navbuttons, |
$rowColor1,$rowColor2,$gpterm,$ucgpterm,$crstype) = @_; |
$rowColor1,$rowColor2,$gpterm,$ucgpterm,$crstype) = @_; |
my ($nexttext,$prevtext); |
my ($nexttext,$prevtext); |
&groupsettings_options($r,$tabcol,$functions,$action,$formname,$stored,1, |
&groupsettings_options($r,$functions,$action,$formname,$stored,1, |
$gpterm,$ucgpterm,$crstype); |
$gpterm,$ucgpterm,$crstype); |
&access_date_settings($r,$action,$formname,$stored,2,$gpterm,$ucgpterm); |
&access_date_settings($r,$action,$formname,$stored,2,$gpterm,$ucgpterm); |
if ($action eq 'create') { |
if ($action eq 'create') { |
Line 1197 sub general_settings_form {
|
Line 1193 sub general_settings_form {
|
&privilege_specificity($r,$tabcol,$rowColor1,$rowColor2,$action, |
&privilege_specificity($r,$tabcol,$rowColor1,$rowColor2,$action, |
3,$tools,$stored,$toolprivs,$fixedprivs, |
3,$tools,$stored,$toolprivs,$fixedprivs, |
\@available,$formname,$gpterm,$ucgpterm); |
\@available,$formname,$gpterm,$ucgpterm); |
&mapping_options($r,$action,$formname,$page,$tabcol,$sectioncount, |
&mapping_options($r,$action,$formname,$page,$sectioncount, |
$states,$stored,$navbuttons,4,5,$rowColor1, |
$states,$stored,$navbuttons,4,5, |
$rowColor2,$gpterm,$ucgpterm,$crstype); |
$gpterm,$ucgpterm,$crstype); |
$nexttext = $$navbuttons{'mose'}; |
$nexttext = $$navbuttons{'mose'}; |
} |
} |
$prevtext = $$navbuttons{'gtpp'}; |
$prevtext = $$navbuttons{'gtpp'}; |
Line 1209 sub general_settings_form {
|
Line 1205 sub general_settings_form {
|
} |
} |
|
|
sub groupsettings_options { |
sub groupsettings_options { |
my ($r,$tabcol,$functions,$action,$formname,$stored,$image,$gpterm, |
my ($r,$functions,$action,$formname,$stored,$image,$gpterm, |
$ucgpterm,$crstype) = @_; |
$ucgpterm,$crstype) = @_; |
my %lt = &Apache::lonlocal::texthash( |
my %lt = &Apache::lonlocal::texthash( |
'gdat' => "$ucgpterm open and close dates", |
'gdat' => "$ucgpterm open and close dates", |
Line 1225 sub groupsettings_options {
|
Line 1221 sub groupsettings_options {
|
my ($crsquota,$freespace,$maxposs) = &get_quota_constraints($action,$stored); |
my ($crsquota,$freespace,$maxposs) = &get_quota_constraints($action,$stored); |
&topic_bar($r,$image,$lt{'gnde'}); |
&topic_bar($r,$image,$lt{'gnde'}); |
$r->print(' |
$r->print(' |
<table border="0" cellpadding="2" cellspacing="2"> |
<table class="LC_descriptive_input"> |
<tr> |
<tr> |
<td><b>'.$lt{'gnam'}.':</b></td> |
<td class="LC_description">'.$lt{'gnam'}.':</td> |
<td colspan="5"> |
<td colspan="5"> |
'); |
'); |
if ($action eq 'create') { |
if ($action eq 'create') { |
Line 1240 sub groupsettings_options {
|
Line 1236 sub groupsettings_options {
|
</td> |
</td> |
<tr> |
<tr> |
<tr> |
<tr> |
<td><b>$lt{'desc'}:</b></td> |
<td class="LC_description">$lt{'desc'}:</td> |
<td colspan="5"><input type="text" name="description" size="40" |
<td colspan="5"><input type="text" name="description" size="40" |
value="" /> |
value="" /> |
</td> |
</td> |
<tr> |
<tr> |
<tr> |
<tr> |
<td><b>$lt{'func'}:</b></td> |
<td class="LC_description">$lt{'func'}:</td> |
END |
END |
my $numitems = keys(%{$functions}); |
my $numitems = keys(%{$functions}); |
my $halfnum = int($numitems/2); |
my $halfnum = int($numitems/2); |
Line 1280 END
|
Line 1276 END
|
</td> |
</td> |
</tr> |
</tr> |
<tr> |
<tr> |
<td><b>'.&mt('Granularity:').'</b></td> |
<td class="LC_description">'.&mt('Granularity:').'</td> |
<td colspan="10">'.$lt{'doyo'}.' <label><input type="radio" name="granularity" value="Yes" />'.&mt('Yes').'</label> <label><input type="radio" name="granularity" value="No" checked="checked" />'.&mt('No').'</label>'); |
<td colspan="10">'.$lt{'doyo'}.' <label><input type="radio" name="granularity" value="Yes" />'.&mt('Yes').'</label> <label><input type="radio" name="granularity" value="No" checked="checked" />'.&mt('No').'</label>'); |
if ($action eq 'modify') { |
if ($action eq 'modify') { |
$r->print(' ('.&mt('Currently set to "[_1]"', |
$r->print(' ('.&mt('Currently set to "[_1]"', |
Line 1290 END
|
Line 1286 END
|
</td> |
</td> |
</tr> |
</tr> |
<tr> |
<tr> |
<td valign="top">'.&mt('<b>Disk quota:</b> ').'</td><td colspan="10">'); |
<td class="LC_description">'.&mt('Disk quota: ').'</td><td colspan="10">'); |
if ($action eq 'create') { |
if ($action eq 'create') { |
$r->print(&mt('If you enable the file repository for the [_1], allocate a disk quota.',$gpterm)); |
$r->print(&mt('If you enable the file repository for the [_1], allocate a disk quota.',$gpterm)); |
} else { |
} else { |
Line 1456 sub choose_members_form {
|
Line 1452 sub choose_members_form {
|
my $earlyout = &validate_groupname($groupname,$action,$cdom,$cnum,$gpterm, |
my $earlyout = &validate_groupname($groupname,$action,$cdom,$cnum,$gpterm, |
$ucgpterm,$crstype); |
$ucgpterm,$crstype); |
if ($earlyout) { |
if ($earlyout) { |
|
$r->print($earlyout) |
&display_navbuttons($r,$formname,$$states{$action}[$page-1], |
&display_navbuttons($r,$formname,$$states{$action}[$page-1], |
$$navbuttons{'gtps'}); |
$$navbuttons{'gtps'}); |
return; |
return; |
Line 1490 sub choose_members_form {
|
Line 1487 sub choose_members_form {
|
&privilege_specificity($r,$tabcol,$rowColor1,$rowColor2,$action, |
&privilege_specificity($r,$tabcol,$rowColor1,$rowColor2,$action, |
$specimg,$tools,$stored,$toolprivs, |
$specimg,$tools,$stored,$toolprivs, |
$fixedprivs,\@available,$formname,$gpterm,$ucgpterm); |
$fixedprivs,\@available,$formname,$gpterm,$ucgpterm); |
my $newusers = &pick_new_members($r,$action,$formname,$tabcol,$rowColor1, |
my $newusers = &pick_new_members($r,$action,$formname,\@available,$idx, |
$rowColor2,\@available,$idx,$stored, |
$stored,$memimg,$users,$userdata, |
$memimg,$users,$userdata,$granularity, |
$granularity,\%origmembers,$gpterm, |
\%origmembers,$gpterm,$ucgpterm); |
$ucgpterm); |
if ($newusers || $action eq 'create') { |
if ($newusers || $action eq 'create') { |
&display_navbuttons($r,$formname,$$states{$action}[$page-1], |
&display_navbuttons($r,$formname,$$states{$action}[$page-1], |
$$navbuttons{'gtps'},$$states{$action}[$page+1], |
$$navbuttons{'gtps'},$$states{$action}[$page+1], |
Line 1507 sub choose_members_form {
|
Line 1504 sub choose_members_form {
|
|
|
sub display_navbuttons { |
sub display_navbuttons { |
my ($r,$formname,$prev,$prevtext,$next,$nexttext) = @_; |
my ($r,$formname,$prev,$prevtext,$next,$nexttext) = @_; |
|
$r->print('<div class="LC_navbuttons">'); |
if ($prev) { |
if ($prev) { |
$r->print(' |
$r->print(' |
<input type="button" name="previous" value = "'.$prevtext.'" |
<input type="button" name="previous" value = "'.$prevtext.'" |
Line 1518 sub display_navbuttons {
|
Line 1516 sub display_navbuttons {
|
<input type="button" name="next" value="'.$nexttext.'" |
<input type="button" name="next" value="'.$nexttext.'" |
onclick="javascript:nextPage(document.'.$formname.','."'".$next."'".')" />'); |
onclick="javascript:nextPage(document.'.$formname.','."'".$next."'".')" />'); |
} |
} |
|
$r->print('</div>'); |
} |
} |
|
|
sub check_tools { |
sub check_tools { |
Line 1558 sub print_current_settings {
|
Line 1557 sub print_current_settings {
|
} |
} |
if ($action eq 'create') { |
if ($action eq 'create') { |
$r->print(' |
$r->print(' |
<div><span>'.$lt{'ygrs'}.'</span> |
<div><span style="font-size: larger">'.$lt{'ygrs'}.'</span> |
<br />'.$lt{'tfwa'}.' |
<br />'.$lt{'tfwa'}.' |
</div>'); |
</div>'); |
} |
} |
Line 1629 END
|
Line 1628 END
|
} |
} |
|
|
sub pick_new_members { |
sub pick_new_members { |
my ($r,$action,$formname,$tabcol,$rowColor1,$rowColor2,$available,$idx, |
my ($r,$action,$formname,$available,$idx,$stored,$img,$users,$userdata, |
$stored,$img,$users,$userdata,$granularity,$origmembers,$gpterm, |
$granularity,$origmembers,$gpterm,$ucgpterm) = @_; |
$ucgpterm) = @_; |
|
my %lt = &Apache::lonlocal::texthash( |
my %lt = &Apache::lonlocal::texthash( |
'gpme' => "$ucgpterm membership", |
'gpme' => "$ucgpterm membership", |
'addm' => 'Add members', |
'addm' => 'Add members', |
Line 1670 sub pick_new_members {
|
Line 1668 sub pick_new_members {
|
&topic_bar($r,$img,$lt{'gpme'}); |
&topic_bar($r,$img,$lt{'gpme'}); |
if (keys(%members) > 0) { |
if (keys(%members) > 0) { |
$r->print(' |
$r->print(' |
<tr> |
|
<td> </td> |
|
<td colspan="3"> |
|
<table> |
<table> |
<tr>'); |
<tr>'); |
&check_uncheck_buttons($r,$formname,'member',$lt{'addm'}); |
&check_uncheck_buttons($r,$formname,'member',$lt{'addm'}); |
Line 1687 sub pick_new_members {
|
Line 1682 sub pick_new_members {
|
</fieldset></nobr></td>'); |
</fieldset></nobr></td>'); |
} |
} |
$r->print('</tr></table> |
$r->print('</tr></table> |
</td> |
|
</tr> |
|
<tr> |
|
<td colspan="4"> </td> |
|
</tr> |
|
<tr> |
|
<td> </td> |
|
<td colspan="3"> |
|
'); |
'); |
$r->print(&Apache::lonhtmlcommon::start_pick_box()); |
$r->print(&Apache::loncommon::start_data_table(). |
|
&Apache::loncommon::start_data_table_header_row()); |
$r->print(' |
$r->print(' |
<table border="0" cellpadding="4" cellspacing="1"> |
<th>'.&mt('Add?').'</b></td> |
<tr bgcolor="'.$tabcol.'" align="center"> |
<th><a href="javascript:changeSort('."'fullname'".')">'.&mt('Name').'</a></td> |
<td><b>'.&mt('Add?').'</b></td> |
<th><a href="javascript:changeSort('."'username'".')">'.&mt('Username').'</a></td> |
<td><b><a href="javascript:changeSort('."'fullname'".')">'.&mt('Name').'</a></b></td> |
<th><a href="javascript:changeSort('."'domain'".')">'.&mt('Domain').'</a></td> |
<td><b><a href="javascript:changeSort('."'username'".')">'.&mt('Username').'</a></b> |
<th><a href="javascript:changeSort('."'id'".')">'.&mt('ID').'</a></td> |
</td> |
<th><a href="javascript:changeSort('."'section'".')">'.&mt('Section').'</a></td> |
<td><b><a href="javascript:changeSort('."'domain'".')">'.&mt('Domain').'</a></b></td> |
|
<td><b><a href="javascript:changeSort('."'id'".')">ID</a></b></td> |
|
<td><b><a href="javascript:changeSort('."'section'".')">Section</a></b></td> |
|
'); |
'); |
if (@{$available} > 0) { |
if (@{$available} > 0) { |
$r->print('<td><b>'.$lt{'func'}.'</b></td>'); |
$r->print('<th>'.$lt{'func'}.'</th>'); |
} |
} |
$r->print('</tr>'); |
$r->print(&Apache::loncommon::end_data_table_header_row()); |
if (@{$available} > 0) { |
if (@{$available} > 0) { |
if ($granularity eq 'Yes') { |
if ($granularity eq 'Yes') { |
$r->print('<tr bgcolor="#cccccc"> |
$r->print(&Apache::loncommon::start_data_table_row('LC_data_table_dense LC_data_table_highlight').' |
<td colspan="6"> </td> |
<td colspan="6"> </td> |
<td align="center"><small><nobr><b>'.&mt('All:').'</b> '); |
<td align="center"><nobr><b>'.&mt('All:').'</b> '); |
foreach my $tool (@{$available}) { |
foreach my $tool (@{$available}) { |
$r->print('<label><input type="checkbox" name="togglefunc" '. |
$r->print('<label><input type="checkbox" name="togglefunc" '. |
'onclick="javascript:toggleTools(document.'.$formname.'.user_'.$tool.',this);"'. |
'onclick="javascript:toggleTools(document.'.$formname.'.user_'.$tool.',this);"'. |
' value="'.$tool.'">'.'<b>'.$tool.'</b></label> '); |
' value="'.$tool.'">'.'<b>'.$tool.'</b></label> '); |
} |
} |
$r->print('</nobr></small></td></tr>'); |
$r->print('</nobr></td></tr>'); |
} |
} |
} |
} |
my %Sortby = (); |
my %Sortby = (); |
Line 1741 sub pick_new_members {
|
Line 1726 sub pick_new_members {
|
push(@{$Sortby{$members{$user}[$$idx{fullname}]}},$user); |
push(@{$Sortby{$members{$user}[$$idx{fullname}]}},$user); |
} |
} |
} |
} |
my $rowNum = 0; |
|
my $rowColor; |
|
foreach my $key (sort(keys(%Sortby))) { |
foreach my $key (sort(keys(%Sortby))) { |
foreach my $user (@{$Sortby{$key}}) { |
foreach my $user (@{$Sortby{$key}}) { |
if ($rowNum %2 == 1) { |
|
$rowColor = $rowColor1; |
|
} else { |
|
$rowColor = $rowColor2; |
|
} |
|
my $id = $members{$user}[$$idx{id}]; |
my $id = $members{$user}[$$idx{id}]; |
my $fullname = $members{$user}[$$idx{fullname}]; |
my $fullname = $members{$user}[$$idx{fullname}]; |
my $udom = $members{$user}[$$idx{udom}]; |
my $udom = $members{$user}[$$idx{udom}]; |
my $uname = $members{$user}[$$idx{uname}]; |
my $uname = $members{$user}[$$idx{uname}]; |
my $section = $members{$user}[$$idx{section}]; |
my $section = $members{$user}[$$idx{section}]; |
$r->print('<tr bgcolor="'.$rowColor.'"><td align="right"> |
$r->print(&Apache::loncommon::start_data_table_row('LC_data_table_dense'). |
<input type="checkbox" name="member" value="'.$user.'" /></td><td><small>'. |
'<td align="right"><input type="checkbox" name="member" value="'.$user.'" /></td>'. |
$fullname.'</small></td><td><small>'.$uname.'</small></td><td><small>'. |
'<td>'.$fullname.'</td>'. |
$udom.'</small></td><td><small>'.$id.'</small></td>'. |
'<td>'.$uname.'</td>'. |
'<td><small>'.$section.'</small></td>'); |
'<td>'.$udom.'</td>'. |
|
'<td>'.$id.'</td>'. |
|
'<td>'.$section.'</td>'); |
if (@{$available} > 0) { |
if (@{$available} > 0) { |
$r->print('<td align="center"><nobr><small>'. |
$r->print('<td align="center"><nobr>'. |
' '); |
' '); |
foreach my $tool (@{$available}) { |
foreach my $tool (@{$available}) { |
if ($granularity eq 'Yes') { |
if ($granularity eq 'Yes') { |
Line 1772 sub pick_new_members {
|
Line 1752 sub pick_new_members {
|
$tool.'" value="'.$user.'" />'.$tool.' '); |
$tool.'" value="'.$user.'" />'.$tool.' '); |
} |
} |
} |
} |
$r->print('</small></nobr></td>'); |
$r->print('</nobr></td>'); |
} |
} |
$r->print('</tr>'."\n"); |
$r->print(&Apache::loncommon::end_data_table_row()."\n"); |
$rowNum ++; |
|
} |
} |
} |
} |
$r->print(&Apache::lonhtmlcommon::end_pick_box()); |
$r->print(&Apache::loncommon::end_data_table()); |
$r->print(' |
|
</td> |
|
</tr>'); |
|
} else { |
} else { |
$r->print(' |
|
<tr> |
|
<td> </td> |
|
<td colspan="3"> |
|
'); |
|
if ($totalusers > 0) { |
if ($totalusers > 0) { |
$r->print($lt{'nnew'}.'<br /><br />'.$lt{'yoma'}); |
$r->print($lt{'nnew'}.'<br /><br />'.$lt{'yoma'}); |
} else { |
} else { |
$r->print($lt{'nome'}); |
$r->print($lt{'nome'}); |
} |
} |
$r->print(' |
|
</td> |
|
</tr>'); |
|
} |
} |
return $newusers; |
return $newusers; |
} |
} |
Line 1897 sub privilege_specificity {
|
Line 1865 sub privilege_specificity {
|
} else { |
} else { |
$r->print($lt{'algm'}.'<br /><br />'); |
$r->print($lt{'algm'}.'<br /><br />'); |
} |
} |
&default_privileges($r,$action,$tabcol,$rowColor1,$rowColor2, |
&default_privileges($r,$action,$tools,$toolprivs,$fixedprivs, |
$tools,$toolprivs,$fixedprivs,$available); |
$available); |
} else { |
} else { |
if ($action eq 'create') { |
if ($action eq 'create') { |
$r->print($lt{'asyo'}); |
$r->print($lt{'asyo'}); |
Line 1914 sub privilege_specificity {
|
Line 1882 sub privilege_specificity {
|
$r->print($lt{'sall'}); |
$r->print($lt{'sall'}); |
} |
} |
$r->print(' '.$lt{'defp'}.'<br /><br />'); |
$r->print(' '.$lt{'defp'}.'<br /><br />'); |
&display_defprivs($r,$tabcol,$rowColor1,$rowColor2,$tools, |
&display_defprivs($r,$tools,$toolprivs,\@defprivs); |
$toolprivs,\@defprivs); |
|
} |
} |
} |
} |
return; |
return; |
} |
} |
|
|
sub default_privileges { |
sub default_privileges { |
my ($r,$action,$tabcol,$rowColor1,$rowColor2,$tools,$toolprivs, |
my ($r,$action,$tools,$toolprivs,$fixedprivs,$available) = @_; |
$fixedprivs,$available) = @_; |
|
my %lt = &Apache::lonlocal::texthash( |
my %lt = &Apache::lonlocal::texthash( |
'addp' => 'Additional privileges', |
'addp' => 'Additional privileges', |
'fixp' => 'Fixed privileges', |
'fixp' => 'Fixed privileges', |
'oppr' => 'Optional privileges', |
'oppr' => 'Optional privileges', |
'func' => 'Function', |
'func' => 'Function', |
); |
); |
$r->print(&Apache::loncommon::start_data_table(). |
$r->print(&Apache::lonhtmlcommon::start_pick_box('LC_group_priv_box'). |
&Apache::loncommon::start_data_table_header_row()); |
&Apache::lonhtmlcommon::row_title($lt{'func'},undef, |
$r->print('<th>'.$lt{'func'}.'</th> |
'LC_groups_functionality')); |
</tr> |
$r->print(join('</td><td class="LC_groups_functionality">',@{$tools})); |
<tr> |
$r->print(&Apache::lonhtmlcommon::row_closure(1)); |
<td valign="top"><b>'.$lt{'fixp'}.'</b></td> |
my $fixed = ''; |
</tr> |
my $dynamic = ''; |
<tr> |
|
<td valign="top"><b>'.$lt{'oppr'}.'</b></td> |
|
</tr> |
|
</table> |
|
</td> |
|
'); |
|
foreach my $tool (@{$tools}) { |
foreach my $tool (@{$tools}) { |
$r->print('<td align="center" valign="top"> |
|
<table cellspacing="0" cellpadding="1"> |
|
<tr bgcolor="#cccccc"> |
|
<td colspan="2" align="center"><b>'.$tool.'</b></td> |
|
</tr> |
|
'); |
|
my $privcount = 0; |
my $privcount = 0; |
my $fixed = ''; |
if ($dynamic ne '') { |
my $dynamic = ''; |
$dynamic .= '</td><td class="LC_groups_optional">'; |
|
} |
|
$dynamic .= '<table class="LC_group_priv"><tr>'; |
foreach my $priv (sort(keys(%{$$toolprivs{$tool}}))) { |
foreach my $priv (sort(keys(%{$$toolprivs{$tool}}))) { |
if (exists($$fixedprivs{$tool}{$priv})) { |
if (exists($$fixedprivs{$tool}{$priv})) { |
|
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.'" />'.$$toolprivs{$tool}{$priv}.' '; |
if ($action eq 'modify') { |
if ($action eq 'modify') { |
if (grep/^$tool$/,@{$available}) { |
if (grep(/^$tool$/,@{$available})) { |
$fixed .= '<small>'.&mt('(on)').'<small> '; |
$fixed .= '<small>'.&mt('(on)').'<small> '; |
} else { |
} else { |
$fixed .= '<small>'.&mt('(off)').'<small> '; |
$fixed .= '<small>'.&mt('(off)').'<small> '; |
} |
} |
} |
} |
} else { |
} else { |
$privcount ++; |
$privcount++; |
if ($privcount == 3) { |
if ($privcount == 3) { |
$dynamic .= '</tr> |
$dynamic .= '</tr> |
<tr bgcolor="'.$rowColor1.'">'."\n"; |
<tr>'."\n"; |
} |
} |
$dynamic .= '<td><label><input type="checkbox" name="defpriv" value="'.$priv.'" />'.$$toolprivs{$tool}{$priv}.'</label></td>'."\n"; |
$dynamic .= '<td><label><input type="checkbox" name="defpriv" value="'.$priv.'" />'.$$toolprivs{$tool}{$priv}.'</label></td>'."\n"; |
} |
} |
} |
} |
if ($dynamic eq '') { |
if ($privcount == 0) { |
$dynamic = '<td>None</td>'."\n"; |
$dynamic .= '<td>None</td>'."\n"; |
} |
} |
if ($privcount < 3) { |
if ($privcount < 3) { |
$dynamic .= '</tr> |
$dynamic .= '</td> |
<tr bgcolor="'.$rowColor1.'"> |
<td> </td>'."\n"; |
<td colspan="2"> </td>'."\n"; |
|
} elsif ($privcount%2) { |
} elsif ($privcount%2) { |
$dynamic = '<td> </td>'."\n"; |
$dynamic = '<td> </td>'."\n"; |
} |
} |
$r->print('<tr bgcolor="'.$rowColor2.'"> |
$dynamic .= '</tr></table>'; |
<td colspan="2" align="center"><nobr>'.$fixed.'</nobr></td> |
|
</tr> |
|
<tr bgcolor="'.$rowColor1.'">'."\n".$dynamic.'</tr>'."\n".'</table>'."\n".'</td> |
|
'); |
|
} |
} |
$r->print('</tr>'."\n"); |
$r->print(&Apache::lonhtmlcommon::row_title($lt{'fixp'},undef, |
$r->print(&Apache::lonhtmlcommon::end_pick_box()); |
'LC_groups_fixed'). |
|
$fixed. |
|
&Apache::lonhtmlcommon::row_closure(1)); |
|
$r->print(&Apache::lonhtmlcommon::row_title($lt{'oppr'},undef, |
|
'LC_groups_optional'). |
|
$dynamic. |
|
&Apache::lonhtmlcommon::end_pick_box()); |
$r->print('<br />'); |
$r->print('<br />'); |
return; |
return; |
|
|
} |
} |
|
|
sub display_defprivs { |
sub display_defprivs { |
my ($r,$tabcol,$rowColor1,$rowColor2,$tools,$toolprivs,$defprivs) = @_; |
my ($r,$tools,$toolprivs,$defprivs) = @_; |
|
my $function = &Apache::loncommon::get_users_function(); |
|
my $tabcol = &Apache::loncommon::designparm($function.'.tabbg'); |
|
my $rowColor1 = "#dddddd"; |
|
my $rowColor2 = "#eeeeee"; |
my %lt = &Apache::lonlocal::texthash( |
my %lt = &Apache::lonlocal::texthash( |
'priv' => 'Privileges', |
'priv' => 'Privileges', |
'func' => 'Function', |
'func' => 'Function', |
Line 2008 sub display_defprivs {
|
Line 1973 sub display_defprivs {
|
@{$currprivs{$tool}} = (); |
@{$currprivs{$tool}} = (); |
foreach my $priv (sort(keys(%{$$toolprivs{$tool}}))) { |
foreach my $priv (sort(keys(%{$$toolprivs{$tool}}))) { |
if (ref($defprivs) eq 'ARRAY') { |
if (ref($defprivs) eq 'ARRAY') { |
if (grep/^\Q$priv\E$/,@{$defprivs}) { |
if (grep(/^\Q$priv\E$/,@{$defprivs})) { |
push(@{$currprivs{$tool}},$priv); |
push(@{$currprivs{$tool}},$priv); |
} |
} |
} |
} |
Line 2085 sub change_members_form {
|
Line 2050 sub change_members_form {
|
my $prevtext = $$navbuttons{'gtpp'}; |
my $prevtext = $$navbuttons{'gtpp'}; |
$r->print(' |
$r->print(' |
<br /> |
<br /> |
<table width="100%" cellpadding="0" cellspacing="0" border="0"> |
|
'); |
'); |
&topic_bar($r,1,$lt{'grse'}); |
&topic_bar($r,1,$lt{'grse'}); |
$r->print(' |
|
<tr> |
|
<td> </td> |
|
<td colspan="3"> |
|
'); |
|
&print_current_settings($r,$action,$functions,$startdate,$enddate, |
&print_current_settings($r,$action,$functions,$startdate,$enddate, |
$groupname,$description,$granularity,$quota, |
$groupname,$description,$granularity,$quota, |
\@available,\@unavailable,$gpterm,$ucgpterm); |
\@available,\@unavailable,$gpterm,$ucgpterm); |
$r->print(' |
|
</td></tr><tr><td colspan="4"> </td></tr>'); |
|
&topic_bar($r,2,$lt{'mogm'}); |
&topic_bar($r,2,$lt{'mogm'}); |
$r->print(' |
|
<tr> |
|
<td> </td> |
|
<td colspan="3"> |
|
'); |
|
¤t_membership($r,$cdom,$cnum,$formname,$tabcol,$rowColor1, |
¤t_membership($r,$cdom,$cnum,$formname,$tabcol,$rowColor1, |
$rowColor2,$groupname,\@available,\@unavailable, |
$rowColor2,$groupname,\@available,\@unavailable, |
$fixedprivs,$granularity,$specificity); |
$fixedprivs,$granularity,$specificity); |
$r->print('</td>'); |
|
&display_navbuttons($r,$formname,$$states{$action}[$page-1],$prevtext, |
&display_navbuttons($r,$formname,$$states{$action}[$page-1],$prevtext, |
$$states{$action}[$page+1],$nexttext); |
$$states{$action}[$page+1],$nexttext); |
$r->print('</table>'); |
|
return; |
return; |
} |
} |
|
|
Line 2352 sub check_uncheck_buttons {
|
Line 2302 sub check_uncheck_buttons {
|
|
|
|
|
sub change_privs_form { |
sub change_privs_form { |
my ($r,$cdom,$cnum,$tabcol,$action,$formname,$page,$startdate,$enddate, |
my ($r,$cdom,$cnum,$action,$formname,$page,$startdate,$enddate, |
$tools,$functions,$toolprivs,$fixedprivs,$userdata,$usertools, |
$tools,$functions,$toolprivs,$fixedprivs,$userdata,$usertools, |
$memchg,$idx,$states,$stored,$sectioncount,$navbuttons,$rowColor1, |
$memchg,$idx,$states,$stored,$sectioncount,$navbuttons,$gpterm, |
$rowColor2,$gpterm,$ucgpterm) = @_; |
$ucgpterm) = @_; |
my @regexps = ('userpriv_'); |
my @regexps = ('userpriv_'); |
my $nexttext; |
my $nexttext; |
my %lt = &Apache::lonlocal::texthash( |
my %lt = &Apache::lonlocal::texthash( |
Line 2370 sub change_privs_form {
|
Line 2320 sub change_privs_form {
|
} else { |
} else { |
$nexttext = $$navbuttons{'mose'}; |
$nexttext = $$navbuttons{'mose'}; |
} |
} |
$r->print('<br /><table width="100%" cellpadding="0" cellspacing="0" border="0">'); |
|
&topic_bar($r,3,&mt('Members to delete or expire')); |
&topic_bar($r,3,&mt('Members to delete or expire')); |
my $exp_or_del = 0; |
my $exp_or_del = 0; |
if (ref($$memchg{'deletion'}) eq 'ARRAY') { |
if (ref($$memchg{'deletion'}) eq 'ARRAY') { |
Line 2380 sub change_privs_form {
|
Line 2329 sub change_privs_form {
|
$r->print('<li>'.$$userdata{$user}[$$idx{fullname}]. |
$r->print('<li>'.$$userdata{$user}[$$idx{fullname}]. |
' ('.$user.')</li>'); |
' ('.$user.')</li>'); |
} |
} |
$r->print('</ul></td><tr><td colspan="4"> </td></tr>'); |
$r->print('</ul>'); |
$exp_or_del += @{$$memchg{'deletion'}}; |
$exp_or_del += @{$$memchg{'deletion'}}; |
} |
} |
} |
} |
Line 2391 sub change_privs_form {
|
Line 2340 sub change_privs_form {
|
$r->print('<li>'.$$userdata{$user}[$$idx{fullname}]. |
$r->print('<li>'.$$userdata{$user}[$$idx{fullname}]. |
' ('.$user.')</li>'); |
' ('.$user.')</li>'); |
} |
} |
$r->print('</ul></td><tr><td colspan="4"> </td></tr>'); |
$r->print('</ul>'); |
$exp_or_del += @{$$memchg{'expire'}}; |
$exp_or_del += @{$$memchg{'expire'}}; |
} |
} |
} |
} |
if (!$exp_or_del) { |
if (!$exp_or_del) { |
$r->print('<tr><td> </td><td colspan="3">'.$lt{'nome'}. |
$r->print($lt{'nome'}.'<br />'); |
'</td></tr><tr><td colspan="4"> </td></tr>'); |
|
} |
} |
|
|
&topic_bar($r,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, |
my $numchgs = &member_privileges_form($r,$action,$formname,$tools, |
$toolprivs,$fixedprivs,$userdata, |
$toolprivs,$fixedprivs,$userdata, |
$usertools,$idx,$memchg,$states, |
$usertools,$idx,$memchg,$states, |
$stored,$rowColor1,$rowColor2, |
$stored,$gpterm); |
$gpterm); |
|
$r->print('</td></tr><tr><td colspan="4"> </td></tr>'); |
|
my $prevtext = $$navbuttons{'gtps'}; |
my $prevtext = $$navbuttons{'gtps'}; |
if ($numchgs || $exp_or_del) { |
if ($numchgs || $exp_or_del) { |
&display_navbuttons($r,$formname,$$states{$action}[$page-1],$prevtext, |
&display_navbuttons($r,$formname,$$states{$action}[$page-1],$prevtext, |
Line 2415 sub change_privs_form {
|
Line 2361 sub change_privs_form {
|
} else { |
} else { |
&display_navbuttons($r,$formname,$$states{$action}[$page-1],$prevtext); |
&display_navbuttons($r,$formname,$$states{$action}[$page-1],$prevtext); |
} |
} |
$r->print('</table>'); |
|
return; |
return; |
} |
} |
|
|
Line 2439 sub add_members_form {
|
Line 2384 sub add_members_form {
|
} |
} |
|
|
sub choose_privs_form { |
sub choose_privs_form { |
my ($r,$cdom,$cnum,$tabcol,$action,$formname,$page,$startdate,$enddate, |
my ($r,$cdom,$cnum,$action,$formname,$page,$startdate,$enddate, |
$tools,$functions,$toolprivs,$fixedprivs,$userdata,$usertools,$idx, |
$tools,$functions,$toolprivs,$fixedprivs,$userdata,$usertools,$idx, |
$states,$stored,$sectioncount,$navbuttons,$rowColor1,$rowColor2, |
$states,$stored,$sectioncount,$navbuttons,$gpterm,$ucgpterm, |
$gpterm,$ucgpterm,$crstype) = @_; |
$crstype) = @_; |
|
|
my @regexps = ('userpriv_'); |
my @regexps = ('userpriv_'); |
my $nexttext; |
my $nexttext; |
Line 2459 sub choose_privs_form {
|
Line 2404 sub choose_privs_form {
|
$nexttext = $$navbuttons{'adme'}; |
$nexttext = $$navbuttons{'adme'}; |
} |
} |
|
|
$r->print('<br /><table width="100%" cellpadding="0" cellspacing="0" border="0">'); |
|
&topic_bar($r,6,&mt('[_1] member privileges',$ucgpterm)); |
&topic_bar($r,6,&mt('[_1] member privileges',$ucgpterm)); |
|
|
&member_privileges_form($r,$tabcol,$action,$formname,$tools,$toolprivs, |
&member_privileges_form($r,$action,$formname,$tools,$toolprivs, |
$fixedprivs,$userdata,$usertools,$idx,undef, |
$fixedprivs,$userdata,$usertools,$idx,undef, |
$states,$stored,$rowColor1,$rowColor2,$gpterm); |
$states,$stored,$gpterm); |
|
|
$r->print('</td></tr><tr><td colspan="4"> </td></tr>'); |
|
if ($action eq 'create') { |
if ($action eq 'create') { |
if (keys(%{$sectioncount}) > 0) { |
if (keys(%{$sectioncount}) > 0) { |
my $img1 = 7; |
my $img1 = 7; |
my $img2 = 8; |
my $img2 = 8; |
&mapping_options($r,$action,$formname,$page,$tabcol,$sectioncount, |
&mapping_options($r,$action,$formname,$page,$sectioncount, |
$states,$stored,$navbuttons,$img1,$img2, |
$states,$stored,$navbuttons,$img1,$img2, |
$rowColor1,$rowColor2,$gpterm,$ucgpterm,$crstype); |
$gpterm,$ucgpterm,$crstype); |
} |
} |
} |
} |
my $prevtext = $$navbuttons{'gtps'}; |
my $prevtext = $$navbuttons{'gtps'}; |
&display_navbuttons($r,$formname,$$states{$action}[$page-1],$prevtext, |
&display_navbuttons($r,$formname,$$states{$action}[$page-1],$prevtext, |
$$states{$action}[$page+1],$nexttext); |
$$states{$action}[$page+1],$nexttext); |
$r->print('</table>'); |
|
return; |
return; |
} |
} |
|
|
Line 2542 function uncheckAllTools(formname) {
|
Line 2484 function uncheckAllTools(formname) {
|
} |
} |
|
|
sub member_privileges_form { |
sub member_privileges_form { |
my ($r,$tabcol,$action,$formname,$tools,$toolprivs,$fixedprivs,$userdata, |
my ($r,$action,$formname,$tools,$toolprivs,$fixedprivs,$userdata, |
$usertools,$idx,$memchg,$states,$stored,$rowColor1,$rowColor2, |
$usertools,$idx,$memchg,$states,$stored,$gpterm) = @_; |
$gpterm) = @_; |
|
my %lt = &Apache::lonlocal::texthash( |
my %lt = &Apache::lonlocal::texthash( |
'addp' => 'Additional privileges', |
'addp' => 'Additional privileges', |
'fixp' => 'Fixed privileges', |
'fixp' => 'Fixed privileges', |
Line 2605 sub member_privileges_form {
|
Line 2546 sub member_privileges_form {
|
} |
} |
$numchgs = @currmembers; |
$numchgs = @currmembers; |
if (!$numchgs) { |
if (!$numchgs) { |
$r->print('<tr><td> </td><td colspan="3">'.$lt{'nogm'}); |
$r->print($lt{'nogm'}); |
return $numchgs; |
return $numchgs; |
} |
} |
} |
} |
Line 2621 sub member_privileges_form {
|
Line 2562 sub member_privileges_form {
|
my %total; |
my %total; |
if (keys(%{$usertools}) > 1) { |
if (keys(%{$usertools}) > 1) { |
$r->print(' |
$r->print(' |
<tr> |
<table border="0" cellspacing="2" cellpadding="2"> |
<td> </td> |
|
<td colspan="3"> |
|
<table border="0" cellspacing="2" cellpadding="2" border="0"> |
|
<tr> |
<tr> |
'); |
'); |
foreach my $tool (@{$tools}) { |
foreach my $tool (@{$tools}) { |
if (@{$showboxes{$tool}} > 0) { |
if (@{$showboxes{$tool}} > 0) { |
$r->print('<td valign="top">'); |
$r->print('<td valign="top">'); |
$r->print('<table class="thinborder"><tr bgcolor="'. |
$r->print('<table class="thinborder"><tr>'. |
$tabcol.'"><th colspan="'.$colspan.'">'. |
'<th colspan="'.$colspan.'">'. |
$tool.'</th></tr><tr>'); |
$tool.'</th></tr><tr>'); |
my $privcount = 0; |
my $privcount = 0; |
foreach my $priv (@{$showboxes{$tool}}) { |
foreach my $priv (@{$showboxes{$tool}}) { |
Line 2669 sub member_privileges_form {
|
Line 2607 sub member_privileges_form {
|
$r->print('</tr></table></td><td> </td>'); |
$r->print('</tr></table></td><td> </td>'); |
} |
} |
} |
} |
$r->print('</tr></table></td></tr>'); |
$r->print('</tr></table>'); |
$r->print('<tr><td colspan="4"> </td></tr>'); |
|
} |
} |
$r->print('<tr><td> </td><td colspan="3">'); |
$r->print(&Apache::loncommon::start_data_table(). |
$r->print(&Apache::lonhtmlcommon::start_pick_box()); |
&Apache::loncommon::start_data_table_header_row()); |
$r->print(<<"END"); |
$r->print(<<"END"); |
<tr bgcolor="$tabcol"> |
<th>$lt{'full'}</th> |
<th><b>$lt{'full'}</th> |
<th>$lt{'user'}</th> |
<th><b>$lt{'user'}</th> |
|
<th>$lt{'doma'}</th> |
<th>$lt{'doma'}</th> |
<th colspan="$numtools">$lt{'addp'}</th> |
<th colspan="$numtools">$lt{'addp'}</th> |
</tr> |
|
END |
END |
&member_privs_entries($r,$tabcol,$rowColor1,$rowColor2, |
$r->print(&Apache::loncommon::end_data_table_header_row()); |
$usertools,$toolprivs,$fixedprivs, |
&member_privs_entries($r,$usertools,$toolprivs,$fixedprivs, |
$userdata,$idx,\@showtools,\@defprivs, |
$userdata,$idx,\@showtools,\@defprivs, |
\@excluded); |
\@excluded); |
$r->print('</td>'); |
$r->print(&Apache::loncommon::end_data_table()); |
$r->print(&Apache::lonhtmlcommon::end_pick_box()); |
|
$r->print('</td></tr> |
|
<tr> |
|
<td colspan="4"> </td> |
|
</tr> |
|
'); |
|
} else { |
} else { |
$r->print('<tr><td> </td><td colspan="3">'.$lt{'forf'}. |
$r->print($lt{'forf'}.'<br />'); |
'<br />'); |
&display_defprivs($r,$tools,$toolprivs,\@defprivs); |
&display_defprivs($r,$tabcol,$rowColor1,$rowColor2,$tools, |
|
$toolprivs,\@defprivs); |
|
} |
} |
} else { |
} else { |
if (keys(%{$usertools}) > 0) { |
if (keys(%{$usertools}) > 0) { |
$r->print('<tr><td> </td><td colspan="3">'.$lt{'algr'}. |
$r->print($lt{'algr'}.'<br /><br />'); |
'<br /><br />'); |
&display_defprivs($r,$tools,$toolprivs,\@defprivs); |
&display_defprivs($r,$tabcol,$rowColor1,$rowColor2,$tools, |
|
$toolprivs,\@defprivs); |
|
} else { |
} else { |
$r->print('<tr><td> </td><td colspan="3">'.$lt{'asno'}. |
$r->print($lt{'asno'}.'<br />'); |
'<br />'); |
|
} |
} |
} |
} |
} else { |
} else { |
$r->print('<tr><td> </td><td colspan="3">'.$lt{'asng'}); |
$r->print($lt{'asng'}); |
} |
} |
return $numchgs; |
return $numchgs; |
} |
} |
|
|
sub process_request { |
sub process_request { |
my ($r,$cdom,$cnum,$tabcol,$action,$state,$page,$groupname,$description, |
my ($r,$cdom,$cnum,$action,$state,$page,$groupname,$description, |
$specificity,$userdata,$startdate,$enddate,$tools,$functions,$toolprivs, |
$specificity,$userdata,$startdate,$enddate,$tools,$functions,$toolprivs, |
$usertools,$idx,$types,$roles,$sections,$states,$navbuttons,$memchg, |
$usertools,$idx,$types,$roles,$sections,$states,$navbuttons,$memchg, |
$sectioncount,$stored,$rowColor1,$rowColor2,$gpterm,$ucgpterm, |
$sectioncount,$stored,$gpterm,$ucgpterm,$crstype) = @_; |
$crstype) = @_; |
|
|
|
$r->print(&Apache::lonhtmlcommon::echo_form_input( |
$r->print(&Apache::lonhtmlcommon::echo_form_input( |
['origin','action','state','page','sortby'])); |
['origin','action','state','page','sortby'])); |
Line 3114 sub process_membership {
|
Line 3037 sub process_membership {
|
} |
} |
|
|
sub mapping_options { |
sub mapping_options { |
my ($r,$action,$formname,$page,$tabcol,$sectioncount,$states,$stored, |
my ($r,$action,$formname,$page,$sectioncount,$states,$stored, |
$navbuttons,$img1,$img2,$rowColor1,$rowColor2,$gpterm,$ucgpterm, |
$navbuttons,$img1,$img2,$gpterm,$ucgpterm,$crstype) = @_; |
$crstype) = @_; |
|
my %lt = &Apache::lonlocal::texthash( |
my %lt = &Apache::lonlocal::texthash( |
'auto' => "Settings for automatic $gpterm enrollment", |
'auto' => "Settings for automatic $gpterm enrollment", |
'gmma' => "$ucgpterm membership mapping to specific sections/roles", |
'gmma' => "$ucgpterm membership mapping to specific sections/roles", |
Line 3132 sub mapping_options {
|
Line 3054 sub mapping_options {
|
'auex' => "Automatically expire $gpterm membership when roles are removed?", |
'auex' => "Automatically expire $gpterm membership when roles are removed?", |
'mapr' => "Mapping of roles and sections affected by automatic $gpterm enrollment/disenrollment follows scheme chosen below.", |
'mapr' => "Mapping of roles and sections affected by automatic $gpterm enrollment/disenrollment follows scheme chosen below.", |
); |
); |
&automapping($r,$action,$tabcol,$stored,\%lt,$img1); |
&automapping($r,$action,$stored,\%lt,$img1); |
$r->print(' |
&mapping_settings($r,$sectioncount,\%lt,$stored,$img2,$crstype); |
<tr> |
|
<td colspan="4"> </td> |
|
</tr>'); |
|
&mapping_settings($r,$tabcol,$rowColor1,$rowColor2,$sectioncount,\%lt, |
|
$stored,$img2,$crstype); |
|
return; |
return; |
} |
} |
|
|
sub automapping { |
sub automapping { |
my ($r,$action,$tabcol,$stored,$lt,$image) = @_; |
my ($r,$action,$stored,$lt,$image) = @_; |
my $add = 'off'; |
my $add = 'off'; |
my $drop = 'off'; |
my $drop = 'off'; |
if (exists($$stored{'autoadd'})) { |
if (exists($$stored{'autoadd'})) { |
Line 3154 sub automapping {
|
Line 3071 sub automapping {
|
} |
} |
&topic_bar($r,$image,$$lt{'endi'}); |
&topic_bar($r,$image,$$lt{'endi'}); |
$r->print(' |
$r->print(' |
<tr> |
<b>'.$$lt{'gmma'}.':</b><br />'.$$lt{'adds'}.'<br />'.$$lt{'drops'}.'<br /><br /> |
<td> </td> |
|
<td colspan="3"> |
|
<b>'.$$lt{'gmma'}.':</b><br />'.$$lt{'adds'}.'<br />'.$$lt{'drops'}.'<br /> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td colspan="4"> </td> |
|
</tr> |
|
<tr> |
|
<td> </td> |
|
<td colspan="3"> |
|
<nobr>'.$$lt{'auad'}.': |
<nobr>'.$$lt{'auad'}.': |
<label><input type="radio" name="autoadd" value="on" />on </label><label><input type="radio" name="autoadd" value="off" checked="checked" />off</label>'); |
<label><input type="radio" name="autoadd" value="on" />on </label><label><input type="radio" name="autoadd" value="off" checked="checked" />off</label>'); |
if ($action eq 'modify') { |
if ($action eq 'modify') { |
$r->print(' ('.$$lt{'curr'}.' <b>'.$$lt{$add}.'</b>)'); |
$r->print(' ('.$$lt{'curr'}.' <b>'.$$lt{$add}.'</b>)'); |
} |
} |
$r->print(' |
$r->print(' |
</nobr> |
</nobr><br /> |
</td> |
|
</tr> |
|
<tr> |
|
<td> </td> |
|
<td colspan="3"> |
|
<nobr>'.$$lt{'auex'}.': |
<nobr>'.$$lt{'auex'}.': |
<label><input type="radio" name="autodrop" value="on" />on </label><label><input type="radio" name="autodrop" value="off" checked="checked" />off</label>'); |
<label><input type="radio" name="autodrop" value="on" />on </label><label><input type="radio" name="autodrop" value="off" checked="checked" />off</label>'); |
if ($action eq 'modify') { |
if ($action eq 'modify') { |
$r->print(' ('.$$lt{'curr'}.' <b>'.$$lt{$drop}.'</b>)'); |
$r->print(' ('.$$lt{'curr'}.' <b>'.$$lt{$drop}.'</b>)'); |
} |
} |
$r->print('</nobr> |
$r->print('</nobr><br /><br />'.$$lt{'mapr'}); |
</td> |
|
</tr> |
|
<tr> |
|
<td colspan="4"> </td> |
|
</tr> |
|
<tr> |
|
<td> </td> |
|
<td colspan="3">'.$$lt{'mapr'}.' |
|
</td> |
|
</tr> |
|
'); |
|
} |
} |
|
|
sub mapping_settings { |
sub mapping_settings { |
my ($r,$tabcol,$rowColor1,$rowColor2,$sectioncount,$lt,$stored,$image, |
my ($r,$sectioncount,$lt,$stored,$image,$crstype) = @_; |
$crstype) = @_; |
|
my @sections = keys(%{$sectioncount}); |
my @sections = keys(%{$sectioncount}); |
if (@sections > 0) { |
if (@sections > 0) { |
@sections = sort {$a cmp $b} @sections; |
@sections = sort {$a cmp $b} @sections; |
Line 3207 sub mapping_settings {
|
Line 3096 sub mapping_settings {
|
unshift(@sections,'all'); # Put 'all' at the front of the list |
unshift(@sections,'all'); # Put 'all' at the front of the list |
} |
} |
&topic_bar($r,$image,$$lt{'pirs'}); |
&topic_bar($r,$image,$$lt{'pirs'}); |
$r->print(' |
|
<tr> |
|
<td> </td> |
|
<td colspan="3"> |
|
'); |
|
my @roles = &standard_roles(); |
my @roles = &standard_roles(); |
my %customroles = &my_custom_roles(); |
my %customroles = &my_custom_roles(); |
$r->print(&Apache::lonhtmlcommon::start_pick_box()); |
$r->print(&Apache::loncommon::start_data_table(). |
|
&Apache::loncommon::start_data_table_header_row()); |
$r->print(' |
$r->print(' |
<tr bgcolor="'.$tabcol.'"> |
|
<th>'.&mt('Active?').'</th> |
<th>'.&mt('Active?').'</th> |
<th>'.&mt('Role').'</th>'); |
<th>'.&mt('Role').'</th>'); |
if (@sections > 0) { |
if (@sections > 0) { |
$r->print('<th>'.&mt('Sections').'</th></tr>'."\n"); |
$r->print('<th>'.&mt('Sections').'</th>'); |
} |
} |
my $rowNum = 0; |
$r->print(&Apache::loncommon::end_data_table_header_row()."\n"); |
my $rowColor; |
|
foreach my $role (@roles) { |
foreach my $role (@roles) { |
my $plrole=&Apache::lonnet::plaintext($role,$crstype); |
my $plrole=&Apache::lonnet::plaintext($role,$crstype); |
my $sections_sel; |
my $sections_sel; |
Line 3238 sub mapping_settings {
|
Line 3121 sub mapping_settings {
|
'</td>'; |
'</td>'; |
} |
} |
} |
} |
if ($rowNum %2 == 1) { |
$r->print(&Apache::loncommon::start_data_table_row(). |
$rowColor = $rowColor1; |
'<td><input type="checkbox" '. |
} else { |
'name="autorole" value="'.$role.'" /></td><td>'.$plrole. |
$rowColor = $rowColor2; |
'</td>'.$sections_sel. |
} |
&Apache::loncommon::end_data_table_row()); |
$r->print('<tr bgcolor="'.$rowColor.'"><td><input type="checkbox" '. |
|
'name="autorole" value="'.$role.'"></td><td>'.$plrole. |
|
'</td>'.$sections_sel.'</tr>'); |
|
$rowNum ++; |
|
} |
} |
foreach my $role (sort(keys(%customroles))) { |
foreach my $role (sort(keys(%customroles))) { |
my $sections_sel; |
my $sections_sel; |
if (@sections > 0) { |
if (@sections > 0) { |
$sections_sel = '<td>'.§ions_selection(\@sections,'sec_'.$role). |
$sections_sel = |
'</td>'; |
'<td>'.§ions_selection(\@sections,'sec_'.$role).'</td>'; |
} |
} |
if ($rowNum %2 == 1) { |
$r->print(&Apache::loncommon::start_data_table_row(). |
$rowColor = $rowColor1; |
'<td><input type="checkbox" '. |
} else { |
'value="'.$role.'" /></td><td>'.$role.'</td>'. |
$rowColor = $rowColor2; |
$sections_sel. |
} |
&Apache::loncommon::end_data_table_row()); |
$r->print('<tr bgcolor="'.$rowColor.'"><td><input type="checkbox" '. |
|
'value="'.$role.'"></td><td>'.$role.'</td>'. |
|
$sections_sel.'</tr>'); |
|
$rowNum ++; |
|
} |
} |
$r->print(&Apache::lonhtmlcommon::end_pick_box()); |
$r->print(&Apache::loncommon::end_data_table()); |
return; |
return; |
} |
} |
|
|
Line 3321 sub modify_menu {
|
Line 3196 sub modify_menu {
|
} |
} |
|
|
sub member_privs_entries { |
sub member_privs_entries { |
my ($r,$tabcol,$rowColor1,$rowColor2,$usertools,$toolprivs, |
my ($r,$usertools,$toolprivs,$fixedprivs,$userdata,$idx,$showtools, |
$fixedprivs,$userdata,$idx,$showtools,$defprivs,$excluded) = @_; |
$defprivs,$excluded) = @_; |
my $rowColor; |
|
my $rowNum = 0; |
|
foreach my $user (sort(keys(%{$usertools}))) { |
foreach my $user (sort(keys(%{$usertools}))) { |
if (defined($excluded)) { |
if (defined($excluded)) { |
if (ref($excluded) eq 'ARRAY') { |
if (ref($excluded) eq 'ARRAY') { |
Line 3334 sub member_privs_entries {
|
Line 3207 sub member_privs_entries {
|
} |
} |
} |
} |
my ($uname,$udom) = split(/:/,$user); |
my ($uname,$udom) = split(/:/,$user); |
if ($rowNum %2 == 1) { |
$r->print(&Apache::loncommon::start_data_table_row().' |
$rowColor = $rowColor1; |
|
} else { |
|
$rowColor = $rowColor2; |
|
} |
|
$r->print('<tr bgcolor="'.$rowColor.'"> |
|
<td>'.$$userdata{$user}[$$idx{fullname}].'</td> |
<td>'.$$userdata{$user}[$$idx{fullname}].'</td> |
<td>'.$uname.'</td> |
<td>'.$uname.'</td> |
<td>'.$udom.'</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>Function</b></td></tr><tr><td><b>Fixed</b></td></tr><tr><td><b>Optional</b></td></tr></table></td>'); |
foreach my $tool (@{$showtools}) { |
foreach my $tool (@{$showtools}) { |
if (exists($$usertools{$user}{$tool})) { |
if (exists($$usertools{$user}{$tool})) { |
$r->print('<td valign="top"><table><tr bgcolor="'.$tabcol.'"><td colspan="2" align="center"><b>'.$tool.'</b></td></tr>'); |
$r->print('<td valign="top"><table><tr><th colspan="2">'.$tool.'</th></tr>'); |
my $privcount = 0; |
my $privcount = 0; |
my $fixed = ''; |
my $fixed = ''; |
my $dynamic = ''; |
my $dynamic = ''; |
Line 3369 sub member_privs_entries {
|
Line 3237 sub member_privs_entries {
|
} |
} |
$r->print('<tr><td colspan="2"><nobr>'.$fixed.'</nobr></td></tr><tr>'.$dynamic.'</tr></table></td>'); |
$r->print('<tr><td colspan="2"><nobr>'.$fixed.'</nobr></td></tr><tr>'.$dynamic.'</tr></table></td>'); |
} else { |
} else { |
$r->print('<td valign="top"><table width="100%"><tr bgcolor="'.$tabcol.'"><td colspan="2" align="center"><b>'.$tool.'</b></td></tr><tr><td> </td></tr><tr><td> </td></tr></table></td>'); |
$r->print('<td valign="top"><table width="100%"><tr><th colspan="2">'.$tool.'</th></tr><tr><td> </td></tr><tr><td> </td></tr></table></td>'); |
} |
} |
} |
} |
$rowNum ++; |
$r->print(&Apache::loncommon::end_data_table_row()); |
} |
} |
} |
} |
|
|
Line 3396 sub date_setting_table {
|
Line 3264 sub date_setting_table {
|
my $perpetual = |
my $perpetual = |
'<nobr><label><input type="checkbox" name="no_end_date" />'. |
'<nobr><label><input type="checkbox" name="no_end_date" />'. |
&mt('None').'</label></nobr>'; |
&mt('None').'</label></nobr>'; |
my $table = "<table>\n". |
my $table = "<table class=\"LC_descriptive_input\">\n". |
'<tr><td align="right">'.&mt('Start:').'</td>'. |
'<tr><td class="LC_description">'.&mt('Start:').'</td>'. |
'<td>'.$startform.'</td>'. |
'<td>'.$startform.'</td>'. |
'<td> </td>'."</tr>\n". |
'<td> </td>'."</tr>\n". |
'<tr><td align="right">'.&mt('End:').'</td>'. |
'<tr><td class="LC_description">'.&mt('End:').'</td>'. |
'<td>'.$endform.'</td>'. |
'<td>'.$endform.'</td>'. |
'<td>'.$perpetual.'</td>'."</tr>\n". |
'<td>'.$perpetual.'</td>'."</tr>\n". |
"</table>\n"; |
"</table>\n"; |
Line 3635 sub validate_groupname {
|
Line 3503 sub validate_groupname {
|
"existing $gpterm", |
"existing $gpterm", |
); |
); |
|
|
my $exitmsg = '<b>'.$lt{'igna'}.'</b><br /><br />'.$lt{'tgne'}.' "'. |
my $exitmsg = '<span class="LC_error">'.$lt{'igna'}.'</span><br /><br />'. |
$groupname.'" '; |
$lt{'tgne'}.' "'.$groupname.'" '; |
my $dupmsg = $lt{'grna'}; |
my $dupmsg = $lt{'grna'}; |
my $earlyout; |
my $earlyout; |
if (($groupname eq '') || ($groupname =~ /\W/)) { |
if (($groupname eq '') || ($groupname =~ /\W/)) { |
Line 3667 sub topic_bar {
|
Line 3535 sub topic_bar {
|
my ($r,$imgnum,$title) = @_; |
my ($r,$imgnum,$title) = @_; |
$r->print(' |
$r->print(' |
<div class="LC_topic_bar"> |
<div class="LC_topic_bar"> |
<img src="/res/adm/pages/bl_step'.$imgnum.'.gif" /> |
<img alt="'.&mt('Step [_1]',$imgnum). |
<span>'.$title.'<span> |
'"src="/res/adm/pages/bl_step'.$imgnum.'.gif" /> |
|
<span>'.$title.'</span> |
</div> |
</div> |
'); |
'); |
return; |
return; |