Diff for /loncom/interface/lonhtmlcommon.pm between versions 1.182.4.3 and 1.190

version 1.182.4.3, 2009/08/13 16:05:33 version 1.190, 2008/12/03 18:53:54
Line 62  use Apache::lonlocal; Line 62  use Apache::lonlocal;
 use Apache::lonnet;  use Apache::lonnet;
 use LONCAPA;  use LONCAPA;
   
 ##############################################  
 ##############################################  
   
 =pod  
   
 =item confirm_success  
   
 Successful completion of an operation message  
   
 =cut  
   
 sub confirm_success {  
    my ($message,$failure)=@_;  
    if ($failure) {  
       return '<span class="LC_error">'."\n"  
             .'<img src="/adm/lonIcons/navmap.wrong.gif" alt="'.&mt('Error').'" /> '."\n"  
             .$message."\n"  
             .'</span>'."\n";  
    } else {  
       return '<span class="LC_success">'."\n"  
             .'<img src="/adm/lonIcons/navmap.correct.gif" alt="'.&mt('OK').'" /> '."\n"  
             .$message."\n"  
             .'</span>'."\n";  
    }  
 }  
   
 ##############################################  ##############################################
 ##############################################  ##############################################
Line 130  sub dragmath_js { Line 105  sub dragmath_js {
     my ($popup) = @_;      my ($popup) = @_;
     return <<ENDDRAGMATHJS;      return <<ENDDRAGMATHJS;
                 <script type="text/javascript">                  <script type="text/javascript">
                 // <![CDATA[  
                   function mathedit(textarea, doc) {                    function mathedit(textarea, doc) {
                      targetEntry = textarea;                       targetEntry = textarea;
                      targetDoc   = doc;                       targetDoc   = doc;
                      newwin  = window.open("/adm/dragmath/applet/$popup.html","","width=565,height=500,resizable");                       newwin  = window.open("/adm/dragmath/applet/$popup.html","","width=565,height=500,resizable");
                   }                    }
                 // ]]>  
                 </script>                  </script>
   
 ENDDRAGMATHJS  ENDDRAGMATHJS
Line 312  sub checkbox { Line 285  sub checkbox {
         $Str .= 'value="'.$value.'"';          $Str .= 'value="'.$value.'"';
     }       } 
     if ($checked) {      if ($checked) {
         $Str .= ' checked="checked"';          $Str .= ' checked="1"';
     }      }
     $Str .= ' />';      $Str .= ' />';
     return $Str;      return $Str;
Line 334  sub radio { Line 307  sub radio {
         $Str .= 'value="'.$value.'"';          $Str .= 'value="'.$value.'"';
     }       } 
     if ($checked eq $value) {      if ($checked eq $value) {
         $Str .= ' checked="checked"';          $Str .= ' checked="1"';
     }      }
     $Str .= ' />';      $Str .= ' />';
     return $Str;      return $Str;
Line 432  sub date_setter { Line 405  sub date_setter {
     my $result = "\n<!-- $dname date setting form -->\n";      my $result = "\n<!-- $dname date setting form -->\n";
     $result .= <<ENDJS;      $result .= <<ENDJS;
 <script type="text/javascript">  <script type="text/javascript">
 // <![CDATA[  
     function $dname\_checkday() {      function $dname\_checkday() {
         var day   = document.$formname.$dname\_day.value;          var day   = document.$formname.$dname\_day.value;
         var month = document.$formname.$dname\_month.value;          var month = document.$formname.$dname\_month.value;
Line 493  document.$formname.$dname\_year.value, Line 465  document.$formname.$dname\_year.value,
         }          }
   
     }      }
 // ]]>  
 </script>  </script>
 ENDJS  ENDJS
     $result .= '  <span style="white-space: nowrap;">';      $result .= '  <span style="white-space: nowrap;">';
Line 979  sub Create_PrgWin { Line 950  sub Create_PrgWin {
  #the whole function called through timeout is due to issues   #the whole function called through timeout is due to issues
  #in mozilla Read BUG #2665 if you want to know the whole story   #in mozilla Read BUG #2665 if you want to know the whole story
  &r_print($r,'<script type="text/javascript">'.   &r_print($r,'<script type="text/javascript">'.
         '// <![CDATA['.  
         "var popwin;          "var popwin;
          function openpopwin () {           function openpopwin () {
          popwin=open(\'\',\'popwin\',\'width=400,height=100\');".           popwin=open(\'\',\'popwin\',\'width=400,height=100\');".
Line 990  sub Create_PrgWin { Line 960  sub Create_PrgWin {
       &mt('Starting').'" /><\\/form>'.$end_page.        &mt('Starting').'" /><\\/form>'.$end_page.
               "\');".                "\');".
         "popwin.document.close();}".          "popwin.document.close();}".
         "\nwindow.setTimeout(openpopwin,0).          "\nwindow.setTimeout(openpopwin,0)</script>");
         '// ]]>'.  
         '</script>");  
  $prog_state{'formname'}='popremain';   $prog_state{'formname'}='popremain';
  $prog_state{'inputname'}="remaining";   $prog_state{'inputname'}="remaining";
     } elsif ($type eq 'inline') {      } elsif ($type eq 'inline') {
Line 1025  sub Create_PrgWin { Line 993  sub Create_PrgWin {
 # update progress  # update progress
 sub Update_PrgWin {  sub Update_PrgWin {
     my ($r,$prog_state,$displayString)=@_;      my ($r,$prog_state,$displayString)=@_;
     &r_print($r,'<script type="text/javascript">'.      &r_print($r,'<script type="text/javascript">'.$$prog_state{'window'}.'.document.'.
              '// <![CDATA['.  
              $$prog_state{'window'}.'.document.'.  
      $$prog_state{'formname'}.'.'.       $$prog_state{'formname'}.'.'.
      $$prog_state{'inputname'}.'.value="'.       $$prog_state{'inputname'}.'.value="'.
      $displayString.'";'.       $displayString.'";</script>');
              '// ]]>'.  
              '</script>');  
     $$prog_state{'laststart'}=&Time::HiRes::time();      $$prog_state{'laststart'}=&Time::HiRes::time();
 }  }
   
Line 1085  sub Increment_PrgWin { Line 1049  sub Increment_PrgWin {
     if ($user_browser eq 'explorer' && $user_os =~ 'mac') {      if ($user_browser eq 'explorer' && $user_os =~ 'mac') {
         $lasttime = '';          $lasttime = '';
     }      }
     &r_print($r,'<script>'.      &r_print($r,'<script>'.$$prog_state{'window'}.'.document.'.
              '// <![CDATA['.  
              $$prog_state{'window'}.'.document.'.  
      $$prog_state{'formname'}.'.'.       $$prog_state{'formname'}.'.'.
      $$prog_state{'inputname'}.'.value="'.       $$prog_state{'inputname'}.'.value="'.
      $$prog_state{'done'}.'/'.$$prog_state{'max'}.       $$prog_state{'done'}.'/'.$$prog_state{'max'}.
      ': '.$time_est.' '.&mt('remaining').' '.$lasttime.'";'.       ': '.$time_est.' '.&mt('remaining').' '.$lasttime.'";'.'</script>');
              '// ]]>'.  
              '</script>');  
     $$prog_state{'laststart'}=&Time::HiRes::time();      $$prog_state{'laststart'}=&Time::HiRes::time();
 }  }
   
Line 1101  sub Increment_PrgWin { Line 1061  sub Increment_PrgWin {
 sub Close_PrgWin {  sub Close_PrgWin {
     my ($r,$prog_state)=@_;      my ($r,$prog_state)=@_;
     if ($$prog_state{'type'} eq 'popup') {      if ($$prog_state{'type'} eq 'popup') {
  &r_print($r,'<script>'.   &r_print($r,'<script>popwin.close()</script>'."\n");
                  '// <![CDATA['.  
                  'popwin.close()'.  
                  '// ]]>'.  
                  '</script>'."\n");  
     } elsif ($$prog_state{'type'} eq 'inline') {      } elsif ($$prog_state{'type'} eq 'inline') {
  &Update_PrgWin($r,$prog_state,&mt('Done'));   &Update_PrgWin($r,$prog_state,&mt('Done'));
     }      }
Line 1186  sub spellheader { Line 1142  sub spellheader {
   
     my $nothing=&javascript_nothing();      my $nothing=&javascript_nothing();
     return (<<ENDCHECK);      return (<<ENDCHECK);
 <script type="text/javascript">  <script type="text/javascript"> 
 // <![CDATA[  
 //<!-- BEGIN LON-CAPA Internal  //<!-- BEGIN LON-CAPA Internal
 var checkwin;  var checkwin;
   
Line 1198  function spellcheckerwindow(string) { Line 1153  function spellcheckerwindow(string) {
     checkwin.document.close();      checkwin.document.close();
 }  }
 // END LON-CAPA Internal -->  // END LON-CAPA Internal -->
 // ]]>  
 </script>  </script>
 ENDCHECK  ENDCHECK
 }  }
Line 1272  sub htmlareaselectactive { Line 1226  sub htmlareaselectactive {
     my @fields=@_;      my @fields=@_;
     unless (&htmlareabrowser()) { return ''; }      unless (&htmlareabrowser()) { return ''; }
     if (&htmlareablocked()) { return '<br />'.&enablelink(@fields); }      if (&htmlareablocked()) { return '<br />'.&enablelink(@fields); }
     my $output='<script type="text/javascript" defer="1">'.      my $output='<script type="text/javascript" defer="1">';
                '// <![CDATA[';  
     my $lang = &htmlarea_lang();      my $lang = &htmlarea_lang();
     foreach my $field (@fields) {      foreach my $field (@fields) {
  $output.="   $output.="
Line 1286  sub htmlareaselectactive { Line 1239  sub htmlareaselectactive {
     oFCKeditor.Config['DefaultLanguage'] = '$lang';      oFCKeditor.Config['DefaultLanguage'] = '$lang';
 }";  }";
     }      }
     $output.="\nwindow.status='Activated Editfields';\n".      $output.="\nwindow.status='Activated Editfields';\n</script><br />".
              '// ]]>'.  
              '</script><br />'.  
  &disablelink(@fields);   &disablelink(@fields);
     return $output;      return $output;
 }  }
Line 1352  returns: nothing Line 1303  returns: nothing
     my @Crumbs;      my @Crumbs;
           
     sub breadcrumbs {      sub breadcrumbs {
         my ($component,$component_help,$menulink,$helplink,$css_class,$no_mt) = @_;          my ($component,$component_help,$menulink,$helplink,$css_class) = @_;
         #          #
  $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>';
Line 1362  returns: nothing Line 1313  returns: nothing
         my $bug = '';          my $bug = '';
  my $help='';   my $help='';
  # Crumb Symbol   # Crumb Symbol
  my $crumbsymbol = '&raquo;&nbsp;';   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 1432  returns: nothing Line 1383  returns: nothing
         $Str .= $links.'</td>';          $Str .= $links.'</td>';
         #          #
         if (defined($component)) {          if (defined($component)) {
             $Str .= '<td class="'.$css_class.'_component">';              $Str .= '<td class="'.$css_class.'_component">'.
             if ($no_mt) {                  &mt($component);
                 $Str .= $component;  
             } else {  
                 $Str .= &mt($component);  
             }  
     if ($icons ne '') {      if ($icons ne '') {
  $Str .= '&nbsp;'.$icons;   $Str .= '&nbsp;'.$icons;
     }      }
Line 1518  returns: nothing Line 1465  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 1528  sub start_pick_box { Line 1472  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 1536  END Line 1479  END
 }  }
   
 sub end_pick_box {  sub end_pick_box {
     shift(@row_count);  
     my $output = <<"END";      my $output = <<"END";
        </table>         </table>
 END  END
Line 1552  END Line 1494  END
   
 sub row_title {  sub row_title {
     my ($title,$css_title_class,$css_value_class) = @_;      my ($title,$css_title_class,$css_value_class) = @_;
     $row_count[0]++;  
     my $css_class = ($row_count[0] % 2)?'LC_odd_row':'LC_even_row';  
     $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 1567  sub row_title { Line 1508  sub row_title {
             <td $css_title_class>              <td $css_title_class>
        $title         $title
             </td>              </td>
             <td class="$css_value_class $css_class">              <td $css_value_class>
 ENDONE  ENDONE
     return $output;      return $output;
 }  }
Line 1589  ENDTWO Line 1530  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 1599  sub role_select_row { Line 1537  sub role_select_row {
         $output = &row_title($title,$css_class);          $output = &row_title($title,$css_class);
     }      }
     $output .= qq|      $output .= qq|
                                   <select name="roles" multiple="multiple" >\n|;                                    <select name="roles" multiple >\n|;
     foreach my $role (@$roles) {      foreach my $role (@$roles) {
         my $plrole;          my $plrole;
         if ($role eq 'ow') {          if ($role eq 'ow') {
Line 1644  sub course_selection { Line 1582  sub course_selection {
     my ($formname,$totcodes,$codetitles,$idlist,$idlist_titles) = @_;      my ($formname,$totcodes,$codetitles,$idlist,$idlist_titles) = @_;
     my $output = qq|      my $output = qq|
 <script type="text/javascript">  <script type="text/javascript">
 // <![CDATA[  
     function coursePick (formname) {      function coursePick (formname) {
         for  (var i=0; i<formname.coursepick.length; i++) {          for  (var i=0; i<formname.coursepick.length; i++) {
             if (formname.coursepick[i].value == 'category') {              if (formname.coursepick[i].value == 'category') {
Line 1667  sub course_selection { Line 1604  sub course_selection {
             formname.courselist = '';              formname.courselist = '';
         }          }
     }      }
 // ]]>  
 </script>  </script>
     |;      |;
     my $courseform='<b>'.&Apache::loncommon::selectcourse_link      my $courseform='<b>'.&Apache::loncommon::selectcourse_link
Line 1728  sub status_select_row { Line 1664  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="multiple">\n|;                                      <select name="types" 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 1772  sub email_default_row { Line 1708  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 1813  sub topic_bar { Line 1750  sub topic_bar {
     return '      return '
 <div class="LC_topic_bar">  <div class="LC_topic_bar">
     <img alt="'.&mt('Step [_1]',$imgnum).      <img alt="'.&mt('Step [_1]',$imgnum).
               '" src="/res/adm/pages/bl_step'.$imgnum.'.gif" />&nbsp;'.$title                '"src="/res/adm/pages/bl_step'.$imgnum.'.gif" />&nbsp;
       <span>'.$title.'</span>
 </div>  </div>
 ';  ';
 }  }
Line 2067  END Line 2005  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="columnSection">|;
   
       foreach my $category (@menu) { #FIXME: insert appropriate classnames for styles when they're finished.
    $menu_html .='<div class="ContentBoxSpecial">
    <h3 class="hcell">'.mt($category->{'categorytitle'}).'</h3>
    <ul class="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 ="noBorder" 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 .= '</div>';
       }
       $menu_html .= qq|</div>|;
       return $menu_html;
   }
   
   
 1;  1;

Removed from v.1.182.4.3  
changed lines
  Added in v.1.190


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