[LON-CAPA-cvs] cvs: loncom /auth lonroles.pm /interface loncommon.pm

bisitz bisitz@source.lon-capa.org
Thu, 04 Dec 2008 16:56:51 -0000


This is a MIME encoded message

--bisitz1228409811
Content-Type: text/plain

bisitz		Thu Dec  4 16:56:51 2008 EDT

  Modified files:              
    /loncom/auth	lonroles.pm 
    /loncom/interface	loncommon.pm 
  Log:
  Standard styles for roles screen
  and some other optimizations
  
  lonroles.pm:
  - Use data_table for roles screen
  - Moved status color from whole row background to only the first column.
    (This change is meant as an intermediate suggestion to get rid of the "color shock" effect ("Everything's green here!") and usage of standard LON-CAPA styles by keeping the main functionality)
  -  Only the green background for active, unselected roles isn't used anymore. (No special indication needed)
  - Removed some hardcoded font styles
  - Removed the usage of different font colors (not needed anymore; -> $tfont)
  - Removed empty separator rows (separation now done by different background colors in the data table rows)
  - Replaced hardcoded color styles with new external styles (->  $tbg)
  - Use double quotes for html attributes
  - Added missing &mt() call (-> Current Privileges)
  
  loncommon.pm:
  - Removed unneeded and unused rolesmenu styles
  - Added new styles for status display on roles screen but keep already used color values (-> lonroles.pm)
  - Don't change background color counter for standard rows anymore, if empty_row is called and displayed
  - Removed now unused font parameter from syllabuswrapper
  
  
--bisitz1228409811
Content-Type: text/plain
Content-Disposition: attachment; filename="bisitz-20081204165651.txt"

Index: loncom/auth/lonroles.pm
diff -u loncom/auth/lonroles.pm:1.211 loncom/auth/lonroles.pm:1.212
--- loncom/auth/lonroles.pm:1.211	Thu Dec  4 08:53:04 2008
+++ loncom/auth/lonroles.pm	Thu Dec  4 16:56:46 2008
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # User Roles Screen
 #
-# $Id: lonroles.pm,v 1.211 2008/12/04 08:53:04 tempelho Exp $
+# $Id: lonroles.pm,v 1.212 2008/12/04 16:56:46 bisitz Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -651,13 +651,12 @@
 	my $roletext;
 	my $sortkey;
         if ($envkey=~/^user\.role\./) {
-            my ($role,$where,$trolecode,$tstart,$tend,$tremark,$tstatus,$tpstart,$tpend,$tfont);
+            my ($role,$where,$trolecode,$tstart,$tend,$tremark,$tstatus,$tpstart,$tpend);
             &role_status($envkey,$then,$now,\$role,\$where,\$trolecode,\$tstatus,\$tstart,\$tend);
             next if (!defined($role) || $role eq '' || $role =~ /^gr/);
             $tremark='';
             $tpstart=' ';
             $tpend=' ';
-            $tfont='#000000';
             if ($tstart) {
                 $tpstart=&Apache::lonlocal::locallocaltime($tstart);
             }
@@ -674,30 +673,27 @@
 		|| ($tstatus eq 'future') 
                 || ($env{'form.showall'})) {
                 if ($tstatus eq 'is') {
-                    $tbg='#77FF77';
-                    $tfont='#003300';
+                    $tbg='LC_roles_is';
 		    $possiblerole=$trolecode;
 		    $countactive++;
                 } elsif ($tstatus eq 'future') {
-                    $tbg='#FFFF77';
+                    $tbg='LC_roles_future';
                     $button=0;
                     $futureroles{$trolecode} = $tstart.':'.$tend;
                     $countfuture ++;
                 } elsif ($tstatus eq 'will') {
-                    $tbg='#FFAA77';
+                    $tbg='LC_roles_will';
                     $tremark.=&mt('Active at next login.').' ';
                     $roles_nextlogin{$trolecode} = $tstart.':'.$tend;
                     $countwill ++;
                 } elsif ($tstatus eq 'expired') {
-                    $tbg='#FF7777';
-                    $tfont='#330000';
+                    $tbg='LC_roles_expired';
                     $button=0;
                 } elsif ($tstatus eq 'will_not') {
-                    $tbg='#AAFF77';
+                    $tbg='LC_roles_will_not';
                     $tremark.=&mt('Expired after logout.').' ';
                 } elsif ($tstatus eq 'selected') {
-                    $tbg='#11CC55';
-                    $tfont='#002200';
+                    $tbg='LC_roles_selected';
 		    $inrole=1;
 		    $countactive++;
                     $tremark.=&mt('Currently selected.').' ';
@@ -760,7 +756,7 @@
 			$sortkey=$role."\0".$tdom."\0".$twhere."\0".$envkey;
                         unless ($twhere eq &mt('Currently not available')) {
 			    $twhere.=' <span class="LC_fontsize_small">'.
-        &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom,$tfont).
+        &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom).
                                     '</span>';
 			}
                     } else {
@@ -770,7 +766,7 @@
 				"\0".$envkey;
                             $twhere=$newhash{'description'}.
                               ' <span class="LC_fontsize_small">'.
-        &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom,$tfont).
+        &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom).
                               '</span>';
                             $ttype = $newhash{'type'};
                             $trole = &Apache::lonnet::plaintext($role,$ttype);
@@ -794,7 +790,7 @@
                     $twhere=&mt('system wide');
 		    $sortkey=$role.$twhere;
                 }
-                $roletext.=&build_roletext($trolecode,$tdom,$trest,$tstatus,$tryagain,$advanced,$tremark,$tbg,$tfont,$trole,$twhere,$tpstart,$tpend,$nochoose,$button,$switchserver,$reinit);
+                $roletext.=&build_roletext($trolecode,$tdom,$trest,$tstatus,$tryagain,$advanced,$tremark,$tbg,$trole,$twhere,$tpstart,$tpend,$nochoose,$button,$switchserver,$reinit);
 		$roletext{$envkey}=$roletext;
 		if (!$sortkey) {$sortkey=$twhere."\0".$envkey;}
 		$sortrole{$sortkey}=$envkey;
@@ -804,9 +800,9 @@
     }
     if ($env{'user.adv'}) {
         $r->print(
-              '<br /><span class="LC_rolesinfo"><label>'.&mt('Show all roles').': <input type="checkbox" name="showall"');
+              '<p><label>'.&mt('Show all roles').': <input type="checkbox" name="showall"');
         if ($env{'form.showall'}) { $r->print(' checked="checked" '); }
-        $r->print(' /></label><input type="submit" value="'.&mt('Display').'" /></span>');
+        $r->print(' /></label><input type="submit" value="'.&mt('Display').'" /></p>');
     } else {
         if ($countactive > 0) {
             my $domdesc = &Apache::lonnet::domain($env{'user.domain'},'description');
@@ -831,19 +827,23 @@
             &print_rolerows($r,$doheaders,\%roleclass,\%sortrole,\%dcroles,
                             \%roletext);
             my $tremark='';
-            my $tfont='#003300';
+            my $tbg;
             if ($env{'request.role'} eq 'cm') {
-                $r->print('<tr bgcolor="#11CC55">');
+                $tbg="LC_roles_selected";
                 $tremark=&mt('Currently selected.').' ';
-                $tfont='#002200';
             } else {
-                $r->print('<tr bgcolor="#77FF77">');
+                $tbg="LC_roles_is";
             }
-            $r->print('<td></td><td colspan="3"><span style="color:'.$tfont.';"><span class="LC_rolesinfo">'.&mt('No role specified').
-                      '</span></font></td><td><span style="color:'.$tfont.';">'.$tremark.
-                      '&nbsp;</font></td></tr>'."\n");
+            $r->print(&Apache::loncommon::start_data_table_row()
+                     .'<td class="'.$tbg.'">&nbsp;</td>'
+                     .'<td colspan="3">'
+                     .&mt('No role specified')
+                     .'</td>'
+                     .'<td>'.$tremark.'&nbsp;</td>'
+                     .&Apache::loncommon::end_data_table_row()
+            );
 
-            $r->print('</table>');
+            $r->print(&Apache::loncommon::end_data_table());
         }
         $r->print(&Apache::loncommon::end_page());
 	return OK;
@@ -871,8 +871,12 @@
             } 
 	}
 	if ($output) {
-	    $r->print("<tr><td align='center' colspan='5'>".
-		      &mt('Recent Roles')."</td></tr>");
+	    $r->print(&Apache::loncommon::start_data_table_empty_row()
+                     .'<td align="center" colspan="5">'
+                     .&mt('Recent Roles')
+                     .'</td>'
+                     .&Apache::loncommon::end_data_table_empty_row()
+            );
 	    $r->print($output);
             $doheaders ++;
 	}
@@ -886,33 +890,36 @@
     &print_rolerows($r,$doheaders,\%roleclass,\%sortrole,\%dcroles,\%roletext);
     if ($countactive > 1) {
         my $tremark='';
-        my $tfont='#003300';
+        my $tbg;
         if ($env{'request.role'} eq 'cm') {
-	    $r->print('<tr bgcolor="#11CC55">');
+            $tbg="LC_roles_selected";
             $tremark=&mt('Currently selected.').' ';
-            $tfont='#002200';
         } else {
-            $r->print('<tr bgcolor="#77FF77">');
+                $tbg="LC_roles_is";
         }
+        $r->print(&Apache::loncommon::start_data_table_row());
         unless ($nochoose) {
 	    if ($env{'request.role'} ne 'cm') {
-	        $r->print('<td><input type="submit" value="'.
+	        $r->print('<td class="'.$tbg.'"><input type="submit" value="'.
 		          &mt('Select').'" name="cm" /></td>');
 	    } else {
-	        $r->print('<td>&nbsp;</td>');
+	        $r->print('<td class="'.$tbg.'">&nbsp;</td>');
 	    }
         }
-        $r->print('<td colspan="3"><span style="color:'.$tfont.';"><span class="LC_rolesinfo">'.&mt('No role specified').
-                  '</span></span></td><td><span style="color:'.$tfont.';">'.$tremark.
-                  '&nbsp;</span></td></tr>'."\n");
+        $r->print('<td colspan="3">'
+                 .&mt('No role specified')
+                 .'</td>'
+                 .'<td>'.$tremark.'&nbsp;</td>'
+                 .&Apache::loncommon::end_data_table_row()
+        );
     } 
-    $r->print('</table>');
+    $r->print(&Apache::loncommon::end_data_table());
     unless ($nochoose) {
 	$r->print("</form>\n");
     }
 # ------------------------------------------------------------ Privileges Info
     if (($advanced) && (($env{'user.error.msg'}) || ($error))) {
-	$r->print('<hr /><h2>Current Privileges</h2>');
+	$r->print('<hr /><h2>'.&mt('Current Privileges').'</h2>');
 	$r->print(&privileges_info());
     }
     $r->print(&Apache::lonnet::getannounce());
@@ -934,11 +941,17 @@
     my ($r,$roleclass,$sortrole,$nochoose) = @_;
     my $doheaders;
     if ((ref($sortrole) eq 'HASH') && (ref($roleclass) eq 'HASH')) {
-        $r->print('<br /><table id="LC_rolesmenu"><tr>');
+        $r->print('<br />'
+                 .&Apache::loncommon::start_data_table()
+                 .&Apache::loncommon::start_data_table_header_row()
+        );
         if (!$nochoose) { $r->print('<th>&nbsp;</th>'); }
-        $r->print('<th>'.&mt('User Role').'</th><th>'.&mt('Extent')
-                  .'</th><th>'.&mt('Start').'</th><th>'.&mt('End')
-                  .'</th></tr>'."\n");
+        $r->print('<th>'.&mt('User Role').'</th>'
+                 .'<th>'.&mt('Extent').'</th>'
+                 .'<th>'.&mt('Start').'</th>'
+                 .'<th>'.&mt('End').'</th>'
+                 .&Apache::loncommon::end_data_table_header_row()
+        );
         $doheaders=-1;
         my @roletypes = &roletypes();
         foreach my $type (@roletypes) {
@@ -981,9 +994,12 @@
             }
             if ($output) {
                 if ($doheaders > 0) {
-                    $r->print("<tr>".
-                              "<td align='center' colspan='5'>".
-                              &mt($type)."</td></tr>");
+                    $r->print(&Apache::loncommon::start_data_table_empty_row()
+                             .'<td align="center" colspan="5">'
+                             .&mt($type)
+                             .'</td>'
+                             .&Apache::loncommon::end_data_table_empty_row()
+                    );
                 }
                 $r->print($output);
             }
@@ -1093,8 +1109,8 @@
 }
 
 sub build_roletext {
-    my ($trolecode,$tdom,$trest,$tstatus,$tryagain,$advanced,$tremark,$tbg,$tfont,$trole,$twhere,$tpstart,$tpend,$nochoose,$button,$switchserver,$reinit) = @_;
-    my $roletext='<tr bgcolor="'.$tbg.'" class="LC_rolesmenu_'.$tstatus.'">';
+    my ($trolecode,$tdom,$trest,$tstatus,$tryagain,$advanced,$tremark,$tbg,$trole,$twhere,$tpstart,$tpend,$nochoose,$button,$switchserver,$reinit) = @_;
+    my $roletext=&Apache::loncommon::start_data_table_row();
     my $is_dc=($trolecode =~ m/^dc\./);
     my $rowspan=($is_dc) ? ''
                          : ' rowspan="2" ';
@@ -1104,33 +1120,40 @@
         $buttonname=~s/\W//g;
         if (!$button) {
             if ($switchserver) {
-                $roletext.='<td'.$rowspan.'><span class="LC_rolesinfo"><a href="/adm/switchserver?'.
-                $switchserver.'">'.&mt('Switch Server').'</a></span></td>';
+                $roletext.='<td'.$rowspan.' class="'.$tbg.'">'
+                          .'<a href="/adm/switchserver?'.$switchserver.'">'
+                          .&mt('Switch Server')
+                          .'</a></td>';
             } else {
-                $roletext.=('<td'.$rowspan.'>&nbsp;</td>');
+                $roletext.=('<td'.$rowspan.' class="'.$tbg.'">&nbsp;</td>');
             }
         } elsif ($tstatus eq 'is') {
-            $roletext.='<td'.$rowspan.'><input name="'.$buttonname.'" type="button" value="'.
+            $roletext.='<td'.$rowspan.' class="'.$tbg.'">'.
+                        '<input name="'.$buttonname.'" type="button" value="'.
                         &mt('Select').'" onClick="javascript:enterrole(this.form,\''.
                         $trolecode."','".$buttonname.'\');" /></td>';
         } elsif ($tryagain) {
             $roletext.=
-                '<td'.$rowspan.'><input name="'.$buttonname.'" type="button" value="'.
+                '<td'.$rowspan.' class="'.$tbg.'">'.
+                '<input name="'.$buttonname.'" type="button" value="'.
                 &mt('Try Selecting Again').'" onClick="javascript:enterrole(this.form,\''.
                         $trolecode."','".$buttonname.'\');" /></td>';
         } elsif ($advanced) {
             $roletext.=
-                '<td'.$rowspan.'><input name="'.$buttonname.'" type="button" value="'.
+                '<td'.$rowspan.' class="'.$tbg.'">'.
+                '<input name="'.$buttonname.'" type="button" value="'.
                 &mt('Re-Initialize').'" onClick="javascript:enterrole(this.form,\''.
                         $trolecode."','".$buttonname.'\');" /></td>';
         } elsif ($reinit) {
             $roletext.= 
-                '<td'.$rowspan.'><input name="'.$buttonname.'" type="button" value="'.
+                '<td'.$rowspan.' class="'.$tbg.'">'.
+                '<input name="'.$buttonname.'" type="button" value="'.
                 &mt('Re-Select').'" onClick="javascript:enterrole(this.form,\''.
                         $trolecode."','".$buttonname.'\');" /></td>';
         } else {
             $roletext.=
-                '<td'.$rowspan.'><input name="'.$buttonname.'" type="button" value="'.
+                '<td'.$rowspan.' class="'.$tbg.'">'.
+                '<input name="'.$buttonname.'" type="button" value="'.
                 &mt('Re-Initialize').'" onClick="javascript:enterrole(this.form,\''.
                         $trolecode."','".$buttonname.'\');" /></td>';
         }
@@ -1139,14 +1162,17 @@
 	$tremark.=&Apache::lonannounce::showday(time,1,
 			 &Apache::lonannounce::readcalendar($tdom.'_'.$trest));
     }
-    $roletext.='<td><span style="color:'.$tfont.';">'.$trole.
-	       '</span></td><td><span style="color:'.$tfont.';">'.$twhere.
-               '</span></td><td><span style="color:'.$tfont.';">'.$tpstart.
-               '</span></td><td><span style="color:'.$tfont.';">'.$tpend.
-               '</span></td></tr>';
+    $roletext.='<td>'.$trole.'</td>'
+              .'<td>'.$twhere.'</td>'
+              .'<td>'.$tpstart.'</td>'
+              .'<td>'.$tpend.'</td>'
+              .&Apache::loncommon::end_data_table_row();
     if (!$is_dc) {
-	$roletext.='<tr bgcolor="'.$tbg.'"><td colspan="4"><span style="color:'.$tfont.';"><span class="LC_rolesinfo">'.$tremark.
-	    '</span>&nbsp;</span></td></tr><tr><td colspan="5" height="3"></td></tr>'."\n";
+        $roletext.=&Apache::loncommon::continue_data_table_row()
+                  .'<td colspan="4">'
+                  .$tremark.'&nbsp;'
+                  .'</td>'
+                  .&Apache::loncommon::end_data_table_row();
     }
     return $roletext;
 }
@@ -1190,7 +1216,7 @@
     my ($cdom,$cnum,$then,$now,$checkrole) = @_;
     my $cckey = 'user.role.'.$checkrole.'./'.$cdom.'/'.$cnum; 
     if ($env{$cckey}) {
-        my ($role,$where,$trolecode,$tstart,$tend,$tremark,$tstatus,$tpstart,$tpend,$tfont);
+        my ($role,$where,$trolecode,$tstart,$tend,$tremark,$tstatus,$tpstart,$tpend);
         &role_status($cckey,$then,$now,\$role,\$where,\$trolecode,\$tstatus,\$tstart,\$tend);
         unless (($tstatus eq 'is') || ($tstatus eq 'will_not')) {
             &set_privileges($cdom,$cnum,$checkrole);
@@ -1363,13 +1389,12 @@
             my $trolecode = 'cc./'.$1.'/'.$2;
             my $twhere;
             my $ttype;
-            my $tbg='#77FF77';
-            my $tfont='#003300';
+            my $tbg='LC_roles_is';
             my %newhash=&Apache::lonnet::coursedescription($tcourseid);
             if (%newhash) {
                 $twhere=$newhash{'description'}.
                         ' <span style="LC_fontsize_small">'.
-                        &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$2,$1,$tfont).
+                        &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$2,$1).
                         '</span>';
                 $ttype = $newhash{'type'};
             } else {
@@ -1378,7 +1403,7 @@
             }
             my $trole = &Apache::lonnet::plaintext('cc',$ttype);
             $twhere.="<br />".&mt('Domain').":".$1;
-            $roletext = &build_roletext($trolecode,$1,$2,'is',$tryagain,$advanced,'',$tbg,$tfont,$trole,$twhere,'','','',1,'');
+            $roletext = &build_roletext($trolecode,$1,$2,'is',$tryagain,$advanced,'',$tbg,$trole,$twhere,'','','',1,'');
         }
     }
     return ($roletext);
@@ -1386,20 +1411,24 @@
 
 sub adhoc_roles_row {
     my ($dcdom,$rowtype) = @_;
-    my $output = '<tr bgcolor="#77FF77">'.
-                 ' <td colspan="5"><table><tr><td><span class="LC_rolesinfo">'
-                 .&mt('[_1]Ad hoc[_2] roles in domain [_3] --',
-                 '<span class="LC_cusr_emph">','</span>',$dcdom).'</span></td><td>';
+    my $output = &Apache::loncommon::continue_data_table_row()
+                 .' <td colspan="5">'
+                 .'<table><tr><td>'
+                 .&mt('[_1]Ad hoc[_2] roles in domain [_3] --'
+                     ,'<span class="LC_cusr_emph">','</span>',$dcdom)
+                 .'</td>'
+                 .'<td>';
     my $selectcclink = &courselink($dcdom,$rowtype);
     my $ccrole = &Apache::lonnet::plaintext('cc');
     my $carole = &Apache::lonnet::plaintext('ca');
     my $selectcalink = &coauthorlink($dcdom,$rowtype);
-    $output.= '<span class="LC_rolesinfo">'.
-            &mt('[_1]: [_2]',$ccrole,$selectcclink).
-            '</span><br /></td><td>&nbsp;&nbsp;</td><td><span class="LC_rolesinfo">'.
-            &mt('[_1]: [_2]',$carole,$selectcalink).
-            '</span><br /></td></tr></table></td></tr>'.
-            '<tr><td colspan="5" height="3"></td></tr>'."\n";
+    $output.=&mt('[_1]: [_2]',$ccrole,$selectcclink)
+            .'<br /></td>'
+            .'<td>&nbsp;&nbsp;</td>'
+            .'<td>'.&mt('[_1]: [_2]',$carole,$selectcalink).'<br /></td>'
+            .'</tr></table>'
+            .'</td>'
+            .&Apache::loncommon::end_data_table_row();
     return $output;
 }
 
Index: loncom/interface/loncommon.pm
diff -u loncom/interface/loncommon.pm:1.706 loncom/interface/loncommon.pm:1.707
--- loncom/interface/loncommon.pm:1.706	Thu Dec  4 13:39:47 2008
+++ loncom/interface/loncommon.pm	Thu Dec  4 16:56:50 2008
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # a pile of common routines
 #
-# $Id: loncommon.pm,v 1.706 2008/12/04 13:39:47 harmsja Exp $
+# $Id: loncommon.pm,v 1.707 2008/12/04 16:56:50 bisitz Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -2768,10 +2768,7 @@
 
 
 sub syllabuswrapper {
-    my ($linktext,$coursedir,$domain,$fontcolor)=@_;
-    if ($fontcolor) { 
-        $linktext='<span style="color:'.$fontcolor.';">'.$linktext.'</span>'; 
-    }
+    my ($linktext,$coursedir,$domain)=@_;
     return qq{<a href="/public/$domain/$coursedir/syllabus">$linktext</a>};
 }
 
@@ -4653,34 +4650,6 @@
   font-weight: bold;
 }
 
-.LC_rolesmenu_is {
-  font-family: $sans;
-}
-
-.LC_rolesmenu_selected {
-  font-family: $sans;
-}
-
-.LC_rolesmenu_future {
-  font-family: $sans;
-}
-
-
-.LC_rolesmenu_will {
-  font-family: $sans;
-}
-
-.LC_rolesmenu_will_not {
-  font-family: $sans;
-}
-
-.LC_rolesmenu_expired {
-  font-family: $sans;
-}
-
-.LC_rolesinfo {
-  font-family: $sans;
-}
 
 .LC_dropadd_labeltext {
   font-family: $sans;
@@ -4890,6 +4859,25 @@
   background: #CCCCFF;
 }
 
+table.LC_data_table tr > td.LC_roles_is {
+/*  background: #77FF77; */
+}
+table.LC_data_table tr > td.LC_roles_future {
+  background: #FFFF77;
+}
+table.LC_data_table tr > td.LC_roles_will {
+  background: #FFAA77;
+}
+table.LC_data_table tr > td.LC_roles_expired {
+  background: #FF7777;
+}
+table.LC_data_table tr > td.LC_roles_will_not {
+  background: #AAFF77;
+}
+table.LC_data_table tr > td.LC_roles_selected {
+  background: #11CC55;
+}
+
 span.LC_current_location {
   font-size:larger;
   background: $pgbg;
@@ -6193,7 +6181,7 @@
     }
 
     sub start_data_table_empty_row {
-	$row_count[0]++;
+#	$row_count[0]++;
 	return  '<tr class="LC_empty_row" >'."\n";;
     }
 

--bisitz1228409811--