Diff for /loncom/interface/lonhtmlcommon.pm between versions 1.413 and 1.421

version 1.413, 2024/06/03 20:41:06 version 1.421, 2025/03/06 16:51:36
Line 542  sub date_setter { Line 542  sub date_setter {
     my ($formname,$dname,$currentvalue,$special,$includeempty,$state,      my ($formname,$dname,$currentvalue,$special,$includeempty,$state,
         $no_hh_mm_ss,$defhour,$defmin,$defsec,$nolink,$no_mm_ss,$no_ss) = @_;          $no_hh_mm_ss,$defhour,$defmin,$defsec,$nolink,$no_mm_ss,$no_ss) = @_;
     my $now = time;      my $now = time;
       my %labels = &Apache::lonlocal::texthash(
                                                  day   => 'day',
                                                  month => 'month',
                                                  year  => 'year',
                                                  sec   => 'seconds',
                                                  min   => 'minutes',
                                                  hour  => 'hours',
                                               );
     my $tzname;      my $tzname;
     my ($sec,$min,$hour,$mday,$month,$year) = ('', '', undef,''.''.'');      my ($sec,$min,$hour,$mday,$month,$year) = ('', '', undef,''.''.'');
     #other potentially useful values:    wkday,yrday,is_daylight_savings      #other potentially useful values:    wkday,yrday,is_daylight_savings
Line 643  document.$formname.$dname\_year.value, Line 650  document.$formname.$dname\_year.value,
 </script>  </script>
 ENDJS  ENDJS
     $result .= '  <span class="LC_nobreak">';      $result .= '  <span class="LC_nobreak">';
     my $monthselector = qq{<select name="$dname\_month" $special $state onchange="javascript:$dname\_checkday()" >};      my $monthselector = qq{<select name="$dname\_month" $special $state onchange="javascript:$dname\_checkday()" aria-label="$labels{'month'}">};
     # Month      # Month
     my @Months = qw/January February  March     April   May      June       my @Months = qw/January February  March     April   May      June 
                     July    August    September October November December/;                      July    August    September October November December/;
Line 657  ENDJS Line 664  ENDJS
     }      }
     $monthselector.= '  </select>';      $monthselector.= '  </select>';
     # Day      # Day
     my $dayselector = qq{<input type="text" name="$dname\_day" $state value="$mday" size="3" $special onchange="javascript:$dname\_checkday()" />};      my $dayselector = qq{<input type="text" name="$dname\_day" $state value="$mday" size="3" $special onchange="javascript:$dname\_checkday()" aria-label="$labels{'day'}" />};
     # Year      # Year
     my $yearselector = qq{<input type="text" name="$dname\_year" $state value="$year" size="5" $special onchange="javascript:$dname\_checkday()" />};      my $yearselector = qq{<input type="text" name="$dname\_year" $state value="$year" size="5" $special onchange="javascript:$dname\_checkday()" aria-label="$labels{'year'}" />};
     #      #
     my $hourselector = qq{<select name="$dname\_hour" $special $state >};      my $hourselector = qq{<select name="$dname\_hour" $special $state aria-label="$labels{'hour'}">};
     if ($includeempty) {       if ($includeempty) { 
         $hourselector.=qq{<option value=''></option>};          $hourselector.=qq{<option value=''></option>};
     }      }
Line 683  ENDJS Line 690  ENDJS
         $hourselector .= $timest." </option>\n";          $hourselector .= $timest." </option>\n";
     }      }
     $hourselector .= "  </select>\n";      $hourselector .= "  </select>\n";
     my $minuteselector = qq{<input type="text" name="$dname\_minute" $special $state value="$min" size="3" />};      my $minuteselector = qq{<input type="text" name="$dname\_minute" $special $state value="$min" size="3" aria-label="$labels{'min'}" />};
     my $secondselector= qq{<input type="text" name="$dname\_second" $special $state value="$sec" size="3" />};      my $secondselector= qq{<input type="text" name="$dname\_second" $special $state value="$sec" size="3" aria-label="$labels{'sec'}" />};
     my $cal_link;      my $cal_link;
     unless (($nolink) || ($state eq 'disabled')) {      unless (($nolink) || ($state eq 'disabled')) {
         $cal_link = qq{<a href="javascript:$dname\_opencalendar()">};          $cal_link = qq{<a href="javascript:$dname\_opencalendar()">};
Line 1861  document.addEventListener("DOMContentLoa Line 1868  document.addEventListener("DOMContentLoa
                 {                  {
                     regex = new RegExp ("\\p{Dash}", "gu");                      regex = new RegExp ("\\p{Dash}", "gu");
                 }                  }
                 catch (e) { regex = new RegExp ("[\\u058A\\u05BE\\u1400\\u1806\\u2010-\\u2015\\u2E3A\\u2E3B\\u2E5D\\u301C\\uFE58\\uFE63\\uFF0D]","g"); }                  catch (e) { regex = new RegExp ("[\\u058A\\u05BE\\u1400\\u1806\\u2010-\\u2015\\u2212\\u2E3A\\u2E3B\\u2E5D\\u301C\\uFE58\\uFE63\\uFF0D]","g"); }
                 p = p.replace(regex,'-');                  p = p.replace(regex,'-');
                 putInText(p);                  putInText(p);
             });              });
Line 1915  boolean, controls whether to include a l Line 1922  boolean, controls whether to include a l
   
 if 'nohelp' don't include the orange help link  if 'nohelp' don't include the orange help link
   
 =item $css_class  =item $crumbs_style
   
 optional name for the class to apply to the table for CSS  optional style attribute for div containing breadcrumbs
   unless called from docs_breadcrumbs
   
 =item $no_mt   =item $no_mt 
   
Line 1975  returns: nothing Line 1983  returns: nothing
     my %tools = ();      my %tools = ();
           
     sub breadcrumbs {      sub breadcrumbs {
         my ($component,$component_help,$menulink,$helplink,$css_class,$no_mt,           my ($component,$component_help,$menulink,$helplink,$crumbs_style,$no_mt, 
             $CourseBreadcrumbs,$topic_help,$topic_help_text,$links_target) = @_;              $CourseBreadcrumbs,$topic_help,$topic_help_text,$links_target) = @_;
         #          #
         $css_class ||= 'LC_breadcrumbs';  
   
         # Make the faq and bug data cascade          # Make the faq and bug data cascade
         my $faq  = '';          my $faq  = '';
         my $bug  = '';          my $bug  = '';
Line 2081  returns: nothing Line 2087  returns: nothing
   
         if ($lasttext ne '') {          if ($lasttext ne '') {
             $links .= &htmltag( 'li', htmltag($CourseBreadcrumbs ? 'b' : 'h1',              $links .= &htmltag( 'li', htmltag($CourseBreadcrumbs ? 'b' : 'h1',
                     $lasttext), {title => $lasttext});                      $lasttext));
         }          }
   
         my $icons = '';          my $icons = '';
Line 2133  returns: nothing Line 2139  returns: nothing
         }          }
         if (($links ne '') || ($nav_and_tools)) {          if (($links ne '') || ($nav_and_tools)) {
             &render_tools(\$links);              &render_tools(\$links);
             $links = &htmltag('div', $links,               unless ($CourseBreadcrumbs) {
                               { id => "LC_breadcrumbs" }) unless ($CourseBreadcrumbs) ;                  my $args = { id => 'LC_breadcrumbs' };
                   if ($crumbs_style ne '') {
                       $args->{'style'} = $crumbs_style;
                   }
                   $links = &htmltag('div', $links, $args);
               }
         }          }
         my $adv_tools = 0;          my $adv_tools = 0;
         if (ref($tools{'advtools'}) eq 'ARRAY') {          if (ref($tools{'advtools'}) eq 'ARRAY') {
Line 2151  returns: nothing Line 2162  returns: nothing
   
         # Return the breadcrumb's line          # Return the breadcrumb's line
   
               my $labeltext = &HTML::Entities::encode(&mt('Links for navigation and information'));
           return '<div class="LC_landmark" role="navigation" aria-label="'.$labeltext.'">'.$links.'</div>';
         return "$links";  
     }      }
   
     sub clear_breadcrumbs {      sub clear_breadcrumbs {
Line 2453  sub docs_breadcrumbs { Line 2463  sub docs_breadcrumbs {
 my @row_count;  my @row_count;
   
 sub start_pick_box {  sub start_pick_box {
     my ($css_class,$id) = @_;      my ($css_class,$id,$caption,$caption_class) = @_;
     if (defined($css_class)) {      if (defined($css_class)) {
  $css_class = 'class="'.$css_class.'"';   $css_class = 'class="'.$css_class.'"';
     } else {      } else {
Line 2467  sub start_pick_box { Line 2477  sub start_pick_box {
     my $output = <<"END";      my $output = <<"END";
  <table $css_class $table_id>   <table $css_class $table_id>
 END  END
       if (defined($caption)) {
           if (defined($caption_class)) {
               $caption_class = 'class="'.$caption_class.'"';
           } else {
               $caption_class = 'class="LC_caption"';
           }
           $output .= <<"END";
    <caption $caption_class>$caption</caption>
   END
       }
     return $output;      return $output;
 }  }
   
Line 2486  END Line 2506  END
 }  }
   
 sub row_title {  sub row_title {
     my ($title,$css_title_class,$css_value_class, $css_value_furtherAttributes) = @_;      my ($title,$css_title_class,$css_value_class,$css_value_furtherAttributes,$nocolon) = @_;
     $row_count[0]++;      $row_count[0]++;
     my $css_class = ($row_count[0] % 2)?'LC_odd_row':'LC_even_row';      my $css_class = ($row_count[0] % 2)?'LC_odd_row':'LC_even_row';
     $css_title_class ||= 'LC_pick_box_title';      $css_title_class ||= 'LC_pick_box_title';
Line 2494  sub row_title { Line 2514  sub row_title {
   
     $css_value_class ||= 'LC_pick_box_value';      $css_value_class ||= 'LC_pick_box_value';
   
     if ($title ne '') {      if (($title ne '') && (!$nocolon)) {
         $title .= ':';          $title .= ':';
     }      }
     my $output = <<"ENDONE";      my $output = <<"ENDONE";
            <tr class="LC_pick_box_row" $css_value_furtherAttributes>              <tr class="LC_pick_box_row" $css_value_furtherAttributes> 
             <td $css_title_class>              <th $css_title_class>
        $title         $title
             </td>              </th>
             <td class="$css_value_class $css_class">              <td class="$css_value_class $css_class">
 ENDONE  ENDONE
     return $output;      return $output;
Line 3966  sub list_from_array { Line 3986  sub list_from_array {
 sub generate_menu {  sub generate_menu {
     my @menu = @_;      my @menu = @_;
     # subs for specific html elements      # subs for specific html elements
     my ($h3, $div, $ul, $li, $a, $img) = inittags( qw(h3 div ul li a img) );       my ($h2, $div, $ul, $li, $a, $img) = inittags( qw(h2 div ul li a img) );
           
     my @categories; # each element represents the entire markup for a category      my @categories; # each element represents the entire markup for a category
         
Line 3989  sub generate_menu { Line 4009  sub generate_menu {
                                 src   => $src,                                  src   => $src,
                                 alt   => mt(defined($$link{alttext}) ?                                  alt   => mt(defined($$link{alttext}) ?
                                 $$link{alttext} : $$link{linktext})                                  $$link{alttext} : $$link{linktext})
                             }), {                              }).mt($$link{linktext}), {
                             href  => $$link{url},  
                             title => mt($$link{linktitle}),  
                             class => 'LC_menubuttons_link'  
                             }).  
                         $a->(mt($$link{linktext}), {  
                             href  => $$link{url},                              href  => $$link{url},
                             title => mt($$link{linktitle}),                              title => mt($$link{linktitle}),
                             class => "LC_menubuttons_link"                              class => "LC_menubuttons_link"
                             }).                              }).
                          (defined($$link{help}) ?                            (defined($$link{help}) ?
                          Apache::loncommon::help_open_topic($$link{help}) : ''),                           Apache::loncommon::help_open_topic($$link{help}) : ''),
                          {class => "LC_menubuttons_inline_text"}));                           {class => "LC_menubuttons_inline_text"}));
         }          }
   
         # wrap categorytitle in <h3>, concatenate with           # wrap categorytitle in <h2>, concatenate with 
         # joined and in <ul> tags wrapped @links          # joined and in <ul> tags wrapped @links
         # and wrap everything in an enclosing <div> and push it into          # and wrap everything in an enclosing <div> and push it into
         # @categories          # @categories
         # such that each element looks like:          # such that each element looks like:
         # <div><h3>title</h3><ul><li>...</li>...</ul></div>          # <div><h2>title</h2><ul><li>...</li>...</ul></div>
         # the category won't be added if there aren't any links          # the category won't be added if there aren't any links
         push(@categories,           push(@categories, 
             $div->($h3->(mt($$category{categorytitle}), {class=>"LC_hcell"}).              $div->($h2->(mt($$category{categorytitle}), {class=>'LC_hcell LC_heading_2'}).
             $ul->(join('' ,@links),  {class =>"LC_ListStyleNormal" }),              $ul->(join('' ,@links),  {class =>"LC_ListStyleNormal" }),
             {class=>"LC_Box LC_400Box"})) if scalar(@links);              {class=>"LC_Box LC_400Box"})) if scalar(@links);
     }      }

Removed from v.1.413  
changed lines
  Added in v.1.421


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>