--- loncom/publisher/lonpubdir.pm 2005/07/12 15:55:58 1.86 +++ loncom/publisher/lonpubdir.pm 2006/06/22 20:09:41 1.92 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Construction Space Directory Lister # -# $Id: lonpubdir.pm,v 1.86 2005/07/12 15:55:58 albertel Exp $ +# $Id: lonpubdir.pm,v 1.92 2006/06/22 20:09:41 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -36,6 +36,7 @@ use Apache::Constants qw(:common :http : use Apache::loncacc; use Apache::loncommon(); use Apache::lonhtmlcommon(); +use Apache::londiff(); use Apache::lonlocal; use Apache::lonmsg; use Apache::lonmenu; @@ -104,13 +105,13 @@ sub handler { # Start off the directory table. $r->print('

Directory Contents:

'); - $r->print(''. - ''. - ''. - ''. - ''. - ''. - '
'.&mt('Type').''.&mt('Actions').''.&mt('Name').''.&mt('Title').''.&mt('Status').''.&mt('Last Modified'). + $r->print(''. + ''. + ''. + ''. + ''. + ''. + ''."\n"); my $filename; @@ -137,7 +138,7 @@ sub handler { } closedir(DIR); - $r->print('
'.&mt('Type').''.&mt('Actions').''.&mt('Name').''.&mt('Title').''.&mt('Status').''.&mt('Last Modified'). '
'); + $r->print('
'.&Apache::loncommon::end_page()); return OK; } # @@ -191,13 +192,10 @@ sub startpage { my $currdir = '/priv/'.$uname.$thisdisfn; &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; - my $html=&Apache::lonxml::xmlbegin(); - $r->print($html.'LON-CAPA Construction Space'); - my $pagetitle; my $formaction='/priv/'.$uname.$thisdisfn.'/'; - $formaction=~s/\/+/\//g; - $pagetitle .= &Apache::loncommon::help_open_menu('','','','',3,'Authoring'). + $formaction=~s|/+|/|g; + my $pagetitle .= &Apache::loncommon::help_open_menu('','','','',3,'Authoring'). 'Construction Space: '. '
'. @@ -208,10 +206,14 @@ sub startpage { &Apache::lonhtmlcommon::store_recent('construct',$formaction,$formaction); if ($env{'environment.remote'} eq 'off') { $env{'request.noversionuri'}=$currdir.'/'; - $r->print(&Apache::loncommon::bodytag('Construction Space',undef,undef,undef,undef,undef,$pagetitle)); + $r->print(&Apache::loncommon::start_page('Construction Space',undef, + {'body_title' => + $pagetitle,})); } else { + $r->print(&Apache::loncommon::start_page('Construction Space',undef)); $r->print($pagetitle); } + my $pubdirscript=(< top.document.title = '$thisdisfn/ - LON-CAPA Construction Space'; @@ -233,6 +235,11 @@ parent.lastknownpriv='/~$uname$thisdisfn document.printdir.postdata.value=theform.filename.value document.printdir.submit(); } + if (theform.dirtask.options[theform.dirtask.selectedIndex].value == "delete") { + var delform = document.delresource + delform.filename.value = theform.filename.value + delform.submit() + } } function checkUpload(theform) { @@ -259,6 +266,11 @@ parent.lastknownpriv='/~$uname$thisdisfn theform.postdata.value = theform.filename.value theform.submit() } + if (theform.diraction.options[theform.diraction.selectedIndex].value == "delete") { + var delform = document.delresource + delform.filename.value = theform.filename.value + delform.submit() + } return } function SetResChoice(theform) { @@ -325,8 +337,8 @@ sub dircontrols { mcdi => 'Must create new subdirectory inside a directory', pubr => 'Publish this Resource', pubd => 'Publish this Directory', + dedr => 'Delete Directory', rtrv => 'Retrieve Old Version', - pubs => 'Publish with Subdirectories', list => 'List Directory', uplo => 'Upload file', dele => 'Delete', @@ -366,6 +378,7 @@ sub dircontrols { + @@ -386,7 +399,7 @@ sub dircontrols {
- +    - +
@@ -517,9 +530,9 @@ sub putdirectory { ''. ''. ''. - ''. ''. ''. + ''. ''. ''. ''. @@ -527,15 +540,19 @@ sub putdirectory { ''; $$numdir ++; } - $r->print(''. + $r->print(''. 'folder'. ''.$actionitem.''. - ''. - $disfilename.''. - ''.($kaputt?&Apache::lonhtmlcommon::authorbombs($resdir.'/'.$disfilename.'/'):'').$Apache::lonpublisher::metadatafields{'title'}.' '. - $Apache::lonpublisher::metadatafields{'subject'}.' '. - $Apache::lonpublisher::metadatafields{'keywords'}.''. + ''. + $disfilename.''. + ''.($kaputt?&Apache::lonhtmlcommon::authorbombs($resdir.'/'.$disfilename.'/'):'').$Apache::lonpublisher::metadatafields{'title'}); + if ($Apache::lonpublisher::metadatafields{'subject'} ne '') { + $r->print(' '. + $Apache::lonpublisher::metadatafields{'subject'}. + ' '); + } + $r->print($Apache::lonpublisher::metadatafields{'keywords'}.''. ''.&Apache::lonlocal::locallocaltime($modtime).''. "\n"); } @@ -551,7 +568,7 @@ sub putresource { &Apache::lonnet::devalidate_cache_new('meta',$targetdir.'/'.$filename); my $pubstatus = 'unpublished'; my $status=&mt('Unpublished'); - my $bgcolor='#FFAA99'; + my $css_class='LC_browser_file'; my $title=' '; my $publish_button=&mt('Publish'); # my $action_buttons= @@ -559,21 +576,30 @@ sub putresource { # $uname.'/'.$thisdisfn.'/'.$filename.'">'. # &mt('Delete').''; if (-e $resdir.'/'.$filename) { + my $same=0; my ($rdev,$rino,$rmode,$rnlink, $ruid,$rgid,$rrdev,$rsize, $ratime,$rmtime,$rctime, $rblksize,$rblocks)=stat($resdir.'/'.$filename); + if ($rmtime>=$cmtime) { + $same=1; + } else { + if (&Apache::londiff::are_different_files($resdir.'/'.$filename, + '/home/'.$uname.'/public_html/'.$thisdisfn.'/'.$filename)) { + $same=0; + } else { + $same=1; + } + } $publish_button=&mt('Re-publish'); - if ($rmtime>=$cmtime) { + if ($same) { $pubstatus = 'published'; $status=&mt('Published').'
'. &mt(&getCopyRightString($targetdir.'/'.$filename)).' '. &mt(&getSourceRightString($targetdir.'/'.$filename)); - $bgcolor='#CCFF88'; if (&Apache::lonnet::metadata($targetdir.'/'.$filename,'obsolete')) { $pubstatus = 'obsolete'; $status=&mt('Obsolete'); - $bgcolor='#AAAAAA'; } # } else { # $action_buttons=''; @@ -586,7 +612,6 @@ sub putresource { $status=&mt('Modified').'
'. &mt(&getCopyRightString($targetdir.'/'.$filename)).' '. &mt(&getSourceRightString($targetdir.'/'.$filename)); - $bgcolor='#FFFF77'; # $action_buttons=''; $title=''. &getTitleString($targetdir.'/'.$filename).''; @@ -620,13 +645,13 @@ sub putresource { } my $pub_select = ''; &create_pubselect($r,\$pub_select,$udom,$uname,$thisdisfn,$filename,$resdir,$pubstatus,$publish_button,$numres); - $r->print(''. + $r->print(''. ''.($filename=~/[\#\~]$/?' ': '').''. ''.$pub_select.''. - ''. + ' '. ''. - $filename.''.$editlink2.$editlink. + $filename.''.$editlink2.$editlink. ''. ''.$title.''. ''.$status.''.