--- loncom/interface/lonhtmlcommon.pm 2008/12/05 10:23:56 1.192
+++ loncom/interface/lonhtmlcommon.pm 2009/06/04 16:47:25 1.221
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common html routines
#
-# $Id: lonhtmlcommon.pm,v 1.192 2008/12/05 10:23:56 bisitz Exp $
+# $Id: lonhtmlcommon.pm,v 1.221 2009/06/04 16:47:25 bisitz Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -62,6 +62,31 @@ use Apache::lonlocal;
use Apache::lonnet;
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";
+ }
+}
##############################################
##############################################
@@ -105,11 +130,13 @@ sub dragmath_js {
my ($popup) = @_;
return <
+ //
ENDDRAGMATHJS
@@ -136,7 +163,7 @@ sub authorbombs {
foreach (keys %bombs) {
if ($_=~/^$udom\/$uname\//) {
return ''.
+ '">'.
&Apache::loncommon::help_open_topic('About_Bombs');
}
}
@@ -285,7 +312,7 @@ sub checkbox {
$Str .= 'value="'.$value.'"';
}
if ($checked) {
- $Str .= ' checked="1"';
+ $Str .= ' checked="checked"';
}
$Str .= ' />';
return $Str;
@@ -307,7 +334,7 @@ sub radio {
$Str .= 'value="'.$value.'"';
}
if ($checked eq $value) {
- $Str .= ' checked="1"';
+ $Str .= ' checked="checked"';
}
$Str .= ' />';
return $Str;
@@ -405,6 +432,7 @@ sub date_setter {
my $result = "\n\n";
$result .= <
+//
ENDJS
$result .= ' ';
@@ -950,17 +979,20 @@ sub Create_PrgWin {
#the whole function called through timeout is due to issues
#in mozilla Read BUG #2665 if you want to know the whole story
&r_print($r,'");
+ "\nwindow.setTimeout(openpopwin,0)".
+ '// ]]>'.
+ '');
$prog_state{'formname'}='popremain';
$prog_state{'inputname'}="remaining";
} elsif ($type eq 'inline') {
@@ -993,10 +1025,14 @@ sub Create_PrgWin {
# update progress
sub Update_PrgWin {
my ($r,$prog_state,$displayString)=@_;
- &r_print($r,'');
+ $displayString.'";'.
+ '// ]]>'.
+ '');
$$prog_state{'laststart'}=&Time::HiRes::time();
}
@@ -1049,11 +1085,15 @@ sub Increment_PrgWin {
if ($user_browser eq 'explorer' && $user_os =~ 'mac') {
$lasttime = '';
}
- &r_print($r,'');
+ ': '.$time_est.' '.&mt('remaining').' '.$lasttime.'";'.
+ '// ]]>'.
+ '');
$$prog_state{'laststart'}=&Time::HiRes::time();
}
@@ -1061,7 +1101,11 @@ sub Increment_PrgWin {
sub Close_PrgWin {
my ($r,$prog_state)=@_;
if ($$prog_state{'type'} eq 'popup') {
- &r_print($r,''."\n");
+ &r_print($r,''."\n");
} elsif ($$prog_state{'type'} eq 'inline') {
&Update_PrgWin($r,$prog_state,&mt('Done'));
}
@@ -1143,6 +1187,7 @@ sub spellheader {
my $nothing=&javascript_nothing();
return (<
+//
+// ]]>
ENDCHECK
}
@@ -1226,7 +1272,8 @@ sub htmlareaselectactive {
my @fields=@_;
unless (&htmlareabrowser()) { return ''; }
if (&htmlareablocked()) { return ' '.&enablelink(@fields); }
- my $output=' ".
+ $output.="\nwindow.status='Activated Editfields';\n"
+ .'// ]]>'
+ .' '.
&disablelink(@fields);
return $output;
}
@@ -1278,6 +1327,8 @@ Inputs: $component (the large text on th
$menulink (boolean, controls whether to include a link to /adm/menu)
$helplink (if 'nohelp' don't include the orange help link)
$css_class (optional name for the class to apply to the table for CSS)
+ $no_mt (optional flag, 1 if &mt() is _not_ to be applied to $component
+ when including the text on the right.
Returns a string containing breadcrumbs for the current page.
=item clear_breadcrumbs
@@ -1303,22 +1354,28 @@ returns: nothing
my @Crumbs;
sub breadcrumbs {
- my ($component,$component_help,$menulink,$helplink,$css_class) = @_;
+ my ($component,$component_help,$menulink,$helplink,$css_class,$no_mt, $CourseBreadcrumbs) = @_;
#
- $css_class ||= 'LC_breadcrumbs';
- my $Str = "\n".'
';
+ $css_class ||= 'LC_breadcrumbs';
+ my $Str1 = '
';
+
+ if($CourseBreadcrumbs){
+ $Str1 = '
';
+ }
+
+ my $Str = '';
#
# Make the faq and bug data cascade
my $faq = '';
my $bug = '';
- my $help='';
- # Crumb Symbol
- my $crumbsymbol = ' ▶ ';
+ my $help='';
+ # Crumb Symbol
+ my $crumbsymbol = '» ';
# The last breadcrumb does not have a link, so handle it separately.
my $last = pop(@Crumbs);
#
# The first one should be the course or a menu link
- if (!defined($menulink)) { $menulink=1; }
+ if (!defined($menulink)) { $menulink=1; }
if ($menulink) {
my $description = 'Menu';
my $no_mt_descr = 0;
@@ -1328,41 +1385,47 @@ returns: nothing
$env{'course.'.$env{'request.course.id'}.'.description'};
$no_mt_descr = 1;
}
- unshift(@Crumbs,{
- href =>'/adm/menu',
- title =>'Go to main menu',
- target =>'_top',
- text =>$description,
- no_mt =>$no_mt_descr,
- });
+ $menulink = { href =>'/adm/menu',
+ title =>'Go to main menu',
+ target =>'_top',
+ text =>$description,
+ no_mt =>$no_mt_descr, };
+ if($last) {
+ #$last set, so we have some crumbs
+ unshift(@Crumbs,$menulink);
+ } else {
+ #only menulink crumb present
+ $last = $menulink;
+ }
}
- my $links .=
- join($crumbsymbol,
+ my $links = join "",
map {
- $faq = $_->{'faq'} if (exists($_->{'faq'}));
- $bug = $_->{'bug'} if (exists($_->{'bug'}));
+ $faq = $_->{'faq'} if (exists($_->{'faq'}));
+ $bug = $_->{'bug'} if (exists($_->{'bug'}));
$help = $_->{'help'} if (exists($_->{'help'}));
- my $result = '{'target'}) && $_->{'target'} ne '') {
- $result .= 'target="'.$_->{'target'}.'" ';
- }
- if ($_->{'no_mt'}) {
- $result .='title="'.$_->{'title'}.'">'.
- $_->{'text'}.'';
- } else {
- $result .='title="'.&mt($_->{'title'}).'">'.
- &mt($_->{'text'}).'';
- }
- $result;
- } @Crumbs
- );
- $links .= $crumbsymbol if ($links ne '');
+
+ my $result = htmltag( 'a',
+ $_->{no_mt} ? $_->{text} : mt($_->{text}),
+ {
+ href => $_->{href},
+ title => $_->{no_mt} ? $_->{title} : mt($_->{title}),
+ target => $_->{target},
+ });
+ $result = htmltag( 'li', $crumbsymbol.$result);
+ } @Crumbs;
+#Workaround for edit course.
+ if(@Crumbs == 0 ){
+ $links .= '
' if ($links ne '');
+ } else {
+ $links .= '
'.$crumbsymbol if ($links ne '');
+ }
+#should the last Element be translated?
if ($last->{'no_mt'}) {
$links .= ''.$last->{'text'}.'';
} else {
$links .= ''.&mt($last->{'text'}).'';
}
- #
+ $links .= '
';
my $icons = '';
$faq = $last->{'faq'} if (exists($last->{'faq'}));
$bug = $last->{'bug'} if (exists($last->{'bug'}));
@@ -1380,23 +1443,33 @@ returns: nothing
$faq,$bug);
}
#
- $Str .= $links.'
'."\n";
#
# Return the @Crumbs stack to what we started with
push(@Crumbs,$last);
shift(@Crumbs);
- #
- return $Str;
+ # Return a table and after that the breadcrumb's line
+ return "$Str\n$Str1";
}
sub clear_breadcrumbs {
@@ -1465,6 +1538,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)) {
@@ -1472,6 +1548,7 @@ sub start_pick_box {
} else {
$css_class= 'class="LC_pick_box"';
}
+ unshift(@row_count,0);
my $output = <<"END";
END
@@ -1479,6 +1556,7 @@ END
}
sub end_pick_box {
+ shift(@row_count);
my $output = <<"END";
END
@@ -1494,11 +1572,12 @@ END
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 .= ':';
@@ -1508,7 +1587,7 @@ sub row_title {
$title
-
+
ENDONE
return $output;
}
@@ -1530,6 +1609,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;
@@ -1537,7 +1619,7 @@ sub role_select_row {
$output = &row_title($title,$css_class);
}
$output .= qq|
-