version 1.163, 2007/09/01 00:41:42
|
version 1.168, 2008/12/11 14:55:15
|
Line 624 HEADER
|
Line 624 HEADER
|
$result .= "<a href=\"$returnPage\">" . &mt("End Helper") . "</a>"; |
$result .= "<a href=\"$returnPage\">" . &mt("End Helper") . "</a>"; |
} |
} |
else { |
else { |
$result .= '<nobr><input name="back" type="button" '; |
$result .= '<span class="LC_nobreak"><input name="back" type="button" '; |
$result .= 'value="' . $previous . '" onclick="history.go(-1)" /> '; |
$result .= 'value="' . $previous . '" onclick="history.go(-1)" /> '; |
$result .= '<input name="SUBMIT" type="submit" value="' . $next . '" /></nobr>'; |
$result .= '<input name="SUBMIT" type="submit" value="' . $next . '" /></span>'; |
} |
} |
} |
} |
|
|
Line 643 HEADER
|
Line 643 HEADER
|
$result .= "<a href=\"$returnPage\">" . &mt('End Helper') . "</a>"; |
$result .= "<a href=\"$returnPage\">" . &mt('End Helper') . "</a>"; |
} |
} |
else { |
else { |
$result .= '<nobr><input name="back" type="button" '; |
$result .= '<span class="LC_nobreak"><input name="back" type="button" '; |
$result .= 'value="' . $previous . '" onclick="history.go(-1)" /> '; |
$result .= 'value="' . $previous . '" onclick="history.go(-1)" /> '; |
$result .= '<input name="SUBMIT" type="submit" value="' . $next . '" /></nobr>'; |
$result .= '<input name="SUBMIT" type="submit" value="' . $next . '" /></span>'; |
} |
} |
} |
} |
|
|
Line 1488 BUTTONS
|
Line 1488 BUTTONS
|
$choiceLabel = &$choiceLabel($helper, $self); |
$choiceLabel = &$choiceLabel($helper, $self); |
} |
} |
$result .= "/></td><td> ".qq{<label for="id$id">}. |
$result .= "/></td><td> ".qq{<label for="id$id">}. |
&mtn($choiceLabel). "</label></td>"; |
$choiceLabel. "</label></td>"; |
if ($choice->[4]) { |
if ($choice->[4]) { |
$result .='<td><input type="text" size="5" name="' |
$result .='<td><input type="text" size="5" name="' |
.$choice->[4].'_forminput" value="' |
.$choice->[4].'_forminput" value="' |
Line 1725 no strict;
|
Line 1725 no strict;
|
use strict; |
use strict; |
use Apache::lonlocal; # A localization nightmare |
use Apache::lonlocal; # A localization nightmare |
use Apache::lonnet; |
use Apache::lonnet; |
use Time::localtime; |
use DateTime; |
|
|
BEGIN { |
BEGIN { |
&Apache::lonhelper::register('Apache::lonhelper::date', |
&Apache::lonhelper::register('Apache::lonhelper::date', |
Line 1775 sub render {
|
Line 1775 sub render {
|
my $time=time; |
my $time=time; |
my ($anytime,$onclick); |
my ($anytime,$onclick); |
|
|
|
|
# first check VARS for a valid new value from the user |
# first check VARS for a valid new value from the user |
# then check DEFAULT_VALUE for a valid default time value |
# then check DEFAULT_VALUE for a valid default time value |
# otherwise pick now as reasonably good time |
# otherwise pick now as reasonably good time |
|
|
if (defined($helper->{VARS}{$var}) |
if (defined($helper->{VARS}{$var}) |
&& $helper->{VARS}{$var} > 0) { |
&& $helper->{VARS}{$var} > 0) { |
$date = localtime($helper->{VARS}{$var}); |
$date = &get_date_object($helper->{VARS}{$var}); |
} elsif (defined($self->{DEFAULT_VALUE})) { |
} elsif (defined($self->{DEFAULT_VALUE})) { |
my $valueFunc = eval($self->{DEFAULT_VALUE}); |
my $valueFunc = eval($self->{DEFAULT_VALUE}); |
die('Error in default value code for variable ' . |
die('Error in default value code for variable ' . |
Line 1790 sub render {
|
Line 1789 sub render {
|
$time = &$valueFunc($helper, $self); |
$time = &$valueFunc($helper, $self); |
if (lc($time) eq 'anytime') { |
if (lc($time) eq 'anytime') { |
$anytime=1; |
$anytime=1; |
$date = localtime(time); |
$date = &get_date_object(time); |
$date->min(0); |
$date->min(0); |
} elsif (defined($time) && $time ne 0) { |
} elsif (defined($time) && $time ne 0) { |
$date = localtime($time); |
$date = &get_date_object($time); |
} else { |
} else { |
# leave date undefined so it'll default to now |
# leave date undefined so it'll default to now |
} |
} |
} |
} |
|
|
if (!defined($date)) { |
if (!defined($date)) { |
$date = localtime(time); |
$date = &get_date_object(time); |
$date->min(0); |
$date->min(0); |
} |
} |
|
|
Line 1817 sub render {
|
Line 1816 sub render {
|
my $i; |
my $i; |
$result .= "<select $onclick name='${var}month'>\n"; |
$result .= "<select $onclick name='${var}month'>\n"; |
for ($i = 0; $i < 12; $i++) { |
for ($i = 0; $i < 12; $i++) { |
if ($i == $date->mon) { |
if (($i + 1) == $date->mon) { |
$result .= "<option value='$i' selected='selected'>"; |
$result .= "<option value='$i' selected='selected'>"; |
} else { |
} else { |
$result .= "<option value='$i'>"; |
$result .= "<option value='$i'>"; |
} |
} |
$result .= &mt($months[$i]) . "</option>\n"; |
$result .= &mt($months[$i])."</option>\n"; |
} |
} |
$result .= "</select>\n"; |
$result .= "</select>\n"; |
|
|
Line 1841 sub render {
|
Line 1840 sub render {
|
# Year |
# Year |
$result .= "<select $onclick name='${var}year'>\n"; |
$result .= "<select $onclick name='${var}year'>\n"; |
for ($i = 2000; $i < 2030; $i++) { # update this after 64-bit dates |
for ($i = 2000; $i < 2030; $i++) { # update this after 64-bit dates |
if ($date->year + 1900 == $i) { |
if ($date->year == $i) { |
$result .= "<option selected='selected'>"; |
$result .= "<option selected='selected'>"; |
} else { |
} else { |
$result .= "<option>"; |
$result .= "<option>"; |
Line 1896 sub render {
|
Line 1895 sub render {
|
} |
} |
$result .= "</select>\n"; |
$result .= "</select>\n"; |
} |
} |
|
$result .= ' '.$date->time_zone_short_name().' '; |
if ($self->{'anytime'}) { |
if ($self->{'anytime'}) { |
$result.=(<<CHECK); |
$result.=(<<CHECK); |
<script type="text/javascript"> |
<script type="text/javascript"> |
Line 1923 sub postprocess {
|
Line 1923 sub postprocess {
|
if ($env{'form.' . $var . 'anytime'}) { |
if ($env{'form.' . $var . 'anytime'}) { |
$helper->{VARS}->{$var} = undef; |
$helper->{VARS}->{$var} = undef; |
} else { |
} else { |
my $month = $env{'form.' . $var . 'month'}; |
my $month = $env{'form.' . $var . 'month'}; |
|
$month ++; |
my $day = $env{'form.' . $var . 'day'}; |
my $day = $env{'form.' . $var . 'day'}; |
my $year = $env{'form.' . $var . 'year'}; |
my $year = $env{'form.' . $var . 'year'}; |
my $min = 0; |
my $min = 0; |
Line 1933 sub postprocess {
|
Line 1934 sub postprocess {
|
$hour = $env{'form.' . $var . 'hour'}; |
$hour = $env{'form.' . $var . 'hour'}; |
} |
} |
|
|
my $chosenDate; |
my ($chosenDate,$checkDate); |
eval {$chosenDate = Time::Local::timelocal(0, $min, $hour, $day, $month, $year);}; |
my $timezone = &Apache::lonlocal::gettimezone(); |
|
my $dt; |
|
eval { |
|
$dt = DateTime->new( year => $year, |
|
month => $month, |
|
day => $day, |
|
hour => $hour, |
|
minute => $min, |
|
second => 0, |
|
time_zone => $timezone, |
|
); |
|
}; |
|
|
my $error = $@; |
my $error = $@; |
|
if (!$error) { |
|
$chosenDate = $dt->epoch; |
|
$checkDate = &get_date_object($chosenDate); |
|
} |
|
|
# Check to make sure that the date was not automatically co-erced into a |
# Check to make sure that the date was not automatically co-erced into a |
# valid date, as we want to flag that as an error |
# valid date, as we want to flag that as an error |
# This happens for "Feb. 31", for instance, which is coerced to March 2 or |
# This happens for "Feb. 31", for instance, which is coerced to March 2 or |
# 3, depending on if it's a leap year |
# 3, depending on if it's a leap year |
my $checkDate = localtime($chosenDate); |
|
|
|
if ($error || $checkDate->mon != $month || $checkDate->mday != $day || |
if ($error || $checkDate->mon != $month || $checkDate->mday != $day || |
$checkDate->year + 1900 != $year) { |
$checkDate->year != $year) { |
unless (Apache::lonlocal::current_language()== ~/^en/) { |
unless (Apache::lonlocal::current_language()== ~/^en/) { |
$self->{ERROR_MSG} = &mt("Invalid date entry"); |
$self->{ERROR_MSG} = &mt("Invalid date entry"); |
return 0; |
return 0; |
} |
} |
# LOCALIZATION FIXME: Needs to be parameterized |
# LOCALIZATION FIXME: Needs to be parameterized |
$self->{ERROR_MSG} = "Can't use " . $months[$month] . " $day, $year as a " |
$self->{ERROR_MSG} = "Can't use ".$months[$env{'form.'.$var.'month'}]. " $day, $year as a ". |
. "date because it doesn't exist. Please enter a valid date."; |
"date because it doesn't exist. Please enter a valid date."; |
|
|
return 0; |
return 0; |
} |
} |
Line 1974 sub postprocess {
|
Line 1990 sub postprocess {
|
|
|
return 1; |
return 1; |
} |
} |
|
|
|
sub get_date_object { |
|
my ($epoch) = @_; |
|
my $dt = DateTime->from_epoch(epoch => $epoch) |
|
->set_time_zone(&Apache::lonlocal::gettimezone()); |
|
my $lang = Apache::lonlocal::current_language(); |
|
if ($lang ne '') { |
|
eval { |
|
$dt->set_locale($lang); |
|
}; |
|
} |
|
return $dt; |
|
} |
|
|
1; |
1; |
|
|
package Apache::lonhelper::resource; |
package Apache::lonhelper::resource; |
Line 2832 BUTTONS
|
Line 2862 BUTTONS
|
&Apache::loncacc::constructaccess($subdir, |
&Apache::loncacc::constructaccess($subdir, |
$Apache::lonnet::perlvar{'lonDefDomain'}); |
$Apache::lonnet::perlvar{'lonDefDomain'}); |
$metadir='/res/'.$domain.'/'.$user.'/'.$2; |
$metadir='/res/'.$domain.'/'.$user.'/'.$2; |
@fileList = &Apache::lonnet::dirlist($subdir, $domain, $user, ''); |
@fileList = &Apache::lonnet::dirlist($subdir,$domain,$user,undef,undef,'/'); |
} elsif ($subdir =~ m|^~([^/]+)/(.*)$|) { |
} elsif ($subdir =~ m|^~([^/]+)/(.*)$|) { |
$subdir='/home/'.$1.'/public_html/'.$2; |
$subdir='/home/'.$1.'/public_html/'.$2; |
my ($user,$domain)= |
my ($user,$domain)= |
&Apache::loncacc::constructaccess($subdir, |
&Apache::loncacc::constructaccess($subdir, |
$Apache::lonnet::perlvar{'lonDefDomain'}); |
$Apache::lonnet::perlvar{'lonDefDomain'}); |
$metadir='/res/'.$domain.'/'.$user.'/'.$2; |
$metadir='/res/'.$domain.'/'.$user.'/'.$2; |
@fileList = &Apache::lonnet::dirlist($subdir, $domain, $user, ''); |
@fileList = &Apache::lonnet::dirlist($subdir,$domain,$user,undef,undef,'/'); |
} else { |
} else { |
# local library server resource space |
# local library server resource space |
@fileList = &Apache::lonnet::dirlist($subdir, $env{'user.domain'}, $env{'user.name'}, ''); |
@fileList = &Apache::lonnet::dirlist($subdir,$env{'user.domain'},$env{'user.name'},undef,undef,'/'); |
} |
} |
|
|
# Sort the fileList into order |
# Sort the fileList into order |
Line 3603 sub render {
|
Line 3633 sub render {
|
|
|
# Print the granularity, depending on the action |
# Print the granularity, depending on the action |
if ($vars->{GRANULARITY} eq 'whole_course') { |
if ($vars->{GRANULARITY} eq 'whole_course') { |
$resourceString .= '<li>'.&mt('for <b>all resources in the course</b>').'</li>'; |
$resourceString .= '<li>'.&mt('for [_1]all resources in the course[_2]','<b>','</b>').'</li>'; |
if ($vars->{TARGETS} eq 'course') { |
if ($vars->{TARGETS} eq 'course') { |
$level = 14; # general course, see lonparmset.pm perldoc |
$level = 14; # general course, see lonparmset.pm perldoc |
} elsif ($vars->{TARGETS} eq 'section') { |
} elsif ($vars->{TARGETS} eq 'section') { |
Line 3719 sub render {
|
Line 3749 sub render {
|
|
|
# Print targets |
# Print targets |
if ($vars->{TARGETS} eq 'course') { |
if ($vars->{TARGETS} eq 'course') { |
$result .= '<li>'.&mt('for <b>all students in course</b>').'</li>'; |
$result .= '<li>'.&mt('for [_1]all students in course[_2]','<b>','</b>').'</li>'; |
} elsif ($vars->{TARGETS} eq 'section') { |
} elsif ($vars->{TARGETS} eq 'section') { |
my $section = $vars->{SECTION_NAME}; |
my $section = $vars->{SECTION_NAME}; |
$result .= '<li>'.&mt('for section [_1]',"<b>$section</b>").'</li>'; |
$result .= '<li>'.&mt('for section [_1]',"<b>$section</b>").'</li>'; |
Line 3744 sub render {
|
Line 3774 sub render {
|
|
|
# Print value |
# Print value |
if ($vars->{ACTION_TYPE} ne 'tries' && $vars->{ACTION_TYPE} ne 'weight') { |
if ($vars->{ACTION_TYPE} ne 'tries' && $vars->{ACTION_TYPE} ne 'weight') { |
$result .= '<li>'.&mt('to [_1] ([_2])',"<b>".ctime($vars->{PARM_DATE})."</b>",Apache::lonnavmaps::timeToHumanString($vars->{PARM_DATE}))."</li>\n"; |
my $showdate = &Apache::lonlocal::locallocaltime($vars->{PARM_DATE}); |
|
$result .= '<li>'.&mt('to [_1] ([_2])',"<b>".$showdate."</b>",Apache::lonnavmaps::timeToHumanString($vars->{PARM_DATE}))."</li>\n"; |
} |
} |
|
|
# print pres_marker |
# print pres_marker |