--- loncom/interface/lonhtmlcommon.pm 2011/10/23 00:27:10 1.294
+++ loncom/interface/lonhtmlcommon.pm 2012/11/08 18:37:44 1.330
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common html routines
#
-# $Id: lonhtmlcommon.pm,v 1.294 2011/10/23 00:27:10 raeburn Exp $
+# $Id: lonhtmlcommon.pm,v 1.330 2012/11/08 18:37:44 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -61,7 +61,7 @@ use Time::HiRes;
use Apache::lonlocal;
use Apache::lonnet;
use HTML::Entities();
-use LONCAPA;
+use LONCAPA qw(:DEFAULT :match);
sub java_not_enabled {
return "\n".''.
@@ -72,7 +72,7 @@ sub java_not_enabled {
sub coursepreflink {
my ($text,$category)=@_;
if (&Apache::lonnet::allowed('opa',$env{'request.course.id'})) {
- return '&"').'">'.$text.'';
+ return '&"').'">'.$text.'';
} else {
return '';
}
@@ -95,7 +95,7 @@ sub direct_parm_link {
$filter=&entity_encode($filter);
$part=&entity_encode($part);
if (($symb) && (&Apache::lonnet::allowed('opa')) && ($target ne 'tex')) {
- return "$linktext";
+ return "$linktext";
} else {
return $linktext;
}
@@ -103,7 +103,7 @@ sub direct_parm_link {
##############################################
##############################################
-=item confirm_success
+=item &confirm_success()
Successful completion of an operation message
@@ -129,7 +129,7 @@ sub confirm_success {
=pod
-=item dragmath_button
+=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.
@@ -155,10 +155,11 @@ ENDDRAGMATH
=pod
-=item dragmath_js
+=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 {
@@ -177,13 +178,58 @@ sub dragmath_js {
ENDDRAGMATHJS
}
+##############################################
+##############################################
+
+=pod
+
+=item &dependencies_button()
+
+Creates a button that launches a popup-window, in which dependencies
+for the web page in the main window can be added to, replaced or deleted.
+
+=cut
+
+sub dependencies_button {
+ my $buttontext=&mt('Manage Dependencies');
+ return <<"END";
+
+END
+}
+
+##############################################
+
+=pod
+
+=item &dependencycheck_js()
+
+Javascript used to open pop-up window containing interface to manage
+dependencies for a web page uploaded diretcly to a course.
+
+=cut
+
+sub dependencycheck_js {
+ my ($symb,$title,$url) = @_;
+ my $link = '/adm/dependencies?symb='.&HTML::Entities::encode($symb,'<>&"').
+ '&title='.&HTML::Entities::encode($title,'<>&"').
+ '&url='.&HTML::Entities::encode($url,'<>&"');
+ return <".&mt("$heading")."<\/h4>".
- "
'); }
- &Update_PrgWin($r,\%prog_state,&mt('Starting'));
- }
-
$prog_state{'done'}=0;
$prog_state{'firststart'}=&Time::HiRes::time();
$prog_state{'laststart'}=&Time::HiRes::time();
$prog_state{'max'}=$number_to_do;
-
+ &Apache::loncommon::LCprogressbar($r);
return %prog_state;
}
# update progress
sub Update_PrgWin {
my ($r,$prog_state,$displayString)=@_;
- &r_print($r,&Apache::lonhtmlcommon::scripttag(
- $$prog_state{'window'}.'.document.'.
- $$prog_state{'formname'}.'.'.
- $$prog_state{'inputname'}.'.value="'.
- $displayString.'";'
- ));
+ &Apache::loncommon::LCprogressbarUpdate($r,undef,$displayString);
$$prog_state{'laststart'}=&Time::HiRes::time();
}
@@ -1113,42 +1086,28 @@ sub Increment_PrgWin {
$min,
$sec,
$lasttime);
-
- &r_print($r,&Apache::lonhtmlcommon::scripttag(
- $$prog_state{'window'}.'.document.'.
- $$prog_state{'formname'}.'.'.
- $$prog_state{'inputname'}.'.value="'.$timeinfo.'";'
- ));
+ my $percent=0;
+ if ($$prog_state{'max'}) {
+ $percent=int(100.*$current/$$prog_state{'max'});
+ }
+ &Apache::loncommon::LCprogressbarUpdate($r,$percent,$timeinfo);
$$prog_state{'laststart'}=&Time::HiRes::time();
}
# close Progress Line
sub Close_PrgWin {
my ($r,$prog_state)=@_;
- if ($$prog_state{'type'} eq 'popup') {
- &r_print($r,&Apache::lonhtmlcommon::scripttag(
- 'popwin.close()'
- ));
- } elsif ($$prog_state{'type'} eq 'inline') {
- &Update_PrgWin($r,$prog_state,&mt('Done'));
- }
+ &Apache::loncommon::LCprogressbarClose($r);
undef(%$prog_state);
}
-sub r_print {
- my ($r,$to_print)=@_;
- if ($r) {
- $r->print($to_print);
- $r->rflush();
- } else {
- print($to_print);
- }
-}
# ------------------------------------------------------- Puts directory header
sub crumbs {
my ($uri,$target,$prefix,$form,$skiplast)=@_;
+# You cannot crumbnify uploaded or adm resources
+ if ($uri=~/^\/*(uploaded|adm)\//) { return &mt('(Internal Course/Group Content)'); }
if ($target) {
$target = ' target="'.
&Apache::loncommon::escape_single($target).'"';
@@ -1186,6 +1145,7 @@ sub crumbs {
if ($uri !~ m|/$|) { $output=~s|/$||; }
$output.='",
+ if ((&show_return_link) && (!$CourseBreadcrumbs) && (ref($last) eq 'HASH')) {
+ my $alttext = &mt('Go Back');
+ $links=&htmltag( 'a','
',
{ href => '/adm/flip?postdata=return:',
- title => &mt("Back to most recent content resource") });
+ title => &mt('Back to most recent content resource'),
+ class => 'LC_menubuttons_link',
+ });
+ $links=&htmltag('li',$links);
}
$links.= join "",
map {
@@ -1568,8 +1708,11 @@ returns: nothing
# last breadcrumb is the first order heading of a page
# for course breadcrumbs it's just bold
- $links .= &htmltag( 'li', htmltag($CourseBreadcrumbs ? 'b' : 'h1',
- $lasttext), {title => $lasttext});
+
+ if ($lasttext ne '') {
+ $links .= &htmltag( 'li', htmltag($CourseBreadcrumbs ? 'b' : 'h1',
+ $lasttext), {title => $lasttext});
+ }
my $icons = '';
$faq = $last->{'faq'} if (exists($last->{'faq'}));
@@ -1588,20 +1731,24 @@ returns: nothing
$faq,$bug);
}
#
-
- unless ($CourseBreadcrumbs) {
- $links = &htmltag('ol', $links, { id => "LC_MenuBreadcrumbs" });
- } else {
- $links = &htmltag('ul', $links, { class => "LC_CourseBreadcrumbs" });
+
+ if ($links ne '') {
+ unless ($CourseBreadcrumbs) {
+ $links = &htmltag('ol', $links, { id => "LC_MenuBreadcrumbs" });
+ } else {
+ $links = &htmltag('ul', $links, { class => "LC_CourseBreadcrumbs" });
+ }
}
+
if ($component) {
$links = &htmltag('span',
( $no_mt ? $component : mt($component) ).
( $icons ? $icons : '' ),
{ class => 'LC_breadcrumbs_component' } )
- .$links;
+ .$links
+;
}
&render_tools(\$links);
@@ -1612,7 +1759,12 @@ returns: nothing
# Return the @Crumbs stack to what we started with
push(@Crumbs,$last);
shift(@Crumbs);
+
+
# Return the breadcrumb's line
+
+
+
return "$links";
}
@@ -1625,7 +1777,7 @@ returns: nothing
push(@Crumbs,@_);
}
-=item add_breadcrumb_tool($category, $html)
+=item &add_breadcrumb_tool($category, $html)
Adds $html to $category of the breadcrumb toolbar container.
@@ -1640,7 +1792,7 @@ Currently there are 3 possible values fo
left of breadcrumbs line
=item tools
-right of breadcrumbs line
+remaining items in right of breadcrumbs line
=item advtools
advanced tools shown in a separate box below breadcrumbs line
@@ -1668,7 +1820,7 @@ returns: nothing
push @{$tools{$category}}, @html;
}
-=item clear_breadcrumb_tools()
+=item &clear_breadcrumb_tools()
Clears the breadcrumb toolbar container.
@@ -1680,7 +1832,7 @@ returns: nothing
undef(%tools);
}
-=item render_tools(\$breadcrumbs)
+=item &render_tools(\$breadcrumbs)
Creates html for breadcrumb tools (categories navigation and tools) and inserts
\$breadcrumbs at the correct position.
@@ -1689,6 +1841,7 @@ input: \$breadcrumbs - a reference to th
breadcrumbs.
returns: nothing
+
=cut
#TODO might split this in separate functions for each category
@@ -1704,7 +1857,9 @@ returns: nothing
{ listattr => { class=>'LC_breadcrumb_tools_outerlist' } });
}
-=item render_advtools(\$breadcrumbs)
+=pod
+
+=item &render_advtools(\$breadcrumbs)
Creates html for advanced tools (category advtools) and inserts \$breadcrumbs
at the correct position.
@@ -1713,6 +1868,7 @@ input: \$breadcrumbs - a reference to th
breadcrumbs (after render_tools call).
returns: nothing
+
=cut
sub render_advtools {
@@ -1786,15 +1942,19 @@ returns: nothing
my @row_count;
sub start_pick_box {
- my ($css_class) = @_;
+ my ($css_class,$id) = @_;
if (defined($css_class)) {
$css_class = 'class="'.$css_class.'"';
} else {
$css_class= 'class="LC_pick_box"';
}
+ my $table_id;
+ if (defined($id)) {
+ $table_id = ' id="'.$id.'"';
+ }
unshift(@row_count,0);
my $output = <<"END";
-
'.&mt('Folder:').' | '.$folder.' | '. + ''.&mt('Folder:').' | '.$folder.' | '. &Apache::loncommon::end_data_table_row(); unless ($onlyfolderflag) { $return.=&Apache::loncommon::start_data_table_row(). - ''.&mt('Resource:').' | '.&Apache::lonnet::gettitle($symb).' | '. + ''.&mt('Resource:').' | '.&Apache::lonnet::gettitle($symb).' | '. + &Apache::loncommon::end_data_table_row(); + } + if ($stuvcurrent ne '') { + $return .= &Apache::loncommon::start_data_table_row(). + ''.&mt("Student's current version:").' | '.$stuvcurrent.' | '. + &Apache::loncommon::end_data_table_row(); + } + if ($stuvdisp ne '') { + $return .= &Apache::loncommon::start_data_table_row(). + ''.&mt("Student's version displayed:").' | '.$stuvdisp.' | '. &Apache::loncommon::end_data_table_row(); } $return.=&Apache::loncommon::end_data_table(); } else { $return='
---|