--- loncom/interface/portfolio.pm 2005/01/18 02:18:29 1.71 +++ loncom/interface/portfolio.pm 2005/02/20 20:39:30 1.76 @@ -121,7 +121,7 @@ sub display_directory { } else { $r->print(' Rename - Meta + Meta '); } $r->print(''); @@ -206,191 +206,7 @@ sub display_file_select { '); } -sub prettyinput { - my ($type,$value,$fieldname,$formname, - $relatedsearchflag,$relatedsep,$relatedvalue,$size)=@_; - if (! defined($size)) { - $size = 80; - } - # Language - if ($type eq 'language') { - return &Apache::lonmeta::selectbox($fieldname, - $value, - \&Apache::loncommon::languagedescription, - (&Apache::loncommon::languageids)). - &relatedfield(0,$relatedsearchflag,$relatedsep); - } - # Copyright - if ($type eq 'copyright') { - return &Apache::lonmeta::selectbox($fieldname, - $value, - \&Apache::loncommon::copyrightdescription, - (&Apache::loncommon::copyrightids)). - &relatedfield(0,$relatedsearchflag,$relatedsep); - } - # Source Copyright - if ($type eq 'sourceavail') { - return &Apache::lonmeta::selectbox($fieldname, - $value, - \&Apache::loncommon::source_copyrightdescription, - (&Apache::loncommon::source_copyrightids)). - &relatedfield(0,$relatedsearchflag,$relatedsep); - } - # Gradelevels - if (($type eq 'lowestgradelevel') || - ($type eq 'highestgradelevel')) { - return &Apache::loncommon::select_level_form($value,$fieldname). - &relatedfield(0,$relatedsearchflag,$relatedsep); - } - # Obsolete - if ($type eq 'obsolete') { - return ''. - &relatedfield(0,$relatedsearchflag,$relatedsep); - } - # Obsolete replacement file - if ($type eq 'obsoletereplacement') { - return '".&mt('Select').''. - &relatedfield(0,$relatedsearchflag,$relatedsep); - } - # Customdistribution file - if ($type eq 'customdistributionfile') { - return '".&mt('Select').''. - &relatedfield(0,$relatedsearchflag,$relatedsep); - } - # Source Customdistribution file - if ($type eq 'sourcerights') { - return '".&mt('Select').''. - &relatedfield(0,$relatedsearchflag,$relatedsep); - } - # Dates - if (($type eq 'creationdate') || - ($type eq 'lastrevisiondate')) { - return - &Apache::lonhtmlcommon::date_setter($formname,$fieldname,$value). - &relatedfield(0,$relatedsearchflag,$relatedsep); - } - # No pretty input found - $value=~s/^\s+//gs; - $value=~s/\s+$//gs; - $value=~s/\s+/ /gs; - $value=~s/\"/\"\;/gs; - return - ''. - &relatedfield(1,$relatedsearchflag,$relatedsep,$fieldname, - $relatedvalue); -} - -sub relatedfield { - my ($show,$relatedsearchflag,$relatedsep,$fieldname,$relatedvalue)=@_; - if (! $relatedsearchflag) { - return ''; - } - if (! defined($relatedsep)) { - $relatedsep=' '; - } - if (! $show) { - return $relatedsep.' '; - } - return $relatedsep.''; -} - - -# The field names -sub fieldnames { - return &Apache::lonlocal::texthash - ( - 'title' => 'Title', - 'author' =>'Author(s)', - 'authorspace' => 'Author Space', - 'modifyinguser' => 'Last Modifying User', - 'subject' => 'Subject', - 'keywords' => 'Keyword(s)', - 'notes' => 'Notes', - 'abstract' => 'Abstract', - 'lowestgradelevel' => 'Lowest Grade Level', - 'highestgradelevel' => 'Highest Grade Level', - 'standards' => 'Standards', - 'mime' => 'MIME Type', - 'language' => 'Language', - 'creationdate' => 'Creation Date', - 'lastrevisiondate' => 'Last Revision Date', - 'owner' => 'Publisher/Owner', - 'copyright' => 'Copyright/Distribution', - 'customdistributionfile' => 'Custom Distribution File', - 'sourceavail' => 'Source Available', - 'sourcerights' => 'Source Custom Distribution File', - 'obsolete' => 'Obsolete', - 'obsoletereplacement' => 'Suggested Replacement for Obsolete File', - 'count' => 'Network-wide number of accesses (hits)', - 'course' => 'Network-wide number of courses using resource', - 'course_list' => 'Network-wide courses using resource', - 'sequsage' => 'Number of resources using or importing resource', - 'sequsage_list' => 'Resources using or importing resource', - 'goto' => 'Number of resources that follow this resource in maps', - 'goto_list' => 'Resources that follow this resource in maps', - 'comefrom' => 'Number of resources that lead up to this resource in maps', - 'comefrom_list' => 'Resources that lead up to this resource in maps', - 'clear' => 'Material presented in clear way', - 'depth' => 'Material covered with sufficient depth', - 'helpful' => 'Material is helpful', - 'correct' => 'Material appears to be correct', - 'technical' => 'Resource is technically correct', - 'avetries' => 'Average number of tries till solved', - 'stdno' => 'Total number of students who have worked on this problem', - 'difficulty' => 'Degree of difficulty', - 'disc' => 'Degree of discrimination', - 'dependencies' => 'Resources used by this resource', - ); -} - -sub edit_meta_data { - my ($r,$uri) = @_; - # Construction Space Call - # Header - my $disuri=$uri; - my $fn=&Apache::lonnet::filelocation('',$uri); - $disuri=~s/^\/\~/\/priv\//; - $disuri=~s/\.meta$//; - my $target=$uri; - $target=~s/^\/\~/\/res\/$ENV{'request.role.domain'}\//; - $target=~s/\.meta$//; - $r->print(''); - my %lt=&fieldnames(); - my $output; - foreach ('author','title','subject','keywords','abstract','notes', - 'copyright','customdistributionfile','language', - 'standards', - 'lowestgradelevel','highestgradelevel','sourceavail','sourcerights', - 'obsolete','obsoletereplacement') { - if (defined($ENV{'form.new_'.$_})) { - $Apache::lonpublisher::metadatafields{$_}= - $ENV{'form.new_'.$_}; - } - if (! $Apache::lonpublisher::metadatafields{'copyright'}) { - $Apache::lonpublisher::metadatafields{'copyright'}= - 'default'; - } - $output.=('

'.$lt{$_}.': '. - &prettyinput($_, - $Apache::lonpublisher::metadatafields{$_}, - 'new_'.$_,'defaultmeta').'

'); - } - return $output; -} + sub open_form { my ($r)=@_; my @files=&Apache::loncommon::get_env_multiple('form.selectfile'); @@ -437,11 +253,15 @@ sub display_file { } sub done { + my ($message)=@_; + unless (defined $message) { + $message='Done'; + } return ('

'.&mt('Done').'

'); + '">'.&mt($message).''); } sub delete { @@ -452,7 +272,7 @@ sub delete { if (&Apache::lonnet::is_locked($file_name,$ENV{'user.domain'},$ENV{'user.name'} ) eq 'true') { $r->print ("The file is locked and cannot be deleted.
"); - $r->print(&done()); + $r->print(&done('Back')); } else { if (scalar(@files)) { &open_form($r); @@ -615,29 +435,43 @@ sub upload { $ENV{'user.domain'}, $ENV{'user.name'},$portfolio_root); my $found_file = 0; + my $locked_file = 0; foreach my $line (@dir_list) { - my ($filename)=split(/\&/,$line,2); - if ($filename eq $fname){ + my ($file_name)=split(/\&/,$line,2); + if ($file_name eq $fname){ $found_file = 1; + if (&Apache::lonnet::is_locked($ENV{'form.currentpath'}.$file_name,$ENV{'user.domain'},$ENV{'user.name'} ) eq 'true') { + $locked_file = 1; + } } } my $current_disk_usage = &Apache::lonnet::diskusage($ENV{'user.domain'}, $ENV{'user.name'},$portfolio_root); if ((($current_disk_usage/1000) + $filesize) > $disk_quota){ $r->print('Unable to upload '.$fname.' (size = '.$filesize.' kilobytes. Disk quota will be exceeded.'. '
Disk quota is '.$disk_quota.' kilobytes. Your current disk usage is '.$current_disk_usage.' kilobytes.'); + $r->print(&done('Back')); } - elsif ($found_file){ - $r->print('Unable to upload '.$fname.', a file by that name was found in '.$ENV{'form.currentpath'}.''. - '
To upload, rename or delete existing '.$fname.' in '.$ENV{'form.currentpath'}); + elsif ($found_file){ + if ($locked_file){ + $r->print('Unable to upload '.$fname.', a locked file by that name was found in portfolio'.$ENV{'form.currentpath'}.''. + '
You will be able to rename or delete existing '.$fname.' after a grade has been assigned.'); + $r->print(&done('Back')); + } else { + $r->print('Unable to upload '.$fname.', a file by that name was found in portfolio'.$ENV{'form.currentpath'}.''. + '
To upload, rename or delete existing '.$fname.' in portfolio'.$ENV{'form.currentpath'}); + $r->print(&done('Back')); + } } else { my $result=&Apache::lonnet::userfileupload('uploaddoc','', 'portfolio'.$ENV{'form.currentpath'}); if ($result !~ m|^/uploaded/|) { $r->print(' An errror occured ('.$result. ') while trying to upload '.&display_file().'
'); + $r->print(&done('Back')); + } else { + $r->print(&done()); } } - $r->print(&done()); } sub createdir { @@ -686,18 +520,23 @@ sub handler { my $portfolio_root = &Apache::loncommon::propath($ENV{'user.domain'}, $ENV{'user.name'}). '/userfiles/portfolio'; + &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, + ['selectfile','currentpath','meta', + 'currentfile','action','fieldname','mode','rename']); &Apache::loncommon::no_cache($r); &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; # Give the LON-CAPA page header - $r->print(''. + my $html=&Apache::lonxml::xmlbegin(); + $r->print($html.'<head><title>'. &mt('Portfolio Manager'). - "\n". - &Apache::loncommon::bodytag('Portfolio Manager')); + "\n"); + if ($ENV{"form.mode"} eq 'selectfile'){ + $r->print(&Apache::loncommon::bodytag('Portfolio Manager',undef,undef,1)); + } else { + $r->print(&Apache::loncommon::bodytag('Portfolio Manager')); + } $r->rflush(); - &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, - ['selectfile','currentpath','meta', - 'currentfile','action','fieldname','mode','rename']); if (($ENV{'form.storeupl'} eq 'Upload') & (!$ENV{'form.uploaddoc.filename'})){ $r->print(' No file was selected to upload.'. 'To upload a file, click Browse...'. @@ -705,7 +544,7 @@ sub handler { } if ($ENV{'form.meta'}) { &open_form($r); - $r->print(&edit_meta_data($r, $ENV{'form.currentpath'}.$ENV{'form.selectfile'})); +# $r->print(&edit_meta_data($r, $ENV{'form.currentpath'}.$ENV{'form.selectfile'})); $r->print('Edit the meta data
'); &close_form($r); }