version 1.369.2.8, 2012/05/25 23:47:16
|
version 1.369.2.22, 2012/08/27 15:53:40
|
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 247 sub primary_menu {
|
Line 267 sub primary_menu {
|
my @primsub; |
my @primsub; |
if (ref($primary_submenu{$title}) eq 'ARRAY') { |
if (ref($primary_submenu{$title}) eq 'ARRAY') { |
foreach my $item (@{$primary_submenu{$title}}) { |
foreach my $item (@{$primary_submenu{$title}}) { |
next if (($item->[2] eq 'wishlist') && |
next if (($item->[2] eq 'wishlist') && (!$env{'user.adv'})); |
((!&Apache::lonnet::allowed('bre',"/res/$env{'user.domain'}/")) && |
|
(!&Apache::lonnet::allowed('bro',"/res/$env{'user.domain'}/")))); |
|
next if (($item->[2] eq 'reqcrs') && (!&check_for_rcrs())); |
next if (($item->[2] eq 'reqcrs') && (!&check_for_rcrs())); |
next if ((($item->[2] eq 'portfolio') || |
next if ((($item->[2] eq 'portfolio') || |
($item->[2] eq 'blog')) && |
($item->[2] eq 'blog')) && |
Line 425 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 { |
my ($link,$target,$title,$submenu) = @_; |
my ($link,$target,$title,$submenu) = @_; |
return unless (ref($submenu) eq 'ARRAY'); |
return unless (ref($submenu) eq 'ARRAY'); |
|
my $disptarget; |
|
if ($target ne '') { |
|
$disptarget = ' target="'.$target.'"'; |
|
} |
my $menu = '<li class="LC_hoverable">'. |
my $menu = '<li class="LC_hoverable">'. |
'<a href="'.$link.'" target="'.$target.'">'. |
'<a href="'.$link.'"'.$disptarget.'>'. |
'<span class="LC_nobreak">'.&mt($title). |
'<span class="LC_nobreak">'.&mt($title). |
'<span class="LC_fontsize_small" style="font-weight:normal;">'. |
'<span class="LC_fontsize_small" style="font-weight:normal;">'. |
' ▼</span></span></a>'. |
' ▼</span></span></a>'. |
Line 449 sub create_submenu {
|
Line 473 sub create_submenu {
|
} |
} |
$menu .= '<li style="margin:0;padding:0;'. |
$menu .= '<li style="margin:0;padding:0;'. |
$borderbot.'"><a href="'.$item->[0].'">'. |
$borderbot.'"><a href="'.$item->[0].'">'. |
'" style="padding:0;">'. |
|
&mt($item->[1]).'</a></li>'; |
&mt($item->[1]).'</a></li>'; |
} |
} |
} |
} |
Line 457 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 466 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 506 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 518 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 584 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 651 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 667 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 679 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 690 sub innerregister {
|
Line 760 sub innerregister {
|
### |
### |
### |
### |
# Prepare the rest of the buttons |
# Prepare the rest of the buttons |
my $menuitems; |
my ($menuitems,$got_prt,$got_wishlist,$cstritems); |
if ($const_space) { |
if ($const_space) { |
# |
# |
# We are in construction space |
# We are in construction space |
Line 716 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 726 ENDMENUITEMS
|
Line 800 ENDMENUITEMS
|
} elsif ( defined($env{'request.course.id'}) && |
} elsif ( defined($env{'request.course.id'}) && |
$env{'request.symb'} ne '' ) { |
$env{'request.symb'} ne '' ) { |
# |
# |
# We are in a course and looking at a registred 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 |
if (&Apache::lonnet::allowed('bre', $env{'request.course.id'}) eq 'F' && $env{'request.uri'} =~ /^\/res/) { |
$got_prt = 1; |
|
if (($env{'user.adv'}) && ($env{'request.uri'} =~ /^\/res/) |
|
&& (!$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 |
# 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; |
} |
} |
|
|
my $currentURL = &Apache::loncommon::get_symb(); |
my $currentURL = &Apache::loncommon::get_symb(); |
Line 755 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/})) { |
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 |
|
} |
|
unless ($env{'request.noversionuri'} =~ m{^/uploaded/$match_domain/$match_courseid/docs/}) { |
|
$menuitems.=(<<ENDREALRES); |
|
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&1&eval.png&Evaluate&this[_1]&gopost('/adm/evaluate',currentURL,1)&Provide my evaluation of 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 |
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 |
|
ENDREALRES |
ENDREALRES |
} |
} |
} |
} |
if ($env{'request.uri'} =~ /^\/res/) { |
if ($env{'request.uri'} =~ /^\/res/) { |
$menuitems .= (<<ENDMENUITEMS); |
unless ($got_prt) { |
s&8&3&prt.png&Print&printout[_1]&gopost('/adm/printout',currentURL)&Prepare a printable document |
$menuitems .= (<<ENDMENUITEMS); |
|
s&8&3&prt.png&$swtext{'prt'}&printout[_1]&gopost('/adm/printout',currentURL)&Prepare a printable document |
ENDMENUITEMS |
ENDMENUITEMS |
if (&Apache::lonnet::allowed('bre', $env{'request.course.id'}) eq 'F') { |
$got_prt = 1; |
# wishlist is only available for users with access to resource-pool |
} |
$menuitems .= (<<ENDMENUITEMS); |
unless ($got_wishlist) { |
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 |
if (($env{'user.adv'}) && (!$env{'request.enc'})) { |
|
# wishlist is only available for users with access to resource-pool |
|
$menuitems .= (<<ENDMENUITEMS); |
|
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; |
|
} |
} |
} |
} |
} |
|
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 799 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]); |
|
|
if(hidden_button_check() ne 'yes') { |
my $countdown = &countdown_timer(); |
&Apache::lonhtmlcommon::add_breadcrumb_tool( |
if (&hidden_button_check() eq 'yes') { |
'tools', @inlineremote[93,91,81,82,83]); |
if ($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 |
#publish button in construction space |
if ($env{'request.state'} eq 'construct'){ |
if ($env{'request.state'} eq 'construct'){ |
&Apache::lonhtmlcommon::add_breadcrumb_tool( |
&Apache::lonhtmlcommon::add_breadcrumb_tool( |
'advtools', $inlineremote[63]); |
'advtools', $inlineremote[63]); |
} else { |
} else { |
&Apache::lonhtmlcommon::add_breadcrumb_tool( |
&Apache::lonhtmlcommon::add_breadcrumb_tool( |
'tools', $inlineremote[63]); |
'tools', $inlineremote[63]); |
} |
} |
|
unless ($env{'request.noversionuri'}=~ m{^/adm/(navmaps|viewclasslist)(\?|$)}) { |
unless ($env{'request.noversionuri'}=~ m{^/adm/(navmaps|viewclasslist)(\?|$)}) { |
&Apache::lonhtmlcommon::add_breadcrumb_tool( |
&Apache::lonhtmlcommon::add_breadcrumb_tool( |
'advtools', @inlineremote[61,71,72,73,74,92]); |
'advtools', @inlineremote[61,71,72,73,74,92]); |
} |
|
} |
} |
} |
|
return &Apache::lonhtmlcommon::scripttag('', 'start') |
|
. &Apache::lonhtmlcommon::breadcrumbs(undef,undef,0) |
|
. &Apache::lonhtmlcommon::scripttag('', 'end'); |
|
|
|
} else { |
|
my $cstrcrumbs; |
|
if ($const_space) { |
|
foreach (split(/\n/,$cstritems)) { |
|
my ($command,@rest)=split(/\&/,$_); |
|
my $idx=10*$rest[0]+$rest[1]; |
|
&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; |
|
|
|
if ($env{'user.adv'}) { $clearcstr='clearbut(6,1)'; } |
|
return <<ENDREGTHIS; |
|
|
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
// BEGIN LON-CAPA Internal |
|
var swmenu=null; |
|
|
|
function LONCAPAreg() { |
|
swmenu=$reopen; |
|
swmenu.clearTimeout(swmenu.menucltim); |
|
$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); |
|
} |
|
} |
|
|
|
function LONCAPAstale() { |
|
} |
|
|
|
// END LON-CAPA Internal |
|
// ]]> |
|
</script> |
|
ENDDONOTREGTHIS |
|
|
} |
} |
|
return ''; |
} |
} |
|
} |
|
|
return &Apache::lonhtmlcommon::scripttag('', 'start') |
sub get_inline_text { |
. &Apache::lonhtmlcommon::breadcrumbs(undef,undef,0) |
my %text = ( |
. &Apache::lonhtmlcommon::scripttag('', 'end'); |
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 870 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 951 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 964 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 988 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 997 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 1032 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 1050 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.' </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 1080 sub switch {
|
Line 1362 sub switch {
|
} |
} |
} else { |
} else { |
# Inline Menu |
# Inline Menu |
$inlineremote[$idx]= |
my @tools = (93,91,81,82,83); |
|
unless ($env{'request.state'} eq 'construct') { |
|
push(@tools,63); |
|
} |
|
if (($env{'environment.icons'} eq 'iconsonly') && |
|
(grep(/^$idx$/,@tools))) { |
|
$inlineremote[$idx] = |
|
'<a title="'.$desc.'" class="LC_menubuttons_link" href="javascript:'.$act.';">'.$pic.'</a>'; |
|
} else { |
|
$inlineremote[$idx] = |
'<a title="'.$desc.'" class="LC_menubuttons_link" href="javascript:'.$act.';">'.$pic. |
'<a title="'.$desc.'" class="LC_menubuttons_link" href="javascript:'.$act.';">'.$pic. |
'<span class="LC_menubuttons_inline_text">'.$top.' </span></a>'; |
'<span class="LC_menubuttons_inline_text">'.$top.' </span></a>'; |
|
} |
} |
} |
return ''; |
return ''; |
} |
} |
Line 1101 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 1143 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 1318 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 1346 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 1390 END
|
Line 1701 END
|
|
|
} |
} |
|
|
|
sub countdown_toggle_js { |
|
return <<"END"; |
|
|
|
function toggleCountdown() { |
|
var countdownid = document.getElementById('duedatecountdown'); |
|
var currstyle = countdownid.style.display; |
|
if (currstyle == 'inline') { |
|
countdownid.style.display = 'none'; |
|
document.getElementById('ddcountcollapse').innerHTML=''; |
|
document.getElementById('ddcountexpand').innerHTML='◄ '; |
|
} else { |
|
countdownid.style.display = 'inline'; |
|
document.getElementById('ddcountcollapse').innerHTML='► '; |
|
document.getElementById('ddcountexpand').innerHTML=''; |
|
} |
|
return; |
|
} |
|
|
|
END |
|
} |
|
|
sub utilityfunctions { |
sub utilityfunctions { |
my $currenturl=&Apache::lonnet::clutter(&Apache::lonnet::fixversion((split(/\?/,$env{'request.noversionuri'}))[0])); |
my $currenturl=&Apache::lonnet::clutter(&Apache::lonnet::fixversion((split(/\?/,$env{'request.noversionuri'}))[0])); |
if ($currenturl =~ m{^/adm/wrapper/ext/} |
if ($currenturl =~ m{^/adm/wrapper/ext/} |
Line 1424 sub utilityfunctions {
|
Line 1756 sub utilityfunctions {
|
my $esc_url=&escape($currenturl); |
my $esc_url=&escape($currenturl); |
my $esc_symb=&escape($currentsymb); |
my $esc_symb=&escape($currentsymb); |
|
|
|
my $countdown = &countdown_toggle_js(); |
|
|
return (<<ENDUTILITY) |
return (<<ENDUTILITY) |
|
|
var currentURL=unescape("$esc_url"); |
var currentURL=unescape("$esc_url"); |
Line 1574 function open_StoredLinks_Import(rat) {
|
Line 1908 function open_StoredLinks_Import(rat) {
|
}); |
}); |
}(jQuery)); |
}(jQuery)); |
|
|
|
$countdown |
|
|
ENDUTILITY |
ENDUTILITY |
} |
} |
|
|
Line 1606 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 1972 sub required_privs {
|
Line 2318 sub required_privs {
|
return $privs; |
return $privs; |
} |
} |
|
|
|
sub countdown_timer { |
|
if (($env{'request.course.id'}) && ($env{'request.symb'} ne '') && |
|
($env{'request.filename'}=~/$LONCAPA::assess_re/) && |
|
($Apache::inputtags::status[-1] eq 'CAN_ANSWER')) { |
|
my $duedate = &Apache::lonnet::EXT("resource.0.duedate"); |
|
my @interval=&Apache::lonnet::EXT("resource.0.interval"); |
|
my $hastimeleft; |
|
if (@interval > 1) { |
|
my $first_access=&Apache::lonnet::get_first_access($interval[1]); |
|
if ($first_access > 0) { |
|
if ($first_access+$interval[0] > time) { |
|
$hastimeleft = 1; |
|
} |
|
} |
|
} |
|
if (($duedate && $duedate > time) || |
|
(!$duedate && $hastimeleft)) { |
|
my ($collapse,$expand,$alttxt,$title,$currdisp); |
|
if (@interval > 1 && $hastimeleft) { |
|
$currdisp = 'inline'; |
|
$collapse = '► '; |
|
} else { |
|
$currdisp = 'none'; |
|
$expand = '◄ '; |
|
} |
|
unless ($env{'environment.icons'} eq 'iconsonly') { |
|
$alttxt = &mt('Timer'); |
|
$title = $alttxt.' '; |
|
} |
|
my $desc = &mt('Countdown to due date/time'); |
|
return <<END; |
|
|
|
<a href="javascript:toggleCountdown();" class="LC_menubuttons_link"> |
|
<span id="ddcountcollapse" class="LC_menubuttons_inline_text"> |
|
$collapse |
|
</span></a> |
|
<span id="duedatecountdown" class="LC_menubuttons_inline_text" style="display: $currdisp;"></span> |
|
<a href="javascript:toggleCountdown();" class="LC_menubuttons_link"> |
|
<span id="ddcountexpand" class="LC_menubuttons_inline_text" >$expand</span> |
|
<img src="/res/adm/pages/timer.png" title="$desc" class="LC_icon" alt="$alttxt" /><span class="LC_menubuttons_inline_text">$title</span></a> |
|
END |
|
} |
|
} |
|
return; |
|
} |
|
|
# ================================================================ Main Program |
# ================================================================ Main Program |
|
|
BEGIN { |
BEGIN { |