Diff for /loncom/interface/lonmenu.pm between versions 1.369.2.16 and 1.369.2.24

version 1.369.2.16, 2012/08/03 01:37:23 version 1.369.2.24, 2012/09/26 00:39:32
Line 131  Inputs: 4 - (a) link and (b) target for Line 131  Inputs: 4 - (a) link and (b) target for
   
 This gets called in order to register a URL in the body of the document  This gets called in order to register a URL in the body of the document
   
   =item loadevents()
   
   =item unloadevents()
   
   =item startupremote()
   
   =item setflags()
   
   =item maincall()
   
   =item load_remote_msg()
   
   =item get_menu_name()
   
   =item reopenmenu()
   
   =item open()
   
   Open the menu
   
 =item clear()  =item clear()
   
 =item switch()  =item switch()
Line 423  sub secondary_menu { Line 443  sub secondary_menu {
     }      }
     $menu =~ s/\[uname\]/$$author{user}/g;      $menu =~ s/\[uname\]/$$author{user}/g;
     $menu =~ s/\[udom\]/$$author{dom}/g;      $menu =~ s/\[udom\]/$$author{dom}/g;
       if ($menu) {
     return "<ul id=\"LC_secondary_menu\">$menu</ul>";          $menu = "<ul id=\"LC_secondary_menu\">$menu</ul>";
       }
       return $menu;
 }  }
   
 sub create_submenu {  sub create_submenu {
Line 458  sub create_submenu { Line 480  sub create_submenu {
     return $menu;      return $menu;
 }  }
   
   sub registerurl {
       my ($forcereg) = @_;
       my $result = '';
       if ($env{'request.noversionuri'} =~ m{^/res/adm/pages/}) { return ''; }
       my $force_title='';
       if ($env{'request.state'} eq 'construct') {
           $force_title=&Apache::lonxml::display_title();
       }
       if (($env{'environment.remote'} eq 'off') ||
           ((($env{'request.publicaccess'}) ||
            (!&Apache::lonnet::is_on_map(
              &unescape($env{'request.noversionuri'})))) &&
           (!$forcereg))) {
           return
           $result
          .'<script type="text/javascript">'."\n"
          .'// <![CDATA['."\n"
          .'function LONCAPAreg(){;} function LONCAPAstale(){}'."\n"
          .'// ]]>'."\n"
          .'</script>'
          .$force_title;
       }
   # Graphical display after login only
       if ($env{'request.registered'} && !$forcereg) { return ''; }
       $result.=&innerregister($forcereg);
       return $result.$force_title;
   }
   
 sub innerregister {  sub innerregister {
     my ($forcereg,$bread_crumbs) = @_;      my ($forcereg,$bread_crumbs) = @_;
     my $const_space = ($env{'request.state'} eq 'construct');      my $const_space = ($env{'request.state'} eq 'construct');
Line 467  sub innerregister { Line 517  sub innerregister {
   
     $env{'request.registered'} = 1;      $env{'request.registered'} = 1;
   
       my $noremote = ($env{'environment.remote'} eq 'off');
   
     undef(@inlineremote);      undef(@inlineremote);
   
       my $reopen=&Apache::lonmenu::reopenmenu();
   
       my $newmail='';
   
       if (&Apache::lonmsg::newmail() && !$noremote) {
           # We have new mail and remote is up
           $newmail= 'swmenu.setstatus("you have","messages");';
       }
   
     my $resurl;       my $resurl; 
     if ( $env{'request.symb'} && $env{'request.course.id'} ) {      if ( $env{'request.symb'} && $env{'request.course.id'} ) {
   
Line 507  sub innerregister { Line 568  sub innerregister {
         &Apache::lonhtmlcommon::clear_breadcrumbs();          &Apache::lonhtmlcommon::clear_breadcrumbs();
         &Apache::lonhtmlcommon::add_breadcrumb({text => 'View Resource'});          &Apache::lonhtmlcommon::add_breadcrumb({text => 'View Resource'});
     }      }
       my $timesync   = ( $noremote ? '' : 'swmenu.syncclock(1000*'.time.');' );
 # =============================================================================  # =============================================================================
 # ============================ This is for URLs that actually can be registered  # ============================ This is for URLs that actually can be registered
     return '' unless ( ($env{'request.noversionuri'}!~m{^/(res/)*adm/})       if ( ($env{'request.noversionuri'}!~m{^/(res/)*adm/})
                        || $forcereg );                         || ($forcereg)) {
   
 # -- This applies to homework problems for users with grading privileges  # -- This applies to homework problems for users with grading privileges
  my $crs='/'.$env{'request.course.id'};   my $crs='/'.$env{'request.course.id'};
  if ($env{'request.course.sec'}) {   if ($env{'request.course.sec'}) {
Line 519  sub innerregister { Line 580  sub innerregister {
  }   }
  $crs=~s/\_/\//g;   $crs=~s/\_/\//g;
   
           my %swtext;
           if ($noremote) {
               %swtext = &get_inline_text();
           } else {
               %swtext = &get_rc_text();
           } 
         my $hwkadd='';          my $hwkadd='';
         if ($env{'request.symb'} ne '' &&          if ($env{'request.symb'} ne '' &&
     $env{'request.filename'}=~/$LONCAPA::assess_re/) {      $env{'request.filename'}=~/$LONCAPA::assess_re/) {
     if (&Apache::lonnet::allowed('mgr',$crs)) {      if (&Apache::lonnet::allowed('mgr',$crs)) {
  $hwkadd.=&switch('','',7,2,'pgrd.png','Content Grades','grades[_4]',   $hwkadd.=&switch('','',7,2,'pgrd.png',$swtext{'pgrd'},'grades[_4]',
                        "gocmd('/adm/grades','gradingmenu')",                         "gocmd('/adm/grades','gradingmenu')",
                        'Content Grades');                         'Content Grades');
             } elsif (&Apache::lonnet::allowed('vgr',$crs)) {              } elsif (&Apache::lonnet::allowed('vgr',$crs)) {
  $hwkadd.=&switch('','',7,2,'subm.png','Content Submissions','missions[_1]',   $hwkadd.=&switch('','',7,2,'subm.png',$swtext{'subm'},'missions[_1]',
                        "gocmd('/adm/grades','submission')",                         "gocmd('/adm/grades','submission')",
        'Content Submissions');         'Content Submissions');
             }              }
  }   }
  if ($env{'request.symb'} ne '' &&   if ($env{'request.symb'} ne '' &&
     &Apache::lonnet::allowed('opa',$crs)) {      &Apache::lonnet::allowed('opa',$crs)) {
     $hwkadd.=&switch('','',7,3,'pparm.png','Content Settings','parms[_2]',      $hwkadd.=&switch('','',7,3,'pparm.png',$swtext{'pparm'},'parms[_2]',
      "gocmd('/adm/parmset','set')",       "gocmd('/adm/parmset','set')",
      'Content Settings');       'Content Settings');
  }   }
         if ($env{'request.symb'}=~/^uploaded/ &&          if ($noremote) {  
             &Apache::lonnet::allowed('mdc',$crs)) {              if ($env{'request.symb'}=~/^uploaded/ &&
             $hwkadd.=&switch('','',7,4,'docs.png','Folder/Page Content','parms[_2]',                  &Apache::lonnet::allowed('mdc',$crs)) {
                              "gocmd('/adm/coursedocs','direct')",                  $hwkadd.=&switch('','',7,4,'docs.png',$swtext{'docs'},'parms[_2]',
                              'Folder/Page Content');                                   "gocmd('/adm/coursedocs','direct')",
                                    'Folder/Page Content');
               }
         }          }
 # -- End Homework  # -- End Homework
         ###          ###
Line 585  sub innerregister { Line 654  sub innerregister {
  my @ids=&Apache::lonnet::current_machine_ids();   my @ids=&Apache::lonnet::current_machine_ids();
  foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } }   foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } }
  if (!$allowed) {   if (!$allowed) {
     $editbutton=&switch('','',6,1,$top,,$bottom,$action,$desc);      $editbutton=&switch('','',6,1,,$top,$bottom,$action,$desc);
                     $noeditbutton = 0;                      $noeditbutton = 0;
                 }                  }
             }              }
Line 652  sub innerregister { Line 721  sub innerregister {
                         }                          }
                     }                      }
                     $editbutton=&switch                      $editbutton=&switch
                        ('','',6,1,'pcstr.png','Edit','resource[_2]',                         ('','',6,1,'pcstr.png',$swtext{'pcstr'},'resource[_2]',
                         $bot,"Edit this resource");                          $bot,"Edit this resource");
                     $noeditbutton = 0;                      $noeditbutton = 0;
                 }                  }
Line 668  sub innerregister { Line 737  sub innerregister {
                         my $cfile = &edit_course_upload($file,$cnum,$cdom);                          my $cfile = &edit_course_upload($file,$cnum,$cdom);
                         if ($cfile) {                          if ($cfile) {
                             $editbutton=&switch                              $editbutton=&switch
                                         ('','',6,1,'pcstr.png','Edit',                                          ('','',6,1,'pcstr.png',$swtext{'pcstr'},
                                          'resource[_2]',"go('".$cfile."');",                                           'resource[_2]',"go('".$cfile."');",
                                          'Edit this resource');                                           'Edit this resource');
                         }                          }
Line 680  sub innerregister { Line 749  sub innerregister {
             if ($resurl eq "public/$cdom/$cnum/syllabus") {              if ($resurl eq "public/$cdom/$cnum/syllabus") {
                 if ($env{'course.'.$env{'request.course.id'}.'.externalsyllabus'} =~ /\w/) {                  if ($env{'course.'.$env{'request.course.id'}.'.externalsyllabus'} =~ /\w/) {
                     if (&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) {                      if (&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) {
                         $editbutton=&switch('','',6,1,'pcstr.png','Edit',                          $editbutton=&switch('','',6,1,'pcstr.png',$swtext{'pcstr'},
                                             'resource[_2]',                                              'resource[_2]',
                                             "go('/adm/courseprefs?phase=display&actions=courseinfo')",                                              "go('/adm/courseprefs?phase=display&actions=courseinfo')",
                                             'Edit this resource');                                              'Edit this resource');
Line 691  sub innerregister { Line 760  sub innerregister {
         ###          ###
         ###          ###
 # Prepare the rest of the buttons  # Prepare the rest of the buttons
         my ($menuitems,$got_prt,$got_wishlist);          my ($menuitems,$got_prt,$got_wishlist,$cstritems);
         if ($const_space) {          if ($const_space) {
 #  #
 # We are in construction space  # We are in construction space
Line 717  s&6&3&pub.png&Publish&resource[_3]&gocst Line 786  s&6&3&pub.png&Publish&resource[_3]&gocst
 s&7&1&del.png&Delete&resource[_2]&gocstr('/adm/cfile?action=delete','/priv/$udom/$uname/$cleandisfn')&Delete this resource  s&7&1&del.png&Delete&resource[_2]&gocstr('/adm/cfile?action=delete','/priv/$udom/$uname/$cleandisfn')&Delete this resource
 s&7&2&prt.png&Print&printout[_1]&gocstr('/adm/printout','/priv/$udom/$uname/$cleandisfn')&Prepare a printable document  s&7&2&prt.png&Print&printout[_1]&gocstr('/adm/printout','/priv/$udom/$uname/$cleandisfn')&Prepare a printable document
 ENDMENUITEMS  ENDMENUITEMS
                   unless ($noremote) {
                       $cstritems = $menuitems;
                       undef($menuitems);
                   }
             }              }
                 if (ref($bread_crumbs) eq 'ARRAY') {                  if (ref($bread_crumbs) eq 'ARRAY') {
                     &Apache::lonhtmlcommon::clear_breadcrumbs();                      &Apache::lonhtmlcommon::clear_breadcrumbs();
Line 730  ENDMENUITEMS Line 803  ENDMENUITEMS
 # We are in a course and looking at a registered URL  # We are in a course and looking at a registered URL
 # Should probably be in mydesk.tab  # Should probably be in mydesk.tab
 #  #
   
     $menuitems=(<<ENDMENUITEMS);      $menuitems=(<<ENDMENUITEMS);
 c&3&1  c&3&1
 s&2&1&back.png&&&gopost('/adm/flip','back:'+currentURL)&Previous content resource&&1  s&2&1&back.png&$swtext{'back'}&&gopost('/adm/flip','back:'+currentURL)&Previous content resource&&1
 s&2&3&forw.png&&&gopost('/adm/flip','forward:'+currentURL)&Next content resource&&3  s&2&3&forw.png&$swtext{'forw'}&&gopost('/adm/flip','forward:'+currentURL)&Next content resource&&3
 c&6&3  c&6&3
 c&8&1  c&8&1
 c&8&2  c&8&2
 s&8&3&prt.png&Print&printout[_1]&gopost('/adm/printout',currentURL)&Prepare a printable document  s&8&3&prt.png&$swtext{'prt'}&printout[_1]&gopost('/adm/printout',currentURL)&Prepare a printable document
 ENDMENUITEMS  ENDMENUITEMS
             $got_prt = 1;              $got_prt = 1;
             if (($env{'user.adv'}) && ($env{'request.uri'} =~ /^\/res/)              if (($env{'user.adv'}) && ($env{'request.uri'} =~ /^\/res/)
Line 745  ENDMENUITEMS Line 819  ENDMENUITEMS
                 # wishlist is only available for users with access to resource-pool                  # wishlist is only available for users with access to resource-pool
                 # and links can only be set for resources within the resource-pool                  # and links can only be set for resources within the resource-pool
                 $menuitems .= (<<ENDMENUITEMS);                  $menuitems .= (<<ENDMENUITEMS);
 s&9&1&wishlist-link.png&Stored Links&wishlistlink[_2]&set_wishlistlink()&Save a link for this resource in your personal Stored Links repository&&1  s&9&1&alnk.png&$swtext{'alnk'}&linkstor[_1]&set_wishlistlink()&Save a link for this resource in your personal Stored Links repository&&1
 ENDMENUITEMS  ENDMENUITEMS
                 $got_wishlist = 1;                  $got_wishlist = 1;
             }              }
Line 759  if(length($annotation) > 0){ Line 833  if(length($annotation) > 0){
 }else{  }else{
  $menuitems.="anot.png";   $menuitems.="anot.png";
 }  }
 $menuitems.="&Notes&&annotate()&";  $menuitems.="&$swtext{'anot'}&tations[_1]&annotate()&";
 $menuitems.="Make notes and annotations about this resource&&1\n";  $menuitems.="Make notes and annotations about this resource&&1\n";
   
             unless ($env{'request.noversionuri'}=~/\/(bulletinboard|smppg|navmaps|syllabus|aboutme|viewclasslist|portfolio)(\?|$)/) {              unless ($env{'request.noversionuri'}=~/\/(bulletinboard|smppg|navmaps|syllabus|aboutme|viewclasslist|portfolio)(\?|$)/) {
  if ((!$env{'request.enc'}) && ($env{'request.noversionuri'} !~ m{^/adm/wrapper/ext/}) && ($env{'request.noversionuri'} !~ m{^/uploaded/$match_domain/$match_courseid/docs/})) {   if ((!$env{'request.enc'}) && ($env{'request.noversionuri'} !~ m{^/adm/wrapper/ext/}) && ($env{'request.noversionuri'} !~ m{^/uploaded/$match_domain/$match_courseid/docs/})) {
     $menuitems.=(<<ENDREALRES);      $menuitems.=(<<ENDREALRES);
 s&6&3&catalog.png&Info&info[_1]&catalog_info()&Show Metadata  s&6&3&catalog.png&$swtext{'catalog'}&info[_1]&catalog_info()&Show Metadata
 ENDREALRES  ENDREALRES
                 }                  }
                 unless ($env{'request.noversionuri'} =~ m{^/uploaded/$match_domain/$match_courseid/docs/}) {                  unless ($env{'request.noversionuri'} =~ m{^/uploaded/$match_domain/$match_courseid/docs/}) {
             $menuitems.=(<<ENDREALRES);              $menuitems.=(<<ENDREALRES);
 s&8&1&eval.png&Evaluate&this[_1]&gopost('/adm/evaluate',currentURL,1)&Provide my evaluation of this resource  s&8&1&eval.png&$swtext{'eval'}&this[_1]&gopost('/adm/evaluate',currentURL,1)&Provide my evaluation of this resource
 ENDREALRES  ENDREALRES
                 }                  }
                 $menuitems.=(<<ENDREALRES);                  $menuitems.=(<<ENDREALRES);
 s&8&2&fdbk.png&Communicate&discuss[_1]&gopost('/adm/feedback',currentURL,1)&Provide feedback messages or contribute to the course discussion about this resource  s&8&2&fdbk.png&$swtext{'fdbk'}&discuss[_1]&gopost('/adm/feedback',currentURL,1)&Provide feedback messages or contribute to the course discussion about this resource
 ENDREALRES  ENDREALRES
     }      }
         }          }
  if ($env{'request.uri'} =~ /^\/res/) {   if ($env{'request.uri'} =~ /^\/res/) {
             unless ($got_prt) {              unless ($got_prt) {
         $menuitems .= (<<ENDMENUITEMS);          $menuitems .= (<<ENDMENUITEMS);
 s&8&3&prt.png&Print&printout[_1]&gopost('/adm/printout',currentURL)&Prepare a printable document  s&8&3&prt.png&$swtext{'prt'}&printout[_1]&gopost('/adm/printout',currentURL)&Prepare a printable document
 ENDMENUITEMS  ENDMENUITEMS
                 $got_prt = 1;                  $got_prt = 1;
             }              }
Line 789  ENDMENUITEMS Line 863  ENDMENUITEMS
                 if (($env{'user.adv'}) && (!$env{'request.enc'})) {                  if (($env{'user.adv'}) && (!$env{'request.enc'})) {
                     # wishlist is only available for users with access to resource-pool                      # wishlist is only available for users with access to resource-pool
                     $menuitems .= (<<ENDMENUITEMS);                      $menuitems .= (<<ENDMENUITEMS);
 s&9&1&wishlist-link.png&Stored Links&wishlistlink[_2]&set_wishlistlink()&Save a link for this resource in your personal Stored Links repository&&1  s&9&1&alnk.png&$swtext{'alnk'}&linkstor[_1]&set_wishlistlink()&Save a link for this resource in your personal Stored Links repository&&1
 ENDMENUITEMS  ENDMENUITEMS
                     $got_wishlist = 1;                      $got_wishlist = 1;
                 }                   }
             }              }
  }   }
           unless ($got_prt) {
               $menuitems .= (<<ENDMENUITEMS);
   c&8&3
   ENDMENUITEMS
           }
           unless ($got_wishlist) {
               $menuitems .= (<<ENDMENUITEMS);
   c&9&1
   ENDMENUITEMS
           }
         my $buttons='';          my $buttons='';
         foreach (split(/\n/,$menuitems)) {          foreach (split(/\n/,$menuitems)) {
     my ($command,@rest)=split(/\&/,$_);      my ($command,@rest)=split(/\&/,$_);
Line 813  ENDMENUITEMS Line 897  ENDMENUITEMS
                 }                  }
             }              }
         }          }
           if ($noremote) {
     my $addremote=0;      my $addremote=0;
     foreach (@inlineremote) { if ($_ ne '') { $addremote=1; last;} }      foreach (@inlineremote) { if ($_ ne '') { $addremote=1; last;} }
     if ($addremote) {              if ($addremote) {
   
         &Apache::lonhtmlcommon::clear_breadcrumb_tools();                  &Apache::lonhtmlcommon::clear_breadcrumb_tools();
   
             &Apache::lonhtmlcommon::add_breadcrumb_tool(                  &Apache::lonhtmlcommon::add_breadcrumb_tool(
                 'navigation', @inlineremote[21,23]);                      'navigation', @inlineremote[21,23]);
   
         my $countdown = &countdown_timer();                  my $countdown = &countdown_timer();
         if (&hidden_button_check() eq 'yes') {                  if (&hidden_button_check() eq 'yes') {
             if ($countdown) {                      if ($countdown) {
                 &Apache::lonhtmlcommon::add_breadcrumb_tool('tools',$countdown);                          &Apache::lonhtmlcommon::add_breadcrumb_tool('tools',$countdown);
                       }
                   } else {
                       my @tools = @inlineremote[93,91,81,82,83];
                       if ($countdown) {
                           unshift(@tools,$countdown);
                       }
                       &Apache::lonhtmlcommon::add_breadcrumb_tool(
                           'tools',@tools);
   
                       #publish button in construction space
                       if ($env{'request.state'} eq 'construct'){
                           &Apache::lonhtmlcommon::add_breadcrumb_tool(
                               'advtools', $inlineremote[63]);
                       } else {
                           &Apache::lonhtmlcommon::add_breadcrumb_tool(
                               'tools', $inlineremote[63]);
                       }
                       unless ($env{'request.noversionuri'}=~ m{^/adm/(navmaps|viewclasslist)(\?|$)}) {
                           &Apache::lonhtmlcommon::add_breadcrumb_tool(
                               'advtools', @inlineremote[61,71,72,73,74,92]);
                       }
                   }
             }              }
               return   &Apache::lonhtmlcommon::scripttag('', 'start')
                      . &Apache::lonhtmlcommon::breadcrumbs(undef,undef,0)
                      . &Apache::lonhtmlcommon::scripttag('', 'end');
   
         } else {          } else {
             my @tools = @inlineremote[93,91,81,82,83];              my $cstrcrumbs;
             if ($countdown) {              if ($const_space) {
                 unshift(@tools,$countdown);                  foreach (split(/\n/,$cstritems)) {
             }                      my ($command,@rest)=split(/\&/,$_);
             &Apache::lonhtmlcommon::add_breadcrumb_tool(                      my $idx=10*$rest[0]+$rest[1];
                 'tools',@tools);                      &switch('','',@rest);
                   }
                   &Apache::lonhtmlcommon::add_breadcrumb_tool('advtools',
                                                               @inlineremote[63,61,71,72]);
   
                   $cstrcrumbs = &Apache::lonhtmlcommon::scripttag('', 'start')
                                .&Apache::lonhtmlcommon::breadcrumbs(undef,undef,0)
                                .&Apache::lonhtmlcommon::scripttag('', 'end');
               }
               my $requri=&Apache::lonnet::clutter(&Apache::lonnet::fixversion((split(/\?/,$env{'request.noversionuri'}))[0]));
               $requri=&Apache::lonenc::check_encrypt(&unescape($requri));
               my $cursymb=&Apache::lonenc::check_encrypt($env{'request.symb'});
               my $navstatus=&get_nav_status();
               my $clearcstr;
   
             #publish button in construction space              if ($env{'user.adv'}) { $clearcstr='clearbut(6,1)'; }
             if ($env{'request.state'} eq 'construct'){              return <<ENDREGTHIS;
                 &Apache::lonhtmlcommon::add_breadcrumb_tool(  
                      'advtools', $inlineremote[63]);  <script type="text/javascript">
             } else {  // <![CDATA[
                 &Apache::lonhtmlcommon::add_breadcrumb_tool(  // BEGIN LON-CAPA Internal
                      'tools', $inlineremote[63]);  var swmenu=null;
             }  
                   function LONCAPAreg() {
             unless ($env{'request.noversionuri'}=~ m{^/adm/(navmaps|viewclasslist)(\?|$)}) {            swmenu=$reopen;
                 &Apache::lonhtmlcommon::add_breadcrumb_tool(            swmenu.clearTimeout(swmenu.menucltim);
                     'advtools', @inlineremote[61,71,72,73,74,92]);            $timesync
             }            $newmail
             $buttons
             swmenu.currentURL="$requri";
             swmenu.reloadURL=swmenu.currentURL+window.location.search;
             swmenu.currentSymb="$cursymb";
             swmenu.reloadSymb="$cursymb";
             swmenu.currentStale=0;
             $navstatus
             $hwkadd
             $editbutton
       }
   
       function LONCAPAstale() {
             swmenu=$reopen
             swmenu.currentStale=1;
             if (swmenu.reloadURL!='' && swmenu.reloadURL!= null) {
                swmenu.switchbutton
                (3,1,'reload.gif','return','location','go(reloadURL)','Return to the last known location in the course sequence');
             }
             swmenu.clearbut(7,2);
             swmenu.clearbut(7,3);
             swmenu.menucltim=swmenu.setTimeout(
    'clearbut(2,1);clearbut(2,3);clearbut(8,1);clearbut(8,2);clearbut(8,3);'+
    'clearbut(9,1);clearbut(9,3);clearbut(6,3);$clearcstr',
                             2000);
         }
   
   // END LON-CAPA Internal
   // ]]>
   </script>
   
   $cstrcrumbs
   ENDREGTHIS
         }          }
       } else {
          unless ($noremote) {
   # Not registered, graphical
              return (<<ENDDONOTREGTHIS);
   
   <script type="text/javascript">
   // <![CDATA[
   // BEGIN LON-CAPA Internal
   var swmenu=null;
   
       function LONCAPAreg() {
             swmenu=$reopen
             $timesync
             swmenu.currentStale=1;
             swmenu.clearbut(2,1);
             swmenu.clearbut(2,3);
             swmenu.clearbut(8,1);
             swmenu.clearbut(8,2);
             swmenu.clearbut(8,3);
             swmenu.clearbut(9,1);
             if (swmenu.currentURL) {
                swmenu.switchbutton
                 (3,1,'reload.gif','return','location','go(currentURL)');
             } else {
                 swmenu.clearbut(3,1);
             }
     }      }
   
     return   &Apache::lonhtmlcommon::scripttag('', 'start')      function LONCAPAstale() {
            . &Apache::lonhtmlcommon::breadcrumbs(undef,undef,0)      }
            . &Apache::lonhtmlcommon::scripttag('', 'end');  
   // END LON-CAPA Internal
   // ]]>
   </script>
   ENDDONOTREGTHIS
   
           }
           return '';
       }
   }
   
   sub get_inline_text {
       my %text = (
                    pgrd     => 'Content Grades',
                    subm     => 'Content Submissions',
                    pparm    => 'Content Settings',
                    docs     => 'Folder/Page Content',
                    pcstr    => 'Edit',
                    prt      => 'Print',
                    alnk     => 'Stored Links',
                    anot     => 'Notes',
                    catalog  => 'Info',
                    eval     => 'Evaluate',
                    fdbk     => 'Feedback',
       );
       return %text;
   }
   
   sub get_rc_text {
       my %text = (
                      pgrd    => 'problem[_1]',
                      subm    => 'view sub-[_1]',
                      pparm   => 'problem[_2]',
                      pcstr   => 'edit[_1]',
                      prt     => 'prepare[_1]',
                      back    => 'backward[_1]',
                      forw    => 'forward[_1]',
                      alnk    => 'add to[_1]',
                      anot    => 'anno-[_1]',
                      catalog => 'catalog[_2]',
                      eval    => 'evaluate[_1]',
                      fdbk    => 'feedback[_1]',
       );
       return %text;
 }  }
   
 sub is_course_upload {  sub is_course_upload {
Line 893  sub edit_course_upload { Line 1117  sub edit_course_upload {
     return $cfile;      return $cfile;
 }  }
   
   sub loadevents() {
       if ($env{'request.state'} eq 'construct' ||
           $env{'request.noversionuri'} =~ m{^/res/adm/pages/}) { return ''; }
       return 'LONCAPAreg();';
   }
   
   sub unloadevents() {
       if ($env{'request.state'} eq 'construct' ||
           $env{'request.noversionuri'} =~ m{^/res/adm/pages/}) { return ''; }
       return 'LONCAPAstale();';
   }
   
 sub startupremote {  sub startupremote {
     my ($lowerurl)=@_;      my ($lowerurl)=@_;
     if ($env{'environment.remote'} eq 'off') {      unless ($env{'environment.remote'} eq 'on') {
      return ('<meta HTTP-EQUIV="Refresh" CONTENT="0.5; url='.$lowerurl.'" />');          return ('<meta HTTP-EQUIV="Refresh" CONTENT="0.5; url='.$lowerurl.'" />');
     }      }
 #  #
 # The Remote actually gets launched!  # The Remote actually gets launched!
Line 974  ENDSETFLAGS Line 1210  ENDSETFLAGS
 }  }
   
 sub maincall() {  sub maincall() {
     if ($env{'environment.remote'} eq 'off') { return ''; }      unless ($env{'environment.remote'} eq 'on') { return ''; }
     return(<<ENDMAINCALL);      return(<<ENDMAINCALL);
 <script type="text/javascript">  <script type="text/javascript">
 // <![CDATA[  // <![CDATA[
Line 987  ENDMAINCALL Line 1223  ENDMAINCALL
 sub load_remote_msg {  sub load_remote_msg {
     my ($lowerurl)=@_;      my ($lowerurl)=@_;
   
     if ($env{'environment.remote'} eq 'off') { return ''; }      unless ($env{'environment.remote'} eq 'on') { return ''; }
   
     my $esclowerurl=&escape($lowerurl);      my $esclowerurl=&escape($lowerurl);
     my $link=&mt('[_1]Continue[_2] on in Inline Menu mode'      my $link=&mt('[_1]Continue[_2] on in Inline Menu mode'
Line 1011  sub get_menu_name { Line 1247  sub get_menu_name {
   
   
 sub reopenmenu {  sub reopenmenu {
    if ($env{'environment.remote'} eq 'off') { return ''; }     unless ($env{'environment.remote'} eq 'on') { return ''; }
    my $menuname = &get_menu_name();     my $menuname = &get_menu_name();
    my $nothing = &Apache::lonhtmlcommon::javascript_nothing();     my $nothing = &Apache::lonhtmlcommon::javascript_nothing();
    return('window.open('.$nothing.',"'.$menuname.'","",false);');     return('window.open('.$nothing.',"'.$menuname.'","",false);');
Line 1020  sub reopenmenu { Line 1256  sub reopenmenu {
   
 sub open {  sub open {
     my $returnval='';      my $returnval='';
     if ($env{'environment.remote'} eq 'off') {      unless ($env{'environment.remote'} eq 'on') {
         return          return
         '<script type="text/javascript">'."\n"          '<script type="text/javascript">'."\n"
        .'// <![CDATA['."\n"         .'// <![CDATA['."\n"
Line 1055  ENDOPEN Line 1291  ENDOPEN
   
 sub clear {  sub clear {
     my ($row,$col)=@_;      my ($row,$col)=@_;
     $inlineremote[10*$row+$col]='';      if ($env{'environment.remote'} eq 'on') {
     return '';          if (($row<1) || ($row>13)) { return ''; }
          return "\n".qq(window.status+='.';swmenu.clearbut($row,$col););
       } else {
           $inlineremote[10*$row+$col]='';
           return '';
       }
 }  }
   
 # ============================================ Switch a button or create a link  # ============================================ Switch a button or create a link
Line 1073  sub switch { Line 1314  sub switch {
     my $idx=10*$row+$col;      my $idx=10*$row+$col;
     $category_members{$cat}.=':'.$idx;      $category_members{$cat}.=':'.$idx;
   
       if ($env{'environment.remote'} eq 'on') {
           if (($row<1) || ($row>13)) { return ''; }
           if ($env{'request.state'} eq 'construct') {
               my $text = $top.' '.$bot;
               $text=~s/\s*\-\s*//gs;
               my $pic = '<img alt="'.$text.'" src="'.
                         &Apache::loncommon::lonhttpdurl('/res/adm/pages/'.$img).
                         '" align="'.($nobreak==3?'right':'left').'" class="LC_icon" />';
              $inlineremote[$idx] =
                  '<a title="'.$desc.'" class="LC_menubuttons_link" href="javascript:'.$act.';">'.
                  $pic.'<span class="LC_menubuttons_inline_text">'.$top.'&nbsp;</span></a>';
           }
   # Remote
           $img=~s/\.png$/\.gif/;
           return "\n".
    qq(window.status+='.';swmenu.switchbutton($row,$col,"$img","$top","$bot","$act","$desc"););
       }
   
 # Inline Menu  # Inline Menu
     if ($nobreak==2) { return ''; }      if ($nobreak==2) { return ''; }
     my $text=$top.' '.$bot;      my $text=$top.' '.$bot;
Line 1134  sub secondlevel { Line 1393  sub secondlevel {
     return $output;      return $output;
 }  }
   
   sub openmenu {
       my $menuname = &get_menu_name();
       unless ($env{'environment.remote'} eq 'on') { return ''; }
       my $nothing = &Apache::lonhtmlcommon::javascript_nothing();
       return "window.open(".$nothing.",'".$menuname."');";
   }
   
 sub inlinemenu {  sub inlinemenu {
     undef(@inlineremote);      undef(@inlineremote);
     undef(%category_members);      undef(%category_members);
Line 1176  sub rawconfig { Line 1442  sub rawconfig {
 #  #
     my $textualoverride=shift;      my $textualoverride=shift;
     my $output='';      my $output='';
     return '' unless $textualoverride;      if ($env{'environment.remote'} eq 'on') {
          $output.=
    "window.status='Opening Remote Control';var swmenu=".&openmenu().
   "\nwindow.status='Configuring Remote Control ';";
       } else {
           unless ($textualoverride) { return ''; }
       }
     my $uname=$env{'user.name'};      my $uname=$env{'user.name'};
     my $udom=$env{'user.domain'};      my $udom=$env{'user.domain'};
     my $adv=$env{'user.adv'};      my $adv=$env{'user.adv'};
Line 1351  sub rawconfig { Line 1623  sub rawconfig {
           $uname,$udom,$rol,$crs,$pub,$con,$row,$col,$prt,$img,$top,$bot,$act,$desc,$cat);            $uname,$udom,$rol,$crs,$pub,$con,$row,$col,$prt,$img,$top,$bot,$act,$desc,$cat);
         }          }
     }      }
       if ($env{'environment.remote'} eq 'on') {
           $output.="\nwindow.status='Synchronizing Time';swmenu.syncclock(1000*".time.");\nwindow.status='Remote Control Configured.';";
           if (&Apache::lonmsg::newmail()) {
               $output.='swmenu.setstatus("you have","messages");';
           }
       }
     return $output;      return $output;
 }  }
   
Line 1379  sub check_for_rcrs { Line 1657  sub check_for_rcrs {
 # ======================================================================= Close  # ======================================================================= Close
   
 sub close {  sub close {
     if ($env{'environment.remote'} eq 'off') { return ''; }      unless ($env{'environment.remote'} eq 'on') { return ''; }
     my $menuname = &get_menu_name();      my $menuname = &get_menu_name();
     return(<<ENDCLOSE);      return(<<ENDCLOSE);
 <script type="text/javascript">  <script type="text/javascript">
Line 1664  sub constspaceform { Line 1942  sub constspaceform {
 ENDCONSTSPACEFORM  ENDCONSTSPACEFORM
 }  }
   
   sub get_nav_status {
       my $navstatus="swmenu.w_loncapanav_flag=";
       if ($env{'environment.remotenavmap'} eq 'on') {
           $navstatus.="1";
       } else {
           $navstatus.="-1";
       }
       return $navstatus;
   }
   
 sub hidden_button_check {  sub hidden_button_check {
     if ( $env{'request.course.id'} eq ''      if ( $env{'request.course.id'} eq ''
          || $env{'request.role.adv'} ) {           || $env{'request.role.adv'} ) {
Line 1687  sub roles_selector { Line 1975  sub roles_selector {
     } else {      } else {
         $ccrole = 'cc';          $ccrole = 'cc';
     }      }
     my $priv;      my ($priv,$gotsymb,$destsymb);
     my $destinationurl = $ENV{'REQUEST_URI'};      my $destinationurl = $ENV{'REQUEST_URI'};
       if ($destinationurl =~ /\?symb=/) {
           $gotsymb = 1;
       } elsif ($destinationurl =~ m{^/enc/}) {
           my $plainurl = &Apache::lonenc::unencrypted($destinationurl);
           if ($plainurl =~ /\?symb=/) {
               $gotsymb = 1;
           }
       }
       unless ($gotsymb) {
           $destsymb = &Apache::lonnet::symbread();
           if ($destsymb ne '') {
               $destsymb = &Apache::lonenc::check_encrypt($destsymb);
           }
       }
     my $reqprivs = &required_privs();      my $reqprivs = &required_privs();
     if (ref($reqprivs) eq 'HASH') {      if (ref($reqprivs) eq 'HASH') {
         my $destination = $destinationurl;          my $destination = $destinationurl;
Line 1776  sub roles_selector { Line 2078  sub roles_selector {
                 $role_selector .= "\n".'<option value="'.$role.'">'.&Apache::lonnet::plaintext($role).'</option>';                   $role_selector .= "\n".'<option value="'.$role.'">'.&Apache::lonnet::plaintext($role).'</option>'; 
             }              }
         }          }
         $role_selector .= '</select>'."\n".          $role_selector .= '</select>'."\n";
           if ($destsymb ne '') {
               $role_selector .= '<input type="hidden" name="destsymb" value="'.
                                 &HTML::Entities::encode($destsymb).'" />'."\n";
           }
           $role_selector .=
                '<input type="hidden" name="destinationurl" value="'.                 '<input type="hidden" name="destinationurl" value="'.
                &HTML::Entities::encode($destinationurl).'" />'."\n".                 &HTML::Entities::encode($destinationurl).'" />'."\n".
                '<input type="hidden" name="gotorole" value="1" />'."\n".                 '<input type="hidden" name="gotorole" value="1" />'."\n".
Line 2032  sub required_privs { Line 2339  sub required_privs {
   
 sub countdown_timer {  sub countdown_timer {
     if (($env{'request.course.id'}) && ($env{'request.symb'} ne '') &&      if (($env{'request.course.id'}) && ($env{'request.symb'} ne '') &&
         ($env{'request.filename'}=~/$LONCAPA::assess_re/) &&          ($env{'request.filename'}=~/$LONCAPA::assess_re/)) {
         ($Apache::inputtags::status[-1] eq 'CAN_ANSWER')) {          my ($type,$hastimeleft,$slothastime);
           my $now = time;
           if ($env{'request.filename'} =~ /\.task$/) {
               $type = 'Task';
           } else {
               $type = 'problem';
           }
           my ($status,$accessmsg,$slot_name,$slot) =
               &Apache::lonhomework::check_slot_access('0',$type);
           if ($slot_name ne '') {
               if (ref($slot) eq 'HASH') {
                   if (($slot->{'starttime'} < $now) &&
                       ($slot->{'endtime'} > $now)) {
                       $slothastime = 1;
                   }
               }
           }
           if ($status ne 'CAN_ANSWER') {
               return;
           }
         my $duedate = &Apache::lonnet::EXT("resource.0.duedate");          my $duedate = &Apache::lonnet::EXT("resource.0.duedate");
         my @interval=&Apache::lonnet::EXT("resource.0.interval");          my @interval=&Apache::lonnet::EXT("resource.0.interval");
         my $hastimeleft;          my $hastimeleft;
Line 2046  sub countdown_timer { Line 2372  sub countdown_timer {
             }              }
         }          }
         if (($duedate && $duedate > time) ||          if (($duedate && $duedate > time) ||
             (!$duedate && $hastimeleft)) {              (!$duedate && $hastimeleft) ||
               ($slot_name ne '' && $slothastime)) {
             my ($collapse,$expand,$alttxt,$title,$currdisp);              my ($collapse,$expand,$alttxt,$title,$currdisp);
             if (@interval > 1 && $hastimeleft) {              if ((@interval > 1 && $hastimeleft) ||
                   ($type eq 'Task' && $slothastime)) {
                 $currdisp = 'inline';                  $currdisp = 'inline';
                 $collapse = '&#9658;&nbsp;';                  $collapse = '&#9658;&nbsp;';
             } else {              } else {

Removed from v.1.369.2.16  
changed lines
  Added in v.1.369.2.24


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