--- loncom/interface/lonhtmlcommon.pm 2006/06/13 14:42:24 1.132
+++ loncom/interface/lonhtmlcommon.pm 2010/01/22 13:54:06 1.182.4.9
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common html routines
#
-# $Id: lonhtmlcommon.pm,v 1.132 2006/06/13 14:42:24 www Exp $
+# $Id: lonhtmlcommon.pm,v 1.182.4.9 2010/01/22 13:54:06 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -60,7 +60,6 @@ use Time::Local;
use Time::HiRes;
use Apache::lonlocal;
use Apache::lonnet;
-use lib '/home/httpd/lib/perl/';
use LONCAPA;
##############################################
@@ -68,6 +67,87 @@ use LONCAPA;
=pod
+=item confirm_success
+
+Successful completion of an operation message
+
+=cut
+
+sub confirm_success {
+ my ($message,$failure)=@_;
+ if ($failure) {
+ return ''."\n"
+ .' '."\n"
+ .$message."\n"
+ .''."\n";
+ } else {
+ return ''."\n"
+ .' '."\n"
+ .$message."\n"
+ .''."\n";
+ }
+}
+
+##############################################
+##############################################
+
+=pod
+
+=item dragmath_button
+
+Creates a button that launches a dragmath popup-window, in which an
+expression can be edited and pasted as LaTeX into a specified textarea.
+
+ textarea - Name of the textarea to edit.
+ helpicon - If true, show a help icon to the right of the button.
+
+=cut
+
+sub dragmath_button {
+ my ($textarea,$helpicon) = @_;
+ my $help_text;
+ if ($helpicon) {
+ $help_text = &Apache::loncommon::help_open_topic('Authoring_Math_Editor');
+ }
+ my $buttontext=&mt('Edit Math');
+ return <$help_text
+ENDDRAGMATH
+}
+
+##############################################
+
+=pod
+
+=item dragmath_js
+
+Javascript used to open pop-up window containing dragmath applet which
+can be used to paste LaTeX into a textarea.
+
+=cut
+
+sub dragmath_js {
+ my ($popup) = @_;
+ return <
+ //
+
+
+ENDDRAGMATHJS
+}
+
+
+##############################################
+##############################################
+
+=pod
+
=item authorbombs
=cut
@@ -78,7 +158,7 @@ use LONCAPA;
sub authorbombs {
my $url=shift;
$url=&Apache::lonnet::declutter($url);
- my ($udom,$uname)=($url=~/^(\w+)\/(\w+)\//);
+ my ($udom,$uname)=($url=~m{^($LONCAPA::domain_re)/($LONCAPA::username_re)/});
my %bombs=&Apache::lonmsg::all_url_author_res_msg($uname,$udom);
foreach (keys %bombs) {
if ($_=~/^$udom\/$uname\//) {
@@ -99,25 +179,31 @@ sub recent_filename {
}
sub store_recent {
- my ($area,$name,$value)=@_;
+ my ($area,$name,$value,$freeze)=@_;
my $file=&recent_filename($area);
my %recent=&Apache::lonnet::dump($file);
if (scalar(keys(%recent))>20) {
# remove oldest value
- my $oldest=time;
+ my $oldest=time();
my $delkey='';
- foreach (keys %recent) {
- my $thistime=(split(/\&/,$recent{$_}))[0];
- if ($thistime<$oldest) {
+ foreach my $item (keys(%recent)) {
+ my $thistime=(split(/\&/,$recent{$item}))[0];
+ if (($thistime ne "always_include") && ($thistime<$oldest)) {
$oldest=$thistime;
- $delkey=$_;
+ $delkey=$item;
}
}
&Apache::lonnet::del($file,[$delkey]);
}
# store new value
+ my $timestamp;
+ if ($freeze) {
+ $timestamp = "always_include";
+ } else {
+ $timestamp = time();
+ }
&Apache::lonnet::put($file,{ $name =>
- time.'&'.&escape($value) });
+ $timestamp.'&'.&escape($value) });
}
sub remove_recent {
@@ -132,11 +218,12 @@ sub select_recent {
my $return="\n