--- loncom/xml/lonxml.pm 2007/08/03 23:29:54 1.449
+++ loncom/xml/lonxml.pm 2007/08/22 19:02:06 1.453
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# XML Parser Module
#
-# $Id: lonxml.pm,v 1.449 2007/08/03 23:29:54 albertel Exp $
+# $Id: lonxml.pm,v 1.453 2007/08/22 19:02:06 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1350,16 +1350,19 @@ SIMPLECONTENT
sub inserteditinfo {
- my ($result,$filecontents,$filetype)=@_;
+ my ($filecontents,$filetype)=@_;
$filecontents = &HTML::Entities::encode($filecontents,'<>&"');
# my $editheader='Edit below
';
my $xml_help = '';
my $initialize='';
+ my $textarea_id = 'filecont';
+ my ($add_to_onload, $add_to_onresize);
if ($filetype eq 'html') {
my $addbuttons=&Apache::lonhtmlcommon::htmlareaaddbuttons();
$initialize=&Apache::lonhtmlcommon::spellheader();
if (!&Apache::lonhtmlcommon::htmlareablocked() &&
&Apache::lonhtmlcommon::htmlareabrowser()) {
+ $textarea_id .= '_htmlarea';
$initialize.=(<
$addbuttons
@@ -1370,6 +1373,13 @@ $addbuttons
var editor=new HTMLArea("filecont",config);
editor.registerPlugin(FullPage);
editor.generate();
+ setTimeout(
+ function () {
+ HTMLArea._addEvents(editor._doc,
+ ["keypress","mousedown"], unClean);
+ editor._iframe.id = '$textarea_id';
+ resize_textarea('$textarea_id','LC_aftertextarea');
+ },300);
}
FULLPAGE
@@ -1378,13 +1388,16 @@ FULLPAGE
FULLPAGE
}
- $result=~s/\]*)\>/\/i;
+ $add_to_onload = 'initDocument();';
+ $add_to_onresize = "resize_textarea('$textarea_id','LC_aftertextarea');";
$xml_help=&Apache::loncommon::helpLatexCheatsheet();
}
+
my $cleanbut = '';
my $titledisplay=&display_title();
@@ -1401,24 +1414,26 @@ $cleanbut
BUTTONS
$buttons.=&Apache::lonhtmlcommon::spelllink('xmledit','filecont');
+ my $textarea_events = &Apache::edit::element_change_detection();
+ my $form_events = &Apache::edit::form_change_detection();
my $editfooter=(<
-
ENDFOOTER
-# $result=~s/(\]*\>)/$1$editheader/is;
- $result=~s/(\<\/body\>)/$editfooter/is;
- return $result;
+ return ($editfooter,$add_to_onload,$add_to_onresize);;
}
sub get_target {
@@ -1528,24 +1543,35 @@ ENDNOTFOUND
#
unless ($env{'request.state'} eq 'published') {
if ($env{'form.editmode'} && (!($env{'form.viewmode'})) && (!($env{'form.discardview'})))
- {
+ {
+ my ($edit_info, $add_to_onload, $add_to_onresize)=
+ &inserteditinfo($filecontents,$filetype);
+
my $displayfile=$request->uri;
$displayfile=~s/^\/[^\/]*//;
- my %options = ();
+ my %options =
+ ('add_entries' =>
+ {'onresize' => $add_to_onresize,
+ 'onload' => $add_to_onload, });
+
if ($env{'environment.remote'} ne 'off') {
$options{'bgcolor'} = '#FFFFFF';
+ $options{'only_body'} = 1;
}
- my $start_page = &Apache::loncommon::start_page(undef,undef,
+ my $js =
+ &Apache::edit::js_change_detection().
+ &Apache::loncommon::resize_textarea_js();
+ my $start_page = &Apache::loncommon::start_page(undef,$js,
\%options);
$result=$start_page.
&Apache::lonxml::message_location().''.
$displayfile.
- '
'.&Apache::loncommon::end_page();
- $result=&inserteditinfo($result,$filecontents,$filetype);
+ ''.
+ $edit_info.
+ &Apache::loncommon::end_page();
}
}
if ($filetype eq 'html') { &writeallows($request->uri); }
-
&Apache::lonxml::add_messages(\$result);
$request->print($result);