--- loncom/interface/loncoursegroups.pm 2006/07/07 16:48:21 1.40 +++ loncom/interface/loncoursegroups.pm 2006/07/07 19:34:20 1.43 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: loncoursegroups.pm,v 1.40 2006/07/07 16:48:21 albertel Exp $ +# $Id: loncoursegroups.pm,v 1.43 2006/07/07 19:34:20 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1182,10 +1182,9 @@ sub general_settings_form { $toolprivs,$fixedprivs,$sectioncount,$stored,$states,$navbuttons, $rowColor1,$rowColor2,$gpterm,$ucgpterm,$crstype) = @_; my ($nexttext,$prevtext); - &groupsettings_options($r,$tabcol,$functions,$action,$formname,$stored,1, + &groupsettings_options($r,$functions,$action,$formname,$stored,1, $gpterm,$ucgpterm,$crstype); - &access_date_settings($r,$tabcol,$action,$formname,$stored,2,$gpterm, - $ucgpterm); + &access_date_settings($r,$action,$formname,$stored,2,$gpterm,$ucgpterm); if ($action eq 'create') { &membership_options($r,$action,$formname,$sectioncount,3,$gpterm, $ucgpterm); @@ -1210,7 +1209,7 @@ sub general_settings_form { } sub groupsettings_options { - my ($r,$tabcol,$functions,$action,$formname,$stored,$image,$gpterm, + my ($r,$functions,$action,$formname,$stored,$image,$gpterm, $ucgpterm,$crstype) = @_; my %lt = &Apache::lonlocal::texthash( 'gdat' => "$ucgpterm open and close dates", @@ -1226,12 +1225,9 @@ sub groupsettings_options { my ($crsquota,$freespace,$maxposs) = &get_quota_constraints($action,$stored); &topic_bar($r,$image,$lt{'gnde'}); $r->print(' - <tr> - <td> </td> - <td colspan="3"> - <table border="0" cellpadding="2" cellspacing="2"> + <table class="LC_descriptive_input"> <tr> - <td><b>'.$lt{'gnam'}.':</b></td> + <td class="LC_description">'.$lt{'gnam'}.':</td> <td colspan="5"> '); if ($action eq 'create') { @@ -1244,13 +1240,13 @@ sub groupsettings_options { </td> <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" value="" /> </td> <tr> <tr> - <td><b>$lt{'func'}:</b></td> + <td class="LC_description">$lt{'func'}:</td> END my $numitems = keys(%{$functions}); my $halfnum = int($numitems/2); @@ -1284,7 +1280,7 @@ END </td> </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>'); if ($action eq 'modify') { $r->print(' ('.&mt('Currently set to "[_1]"', @@ -1294,7 +1290,7 @@ END </td> </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') { $r->print(&mt('If you enable the file repository for the [_1], allocate a disk quota.',$gpterm)); } else { @@ -1318,8 +1314,6 @@ END </td> </tr> </table> - </td> - </tr> '); return; } @@ -1428,7 +1422,7 @@ sub sections_selection { } sub access_date_settings { - my ($r,$tabcol,$action,$formname,$stored,$image,$gpterm,$ucgpterm) = @_; + my ($r,$action,$formname,$stored,$image,$gpterm,$ucgpterm) = @_; my %lt = &Apache::lonlocal::texthash( 'sten' => "Default start and end dates for $gpterm access", ); @@ -1440,21 +1434,11 @@ sub access_date_settings { $endtime = $$stored{'enddate'}; } } - my ($start_table,$end_table) = &date_setting_table - ($starttime,$endtime,$formname); + my ($table) = &date_setting_table($starttime,$endtime,$formname); &topic_bar($r,$image,$lt{'sten'}); $r->print(' - <tr> - <td> </td> - <td colspan="3">'.$start_table.'</td> - <tr> - <tr> - <td colspan="4"> </td> - </tr> - <tr> - <td> </td> - <td colspan="3">'.$end_table.'</td> - <tr>'); + '.$table.' + '); return; } @@ -1472,6 +1456,7 @@ sub choose_members_form { my $earlyout = &validate_groupname($groupname,$action,$cdom,$cnum,$gpterm, $ucgpterm,$crstype); if ($earlyout) { + $r->print($earlyout) &display_navbuttons($r,$formname,$$states{$action}[$page-1], $$navbuttons{'gtps'}); return; @@ -1523,13 +1508,7 @@ sub choose_members_form { sub display_navbuttons { my ($r,$formname,$prev,$prevtext,$next,$nexttext) = @_; - $r->print(' - <tr> - <td colspan="4"> </td> - </tr> - <tr> - <td> </td> - <td colspan="3">'); + $r->print('<div class="LC_navbuttons">'); if ($prev) { $r->print(' <input type="button" name="previous" value = "'.$prevtext.'" @@ -1541,10 +1520,7 @@ sub display_navbuttons { <input type="button" name="next" value="'.$nexttext.'" onclick="javascript:nextPage(document.'.$formname.','."'".$next."'".')" />'); } - $r->print(' - </td> - </tr> -'); + $r->print('</div>'); } sub check_tools { @@ -1585,7 +1561,7 @@ sub print_current_settings { } if ($action eq 'create') { $r->print(' -<div><span>'.$lt{'ygrs'}.'</span> +<div><span style="font-size: larger">'.$lt{'ygrs'}.'</span> <br />'.$lt{'tfwa'}.' </div>'); } @@ -1697,9 +1673,6 @@ sub pick_new_members { &topic_bar($r,$img,$lt{'gpme'}); if (keys(%members) > 0) { $r->print(' - <tr> - <td> </td> - <td colspan="3"> <table> <tr>'); &check_uncheck_buttons($r,$formname,'member',$lt{'addm'}); @@ -1714,42 +1687,32 @@ sub pick_new_members { </fieldset></nobr></td>'); } $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(' - <table border="0" cellpadding="4" cellspacing="1"> - <tr bgcolor="'.$tabcol.'" align="center"> - <td><b>'.&mt('Add?').'</b></td> - <td><b><a href="javascript:changeSort('."'fullname'".')">'.&mt('Name').'</a></b></td> - <td><b><a href="javascript:changeSort('."'username'".')">'.&mt('Username').'</a></b> - </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> + <th>'.&mt('Add?').'</b></td> + <th><a href="javascript:changeSort('."'fullname'".')">'.&mt('Name').'</a></td> + <th><a href="javascript:changeSort('."'username'".')">'.&mt('Username').'</a></td> + <th><a href="javascript:changeSort('."'domain'".')">'.&mt('Domain').'</a></td> + <th><a href="javascript:changeSort('."'id'".')">'.&mt('ID').'</a></td> + <th><a href="javascript:changeSort('."'section'".')">'.&mt('Section').'</a></td> '); 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 ($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 align="center"><small><nobr><b>'.&mt('All:').'</b> '); + <td align="center"><nobr><b>'.&mt('All:').'</b> '); foreach my $tool (@{$available}) { $r->print('<label><input type="checkbox" name="togglefunc" '. 'onclick="javascript:toggleTools(document.'.$formname.'.user_'.$tool.',this);"'. ' value="'.$tool.'">'.'<b>'.$tool.'</b></label> '); } - $r->print('</nobr></small></td></tr>'); + $r->print('</nobr></td></tr>'); } } my %Sortby = (); @@ -1768,27 +1731,22 @@ sub pick_new_members { push(@{$Sortby{$members{$user}[$$idx{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 { - $rowColor = $rowColor2; - } my $id = $members{$user}[$$idx{id}]; my $fullname = $members{$user}[$$idx{fullname}]; my $udom = $members{$user}[$$idx{udom}]; my $uname = $members{$user}[$$idx{uname}]; my $section = $members{$user}[$$idx{section}]; - $r->print('<tr bgcolor="'.$rowColor.'"><td align="right"> - <input type="checkbox" name="member" value="'.$user.'" /></td><td><small>'. - $fullname.'</small></td><td><small>'.$uname.'</small></td><td><small>'. - $udom.'</small></td><td><small>'.$id.'</small></td>'. - '<td><small>'.$section.'</small></td>'); + $r->print(&Apache::loncommon::start_data_table_row('LC_data_table_dense'). + '<td align="right"><input type="checkbox" name="member" value="'.$user.'" /></td>'. + '<td>'.$fullname.'</td>'. + '<td>'.$uname.'</td>'. + '<td>'.$udom.'</td>'. + '<td>'.$id.'</td>'. + '<td>'.$section.'</td>'); if (@{$available} > 0) { - $r->print('<td align="center"><nobr><small>'. + $r->print('<td align="center"><nobr>'. ' '); foreach my $tool (@{$available}) { if ($granularity eq 'Yes') { @@ -1799,30 +1757,18 @@ sub pick_new_members { $tool.'" value="'.$user.'" />'.$tool.' '); } } - $r->print('</small></nobr></td>'); + $r->print('</nobr></td>'); } - $r->print('</tr>'."\n"); - $rowNum ++; + $r->print(&Apache::loncommon::end_data_table_row()."\n"); } } - $r->print(&Apache::lonhtmlcommon::end_pick_box()); - $r->print(' - </td> - </tr>'); + $r->print(&Apache::loncommon::end_data_table()); } else { - $r->print(' - <tr> - <td> </td> - <td colspan="3"> -'); if ($totalusers > 0) { $r->print($lt{'nnew'}.'<br /><br />'.$lt{'yoma'}); } else { $r->print($lt{'nome'}); } - $r->print(' - </td> - </tr>'); } return $newusers; } @@ -1924,8 +1870,8 @@ sub privilege_specificity { } else { $r->print($lt{'algm'}.'<br /><br />'); } - &default_privileges($r,$action,$tabcol,$rowColor1,$rowColor2, - $tools,$toolprivs,$fixedprivs,$available); + &default_privileges($r,$action,$tools,$toolprivs,$fixedprivs, + $available); } else { if ($action eq 'create') { $r->print($lt{'asyo'}); @@ -1949,79 +1895,70 @@ sub privilege_specificity { } sub default_privileges { - my ($r,$action,$tabcol,$rowColor1,$rowColor2,$tools,$toolprivs, - $fixedprivs,$available) = @_; + my ($r,$action,$tools,$toolprivs,$fixedprivs,$available) = @_; my %lt = &Apache::lonlocal::texthash( 'addp' => 'Additional privileges', 'fixp' => 'Fixed privileges', 'oppr' => 'Optional privileges', 'func' => 'Function', ); - $r->print(&Apache::lonhtmlcommon::start_pick_box()); - $r->print('<tr> - <td bgcolor="'.$tabcol.'" valign="top"> - <table cellspacing="0" cellpadding="1"> - <tr> - <td valign="top"><b>'.$lt{'func'}.'</b></td> - </tr> - <tr> - <td valign="top"><b>'.$lt{'fixp'}.'</b></td> - </tr> - <tr> - <td valign="top"><b>'.$lt{'oppr'}.'</b></td> - </tr> - </table> - </td> - '); + $r->print(&Apache::lonhtmlcommon::start_pick_box('LC_group_priv_box'). + &Apache::lonhtmlcommon::row_title($lt{'func'},undef, + 'LC_groups_functionality')); + $r->print(join('</td><td class="LC_groups_functionality">',@{$tools})); + $r->print(&Apache::lonhtmlcommon::row_closure(1)); + my $fixed = ''; + my $dynamic = ''; 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 $fixed = ''; - my $dynamic = ''; + if ($dynamic ne '') { + $dynamic .= '</td><td class="LC_groups_optional">'; + } + $dynamic .= '<table class="LC_group_priv"><tr>'; foreach my $priv (sort(keys(%{$$toolprivs{$tool}}))) { 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}.' '; if ($action eq 'modify') { - if (grep/^$tool$/,@{$available}) { + if (grep(/^$tool$/,@{$available})) { $fixed .= '<small>'.&mt('(on)').'<small> '; } else { $fixed .= '<small>'.&mt('(off)').'<small> '; } } } else { - $privcount ++; + $privcount++; if ($privcount == 3) { $dynamic .= '</tr> - <tr bgcolor="'.$rowColor1.'">'."\n"; + <tr>'."\n"; } $dynamic .= '<td><label><input type="checkbox" name="defpriv" value="'.$priv.'" />'.$$toolprivs{$tool}{$priv}.'</label></td>'."\n"; } } - if ($dynamic eq '') { - $dynamic = '<td>None</td>'."\n"; + if ($privcount == 0) { + $dynamic .= '<td>None</td>'."\n"; } if ($privcount < 3) { - $dynamic .= '</tr> - <tr bgcolor="'.$rowColor1.'"> - <td colspan="2"> </td>'."\n"; + $dynamic .= '</td> + <td> </td>'."\n"; } elsif ($privcount%2) { $dynamic = '<td> </td>'."\n"; } - $r->print('<tr bgcolor="'.$rowColor2.'"> - <td colspan="2" align="center"><nobr>'.$fixed.'</nobr></td> - </tr> - <tr bgcolor="'.$rowColor1.'">'."\n".$dynamic.'</tr>'."\n".'</table>'."\n".'</td> - '); + $dynamic .= '</tr></table>'; } - $r->print('</tr>'."\n"); - $r->print(&Apache::lonhtmlcommon::end_pick_box()); + $r->print(&Apache::lonhtmlcommon::row_title($lt{'fixp'},undef, + '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 />'); return; + } sub display_defprivs { @@ -2651,9 +2588,6 @@ sub member_privileges_form { my %total; if (keys(%{$usertools}) > 1) { $r->print(' - <tr> - <td> </td> - <td colspan="3"> <table border="0" cellspacing="2" cellpadding="2" border="0"> <tr> '); @@ -2718,30 +2652,22 @@ END \@excluded); $r->print('</td>'); $r->print(&Apache::lonhtmlcommon::end_pick_box()); - $r->print('</td></tr> - <tr> - <td colspan="4"> </td> - </tr> -'); } else { - $r->print('<tr><td> </td><td colspan="3">'.$lt{'forf'}. - '<br />'); + $r->print($lt{'forf'}.'<br />'); &display_defprivs($r,$tabcol,$rowColor1,$rowColor2,$tools, $toolprivs,\@defprivs); } } else { if (keys(%{$usertools}) > 0) { - $r->print('<tr><td> </td><td colspan="3">'.$lt{'algr'}. - '<br /><br />'); + $r->print($lt{'algr'}.'<br /><br />'); &display_defprivs($r,$tabcol,$rowColor1,$rowColor2,$tools, $toolprivs,\@defprivs); } else { - $r->print('<tr><td> </td><td colspan="3">'.$lt{'asno'}. - '<br />'); + $r->print($lt{'asno'}.'<br />'); } } } else { - $r->print('<tr><td> </td><td colspan="3">'.$lt{'asng'}); + $r->print($lt{'asng'}); } return $numchgs; } @@ -3423,23 +3349,18 @@ sub date_setting_table { 'startdate',$starttime); my $endform = &Apache::lonhtmlcommon::date_setter($formname, 'enddate',$endtime); - my $perpetual = '<nobr><label><input type="checkbox" name="no_end_date" /> - no ending date</label></nobr>'; - my $start_table = ''; - $start_table .= "<table>\n"; - $start_table .= '<tr><td align="right">Default starting date for - member access</td>'. + my $perpetual = + '<nobr><label><input type="checkbox" name="no_end_date" />'. + &mt('None').'</label></nobr>'; + my $table = "<table class=\"LC_descriptive_input\">\n". + '<tr><td class="LC_description">'.&mt('Start:').'</td>'. '<td>'.$startform.'</td>'. - '<td> </td>'."</tr>\n"; - $start_table .= "</table>"; - my $end_table = ''; - $end_table .= "<table>\n"; - $end_table .= '<tr><td align="right">Default ending date for - member access</td>'. + '<td> </td>'."</tr>\n". + '<tr><td class="LC_description">'.&mt('End:').'</td>'. '<td>'.$endform.'</td>'. - '<td>'.$perpetual.'</td>'."</tr>\n"; - $end_table .= "</table>\n"; - return ($start_table, $end_table); + '<td>'.$perpetual.'</td>'."</tr>\n". + "</table>\n"; + return $table; } sub add_group_folder { @@ -3670,8 +3591,8 @@ sub validate_groupname { "existing $gpterm", ); - my $exitmsg = '<b>'.$lt{'igna'}.'</b><br /><br />'.$lt{'tgne'}.' "'. - $groupname.'" '; + my $exitmsg = '<span class="LC_error">'.$lt{'igna'}.'</span><br /><br />'. + $lt{'tgne'}.' "'.$groupname.'" '; my $dupmsg = $lt{'grna'}; my $earlyout; if (($groupname eq '') || ($groupname =~ /\W/)) {