--- loncom/homework/inputtags.pm 2021/12/12 21:21:44 1.333.2.12
+++ loncom/homework/inputtags.pm 2023/04/02 03:16:28 1.358
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# input definitons
#
-# $Id: inputtags.pm,v 1.333.2.12 2021/12/12 21:21:44 raeburn Exp $
+# $Id: inputtags.pm,v 1.358 2023/04/02 03:16:28 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -460,6 +460,7 @@ sub start_textline {
}
my $name = 'HWVAL_'.$id;
my $itemid = 'HWVAL_'.$partid.'_'.$id;
+ # NOTE: the input id should match the one given by defaut_homework input_id().
my $input_tag_id = $itemid.'_'.$input_id;
if ($Apache::inputtags::status[-1] eq 'CANNOT_ANSWER') {
$name = "none";
@@ -473,8 +474,10 @@ sub start_textline {
$result .= &spellcheck_onblur($itemid, $spellcheck);
if (($Apache::inputtags::status['-1'] eq 'CAN_ANSWER') &&
- (($tagstack->[-2] eq 'formularesponse') || ($tagstack->[-2] eq 'mathresponse')) &&
- (&Apache::lonnet::EXT('resource.'.$partid.'_'.$id.'.turnoffeditor') ne 'yes')) {
+ (((($tagstack->[-2] eq 'formularesponse') || ($tagstack->[-2] eq 'mathresponse')) &&
+ (&Apache::lonnet::EXT('resource.'.$partid.'_'.$id.'.turnoffeditor') ne 'yes')) ||
+ (($tagstack->[-2] eq 'customresponse') &&
+ (&Apache::lonnet::EXT('resource.'.$partid.'_'.$id.'.turnoffeditor') eq 'no')))) {
$result.=&edit_mathresponse_button($input_tag_id);
}
}
@@ -646,7 +649,7 @@ sub file_selector {
my $current_files_display = ¤t_file_submissions($part,$id);
my $addfiles;
if ($current_files_display) {
- $result .= &Apache::lonhtmlcommon::row_title(&mt('Currently submitted files')).
+ $result .= &Apache::lonhtmlcommon::row_title(&mt('Files currently selected for submission')).
$current_files_display.
&Apache::lonhtmlcommon::row_closure();
$addfiles = &mt('Submit other file(s)');
@@ -656,8 +659,13 @@ sub file_selector {
$result .= &Apache::lonhtmlcommon::row_title($addfiles);
my $constraints;
if ($uploadedfiletypes ne '*') {
+ my $showtypes = $uploadedfiletypes;
+ if ($showtypes =~ /,/) {
+ my $conjunc = &mt('or');
+ $showtypes =~ s/,([^,]+)$/ $conjunc $1/;
+ }
$constraints =
- &mt('Allowed filetypes: [_1]',''.$uploadedfiletypes.'').'
';
+ &mt('Allowed filetypes: [_1]',''.$showtypes.'').'
';
}
if ($maxfilesize) {
$constraints .= &mt('Combined size of all files not to exceed: [_1] MB.',
@@ -706,6 +714,15 @@ sub current_file_submissions {
my $uploadedfile=$Apache::lonhomework::history{"resource.$part.$id.uploadedfile"};
my $portfiles=$Apache::lonhomework::history{"resource.$part.$id.portfiles"};
return if (($uploadedfile eq '') && ($portfiles !~/[^\s]/));
+ my @unversioned;
+ foreach my $file (split(/\s*,\s*/,&unescape($portfiles))) {
+ my ($path,$name) = ($file =~ m{^(.*/)([^/]+)$});
+ my ($origname,$version,$ext) = &Apache::lonnet::file_name_version_ext($name);
+ unless ($version) {
+ push(@unversioned,$file);
+ }
+ }
+ return if (!@unversioned);
my $header = &portpath_popup_js().
&Apache::loncommon::start_data_table().
&Apache::loncommon::start_data_table_header_row();
@@ -716,7 +733,7 @@ sub current_file_submissions {
'
'.$button.' | '.$output; - if (!$no_previous) { + if ((!$no_previous) && + (($env{'course.'.$env{'request.course.id'}.'.type'} ne 'Placement') || + ($env{'request.role.adv'}))) { $output.=''.&previous_tries($id,$target).' | '; } $output.= '