--- loncom/xml/lonxml.pm 2025/01/15 18:09:02 1.531.2.24.2.7 +++ loncom/xml/lonxml.pm 2024/07/08 01:05:55 1.531.2.27 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # XML Parser Module # -# $Id: lonxml.pm,v 1.531.2.24.2.7 2025/01/15 18:09:02 raeburn Exp $ +# $Id: lonxml.pm,v 1.531.2.27 2024/07/08 01:05:55 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -768,7 +768,6 @@ sub init_safespace { $safeeval->reval('use LONCAPA::LCMathComplex;'); $safeeval->permit_only(":default"); $safeeval->permit("entereval"); - $safeeval->permit("hintseval"); $safeeval->permit(":base_math"); $safeeval->permit("sort"); $safeeval->permit("time"); @@ -1634,6 +1633,21 @@ sub renderingoptions { return $output; } +sub setmode_javascript { + return <<"ENDSCRIPT"; +<script type="text/javascript"> +// <![CDATA[ +function setmode(form,probmode) { + var initial = form.problemmode.value; + form.problemmode.value = probmode; + form.submit(); + form.problemmode.value = initial; +} +// ]]> +</script> +ENDSCRIPT +} + sub inserteditinfo { my ($filecontents,$filetype,$filename,$symb,$itemtitle,$folderpath,$uri,$action) = @_; $filecontents = &HTML::Entities::encode($filecontents,'<>&"'); @@ -1710,8 +1724,7 @@ FULLPAGE 'vi' => 'Save and View', 'dv' => 'Discard Edits and View', 'un' => 'Undo', - 'ed' => 'Edit', - 'ew' => 'Edit with Daxe'); + 'ed' => 'Edit'); my $spelllink = &Apache::lonhtmlcommon::spelllink('xmledit','filecont'); my $textarea_events = &Apache::edit::element_change_detection(); my $form_events = &Apache::edit::form_change_detection(); @@ -1727,8 +1740,8 @@ FULLPAGE } } } - my ($undo,$daxebutton,%onclick); - foreach my $item ('discard','undo','daxe') { + my ($undo,%onclick); + foreach my $item ('discard','undo') { $onclick{$item} = 'onclick="still_ask=true;setmode(this.form,'."'$item'".')"'; } foreach my $item ('saveedit','saveview') { @@ -1736,16 +1749,9 @@ FULLPAGE } unless ($uri =~ m{^/uploaded/}) { $undo = '<input type="button" name="undo" accesskey="u" value="'.$lt{'un'}.'" '. - $onclick{'undo'}.' />'."\n"; + $onclick{'undo'}.' />'."\n"; } $initialize .= &setmode_javascript(); - if ($filetype eq 'html') { - my %editors = &Apache::loncommon::permitted_editors($uri); - if ($editors{'daxe'}) { - $daxebutton = '<input type="button" name="editwithdaxe" accesskey="w" value="'.$lt{'ew'}.'" '. - $onclick{'daxe'}.' />'."\n"; - } - } my $editfooter=(<<ENDFOOTER); $initialize <a name="editsection" /> @@ -1764,7 +1770,7 @@ $initialize </div> <div> <input type="button" name="discardview" accesskey="d" value="$lt{'dv'}" $onclick{'discard'} /> - $undo $deps_button $daxebutton $dragmath_button $htmlerror + $undo $deps_button $dragmath_button $htmlerror </div> </div> <textarea $textarea_events style="width:100%" cols="80" rows="44" name="filecont" id="filecont" $textareaclass>$filecontents</textarea><br />$spelllink @@ -1777,96 +1783,6 @@ ENDFOOTER return ($editfooter,$add_to_onload,$add_to_onresize); } -sub setmode_javascript { - return <<"ENDSCRIPT"; -<script type="text/javascript"> -// <![CDATA[ -function setmode(form,probmode) { - if (probmode == 'daxe') { - var url = new URL(document.location.href); - window.location = url.protocol+'//'+url.hostname+'/daxepage'+url.pathname; - } else { - var initial = form.problemmode.value; - form.problemmode.value = probmode; - form.submit(); - form.problemmode.value = initial; - } -} -// ]]> -</script> -ENDSCRIPT -} - -sub seteditor_javascript { - my ($is_course_doc,$is_supp,$supp_path,$supp_title) = @_; - my $symb; - if ($is_course_doc) { - if (!$is_supp) { - ($symb) = &Apache::lonnet::whichuser(); - if ($symb) { - $symb = &escape($symb); - } - } - } - return <<"ENDSCRIPT"; -<script type="text/javascript"> -// <![CDATA[ -function seteditmode(form,editor) { - var querystr = ''; - var supplemental = '$is_supp'; - var coursedoc = '$is_course_doc'; - if (coursedoc) { - if (supplemental) { - var supppath = '$supp_path'; - var supptitle = '$supp_title'; - if (supppath) { - querystr = 'folderpath='+supppath; - } - if (supptitle) { - if (querystr) { - querystr += '&'; - } - querystr += 'title='+supptitle; - } - } - } - if (editor == 'daxe') { - var url = new URL(document.location.href); - var newloc = url.protocol+'//'+url.hostname+'/daxepage'+url.pathname; - if (querystr) { - if (/\\?/.test(url.pathname)) { - newloc += '&'; - } else { - newloc += '?'; - } - newloc += querystr; - } - window.location = newloc; - } else { - if (coursedoc) { - var curraction = form.action; - var idx = curraction.indexOf('?'); - if (idx !== -1) { - form.action = curraction.substring(0,idx); - } - form.action += '?forceedit=1®ister=1'; - if (querystr) { - form.action += '&'+querystr; - } - } - if (editor == 'edit') { - form.editmode.value = editor; - } else { - form.editmode.value = ''; - } - form.submit(); - } -} -// ]]> -</script> -ENDSCRIPT -} - sub get_target { my $viewgrades=&Apache::lonnet::allowed('vgr',$env{'request.course.id'}); if ( $env{'request.state'} eq 'published') { @@ -2016,7 +1932,7 @@ ENDNOTFOUND &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['editmode']); } - if ((!$env{'form.editmode'}) || + if ((!$env{'form.editmode'}) || ($env{'form.problemmode'} eq 'saveview') || ($env{'form.problemmode'} eq 'discard')) { if ($filetype eq 'html' || $filetype eq 'sty') { @@ -2086,22 +2002,16 @@ ENDNOTFOUND # Edit action? Insert editing commands # unless (($env{'request.state'} eq 'published') || ($inhibit_menu)) { - if (($env{'form.editmode'}) && + if (($env{'form.editmode'}) && (!($env{'form.problemmode'} eq 'saveview')) && (!($env{'form.problemmode'} eq 'discard'))) { my ($displayfile,$url,$symb,$itemtitle,$action); $displayfile=$request->uri; if ($request->uri =~ m{^/uploaded/}) { if ($env{'request.course.id'}) { - if ($request->uri =~ m{^\Q/uploaded/$cdom/$cnum/\E(docs|supplemental)/}) { - if ($1 eq 'supplemental') { - &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, - ['folderpath','title']); - } - if (($env{'request.state'} eq 'edit') && ($env{'form.editmode'} eq 'edit') && - ($filetype eq 'html')) { - &Apache::lonhtmlcommon::clear_breadcrumbs(); - } + if ($request->uri =~ m{^\Q/uploaded/$cdom/$cnum/supplemental/\E}) { + &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, + ['folderpath','title']); } elsif ($request->uri =~ m{^\Q/uploaded/$cdom/$cnum/portfolio/syllabus/\E(.+)$}) { my $filename = $1; if ($1 eq 'loncapa.html') {