version 1.431.2.2, 2015/04/14 21:35:52
|
version 1.441, 2016/03/16 13:54:06
|
Line 288 sub primary_menu {
|
Line 288 sub primary_menu {
|
push(@primsub,$item); |
push(@primsub,$item); |
} |
} |
if (@primsub > 0) { |
if (@primsub > 0) { |
|
if ($title eq 'Personal' && $env{'user.name'} && $env{'user.domain'} ) { |
|
$title = &Apache::loncommon::plainname($env{'user.name'},$env{'user.domain'}); |
|
} else { |
|
$title = &mt($title); |
|
} |
$menu{$position} .= &create_submenu($link,$target,$title,\@primsub,1); |
$menu{$position} .= &create_submenu($link,$target,$title,\@primsub,1); |
} elsif ($link) { |
} elsif ($link) { |
$menu{$position} .= '<li><a href="'.$link.'" target="'.$target.'">'.&mt($title).'</a></li>'; |
$menu{$position} .= '<li><a href="'.$link.'" target="'.$target.'">'.&mt($title).'</a></li>'; |
Line 366 sub secondary_menu {
|
Line 371 sub secondary_menu {
|
my $canmgr = &Apache::lonnet::allowed('mgr', $crs_sec); |
my $canmgr = &Apache::lonnet::allowed('mgr', $crs_sec); |
my $author = &getauthor(); |
my $author = &getauthor(); |
|
|
my ($cdom,$cnum,$showsyllabus,$showfeeds,$showresv); |
my ($cdom,$cnum,$showsyllabus,$showfeeds,$showresv,$grouptools); |
|
$grouptools = 0; |
if ($env{'request.course.id'}) { |
if ($env{'request.course.id'}) { |
$cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
$cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
$cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
$cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
Line 392 sub secondary_menu {
|
Line 398 sub secondary_menu {
|
$showresv = 1; |
$showresv = 1; |
} |
} |
} |
} |
|
my %groups = &Apache::lonnet::get_active_groups( |
|
$env{'user.domain'}, $env{'user.name'},$cdom,$cnum); |
|
if (%groups) { |
|
foreach my $group (keys(%groups)) { |
|
my @privs = split(/:/,$env{"user.priv.$env{'request.role'}./$cdom/$cnum/$group"}); |
|
shift(@privs); |
|
if (@privs) { |
|
$grouptools ++; |
|
} |
|
} |
|
} |
} |
} |
|
|
my ($canmodifycoauthor); |
my ($canmodifycoauthor); |
Line 402 sub secondary_menu {
|
Line 419 sub secondary_menu {
|
$canmodifycoauthor = 1; |
$canmodifycoauthor = 1; |
} |
} |
} |
} |
|
|
my %groups = &Apache::lonnet::get_active_groups( |
|
$env{'user.domain'}, $env{'user.name'}, |
|
$env{'course.' . $env{'request.course.id'} . '.domain'}, |
|
$env{'course.' . $env{'request.course.id'} . '.num'}); |
|
|
|
my ($roleswitcher_js,$roleswitcher_form); |
my ($roleswitcher_js,$roleswitcher_form); |
|
|
foreach my $menuitem (@secondary_menu) { |
foreach my $menuitem (@secondary_menu) { |
Line 436 sub secondary_menu {
|
Line 447 sub secondary_menu {
|
&& !$canmodpara; |
&& !$canmodpara; |
next if $$menuitem[4] =~ /showgroups$/ |
next if $$menuitem[4] =~ /showgroups$/ |
&& !$canviewgrps |
&& !$canviewgrps |
&& !%groups; |
&& !$grouptools; |
next if $$menuitem[4] eq 'showsyllabus' |
next if $$menuitem[4] eq 'showsyllabus' |
&& !$showsyllabus; |
&& !$showsyllabus; |
next if $$menuitem[4] eq 'showfeeds' |
next if $$menuitem[4] eq 'showfeeds' |
Line 510 sub create_submenu {
|
Line 521 sub create_submenu {
|
if ($target ne '') { |
if ($target ne '') { |
$disptarget = ' target="'.$target.'"'; |
$disptarget = ' target="'.$target.'"'; |
} |
} |
my $name; |
|
if ($title eq 'Personal') { |
|
if ($env{'user.name'} && $env{'user.domain'}) { |
|
$name = &Apache::loncommon::plainname($env{'user.name'},$env{'user.domain'}); |
|
} else { |
|
$name = &mt($title); |
|
} |
|
} else { |
|
$name = &mt($title); |
|
} |
|
my $menu = '<li class="LC_hoverable">'. |
my $menu = '<li class="LC_hoverable">'. |
'<a href="'.$link.'"'.$disptarget.'>'. |
'<a href="'.$link.'"'.$disptarget.'>'. |
'<span class="LC_nobreak">'.$name. |
'<span class="LC_nobreak">'.$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>'. |
'<ul>'; |
'<ul>'; |
Line 639 sub innerregister {
|
Line 640 sub innerregister {
|
&& $maptitle ne $coursetitle); |
&& $maptitle ne $coursetitle); |
|
|
push @crumbs, {text => $restitle, no_mt => 1} if $restitle; |
push @crumbs, {text => $restitle, no_mt => 1} if $restitle; |
|
my @tools; |
|
if ($env{'request.filename'} =~ /\.page$/) { |
|
my %breadcrumb_tools = &Apache::lonhtmlcommon::current_breadcrumb_tools(); |
|
if (ref($breadcrumb_tools{'tools'}) eq 'ARRAY') { |
|
@tools = @{$breadcrumb_tools{'tools'}}; |
|
} |
|
} |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::lonhtmlcommon::add_breadcrumb(@crumbs); |
&Apache::lonhtmlcommon::add_breadcrumb(@crumbs); |
|
if (@tools) { |
|
&Apache::lonhtmlcommon::add_breadcrumb_tool('tools',@tools); |
|
} |
} else { |
} else { |
$resurl = $env{'request.noversionuri'}; |
$resurl = $env{'request.noversionuri'}; |
my $courseurl = &Apache::lonnet::courseid_to_courseurl($env{'request.course.id'}); |
my $courseurl = &Apache::lonnet::courseid_to_courseurl($env{'request.course.id'}); |
Line 776 sub innerregister {
|
Line 787 sub innerregister {
|
my $currdir = '/priv/'.$udom.'/'.$uname.'/'.$thisdisfn; |
my $currdir = '/priv/'.$udom.'/'.$uname.'/'.$thisdisfn; |
if ($currdir =~ m-/$-) { |
if ($currdir =~ m-/$-) { |
$is_const_dir = 1; |
$is_const_dir = 1; |
|
if ($thisdisfn eq '') { |
|
$is_const_dir = 2; |
|
} |
} else { |
} else { |
$currdir =~ s|[^/]+$||; |
$currdir =~ s|[^/]+$||; |
my $cleandisfn = &Apache::loncommon::escape_single($thisdisfn); |
my $cleandisfn = &Apache::loncommon::escape_single($thisdisfn); |
Line 839 if ($env{'browser.mobile'}) {
|
Line 853 if ($env{'browser.mobile'}) {
|
$is_mobile = 1; |
$is_mobile = 1; |
} |
} |
|
|
unless ($env{'request.noversionuri'}=~/\/(bulletinboard|smppg|navmaps|syllabus|aboutme|viewclasslist|portfolio)(\?|$)/) { |
unless ($env{'request.noversionuri'}=~/\/(bulletinboard|smppg|navmaps|syllabus|aboutme|viewclasslist|portfolio|exttools?)(\?|$)/) { |
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('$is_mobile')&Show Metadata |
s&6&3&catalog.png&Info&info[_1]&catalog_info('$is_mobile')&Show Metadata |
Line 897 ENDMENUITEMS
|
Line 911 ENDMENUITEMS
|
my $addremote=0; |
my $addremote=0; |
foreach (@inlineremote) { if ($_ ne '') { $addremote=1; last;} } |
foreach (@inlineremote) { if ($_ ne '') { $addremote=1; last;} } |
if ($addremote) { |
if ($addremote) { |
|
my $countdown; |
|
if ($env{'request.filename'} =~ /\.page$/) { |
|
my %breadcrumb_tools = &Apache::lonhtmlcommon::current_breadcrumb_tools(); |
|
if (ref($breadcrumb_tools{'tools'}) eq 'ARRAY') { |
|
$countdown = $breadcrumb_tools{'tools'}[0]; |
|
} |
|
} else { |
|
$countdown = &countdown_timer(); |
|
} |
&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(); |
|
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); |
Line 927 ENDMENUITEMS
|
Line 948 ENDMENUITEMS
|
&advtools_crumbs(@inlineremote); |
&advtools_crumbs(@inlineremote); |
} |
} |
} |
} |
|
my ($topic_help,$topic_help_text); |
|
if ($is_const_dir == 2) { |
|
if ((($ENV{'SERVER_PORT'} == 443) || |
|
($Apache::lonnet::protocol{$Apache::lonnet::perlvar{'lonHostID'}} eq 'https')) && |
|
(&Apache::lonnet::usertools_access($env{'user.name'},$env{'user.domain'},'webdav'))) { |
|
$topic_help = 'Authoring_WebDAV,Authoring_WebDAV_Mac_10v6,Authoring_WebDAV_Mac_10v10,'. |
|
'Authoring_WebDAV_Windows_v7,Authoring_WebDAV_Linux_Centos'; |
|
$topic_help_text = 'About WebDAV access'; |
|
} |
|
} |
return &Apache::lonhtmlcommon::scripttag('', 'start') |
return &Apache::lonhtmlcommon::scripttag('', 'start') |
. &Apache::lonhtmlcommon::breadcrumbs(undef,undef,0) |
. &Apache::lonhtmlcommon::breadcrumbs(undef,undef,0,'','','','',$topic_help,$topic_help_text) |
. &Apache::lonhtmlcommon::scripttag('', 'end'); |
. &Apache::lonhtmlcommon::scripttag('', 'end'); |
} |
} |
|
|
Line 1101 sub prepare_functions {
|
Line 1131 sub prepare_functions {
|
if (($env{'form.folderpath'} =~ /^supplemental/) && |
if (($env{'form.folderpath'} =~ /^supplemental/) && |
(&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) && |
(&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) && |
(($resurl =~ m{^/adm/wrapper/ext/}) || |
(($resurl =~ m{^/adm/wrapper/ext/}) || |
|
($resurl =~ m{^/adm/$cdom/$cnum/\d+/exttools?$}) || |
($resurl =~ m{^/uploaded/$cdom/$cnum/supplemental/}) || |
($resurl =~ m{^/uploaded/$cdom/$cnum/supplemental/}) || |
($resurl eq '/adm/supplemental') || |
($resurl eq '/adm/supplemental') || |
($resurl =~ m{^/public/$cdom/$cnum/syllabus$}) || |
($resurl =~ m{^/public/$cdom/$cnum/syllabus$}) || |
Line 1536 function toggleCountdown() {
|
Line 1567 function toggleCountdown() {
|
END |
END |
} |
} |
|
|
# This creates a "done button" for timed events. The confirmation box is a jQuerey |
# This creates a "done button" for timed events. The confirmation box is a jQuery |
# dialog widget. Clicking OK will set (done = 'true') which is checked in |
# dialog widget. If the interval parameter requires a proctor key for the timed |
# lonhomework.pm. |
# event to be marked done, there will also be a textbox where that can be entered. |
|
# Clicking OK will set the value of LC_interval_done to 'true', and, if needed will |
|
# set the value of LC_interval_done_proctorpass to the text entered in that box, |
|
# and submit the corresponding form. |
|
# |
|
# The &zero_time() routine in lonhomework.pm is called when a page is rendered if |
|
# LC_interval_done is true. |
|
# |
sub done_button_js { |
sub done_button_js { |
return <<END; |
my ($type,$width,$height,$proctor) = @_; |
|
return unless (($type eq 'map') || ($type eq 'resource')); |
|
my %lt = &Apache::lonlocal::texthash( |
|
title => 'WARNING!', |
|
button => 'Done', |
|
preamble => 'You are trying to end this timed event early.', |
|
map => 'Confirming that you are done will cause the time to expire and prevent you from changing any answers in the current folder.', |
|
resource => 'Confirming that you are done will cause the time to expire for this question, and prevent you from changing your answer(s).', |
|
okdone => 'Click "OK" if you are completely finished.', |
|
cancel => 'Click "Cancel" to continue working.', |
|
proctor => 'Ask a proctor to enter the key, then click "OK" if you are completely finished.', |
|
ok => 'OK', |
|
exit => 'Cancel', |
|
key => 'Key:', |
|
nokey => 'A proctor key is required', |
|
); |
|
my $navmap = Apache::lonnavmaps::navmap->new(); |
|
my ($missing,$tried); |
|
if (ref($navmap)) { |
|
$missing=0; |
|
$tried=0; |
|
my @resources=(); |
|
if ($type eq 'map') { |
|
my ($mapurl,$rid,$resurl)=&Apache::lonnet::decode_symb($env{'request.symb'}); |
|
@resources=$navmap->retrieveResources(undef,sub { $_[0]->is_problem() },1,0); |
|
} else { |
|
my $res = $navmap->getBySymb($env{'request.symb'}); |
|
if (ref($res)) { |
|
if ($res->is_problem()) { |
|
push(@resources,$res); |
|
} |
|
} |
|
} |
|
foreach my $res (@resources) { |
|
if ($res->singlepart()) { |
|
if (!$res->tries()) { |
|
$missing++; |
|
} else { |
|
$tried++; |
|
} |
|
} else { |
|
foreach my $part (@{$res->parts()}) { |
|
if (!$res->tries($part)) { |
|
$missing++; |
|
} else { |
|
$tried++; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
if ($missing) { |
|
$lt{'miss'} .= '<p class="LC_error">'; |
|
if ($type eq 'map') { |
|
$lt{'miss'} .= &mt('Submissions are missing for [quant,_1,question part,question parts] in this folder.',$missing); |
|
} else { |
|
$lt{'miss'} .= &mt('Submissions are missing for [quant,_1,part] in this question.',$missing); |
|
} |
|
if ($missing > 1) { |
|
$lt{'miss'} .= ' '.&mt('If you confirm you are done you will be unable to submit answers for them.').'</span>'; |
|
} else { |
|
$lt{'miss'} .= ' '.&mt('If you confirm you are done you will be unable to submit an answer for it.').'</p>'; |
|
} |
|
} |
|
if ($proctor) { |
|
if ($height !~ /^\d+$/) { |
|
$height = 400; |
|
if ($missing) { |
|
$height += 60; |
|
} |
|
} |
|
if ($width !~ /^\d+$/) { |
|
$width = 400; |
|
if ($missing) { |
|
$width += 60; |
|
} |
|
} |
|
return <<END; |
|
<form method="post" name="LCdoneButton" action=""> |
|
<input type="hidden" name="LC_interval_done" value="" /> |
|
<input type="hidden" name="LC_interval_done_proctorpass" value="" /> |
|
<button id="LC_done-confirm-opener" type="button">$lt{'button'}</button> |
|
</form> |
|
|
|
<div id="LC_done-confirm" title="$lt{'title'}"> |
|
<p>$lt{'preamble'} $lt{$type}</p> |
|
$lt{'miss'} |
|
<p>$lt{'proctor'}</p> |
|
<form> |
|
<label>$lt{'key'}<input type="password" name="LC_interval_done_proctorkey" value="" /></label> |
|
<input type="submit" tabindex="-1" style="position:absolute; top:-1000px" /> |
|
</form> |
|
<p>$lt{'cancel'}</p> |
|
</div> |
|
|
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
\$( "#LC_done-confirm" ).dialog({ autoOpen: false }); |
|
\$( "#LC_done-confirm-opener" ).on("click", function() { |
|
\$( "#LC_done-confirm" ).dialog("open"); |
|
\$( "#LC_done-confirm" ).dialog({ |
|
height: $height, |
|
width: $width, |
|
modal: true, |
|
resizable: false, |
|
buttons: [ |
|
{ |
|
text: "$lt{'ok'}", |
|
click: function() { |
|
var proctorkey = \$( '[name="LC_interval_done_proctorkey"]' )[0].value; |
|
if ((proctorkey == '') || (proctorkey == null)) { |
|
alert("$lt{'nokey'}"); |
|
} else { |
|
\$( '[name="LC_interval_done"]' )[0].value = 'true'; |
|
\$( '[name="LC_interval_done_proctorpass"]' )[0].value = proctorkey; |
|
\$( '[name="LCdoneButton"]' )[0].submit(); |
|
} |
|
}, |
|
}, |
|
{ |
|
text: "$lt{'exit'}", |
|
click: function() { |
|
\$("#LC_done-confirm").dialog( "close" ); |
|
} |
|
} |
|
], |
|
close: function() { |
|
\$( '[name="LC_interval_done_proctorkey"]' )[0].value = ''; |
|
} |
|
}); |
|
\$( "#LC_done-confirm" ).find( "form" ).on( "submit", function( event ) { |
|
event.preventDefault(); |
|
\$( '[name="LC_interval_done"]' )[0].value = 'true'; |
|
\$( '[name="LC_interval_done_proctorpass"]' )[0].value = \$( '[name="LC_interval_done_proctorkey"]' )[0].value; |
|
\$( '[name="LCdoneButton"]' )[0].submit(); |
|
}); |
|
}); |
|
|
|
// ]]> |
|
</script> |
|
|
<form method="post" name="doneButton"> |
END |
<input type="hidden" name="done" value=""/> |
} else { |
<button id="done-confirm-opener" type="button">Done</button> |
if ($height !~ /^\d+$/) { |
</form> |
$height = 320; |
|
if ($missing) { |
|
$height += 60; |
|
} |
|
} |
|
if ($width !~ /^\d+$/) { |
|
$width = 320; |
|
if ($missing) { |
|
$width += 60; |
|
} |
|
} |
|
if ($missing) { |
|
$lt{'miss'} = '</p>'.$lt{'miss'}.'<p>'; |
|
} |
|
return <<END; |
|
|
<div id="done-confirm" title="WARNING!"> |
<form method="post" name="LCdoneButton" action=""> |
<p></span>You are trying to end this timed event early. Confirming that you are done will cause the time to expire and prevent you from changing any answers in the current folder. Click "OK" if you are completely finished. Click "Cancel" to continue working.</p> |
<input type="hidden" name="LC_interval_done" value="" /> |
|
<button id="LC_done-confirm-opener" type="button">$lt{'button'}</button> |
|
</form> |
|
|
|
<div id="LC_done-confirm" title="$lt{'title'}"> |
|
<p>$lt{'preamble'} $lt{$type} $lt{'miss'} $lt{'okdone'} $lt{'cancel'}</p> |
</div> |
</div> |
|
|
<script> |
<script type="text/javascript"> |
\$( "#done-confirm" ).dialog({ autoOpen: false }); |
// <![CDATA[ |
\$( "#done-confirm-opener" ).click(function() { |
\$( "#LC_done-confirm" ).dialog({ autoOpen: false }); |
\$( "#done-confirm" ).dialog( "open" ); |
\$( "#LC_done-confirm-opener" ).click(function() { |
\$( "#done-confirm" ).dialog({ |
\$( "#LC_done-confirm" ).dialog( "open" ); |
|
\$( "#LC_done-confirm" ).dialog({ |
resizable: false, |
resizable: false, |
height:320, |
height: $height, |
|
width: $width, |
modal: true, |
modal: true, |
buttons: { |
buttons: [ |
"OK": function() { |
{ |
\$( this ).dialog( "close" ); |
text: "$lt{'ok'}", |
\$( '[name="done"]' )[0].value = 'true'; |
click: function() { |
\$( '[name="doneButton"]' )[0].submit(); |
\$( this ).dialog( "close" ); |
}, |
\$( '[name="LC_interval_done"]' )[0].value = 'true'; |
Cancel: function() { |
\$( '[name="LCdoneButton"]' )[0].submit(); |
\$( this ).dialog( "close" ); |
}, |
} |
}, |
} |
{ |
}) |
text: "$lt{'exit'}", |
|
click: function() { |
|
\$( this ).dialog( "close" ); |
|
}, |
|
}, |
|
], |
|
}); |
}); |
}); |
|
// ]]> |
</script> |
</script> |
|
|
END |
END |
|
} |
} |
} |
|
|
sub utilityfunctions { |
sub utilityfunctions { |
Line 1825 sub roles_selector {
|
Line 2031 sub roles_selector {
|
my $now = time; |
my $now = time; |
my (%courseroles,%seccount,%courseprivs); |
my (%courseroles,%seccount,%courseprivs); |
my $is_cc; |
my $is_cc; |
my ($js,$form,$switcher,$switchtext); |
my ($js,$form,$switcher); |
my $ccrole; |
my $ccrole; |
if ($crstype eq 'Community') { |
if ($crstype eq 'Community') { |
$ccrole = 'co'; |
$ccrole = 'co'; |
Line 1913 sub roles_selector {
|
Line 2119 sub roles_selector {
|
} |
} |
} |
} |
} |
} |
$switchtext = 'Switch role'; # do not translate here |
|
my @roles_order = ($ccrole,'in','ta','ep','ad','st'); |
my @roles_order = ($ccrole,'in','ta','ep','ad','st'); |
my $numdiffsec; |
my $numdiffsec; |
if (keys(%seccount) == 1) { |
if (keys(%seccount) == 1) { |
Line 1969 sub roles_selector {
|
Line 2174 sub roles_selector {
|
} |
} |
} |
} |
if (@submenu > 0) { |
if (@submenu > 0) { |
$switcher = &create_submenu('','',$switchtext,\@submenu); |
$switcher = &create_submenu('','',&mt('Switch role'),\@submenu); |
} |
} |
} |
} |
return ($js,$form,$switcher); |
return ($js,$form,$switcher); |
Line 2240 sub countdown_timer {
|
Line 2445 sub countdown_timer {
|
} |
} |
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 ($timelimit,$usesdone,$proctor,$secret); |
if (@interval > 1) { |
if (@interval > 1) { |
|
($timelimit,$usesdone,$proctor,$secret) = split(/_/,$interval[0]); |
my $first_access=&Apache::lonnet::get_first_access($interval[1]); |
my $first_access=&Apache::lonnet::get_first_access($interval[1]); |
if ($first_access > 0) { |
if ($first_access > 0) { |
if ($first_access+$interval[0] > time) { |
if ($first_access+$timelimit > time) { |
$hastimeleft = 1; |
$hastimeleft = 1; |
} |
} |
} |
} |
Line 2256 sub countdown_timer {
|
Line 2463 sub countdown_timer {
|
($type eq 'Task' && $slothastime)) { |
($type eq 'Task' && $slothastime)) { |
$currdisp = 'inline'; |
$currdisp = 'inline'; |
$collapse = '► '; |
$collapse = '► '; |
$donebutton = &done_button_js(); |
if ((@interval > 1) && ($hastimeleft)) { |
|
if ($usesdone eq 'done') { |
|
$donebutton = &done_button_js($interval[1],'','',$proctor); |
|
} |
|
} |
} else { |
} else { |
$currdisp = 'none'; |
$currdisp = 'none'; |
$expand = '◄ '; |
$expand = '◄ '; |
Line 2270 sub countdown_timer {
|
Line 2479 sub countdown_timer {
|
my $desc = &mt('Countdown to due date/time'); |
my $desc = &mt('Countdown to due date/time'); |
|
|
return <<END; |
return <<END; |
|
$donebutton |
<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 |
Line 2279 $collapse
|
Line 2488 $collapse
|
<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" alt="$alttxt" /><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> |
$donebutton |
|
END |
END |
} |
} |
} |
} |