Diff for /loncom/interface/lonhtmlcommon.pm between versions 1.49 and 1.53

version 1.49, 2004/02/16 22:28:55 version 1.53, 2004/02/20 16:21:49
Line 557  Inputs Line 557  Inputs
   
 =item $number_to_do The total number of items being processed.  =item $number_to_do The total number of items being processed.
   
   =item $type Either 'popup' or 'inline' (popup is assumed if nothing is
          specified)
   
   =item $width Specify the width in charaters of the input field.
   
   =item $formname Only useful in the inline case, if a form already exists, this needs to be used and specfiy the name of the form, otherwise the Progress line will be created in a new form of it's own
   
   =item $inputname Only useful in the inline case, if a form and an input of type text exists, use this to specify the name of the input field 
   
 =back  =back
   
 Returns a hash containing the progress state data structure.  Returns a hash containing the progress state data structure.
Line 625  Returns: none Line 634  Returns: none
 ########################################################  ########################################################
 ########################################################  ########################################################
   
   my $uniq=0;
   sub get_uniq_name {
       $uniq++;
       return 'uniquename'.$uniq;
   }
   
 # Create progress  # Create progress
 sub Create_PrgWin {  sub Create_PrgWin {
     my ($r, $title, $heading, $number_to_do,$type,$formname,$inputname)=@_;      my ($r, $title, $heading, $number_to_do,$type,$width,$formname,
    $inputname)=@_;
     if (!defined($type)) { $type='popup'; }      if (!defined($type)) { $type='popup'; }
       if (!defined($width)) { $width=55; }
     my %prog_state;      my %prog_state;
     $prog_state{'type'}=$type;      $prog_state{'type'}=$type;
     if ($type eq 'popup') {      if ($type eq 'popup') {
Line 643  sub Create_PrgWin { Line 660  sub Create_PrgWin {
       "<body bgcolor=\"#88DDFF\">".        "<body bgcolor=\"#88DDFF\">".
               "<h4>$heading</h4>".                "<h4>$heading</h4>".
               "<form name=popremain>".                "<form name=popremain>".
               '<input type="text" size="55" name="remaining" value="'.                '<input type="text" size="'.$width.'" name="remaining" value="'.
       &mt('Starting').'"></form>'.        &mt('Starting').'"></form>'.
               "</body></html>\');".                "</body></html>\');".
         "popwin.document.close();}".          "popwin.document.close();}".
Line 653  sub Create_PrgWin { Line 670  sub Create_PrgWin {
     } elsif ($type eq 'inline') {      } elsif ($type eq 'inline') {
  $prog_state{'window'}='window';   $prog_state{'window'}='window';
  if (!$formname) {   if (!$formname) {
     &r_print($r,'<form name="progresswindow">');      $prog_state{'formname'}=&get_uniq_name();
     $prog_state{'formname'}='progresswindow';      &r_print($r,'<form name="'.$prog_state{'formname'}.'">');
  } else {   } else {
     $prog_state{'formname'}=$formname;      $prog_state{'formname'}=$formname;
  }   }
  if (!$inputname) {   if (!$inputname) {
     &r_print($r,'<input type="text" name="progressline" />');      $prog_state{'inputname'}=&get_uniq_name();
     $prog_state{'inputname'}="progressline";      &r_print($r,'<input type="text" name="'.$prog_state{'inputname'}.
        '" size="'.$width.'" />');
  } else {   } else {
     $prog_state{'inputname'}=$inputname;      $prog_state{'inputname'}=$inputname;
           
Line 785  sub crumbs { Line 803  sub crumbs {
     return $output.'</font></b></tt><br />';      return $output.'</font></b></tt><br />';
 }  }
   
   # ------------------------------------------------- Output headers for HTMLArea
   
   sub htmlareaheaders {
       unless (&htmlareabrowser()) { return ''; }
       my $lang='en';
       return (<<ENDHEADERS);
   <script type="text/javascript" src="/htmlarea/htmlarea.js"></script>
   <script type="text/javascript" src="/htmlarea/lang/$lang.js"></script>
   <script type="text/javascript" src="/htmlarea/dialog.js"></script>
   <style type="text/css">
   \@import url(/htmlarea/htmlarea.css);
   </style>
   ENDHEADERS
   }
   
   # ---------------------------------------------------------- Script to activate
   
   sub htmlareaactive {
       unless (&htmlareabrowser()) { return ''; }
       return (<<ENDSCRIPT);
   <script type="text/javascript" defer="1">
       HTMLArea.replaceAll();
   </script>
   ENDSCRIPT
   }
   
   # ---------------------------------------- Browser capable of running HTMLArea?
   
   sub htmlareabrowser {
       return 1;
   }
   
   ############################################################
   ############################################################
   
   =pod
   
   =item breadcrumbs
   
   Compiles the previously registered breadcrumbs into an series of links.
   FAQ and BUG links will be placed on the left side of the table if they
   are defined for the last registered breadcrumb.  
   Additionally supports a 'component', which will be displayed on the
   right side of the table (without a link).
   A link to help for the component will be included if one is specified.
   
   All inputs can be undef without problems.
   
   Inputs: $color (the background color of the table returned),
           $component (the large text on the right side of the table),
           $component_help
   
   Returns a string containing breadcrumbs for the current page.
   
   =item clear_breadcrumbs
   
   Clears the previously stored breadcrumbs.
   
   =item add_breadcrumb
   
   Pushes a breadcrumb on the stack of crumbs.
   
   input: $breadcrumb, a hash reference.  The keys 'href','title', and 'text'
   are required.  If present the keys 'faq' and 'bug' will be used to provide
   links to the FAQ and bug sites.
   
   returns: nothing    
   
   =cut
   
   ############################################################
   ############################################################
   {
       my @Crumbs;
   
       sub breadcrumbs {
           my ($color,$component,$component_help) = @_;
           $color = '#CCCCFF' if (! defined($color));
           #
           my $Str = "\n".
               '<table width="100%" border="0" cellpadding="0" cellspacing="0">'.
               '<tr><td bgcolor="'.$color.'">'.
               '<font size="-1">';
           # The last breadcrumb does not have a link, so handle it seperately.
           my $last = pop(@Crumbs);
           # The first one should be the course, I guess.
           if (exists($ENV{'request.course.id'})) {
               my $cid = $ENV{'request.course.id'};
               unshift(@Crumbs,{href=>'/adm/menu',
                                title=>'Go to main menu',
                                text=>$ENV{'course.'.$cid.'.description'},
                            });
           }
           my $links .= 
               join('-&gt;',
                    map {
                        '<a href="'.$_->{'href'}.'" title="'.$_->{'title'}.'">'.
                            $_->{'text'}.'</a>' 
                        } @Crumbs
                    );
           $links .= '-&gt;' if ($links ne '');
           $links .= '<b>'.$last->{'text'}.'</b>';
           if (exists($last->{'bug'})) {
               $links = &Apache::loncommon::help_open_bug($last->{'bug'}).$links;
           }
           if (exists($last->{'faq'})) {
               $links = &Apache::loncommon::help_open_faq($last->{'faq'}).$links;
           }
           $Str .= $links.'</font></td>';
           if (defined($component)) {
               $Str .= '<td align="right" bgcolor="'.$color.'">'.
                   '<font size="+1">'.$component.'</font>';
               if (defined($component_help)) {
                   $Str .= 
                       &Apache::loncommon::help_open_topic($component_help);
               }
               $Str.= '</td>';
           }
           $Str .= '</tr></table>'."\n";
           #
           # Return the @Crumbs stack to what we started with
           push(@Crumbs,$last);
           shift(@Crumbs);
           #
           return $Str;
       }
   
       sub clear_breadcrumbs {
           undef(@Crumbs);
       }
   
       sub add_breadcrumb {
           push (@Crumbs,@_);
       }
   
   }
   
   ############################################################
   ############################################################
   
   
 1;  1;
   

Removed from v.1.49  
changed lines
  Added in v.1.53


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