![]() | ';
- #
- if (defined($component)) {
- $Str .= ''; - if ($no_mt) { - $Str .= $component; - } else { - $Str .= &mt($component); - } - if ($icons ne '') { - $Str .= ' '.$icons; - } - $Str .= ' | '; + if ($faq ne '' || $component_help ne '' || $bug ne '') { + $icons .= &Apache::loncommon::help_open_menu($component, + $component_help, + $faq,$bug); } - $Str .= '
'.$$codetitles[0].' '."\n". - ' | ';
for (my $i=1; $i<$numtitles; $i++) {
$output .= ''.$$codetitles[$i].' '."\n". - ''."\n". @@ -1668,7 +1993,7 @@ sub course_selection { $output .= ' |
'.&mt('No context provided.').'
'; + } + return $return; + +} + ############################################## ############################################## # topic_bar # -# Generates a div containing a numbered (static image) followed by a title -# with a background color defined in the corresponding CSS: LC_topic_bar -# +# Generates a div containing an (optional) number with a white background followed by a +# title with a background color defined in the corresponding CSS: LC_topic_bar +# Inputs: +# 1. number to display. +# If input for number is empty only the title will be displayed. +# 2. title text to display. +# Outputs - a scalar containing html mark-up for the div. + sub topic_bar { - my ($imgnum,$title) = @_; - return ' - -'; + my ($num,$title) = @_; + my $number = ''; + if ($num ne '') { + $number = ''.$num.''; + } + return ' '; } ############################################## ############################################## - # echo_form_input # # Generates html markup to add form elements from the referrer page @@ -1806,30 +2155,30 @@ sub echo_form_input { if ($key =~ /^form\.(.+)$/) { my $name = $1; my $match = 0; - if ((!@{$excluded}) || (!grep/^$name$/,@{$excluded})) { - if (defined($regexps)) { - if (@{$regexps} > 0) { - foreach my $regexp (@{$regexps}) { - if ($name =~ /\Q$regexp\E/) { - $match = 1; - last; - } + if (ref($excluded) eq 'ARRAY') { + next if (grep(/^\Q$name\E$/,@{$excluded})); + } + if (ref($regexps) eq 'ARRAY') { + if (@{$regexps} > 0) { + foreach my $regexp (@{$regexps}) { + if ($name =~ /$regexp/) { + $match = 1; + last; } } } - if (!$match) { - if (ref($env{$key})) { - foreach my $value (@{$env{$key}}) { - $value = &HTML::Entities::encode($value,'<>&"'); - $output .= ''."\n"; - } - } else { - my $value = &HTML::Entities::encode($env{$key},'<>&"'); - $output .= ''."\n"; - } + } + next if ($match); + if (ref($env{$key}) eq 'ARRAY') { + foreach my $value (@{$env{$key}}) { + $value = &HTML::Entities::encode($value,'<>&"'); + $output .= ''."\n"; } + } else { + my $value = &HTML::Entities::encode($env{$key},'<>&"'); + $output .= ''."\n"; } } } @@ -1838,7 +2187,6 @@ sub echo_form_input { ############################################## ############################################## - # set_form_elements # # Generates javascript to set form elements to values based on @@ -1903,7 +2251,7 @@ sub set_form_elements { $values{$name}[$i] =~ s/([\r\n\f]+)/\\n/g; $values{$name}[$i] =~ s/"/\\"/g; } - if ($$elements{$name} eq 'text') { + if (($$elements{$name} eq 'text') || ($$elements{$name} eq 'hidden')) { my $numvalues = @{$values{$name}}; if ($numvalues > 1) { my $valuestring = join('","',@{$values{$name}}); @@ -1938,6 +2286,8 @@ sub set_form_elements { $output .= qq| if (courseForm.elements['$name'].value == "$value") { courseForm.elements['$name'].checked = true; + } else { + courseForm.elements['$name'].checked = false; }|; } } @@ -1979,6 +2329,7 @@ sub set_form_elements { } } $output .= " + return; }\n"; return $output; } @@ -1986,6 +2337,251 @@ sub set_form_elements { ############################################## ############################################## +sub file_submissionchk_js { + my ($turninpaths,$multiples) = @_; + my $overwritewarn = &mt('File(s) you uploaded for your submission will overwrite existing file(s) submitted for this item').'\\n'. + &mt('Continue submission and overwrite the file(s)?'); + my $delfilewarn = &mt('You have indicated you wish to remove some files previously included in your submission.').'\\n'. + &mt('Continue submission with these files removed?'); + my ($turninpathtext,$multtext,$arrayindexofjs); + if (ref($turninpaths) eq 'HASH') { + foreach my $key (sort(keys(%{$turninpaths}))) { + $turninpathtext .= " if (prefix == '$key') {\n". + " return '$turninpaths->{$key}';\n". + " }\n"; + } + } + $turninpathtext .= " return '';\n"; + if (ref($multiples) eq 'HASH') { + foreach my $key (sort(keys(%{$multiples}))) { + $multtext .= " if (prefix == '$key') {\n". + " return '$multiples->{$key}';\n". + " }\n"; + } + } + $multtext .= " return '';\n"; + + $arrayindexofjs = &Apache::loncommon::javascript_array_indexof(); + return <<"ENDSCRIPT"; + + +$arrayindexofjs + +ENDSCRIPT +} + +############################################## +############################################## + # javascript_valid_email # # Generates javascript to validate an e-mail address. @@ -2020,6 +2616,122 @@ END return $scripttag; } + +# USAGE: htmltag(element, content, {attribute => value,...}); +# +# EXAMPLES: +# - htmltag('a', 'this is an anchor', {href => 'www.example.com', +# title => 'this is a title'}) +# +# - You might want to set up needed tags like: +# +# my $h3 = sub { return htmltag( "h3", @_ ) }; +# +# ... and use them: $h3->("This is a headline") +# +# - To set up a couple of tags, see sub inittags +# +# NOTES: +# - Empty elements, such as