--- loncom/interface/lonhtmlcommon.pm 2004/01/02 16:34:03 1.39 +++ loncom/interface/lonhtmlcommon.pm 2004/02/03 21:52:22 1.45 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common html routines # -# $Id: lonhtmlcommon.pm,v 1.39 2004/01/02 16:34:03 www Exp $ +# $Id: lonhtmlcommon.pm,v 1.45 2004/02/03 21:52:22 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -65,6 +65,78 @@ use strict; =pod +=item authorbombs + +=cut + +############################################## +############################################## + +sub authorbombs { + my $url=shift; + $url=&Apache::lonnet::declutter($url); + my ($udom,$uname)=($url=~/^(\w+)\/(\w+)\//); + my %bombs=&Apache::lonmsg::all_url_author_res_msg($uname,$udom); + foreach (keys %bombs) { + if ($_=~/^$udom\/$uname\//) { + return ''. + &Apache::loncommon::help_open_topic('About_Bombs'); + } + } + return ''; +} + +############################################## +############################################## + +sub recent_filename { + my $area=shift; + return 'nohist_recent_'.&Apache::lonnet::escape($area); +} + +sub store_recent { + my ($area,$name,$value)=@_; + my $file=&recent_filename($area); + my %recent=&Apache::lonnet::dump($file); + if (scalar(keys(%recent))>10) { +# remove oldest value + my $oldest=time; + my $delkey=''; + foreach (keys %recent) { + my $thistime=(split(/\&/,$recent{$_}))[0]; + if ($thistime<$oldest) { + $oldest=$thistime; + $delkey=$_; + } + } + &Apache::lonnet::del($file,[$delkey]); + } +# store new value + &Apache::lonnet::put($file,{ $name => + time.'&'.&Apache::lonnet::escape($value) }); +} + +sub select_recent { + my ($area,$fieldname,$event)=@_; + my %recent=&Apache::lonnet::dump(&recent_filename($area)); + my $return="\n\n"; + return $return; +} + + +=pod + =item textbox =cut @@ -754,8 +826,12 @@ Returns: none # Create progress sub Create_PrgWin { my ($r, $title, $heading, $number_to_do)=@_; + #the whole function called through timeout is due to issues + #in mozilla Read BUG #2665 if you want to know the whole story $r->print('"); + "popwin.document.close();}". + "\nwindow.setTimeout(openpopwin,0)"); my %prog_state; $prog_state{'done'}=0; @@ -849,14 +925,19 @@ sub Close_PrgWin { # ------------------------------------------------------- Puts directory header sub crumbs { - my ($uri,$target,$prefix)=@_; + my ($uri,$target,$prefix,$form)=@_; my $output='
'.$prefix.'/'; if ($ENV{'user.adv'}) { - my $path=$prefix; + my $path=$prefix.'/'; foreach (split('/',$uri)) { unless ($_) { next; } - $path.='/'.$_; - $output.=''.$_.'/'; + $path.=$_; + unless ($path eq $uri) { $path.='/'; } + my $linkpath=$path; + if ($form) { + $linkpath="javascript:$form.action='$path';$form.submit();"; + } + $output.=''.$_.'/'; } } else { $output.=$uri;