--- loncom/interface/lonhtmlcommon.pm 2012/12/07 17:15:56 1.337
+++ loncom/interface/lonhtmlcommon.pm 2015/05/28 12:27:23 1.358.2.2
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common html routines
#
-# $Id: lonhtmlcommon.pm,v 1.337 2012/12/07 17:15:56 raeburn Exp $
+# $Id: lonhtmlcommon.pm,v 1.358.2.2 2015/05/28 12:27:23 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -64,9 +64,15 @@ use HTML::Entities();
use LONCAPA qw(:DEFAULT :match);
sub java_not_enabled {
- return "\n".''.
- &mt('The required Java applet could not be started. Please make sure to have Java installed and active in your browser.').
- "\n";
+ if (($env{'browser.mobile'}) && ($env{'browser.mobile'} =~ /^ipad|ipod|iphone$/i)) {
+ return "\n".''.
+ &mt('The required Java applet could not be started, because Java is not supported by your mobile device.').
+ "\n";
+ } else {
+ return "\n".''.
+ &mt('The required Java applet could not be started. Please make sure to have Java installed and active in your browser.').
+ "\n";
+ }
}
sub coursepreflink {
@@ -170,7 +176,7 @@ sub dragmath_js {
function mathedit(textarea, doc) {
targetEntry = textarea;
targetDoc = doc;
- newwin = window.open("/adm/dragmath/applet/$popup.html","","width=565,height=500,resizable");
+ newwin = window.open("/adm/dragmath/$popup.html","","width=565,height=500,resizable");
}
// ]]>
@@ -216,6 +222,8 @@ sub dependencycheck_js {
} elsif ($folderpath) {
$link = '/adm/dependencies?folderpath='.&HTML::Entities::encode($folderpath,'<>&"');
$url = $uri;
+ } elsif ($uri =~ m{^/public/$match_domain/$match_courseid/syllabus$}) {
+ $link = '/adm/dependencies';
}
$link .= (($link=~/\?/)?'&':'?').'title='.
&HTML::Entities::encode($title,'<>&"');
@@ -474,7 +482,36 @@ the date/time fields are left empty.
=item $state
Specifies the initial state of the form elements. Either 'disabled' or empty.
-Defaults to empty, which indiciates the form elements are not disabled.
+Defaults to empty, which indicates the form elements are not disabled.
+
+=item $no_hh_mm_ss
+
+If true, text boxes for hours, minutes and seconds are omitted.
+
+=item $defhour
+
+Default value for hours (a default of 0 is used otherwise).
+
+=item $defmin
+
+Default value for minutes (a default of 0 is used otherwise).
+
+=item defsec
+
+Default value for seconds (a default of 0 is used otherwise).
+
+=item $nolink
+
+If true, a "Select calendar" link (to pop-up a calendar) is not displayed
+to the right of the items.
+
+=item $no_mm_ss
+
+If true, text boxes for minutes and seconds are omitted.
+
+=item $no_ss
+
+If true, text boxes for seconds are omitted.
=back
@@ -488,7 +525,7 @@ The method used to restrict user input w
##############################################
sub date_setter {
my ($formname,$dname,$currentvalue,$special,$includeempty,$state,
- $no_hh_mm_ss,$defhour,$defmin,$defsec,$nolink) = @_;
+ $no_hh_mm_ss,$defhour,$defmin,$defsec,$nolink,$no_mm_ss,$no_ss) = @_;
my $now = time;
my $tzname;
@@ -641,17 +678,24 @@ ENDJS
$result .= &mt('[_1] [_2] [_3] ',
$monthselector,$dayselector,$yearselector).
$tzone;
- if (!$nolink) {
- $result .= &mt('[_1]Select Date[_2]',$cal_link,'');
- }
+ } elsif ($no_mm_ss) {
+ $result .= &mt('[_1] [_2] [_3] [_4]',
+ $monthselector,$dayselector,$yearselector,
+ $hourselector).
+ $tzone;
+ } elsif ($no_ss) {
+ $result .= &mt('[_1] [_2] [_3] [_4] [_5]m',
+ $monthselector,$dayselector,$yearselector,
+ $hourselector,$minuteselector).
+ $tzone;
} else {
$result .= &mt('[_1] [_2] [_3] [_4] [_5]m [_6]s ',
$monthselector,$dayselector,$yearselector,
$hourselector,$minuteselector,$secondselector).
$tzone;
- if (!$nolink) {
- $result .= &mt('[_1]Select Date[_2]',$cal_link,'');
- }
+ }
+ if (!$nolink) {
+ $result .= &mt('[_1]Select Date[_2]',$cal_link,'');
}
$result .= "\n\n";
return $result;
@@ -1219,11 +1263,12 @@ ENDEDITOR
-
+
+
ENDJQUERY
return $s;
@@ -1257,7 +1302,8 @@ sub htmlareaselectactive {
my ($args) = @_;
unless (&htmlareabrowser()) { return ''; }
my $output='';
return $output;
@@ -1604,12 +1660,19 @@ A link to help for the component will be
All inputs can be undef without problems.
Inputs: $component (the text on the right side of the breadcrumbs trail),
- $component_help
+ $component_help (the help item filename (without .tex extension).
$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.
+ $CourseBreadcrumbs (optional flag, 1 if &breadcrumbs called from &docs_breadcrumbs,
+ because breadcrumbs are being)
+ $topic_help (optional help item to be displayed on right side of the breadcrumbs
+ row, using loncommon::help_open_topic() to generate the link.
+ $topic_help_text (text to include in the link in the optional help item
+ on the right side of the breadcrumbs row.
+
Returns a string containing breadcrumbs for the current page.
=item &clear_breadcrumbs()
@@ -1637,7 +1700,7 @@ returns: nothing
sub breadcrumbs {
my ($component,$component_help,$menulink,$helplink,$css_class,$no_mt,
- $CourseBreadcrumbs) = @_;
+ $CourseBreadcrumbs,$topic_help,$topic_help_text) = @_;
#
$css_class ||= 'LC_breadcrumbs';
@@ -1686,11 +1749,15 @@ returns: nothing
my $links;
if ((&show_return_link) && (!$CourseBreadcrumbs) && (ref($last) eq 'HASH')) {
my $alttext = &mt('Go Back');
+ my $hashref = { href => '/adm/flip?postdata=return:',
+ title => &mt('Back to most recent content resource'),
+ class => 'LC_menubuttons_link',
+ };
+ if ($env{'request.noversionuri'} eq '/adm/searchcat') {
+ $hashref->{'target'} = '_top';
+ }
$links=&htmltag( 'a','',
- { href => '/adm/flip?postdata=return:',
- title => &mt('Back to most recent content resource'),
- class => 'LC_menubuttons_link',
- });
+ $hashref);
$links=&htmltag('li',$links);
}
$links.= join "",
@@ -1740,6 +1807,10 @@ returns: nothing
$component_help,
$faq,$bug);
}
+ if ($topic_help && $topic_help_text) {
+ $icons .= ' '.&Apache::loncommon::help_open_topic($topic_help,&mt($topic_help_text),'',
+ undef,600);
+ }
#
@@ -1752,7 +1823,7 @@ returns: nothing
}
- if ($component) {
+ if (($component) || ($topic_help && $topic_help_text)) {
$links = &htmltag('span',
( $no_mt ? $component : mt($component) ).
( $icons ? $icons : '' ),
@@ -1760,11 +1831,24 @@ returns: nothing
.$links
;
}
-
- &render_tools(\$links);
- $links = &htmltag('div', $links,
- { id => "LC_breadcrumbs" }) unless ($CourseBreadcrumbs) ;
- &render_advtools(\$links);
+ my $nav_and_tools = 0;
+ foreach my $item ('navigation','tools') {
+ if (ref($tools{$item}) eq 'ARRAY') {
+ $nav_and_tools += scalar(@{$tools{$item}})
+ }
+ }
+ if (($links ne '') || ($nav_and_tools)) {
+ &render_tools(\$links);
+ $links = &htmltag('div', $links,
+ { id => "LC_breadcrumbs" }) unless ($CourseBreadcrumbs) ;
+ }
+ my $adv_tools = 0;
+ if (ref($tools{'advtools'}) eq 'ARRAY') {
+ $adv_tools = scalar(@{$tools{'advtools'}});
+ }
+ if (($links ne '') || ($adv_tools)) {
+ &render_advtools(\$links);
+ }
# Return the @Crumbs stack to what we started with
push(@Crumbs,$last);
@@ -1894,8 +1978,11 @@ returns: nothing
sub docs_breadcrumbs {
my ($allowed,$crstype,$contenteditor,$title,$precleared)=@_;
- my ($folderpath,@folders);
- my @folders = split('&',$env{'form.folderpath'});
+ my ($folderpath,@folders,$supplementalflag);
+ @folders = split('&',$env{'form.folderpath'});
+ if ($env{'form.folderpath'} =~ /^supplemental/) {
+ $supplementalflag = 1;
+ }
my $plain='';
my $container = 'sequence';
my ($randompick,$isencrypted,$ishidden,$is_random_order) = (-1,0,0,0);
@@ -1916,19 +2003,21 @@ sub docs_breadcrumbs {
# each of randompick number, hidden, encrypted, random order, is_page
# are appended with ":"s to the foldername
$name=~s/\:(\d*)\:(\w*)\:(\w*):(\d*)\:?(\d*)$//;
- if ($contenteditor) {
- if ($1 ne '') {
- $randompick=$1;
- } else {
- $randompick=-1;
+ unless ($supplementalflag) {
+ if ($contenteditor) {
+ if ($1 ne '') {
+ $randompick=$1;
+ } else {
+ $randompick=-1;
+ }
+ if ($2) { $ishidden=1; }
+ if ($3) { $isencrypted=1; }
+ if ($4 ne '') { $is_random_order = 1; }
+ if ($5 == 1) {$container = 'page'; }
}
- if ($2) { $ishidden=1; }
- if ($3) { $isencrypted=1; }
- if ($4 ne '') { $is_random_order = 1; }
- if ($5 == 1) {$container = 'page'; }
}
if ($folder eq 'supplemental') {
- $name = &mt('Supplemental '.$crstype.' Contents');
+ $name = &mt('Supplemental Content');
}
if ($contenteditor) {
$plain.=$name.' > ';
@@ -2195,14 +2284,14 @@ sub course_selection {
my $courseform=''.&Apache::loncommon::selectcourse_link
($formname,'pickcourse','pickdomain','coursedesc','',1,$crstype).'';
- $output .= ''.$allcrs.'
';
+ $output .= '
';
if ($totcodes > 0) {
my $numtitles = @$codetitles;
if ($numtitles > 0) {
- $output .= ''.&mt('Pick courses by category:').'
';
+ $output .= '
';
$output .= '
'.$$codetitles[0].' '."\n". ' |