--- loncom/xml/lonxml.pm 2002/03/06 20:28:19 1.155 +++ loncom/xml/lonxml.pm 2002/03/18 21:51:34 1.158 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # XML Parser Module # -# $Id: lonxml.pm,v 1.155 2002/03/06 20:28:19 matthew Exp $ +# $Id: lonxml.pm,v 1.158 2002/03/18 21:51:34 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -64,6 +64,7 @@ qw(@pwd @outputstack $redirection $impor use strict; use HTML::TokeParser; use HTML::TreeBuilder; +use HTML::Entities; use Safe; use Safe::Hole; use Math::Cephes qw(:trigs :hypers :bessels erf erfc); @@ -355,7 +356,7 @@ ENDPARM // BEGIN LON-CAPA Internal function LONCAPAreg() { - menu=window.open("","LONCAPAmenu"); + menu=window.open("","LONCAPAmenu","",false); menu.clearTimeout(menu.menucltim); menu.currentURL=window.location.pathname; menu.currentStale=0; @@ -382,7 +383,7 @@ ENDPARM } function LONCAPAstale() { - menu=window.open("","LONCAPAmenu"); + menu=window.open("","LONCAPAmenu","",false); menu.currentStale=1; menu.switchbutton (3,1,'reload.gif','return','location','go(currentURL)'); @@ -407,7 +408,7 @@ ENDREGTHIS // BEGIN LON-CAPA Internal function LONCAPAreg() { - menu=window.open("","LONCAPAmenu"); + menu=window.open("","LONCAPAmenu","",false); menu.currentStale=1; menu.clearbut(2,1); menu.clearbut(2,3); @@ -430,12 +431,18 @@ ENDREGTHIS ENDDONOTREGTHIS } if ($target eq 'edit') { + # Javascript routines for construction space: + # openbrowser and opensearcher will start the file browser + # (lonindexer) and searcher (lonsearchcat) respectively. + # Inputs are the name of the html form being used + # and the name of the element the selected URL should + # be placed in. $result .=<<"ENDBROWSERSCRIPT"; <script> - var editform; + var editbrowser; function openbrowser(formname,elementname) { var url = '/res/?'; - if (editform == null) { + if (editbrowser == null) { url += 'launch=1&'; } url += 'catalogmode=interactive&'; @@ -445,8 +452,24 @@ ENDDONOTREGTHIS var title = 'Browser'; var options = 'scrollbars=1,resizable=1,menubar=0'; options += ',width=700,height=600'; - editform = open(url,title,options,'1'); - editform.focus(); + editbrowser = open(url,title,options,'1'); + editbrowser.focus(); + } + var editsearcher; + function opensearcher(formname,elementname) { + var url = '/adm/searchcat?'; + if (editsearcher == null) { + url += 'launch=1&'; + } + url += 'catalogmode=interactive&'; + url += 'mode=edit&'; + url += 'form=' + formname + '&'; + url += 'element=' + elementname + ''; + var title = 'Search'; + var options = 'scrollbars=1,resizable=1,menubar=0'; + options += ',width=700,height=600'; + editsearcher = open(url,title,options,'1'); + editsearcher.focus(); } </script> ENDBROWSERSCRIPT @@ -1065,7 +1088,7 @@ SIMPLECONTENT sub inserteditinfo { my ($result,$filecontents)=@_; - $filecontents =~ s:</textarea>:</textarea>:ig; + $filecontents = &HTML::Entities::encode($filecontents); # my $editheader='<a href="#editsection">Edit below</a><hr />'; my $editfooter=(<<ENDFOOTER); <hr /> @@ -1228,6 +1251,7 @@ sub get_param { if ( ! $context ) { $context = -1; } my $args =''; if ( $#$parstack > (-2-$context) ) { $args=$$parstack[$context]; } + if ( ! $args ) { return undef; } if ( $args =~ /my \$$param=\"/ ) { return &Apache::run::run("{$args;".'return $'.$param.'}',$safeeval); #' } else {