[LON-CAPA-cvs] cvs: loncom(version_2_11_X) /homework lonhomework.pm
raeburn
raeburn at source.lon-capa.org
Mon Apr 3 09:11:47 EDT 2017
raeburn Mon Apr 3 13:11:47 2017 EDT
Modified files: (Branch: version_2_11_X)
/loncom/homework lonhomework.pm
Log:
- For 2.11
- Backport 1.366, 1.367 (part), 1.368
Index: loncom/homework/lonhomework.pm
diff -u loncom/homework/lonhomework.pm:1.344.2.7 loncom/homework/lonhomework.pm:1.344.2.8
--- loncom/homework/lonhomework.pm:1.344.2.7 Sun Sep 18 21:37:25 2016
+++ loncom/homework/lonhomework.pm Mon Apr 3 13:11:47 2017
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# The LON-CAPA Homework handler
#
-# $Id: lonhomework.pm,v 1.344.2.7 2016/09/18 21:37:25 raeburn Exp $
+# $Id: lonhomework.pm,v 1.344.2.8 2017/04/03 13:11:47 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1370,12 +1370,31 @@
&renderpage($request,$dest);
return;
}
+ my $errormsg;
if ($env{'form.template'}) {
- my $file = $env{'form.template'};
- my $dest = &Apache::lonnet::filelocation("",$request->uri);
- &File::Copy::copy($file,$dest);
- &renderpage($request,$dest);
- return;
+ my $file;
+ my ($extension) = ($env{'form.template'} =~ /\.(\w+)$/);
+ if ($extension) {
+ my @files = &get_template_list($extension);
+ foreach my $poss (@files) {
+ if (ref($poss) eq 'ARRAY') {
+ if ($env{'form.template'} eq $poss->[0]) {
+ $file = $env{'form.template'};
+ last;
+ }
+ }
+ }
+ if ($file) {
+ my $dest = &Apache::lonnet::filelocation("",$request->uri);
+ &File::Copy::copy($file,$dest);
+ &renderpage($request,$dest);
+ return;
+ } else {
+ $errormsg = '<p class="LC_error">'.&mt('Invalid template file.').'</p>';
+ }
+ } else {
+ $errormsg = '<p class="LC_error">'.&mt('Invalid template file; template needs to be a .problem, .library, or .task file.').'</p>';
+ }
}
my ($extension) = ($request->uri =~ m/\.(\w+)$/);
@@ -1392,7 +1411,6 @@
} else {
my $url=&HTML::Entities::encode($request->uri,'<>&"');
my $dest = &Apache::lonnet::filelocation("",$request->uri);
- my $errormsg;
my $instructions;
my $brcrum = [{'href' => &Apache::loncommon::authorspace($request->uri),
'text' => 'Authoring Space'},
@@ -1645,15 +1663,13 @@
sub helpmenu_datastructure {
- my $width = 500;
- my $height = 600;
-
+ # filename, title, width, height
my $helpers = [
- ['Problem_LON-CAPA_Functions', &mt('Script Functions')],
- ['Greek_Symbols', &mt('Greek Symbols')],
- ['Other_Symbols', &mt('Other Symbols')],
- ['Authoring_Output_Tags', &mt('Output Tags')],
- ['Authoring_Multilingual_Problems', &mt('Languages')],
+ ['Problem_LON-CAPA_Function.hlp', &mt('Script Functions'), 800, 600],
+ ['Greek_Symbols.hlp', &mt('Greek Symbols'), 500, 600],
+ ['Other_Symbols.hlp', &mt('Other Symbols'), 500, 600],
+ ['Authoring_Output_Tags.hlp', &mt('Output Tags'), 800, 600],
+ ['Authoring_Multilingual_Problems.hlp', &mt('Languages'), 800, 600],
];
my $help_structure = [];
@@ -1661,7 +1677,15 @@
foreach my $count (0..(scalar(@{$helpers})-1)) {
my $filename = $helpers->[$count]->[0];
my $title = $helpers->[$count]->[1];
- my $href = &HTML::Entities::encode("javascript:openMyModal('/adm/help/$filename.hlp',$width,$height,'yes');");
+ my $width = $helpers->[$count]->[2];
+ my $height = $helpers->[$count]->[3];
+ if ($width eq '') {
+ $width = 500;
+ }
+ if ($height eq '') {
+ $height = 600;
+ }
+ my $href = &HTML::Entities::encode("javascript:openMyModal('/adm/help/$filename',$width,$height,'yes');");
push @{$help_structure}, [$href, $title, undef];
}
More information about the LON-CAPA-cvs
mailing list