[LON-CAPA-cvs] cvs: loncom /publisher lonpubdir.pm

raeburn raeburn at source.lon-capa.org
Thu Jul 13 17:41:40 EDT 2023


raeburn		Thu Jul 13 21:41:40 2023 EDT

  Modified files:              
    /loncom/publisher	lonpubdir.pm 
  Log:
  - Actions available in "Create a new subdirectory or document" box for
    Course Authoring Space are: New file, New HTML file, New problem,
    New subdirectory
  - Editing of default.rights file at top level of Course Authoring Space
    disabled. 
  
  
-------------- next part --------------
Index: loncom/publisher/lonpubdir.pm
diff -u loncom/publisher/lonpubdir.pm:1.178 loncom/publisher/lonpubdir.pm:1.179
--- loncom/publisher/lonpubdir.pm:1.178	Sun Jun 11 20:45:40 2023
+++ loncom/publisher/lonpubdir.pm	Thu Jul 13 21:41:40 2023
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Authoring Space Directory Lister
 #
-# $Id: lonpubdir.pm,v 1.178 2023/06/11 20:45:40 raeburn Exp $
+# $Id: lonpubdir.pm,v 1.179 2023/07/13 21:41:40 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -128,7 +128,7 @@
     }
 
     # 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 @@
         if (!($cmode&$dirptr)) {
             ($status, $pubstatus) = &getStatus($resdir, $targetdir, $cstr_dir, 
                 $filename, $linkfilename, $cmtime, $meta_same);
-            ($fulltitle, $title) = &getTitle($resdir, $targetdir, $filename, 
-                                        $linkfilename, $meta_same, \%bombs);
+            if (($crsauthor) && ($extension eq 'rights')) {
+                $title = &getTitleString($targetdir.'/'.$filename);
+                $fulltitle = $title;
+            } else {
+                ($fulltitle, $title) = &getTitle($resdir, $targetdir, $filename, 
+                                                 $linkfilename, $meta_same, \%bombs);
+            }
         } else {
             ($status, $pubstatus) = ('','');
             ($fulltitle, $title) = ('','');
@@ -317,7 +322,8 @@
                 $targetdir, \%bombs, \$numdir);
         } else {                                                # Files
             &putresource($r, $udom, $uname, $filename, $thisdisfn, $resdir,
-                $targetdir, $linkdir, $filehash->{$filename}->{"cmtime"}, 
+                $targetdir, $linkdir, $crsauthor, 
+                $filehash->{$filename}->{"cmtime"}, 
                 $filehash->{$filename}->{"size"}, \$numres, 
                 $filehash->{$filename}->{"linkfilename"},
                 $filehash->{$filename}->{"fulltitle"},
@@ -391,12 +397,16 @@
 
     $disk_quota = 1024 * $disk_quota; # convert from MB to kB
 
+    my $headertext = &mt('Directory');
+    if ($crsauthor) {
+        $headertext = &mt('Course Authoring Directory');
+    }
     $r->print(&Apache::loncommon::head_subbox(
                      '<div style="float:right;padding-top:0;margin-top;0">'
                     .&Apache::lonhtmlcommon::display_usage($current_disk_usage,
                                                            $disk_quota,'authoring')
                     .'</div>'
-                    .&Apache::loncommon::CSTR_pageheader('','',&mt('Directory'))));
+                    .&Apache::loncommon::CSTR_pageheader('','',$headertext)));
 
     my $esc_thisdisfn = &Apache::loncommon::escape_single($thisdisfn);
     my $doctitle = 'LON-CAPA '.&mt($title);
@@ -493,7 +503,7 @@
 }
 
 sub dircontrols {
-    my ($r,$uname,$udom,$thisdisfn, $current_disk_usage, $disk_quota) = @_;
+    my ($r,$uname,$udom,$thisdisfn,$current_disk_usage,$disk_quota,$crsauthor) = @_;
     my %lt=&Apache::lonlocal::texthash(
                                        cnpd => 'Cannot publish directory',
                                        cnrd => 'Cannot retrieve directory',
@@ -552,6 +562,32 @@
         </fieldset>
   </div>
 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(<<END);
   <div style="padding-bottom: 2px">
     <form name="upublisher" enctype="multipart/form-data" method="post" action="/adm/upload">
@@ -581,19 +617,7 @@
                         }
                     }
                   </script>
-		  <select name="action">
-		    <option value="none">$lt{'sela'}</option>
-		    <option value="newfile">$lt{'nfil'}:</option>
-		    <option value="newhtmlfile">$lt{'nhtm'}:</option>
-		    <option value="newproblemfile">$lt{'nprb'}:</option>
-                    <option value="newpagefile">$lt{'npag'}:</option>
-                    <option value="newsequencefile">$lt{'nseq'}:</option>
-                    <option value="newrightsfile">$lt{'ncrf'}:</option>
-                    <option value="newstyfile">$lt{'nsty'}:</option>
-                    <option value="newtaskfile">$lt{'nbt'}:</option>
-                    <option value="newlibraryfile">$lt{'nlib'}:</option>
-	            <option value="newdir">$lt{'nsub'}:</option>
-		  </select> <input type="text" id="newnameid" name="newfilename" placeholder="$lt{'type'}" value="" onfocus="if (this.value == is.empty()) this.value=''" /> <input type="button" value="Go" onclick="validate_go();" />
+		  $selectbox <input type="text" id="newnameid" name="newfilename" placeholder="$lt{'type'}" value="" onfocus="if (this.value == is.empty()) this.value=''" /> <input type="button" value="Go" onclick="validate_go();" />
 		<br />
                 <span>$lt{'shcu'}:
                  <input type="hidden" name="mode"/>
@@ -827,7 +851,7 @@
 
 sub getStatus {    
     my ($resdir, $targetdir, $cstr_dir, $filename,  
-            $linkfilename, $cmtime, $meta_same) = @_;
+        $linkfilename, $crsauthor, $cmtime, $meta_same) = @_;
     my $pubstatus = 'unpublished';
     my $status = &mt('Unpublished');
 
@@ -853,7 +877,9 @@
         );
         $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';
@@ -871,17 +897,21 @@
             $pubstatus = 'modified';
 	    $status=&mt('Modified').
 		'<br />'. $rights_status;
-	    if (&Apache::loncommon::fileembstyle(($filename=~/\.(\w+)$/)) eq 'ssi') {
-		$status.='<br />'.
-                         &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.='<br />'.
+                             &Apache::loncommon::modal_link(
+                                 '/adm/diff?filename='.$linkfilename.'&versiontwo=priv',
+                                 &mt('Diffs'),600,500);
+	        }
 	    }
-	} 
+	}
 
-	$status.="\n".'<br />'.
-             &Apache::loncommon::modal_link(
-                 '/adm/retrieve?filename='.$linkfilename.'&inhibitmenu=yes&add_modal=yes',&mt('Retrieve'),600,500);
+        unless (($crsauthor) && ($filename =~ /\.rights$/)) {
+	    $status.="\n".'<br />'.
+                 &Apache::loncommon::modal_link(
+                     '/adm/retrieve?filename='.$linkfilename.'&inhibitmenu=yes&add_modal=yes',&mt('Retrieve'),600,500);
+        }
     }
 
     return ($status, $pubstatus);
@@ -892,9 +922,9 @@
 #   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='';
@@ -920,7 +950,9 @@
     }
     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().
 	      '<td>'.($filename=~/[\#\~]$/?' ':
 		      '<img src="'.&Apache::loncommon::icon($filename).'" alt="" />').'</td>'.


More information about the LON-CAPA-cvs mailing list