Diff for /loncom/interface/lonhtmlcommon.pm between versions 1.320 and 1.330

version 1.320, 2012/09/04 10:46:05 version 1.330, 2012/11/08 18:37:44
Line 61  use Time::HiRes; Line 61  use Time::HiRes;
 use Apache::lonlocal;  use Apache::lonlocal;
 use Apache::lonnet;  use Apache::lonnet;
 use HTML::Entities();  use HTML::Entities();
 use LONCAPA;  use LONCAPA qw(:DEFAULT :match);
   
 sub java_not_enabled {  sub java_not_enabled {
    return "\n".'<span class="LC_error">'.     return "\n".'<span class="LC_error">'.
Line 1101  sub Close_PrgWin { Line 1101  sub Close_PrgWin {
     undef(%$prog_state);      undef(%$prog_state);
 }  }
   
   
 # ------------------------------------------------------- Puts directory header  # ------------------------------------------------------- Puts directory header
   
 sub crumbs {  sub crumbs {
Line 1212  ENDEDITOR Line 1213  ENDEDITOR
 <script type="text/javascript" src="/adm/countdown/js/jquery.countdown.js"></script>  <script type="text/javascript" src="/adm/countdown/js/jquery.countdown.js"></script>
 <link rel="stylesheet" type="text/css" href="/adm/countdown/css/jquery.countdown.css" />  <link rel="stylesheet" type="text/css" href="/adm/countdown/css/jquery.countdown.css" />
   
 <script type="text/javascript" src="/adm/spellchecker/js/jquery.spellchecker.js"></script>  <script type="text/javascript" src="/adm/spellchecker/js/jquery.spellchecker.min.js"></script>
 <link rel="stylesheet" type="text/css" href="/adm/spellchecker/css/spellchecker.css" />  <link rel="stylesheet" type="text/css" href="/adm/spellchecker/css/spellchecker.css" />
   
 ENDJQUERY  ENDJQUERY
Line 1230  sub htmlarea_lang { Line 1231  sub htmlarea_lang {
     return $lang;      return $lang;
 }  }
   
   # return javacsript to activate elements of .colorchooser with jpicker:
   # Caller is responsible for enclosing this in <script> tags:
   #
   sub color_picker {
       return '
   $(document).ready(function(){
       $.fn.jPicker.defaults.images.clientPath="/adm/jpicker/images/";
       $(".colorchooser").jPicker({window: { position: {x: "screenCenter", y: "bottom"}}});
   });';
   }
   
 # ----------------------------------------- Script to activate only some fields  # ----------------------------------------- Script to activate only some fields
   
 sub htmlareaselectactive {  sub htmlareaselectactive {
Line 1343  sub htmlareaselectactive { Line 1355  sub htmlareaselectactive {
  $(this).before("<div><a href=\"#\" id=\"LC_rt_"+id+"\" title=\"Enable rich text formatting (bold, italic, etc.)\" class=\"LC_enable_rt\"><b>Rich formatting &raquo;</b></a></div>");   $(this).before("<div><a href=\"#\" id=\"LC_rt_"+id+"\" title=\"Enable rich text formatting (bold, italic, etc.)\" class=\"LC_enable_rt\"><b>Rich formatting &raquo;</b></a></div>");
  $("#LC_rt_"+id).click(editorHandler);   $("#LC_rt_"+id).click(editorHandler);
  });   });
                 $.fn.jPicker.defaults.images.clientPath="/adm/jpicker/images/";  
                 $(".colorchooser").jPicker();  
   
   
  });   });
 ';  ';
       $output .= &color_picker;
   
     # Code to put a due date countdown in 'duedatecountdown' span.      # Code to put a due date countdown in 'duedatecountdown' span.
     # This is currently located in the breadcrumb headers.      # This is currently located in the breadcrumb headers.
     # note that the dueDateLayout is internatinoalized below.      # note that the dueDateLayout is internatinoalized below.
Line 1402  sub htmlareaselectactive { Line 1414  sub htmlareaselectactive {
       });        });
    }     }
 });  });
   
       /* This code describes the spellcheck options that will be used for
          items with class 'spellchecked'.  It is necessary for those objects'
          to explicitly request checking (e.g. onblur is a nice event for that).
        */
        \$(document).ready(function() {
    \$(".spellchecked").spellchecker({
      url: "/ajax/spellcheck",
      lang: "en",                      
      engine: "pspell",
      suggestionBoxPosition: "below",
      innerDocument: true
     });
    \$("textarea.spellchecked").spellchecker({
      url: "/ajax/spellcheck",
      lang: "en",                      
      engine: "pspell",
      suggestionBoxPosition: "below",
      innerDocument: true
     });
   
    });
   
       /* the muli colored editor can generate spellcheck with language 'none'
          to disable spellcheck as well
       */
       function doSpellcheck(element, lang) {
    if (lang != 'none') {
        \$(element).spellchecker('option', {lang: lang});
       \$(element).spellchecker('check');
           }
       }
   
   
 JAVASCRIPT  JAVASCRIPT
     if ($dragmath_prefix ne '') {      if ($dragmath_prefix ne '') {
         $output .= '          $output .= '
Line 1605  returns: nothing Line 1651  returns: nothing
                 $description =                   $description = 
                     $env{'course.'.$env{'request.course.id'}.'.description'};                      $env{'course.'.$env{'request.course.id'}.'.description'};
                 $no_mt_descr = 1;                  $no_mt_descr = 1;
                   if ($env{'request.noversionuri'} =~ 
                       m{^/public/($match_domain)/($match_courseid)/syllabus$}) {
                       unless (($env{'course.'.$env{'request.course.id'}.'.domain'} eq $1) &&
                               ($env{'course.'.$env{'request.course.id'}.'.num'} eq $2)) { 
                           $description = 'Menu';
                           $no_mt_descr = 0;
                       }
                   }
             }              }
             $menulink =  {  href   =>'/adm/menu',              $menulink =  {  href   =>'/adm/menu',
                             title  =>'Go to main menu',                              title  =>'Go to main menu',
Line 1620  returns: nothing Line 1674  returns: nothing
             }              }
         }          }
         my $links;          my $links;
         if ((&show_return_link) && (!$CourseBreadcrumbs)) {          if ((&show_return_link) && (!$CourseBreadcrumbs) && (ref($last) eq 'HASH')) {
             my $alttext = &mt('Go Back');              my $alttext = &mt('Go Back');
             $links=&htmltag( 'a','<img src="/res/adm/pages/tolastloc.png" alt="'.$alttext.'" class="LC_icon" />',              $links=&htmltag( 'a','<img src="/res/adm/pages/tolastloc.png" alt="'.$alttext.'" class="LC_icon" />',
                             { href => '/adm/flip?postdata=return:',                              { href => '/adm/flip?postdata=return:',
Line 1655  returns: nothing Line 1709  returns: nothing
         # last breadcrumb is the first order heading of a page          # last breadcrumb is the first order heading of a page
         # for course breadcrumbs it's just bold          # for course breadcrumbs it's just bold
   
         $links .= &htmltag( 'li', htmltag($CourseBreadcrumbs ? 'b' : 'h1',          if ($lasttext ne '') {
                 $lasttext), {title => $lasttext});              $links .= &htmltag( 'li', htmltag($CourseBreadcrumbs ? 'b' : 'h1',
                       $lasttext), {title => $lasttext});
           }
   
         my $icons = '';          my $icons = '';
         $faq  = $last->{'faq'}  if (exists($last->{'faq'}));          $faq  = $last->{'faq'}  if (exists($last->{'faq'}));
Line 1677  returns: nothing Line 1733  returns: nothing
         #          #
   
   
           if ($links ne '') {
         unless ($CourseBreadcrumbs) {              unless ($CourseBreadcrumbs) {
             $links = &htmltag('ol',  $links, { id => "LC_MenuBreadcrumbs"   });                  $links = &htmltag('ol',  $links, { id => "LC_MenuBreadcrumbs"   });
         } else {              } else {
             $links = &htmltag('ul',  $links, { class => "LC_CourseBreadcrumbs" });                  $links = &htmltag('ul',  $links, { class => "LC_CourseBreadcrumbs" });
               }
         }          }
   
   
Line 2879  PARAMSONE Line 2936  PARAMSONE
         if (itemid.offsetWidth != itemwstart) {          if (itemid.offsetWidth != itemwstart) {
             listwchange = 1;              listwchange = 1;
         }          }
 THIRD  
     if ($context eq 'docs') {  
         $output .= <<"DOCSTWO";  
         if (activeTab == 'cc1') {  
             if (document.getElementById('cc_hrule') != null) {  
                 document.getElementById('cc_hrule').style.width=actabw+"px";  
             }  
         } else {  
             if (activeTab == 'bb1') {  
                 if (document.getElementById('bb_hrule') != null) {  
                     document.getElementById('bb_hrule').style.width=actabw+"px";  
                 }  
             } else {  
                 if (activeTab == 'ee2') {  
                     if (document.getElementById('ee_hrule') != null) {  
                         document.getElementById('ee_hrule').style.width=actabw+"px";  
                     }  
                 }  
             }  
         }  
 DOCSTWO  
     }  
     $output .= <<"FOURTH";  
     }      }
     if ((chkh == 1) || (listwchange)) {      if ((chkh == 1) || (listwchange)) {
         var primaryheight = document.getElementById('LC_nav_bar').offsetHeight;          var primaryheight = document.getElementById('LC_nav_bar').offsetHeight;
Line 2961  function callResize() { Line 2995  function callResize() {
     timer=setTimeout('resize_scrollbox("$names{'scroll'}","1","1")',500);      timer=setTimeout('resize_scrollbox("$names{'scroll'}","1","1")',500);
 }  }
   
 FOURTH  THIRD
     return $output;      return $output;
 }  }
   
   ##############################################
   ##############################################
   
   sub javascript_jumpto_resource {
       my $confirm_switch = &mt("Editing requires switching to the resource's home server.").'\n'.
                            &mt('Switch server?');
       return (<<ENDUTILITY)
   
   function go(url) {
      if (url!='' && url!= null) {
          currentURL = null;
          currentSymb= null;
          window.location.href=url;
      }
   }
   
   function need_switchserver(url) {
       if (url!='' && url!= null) {
           if (confirm("$confirm_switch")) {
               go(url);
           }
       }
       return;
   }
   
   ENDUTILITY
   
   }
   
   sub jump_to_editres {
       my ($cfile,$home,$switchserver,$forceedit,$forcereg,$symb) = @_;
       my $jscall;
       if ($switchserver) {
           if ($symb && $home) {
               $cfile = '/adm/switchserver?otherserver='.$home.'&amp;role='.
                        &HTML::Entities::encode($env{'request.role'},'"<>&').
                       '&amp;symb='.&HTML::Entities::encode($symb,'"<>&');
               if ($forceedit) {
                   $cfile .= '&amp;forceedit=1';
               }
               if ($forcereg) {
                   $cfile .= '&amp;register=1';
               }
               $jscall = "need_switchserver('$cfile');";
           }
       } else {
           unless ($cfile =~ m{^/priv/}) {
               if ($symb) {
                   $cfile .= (($cfile=~/\?/)?'&amp;':'?')."symb=$symb"; 
               }
               if ($forceedit) {
                   $cfile .= (($cfile=~/\?/)?'&amp;':'?').'forceedit=1';
               }
               if ($forcereg) {
                   $cfile .= (($cfile=~/\?/)?'&amp;':'?').'register=1';
               }
           }
           $jscall = "go('$cfile')";
       }
       return $jscall;
   }
   
 ##############################################  ##############################################
 ##############################################  ##############################################

Removed from v.1.320  
changed lines
  Added in v.1.330


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