--- 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> '; - } - $output .= '<label><input type="radio" name="chooser_'.$element.'" value="upload" onclick="toggleCrsUpload(this.form,'."'$element','$numcrsdirs'".')" />'.$lt{'uanf'}.'</label> '. - '<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> '. + '<label><input type="radio" name="chooser_'.$element.'" value="upload" onclick="toggleCrsUpload(this.form,'."'$element'".')" />'.$lt{'uanf'}.'</label> '. + '<label><input type="radio" name="chooser_'.$element.'" value="import" onclick="toggleResImport(this.form,'."'$element'".');openbrowser('."'$form','$element'$bretitleelement)".'" />'.$lt{'impo'}.'</label>'; if ($usesearch) { $output .= ' <label><input type="radio" name="chooser_'.$element.'" value="search" onclick="opensearcher('."'$form','$element'$srchtitleelement".')" />'.$lt{'sear'}.'</label>'; }