version 1.55, 2004/02/20 17:03:38
|
version 1.72, 2004/06/03 14:28:39
|
Line 163 sub textbox {
|
Line 163 sub textbox {
|
############################################## |
############################################## |
############################################## |
############################################## |
sub checkbox { |
sub checkbox { |
my ($name,$value) = @_; |
my ($name,$checked,$value) = @_; |
my $Str = '<input type="checkbox" name="'.$name.'"'. |
my $Str = '<input type="checkbox" name="'.$name.'" '; |
($value?' checked="1"':'').' />'; |
if (defined($value)) { |
|
$Str .= 'value="'.$value.'"'; |
|
} |
|
if ($checked) { |
|
$Str .= ' checked="1"'; |
|
} |
|
$Str .= ' />'; |
return $Str; |
return $Str; |
} |
} |
|
|
Line 201 Also, to be explicit, a value of 'now' a
|
Line 207 Also, to be explicit, a value of 'now' a
|
Additional html/javascript to be associated with each element in |
Additional html/javascript to be associated with each element in |
the date_setter. See lonparmset for example usage. |
the date_setter. See lonparmset for example usage. |
|
|
|
=item $includeempty |
|
|
|
=item $state |
|
|
|
Specifies the initial state of the form elements. Either 'disabled' or empty. |
|
Defaults to empty, which indiciates the form elements are not disabled. |
|
|
=back |
=back |
|
|
Bugs |
Bugs |
Line 212 The method used to restrict user input w
|
Line 225 The method used to restrict user input w
|
############################################## |
############################################## |
############################################## |
############################################## |
sub date_setter { |
sub date_setter { |
my ($formname,$dname,$currentvalue,$special,$includeempty) = @_; |
my ($formname,$dname,$currentvalue,$special,$includeempty,$state, |
|
$no_hh_mm_ss) = @_; |
|
if (! defined($state) || $state ne 'disabled') { |
|
$state = ''; |
|
} |
|
if (! defined($no_hh_mm_ss)) { |
|
$no_hh_mm_ss = 0; |
|
} |
if (! defined($currentvalue) || $currentvalue eq 'now') { |
if (! defined($currentvalue) || $currentvalue eq 'now') { |
unless ($includeempty) { |
unless ($includeempty) { |
$currentvalue = time; |
$currentvalue = time; |
Line 221 sub date_setter {
|
Line 241 sub date_setter {
|
} |
} |
} |
} |
# other potentially useful values: wkday,yrday,is_daylight_savings |
# other potentially useful values: wkday,yrday,is_daylight_savings |
my ($sec,$min,$hour,$mday,$month,$year)=('','','','','',''); |
my ($sec,$min,$hour,$mday,$month,$year)=('','',undef,'','',''); |
if ($currentvalue) { |
if ($currentvalue) { |
($sec,$min,$hour,$mday,$month,$year,undef,undef,undef) = |
($sec,$min,$hour,$mday,$month,$year,undef,undef,undef) = |
localtime($currentvalue); |
localtime($currentvalue); |
Line 261 sub date_setter {
|
Line 281 sub date_setter {
|
} |
} |
} |
} |
|
|
|
function $dname\_disable() { |
|
document.$formname.$dname\_month.disabled=true; |
|
document.$formname.$dname\_day.disabled=true; |
|
document.$formname.$dname\_year.disabled=true; |
|
document.$formname.$dname\_hour.disabled=true; |
|
document.$formname.$dname\_minute.disabled=true; |
|
document.$formname.$dname\_second.disabled=true; |
|
} |
|
|
|
function $dname\_enable() { |
|
document.$formname.$dname\_month.disabled=false; |
|
document.$formname.$dname\_day.disabled=false; |
|
document.$formname.$dname\_year.disabled=false; |
|
document.$formname.$dname\_hour.disabled=false; |
|
document.$formname.$dname\_minute.disabled=false; |
|
document.$formname.$dname\_second.disabled=false; |
|
} |
|
|
function $dname\_opencalendar() { |
function $dname\_opencalendar() { |
var calwin=window.open( |
if (! document.$formname.$dname\_month.disabled) { |
|
var calwin=window.open( |
"/adm/announcements?pickdate=yes&formname=$formname&element=$dname&month="+ |
"/adm/announcements?pickdate=yes&formname=$formname&element=$dname&month="+ |
document.$formname.$dname\_month.value+"&year="+ |
document.$formname.$dname\_month.value+"&year="+ |
document.$formname.$dname\_year.value, |
document.$formname.$dname\_year.value, |
"LONCAPAcal", |
"LONCAPAcal", |
"height=350,width=350,scrollbars=yes,resizable=yes,menubar=no"); |
"height=350,width=350,scrollbars=yes,resizable=yes,menubar=no"); |
|
} |
|
|
} |
} |
</script> |
</script> |
ENDJS |
ENDJS |
$result .= " <nobr><select name=\"$dname\_month\" ".$special.' '. |
$result .= " <nobr><select name=\"$dname\_month\" ".$special.' '. |
|
$state.' '. |
"onChange=\"javascript:$dname\_checkday()\" >\n"; |
"onChange=\"javascript:$dname\_checkday()\" >\n"; |
|
# Month |
my @Months = qw/January February March April May June |
my @Months = qw/January February March April May June |
July August September October November December/; |
July August September October November December/; |
# Pad @Months with a bogus value to make indexing easier |
# Pad @Months with a bogus value to make indexing easier |
Line 285 ENDJS
|
Line 327 ENDJS
|
$result .= "> ".&mt($Months[$m])." </option>\n"; |
$result .= "> ".&mt($Months[$m])." </option>\n"; |
} |
} |
$result .= " </select>\n"; |
$result .= " </select>\n"; |
$result .= " <input type=\"text\" name=\"$dname\_day\" ". |
# Day |
|
$result .= " <input type=\"text\" name=\"$dname\_day\" ".$state.' '. |
"value=\"$mday\" size=\"3\" ".$special.' '. |
"value=\"$mday\" size=\"3\" ".$special.' '. |
"onChange=\"javascript:$dname\_checkday()\" />\n"; |
"onChange=\"javascript:$dname\_checkday()\" />\n"; |
$result .= " <input type=\"year\" name=\"$dname\_year\" ". |
# Year |
|
$result .= " <input type=\"year\" name=\"$dname\_year\" ".$state.' '. |
"value=\"$year\" size=\"5\" ".$special.' '. |
"value=\"$year\" size=\"5\" ".$special.' '. |
"onChange=\"javascript:$dname\_checkday()\" />\n"; |
"onChange=\"javascript:$dname\_checkday()\" />\n"; |
$result .= " "; |
$result .= " "; |
$result .= " <select name=\"$dname\_hour\" ".$special." >\n"; |
if (! $no_hh_mm_ss) { |
if ($includeempty) { $result.="<option value=''></option>"; } |
# Hours |
for (my $h = 0;$h<24;$h++) { |
$result .= " <select name=\"$dname\_hour\" ".$special." ".$state.' '. |
$result .= " <option value=\"$h\" "; |
">\n"; |
$result .= "selected " if ($hour == $h); |
if ($includeempty) { $result.="<option value=''></option>"; } |
$result .= "> "; |
for (my $h = 0;$h<24;$h++) { |
my $timest=''; |
$result .= " <option value=\"$h\" "; |
if ($h == 0) { |
$result .= "selected " if (defined($hour) && $hour == $h); |
$timest .= "12 am"; |
$result .= "> "; |
} elsif($h == 12) { |
my $timest=''; |
$timest .= "12 noon"; |
if ($h == 0) { |
} elsif($h < 12) { |
$timest .= "12 am"; |
$timest .= "$h am"; |
} elsif($h == 12) { |
} else { |
$timest .= "12 noon"; |
$timest .= $h-12 ." pm"; |
} elsif($h < 12) { |
} |
$timest .= "$h am"; |
$timest=&mt($timest); |
} else { |
$result .= $timest." </option>\n"; |
$timest .= $h-12 ." pm"; |
} |
} |
$result .= " </select>\n"; |
$timest=&mt($timest); |
$result .= " <input type=\"text\" name=\"$dname\_minute\" ".$special.' '. |
$result .= $timest." </option>\n"; |
"value=\"$min\" size=\"3\" /> m\n"; |
} |
$result .= " <input type=\"text\" name=\"$dname\_second\" ".$special.' '. |
$result .= " </select>\n"; |
"value=\"$sec\" size=\"3\" /> s\n"; |
$result .= " <input type=\"text\" name=\"$dname\_minute\" ". |
|
$special.' '. |
|
$state.' '. |
|
"value=\"$min\" size=\"3\" /> m\n"; |
|
$result .= " <input type=\"text\" name=\"$dname\_second\" ". |
|
$special.' '. |
|
$state.' '. |
|
"value=\"$sec\" size=\"3\" /> s\n"; |
|
} |
$result .= "<a href=\"javascript:$dname\_opencalendar()\">". |
$result .= "<a href=\"javascript:$dname\_opencalendar()\">". |
&mt('Select Date')."</a></nobr>\n<!-- end $dname date setting form -->\n"; |
&mt('Select Date')."</a></nobr>\n<!-- end $dname date setting form -->\n"; |
return $result; |
return $result; |
Line 359 sub get_date_from_form {
|
Line 411 sub get_date_from_form {
|
if (($tmpsec =~ /^\d+$/) && ($tmpsec >= 0) && ($tmpsec < 60)) { |
if (($tmpsec =~ /^\d+$/) && ($tmpsec >= 0) && ($tmpsec < 60)) { |
$sec = $tmpsec; |
$sec = $tmpsec; |
} |
} |
|
if (!defined($tmpsec) || $tmpsec eq '') { $sec = 0; } |
|
} else { |
|
$sec = 0; |
} |
} |
if (defined($ENV{'form.'.$dname.'_minute'})) { |
if (defined($ENV{'form.'.$dname.'_minute'})) { |
my $tmpmin = $ENV{'form.'.$dname.'_minute'}; |
my $tmpmin = $ENV{'form.'.$dname.'_minute'}; |
if (($tmpmin =~ /^\d+$/) && ($tmpmin >= 0) && ($tmpmin < 60)) { |
if (($tmpmin =~ /^\d+$/) && ($tmpmin >= 0) && ($tmpmin < 60)) { |
$min = $tmpmin; |
$min = $tmpmin; |
} |
} |
|
if (!defined($tmpmin) || $tmpmin eq '') { $min = 0; } |
|
} else { |
|
$min = 0; |
} |
} |
if (defined($ENV{'form.'.$dname.'_hour'})) { |
if (defined($ENV{'form.'.$dname.'_hour'})) { |
my $tmphour = $ENV{'form.'.$dname.'_hour'}; |
my $tmphour = $ENV{'form.'.$dname.'_hour'}; |
if (($tmphour =~ /^\d+$/) && ($tmphour >= 0) && ($tmphour < 24)) { |
if (($tmphour =~ /^\d+$/) && ($tmphour >= 0) && ($tmphour < 24)) { |
$hour = $tmphour; |
$hour = $tmphour; |
} |
} |
|
} else { |
|
$hour = 0; |
} |
} |
if (defined($ENV{'form.'.$dname.'_day'})) { |
if (defined($ENV{'form.'.$dname.'_day'})) { |
my $tmpday = $ENV{'form.'.$dname.'_day'}; |
my $tmpday = $ENV{'form.'.$dname.'_day'}; |
Line 676 sub Create_PrgWin {
|
Line 736 sub Create_PrgWin {
|
} |
} |
if (!$inputname) { |
if (!$inputname) { |
$prog_state{'inputname'}=&get_uniq_name(); |
$prog_state{'inputname'}=&get_uniq_name(); |
&r_print($r,'<input type="text" name="'.$prog_state{'inputname'}. |
&r_print($r,$heading.' <input type="text" name="'.$prog_state{'inputname'}. |
'" size="'.$width.'" />'); |
'" size="'.$width.'" />'); |
} else { |
} else { |
$prog_state{'inputname'}=$inputname; |
$prog_state{'inputname'}=$inputname; |
Line 781 sub r_print {
|
Line 841 sub r_print {
|
# ------------------------------------------------------- Puts directory header |
# ------------------------------------------------------- Puts directory header |
|
|
sub crumbs { |
sub crumbs { |
my ($uri,$target,$prefix,$form)=@_; |
my ($uri,$target,$prefix,$form,$size)=@_; |
my $output='<br /><tt><b><font size="+2">'.$prefix.'/'; |
if (! defined($size)) { |
|
$size = '+2'; |
|
} |
|
my $output='<br /><tt><b><font size="'.$size.'">'.$prefix.'/'; |
if ($ENV{'user.adv'}) { |
if ($ENV{'user.adv'}) { |
my $path=$prefix.'/'; |
my $path=$prefix.'/'; |
foreach (split('/',$uri)) { |
foreach (split('/',$uri)) { |
Line 805 sub crumbs {
|
Line 868 sub crumbs {
|
# ------------------------------------------------- Output headers for HTMLArea |
# ------------------------------------------------- Output headers for HTMLArea |
|
|
sub htmlareaheaders { |
sub htmlareaheaders { |
unless (&htmlareabrowser()) { return ''; } |
if (&htmlareablocked()) { return ''; } |
my $lang='en'; |
my $lang='en'; |
|
if (&mt('htmlarea_lang') ne 'htmlarea_lang') { |
|
$lang=&mt('htmlarea_lang'); |
|
} |
return (<<ENDHEADERS); |
return (<<ENDHEADERS); |
|
<script type="text/javascript"> |
|
_editor_url="/htmlarea/"; |
|
</script> |
<script type="text/javascript" src="/htmlarea/htmlarea.js"></script> |
<script type="text/javascript" src="/htmlarea/htmlarea.js"></script> |
<script type="text/javascript" src="/htmlarea/lang/$lang.js"></script> |
<style type="text/javascript"> |
<script type="text/javascript" src="/htmlarea/dialog.js"></script> |
_editor_url='/htmlarea/'; |
<style type="text/css"> |
_editor_lang='$lang'; |
\@import url(/htmlarea/htmlarea.css); |
|
</style> |
</style> |
ENDHEADERS |
ENDHEADERS |
} |
} |
Line 820 ENDHEADERS
|
Line 888 ENDHEADERS
|
# ---------------------------------------------------------- Script to activate |
# ---------------------------------------------------------- Script to activate |
|
|
sub htmlareaactive { |
sub htmlareaactive { |
unless (&htmlareabrowser()) { return ''; } |
if (&htmlareablocked()) { return ''; } |
return (<<ENDSCRIPT); |
return (<<ENDSCRIPT); |
<script type="text/javascript" defer="1"> |
<script type="text/javascript" defer="1"> |
HTMLArea.replaceAll(); |
HTMLArea.replaceAll(); |
Line 828 sub htmlareaactive {
|
Line 896 sub htmlareaactive {
|
ENDSCRIPT |
ENDSCRIPT |
} |
} |
|
|
|
# ----------------------------------------- Script to activate only some fields |
|
|
|
sub htmlareaselectactive { |
|
if (&htmlareablocked()) { return ''; } |
|
my $output='<script type="text/javascript" defer="1">'; |
|
foreach(@_) { |
|
$output.="\nHTMLArea.replace('$_');"; |
|
} |
|
$output.="\n</script>"; |
|
return $output; |
|
} |
|
|
|
# --------------------------------------------------------------------- Blocked |
|
|
|
sub htmlareablocked { |
|
unless (&htmlareabrowser()) { return 1; } |
|
return 0; |
|
} |
|
|
# ---------------------------------------- Browser capable of running HTMLArea? |
# ---------------------------------------- Browser capable of running HTMLArea? |
|
|
sub htmlareabrowser { |
sub htmlareabrowser { |
Line 853 All inputs can be undef without problems
|
Line 940 All inputs can be undef without problems
|
Inputs: $color (the background color of the table returned), |
Inputs: $color (the background color of the table returned), |
$component (the large text on the right side of the table), |
$component (the large text on the right side of the table), |
$component_help |
$component_help |
|
$function (role to get colors from) |
|
$domain (domian of role) |
|
$menulink (boolean, controls whether to include a link to /adm/menu) |
|
|
Returns a string containing breadcrumbs for the current page. |
Returns a string containing breadcrumbs for the current page. |
|
|
Line 876 returns: nothing
|
Line 966 returns: nothing
|
############################################################ |
############################################################ |
{ |
{ |
my @Crumbs; |
my @Crumbs; |
|
|
sub breadcrumbs { |
sub breadcrumbs { |
my ($color,$component,$component_help,$function,$domain) = @_; |
my ($color,$component,$component_help,$function,$domain,$menulink) = |
|
@_; |
if (! defined($color)) { |
if (! defined($color)) { |
if (! defined($function)) { |
if (! defined($function)) { |
$function = &Apache::loncommon::get_users_function(); |
$function = &Apache::loncommon::get_users_function(); |
Line 891 returns: nothing
|
Line 982 returns: nothing
|
'<table width="100%" border="0" cellpadding="0" cellspacing="0">'. |
'<table width="100%" border="0" cellpadding="0" cellspacing="0">'. |
'<tr><td bgcolor="'.$color.'">'. |
'<tr><td bgcolor="'.$color.'">'. |
'<font size="-1">'; |
'<font size="-1">'; |
# The last breadcrumb does not have a link, so handle it seperately. |
# |
|
# Make the faq and bug data cascade |
|
my $faq = ''; |
|
my $bug = ''; |
|
# The last breadcrumb does not have a link, so handle it separately. |
my $last = pop(@Crumbs); |
my $last = pop(@Crumbs); |
# The first one should be the course, I guess. |
# |
if (exists($ENV{'request.course.id'})) { |
# The first one should be the course or a menu link |
my $cid = $ENV{'request.course.id'}; |
if (!defined($menulink)) { $menulink=1; } |
unshift(@Crumbs,{href=>'/adm/menu', |
if ($menulink) { |
title=>'Go to main menu', |
my $description = 'Menu'; |
text=>$ENV{'course.'.$cid.'.description'}, |
if (exists($ENV{'request.course.id'}) && |
}); |
$ENV{'request.course.id'} ne '') { |
|
$description = |
|
$ENV{'course.'.$ENV{'request.course.id'}.'.description'}; |
|
} |
|
unshift(@Crumbs,{ |
|
href =>'/adm/menu', |
|
title =>'Go to main menu', |
|
target =>'_top', |
|
text =>$description, |
|
}); |
} |
} |
my $links .= |
my $links .= |
join('->', |
join('->', |
map { |
map { |
'<a href="'.$_->{'href'}.'" title="'.$_->{'title'}.'">'. |
$faq = $_->{'faq'} if (exists($_->{'faq'})); |
$_->{'text'}.'</a>' |
$bug = $_->{'bug'} if (exists($_->{'bug'})); |
|
my $result = '<a href="'.$_->{'href'}.'" '; |
|
if (defined($_->{'target'}) && $_->{'target'} ne '') { |
|
$result .= 'target="'.$_->{'target'}.'" '; |
|
} |
|
$result .='title="'.&mt($_->{'title'}).'">'. |
|
&mt($_->{'text'}).'</a>'; |
|
$result; |
} @Crumbs |
} @Crumbs |
); |
); |
$links .= '->' if ($links ne ''); |
$links .= '->' if ($links ne ''); |
$links .= '<b>'.$last->{'text'}.'</b>'; |
$links .= '<b>'.$last->{'text'}.'</b>'; |
# |
# |
my $icons = ''; |
my $icons = ''; |
if (exists($last->{'faq'})) { |
$faq = $last->{'faq'} if (exists($last->{'faq'})); |
$icons .= &Apache::loncommon::help_open_faq($last->{'faq'}); |
$bug = $last->{'bug'} if (exists($last->{'bug'})); |
|
if ($faq ne '') { |
|
$icons .= &Apache::loncommon::help_open_faq($faq); |
} |
} |
if (exists($last->{'bug'})) { |
if ($bug ne '') { |
$icons .= &Apache::loncommon::help_open_bug($last->{'bug'}); |
$icons .= &Apache::loncommon::help_open_bug($bug); |
} |
} |
if ($icons ne '') { |
if ($icons ne '') { |
$Str .= $icons.' '; |
$Str .= $icons.' '; |
Line 926 returns: nothing
|
Line 1039 returns: nothing
|
# |
# |
if (defined($component)) { |
if (defined($component)) { |
$Str .= '<td align="right" bgcolor="'.$color.'">'. |
$Str .= '<td align="right" bgcolor="'.$color.'">'. |
'<font size="+1">'.$component.'</font>'; |
'<font size="+1">'.&mt($component).'</font>'; |
if (defined($component_help)) { |
if (defined($component_help)) { |
$Str .= |
$Str .= |
&Apache::loncommon::help_open_topic($component_help); |
&Apache::loncommon::help_open_topic($component_help); |
Line 950 returns: nothing
|
Line 1063 returns: nothing
|
push (@Crumbs,@_); |
push (@Crumbs,@_); |
} |
} |
|
|
} |
} # End of scope for @Crumbs |
|
|
############################################################ |
############################################################ |
############################################################ |
############################################################ |