version 1.120, 2005/11/21 21:20:06
|
version 1.128, 2006/05/12 16:45:41
|
Line 178 sub get_recent {
|
Line 178 sub get_recent {
|
sub textbox { |
sub textbox { |
my ($name,$value,$size,$special) = @_; |
my ($name,$value,$size,$special) = @_; |
$size = 40 if (! defined($size)); |
$size = 40 if (! defined($size)); |
|
$value = &HTML::Entities::encode($value,'<>&"'); |
my $Str = '<input type="text" name="'.$name.'" size="'.$size.'" '. |
my $Str = '<input type="text" name="'.$name.'" size="'.$size.'" '. |
'value="'.$value.'" '.$special.' />'; |
'value="'.$value.'" '.$special.' />'; |
return $Str; |
return $Str; |
Line 524 sub get_date_from_form {
|
Line 525 sub get_date_from_form {
|
if (($year<70) || ($year>137)) { return undef; } |
if (($year<70) || ($year>137)) { return undef; } |
if (defined($sec) && defined($min) && defined($hour) && |
if (defined($sec) && defined($min) && defined($hour) && |
defined($day) && defined($month) && defined($year) && |
defined($day) && defined($month) && defined($year) && |
eval(&timelocal($sec,$min,$hour,$day,$month,$year))) { |
eval('&timelocal($sec,$min,$hour,$day,$month,$year)')) { |
return &timelocal($sec,$min,$hour,$day,$month,$year); |
return &timelocal($sec,$min,$hour,$day,$month,$year); |
} else { |
} else { |
return undef; |
return undef; |
Line 803 sub Create_PrgWin {
|
Line 804 sub Create_PrgWin {
|
$prog_state{'type'}=$type; |
$prog_state{'type'}=$type; |
if ($type eq 'popup') { |
if ($type eq 'popup') { |
$prog_state{'window'}='popwin'; |
$prog_state{'window'}='popwin'; |
my $html=&Apache::lonxml::xmlbegin(); |
my $start_page = |
|
&Apache::loncommon::start_page($title,undef, |
|
{'only_body' => 1, |
|
'bgcolor' => '#88DDFF', |
|
'js_ready' => 1}); |
|
my $end_page = &Apache::loncommon::end_page({'js_ready' => 1}); |
|
|
#the whole function called through timeout is due to issues |
#the whole function called through timeout is due to issues |
#in mozilla Read BUG #2665 if you want to know the whole story |
#in mozilla Read BUG #2665 if you want to know the whole story |
&r_print($r,'<script>'. |
&r_print($r,'<script type="text/javascript">'. |
"var popwin; |
"var popwin; |
function openpopwin () { |
function openpopwin () { |
popwin=open(\'\',\'popwin\',\'width=400,height=100\');". |
popwin=open(\'\',\'popwin\',\'width=400,height=100\');". |
"popwin.document.writeln(\'".$html."<head><title>$title</title></head>". |
"popwin.document.writeln(\'".$start_page. |
"<body bgcolor=\"#88DDFF\">". |
|
"<h4>$heading</h4>". |
"<h4>$heading</h4>". |
"<form name=popremain>". |
"<form name=popremain>". |
'<input type="text" size="'.$width.'" name="remaining" value="'. |
'<input type="text" size="'.$width.'" name="remaining" value="'. |
&mt('Starting').'"></form>'. |
&mt('Starting').'"></form>'.$end_page. |
"</body></html>\');". |
"\');". |
"popwin.document.close();}". |
"popwin.document.close();}". |
"\nwindow.setTimeout(openpopwin,0)</script>"); |
"\nwindow.setTimeout(openpopwin,0)</script>"); |
$prog_state{'formname'}='popremain'; |
$prog_state{'formname'}='popremain'; |
Line 974 sub crumbs {
|
Line 980 sub crumbs {
|
# --------------------- A function that generates a window for the spellchecker |
# --------------------- A function that generates a window for the spellchecker |
|
|
sub spellheader { |
sub spellheader { |
my $html=&Apache::lonxml::xmlbegin(); |
my $start_page= |
|
&Apache::loncommon::start_page('Speller Suggestions',undef, |
|
{'only_body' => 1, |
|
'js_ready' => 1, |
|
'bgcolor' => '#DDDDDD',}); |
|
my $end_page= |
|
&Apache::loncommon::end_page({'js_ready' => 1}); |
|
|
my $nothing=&javascript_nothing(); |
my $nothing=&javascript_nothing(); |
return (<<ENDCHECK); |
return (<<ENDCHECK); |
<script type="text/javascript"> |
<script type="text/javascript"> |
Line 983 var checkwin;
|
Line 996 var checkwin;
|
|
|
function spellcheckerwindow() { |
function spellcheckerwindow() { |
checkwin=window.open($nothing,'spellcheckwin','height=320,width=280,resizable=yes,scrollbars=yes,location=no,menubar=no,toolbar=no'); |
checkwin=window.open($nothing,'spellcheckwin','height=320,width=280,resizable=yes,scrollbars=yes,location=no,menubar=no,toolbar=no'); |
checkwin.document.writeln('$html<head></head><body bgcolor="#DDDDDD"><form name="spellcheckform" action="/adm/spellcheck" method="post"><input type="hidden" name="text" value="" /></form></body></html>'); |
checkwin.document.writeln('$start_page<form name="spellcheckform" action="/adm/spellcheck" method="post"><input type="hidden" name="text" value="" /></form>$end_page'); |
checkwin.document.close(); |
checkwin.document.close(); |
} |
} |
// END LON-CAPA Internal --> |
// END LON-CAPA Internal --> |
Line 1003 ENDLINK
|
Line 1016 ENDLINK
|
|
|
# ------------------------------------------------- Output headers for HTMLArea |
# ------------------------------------------------- Output headers for HTMLArea |
|
|
|
{ |
|
my @htmlareafields; |
|
sub init_htmlareafields { |
|
undef(@htmlareafields); |
|
} |
|
|
|
sub add_htmlareafields { |
|
my (@newfields) = @_; |
|
push(@htmlareafields,@newfields); |
|
} |
|
|
|
sub get_htmlareafields { |
|
return @htmlareafields; |
|
} |
|
} |
|
|
sub htmlareaheaders { |
sub htmlareaheaders { |
if (&htmlareablocked()) { return ''; } |
if (&htmlareablocked()) { return ''; } |
unless (&htmlareabrowser()) { return ''; } |
unless (&htmlareabrowser()) { return ''; } |
Line 1137 returns: nothing
|
Line 1166 returns: nothing
|
my @Crumbs; |
my @Crumbs; |
|
|
sub breadcrumbs { |
sub breadcrumbs { |
my ($color,$component,$component_help,$function,$domain,$menulink, |
my ($component,$component_help,$menulink,$helplink) = @_; |
$helplink) = @_; |
|
if (! defined($color)) { |
|
if (! defined($function)) { |
|
$function = &Apache::loncommon::get_users_function(); |
|
} |
|
$color = &Apache::loncommon::designparm($function.'.tabbg', |
|
$domain); |
|
} |
|
# |
# |
my $Str = "\n". |
my $Str = "\n".'<table id="LC_breadcrumbs"><tr><td>'; |
'<table width="100%" border="0" cellpadding="0" cellspacing="0">'. |
|
'<tr><td bgcolor="'.$color.'">'. |
|
'<font size="-1">'; |
|
# |
# |
# Make the faq and bug data cascade |
# Make the faq and bug data cascade |
my $faq = ''; |
my $faq = ''; |
Line 1205 returns: nothing
|
Line 1223 returns: nothing
|
# $icons .= &Apache::loncommon::help_open_bug($bug); |
# $icons .= &Apache::loncommon::help_open_bug($bug); |
# } |
# } |
if ($helplink ne 'nohelp') { |
if ($helplink ne 'nohelp') { |
$icons .= &Apache::loncommon::help_open_menu($color,$component,$component_help,$function,$faq,$bug); |
$icons .= &Apache::loncommon::help_open_menu(undef,$component, |
|
$component_help, |
|
undef,$faq,$bug); |
} |
} |
if ($icons ne '') { |
if ($icons ne '') { |
$Str .= $icons.' '; |
$Str .= $icons.' '; |
} |
} |
# |
# |
$Str .= $links.'</font></td>'; |
$Str .= $links.'</td>'; |
# |
# |
if (defined($component)) { |
if (defined($component)) { |
$Str .= '<td align="right" bgcolor="'.$color.'">'. |
$Str .= '<td class="LC_breadcrumb_component">'. |
'<font size="+1">'.&mt($component).'</font></td>'; |
&mt($component).'</td>'; |
} |
} |
$Str .= '</tr></table>'."\n"; |
$Str .= '</tr></table>'."\n"; |
# |
# |
Line 1601 sub echo_form_input {
|
Line 1621 sub echo_form_input {
|
# |
# |
# Intended to be called by onload event. |
# Intended to be called by onload event. |
# |
# |
# Input: |
# Inputs: |
# Reference to hash of echoed form elements to be set. |
# (a) Reference to hash of echoed form elements to be set. |
# |
# |
# In the hash, keys are the form element names, and the values are the |
# In the hash, keys are the form element names, and the values are the |
# element type (selectbox, radio, checkbox or text -for textbox, textarea or |
# element type (selectbox, radio, checkbox or text -for textbox, textarea or |
# hidden). |
# hidden). |
# |
# |
|
# (b) Optional reference to hash of stored elements to be set. |
|
# |
|
# If the page being displayed is a page which permits modification of |
|
# previously stored data, e.g., the first page in a multi-page submission, |
|
# then if stored is supplied, form elements will be set to the last stored |
|
# values. If user supplied values are also available for the same elements |
|
# these will replace the stored values. |
|
# |
# Output: |
# Output: |
# |
# |
# javascript function - set_form_elements() which sets form elements, |
# javascript function - set_form_elements() which sets form elements, |
Line 1615 sub echo_form_input {
|
Line 1643 sub echo_form_input {
|
# the DOM, e.g., document.compose |
# the DOM, e.g., document.compose |
|
|
sub set_form_elements { |
sub set_form_elements { |
my ($elements) = @_; |
my ($elements,$stored) = @_; |
|
my %values; |
my $output .= 'function setFormElements(courseForm) { |
my $output .= 'function setFormElements(courseForm) { |
'; |
'; |
|
if (defined($stored)) { |
|
foreach my $name (keys(%{$stored})) { |
|
if (exists($$elements{$name})) { |
|
if (ref($$stored{$name}) eq 'ARRAY') { |
|
$values{$name} = $$stored{$name}; |
|
} else { |
|
@{$values{$name}} = ($$stored{$name}); |
|
} |
|
} |
|
} |
|
} |
|
|
foreach my $key (keys(%env)) { |
foreach my $key (keys(%env)) { |
if ($key =~ /^form\.(.+)$/) { |
if ($key =~ /^form\.(.+)$/) { |
my $name = $1; |
my $name = $1; |
if (exists($$elements{$name})) { |
if (exists($$elements{$name})) { |
my @values = &Apache::loncommon::get_env_multiple($key); |
@{$values{$name}} = &Apache::loncommon::get_env_multiple($key); |
for (my $i=0; $i<@values; $i++) { |
} |
$values[$i] = &HTML::Entities::decode($values[$i],'<>&"'); |
} |
$values[$i] =~ s/([\r\n\f]+)/\\n/g; |
} |
$values[$i] =~ s/"/\\"/g; |
|
} |
foreach my $name (keys(%values)) { |
if ($$elements{$name} eq 'text') { |
for (my $i=0; $i<@{$values{$name}}; $i++) { |
my $numvalues = @values; |
$values{$name}[$i] = &HTML::Entities::decode($values{$name}[$i],'<>&"'); |
if ($numvalues > 1) { |
$values{$name}[$i] =~ s/([\r\n\f]+)/\\n/g; |
my $valuestring = join('","',@values); |
$values{$name}[$i] =~ s/"/\\"/g; |
$output .= qq| |
} |
|
if ($$elements{$name} eq 'text') { |
|
my $numvalues = @{$values{$name}}; |
|
if ($numvalues > 1) { |
|
my $valuestring = join('","',@{$values{$name}}); |
|
$output .= qq| |
var textvalues = new Array ("$valuestring"); |
var textvalues = new Array ("$valuestring"); |
var total = courseForm.$name.length; |
var total = courseForm.$name.length; |
if (total > $numvalues) { |
if (total > $numvalues) { |
Line 1642 sub set_form_elements {
|
Line 1688 sub set_form_elements {
|
courseForm.$name\[i].value = textvalues[i]; |
courseForm.$name\[i].value = textvalues[i]; |
} |
} |
|; |
|; |
} else { |
} else { |
$output .= qq| |
$output .= qq| |
courseForm.$name.value = "$values[0]"; |
courseForm.$name.value = "$values{$name}[0]"; |
|; |
|; |
} |
} |
} else { |
} else { |
$output .= qq| |
$output .= qq| |
var elementLength = courseForm.$name.length; |
var elementLength = courseForm.$name.length; |
if (elementLength==undefined) { |
if (elementLength==undefined) { |
|; |
|; |
foreach my $value (@values) { |
foreach my $value (@{$values{$name}}) { |
if ($$elements{$name} eq 'selectbox') { |
if ($$elements{$name} eq 'selectbox') { |
$output .= qq| |
$output .= qq| |
if (courseForm.$name.options[0].value == "$value") { |
if (courseForm.$name.options[0].value == "$value") { |
courseForm.$name.options[0].selected = true; |
courseForm.$name.options[0].selected = true; |
}|; |
}|; |
} elsif (($$elements{$name} eq 'radio') || |
} elsif (($$elements{$name} eq 'radio') || |
($$elements{$name} eq 'checkbox')) { |
($$elements{$name} eq 'checkbox')) { |
$output .= qq| |
$output .= qq| |
if (courseForm.$name.value == "$value") { |
if (courseForm.$name.value == "$value") { |
courseForm.$name.checked = true; |
courseForm.$name.checked = true; |
}|; |
}|; |
} |
} |
} |
} |
$output .= qq| |
$output .= qq| |
} |
} |
else { |
else { |
for (var i=0; i<courseForm.$name.length; i++) { |
for (var i=0; i<courseForm.$name.length; i++) { |
|; |
|; |
if ($$elements{$name} eq 'selectbox') { |
if ($$elements{$name} eq 'selectbox') { |
$output .= qq| |
$output .= qq| |
courseForm.$name.options[i].selected = false;|; |
courseForm.$name.options[i].selected = false;|; |
} elsif (($$elements{$name} eq 'radio') || |
} elsif (($$elements{$name} eq 'radio') || |
($$elements{$name} eq 'checkbox')) { |
($$elements{$name} eq 'checkbox')) { |
$output .= qq| |
$output .= qq| |
courseForm.$name\[i].checked = false;|; |
courseForm.$name\[i].checked = false;|; |
} |
} |
$output .= qq| |
$output .= qq| |
} |
} |
for (var j=0; j<courseForm.$name.length; j++) { |
for (var j=0; j<courseForm.$name.length; j++) { |
|; |
|; |
foreach my $value (@values) { |
foreach my $value (@{$values{$name}}) { |
if ($$elements{$name} eq 'selectbox') { |
if ($$elements{$name} eq 'selectbox') { |
$output .= qq| |
$output .= qq| |
if (courseForm.$name.options[j].value == "$value") { |
if (courseForm.$name.options[j].value == "$value") { |
courseForm.$name.options[j].selected = true; |
courseForm.$name.options[j].selected = true; |
}|; |
}|; |
} elsif (($$elements{$name} eq 'radio') || |
} elsif (($$elements{$name} eq 'radio') || |
($$elements{$name} eq 'checkbox')) { |
($$elements{$name} eq 'checkbox')) { |
$output .= qq| |
$output .= qq| |
if (courseForm.$name\[j].value == "$value") { |
if (courseForm.$name\[j].value == "$value") { |
courseForm.$name\[j].checked = true; |
courseForm.$name\[j].checked = true; |
}|; |
}|; |
} |
} |
} |
} |
$output .= qq| |
$output .= qq| |
} |
} |
} |
} |
|; |
|; |
} |
|
} |
|
} |
} |
} |
} |
$output .= " |
$output .= " |