Diff for /loncom/interface/lonhtmlcommon.pm between versions 1.57 and 1.64

version 1.57, 2004/03/01 16:04:43 version 1.64, 2004/04/12 20:03:31
Line 201  Also, to be explicit, a value of 'now' a Line 201  Also, to be explicit, a value of 'now' a
 Additional html/javascript to be associated with each element in  Additional html/javascript to be associated with each element in
 the date_setter.  See lonparmset for example usage.  the date_setter.  See lonparmset for example usage.
   
   =item $includeempty 
   
   =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. 
   
 =back  =back
   
 Bugs  Bugs
Line 212  The method used to restrict user input w Line 219  The method used to restrict user input w
 ##############################################  ##############################################
 ##############################################  ##############################################
 sub date_setter {  sub date_setter {
     my ($formname,$dname,$currentvalue,$special,$includeempty) = @_;      my ($formname,$dname,$currentvalue,$special,$includeempty,$state) = @_;
       if (! defined($state) || $state ne 'disabled') {
           $state = '';
       }
     if (! defined($currentvalue) || $currentvalue eq 'now') {      if (! defined($currentvalue) || $currentvalue eq 'now') {
  unless ($includeempty) {   unless ($includeempty) {
     $currentvalue = time;      $currentvalue = time;
Line 261  sub date_setter { Line 271  sub date_setter {
         }          }
     }      }
   
       function $dname\_disable() {
           document.$formname.$dname\_month.disabled=true;
           document.$formname.$dname\_day.disabled=true;
           document.$formname.$dname\_year.disabled=true;
           document.$formname.$dname\_hour.disabled=true;
           document.$formname.$dname\_minute.disabled=true;
           document.$formname.$dname\_second.disabled=true;
       }
   
       function $dname\_enable() {
           document.$formname.$dname\_month.disabled=false;
           document.$formname.$dname\_day.disabled=false;
           document.$formname.$dname\_year.disabled=false;
           document.$formname.$dname\_hour.disabled=false;
           document.$formname.$dname\_minute.disabled=false;
           document.$formname.$dname\_second.disabled=false;        
       }
   
     function $dname\_opencalendar() {      function $dname\_opencalendar() {
        var calwin=window.open(          if (! document.$formname.$dname\_month.disabled) {
               var calwin=window.open(
 "/adm/announcements?pickdate=yes&formname=$formname&element=$dname&month="+  "/adm/announcements?pickdate=yes&formname=$formname&element=$dname&month="+
 document.$formname.$dname\_month.value+"&year="+  document.$formname.$dname\_month.value+"&year="+
 document.$formname.$dname\_year.value,  document.$formname.$dname\_year.value,
              "LONCAPAcal",               "LONCAPAcal",
               "height=350,width=350,scrollbars=yes,resizable=yes,menubar=no");                "height=350,width=350,scrollbars=yes,resizable=yes,menubar=no");
           }
   
     }      }
 </script>  </script>
 ENDJS  ENDJS
     $result .= "  <nobr><select name=\"$dname\_month\" ".$special.' '.      $result .= "  <nobr><select name=\"$dname\_month\" ".$special.' '.
           $state.' '.
         "onChange=\"javascript:$dname\_checkday()\" >\n";          "onChange=\"javascript:$dname\_checkday()\" >\n";
     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 285  ENDJS Line 316  ENDJS
         $result .= "> ".&mt($Months[$m])." </option>\n";          $result .= "> ".&mt($Months[$m])." </option>\n";
     }      }
     $result .= "  </select>\n";      $result .= "  </select>\n";
     $result .= "  <input type=\"text\" name=\"$dname\_day\" ".      $result .= "  <input type=\"text\" name=\"$dname\_day\" ".$state.' '.
             "value=\"$mday\" size=\"3\" ".$special.' '.              "value=\"$mday\" size=\"3\" ".$special.' '.
             "onChange=\"javascript:$dname\_checkday()\" />\n";              "onChange=\"javascript:$dname\_checkday()\" />\n";
     $result .= "  <input type=\"year\" name=\"$dname\_year\" ".      $result .= "  <input type=\"year\" name=\"$dname\_year\" ".$state.' '.
             "value=\"$year\" size=\"5\" ".$special.' '.              "value=\"$year\" size=\"5\" ".$special.' '.
             "onChange=\"javascript:$dname\_checkday()\" />\n";              "onChange=\"javascript:$dname\_checkday()\" />\n";
     $result .= "&nbsp;&nbsp;";      $result .= "&nbsp;&nbsp;";
     $result .= "  <select name=\"$dname\_hour\" ".$special." >\n";      $result .= "  <select name=\"$dname\_hour\" ".$special." ".$state.' '.">\n";
     if ($includeempty) { $result.="<option value=''></option>"; }      if ($includeempty) { $result.="<option value=''></option>"; }
     for (my $h = 0;$h<24;$h++) {      for (my $h = 0;$h<24;$h++) {
         $result .= "      <option value=\"$h\" ";          $result .= "      <option value=\"$h\" ";
Line 313  ENDJS Line 344  ENDJS
     }       } 
     $result .= "  </select>\n";      $result .= "  </select>\n";
     $result .= "  <input type=\"text\" name=\"$dname\_minute\" ".$special.' '.      $result .= "  <input type=\"text\" name=\"$dname\_minute\" ".$special.' '.
           $state.' '.
         "value=\"$min\" size=\"3\" /> m\n";          "value=\"$min\" size=\"3\" /> m\n";
     $result .= "  <input type=\"text\" name=\"$dname\_second\" ".$special.' '.      $result .= "  <input type=\"text\" name=\"$dname\_second\" ".$special.' '.
           $state.' '.
         "value=\"$sec\" size=\"3\" /> s\n";          "value=\"$sec\" size=\"3\" /> s\n";
     $result .= "<a href=\"javascript:$dname\_opencalendar()\">".      $result .= "<a href=\"javascript:$dname\_opencalendar()\">".
     &mt('Select Date')."</a></nobr>\n<!-- end $dname date setting form -->\n";      &mt('Select Date')."</a></nobr>\n<!-- end $dname date setting form -->\n";
Line 359  sub get_date_from_form { Line 392  sub get_date_from_form {
         if (($tmpsec =~ /^\d+$/) && ($tmpsec >= 0) && ($tmpsec < 60)) {          if (($tmpsec =~ /^\d+$/) && ($tmpsec >= 0) && ($tmpsec < 60)) {
             $sec = $tmpsec;              $sec = $tmpsec;
         }          }
    if (!defined($tmpsec) || $tmpsec eq '') { $sec = 0; }
     }      }
     if (defined($ENV{'form.'.$dname.'_minute'})) {      if (defined($ENV{'form.'.$dname.'_minute'})) {
         my $tmpmin = $ENV{'form.'.$dname.'_minute'};          my $tmpmin = $ENV{'form.'.$dname.'_minute'};
         if (($tmpmin =~ /^\d+$/) && ($tmpmin >= 0) && ($tmpmin < 60)) {          if (($tmpmin =~ /^\d+$/) && ($tmpmin >= 0) && ($tmpmin < 60)) {
             $min = $tmpmin;              $min = $tmpmin;
         }          }
    if (!defined($tmpmin) || $tmpmin eq '') { $min = 0; }
     }      }
     if (defined($ENV{'form.'.$dname.'_hour'})) {      if (defined($ENV{'form.'.$dname.'_hour'})) {
         my $tmphour = $ENV{'form.'.$dname.'_hour'};          my $tmphour = $ENV{'form.'.$dname.'_hour'};
Line 781  sub r_print { Line 816  sub r_print {
 # ------------------------------------------------------- Puts directory header  # ------------------------------------------------------- Puts directory header
   
 sub crumbs {  sub crumbs {
     my ($uri,$target,$prefix,$form)=@_;      my ($uri,$target,$prefix,$form,$size)=@_;
     my $output='<br /><tt><b><font size="+2">'.$prefix.'/';      if (! defined($size)) {
           $size = '+2';
       }
       my $output='<br /><tt><b><font size="'.$size.'">'.$prefix.'/';
     if ($ENV{'user.adv'}) {      if ($ENV{'user.adv'}) {
  my $path=$prefix.'/';   my $path=$prefix.'/';
  foreach (split('/',$uri)) {   foreach (split('/',$uri)) {
Line 805  sub crumbs { Line 843  sub crumbs {
 # ------------------------------------------------- Output headers for HTMLArea  # ------------------------------------------------- Output headers for HTMLArea
   
 sub htmlareaheaders {  sub htmlareaheaders {
     unless (&htmlareabrowser()) { return ''; }      unless (&htmlareablocked()) { return ''; }
     my $lang='en';      my $lang='en';
     return (<<ENDHEADERS);      return (<<ENDHEADERS);
   <script type="text/javascript">
       _editor_url="/htmlarea/";
   </script>
 <script type="text/javascript" src="/htmlarea/htmlarea.js"></script>  <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/lang/$lang.js"></script>
 <script type="text/javascript" src="/htmlarea/dialog.js"></script>  <script type="text/javascript" src="/htmlarea/dialog.js"></script>
Line 820  ENDHEADERS Line 861  ENDHEADERS
 # ---------------------------------------------------------- Script to activate  # ---------------------------------------------------------- Script to activate
   
 sub htmlareaactive {  sub htmlareaactive {
     unless (&htmlareabrowser()) { return ''; }      unless (&htmlareablocked()) { return ''; }
     return (<<ENDSCRIPT);      return (<<ENDSCRIPT);
 <script type="text/javascript" defer="1">  <script type="text/javascript" defer="1">
     HTMLArea.replaceAll();      HTMLArea.replaceAll();
Line 828  sub htmlareaactive { Line 869  sub htmlareaactive {
 ENDSCRIPT  ENDSCRIPT
 }  }
   
   # --------------------------------------------------------------------- Blocked
   
   sub htmlareablocked {
       unless (&htmlareabrowser()) { return ''; }
       return 1;
   }
   
 # ---------------------------------------- Browser capable of running HTMLArea?  # ---------------------------------------- Browser capable of running HTMLArea?
   
 sub htmlareabrowser {  sub htmlareabrowser {
Line 853  All inputs can be undef without problems Line 901  All inputs can be undef without problems
 Inputs: $color (the background color of the table returned),  Inputs: $color (the background color of the table returned),
         $component (the large text on the right side of the table),          $component (the large text on the right side of the table),
         $component_help          $component_help
           $function (role to get colors from)
           $domain   (domian of role)
           $menulink (boolean, controls whether to include a link to /adm/menu)
   
 Returns a string containing breadcrumbs for the current page.  Returns a string containing breadcrumbs for the current page.
   
Line 878  returns: nothing Line 929  returns: nothing
     my @Crumbs;      my @Crumbs;
           
     sub breadcrumbs {      sub breadcrumbs {
         my ($color,$component,$component_help,$function,$domain) = @_;          my ($color,$component,$component_help,$function,$domain,$menulink) =
       @_;
         if (! defined($color)) {          if (! defined($color)) {
             if (! defined($function)) {              if (! defined($function)) {
                 $function = &Apache::loncommon::get_users_function();                  $function = &Apache::loncommon::get_users_function();
Line 895  returns: nothing Line 947  returns: nothing
         # Make the faq and bug data cascade          # Make the faq and bug data cascade
         my $faq = '';          my $faq = '';
         my $bug = '';          my $bug = '';
         # The last breadcrumb does not have a link, so handle it seperately.          # The last breadcrumb does not have a link, so handle it separately.
         my $last = pop(@Crumbs);          my $last = pop(@Crumbs);
         #          #
         # The first one should be the course, I guess.          # The first one should be the course, I guess.
         if (exists($ENV{'request.course.id'})) {   if (!defined($menulink)) { $menulink=1; }
           if ($menulink && exists($ENV{'request.course.id'})) {
             my $cid = $ENV{'request.course.id'};              my $cid = $ENV{'request.course.id'};
             unshift(@Crumbs,{              unshift(@Crumbs,{
                              href=>'/adm/menu',                               href=>'/adm/menu',
Line 912  returns: nothing Line 965  returns: nothing
                  map {                   map {
                      $faq = $_->{'faq'} if (exists($_->{'faq'}));                       $faq = $_->{'faq'} if (exists($_->{'faq'}));
                      $bug = $_->{'bug'} if (exists($_->{'bug'}));                       $bug = $_->{'bug'} if (exists($_->{'bug'}));
                      '<a href="'.$_->{'href'}.'" title="'.$_->{'title'}.'">'.                       '<a href="'.$_->{'href'}.'" title="'.&mt($_->{'title'}).'">'.
                          $_->{'text'}.'</a>'                            &mt($_->{'text'}).'</a>' 
                      } @Crumbs                       } @Crumbs
                  );                   );
         $links .= '-&gt;' if ($links ne '');          $links .= '-&gt;' if ($links ne '');
Line 936  returns: nothing Line 989  returns: nothing
         #          #
         if (defined($component)) {          if (defined($component)) {
             $Str .= '<td align="right" bgcolor="'.$color.'">'.              $Str .= '<td align="right" bgcolor="'.$color.'">'.
                 '<font size="+1">'.$component.'</font>';                  '<font size="+1">'.&mt($component).'</font>';
             if (defined($component_help)) {              if (defined($component_help)) {
                 $Str .=                   $Str .= 
                     &Apache::loncommon::help_open_topic($component_help);                      &Apache::loncommon::help_open_topic($component_help);

Removed from v.1.57  
changed lines
  Added in v.1.64


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