--- loncom/homework/daxepage.pm 2016/02/14 16:07:13 1.4 +++ loncom/homework/daxepage.pm 2023/11/27 23:24:04 1.9 @@ -1,7 +1,7 @@ # The LearningOnline Network # Page with Daxe on the left side and the preview on the right side # -# $Id: daxepage.pm,v 1.4 2016/02/14 16:07:13 raeburn Exp $ +# $Id: daxepage.pm,v 1.9 2023/11/27 23:24:04 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -28,39 +28,180 @@ ### package Apache::daxepage; +use strict; -use Apache::Constants; +use Apache::loncommon(); +use Apache::lonhtmlcommon(); +use Apache::lonxml(); +use Apache::edit(); +use Apache::lonmenu(); +use Apache::lonlocal; +use Apache::Constants qw(:common); +use LONCAPA qw(:DEFAULT :match); +use HTML::Entities(); sub handler { my $request = shift; my $uri = $request->uri; - $uri =~ s/^\/daxepage//; + $uri =~ s{^/daxepage}{}; &Apache::loncommon::content_type($request,'text/html'); - if ($uri !~ /\.(task|problem|exam|quiz|assess|survey|library|xml|html|htm|xhtml|xhtm)$/) { + my ($is_not_assess,$is_assess); + if ($uri =~/\.(xml|html|htm|xhtml|xhtm)$/) { + $is_not_assess = 1; + } elsif ($uri =~ /$LONCAPA::assess_re/) { + unless ($uri =~ /\.form$/) { + $is_assess = 1; + } + } + unless ($is_not_assess || $is_assess) { $request->status(406); return OK; } - my $result = ''; - $result .= "\n"; - $result .= "\n"; - $result .= "
\n"; + my %editors = &Apache::loncommon::permitted_editors(); + unless ($editors{'daxe'}) { + my $msg = ''. + &mt('Daxe editor is not enabled for this Authoring Space.').'
'; + &do_redirect($request,$uri,$msg); + return OK; + } + if ($is_not_assess) { + delete($editors{'xml'}); + $editors{'edit'} = 1; + } + my %lt = &Apache::lonlocal::texthash( + 'noif' => 'No iframe support.', + 'show' => 'Show content in pop-up window', + 'oeds' => 'other editors', + 'othe' => 'other editor', + 'edit' => 'Edit', + ); my $name = $uri; $name =~ s/^.*\/([^\/]+)$/$1/; - $result .= "