--- loncom/publisher/lonpubdir.pm 2019/08/13 16:59:12 1.173 +++ loncom/publisher/lonpubdir.pm 2023/07/13 21:41:40 1.179 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Authoring Space Directory Lister # -# $Id: lonpubdir.pm,v 1.173 2019/08/13 16:59:12 raeburn Exp $ +# $Id: lonpubdir.pm,v 1.179 2023/07/13 21:41:40 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -104,8 +104,8 @@ sub handler { "$londocroot/priv/$udom/$uname"); # expressed in kB my $disk_quota = &Apache::loncommon::get_user_quota($uname,$udom, $cstr,$crstype); # expressed in MB - # Put out the start of page. + &startpage($r, $uname, $udom, $thisdisfn, $current_disk_usage, $disk_quota, $crsauthor); if (!-d $fn) { @@ -128,7 +128,7 @@ sub handler { } # Put out actions for directory, browse/upload + new file page. - &dircontrols($r,$uname,$udom,$thisdisfn, $current_disk_usage, $disk_quota); + &dircontrols($r,$uname,$udom,$thisdisfn,$current_disk_usage,$disk_quota,$crsauthor); &resourceactions($r,$uname,$udom,$thisdisfn); # Put out form used for printing/deletion etc. my $numdir = 0; @@ -247,8 +247,13 @@ my $result = " + + + %s + + $lt{'cs'} + $lt{'re'} + - +END + my %fileoptions = ( + none => "$lt{'sela'}:", + newfile => "$lt{'nfil'}:", + newhtmlfile => "$lt{'nhtm'}:", + newproblemfile => "$lt{'nprb'}:", + newdir => "$lt{'nsub'}:", + ); + $fileoptions{'select_form_order'} = ['none','newfile','newhtmlfile','newproblemfile']; + if ($crsauthor) { + push(@{$fileoptions{'select_form_order'}},'newdir'); + } else { + my %extraoptions = ( + newpagefile => "$lt{'npag'}:", + newsequencefile => "$lt{'nseq'}:", + newrightsfile => "$lt{'ncrf'}:", + newstyfile => "$lt{'nsty'}:", + newtaskfile => "$lt{'nbt'}:", + newlibraryfile => "$lt{'nlib'}:", + ); + %fileoptions = (%fileoptions,%extraoptions); + push(@{$fileoptions{'select_form_order'}},('newpagefile','newsequencefile', + 'newrightsfile','newstyfile', + 'newtaskfile','newlibraryfile', + 'newdir')); + } + my $selectbox = &Apache::loncommon::select_form('none','action',\%fileoptions); + $r->print(< - + $lt{'updc'} - + @@ -592,7 +602,7 @@ sub dircontrols { - + $lt{'crea'} @@ -607,53 +617,51 @@ sub dircontrols { } } - - $lt{'sela'} - $lt{'nfil'}: - $lt{'nhtm'}: - $lt{'nprb'}: - $lt{'npag'}: - $lt{'nseq'}: - $lt{'ncrf'}: - $lt{'nsty'}: - $lt{'nbt'}: - $lt{'nlib'}: - $lt{'nsub'}: - + $selectbox - Quickactions: + $lt{'shcu'}: - + - + - + - + @@ -661,18 +669,6 @@ sub dircontrols { - - - $lt{'qs'} - - - - %s - - $lt{'cs'} - $lt{'re'} - - END } @@ -680,26 +676,26 @@ END sub resourceactions { my ($r,$uname,$udom,$thisdisfn) = @_; $r->print(< + - + - + - + - + - + END @@ -777,7 +773,7 @@ sub putdirectory { } else { $actionitem = ''. + '" action="/adm/publish">'. ''. ''.&mt('Select action').''. ''.&mt('Open').''. @@ -796,7 +792,7 @@ sub putdirectory { ''. ''.$actionitem.''. - ''. + ''. $disfilename.''. ''.($kaputt?&Apache::lonhtmlcommon::authorbombs($targetdir.'/'.$disfilename.'/'):'').$Apache::lonpublisher::metadatafields{'title'}); if ($Apache::lonpublisher::metadatafields{'subject'} ne '') { @@ -855,7 +851,7 @@ sub isMetaSame { sub getStatus { my ($resdir, $targetdir, $cstr_dir, $filename, - $linkfilename, $cmtime, $meta_same) = @_; + $linkfilename, $crsauthor, $cmtime, $meta_same) = @_; my $pubstatus = 'unpublished'; my $status = &mt('Unpublished'); @@ -881,7 +877,9 @@ sub getStatus { ); $rights_status .= $lt_SourceRight{&getSourceRightString($targetdir.'/'.$filename)}; - + if (($crsauthor) && ($filename =~ /\.rights$/)) { + $rights_status =~ s/,\s+$//; + } if ($same) { if (&Apache::lonnet::metadata($targetdir.'/'.$filename,'obsolete')) { $pubstatus = 'obsolete'; @@ -899,17 +897,21 @@ sub getStatus { $pubstatus = 'modified'; $status=&mt('Modified'). ''. $rights_status; - if (&Apache::loncommon::fileembstyle(($filename=~/\.(\w+)$/)) eq 'ssi') { - $status.=''. - &Apache::loncommon::modal_link( - '/adm/diff?filename='.$linkfilename.'&versiontwo=priv', - &mt('Diffs'),600,500); + unless (($crsauthor) && ($filename =~ /\.rights$/)) { + if (&Apache::loncommon::fileembstyle(($filename=~/\.(\w+)$/)) eq 'ssi') { + $status.=''. + &Apache::loncommon::modal_link( + '/adm/diff?filename='.$linkfilename.'&versiontwo=priv', + &mt('Diffs'),600,500); + } } - } + } - $status.="\n".''. - &Apache::loncommon::modal_link( - '/adm/retrieve?filename='.$linkfilename.'&inhibitmenu=yes&add_modal=yes',&mt('Retrieve'),600,500); + unless (($crsauthor) && ($filename =~ /\.rights$/)) { + $status.="\n".''. + &Apache::loncommon::modal_link( + '/adm/retrieve?filename='.$linkfilename.'&inhibitmenu=yes&add_modal=yes',&mt('Retrieve'),600,500); + } } return ($status, $pubstatus); @@ -920,9 +922,9 @@ sub getStatus { # Put a table row for a file resource. # sub putresource { - my ($r, $udom, $uname, $filename, $thisdisfn, $resdir, $targetdir, - $linkdir, $cmtime, $size, $numres, $linkfilename, $title, - $status, $pubstatus) = @_; + my ($r, $udom, $uname, $filename, $thisdisfn, $resdir, + $targetdir, $linkdir, $crsauthor, $cmtime, $size, + $numres, $linkfilename, $title, $status, $pubstatus) = @_; &Apache::lonnet::devalidate_cache_new('meta',$targetdir.'/'.$filename); my $editlink=''; @@ -941,20 +943,22 @@ sub putresource { } } if ($filename=~/\.(problem|exam|quiz|assess|survey|form|library|xml|html|htm|xhtml|xhtm|sty)$/) { - $editlink.=' ('.&mt('Clean Up').')'; + $editlink.=' ('.&mt('Clean Up').')'; } if ($filename=~/\.(zip|tar|bz2|gz|tar.gz|tar.bz2|tgz)$/) { - $editlink=' ('.&mt('Decompress').')'; + $editlink=' ('.&mt('Decompress').')'; } my $publish_button = (-e $resdir.'/'.$filename) ? &mt('Re-publish') : &mt('Publish'); my $pub_select = ''; - &create_pubselect($r,\$pub_select,$udom,$uname,$thisdisfn,$filename,$resdir,$pubstatus,$publish_button,$numres); + unless (($crsauthor) && ($filename=~ /\.rights$/)) { + &create_pubselect($r,\$pub_select,$udom,$uname,$thisdisfn,$filename,$resdir,$pubstatus,$publish_button,$numres); + } $r->print(&Apache::loncommon::start_data_table_row(). ''.($filename=~/[\#\~]$/?' ': '').''. ''.$pub_select.''. ''. - ''. + ''. $filename.''.$editlink2.$editlink. ''. ''.$title.''.