--- loncom/interface/lonhtmlcommon.pm 2003/12/29 17:11:53 1.35
+++ loncom/interface/lonhtmlcommon.pm 2004/01/29 00:51:06 1.43
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common html routines
#
-# $Id: lonhtmlcommon.pm,v 1.35 2003/12/29 17:11:53 www Exp $
+# $Id: lonhtmlcommon.pm,v 1.43 2004/01/29 00:51:06 www 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
@@ -91,8 +163,9 @@ sub textbox {
##############################################
##############################################
sub checkbox {
- my ($name) = @_;
- my $Str = '';
+ my ($name,$value) = @_;
+ my $Str = '';
return $Str;
}
@@ -141,14 +214,21 @@ The method used to restrict user input w
##############################################
##############################################
sub date_setter {
- my ($formname,$dname,$currentvalue,$special) = @_;
+ my ($formname,$dname,$currentvalue,$special,$includeempty) = @_;
if (! defined($currentvalue) || $currentvalue eq 'now') {
- $currentvalue = time;
+ unless ($includeempty) {
+ $currentvalue = time;
+ } else {
+ $currentvalue = 0;
+ }
}
# other potentially useful values: wkday,yrday,is_daylight_savings
- my ($sec,$min,$hour,$mday,$month,$year,undef,undef,undef) =
- localtime($currentvalue);
- $year += 1900;
+ my ($sec,$min,$hour,$mday,$month,$year)=('','','','','','');
+ if ($currentvalue) {
+ ($sec,$min,$hour,$mday,$month,$year,undef,undef,undef) =
+ localtime($currentvalue);
+ $year += 1900;
+ }
my $result = "\n\n";
$result .= <
@@ -200,9 +280,10 @@ ENDJS
July August September October November December/;
# Pad @Months with a bogus value to make indexing easier
unshift(@Months,'If you can read this an error occurred');
+ if ($includeempty) { $result.=""; }
for(my $m = 1;$m <=$#Months;$m++) {
$result .= " '."\n";
$Str .= ''.
- 'Previously Enrolled'."\n";
+ &mt('Previously Enrolled').''."\n";
$Str .= ''.
- 'Any Enrollment Status'."\n";
+ &mt('Any Enrollment Status').''."\n";
$Str .= ''."\n";
}
@@ -839,18 +921,24 @@ 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.'/';
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;
}
+ unless ($uri=~/\/$/) { $output=~s/\/$//; }
return $output.'
';
}