--- loncom/interface/loncommon.pm 2004/10/29 18:40:40 1.224 +++ loncom/interface/loncommon.pm 2004/11/19 19:31:51 1.232 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.224 2004/10/29 18:40:40 raeburn Exp $ +# $Id: loncommon.pm,v 1.232 2004/11/19 19:31:51 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -59,7 +59,6 @@ use Apache::lonnet(); use GDBM_File; use POSIX qw(strftime mktime); use Apache::Constants qw(:common :http :methods); -use Apache::lonmsg(); use Apache::lonmenu(); use Apache::lonlocal; use HTML::Entities; @@ -376,9 +375,10 @@ sub selectstudent_link { } sub coursebrowser_javascript { - my ($domainfilter)=@_; + my ($domainfilter,$roleelement)=@_; return (< + var extra_element = "$roleelement" var stdeditbrowser; function opencrsbrowser(formname,uname,udom,desc) { var url = '/adm/pickcourse?'; @@ -397,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'; @@ -663,6 +666,7 @@ sub help_open_menu { my $link=''; my $title = &mt('Get help'); my $origurl = $ENV{'REQUEST_URI'}; + $origurl=~s|^/~|/priv/|; my $timestamp = time; foreach (\$color,\$function,\$topic,\$component_help,\$faq,\$bug,\$origurl) { $$_ = &Apache::lonnet::escape($$_); @@ -1741,21 +1745,26 @@ sub get_related_words { =over 4 -=item * plainname($uname,$udom) +=item * plainname($uname,$udom,$first) Takes a users logon name and returns it as a string in -"first middle last generation" form +"first middle last generation" form +if $first is set to 'lastname' then it returns it as +'lastname generation, firstname middlename' if their is a lastname =cut ############################################################### sub plainname { - my ($uname,$udom)=@_; + my ($uname,$udom,$first)=@_; my %names=&Apache::lonnet::get('environment', ['firstname','middlename','lastname','generation'], $udom,$uname); - my $name=$names{'firstname'}.' '.$names{'middlename'}.' '. - $names{'lastname'}.' '.$names{'generation'}; + my $name=&Apache::lonnet::format_name($names{'firstname'}, + $names{'middlename'}, + $names{'lastname'}, + $names{'generation'},$first); + $name=~s/^\s+//; $name=~s/\s+$//; $name=~s/\s+/ /g; if ($name !~ /\S/) { $name=$uname.'@'.$udom; } @@ -2551,7 +2560,7 @@ sub bodytag { if (!defined($lonhttpdPort)) { $lonhttpdPort='8080'; } # construct main body tag my $bodytag = < + @@ -2572,7 +2581,6 @@ END # No Remote my $roleinfo=(< -

$ENV{'environment.firstname'} $ENV{'environment.middlename'} @@ -2583,14 +2591,29 @@ END $role 
$realm  -

ENDROLE my $titleinfo = ''.$title.''; + $font.'">'.$title.''; 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 = '
' + .&Apache::lonhtmlcommon::crumbs($uname.'/'.$thisdisfn,'_top','/priv','',-1,1)."
" + .&Apache::lonhtmlcommon::select_recent('construct','recent','this.form.action=this.form.recent.value;this.form.submit()') + .'
' + .&Apache::lonmenu::constspaceform(); + + &Apache::lonhtmlcommon::store_recent('construct',$formaction,$formaction); + if ($thisdisfn!~m|/$|) { $forcereg=1; } + } + return $bodytag.&Apache::lonmenu::menubuttons($forcereg,'web', $forcereg). ''.$roleinfo.'
'.$titleinfo.'
'; @@ -3286,13 +3309,28 @@ 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; if (! @Values || ref($Values[0]) ne 'ARRAY') { return ''; } + # + my @Labels; + if (defined($labels)) { + @Labels = @$labels; + } else { + for (my $i=0;$i<@{$Values[0]};$i++) { + push (@Labels,$i+1); + } + } + # my $NumBars = scalar(@{$Values[0]}); + if ($NumBars < scalar(@Labels)) { $NumBars = scalar(@Labels); } my %ValuesHash; my $NumSets=1; foreach my $array (@Values) { @@ -3302,10 +3340,14 @@ sub DrawBarGraph { } # my ($height,$width,$xskip,$bar_width) = (200,120,1,15); - if ($NumBars < 5) { - $width = 120+$NumBars*25; + if ($NumBars < 3) { + $width = 120+$NumBars*32; $xskip = 1; - $bar_width = 25; + $bar_width = 30; + } elsif ($NumBars < 5) { + $width = 120+$NumBars*20; + $xskip = 1; + $bar_width = 20; } elsif ($NumBars < 10) { $width = 120+$NumBars*15; $xskip = 1; @@ -3324,15 +3366,6 @@ sub DrawBarGraph { $bar_width = 4; } # - my @Labels; - if (defined($labels)) { - @Labels = @$labels; - } else { - for (my $i=0;$i<@{$Values[0]};$i++) { - push (@Labels,$i+1); - } - } - # $Max = 1 if ($Max < 1); if ( int($Max) < $Max ) { $Max++; @@ -3355,6 +3388,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 ''; }