version 1.369.2.10, 2012/05/28 14:45:20
|
version 1.386, 2012/09/04 20:47:56
|
Line 117 Same as primary_menu() but operates on @
|
Line 117 Same as primary_menu() but operates on @
|
|
|
=item create_submenu() |
=item create_submenu() |
|
|
Creates XHTML for unordered list of sub-menu items which belong to a |
Creates XHTML for unordered list of sub-menu items which belong to a |
particular top-level menu item. Uses hover pseudo class in css to display |
particular top-level menu item. Uses hover pseudo class in css to display |
dropdown list when mouse hovers over top-level item. Support for IE6 |
dropdown list when mouse hovers over top-level item. Support for IE6 |
(no hover psuedo class) via LC_hoverable class for <li> tag for top- |
(no hover psuedo class) via LC_hoverable class for <li> tag for top- |
level item, which employs jQuery to handle behavior on mouseover. |
level item, which employs jQuery to handle behavior on mouseover. |
|
|
Line 182 use HTML::Entities();
|
Line 182 use HTML::Entities();
|
use Apache::lonwishlist(); |
use Apache::lonwishlist(); |
|
|
use vars qw(@desklines %category_names %category_members %category_positions |
use vars qw(@desklines %category_names %category_members %category_positions |
$readdesk @primary_menu %primary_submenu @secondary_menu %secondary_submenu); |
$readdesk @primary_menu %primary_submenu @secondary_menu); |
|
|
my @inlineremote; |
my @inlineremote; |
|
|
Line 247 sub primary_menu {
|
Line 247 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')) && |
(!&Apache::lonnet::usertools_access('','',$item->[2], |
(!&Apache::lonnet::usertools_access('','',$item->[2], |
undef,'tools'))); |
undef,'tools'))); |
push(@primsub,$item); |
push(@primsub,$item); |
Line 320 sub secondary_menu {
|
Line 318 sub secondary_menu {
|
: ''); |
: ''); |
my $canedit = &Apache::lonnet::allowed('mdc', $env{'request.course.id'}); |
my $canedit = &Apache::lonnet::allowed('mdc', $env{'request.course.id'}); |
my $canviewroster = $env{'course.'.$env{'request.course.id'}.'.student_classlist_view'}; |
my $canviewroster = $env{'course.'.$env{'request.course.id'}.'.student_classlist_view'}; |
my $canviewgrps = &Apache::lonnet::allowed('vcg', $crs_sec); |
my $canviewgrps = &Apache::lonnet::allowed('vcg', $crs_sec); |
my $canmodifyuser = &Apache::lonnet::allowed('cst', $crs_sec); |
my $canmodifyuser = &Apache::lonnet::allowed('cst', $crs_sec); |
my $canviewwnew = &Apache::lonnet::allowed('whn', $crs_sec); |
my $canviewwnew = &Apache::lonnet::allowed('whn', $crs_sec); |
my $canmodpara = &Apache::lonnet::allowed('opa', $crs_sec); |
my $canmodpara = &Apache::lonnet::allowed('opa', $crs_sec); |
my $canvgr = &Apache::lonnet::allowed('vgr', $crs_sec); |
my $canvgr = &Apache::lonnet::allowed('vgr', $crs_sec); |
my $canmgr = &Apache::lonnet::allowed('mgr', $crs_sec); |
my $canmgr = &Apache::lonnet::allowed('mgr', $crs_sec); |
my $author = &getauthor(); |
my $author = &getauthor(); |
|
|
my %groups = &Apache::lonnet::get_active_groups( |
my %groups = &Apache::lonnet::get_active_groups( |
Line 341 sub secondary_menu {
|
Line 339 sub secondary_menu {
|
&& !$env{'request.course.id'}; |
&& !$env{'request.course.id'}; |
next if $$menuitem[4] =~ /^mdc/ |
next if $$menuitem[4] =~ /^mdc/ |
&& !$canedit; |
&& !$canedit; |
next if $$menuitem[4] eq 'mdcCourse' |
|
&& ($crstype eq 'Community'); |
|
next if $$menuitem[4] eq 'mdcCommunity' |
|
&& ($crstype eq 'Course'); |
|
next if $$menuitem[4] eq 'nvgr' |
next if $$menuitem[4] eq 'nvgr' |
&& $canvgr; |
&& $canvgr; |
next if $$menuitem[4] eq 'vgr' |
next if $$menuitem[4] eq 'vgr' |
Line 361 sub secondary_menu {
|
Line 355 sub secondary_menu {
|
&& !$canviewwnew; |
&& !$canviewwnew; |
next if $$menuitem[4] eq 'opa' |
next if $$menuitem[4] eq 'opa' |
&& !$canmodpara; |
&& !$canmodpara; |
next if $$menuitem[4] eq 'nvcg' |
next if $$menuitem[4] =~ /showgroups$/ |
&& ($canviewgrps || !%groups); |
&& !$canviewgrps |
|
&& !%groups; |
next if $$menuitem[4] eq 'author' |
next if $$menuitem[4] eq 'author' |
&& !$author; |
&& !$author; |
|
|
my $title = $menuitem->[3]; |
if ($$menuitem[3] eq 'Roles' && $env{'request.course.id'}) { |
if (defined($secondary_submenu{$title})) { |
|
my ($link,$target); |
|
if ($menuitem->[0] ne '') { |
|
$link = $menuitem->[0]; |
|
$target = '_top'; |
|
} else { |
|
$link = '#'; |
|
} |
|
my @scndsub; |
|
if (ref($secondary_submenu{$title}) eq 'ARRAY') { |
|
foreach my $item (@{$secondary_submenu{$title}}) { |
|
if (ref($item) eq 'ARRAY') { |
|
next if ($item->[2] eq 'vgr' && !$canvgr); |
|
next if ($item->[2] eq 'opa' && !$canmodpara); |
|
next if ($item->[2] eq 'cst' && !$canmodifyuser); |
|
next if ($item->[2] eq 'mgr' && !$canmgr); |
|
next if ($item->[2] eq 'vcg' && !$canviewgrps); |
|
push(@scndsub,$item); |
|
} |
|
} |
|
if (@scndsub > 0) { |
|
$menu .= &create_submenu($link,$target,$title,\@scndsub); |
|
} elsif ($link) { |
|
$menu .= '<li><a href="'.$link.'" target="'.$target.'">'.&mt($title).'</a></li>'; |
|
} |
|
} |
|
} elsif ($$menuitem[3] eq 'Roles' && $env{'request.course.id'}) { |
|
# special treatment for role selector |
# special treatment for role selector |
my $roles_selector = &roles_selector( |
my $roles_selector = &roles_selector( |
$env{'course.' . $env{'request.course.id'} . '.domain'}, |
$env{'course.' . $env{'request.course.id'} . '.domain'}, |
$env{'course.' . $env{'request.course.id'} . '.num'} ); |
$env{'course.' . $env{'request.course.id'} . '.num'} ); |
|
|
$menu .= $roles_selector ? "<li style=\"padding: 0 0.8em;\">$roles_selector</li>" |
$menu .= $roles_selector ? "<li>$roles_selector</li>" |
: ''; |
: ''; |
} else { |
} else { |
$menu .= &prep_menuitem(\@$menuitem); |
$menu .= &prep_menuitem(\@$menuitem); |
Line 425 sub secondary_menu {
|
Line 393 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 689 sub innerregister {
|
Line 663 sub innerregister {
|
### |
### |
### |
### |
# Prepare the rest of the buttons |
# Prepare the rest of the buttons |
my $menuitems; |
my ($menuitems,$got_prt,$got_wishlist); |
if ($const_space) { |
if ($const_space) { |
# |
# |
# We are in construction space |
# We are in construction space |
Line 725 ENDMENUITEMS
|
Line 699 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); |
Line 737 c&8&1
|
Line 711 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&Print&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&wishlist-link.png&Stored Links&wishlistlink[_2]&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 758 $menuitems.="&Notes&&annotate()&";
|
Line 735 $menuitems.="&Notes&&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&Info&info[_1]&catalog_info()&Show Metadata |
ENDREALRES |
ENDREALRES |
} |
} |
$menuitems.=(<<ENDREALRES); |
unless ($env{'request.noversionuri'} =~ m{^/uploaded/$match_domain/$match_courseid/docs/}) { |
|
$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&Evaluate&this[_1]&gopost('/adm/evaluate',currentURL,1)&Provide my evaluation of this resource |
|
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&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) { |
|
$menuitems .= (<<ENDMENUITEMS); |
s&8&3&prt.png&Print&printout[_1]&gopost('/adm/printout',currentURL)&Prepare a printable document |
s&8&3&prt.png&Print&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) { |
|
if (($env{'user.adv'}) && (!$env{'request.enc'})) { |
|
# wishlist is only available for users with access to resource-pool |
|
$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&wishlist-link.png&Stored Links&wishlistlink[_2]&set_wishlistlink()&Save a link for this resource in your personal Stored Links repository&&1 |
ENDMENUITEMS |
ENDMENUITEMS |
} |
$got_wishlist = 1; |
} |
} |
|
} |
|
} |
my $buttons=''; |
my $buttons=''; |
foreach (split(/\n/,$menuitems)) { |
foreach (split(/\n/,$menuitems)) { |
my ($command,@rest)=split(/\&/,$_); |
my ($command,@rest)=split(/\&/,$_); |
Line 878 sub edit_course_upload {
|
Line 865 sub edit_course_upload {
|
return $cfile; |
return $cfile; |
} |
} |
|
|
sub startupremote { |
|
my ($lowerurl)=@_; |
|
if ($env{'environment.remote'} eq 'off') { |
|
return ('<meta HTTP-EQUIV="Refresh" CONTENT="0.5; url='.$lowerurl.'" />'); |
|
} |
|
# |
|
# The Remote actually gets launched! |
|
# |
|
my $configmenu=&rawconfig(); |
|
my $esclowerurl=&escape($lowerurl); |
|
my $message=&mt('"Waiting for Remote Control window to load: "+[_1]','waited'); |
|
return(<<ENDREMOTESTARTUP); |
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
var timestart; |
|
function wheelswitch() { |
|
if (typeof(document.wheel) != 'undefined') { |
|
if (typeof(document.wheel.spin) != 'undefined') { |
|
var date=new Date(); |
|
var waited=Math.round(30-((date.getTime()-timestart)/1000)); |
|
document.wheel.spin.value=$message; |
|
} |
|
} |
|
if (window.status=='|') { |
|
window.status='/'; |
|
} else { |
|
if (window.status=='/') { |
|
window.status='-'; |
|
} else { |
|
if (window.status=='-') { |
|
window.status='\\\\'; |
|
} else { |
|
if (window.status=='\\\\') { window.status='|'; } |
|
} |
|
} |
|
} |
|
} |
|
|
|
// ---------------------------------------------------------- The wait function |
|
var canceltim; |
|
function wait() { |
|
if ((menuloaded==1) || (tim==1)) { |
|
window.status='Done.'; |
|
if (tim==0) { |
|
clearTimeout(canceltim); |
|
$configmenu |
|
window.location='$lowerurl'; |
|
} else { |
|
window.location='/adm/remote?action=collapse&url=$esclowerurl'; |
|
} |
|
} else { |
|
wheelswitch(); |
|
setTimeout('wait();',200); |
|
} |
|
} |
|
|
|
function main() { |
|
canceltim=setTimeout('tim=1;',30000); |
|
window.status='-'; |
|
var date=new Date(); |
|
timestart=date.getTime(); |
|
wait(); |
|
} |
|
|
|
// ]]> |
|
</script> |
|
ENDREMOTESTARTUP |
|
} |
|
|
|
sub setflags() { |
|
return(<<ENDSETFLAGS); |
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
menuloaded=0; |
|
tim=0; |
|
// ]]> |
|
</script> |
|
ENDSETFLAGS |
|
} |
|
|
|
sub maincall() { |
|
if ($env{'environment.remote'} eq 'off') { return ''; } |
|
return(<<ENDMAINCALL); |
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
main(); |
|
// ]]> |
|
</script> |
|
ENDMAINCALL |
|
} |
|
|
|
sub load_remote_msg { |
|
my ($lowerurl)=@_; |
|
|
|
if ($env{'environment.remote'} eq 'off') { return ''; } |
|
|
|
my $esclowerurl=&escape($lowerurl); |
|
my $link=&mt('[_1]Continue[_2] on in Inline Menu mode' |
|
,'<a href="/adm/remote?action=collapse&url='.$esclowerurl.'">' |
|
,'</a>'); |
|
return(<<ENDREMOTEFORM); |
|
<p> |
|
<form name="wheel"> |
|
<input name="spin" type="text" size="60" /> |
|
</form> |
|
</p> |
|
<p>$link</p> |
|
ENDREMOTEFORM |
|
} |
|
|
|
sub get_menu_name { |
|
my $hostid = $Apache::lonnet::perlvar{'lonHostID'}; |
|
$hostid =~ s/\W//g; |
|
return 'LCmenu'.$hostid; |
|
} |
|
|
|
|
|
sub reopenmenu { |
|
if ($env{'environment.remote'} eq 'off') { return ''; } |
|
my $menuname = &get_menu_name(); |
|
my $nothing = &Apache::lonhtmlcommon::javascript_nothing(); |
|
return('window.open('.$nothing.',"'.$menuname.'","",false);'); |
|
} |
|
|
|
|
|
sub open { |
|
my $returnval=''; |
|
if ($env{'environment.remote'} eq 'off') { |
|
return |
|
'<script type="text/javascript">'."\n" |
|
.'// <![CDATA['."\n" |
|
.'self.name="loncapaclient";'."\n" |
|
.'// ]]>'."\n" |
|
.'</script>'; |
|
} |
|
my $menuname = &get_menu_name(); |
|
|
|
# unless (shift eq 'unix') { |
|
# resizing does not work on linux because of virtual desktop sizes |
|
# $returnval.=(<<ENDRESIZE); |
|
#if (window.screen) { |
|
# self.resizeTo(screen.availWidth-215,screen.availHeight-55); |
|
# self.moveTo(190,15); |
|
#} |
|
#ENDRESIZE |
|
# } |
|
$returnval=(<<ENDOPEN); |
|
// <![CDATA[ |
|
window.status='Opening LON-CAPA Remote Control'; |
|
var menu=window.open("/res/adm/pages/menu.html?inhibitmenu=yes","$menuname", |
|
"height=375,width=150,scrollbars=no,menubar=no,top=5,left=5,screenX=5,screenY=5"); |
|
self.name='loncapaclient'; |
|
// ]]> |
|
ENDOPEN |
|
return '<script type="text/javascript">'.$returnval.'</script>'; |
|
} |
|
|
|
|
|
# ================================================================== Raw Config |
# ================================================================== Raw Config |
|
|
sub clear { |
sub clear { |
Line 1092 sub switch {
|
Line 921 sub switch {
|
unless ($env{'request.state'} eq 'construct') { |
unless ($env{'request.state'} eq 'construct') { |
push(@tools,63); |
push(@tools,63); |
} |
} |
if (($env{'environment.icons'} eq 'iconsonly') && |
if (($env{'environment.icons'} eq 'iconsonly') && |
(grep(/^$idx$/,@tools))) { |
(grep(/^$idx$/,@tools))) { |
$inlineremote[$idx] = |
$inlineremote[$idx] = |
'<a title="'.$desc.'" class="LC_menubuttons_link" href="javascript:'.$act.';">'.$pic.'</a>'; |
'<a title="'.$desc.'" class="LC_menubuttons_link" href="javascript:'.$act.';">'.$pic.'</a>'; |
Line 1361 sub check_for_rcrs {
|
Line 1190 sub check_for_rcrs {
|
return $showreqcrs; |
return $showreqcrs; |
} |
} |
|
|
# ======================================================================= Close |
|
|
|
sub close { |
|
if ($env{'environment.remote'} eq 'off') { return ''; } |
|
my $menuname = &get_menu_name(); |
|
return(<<ENDCLOSE); |
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
window.status='Accessing Remote Control'; |
|
menu=window.open("/adm/rat/empty.html","$menuname", |
|
"height=350,width=150,scrollbars=no,menubar=no"); |
|
window.status='Disabling Remote Control'; |
|
menu.active=0; |
|
menu.autologout=0; |
|
window.status='Closing Remote Control'; |
|
menu.close(); |
|
window.status='Done.'; |
|
// ]]> |
|
</script> |
|
ENDCLOSE |
|
} |
|
|
|
sub dc_popup_js { |
sub dc_popup_js { |
my %lt = &Apache::lonlocal::texthash( |
my %lt = &Apache::lonlocal::texthash( |
more => '(More ...)', |
more => '(More ...)', |
Line 1672 sub roles_selector {
|
Line 1479 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 1761 sub roles_selector {
|
Line 1582 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 2020 sub countdown_timer {
|
Line 1846 sub countdown_timer {
|
($env{'request.filename'}=~/$LONCAPA::assess_re/) && |
($env{'request.filename'}=~/$LONCAPA::assess_re/) && |
($Apache::inputtags::status[-1] eq 'CAN_ANSWER')) { |
($Apache::inputtags::status[-1] eq 'CAN_ANSWER')) { |
my $duedate = &Apache::lonnet::EXT("resource.0.duedate"); |
my $duedate = &Apache::lonnet::EXT("resource.0.duedate"); |
if ($duedate && $duedate > time) { |
my @interval=&Apache::lonnet::EXT("resource.0.interval"); |
my ($collapse,$expand,$title,$currdisp); |
my $hastimeleft; |
my @interval=&Apache::lonnet::EXT("resource.0.interval"); |
if (@interval > 1) { |
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'; |
$currdisp = 'inline'; |
$collapse = '► '; |
$collapse = '► '; |
} else { |
} else { |
Line 2031 sub countdown_timer {
|
Line 1867 sub countdown_timer {
|
$expand = '◄ '; |
$expand = '◄ '; |
} |
} |
unless ($env{'environment.icons'} eq 'iconsonly') { |
unless ($env{'environment.icons'} eq 'iconsonly') { |
$title = &mt('Timer'); |
$alttxt = &mt('Timer'); |
|
$title = $alttxt.' '; |
} |
} |
my $desc = &mt('Countdown to due date/time'); |
my $desc = &mt('Countdown to due date/time'); |
return <<END; |
return <<END; |
Line 2039 sub countdown_timer {
|
Line 1876 sub countdown_timer {
|
<a href="javascript:toggleCountdown();" class="LC_menubuttons_link"> |
<a href="javascript:toggleCountdown();" class="LC_menubuttons_link"> |
<span id="ddcountcollapse" class="LC_menubuttons_inline_text"> |
<span id="ddcountcollapse" class="LC_menubuttons_inline_text"> |
$collapse |
$collapse |
</a></span> |
</span></a> |
<span id="duedatecountdown" class="LC_menubuttons_inline_text" style="display: $currdisp;"></span> |
<span id="duedatecountdown" class="LC_menubuttons_inline_text" style="display: $currdisp;"></span> |
<a href="javascript:toggleCountdown();" class="LC_menubuttons_link"> |
<a href="javascript:toggleCountdown();" class="LC_menubuttons_link"> |
<span id="ddcountexpand" class="LC_menubuttons_inline_text" >$expand</span> |
<span id="ddcountexpand" class="LC_menubuttons_inline_text" >$expand</span> |
<img src="/res/adm/pages/timer.png" title="$desc" class="LC_icon"><span class="LC_menubuttons_inline_text">$title</span></a> |
<img src="/res/adm/pages/timer.png" title="$desc" class="LC_icon" alt="$alttxt" /><span class="LC_menubuttons_inline_text">$title</span></a> |
END |
END |
} |
} |
} |
} |
Line 2074 BEGIN {
|
Line 1911 BEGIN {
|
} elsif ($configline=~/^scnd\:/) { |
} elsif ($configline=~/^scnd\:/) { |
my @entries = (split(/\:/, $configline))[1..5]; |
my @entries = (split(/\:/, $configline))[1..5]; |
push @secondary_menu, \@entries; |
push @secondary_menu, \@entries; |
} elsif ($configline=~/^scndsub\:/) { |
|
my ($parent,@entries) = (split(/\:/, $configline))[1..4]; |
|
push (@{$secondary_submenu{$parent}},\@entries); |
|
} elsif ($configline) { |
} elsif ($configline) { |
push(@desklines,$configline); |
push(@desklines,$configline); |
} |
} |