--- loncom/homework/functionplotresponse.pm 2010/10/19 02:04:27 1.15 +++ loncom/homework/functionplotresponse.pm 2010/10/28 00:27:56 1.16 @@ -1,7 +1,7 @@ # LearningOnline Network with CAPA # option list style responses # -# $Id: functionplotresponse.pm,v 1.15 2010/10/19 02:04:27 www Exp $ +# $Id: functionplotresponse.pm,v 1.16 2010/10/28 00:27:56 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -101,12 +101,25 @@ ENDDEFAULTPARAMETERS # sub init_script { - if ($Apache::functionplotresponse::callscripts) { + if ($#Apache::functionplotresponse::callscripts>=0) { + my $script=''; + foreach my $id (@Apache::functionplotresponse::callscripts) { + $script.="if (param=='applet_$id') { loaded_$id=true; }\n"; + } + $script.="if (".join(' && ',map { "loaded_$_" } (@Apache::functionplotresponse::callscripts)). + ") { setTimeout('ggbInitAll()',20) }\n"; + my $calls=join("\n",map { "ggbInit_$_();" } (@Apache::functionplotresponse::callscripts)); return (< // @@ -194,14 +207,16 @@ sub new_coordinate { # sub start_init_script { my ($id)=@_; -# Add a line to ggbOnInit-function which calls the right function based on parameter passed from GeoGebra - $Apache::functionplotresponse::callscripts.="if (param=='applet_$id') { ggbInit_$id(); }\n"; +# Add id to the list of ggbInit_$id functions that need to be called + push(@Apache::functionplotresponse::callscripts,$id); # ... and open this function return (< //