--- loncom/homework/edit.pm	2016/07/01 19:59:15	1.154
+++ loncom/homework/edit.pm	2023/03/27 18:41:06	1.157
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA 
 # edit mode helpers
 #
-# $Id: edit.pm,v 1.154 2016/07/01 19:59:15 raeburn Exp $
+# $Id: edit.pm,v 1.157 2023/03/27 18:41:06 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -789,13 +789,13 @@ sub element_change_detection {
 
 sub submit_ask_anyway {
     my ($extra_action) = @_;
-    my $resource = $env{'request.ambiguous'};
+    my $resource = &Apache::loncommon::escape_single($env{'request.ambiguous'});
     return ' onclick="saveScrollPosition(\''.$resource.'\');still_ask=true;'.$extra_action.';" ';
 }
 
 sub submit_dont_ask {
     my ($extra_action) = @_;
-    my $resource = $env{'request.ambiguous'};
+    my $resource = &Apache::loncommon::escape_single($env{'request.ambiguous'});
     return ' onclick="saveScrollPosition(\''.$resource.'\');is_submit=true;'.$extra_action.';" ';
 }
 
@@ -1214,6 +1214,7 @@ sub browse_or_search {
             upfi => 'Upload File',
             dire => 'Directory',
             news => 'New sub-directory',
+            empd => 'No suitable resources found',
         );
         my ($importcrsres,$uploadfile,$allonly);
         if ($only) {
@@ -1225,32 +1226,37 @@ sub browse_or_search {
             $allonly = $crsonly;
         }
         my ($numdirs,$pickfile) =
-            &Apache::loncommon::import_crsauthor_form($form,'coursepath_'.$element,'coursefile_'.$element,undef,$allonly,$element);
-        if ($pickfile) {
-            $importcrsres=(<<CRSRES);
+            &Apache::loncommon::import_crsauthor_form('coursepath_'.$element,'coursefile_'.$element,undef,$allonly,$element);
+        $importcrsres=(<<CRSRES);
         <fieldset id="importcrsresform_$element" style="display:inline;">
         <legend>$lt{'uacf'}</legend>
+        <div id="hascrsres_$element" style="padding:0;clear:both;margin:0;border:0;display:none;">
+        <p>
         $pickfile
-        <input type="button" name="crsres" value="$lt{'sefi'}" onclick="updateCrsFile(this.form,'$element');" />
+        </p><p>
+        <input type="button" name="crsres_$element" value="$lt{'sefi'}" onclick="updateCrsFile(this.form,'$element');" />
+        </p>
+        </div>
+        <div id="nocrsres_$element" style="padding:0;clear:both;margin:0;border:0display:none;">
+        <p>
+        $lt{'empd'}
+        </p>
+        </div>
         </fieldset>
 CRSRES
-        }
         my %subdirs;
         my $toppath="/priv/$cdom/$cnum";
-        my $londocroot = $Apache::lonnet::perlvar{'lonDocRoot'};
-        &Apache::lonnet::recursedirs(1,'priv',$londocroot,$toppath,'',\%subdirs);
+        my $exclude = &Apache::lonnet::priv_exclude();
+        &Apache::lonnet::recursedirs(1,1,'',$exclude,'',0,$toppath,'',\%subdirs);
         my $numcrsdirs = keys(%subdirs);
-        my $pickdir;
-        if ($numcrsdirs) {
-            $pickdir = $lt{'dire'}.'<select name="crsauthorpath_'.$element.'">'."\n".
+        my $pickdir = $lt{'dire'}.'<select name="crsauthorpath_'.$element.'">'."\n".
                                    '<option value="/">/</option>'."\n";
+        if ($numcrsdirs) {
             foreach my $key (sort { lc($a) cmp lc($b) } (keys(%subdirs))) {
                 $pickdir .= '<option value="'.$key.'">'.$key.'</option>'."\n";
             }
-            $pickdir .= '</select><br />';
-        } else {
-            $pickdir = '<input type="hidden" name="crsauthorpath_'.$element.'" value="/" />'."\n";
         }
+        $pickdir .= '</select><br />';
         my $uploadfile =(<<CRSUPL);
         <fieldset id="uploadcrsresform_$element" style="display:inline;">
         <legend>$lt{'uanf'}</legend>
@@ -1278,12 +1284,10 @@ CRSUPL
         $output = '<a href="javascript:toggleChooser(document.'.$form.",'$element'".');">'.
                   &mt('Choose File').'</a>'.
                   '<div id="chooser_'.$element.'" style="display:none" class="LC_left_float">'.
-                  '<fieldset><legend>'.&mt('Choose File').'</legend>';
-        if ($numdirs) {
-            $output .= '<label><input type="radio" name="chooser_'.$element.'" value="crsres" onclick="toggleCrsFile(this.form,'."'$element','$numdirs'".')" />'.$lt{'uacf'}.'</label>&nbsp;';
-        }
-        $output .= '<label><input type="radio" name="chooser_'.$element.'" value="upload" onclick="toggleCrsUpload(this.form,'."'$element','$numcrsdirs'".')" />'.$lt{'uanf'}.'</label>&nbsp;'.
-                   '<label><input type="radio" name="chooser_'.$element.'" value="import" onclick="toggleResImport(this.form,'."'$element'".');openbrowser('."'$form','$element'$bretitleelement)".'" />'.$lt{'impo'}.'</label>';
+                  '<fieldset><legend>'.&mt('Choose File').'</legend>'.
+                  '<label><input type="radio" name="chooser_'.$element.'" value="crsres" onclick="toggleCrsFile(this.form,'."'$element'".')" />'.$lt{'uacf'}.'</label>&nbsp;'.
+                  '<label><input type="radio" name="chooser_'.$element.'" value="upload" onclick="toggleCrsUpload(this.form,'."'$element'".')" />'.$lt{'uanf'}.'</label>&nbsp;'.
+                  '<label><input type="radio" name="chooser_'.$element.'" value="import" onclick="toggleResImport(this.form,'."'$element'".');openbrowser('."'$form','$element'$bretitleelement)".'" />'.$lt{'impo'}.'</label>';
         if ($usesearch) {
             $output .= '&nbsp;<label><input type="radio" name="chooser_'.$element.'" value="search" onclick="opensearcher('."'$form','$element'$srchtitleelement".')" />'.$lt{'sear'}.'</label>';
         }