--- loncom/interface/lonhtmlcommon.pm 2004/08/17 19:09:33 1.84.2.1
+++ loncom/interface/lonhtmlcommon.pm 2004/10/21 11:18:06 1.94
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common html routines
#
-# $Id: lonhtmlcommon.pm,v 1.84.2.1 2004/08/17 19:09:33 albertel Exp $
+# $Id: lonhtmlcommon.pm,v 1.94 2004/10/21 11:18:06 foxr Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -117,6 +117,12 @@ sub store_recent {
time.'&'.&Apache::lonnet::escape($value) });
}
+sub remove_recent {
+ my ($area,$names)=@_;
+ my $file=&recent_filename($area);
+ return &Apache::lonnet::del($file,$names);
+}
+
sub select_recent {
my ($area,$fieldname,$event)=@_;
my %recent=&Apache::lonnet::dump(&recent_filename($area));
@@ -125,7 +131,8 @@ sub select_recent {
">\n";
foreach (sort keys %recent) {
unless ($_=~/^error\:/) {
- $return.="\n';
}
@@ -519,6 +526,27 @@ sub javascript_nothing {
return $nothing;
}
+##############################################
+##############################################
+sub javascript_docopen {
+ # safari does not understand document.open() and loads "text/html"
+ my $nothing = "''";
+ my $user_browser;
+ my $user_os;
+ $user_browser = $ENV{'browser.type'} if (exists($ENV{'browser.type'}));
+ $user_os = $ENV{'browser.os'} if (exists($ENV{'browser.os'}));
+ if (! defined($user_browser) || ! defined($user_os)) {
+ (undef,$user_browser,undef,undef,undef,$user_os) =
+ &Apache::loncommon::decode_user_agent();
+ }
+ if ($user_browser eq 'safari' && $user_os =~ 'mac') {
+ $nothing = "document.clear()";
+ } else {
+ $nothing = "document.open('text/html','replace')";
+ }
+ return $nothing;
+}
+
##############################################
##############################################
@@ -777,8 +805,10 @@ sub Increment_PrgWin {
my $sec = $time_est % 60;
#
my $str;
- if ($min == 1 && $sec > 1) {
+ if ($min == 0 && $sec > 1) {
$str = '[_2] seconds';
+ } elsif ($min == 1 && $sec > 1) {
+ $str = '1 minute [_2] seconds';
} elsif ($min == 1 && $sec < 2) {
$str = '1 minute';
} elsif ($min < 10 && $sec > 1) {
@@ -858,9 +888,12 @@ sub crumbs {
unless ($path eq $uri) { $path.='/'; }
my $linkpath=$path;
if ($form) {
- $linkpath="javascript:$form.action='$path';$form.submit();";
+ my $escaped_path = &Apache::loncommon::escape_single($path);
+ $linkpath="javascript:$form.action='$escaped_path';$form.submit();";
}
- $output.=''.$_.'/';
+ my $escaped_linkpath = &Apache::loncommon::escape_single($linkpath);
+ my $escaped_target = &Apache::loncommon::escape_single($target);
+ $output.=''.$_.'/';
}
} else {
$output.=$uri;
@@ -869,6 +902,35 @@ sub crumbs {
return $output.''.($noformat?'':'
');
}
+# --------------------- A function that generates a window for the spellchecker
+
+sub spellheader {
+ my $nothing = &javascript_nothing();
+ return (<
+//
+
+ENDCHECK
+}
+
+# ---------------------------------- Generate link to spell checker for a field
+
+sub spelllink {
+ my ($form,$field)=@_;
+ my $linktext=&mt('Check Spelling');
+ return (<$linktext
+ENDLINK
+}
+
# ------------------------------------------------- Output headers for HTMLArea
sub htmlareaheaders {
@@ -897,14 +959,14 @@ sub htmlareaaddbuttons {
config.registerButton('ed_math','LaTeX Inline',
'/htmlarea/images/ed_math.gif',false,
function(editor,id) {
- editor.surroundHTML('\$','\$');
+ editor.surroundHTML(' \$','\$ ');
}
);
config.registerButton('ed_math_eqn','LaTeX Equation',
'/htmlarea/images/ed_math_eqn.gif',false,
function(editor,id) {
editor.surroundHTML(
- '\\\\[','\\\\]');
+ ' \\n\\\\[','\\\\]\\n ');
}
);
config.toolbar.push(['ed_math','ed_math_eqn']);
@@ -918,7 +980,7 @@ sub disablelink {
if (defined($#fields)) {
unless ($#fields>=0) { return ''; }
}
- return ''.&mt('Disable WYSIWYG Editor').'';
+ return ''.&mt('Disable WYSIWYG Editor').'';
}
sub enablelink {
@@ -926,7 +988,7 @@ sub enablelink {
if (defined($#fields)) {
unless ($#fields>=0) { return ''; }
}
- return ''.&mt('Enable WYSIWYG Editor').'';
+ return ''.&mt('Enable WYSIWYG Editor').'';
}
# ----------------------------------------- Script to activate only some fields