--- loncom/homework/inputtags.pm 2005/01/31 22:00:40 1.156 +++ loncom/homework/inputtags.pm 2005/03/31 21:24:29 1.160 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # input definitons # -# $Id: inputtags.pm,v 1.156 2005/01/31 22:00:40 albertel Exp $ +# $Id: inputtags.pm,v 1.160 2005/03/31 21:24:29 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -222,7 +222,14 @@ sub start_textline { if ($addchars) { $result.=&addchars('HWVAL_'.$id,$addchars); } - $result.= ''; } } else { @@ -233,11 +240,16 @@ sub start_textline { } elsif ($target eq 'edit') { $result=&Apache::edit::tag_start($target,$token); $result.=&Apache::edit::text_arg('Size:','size',$token,'5'). - &Apache::edit::text_arg - ('Click-On Texts (comma sep):','addchars',$token,10).""; - $result.=&Apache::edit::end_table; + &Apache::edit::text_arg('Click-On Texts (comma sep):', + 'addchars',$token,10); + $result.=&Apache::edit::select_arg('Readonly:','readonly', + ['no','yes'],$token); + $result.=&Apache::edit::end_row(); + $result.=&Apache::edit::end_table(); } elsif ($target eq 'modified') { - my $constructtag=&Apache::edit::get_new_args($token,$parstack,$safeeval,'size','addchars'); + my $constructtag=&Apache::edit::get_new_args($token,$parstack, + $safeeval,'size', + 'addchars','readonly'); if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); } } elsif ($target eq 'tex' and $Apache::lonhomework::type ne 'exam') { my $size = &Apache::lonxml::get_param('size',$parstack,$safeeval); @@ -282,6 +294,62 @@ sub end_hiddenline { return ""; } +# $part -> partid +# $id -> responseid +# $uploadefiletypes -> comma seperated list of extensions allowed or * for any +# $which -> 'uploadedonly' -> only newly uploaded files +# 'portfolioonly' -> only allow files from portfolio +# 'both' -> allow files from either location +# returns a table row +sub file_selector { + my ($part,$id,$uploadedfiletypes,$which)=@_; + if (!$uploadedfiletypes) { return ''; } + my $result; + + $result.=''. + &mt('Allowed filetypes: [_1]',$uploadedfiletypes).'
'; + if ($which eq 'uploadonly' || $which eq 'both') { + $result.=&mt('Submit a file: (only one file can be uploaded)'). + '

'; + my $uploadedfile= &HTML::Entities::encode($Apache::lonhomework::history{"resource.$part.$id.uploadedfile"},'<>&"'); + + if ($uploadedfile) { + my $url=$Apache::lonhomework::history{"resource.$part.$id.uploadedurl"}; + push (@Apache::lonxml::extlinks,$url); + &Apache::lonnet::allowuploaded('/adm/essayresponse',$url); + my $icon=&Apache::loncommon::icon($url); + my $curfile=''.$uploadedfile.''; + $result.=&mt('Currently submitted: [_1]',$curfile); + } else { + #$result.=&mt('(Hand in a file you have prepared on your computer)'); + } + } + if ( $which eq 'both') { + $result.='
'.''.&mt('OR:').'
'; + } + if ($which eq 'portfolioonly' || $which eq 'both') { + $result.=''. + &mt('Select Portfolio Files').'
'. + ''. + '
'; + if ($Apache::lonhomework::history{"resource.$part.$id.portfiles"}=~/[^\s]/){ + my $filelist; + foreach my $file (split(',',&Apache::lonnet::unescape($Apache::lonhomework::history{"resource.$part.$id.portfiles"}))) { + my (undef,undef,$domain,$user)=&Apache::lonxml::whichuser(); + my $url="/uploaded/$domain/$user/portfolio$file"; + my $icon=&Apache::loncommon::icon($url); + $filelist.=''.$file.''; + } + $result.=&mt("Portfolio files previously selected: [_1]",$filelist); + } + } + $result.=''; + return $result; +} + sub checkstatus { my ($value,$awardref,$msgref)=@_; for (my $i=0;$i<=$#$awardref;$i++) { @@ -417,7 +485,7 @@ sub decideoutput { } elsif ($award eq 'MISORDERED_RANK') { $message = &mt('You have provided an invalid ranking'); if ($target ne 'tex') { - $message.=', '.&mt('please refer to').' '.&Apache::loncommon::help_open_topic('Ranking_Problems','help on ranking problems').'.'; + $message.=', '.&mt('please refer to').' '.&Apache::loncommon::help_open_topic('Ranking_Problems','help on ranking problems'); } $bgcolor=$possiblecolors{'not_charged_try'}; $button=1;