Diff for /loncom/interface/lonhtmlcommon.pm between versions 1.108 and 1.114

version 1.108, 2005/06/14 02:33:18 version 1.114, 2005/10/13 22:37:40
Line 100  sub store_recent { Line 100  sub store_recent {
     my ($area,$name,$value)=@_;      my ($area,$name,$value)=@_;
     my $file=&recent_filename($area);      my $file=&recent_filename($area);
     my %recent=&Apache::lonnet::dump($file);      my %recent=&Apache::lonnet::dump($file);
     if (scalar(keys(%recent))>10) {      if (scalar(keys(%recent))>20) {
 # remove oldest value  # remove oldest value
  my $oldest=time;   my $oldest=time;
  my $delkey='';   my $delkey='';
Line 266  sub date_setter { Line 266  sub date_setter {
     if (! defined($no_hh_mm_ss)) {      if (! defined($no_hh_mm_ss)) {
         $no_hh_mm_ss = 0;          $no_hh_mm_ss = 0;
     }      }
     if (! defined($currentvalue) || $currentvalue eq 'now') {      if ($currentvalue eq 'now') {
  unless ($includeempty) {   $currentvalue=time;
     $currentvalue = time;      }
     $wasdefined=0;      if ((!defined($currentvalue)) || ($currentvalue eq '')) {
  } else {   $wasdefined=0;
    if ($includeempty) {
     $currentvalue = 0;      $currentvalue = 0;
    } else {
       $currentvalue = time;
  }   }
     }      }
     # other potentially useful values:     wkday,yrday,is_daylight_savings      # other potentially useful values:     wkday,yrday,is_daylight_savings
Line 282  sub date_setter { Line 285  sub date_setter {
  $year += 1900;   $year += 1900;
     }      }
     unless ($wasdefined) {      unless ($wasdefined) {
  $sec=($defsec?$defsec:0);   if (($defhour) || ($defmin) || ($defsec)) {
  $min=($defmin?$defmin:0);      ($sec,$min,$hour,$mday,$month,$year,undef,undef,undef) = 
         $hour=($defhour?$defhour:0);   localtime(time);
       $year += 1900;
       $sec=($defsec?$defsec:0);
       $min=($defmin?$defmin:0);
       $hour=($defhour?$defhour:0);
    } elsif (!$includeempty) {
       $sec=0;
       $min=0;
       $hour=0;
    }
     }      }
     my $result = "\n<!-- $dname date setting form -->\n";      my $result = "\n<!-- $dname date setting form -->\n";
     $result .= <<ENDJS;      $result .= <<ENDJS;
Line 513  parameter setting wizard. Line 525  parameter setting wizard.
 ##############################################  ##############################################
 sub pjump_javascript_definition {  sub pjump_javascript_definition {
     my $Str = <<END;      my $Str = <<END;
     function pjump(type,dis,value,marker,ret,call) {      function pjump(type,dis,value,marker,ret,call,hour,min,sec) {
         parmwin=window.open("/adm/rat/parameter.html?type="+escape(type)          parmwin=window.open("/adm/rat/parameter.html?type="+escape(type)
                  +"&value="+escape(value)+"&marker="+escape(marker)                   +"&value="+escape(value)+"&marker="+escape(marker)
                  +"&return="+escape(ret)                   +"&return="+escape(ret)
                  +"&call="+escape(call)+"&name="+escape(dis),"LONCAPAparms",                   +"&call="+escape(call)+"&name="+escape(dis)
                    +"&defhour="+escape(hour)+"&defmin="+escape(min)
                    +"&defsec="+escape(sec),"LONCAPAparms",
                  "height=350,width=350,scrollbars=no,menubar=no");                   "height=350,width=350,scrollbars=no,menubar=no");
     }      }
 END  END
Line 1203  returns: nothing Line 1217  returns: nothing
 ############################################################  ############################################################
 ############################################################  ############################################################
   
   # Nested table routines.
   #
   # Routines to display form items in a multi-row table with 2 columns.
   # Uses nested tables to divide form elements into segments.
   # For examples of use see loncom/interface/lonnotify.pm 
   #
   # Can be used in following order: ...
   # &start_pick_box()
   # row1
   # row2
   # row3   ... etc.
   # &submit_row(0
   # &end_pickbox()
   #
   # where row1, row 2 etc. are chosen from &role_select_row,&course_select_row,
   # &status_select_row and &email_default_row
   #
   # Can also be used in following order:
   #
   # &start_pick_box()
   # &row_title()
   # &row_closure()
   # &row_title()
   # &row_closure()  ... etc.
   # &submit_row()
   # &end_pick_box()
   #
   # In general a &submit_row() call should proceed the call to &end_pick_box(),
   # as this routine adds a button for form submission.
   # &submit_row() does not require a &row_closure after it.
   #  
   # &start_pick_box() creates a bounding table with 1-pixel wide black border.
   # rows should be placed between calls to &start_pick_box() and &end_pick_box.
   #
   # &row_title() adds a title in the left column for each segment.
   # &row_closure() closes a row with a 1-pixel wide black line.
   #
   # &role_select_row() provides a select box from which to choose 1 or more roles 
   # &course_select_row provides ways of picking groups of courses
   #    radio buttons: all, by category or by picking from a course picker pop-up
   #      note: by category option is only displayed if a domain has implemented 
   #                selection by year, semester, department, number etc.
   #
   # &status_select_row() provides a select box from which to choose 1 or more
   #  access types (current access, prior access, and future access)  
   #
   # &email_default_row() provides text boxes for default e-mail suffixes for
   #  different authentication types in a domain.
   #
   # &row_title() and &row_closure() are called internally by the &*_select_row
   # routines, but can also be called directly to start and end rows which have 
   # needs that are not accommodated by the *_select_row() routines.    
   
   sub start_pick_box {
       my ($table_width) = @_;
       my $output = <<"END";
    <table width="$table_width" border="0" cellpadding="0" cellspacing="1" bgcolor="#000000">
     <tr>
         <td>
          <table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffff">
           <tr>
            <td>
             <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#ffffff">
   END
       return $output;
   }
   
   sub end_pick_box {
       my $output = <<"END";
          </table>
         </td>
        </tr>
       </table>
      </td>
     </tr>
    </table>
   END
       return $output;
   }
   
   sub row_title {
       my ($col_width,$tablecolor,$title) = @_;
       my $output = <<"ENDONE";
              <tr>
               <td width="$col_width" bgcolor="$tablecolor">
                <table width="$col_width" border="0" cellpadding="8" cellspacing="0">
                 <tr>
                  <td align="right"><b>$title:</b>
                  </td>
                 </tr>
                </table>
               </td>
               <td width="100%" valign="top">
                <table width="100%" border="0" cellpadding="8" cellspacing="0">
                 <tr>
   ENDONE
       return $output;
   }
   
   sub row_closure {
       my $output = <<"ENDTWO";
                 </tr>
                </table>
               </td>
              </tr>
              <tr>
               <td width="100%" colspan="2" bgcolor="#000000">
                <img src="/adm/lonMisc/blackdot.gif" /><br />
               </td>
              </tr>
   ENDTWO
       return $output;
   }
   
   sub role_select_row {
       my ($roles,$col_width,$tablecolor,$title) = @_;
       my $output = &row_title($col_width,$tablecolor,$title);
       $output .= qq|               <td>
                                     <select name="roles" multiple >\n|;
       foreach my $role (@$roles) {
           my $plrole;
           if ($role eq 'ow') {
               $plrole = &mt('Course Owner');
           } else {
               $plrole=&Apache::lonnet::plaintext($role);
           }
           $output .= '  <option value="'.$role.'">'.$plrole.'</option>';
       }
       $output .= qq|                </select>
                                    </td>\n|;
       $output .= &row_closure();
       return $output;
   }
   
   sub course_select_row {
       my ($col_width,$tablecolor,$title,$formname,$totcodes,$codetitles,$idlist,$idlist_titles) = @_;
       my $output = &row_title($col_width,$tablecolor,$title);
       $output .= "          <td>\n";
       $output .= qq|
   <script type="text/javascript" language="Javascript" >
       function coursePick (formname) {
           for  (var i=0; i<formname.coursepick.length; i++) {
               if (formname.coursepick[i].value == 'category') {
                   courseSet('');
               }
               if (!formname.coursepick[i].checked) {
                   if (formname.coursepick[i].value == 'specific') {
                       formname.coursetotal.value = 0;
                       formname.courselist = '';
                   }
               }
           }
       }
       function setPick (formname) {
           for  (var i=0; i<formname.coursepick.length; i++) {
               if (formname.coursepick[i].value == 'category') {
                   formname.coursepick[i].checked = true;
               }
               formname.coursetotal.value = 0;
               formname.courselist = '';
           }
       }
   </script>
       |;
       my $courseform='<b>'.&Apache::loncommon::selectcourse_link
                        ($formname,'pickcourse','pickdomain','coursedesc').'</b>';
       if ($totcodes > 0) {
           $output .= '<input type="radio" name="coursepick" value="all" onclick="coursePick(this.form)" />'.&mt('All courses');
           my $numtitles = @$codetitles;
           if ($numtitles > 0) {
               $output .= '<br /><input type="radio" name="coursepick" value="category" onclick="coursePick(this.form);alert('."'".&mt('Choose categories, from left to right')."'".')" />'.&mt('Pick courses by category:').' <br />';
               $output .= '<table><tr><td>'.$$codetitles[0].'<br />'."\n".
                  '<select name="'.$$codetitles[0].
                  '" onChange="setPick(this.form);courseSet('."'$$codetitles[0]'".')">'."\n".
                  ' <option value="-1" />Select'."\n";
               my @items = ();
               my @longitems = ();
               if ($$idlist{$$codetitles[0]} =~ /","/) {
                   @items = split(/","/,$$idlist{$$codetitles[0]});
               } else {
                   $items[0] = $$idlist{$$codetitles[0]};
               }
               if (defined($$idlist_titles{$$codetitles[0]})) {
                   if ($$idlist_titles{$$codetitles[0]} =~ /","/) {
                       @longitems = split(/","/,$$idlist_titles{$$codetitles[0]});
                   } else {
                       $longitems[0] = $$idlist_titles{$$codetitles[0]};
                   }
                   for (my $i=0; $i<@longitems; $i++) {
                       if ($longitems[$i] eq '') {
                           $longitems[$i] = $items[$i];
                       }
                   }
               } else {
                   @longitems = @items;
               }
               for (my $i=0; $i<@items; $i++) {
                   $output .= ' <option value="'.$items[$i].'">'.$longitems[$i].'</option>';
               }
               $output .= '</select></td>';
               for (my $i=1; $i<$numtitles; $i++) {
                   $output .= '<td>'.$$codetitles[$i].'<br />'."\n".
                             '<select name="'.$$codetitles[$i].
                             '" onChange="courseSet('."'$$codetitles[$i]'".')">'."\n".
                             '<option value="-1">&lt;-Pick '.$$codetitles[$i-1].'</option>'."\n".
                             '</select>'."\n".
                             '</td>';
               }
               $output .= '</tr></table><br />';
           }
       }
       $output .= '<input type="radio" name="coursepick" value="specific" onclick="coursePick(this.form);opencrsbrowser('."'".'rolefilter'."'".','."'".'dccourse'."'".','."'".'dcdomain'."'".','."'".'coursedesc'."',''".')" />'.&mt('Pick specific course(s):').' '.$courseform.'&nbsp;&nbsp;<input type="text" value="0" size="4" name="coursetotal" /><input type="hidden" name="courselist" value="" />selected.<br /></td>'."\n";
       $output .= &row_closure();
       return $output;
   }
   
   sub status_select_row {
       my ($types,$col_width,$tablecolor,$title) = @_;
       my $output = &row_title($col_width,$tablecolor,$title);
       $output .= qq|              <td>
                                       <select name="types" multiple>\n|;
       foreach my $status_type (sort(keys(%{$types}))) {
           $output .= '  <option value="'.$status_type.'">'.$$types{$status_type}.'</option>';
       }
       $output .= qq|                   </select>
                                       </td>\n|; 
       $output .= &row_closure();
       return $output;
   }
   
   sub email_default_row {
       my ($authtypes,$col_width,$tablecolor,$title,$descrip) = @_;
       my $output = &row_title($col_width,$tablecolor,$title);
       my @rowcols = ('#eeeeee','#dddddd');
       $output .= '              <td>'.$descrip;
       $output .= &start_pick_box('50%'); 
       $output .= '                <tr bgcolor="'.$tablecolor.'">
                                    <td><b>'.&mt('Authentication Method').'</b></td><td align="right"><b>'.&mt('Username -> e-mail conversion').'</b></td>
                                   </tr>'."\n";
       my $rownum = 0;
       foreach my $auth (sort(keys(%{$authtypes}))) {
           my ($userentry,$size);
           my $rowiter = $rownum%2;
           if ($auth =~ /^krb/) {
               $userentry = '';
               $size = 25;
           } else {
               $userentry = 'username@';
               $size = 15;
           }
           $output .= '<tr bgcolor="'.$rowcols[$rowiter].'"><td>  '.$$authtypes{$auth}.'</td><td align="right">'.$userentry.'<input type="text" name="'.$auth.'" size="'.$size.'" /></td></tr>';
           $rownum ++;
       }
       $output .= &end_pick_box();
       $output .= "                   <br /></td>\n"; 
       $output .= &row_closure();
       return $output;
   }
   
   
   sub submit_row {
       my ($col_width,$tablecolor,$title,$cmd,$submit_text) = @_;
       my $output = &row_title($col_width,$tablecolor,$title);
       $output .= qq|
               <td width="100%" valign="top" align="right">
                <br />
                <input type="hidden" name="command" value="$cmd" />
                <input type="submit" value="$submit_text"/> &nbsp;
                <br /><br />
               </td>\n|;
       return $output;
   }
   
 1;  1;
   

Removed from v.1.108  
changed lines
  Added in v.1.114


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.