--- loncom/interface/lonhtmlcommon.pm 2008/07/07 11:02:05 1.176
+++ loncom/interface/lonhtmlcommon.pm 2009/05/20 21:32:53 1.182.4.1
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common html routines
#
-# $Id: lonhtmlcommon.pm,v 1.176 2008/07/07 11:02:05 foxr Exp $
+# $Id: lonhtmlcommon.pm,v 1.182.4.1 2009/05/20 21:32:53 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -62,41 +62,85 @@ use Apache::lonlocal;
use Apache::lonnet;
use LONCAPA;
-
##############################################
##############################################
=pod
-=item dragmath
+=item confirm_success
-Creates a button that will allow dragmath to edit an equation into
-a specified textbox.
+Successful completion of an operation message
- textarea - Name of the text area to edit.
=cut
+sub confirm_success {
+ my ($message,$failure)=@_;
+ if ($failure) {
+ return ''."\n"
+ .' '."\n"
+ .$message."\n"
+ .''."\n";
+ } else {
+ return ''."\n"
+ .' '."\n"
+ .$message."\n"
+ .''."\n";
+ }
+}
+
##############################################
-# TODO: Figure out a way to only emit the mathedit function once.
-# per html output document.
-#
##############################################
-sub dragmath {
- my ($textarea) = @_;
+=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 <
function mathedit(textarea, doc) {
targetEntry = textarea;
- targetDoc = doc;
- newwin = window.open("/adm/dragmath/applet/EditMathPopup.html","","width=565,height=500,resizable");
+ targetDoc = doc;
+ newwin = window.open("/adm/dragmath/applet/$popup.html","","width=565,height=500,resizable");
}
-
-ENDDRAGMATH
+
+ENDDRAGMATHJS
}
+
##############################################
##############################################
@@ -266,7 +310,7 @@ sub checkbox {
$Str .= 'value="'.$value.'"';
}
if ($checked) {
- $Str .= ' checked="1"';
+ $Str .= ' checked="checked"';
}
$Str .= ' />';
return $Str;
@@ -288,7 +332,7 @@ sub radio {
$Str .= 'value="'.$value.'"';
}
if ($checked eq $value) {
- $Str .= ' checked="1"';
+ $Str .= ' checked="checked"';
}
$Str .= ' />';
return $Str;
@@ -1284,7 +1328,7 @@ returns: nothing
my @Crumbs;
sub breadcrumbs {
- my ($component,$component_help,$menulink,$helplink,$css_class) = @_;
+ my ($component,$component_help,$menulink,$helplink,$css_class,$no_mt) = @_;
#
$css_class ||= 'LC_breadcrumbs';
my $Str = "\n".'
';
@@ -1293,6 +1337,8 @@ returns: nothing
my $faq = '';
my $bug = '';
my $help='';
+ # Crumb Symbol
+ my $crumbsymbol = '» ';
# The last breadcrumb does not have a link, so handle it separately.
my $last = pop(@Crumbs);
#
@@ -1316,7 +1362,7 @@ returns: nothing
});
}
my $links .=
- join('->',
+ join($crumbsymbol,
map {
$faq = $_->{'faq'} if (exists($_->{'faq'}));
$bug = $_->{'bug'} if (exists($_->{'bug'}));
@@ -1335,7 +1381,7 @@ returns: nothing
$result;
} @Crumbs
);
- $links .= '->' if ($links ne '');
+ $links .= $crumbsymbol if ($links ne '');
if ($last->{'no_mt'}) {
$links .= ''.$last->{'text'}.'';
} else {
@@ -1362,8 +1408,12 @@ returns: nothing
$Str .= $links.'
';
#
if (defined($component)) {
- $Str .= '
'.
- &mt($component);
+ $Str .= '
';
+ if ($no_mt) {
+ $Str .= $component;
+ } else {
+ $Str .= &mt($component);
+ }
if ($icons ne '') {
$Str .= ' '.$icons;
}
@@ -1444,6 +1494,9 @@ returns: nothing
# routines, but can also be called directly to start and end rows which have
# needs that are not accommodated by the *_select_row() routines.
+{ # Start: row_count block for pick_box
+my @row_count;
+
sub start_pick_box {
my ($css_class) = @_;
if (defined($css_class)) {
@@ -1451,6 +1504,7 @@ sub start_pick_box {
} else {
$css_class= 'class="LC_pick_box"';
}
+ unshift(@row_count,0);
my $output = <<"END";
END
@@ -1458,19 +1512,28 @@ END
}
sub end_pick_box {
+ shift(@row_count);
my $output = <<"END";
END
return $output;
}
+sub row_headline {
+ my $output = <<"END";
+
+END
+ return $output;
+}
+
sub row_title {
my ($title,$css_title_class,$css_value_class) = @_;
+ $row_count[0]++;
+ my $css_class = ($row_count[0] % 2)?'LC_odd_row':'LC_even_row';
$css_title_class ||= 'LC_pick_box_title';
$css_title_class = 'class="'.$css_title_class.'"';
$css_value_class ||= 'LC_pick_box_value';
- $css_value_class = 'class="'.$css_value_class.'"';
if ($title ne '') {
$title .= ':';
@@ -1480,7 +1543,7 @@ sub row_title {
$title
-
+
ENDONE
return $output;
}
@@ -1502,6 +1565,9 @@ ENDTWO
return $output;
}
+} # End: row_count block for pick_box
+
+
sub role_select_row {
my ($roles,$title,$css_class,$show_separate_custom,$cdom,$cnum) = @_;
my $output;
@@ -1509,7 +1575,7 @@ sub role_select_row {
$output = &row_title($title,$css_class);
}
$output .= qq|
-