--- loncom/interface/loncommon.pm	2004/11/08 22:50:37	1.227
+++ loncom/interface/loncommon.pm	2004/11/13 21:06:27	1.231
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # a pile of common routines
 #
-# $Id: loncommon.pm,v 1.227 2004/11/08 22:50:37 albertel Exp $
+# $Id: loncommon.pm,v 1.231 2004/11/13 21:06:27 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -375,9 +375,10 @@ sub selectstudent_link {
 }
 
 sub coursebrowser_javascript {
-    my ($domainfilter)=@_;
+    my ($domainfilter,$roleelement)=@_;
    return (<<ENDSTDBRW);
 <script type="text/javascript" language="Javascript" >
+    var extra_element = "$roleelement" 
     var stdeditbrowser;
     function opencrsbrowser(formname,uname,udom,desc) {
         var url = '/adm/pickcourse?';
@@ -396,6 +397,9 @@ sub coursebrowser_javascript {
         url += 'form=' + formname + '&cnumelement='+uname+
 	                            '&cdomelement='+udom+
                                     '&cnameelement='+desc;
+        if (extra_element != '') {
+            url += '&roleelement=$roleelement';
+        }
         var title = 'Course_Browser';
         var options = 'scrollbars=1,resizable=1,menubar=0';
         options += ',width=700,height=600';
@@ -2556,7 +2560,7 @@ sub bodytag {
     if (!defined($lonhttpdPort)) { $lonhttpdPort='8080'; }
 # construct main body tag
     my $bodytag = <<END;
-<style>
+<style type="text/css">
 h1, h2, h3, th { font-family: Arial, Helvetica, sans-serif }
 a:focus { color: red; background: yellow } 
 </style>
@@ -2577,7 +2581,6 @@ END
 # No Remote
 	my $roleinfo=(<<ENDROLE);
 <td bgcolor="$tabbg" align="right">
-<p>
 <font size="2" face="Arial, Helvetica, sans-serif">
     $ENV{'environment.firstname'}
     $ENV{'environment.middlename'}
@@ -2588,14 +2591,30 @@ END
 <font size="2" face="Arial, Helvetica, sans-serif">$role</font>&nbsp;
 <br />
 <font size="2" face="Arial, Helvetica, sans-serif">$realm</font>&nbsp;
-</p>
 </td>
 ENDROLE
         my $titleinfo = '<font face="Arial, Helvetica, sans-serif" size="+3" color="'.
-                        $font.'"><b>'.$title.'</b></font>';
+		$font.'"><b>'.$title.'</b></font>';
         if ($customtitle) {
             $titleinfo = $customtitle;
         } 
+	if ($ENV{'request.state'} eq 'construct') {
+	    my ($uname,$thisdisfn)=
+		($ENV{'request.filename'} =~ m|^/home/([^/]+)/public_html/(.*)|);
+	    my $formaction='/priv/'.$uname.'/'.$thisdisfn;
+	    $formaction=~s/\/+/\//g;
+	    $titleinfo = '<form name="dirs" method="post" action="'.$formaction
+		.'" target="_top">'
+		.&Apache::lonhtmlcommon::crumbs($uname.'/'.$thisdisfn,'_top','/priv','',-1,1)."<br />"
+		.&Apache::lonhtmlcommon::select_recent('construct','recent','this.form.action=this.form.recent.value;this.form.submit()')
+		.'</form>'
+		.&Apache::lonmenu::constspaceform();
+
+	    &Apache::lonhtmlcommon::store_recent('construct',$formaction,$formaction);
+	    if ($thisdisfn!~m|/$|) {  $forcereg=1; }
+	}
+
+	&Apache::lonnet::logthis("hrrm");
         return $bodytag.&Apache::lonmenu::menubuttons($forcereg,'web',
                                                       $forcereg).
       '<table bgcolor="'.$pgbg.'" width="100%" border="0" cellspacing="3" cellpadding="3"><tr><td rowspan="3" bgcolor="'.$tabbg.'">'.$titleinfo.'</td>'.$roleinfo.'</tr></table>';
@@ -3291,6 +3310,10 @@ sub DrawBarGraph {
                   '#66ccff', '#ff9999', '#cccc33', '#660000', '#33cc66',
                   ]; 
     }
+    my $extra_settings = {};
+    if (ref($Values[-1]) eq 'HASH') {
+        $extra_settings = pop(@Values);
+    }
     #
     my $identifier = &get_cgi_id();
     my $id = 'cgi.'.$identifier;        
@@ -3366,6 +3389,11 @@ sub DrawBarGraph {
     $ValuesHash{$id.'.bar_width'} = $bar_width;
     $ValuesHash{$id.'.labels'} = join(',',@Labels);
     #
+    # Deal with other parameters
+    while (my ($key,$value) = each(%$extra_settings)) {
+        $ValuesHash{$id.'.'.$key} = $value;
+    }
+    #
     &Apache::lonnet::appenv(%ValuesHash);
     return '<img src="/cgi-bin/graph.png?'.$identifier.'" border="1" />';
 }