Diff for /loncom/interface/lonhtmlcommon.pm between versions 1.179 and 1.198

version 1.179, 2008/08/24 12:56:28 version 1.198, 2009/01/20 16:38:39
Line 102  can be used to paste LaTeX into a textar Line 102  can be used to paste LaTeX into a textar
 =cut  =cut
   
 sub dragmath_js {  sub dragmath_js {
       my ($popup) = @_;
     return <<ENDDRAGMATHJS;      return <<ENDDRAGMATHJS;
                 <script type="text/javascript">                  <script type="text/javascript">
                   function mathedit(textarea, doc) {                    function mathedit(textarea, doc) {
                      targetEntry = textarea;                       targetEntry = textarea;
                      targetDoc   = doc;                       targetDoc   = doc;
                      newwin  = window.open("/adm/dragmath/applet/EditMathPopup.html","","width=565,height=500,resizable");                       newwin  = window.open("/adm/dragmath/applet/$popup.html","","width=565,height=500,resizable");
                   }                    }
                 </script>                  </script>
   
 ENDDRAGMATHJS  ENDDRAGMATHJS
 }  }
   
   
 ##############################################  ##############################################
 ##############################################  ##############################################
   
Line 465  document.$formname.$dname\_year.value, Line 467  document.$formname.$dname\_year.value,
     }      }
 </script>  </script>
 ENDJS  ENDJS
     $result .= '  <span style="white-space: nowrap;">';      $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()" >};
     # Month      # Month
     my @Months = qw/January February  March     April   May      June       my @Months = qw/January February  March     April   May      June 
Line 1276  Inputs: $component (the large text on th Line 1278  Inputs: $component (the large text on th
         $menulink (boolean, controls whether to include a link to /adm/menu)          $menulink (boolean, controls whether to include a link to /adm/menu)
         $helplink (if 'nohelp' don't include the orange help link)          $helplink (if 'nohelp' don't include the orange help link)
         $css_class (optional name for the class to apply to the table for CSS)          $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.  Returns a string containing breadcrumbs for the current page.
   
 =item clear_breadcrumbs  =item clear_breadcrumbs
Line 1301  returns: nothing Line 1305  returns: nothing
     my @Crumbs;      my @Crumbs;
           
     sub breadcrumbs {      sub breadcrumbs {
         my ($component,$component_help,$menulink,$helplink,$css_class) = @_;          my ($component,$component_help,$menulink,$helplink,$css_class,$no_mt) = @_;
         #          #
  $css_class ||= 'LC_breadcrumbs';   $css_class ||= 'LC_breadcrumbs';
         my $Str = "\n".'<table class="'.$css_class.'"><tr><td>';          my $Str = "\n".'<table class="'.$css_class.'"><tr><td><ol id="LC_MenuBreadcrumbs">';
         #          #
         # Make the faq and bug data cascade          # Make the faq and bug data cascade
         my $faq = '';          my $faq = '';
         my $bug = '';          my $bug = '';
  my $help='';   my $help='';
    # Crumb Symbol
    my $crumbsymbol = ' &#x25b6; ';
         # The last breadcrumb does not have a link, so handle it separately.          # The last breadcrumb does not have a link, so handle it separately.
         my $last = pop(@Crumbs);          my $last = pop(@Crumbs);
         #          #
Line 1333  returns: nothing Line 1339  returns: nothing
                 });                  });
         }          }
         my $links .=           my $links .= 
             join('-&gt;',              join($crumbsymbol,
                  map {                   map {
                      $faq = $_->{'faq'} if (exists($_->{'faq'}));                       $faq = $_->{'faq'} if (exists($_->{'faq'}));
                      $bug = $_->{'bug'} if (exists($_->{'bug'}));                       $bug = $_->{'bug'} if (exists($_->{'bug'}));
                      $help = $_->{'help'} if (exists($_->{'help'}));                       $help = $_->{'help'} if (exists($_->{'help'}));
                      my $result = '<a href="'.$_->{'href'}.'" ';                       my $result = '<li><a href="'.$_->{'href'}.'" ';
                      if (defined($_->{'target'}) && $_->{'target'} ne '') {                       if (defined($_->{'target'}) && $_->{'target'} ne '') {
                          $result .= 'target="'.$_->{'target'}.'" ';                           $result .= 'target="'.$_->{'target'}.'" ';
                      }                       }
      if ($_->{'no_mt'}) {       if ($_->{'no_mt'}) {
  $result .='title="'.$_->{'title'}.'">'.   $result .='title="'.$_->{'title'}.'">'.
      $_->{'text'}.'</a>';       $_->{'text'}.'</a></li>';
      } else {       } else {
  $result .='title="'.&mt($_->{'title'}).'">'.   $result .='title="'.&mt($_->{'title'}).'">'.
      &mt($_->{'text'}).'</a>';       &mt($_->{'text'}).'</a></li>';
      }       }
                      $result;                       $result;
                      } @Crumbs                       } @Crumbs
                  );                   );
         $links .= '-&gt;' if ($links ne '');          $links .= $crumbsymbol if ($links ne '');
  if ($last->{'no_mt'}) {   if ($last->{'no_mt'}) {
     $links .= '<b>'.$last->{'text'}.'</b>';      $links .= '<li><b>'.$last->{'text'}.'</b></li>';
  } else {   } else {
     $links .= '<b>'.&mt($last->{'text'}).'</b>';      $links .= '<li><b>'.&mt($last->{'text'}).'</b></li>';
  }   }
         #          #
         my $icons = '';          my $icons = '';
Line 1376  returns: nothing Line 1382  returns: nothing
  $faq,$bug);   $faq,$bug);
  }   }
         #          #
         $Str .= $links.'</td>';          $Str .= $links.'</ol></td>';
         #          #
         if (defined($component)) {          if (defined($component)) {
             $Str .= '<td class="'.$css_class.'_component">'.              $Str .= '<td class="'.$css_class.'_component">';
                 &mt($component);              if ($no_mt) {
                   $Str .= $component;
               } else {
                   $Str .= &mt($component);
               }
     if ($icons ne '') {      if ($icons ne '') {
  $Str .= '&nbsp;'.$icons;   $Str .= '&nbsp;'.$icons;
     }      }
Line 1461  returns: nothing Line 1471  returns: nothing
 # routines, but can also be called directly to start and end rows which have   # routines, but can also be called directly to start and end rows which have 
 # needs that are not accommodated by the *_select_row() routines.      # needs that are not accommodated by the *_select_row() routines.    
   
   { # Start: row_count block for pick_box
   my @row_count;
   
 sub start_pick_box {  sub start_pick_box {
     my ($css_class) = @_;      my ($css_class) = @_;
     if (defined($css_class)) {      if (defined($css_class)) {
Line 1468  sub start_pick_box { Line 1481  sub start_pick_box {
     } else {      } else {
  $css_class= 'class="LC_pick_box"';   $css_class= 'class="LC_pick_box"';
     }      }
       unshift(@row_count,0);
     my $output = <<"END";      my $output = <<"END";
  <table $css_class>   <table $css_class>
 END  END
Line 1475  END Line 1489  END
 }  }
   
 sub end_pick_box {  sub end_pick_box {
       shift(@row_count);
     my $output = <<"END";      my $output = <<"END";
        </table>         </table>
 END  END
     return $output;      return $output;
 }  }
   
   sub row_headline {
       my $output = <<"END";
              <tr><td colspan="2">
   END
       return $output;
   }
   
 sub row_title {  sub row_title {
       $row_count[0]++;
       my $css_class = ($row_count[0] % 2)?'LC_odd_row':'LC_even_row';
     my ($title,$css_title_class,$css_value_class) = @_;      my ($title,$css_title_class,$css_value_class) = @_;
     $css_title_class ||= 'LC_pick_box_title';      $css_title_class ||= 'LC_pick_box_title';
     $css_title_class = 'class="'.$css_title_class.'"';      $css_title_class = 'class="'.$css_title_class.'"';
   
     $css_value_class ||= 'LC_pick_box_value';      $css_value_class ||= 'LC_pick_box_value';
     $css_value_class = 'class="'.$css_value_class.'"';  
   
     if ($title ne '') {      if ($title ne '') {
         $title .= ':';          $title .= ':';
Line 1497  sub row_title { Line 1520  sub row_title {
             <td $css_title_class>              <td $css_title_class>
        $title         $title
             </td>              </td>
             <td $css_value_class>              <td class="$css_value_class $css_class">
 ENDONE  ENDONE
     return $output;      return $output;
 }  }
Line 1519  ENDTWO Line 1542  ENDTWO
     return $output;      return $output;
 }  }
   
   } # End: row_count block for pick_box
   
   
 sub role_select_row {  sub role_select_row {
     my ($roles,$title,$css_class,$show_separate_custom,$cdom,$cnum) = @_;      my ($roles,$title,$css_class,$show_separate_custom,$cdom,$cnum) = @_;
     my $output;      my $output;
Line 1526  sub role_select_row { Line 1552  sub role_select_row {
         $output = &row_title($title,$css_class);          $output = &row_title($title,$css_class);
     }      }
     $output .= qq|      $output .= qq|
                                   <select name="roles" multiple >\n|;                                    <select name="roles" multiple="multiple">\n|;
     foreach my $role (@$roles) {      foreach my $role (@$roles) {
         my $plrole;          my $plrole;
         if ($role eq 'ow') {          if ($role eq 'ow') {
Line 1653  sub status_select_row { Line 1679  sub status_select_row {
         $output = &row_title($title,$css_class,'LC_pick_box_select');          $output = &row_title($title,$css_class,'LC_pick_box_select');
     }      }
     $output .= qq|      $output .= qq|
                                     <select name="types" multiple>\n|;                                      <select name="types" multiple="multiple">\n|;
     foreach my $status_type (sort(keys(%{$types}))) {      foreach my $status_type (sort(keys(%{$types}))) {
         $output .= '  <option value="'.$status_type.'">'.$$types{$status_type}.'</option>';          $output .= '  <option value="'.$status_type.'">'.$$types{$status_type}.'</option>';
     }      }
Line 1697  sub email_default_row { Line 1723  sub email_default_row {
   
 sub submit_row {  sub submit_row {
     my ($title,$cmd,$submit_text,$css_class) = @_;      my ($title,$cmd,$submit_text,$css_class) = @_;
       $submit_text = &mt($submit_text);
     my $output = &row_title($title,$css_class,'LC_pick_box_submit');      my $output = &row_title($title,$css_class,'LC_pick_box_submit');
     $output .= qq|      $output .= qq|
              <br />               <br />
Line 1993  END Line 2020  END
     return $scripttag;      return $scripttag;
 }  }
   
   ##############################################
   ##############################################
   
   # generate_menu
   #
   # Generates html markup for a menu. 
   #
   # Inputs:
   # An array of following structure:
   #   ({ categorytitle => 'Categorytitle',
   # items => [
   #    { linktext    => 'Text to be displayed',
   # url    => 'URL the link is pointing to, i.e. /adm/site?action=dosomething',
   # permission  => 'Contains permissions as returned from lonnet::allowed(),
   # must evaluate to true in order to activate the link',
   # icon        =>  'icon filename',
   # alttext    => 'alt text for the icon',
   # help    => 'Name of the corresponding helpfile',
   # linktitle   => 'Description of the link (used for title tag)'
   #    },
   #    ...
   # ]
   #   }, 
   #   ...
   #   )
   #
   # Outputs: A scalar containing the html markup for the menu.
   
   # ---- Remove when done ----
   # This routine is part of the redesign of LON-CAPA and it's 
   # subject to change during this project.
   # Don't rely on its current functionality as it might be 
   # changed or removed.
   # TODO:
   # check for empty values
   # --------------------------
   
   sub generate_menu {
       my @menu = @_;
       my $menu_html = qq|<div class="LC_columnSection">|;
   
       foreach my $category (@menu) { #FIXME: insert appropriate classnames for styles when they're finished.
    $menu_html .='<div class="LC_ContentBoxSpecial">
    <h3 class="LC_hcell">'.mt($category->{'categorytitle'}).'</h3>
    <ul class="LC_ListStyleNormal">';
    foreach my $item ( @{ $category->{items} } ) {
       next unless $item->{'permission'};
       $menu_html .= qq|<li class="LC_menubuttons_inline_text"><a href="$item->{'url'}" title="|.mt($item->{'linktitle'}).'">';
               if($item->{'icon'}){
                   $menu_html .= qq|<img class ="LC_noBorder LC_middle" src="/res/adm/pages/$item->{'icon'}" alt="|;
    if($item->{'alttext'}){
       $menu_html .= $item->{'alttext'}.'"/></a>';
    } else { #use linktext as alt text for the icon
       $menu_html .= qq|$item->{'linktext'}"/></a>|;
                   } 
               }
       $menu_html .= qq|<a href="$item->{'url'}" title="|.mt($item->{'linktitle'}).'">';
               $menu_html .= mt($item->{'linktext'}).'</a>';
       if (exists($item->{'help'})) {
    $menu_html .= Apache::loncommon::help_open_topic($item->{'help'});
       }
       $menu_html .= '</li>';
    }
    $menu_html .= '</ul></div>';
       }
       $menu_html .= qq|</div>|;
       return $menu_html;
   }
   
   
 1;  1;

Removed from v.1.179  
changed lines
  Added in v.1.198


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