Diff for /loncom/interface/loncommon.pm between versions 1.587 and 1.592

version 1.587, 2007/09/24 23:29:53 version 1.592, 2007/10/11 23:50:55
Line 1074  sub changable_area { Line 1074  sub changable_area {
   
 =pod  =pod
   
   =item * viewport_geometry_js {
   
   Provides javascript object (Geometry) which can provide information about the viewport geometry for the client browser.
   
   =cut
   
   
   sub viewport_geometry_js { 
       return <<"GEOMETRY";
   var Geometry = {};
   function init_geometry() {
       if (Geometry.init) { return };
       Geometry.init=1;
       if (window.innerHeight) {
           Geometry.getViewportHeight   = function() { return window.innerHeight; };
           Geometry.getViewportWidth   = function() { return window.innerWidth; };
           Geometry.getHorizontalScroll = function() { return window.pageXOffset; };
           Geometry.getVerticalScroll   = function() { return window.pageYOffset; };
       }
       else if (document.documentElement && document.documentElement.clientHeight) {
           Geometry.getViewportHeight =
               function() { return document.documentElement.clientHeight; };
           Geometry.getViewportWidth =
               function() { return document.documentElement.clientWidth; };
   
           Geometry.getHorizontalScroll =
               function() { return document.documentElement.scrollLeft; };
           Geometry.getVerticalScroll =
               function() { return document.documentElement.scrollTop; };
       }
       else if (document.body.clientHeight) {
           Geometry.getViewportHeight =
               function() { return document.body.clientHeight; };
           Geometry.getViewportWidth =
               function() { return document.body.clientWidth; };
           Geometry.getHorizontalScroll =
               function() { return document.body.scrollLeft; };
           Geometry.getVerticalScroll =
               function() { return document.body.scrollTop; };
       }
   }
   
   GEOMETRY
   }
   
   =pod
   
   =item * viewport_size_js {
   
   Provides a javascript function to set values of two form elements - width and height (elements are passed in as arguments to the javascript function) to the dimensions of the user's browser window. 
   
   =cut
   
   sub viewport_size_js {
       my $geometry = &viewport_geometry_js();
       return <<"DIMS";
   
   $geometry
   
   function getViewportDims(width,height) {
       init_geometry();
       width.value = Geometry.getViewportWidth();
       height.value = Geometry.getViewportHeight();
       return;
   }
   
   DIMS
   }
   
   =pod
   
 =item * resize_textarea_js  =item * resize_textarea_js
   
 emits the needed javascript to resize a textarea to be as big as possible  emits the needed javascript to resize a textarea to be as big as possible
Line 1087  to be attached to the <body> for the onl Line 1158  to be attached to the <body> for the onl
 =cut  =cut
   
 sub resize_textarea_js {  sub resize_textarea_js {
       my $geometry = &viewport_geometry_js();
     return <<"RESIZE";      return <<"RESIZE";
     <script type="text/javascript">      <script type="text/javascript">
 var Geometry = {};  $geometry
 function init_geometry() {  
     if (Geometry.init) { return };  function getX(element) {
     Geometry.init=1;      var x = 0;
     if (window.innerHeight) {      while (element) {
  Geometry.getViewportHeight = function() { return window.innerHeight; };   x += element.offsetLeft;
     }   element = element.offsetParent;
     else if (document.documentElement && document.documentElement.clientHeight) {      }
  Geometry.getViewportHeight =       return x;
     function() { return document.documentElement.clientHeight; };  }
     }  function getY(element) {
     else if (document.body.clientHeight) {      var y = 0;
  Geometry.getViewportHeight =       while (element) {
     function() { return document.body.clientHeight; };   y += element.offsetTop;
    element = element.offsetParent;
     }      }
       return y;
 }  }
   
   
 function resize_textarea(textarea_id,bottom_id) {  function resize_textarea(textarea_id,bottom_id) {
     init_geometry();      init_geometry();
     var textarea        = document.getElementById(textarea_id);      var textarea        = document.getElementById(textarea_id);
     //alert(textarea);      //alert(textarea);
   
     var textarea_top    = textarea.offsetTop;      var textarea_top    = getY(textarea);
     var textarea_height = textarea.offsetHeight;      var textarea_height = textarea.offsetHeight;
     var bottom          = document.getElementById(bottom_id);      var bottom          = document.getElementById(bottom_id);
     var bottom_top      = bottom.offsetTop;      var bottom_top      = getY(bottom);
     var bottom_height   = bottom.offsetHeight;      var bottom_height   = bottom.offsetHeight;
     var window_height   = Geometry.getViewportHeight();      var window_height   = Geometry.getViewportHeight();
     var fudge           = 23;       var fudge           = 23;
     var new_height      = window_height-fudge-textarea_top-bottom_height;      var new_height      = window_height-fudge-textarea_top-bottom_height;
     if (new_height < 300) {      if (new_height < 300) {
  new_height = 300;   new_height = 300;
Line 1332  sub domain_select { Line 1407  sub domain_select {
   
 =over 4  =over 4
   
 =cut  
   
 =item * multiple_select_form($name,$value,$size,$hash,$order)  =item * multiple_select_form($name,$value,$size,$hash,$order)
   
 Returns a string containing a <select> element int multiple mode  Returns a string containing a <select> element int multiple mode
Line 1725  END Line 1798  END
     }      }
   
     my $radioval = "'nochange'";      my $radioval = "'nochange'";
     if (exists($in{'curr_authtype'}) &&      if (defined($in{'curr_authtype'})) {
         defined($in{'curr_authtype'}) &&          if ($in{'curr_authtype'} ne '') {
         $in{'curr_authtype'} ne '') {              $radioval = "'".$in{'curr_authtype'}."arg'";
         $radioval = "'$in{'curr_authtype'}arg'";          }
     }      }
     my $argfield = 'null';      my $argfield = 'null';
     if ( grep/^mode$/,(keys %in) ) {      if (defined($in{'mode'})) {
         if ($in{'mode'} eq 'modifycourse')  {          if ($in{'mode'} eq 'modifycourse')  {
             if ( grep/^curr_authtype$/,(keys %in) ) {              if (defined($in{'curr_autharg'})) {
                 $radioval = "'$in{'curr_authtype'}'";                  if ($in{'curr_autharg'} ne '') {
             }  
             if ( grep/^curr_autharg$/,(keys %in) ) {  
                 unless ($in{'curr_autharg'} eq '') {  
                     $argfield = "'$in{'curr_autharg'}'";                      $argfield = "'$in{'curr_autharg'}'";
                 }                  }
             }              }
Line 1834  sub authform_nochange{ Line 1904  sub authform_nochange{
     return $result;      return $result;
 }  }
   
 sub authform_kerberos{    sub authform_kerberos {
     my %in = (      my %in = (
               formname => 'document.cu',                formname => 'document.cu',
               kerb_def_dom => 'MSU.EDU',                kerb_def_dom => 'MSU.EDU',
Line 1850  sub authform_kerberos{ Line 1920  sub authform_kerberos{
        $check4 = ' checked="on"';         $check4 = ' checked="on"';
     }      }
     $krbarg = $in{'kerb_def_dom'};      $krbarg = $in{'kerb_def_dom'};
     if (grep(/^curr_authtype$/,(keys(%in)))) {      if (defined($in{'curr_authtype'})) {
         if ($in{'curr_authtype'} =~ m/^krb(\d+)$/) {          if ($in{'curr_authtype'} eq 'krb') {
             $krbver = $1;  
             $krbcheck = ' checked="on"';              $krbcheck = ' checked="on"';
             if ($krbver eq '5') {              if (defined($in{'curr_kerb_ver'})) {
                 $check5 = ' checked="on"';                  if ($in{'curr_krb_ver'} eq '5') {
                 $check4 = '';                      $check5 = ' checked="on"';
             } else {                      $check4 = '';
                 $check4 = ' checked="on"';                  } else {
                 $check5 = '';                      $check4 = ' checked="on"';
                       $check5 = '';
                   }
             }              }
             if (grep(/^curr_autharg$/,(keys(%in)))) {              if (defined($in{'curr_autharg'})) {
                 $krbarg = $in{'curr_autharg'};                  $krbarg = $in{'curr_autharg'};
             }              }
             if (!$can_assign{'krb4'} && !$can_assign{'krb5'}) {              if (!$can_assign{'krb4'} && !$can_assign{'krb5'}) {
                 if (grep(/^curr_autharg$/,(keys(%in)))) {                  if (defined($in{'curr_autharg'})) {
                     $result =                       $result = 
     &mt('Currently Kerberos authenticated with domain [_1] Version [_2].',      &mt('Currently Kerberos authenticated with domain [_1] Version [_2].',
         $in{'curr_autharg'},$krbver);          $in{'curr_autharg'},$krbver);
Line 1884  sub authform_kerberos{ Line 1955  sub authform_kerberos{
     if (!$can_assign{'krb4'} && !$can_assign{'krb5'}) {      if (!$can_assign{'krb4'} && !$can_assign{'krb5'}) {
         return;          return;
     } elsif ($authtype eq '') {      } elsif ($authtype eq '') {
         if (grep(/^mode$/,(keys(%in)))) {          if (defined($in{'mode'})) {
             if ($in{'mode'} eq 'modifycourse') {              if ($in{'mode'} eq 'modifycourse') {
                 if ($authnum == 1) {                  if ($authnum == 1) {
                     $authtype = '<input type="hidden" name="login" value="krb">';                      $authtype = '<input type="hidden" name="login" value="krb">';
Line 1945  sub authform_internal{ Line 2016  sub authform_internal{
                 );                  );
     my ($intcheck,$intarg,$result,$authtype,$autharg,$jscall);      my ($intcheck,$intarg,$result,$authtype,$autharg,$jscall);
     my ($authnum,%can_assign) =  &get_assignable_auth($in{'domain'});      my ($authnum,%can_assign) =  &get_assignable_auth($in{'domain'});
     if (grep(/^curr_authtype$/,(keys(%in)))) {      if (defined($in{'curr_authtype'})) {
         if ($in{'curr_authtype'} eq 'internal:') {          if ($in{'curr_authtype'} eq 'int') {
             if ($can_assign{'int'}) {              if ($can_assign{'int'}) {
                 $intcheck = 'checked="on" ';                  $intcheck = 'checked="on" ';
                 if (grep(/^curr_autharg$/,(keys(%in)))) {                  if (defined($in{'curr_autharg'})) {
                     $intarg = $in{'curr_autharg'};                      $intarg = $in{'curr_autharg'};
                 }                  }
             } else {              } else {
Line 1965  sub authform_internal{ Line 2036  sub authform_internal{
     if (!$can_assign{'int'}) {      if (!$can_assign{'int'}) {
         return;          return;
     } elsif ($authtype eq '') {      } elsif ($authtype eq '') {
         if (grep(/^mode$/,(keys(%in)))) {          if (defined($in{'mode'})) {
             if ($in{'mode'} eq 'modifycourse') {              if ($in{'mode'} eq 'modifycourse') {
                 if ($authnum == 1) {                  if ($authnum == 1) {
                     $authtype = '<input type="hidden" name="login" value="int">';                      $authtype = '<input type="hidden" name="login" value="int">';
Line 1994  sub authform_local{ Line 2065  sub authform_local{
               );                );
     my ($loccheck,$locarg,$result,$authtype,$autharg,$jscall);      my ($loccheck,$locarg,$result,$authtype,$autharg,$jscall);
     my ($authnum,%can_assign) =  &get_assignable_auth($in{'domain'});      my ($authnum,%can_assign) =  &get_assignable_auth($in{'domain'});
     if (grep(/^curr_authtype$/,(keys(%in)))) {      if (defined($in{'curr_authtype'})) {
         if ($in{'curr_authtype'} eq 'localauth:') {          if ($in{'curr_authtype'} eq 'loc') {
             if ($can_assign{'loc'}) {              if ($can_assign{'loc'}) {
                 $loccheck = 'checked="on" ';                  $loccheck = 'checked="on" ';
                 if (grep(/^curr_autharg$/,(keys(%in)))) {                  if (defined($in{'curr_autharg'})) {
                     $locarg = $in{'curr_autharg'};                      $locarg = $in{'curr_autharg'};
                 }                  }
             } else {              } else {
Line 2014  sub authform_local{ Line 2085  sub authform_local{
     if (!$can_assign{'loc'}) {      if (!$can_assign{'loc'}) {
         return;          return;
     } elsif ($authtype eq '') {      } elsif ($authtype eq '') {
         if (grep(/^mode$/,(keys(%in)))) {          if (defined($in{'mode'})) {
             if ($in{'mode'} eq 'modifycourse') {              if ($in{'mode'} eq 'modifycourse') {
                 if ($authnum == 1) {                  if ($authnum == 1) {
                     $authtype = '<input type="hidden" name="login" value="loc">';                      $authtype = '<input type="hidden" name="login" value="loc">';
Line 2043  sub authform_filesystem{ Line 2114  sub authform_filesystem{
               );                );
     my ($fsyscheck,$result,$authtype,$autharg,$jscall);      my ($fsyscheck,$result,$authtype,$autharg,$jscall);
     my ($authnum,%can_assign) =  &get_assignable_auth($in{'domain'});      my ($authnum,%can_assign) =  &get_assignable_auth($in{'domain'});
     if (grep(/^curr_authtype$/,(keys(%in)))) {      if (defined($in{'curr_authtype'})) {
         if ($in{'curr_authtype'} eq 'unix:') {          if ($in{'curr_authtype'} eq 'fsys') {
             if ($can_assign{'fsys'}) {              if ($can_assign{'fsys'}) {
                 $fsyscheck = 'checked="on" ';                  $fsyscheck = 'checked="on" ';
             } else {              } else {
Line 2060  sub authform_filesystem{ Line 2131  sub authform_filesystem{
     if (!$can_assign{'fsys'}) {      if (!$can_assign{'fsys'}) {
         return;          return;
     } elsif ($authtype eq '') {      } elsif ($authtype eq '') {
         if (grep(/^mode$/,(keys(%in)))) {          if (defined($in{'mode'})) {
             if ($in{'mode'} eq 'modifycourse') {              if ($in{'mode'} eq 'modifycourse') {
                 if ($authnum == 1) {                  if ($authnum == 1) {
                     $authtype = '<input type="hidden" name="login" value="fsys">';                      $authtype = '<input type="hidden" name="login" value="fsys">';
Line 4304  table.LC_data_table, table.LC_mail_list Line 4375  table.LC_data_table, table.LC_mail_list
 }  }
 table.LC_nested_outer {  table.LC_nested_outer {
   border: 1px solid #000000;    border: 1px solid #000000;
   border-collapse: separate;    border-collapse: collapse;
   border-spacing: 0px;    border-spacing: 0px;
   width: 100%;    width: 100%;
 }  }
 table.LC_nested {  table.LC_nested {
   border: 0px;    border: 0px;
   border-collapse: separate;    border-collapse: collapse;
   border-spacing: 0px;    border-spacing: 0px;
   width: 100%;    width: 100%;
 }  }
Line 4362  table.LC_nested tr.LC_info_row td { Line 4433  table.LC_nested tr.LC_info_row td {
   font-size: small;    font-size: small;
   text-align: center;    text-align: center;
 }  }
 table.LC_nested tr.LC_info_row td.LC_left_item {  table.LC_nested tr.LC_info_row td.LC_left_item,
   table.LC_nested_outer tr th.LC_left_item {
   text-align: left;    text-align: left;
 }  }
 table.LC_nested td {  table.LC_nested td {
Line 4886  table.LC_sty_end { Line 4958  table.LC_sty_end {
   background: #FFBBBB;    background: #FFBBBB;
 }  }
   
   table.LC_double_column {
     border-width: 0px;
     border-collapse: collapse;
     width: 100%;
     padding: 2px;
   }
   
   table.LC_double_column tr td.LC_left_col {
     top: 2px;
     left: 2px;
     width: 47%;
     vertical-align: top;
   }
   
   table.LC_double_column tr td.LC_right_col {
     top: 2px;
     right: 2px; 
     width: 47%;
     vertical-align: top;
   }
   
   div.LC_left_float {
     float: left;
     padding-right: 5%;
     padding:bottom: 4px;
   }
   
   div.LC_clear_float_header {
     padding:bottom: 2px;
   }
   
   div.LC_clear_float_footer {
     padding:top: 10px;
     clear: both;
   }
   
 END  END
 }  }
   
Line 5002  Inputs: none Line 5110  Inputs: none
 sub xml_begin {  sub xml_begin {
     my $output='';      my $output='';
   
     &Apache::lonhtmlcommon::init_htmlareafields();      if ($env{'internal.start_page'}==1) {
    &Apache::lonhtmlcommon::init_htmlareafields();
       }
   
     if ($env{'browser.mathml'}) {      if ($env{'browser.mathml'}) {
  $output='<?xml version="1.0"?>'   $output='<?xml version="1.0"?>'

Removed from v.1.587  
changed lines
  Added in v.1.592


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