--- loncom/interface/lonhtmlcommon.pm 2004/07/19 21:14:15 1.83
+++ loncom/interface/lonhtmlcommon.pm 2004/11/11 18:19:41 1.95
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common html routines
#
-# $Id: lonhtmlcommon.pm,v 1.83 2004/07/19 21:14:15 raeburn Exp $
+# $Id: lonhtmlcommon.pm,v 1.95 2004/11/11 18:19:41 matthew 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';
}
@@ -280,7 +287,7 @@ sub date_setter {
document.$formname.$dname\_day.value = 30;
}
}
-
+
function $dname\_disable() {
document.$formname.$dname\_month.disabled=true;
document.$formname.$dname\_day.disabled=true;
@@ -312,64 +319,62 @@ document.$formname.$dname\_year.value,
}
ENDJS
- $result .= " ';
# Day
- $result .= " \n";
+ my $dayselector = qq{};
# Year
- $result .= " \n";
- $result .= " ";
- if (! $no_hh_mm_ss) {
- # Hours
- $result .= " \n";
- if ($includeempty) { $result.=""; }
- for (my $h = 0;$h<24;$h++) {
- $result .= " \n";
- $result .= " m\n";
- $result .= " s\n";
+ my $yearselector = qq{};
+ #
+ my $hourselector = qq{};
+ if ($includeempty) {
+ $hourselector.=qq{};
+ }
+ for (my $h = 0;$h<24;$h++) {
+ $hourselector .= qq{\n\n";
+ $hourselector .= " \n";
+ my $minuteselector = qq{};
+ my $secondselector= qq{};
+ my $cal_link = qq{};
+ #
+ if ($no_hh_mm_ss) {
+ $result .= &mt('[_1] [_2] [_3] [_4]Select Date[_5]',
+ $monthselector,$dayselector,$yearselector,
+ $cal_link,'');
+ } else {
+ $result .= &mt('[_1] [_2] [_3] [_4] [_5]m [_6]s [_7]Select Date[_8]',
+ $monthselector,$dayselector,$yearselector,
+ $hourselector,$minuteselector,$secondselector,
+ $cal_link,'');
+ }
+ $result .= "\n\n";
return $result;
}
@@ -519,6 +524,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 +803,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 +886,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 +900,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 +957,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 +978,7 @@ sub disablelink {
if (defined($#fields)) {
unless ($#fields>=0) { return ''; }
}
- return ''.&mt('Disable WYSIWYG Editor').'';
+ return ''.&mt('Disable WYSIWYG Editor').'';
}
sub enablelink {
@@ -926,7 +986,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
@@ -1005,8 +1065,8 @@ returns: nothing
my @Crumbs;
sub breadcrumbs {
- my ($color,$component,$component_help,$function,$domain,$menulink) =
- @_;
+ my ($color,$component,$component_help,$function,$domain,$menulink,
+ $helplink) = @_;
if (! defined($color)) {
if (! defined($function)) {
$function = &Apache::loncommon::get_users_function();
@@ -1068,11 +1128,9 @@ returns: nothing
# if ($bug ne '') {
# $icons .= &Apache::loncommon::help_open_bug($bug);
# }
- if (defined($component_help)) {
- $icons .=
- &Apache::loncommon::help_open_topic($component_help);
- }
- $icons .= &Apache::loncommon::help_open_menu($color,$component,$component_help,$function,$faq,$bug);
+ if ($helplink ne 'nohelp') {
+ $icons .= &Apache::loncommon::help_open_menu($color,$component,$component_help,$function,$faq,$bug);
+ }
if ($icons ne '') {
$Str .= $icons.' ';
}