--- loncom/interface/lonhtmlcommon.pm 2004/01/01 20:13:17 1.38
+++ 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.38 2004/01/01 20:13:17 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
@@ -142,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 .= <
@@ -201,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 .= "