--- loncom/homework/edit.pm 2003/04/30 19:40:47 1.47
+++ loncom/homework/edit.pm 2003/05/13 20:48:12 1.52
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# edit mode helpers
#
-# $Id: edit.pm,v 1.47 2003/04/30 19:40:47 matthew Exp $
+# $Id: edit.pm,v 1.52 2003/05/13 20:48:12 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -40,6 +40,9 @@ use HTML::Entities();
# depth of nesting of edit
$Apache::edit::colordepth=0;
@Apache::edit::inserttag=();
+# image-type responses: active background image and curdepth at definition
+$Apache::edit::bgimgsrc='';
+$Apache::edit::bgimgsrccurdepth='';
sub initialize_edit {
$Apache::edit::colordepth=0;
@@ -383,6 +386,12 @@ sub insert_radiobuttonhint {
';
}
+sub insert_optionhint {
+ return '
+
+';
+}
+
sub insert_startouttext {
return "\n";
}
@@ -448,9 +457,10 @@ sub get_new_args {
foreach my $arg (@args) {
#just want the string that it was set to
my $value=$token->[2]->{$arg};
- my $newvalue=$ENV{"form.$Apache::lonxml::curdepth.$arg"};
+ my $element=&html_element_name($arg);
+ my $newvalue=$ENV{"form.$element"};
&Apache::lonxml::debug(" for:$arg: cur is :$value: new is :$newvalue:");
- if ($value ne $newvalue) {
+ if (defined($newvalue) && $value ne $newvalue) {
$token->[2]->{$arg}=$newvalue;
$rebuild=1;
}
@@ -483,7 +493,16 @@ sub rebuild_tag {
sub html_element_name {
my ($name) = @_;
- return $Apache::lonxml::curdepth.'.'.$name;
+ return $name.'_'.$Apache::lonxml::curdepth;
+}
+
+sub hidden_arg {
+ my ($name,$token) = @_;
+ my $result;
+ my $arg=$token->[2]{$name};
+ $result='';
+ return $result;
}
sub text_arg {
@@ -555,6 +574,64 @@ sub select_or_text_arg {
return $result;
}
+#----------------------------------------------------- image coordinates
+# single image coordinates, x, y
+sub entercoords {
+ my ($idx,,$idy,$mode,$width,$height) = @_;
+ unless ($Apache::edit::bgimgsrc) { return ''; }
+ if ($idx) { $idx.='_'; }
+ if ($idy) { $idy.='_'; }
+ my $bgfile=&Apache::lonnet::escape($Apache::edit::bgimgsrc);
+ my $form = 'lonhomework';
+ my $element;
+ if (! defined($mode) || $mode eq 'attribute') {
+ $element = &Apache::lonnet::escape("$Apache::lonxml::curdepth");
+ } elsif ($mode eq 'textnode') { # for data between ...
+ $element = &Apache::lonnet::escape('homework_edit_'.
+ $Apache::lonxml::curdepth);
+ }
+ my $formheight='';
+ if ($height) {
+ $formheight='&formheight='.$height.'_'.$Apache::edit::bgimgsrccurdepth;
+ }
+ my $formwidth='';
+ if ($width) {
+ $formwidth='&formwidth='.$width.'_'.$Apache::edit::bgimgsrccurdepth;
+ }
+ my $result = <<"ENDBUTTON";
+Click Coordinates
+ENDBUTTON
+ return $result;
+}
+
+# coordinate pair (x1,y1)-(x2,y2)
+sub entercoordpair {
+ my ($id,$mode,$width,$height) = @_;
+ unless ($Apache::edit::bgimgsrc) { return ''; }
+ my $bgfile=&Apache::lonnet::escape($Apache::edit::bgimgsrc);
+ my $form = 'lonhomework';
+ my $element;
+ if (! defined($mode) || $mode eq 'attribute') {
+ $element = &Apache::lonnet::escape("$id\_$Apache::lonxml::curdepth");
+ } elsif ($mode eq 'textnode') { # for data between ...
+ $element = &Apache::lonnet::escape('homework_edit_'.
+ $Apache::lonxml::curdepth);
+ }
+ my $formheight='';
+ if ($height) {
+ $formheight='&formheight='.$height.'_'.$Apache::edit::bgimgsrccurdepth;
+ }
+ my $formwidth='';
+ if ($width) {
+ $formwidth='&formwidth='.$width.'_'.$Apache::edit::bgimgsrccurdepth;
+ }
+ my $result = <<"ENDBUTTON";
+Click Coordinate Pair
+ENDBUTTON
+ return $result;
+}
#----------------------------------------------------- browse
sub browse {
# insert a link to call up the filesystem browser (lonindexer)
@@ -562,7 +639,7 @@ sub browse {
my $form = 'lonhomework';
my $element;
if (! defined($mode) || $mode eq 'attribute') {
- $element = &Apache::lonnet::escape("$Apache::lonxml::curdepth.$id");
+ $element = &Apache::lonnet::escape("$id\_$Apache::lonxml::curdepth");
} elsif ($mode eq 'textnode') { # for data between ...
$element = &Apache::lonnet::escape('homework_edit_'.
$Apache::lonxml::curdepth);
@@ -576,9 +653,15 @@ ENDBUTTON
#----------------------------------------------------- browse
sub search {
# insert a link to call up the filesystem browser (lonindexer)
- $_ = shift;
+ my ($id, $mode) = @_;
my $form = 'lonhomework';
- my $element = &Apache::lonnet::escape("$Apache::lonxml::curdepth.$_");
+ my $element;
+ if (! defined($mode) || $mode eq 'attribute') {
+ $element = &Apache::lonnet::escape("$id\_$Apache::lonxml::curdepth");
+ } elsif ($mode eq 'textnode') { # for data between ...
+ $element = &Apache::lonnet::escape('homework_edit_'.
+ $Apache::lonxml::curdepth);
+ }
my $result = <<"ENDBUTTON";
Search
ENDBUTTON
500 Internal Server Error
Internal Server Error
The server encountered an internal error or
misconfiguration and was unable to complete
your request.
Please contact the server administrator at
root@localhost to inform them of the time this error occurred,
and the actions you performed just before this error.
More information about this error may be available
in the server error log.