--- loncom/interface/londocs.pm 2017/05/19 18:24:03 1.632 +++ loncom/interface/londocs.pm 2017/07/10 12:48:41 1.633 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.632 2017/05/19 18:24:03 raeburn Exp $ +# $Id: londocs.pm,v 1.633 2017/07/10 12:48:41 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -3018,8 +3018,9 @@ sub update_parameter { sub handle_edit_cmd { my ($coursenum,$coursedom) =@_; + my $haschanges = 0; if ($env{'form.cmd'} eq '') { - return 0; + return $haschanges; } my ($cmd,$idx)=split('_',$env{'form.cmd'}); @@ -3034,19 +3035,19 @@ sub handle_edit_cmd { &LONCAPA::map::makezombie($LONCAPA::map::order[$idx]); } splice(@LONCAPA::map::order, $idx, 1); - + $haschanges = 1; } elsif ($cmd eq 'cut') { &LONCAPA::map::makezombie($LONCAPA::map::order[$idx]); splice(@LONCAPA::map::order, $idx, 1); - + $haschanges = 1; } elsif ($cmd eq 'up' && ($idx) && (defined($LONCAPA::map::order[$idx-1]))) { @LONCAPA::map::order[$idx-1,$idx] = @LONCAPA::map::order[$idx,$idx-1]; - + $haschanges = 1; } elsif ($cmd eq 'down' && defined($LONCAPA::map::order[$idx+1])) { @LONCAPA::map::order[$idx+1,$idx] = @LONCAPA::map::order[$idx,$idx+1]; - + $haschanges = 1; } elsif ($cmd eq 'rename') { my $comment = &LONCAPA::map::qtunescape($env{'form.title'}); if ($comment=~/\S/) { @@ -3056,11 +3057,26 @@ sub handle_edit_cmd { # Devalidate title cache my $renamed_url=&LONCAPA::map::qtescape($url); &Apache::lonnet::devalidate_title_cache($renamed_url); - - } else { - return 0; + $haschanges = 1; + } elsif ($cmd eq 'setalias') { + my $newvalue = $env{'form.alias'}; + if ($newvalue ne '') { + unless (Apache::lonnet::get_symb_from_alias($newvalue)) { + &LONCAPA::map::storeparameter($idx,'parameter_0_mapalias',$newvalue, + 'string'); + &remember_parms($idx,'mapalias','set',$newvalue); + $haschanges = 1; + } + } + } elsif ($cmd eq 'delalias') { + my $current = (&LONCAPA::map::getparameter($idx,'parameter_0_mapalias'))[0]; + if ($current ne '') { + &LONCAPA::map::delparameter($idx,'parameter_0_mapalias'); + &remember_parms($idx,'mapalias','del'); + $haschanges = 1; + } } - return 1; + return $haschanges; } sub editor { @@ -3184,7 +3200,7 @@ sub editor { # Rename, cut, copy or remove a single resource if (&handle_edit_cmd($coursenum,$coursedom)) { my $contentchg; - if ($env{'form.cmd'} =~ m{^(remove|cut)_}) { + if ($env{'form.cmd'} =~ m{^(remove|cut|setalias|delalias)_}) { $contentchg = 1; } ($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.'.$container,$contentchg); @@ -3424,10 +3440,10 @@ sub editor { .&Apache::loncommon::start_data_table(undef,'contentlist') .&Apache::loncommon::start_data_table_header_row() .''.&mt('Move').'' - .''.&mt('Actions').'' + .''.&mt('Actions').'' .''.&mt('Document').''; if ($folder !~ /^supplemental/) { - $to_show .= ''.&mt('Settings').''; + $to_show .= ''.&mt('Settings').''; } $to_show .= &Apache::loncommon::end_data_table_header_row(); if ($folder !~ /^supplemental/) { @@ -3455,9 +3471,8 @@ sub editor { ''. &multiple_check_form('actions',\%lists,$canedit). ''. - ' '. - ' '. - ''. + ' '. + ''. &multiple_check_form('settings',\%lists,$canedit). ''. &Apache::loncommon::end_data_table_row(); @@ -3805,7 +3820,7 @@ sub entryline { my $line=&Apache::loncommon::start_data_table_row(); my ($form_start,$form_end,$form_common,$form_param); # Edit commands - my ($esc_path, $path, $symb); + my ($esc_path, $path, $symb, $curralias); if ($env{'form.folderpath'}) { $esc_path=&escape($env{'form.folderpath'}); $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"'); @@ -3874,6 +3889,8 @@ END 'ct' => 'Cut', 'rn' => 'Rename', 'cp' => 'Copy', + 'da' => 'Unset alias', + 'sa' => 'Set alias', 'ex' => 'External Resource', 'et' => 'External Tool', 'ed' => 'Edit', @@ -3904,6 +3921,9 @@ END ($url!~/$LONCAPA::assess_page_seq_re/)) { $confirm_removal = 1; } + if ($url =~ /$LONCAPA::assess_re/) { + $curralias = (&LONCAPA::map::getparameter($orderidx,'parameter_0_mapalias'))[0]; + } if ($denied{'copy'}) { $copylink=(<'.$editlink.$renamelink; + if ($url =~ /$LONCAPA::assess_re/) { + $line.= '
'; + if ($curralias ne '') { + $line.=''. + $lt{'da'}.''; + } else { + $line.=''. + $lt{'sa'}.''; + } + } + $line.=''; my $link; if (($url=~m{/adm/(coursedocs|supplemental)}) || (!$allowed && $url)) { $line.=''; @@ -4334,7 +4365,12 @@ $form_end; } else { $line.=$title.' '.$reinit.''; } - $line.="$extresform"; + if (($allowed) && ($curralias ne '')) { + $line .= '
('.$curralias.')'; + } else { + $line .= $extresform; + } + $line .= ''; $rand_pick_text = ' ' if ($rand_pick_text eq ''); $rand_order_text = ' ' if ($rand_order_text eq ''); if (($allowed) && ($folder!~/^supplemental/)) { @@ -5836,6 +5872,11 @@ CRSFORM $containertag +
+ + + $containertag +
HIDDENFORM $r->print(&makesimpleeditform($pathitem)."\n". @@ -6903,6 +6944,8 @@ sub editing_js { p_ctr2b => '?', p_ctr3a => 'Cut those', p_ctr3b => 'items?', + setal => 'Enter a (unique) alias', + delal => 'Are you sure you want to eliminate the alias?', rpck => 'Enter number to pick (e.g., 3)', imsfile => 'You must choose an IMS package for import', imscms => 'You must select which Course Management System was the source of the IMS package', @@ -7105,6 +7148,24 @@ function changename(folderpath,index,old } } +function setalias(folderpath,index) { + var alias = prompt('$js_lt{"setal"}'); + if ((alias != null) && (alias != '')) { + this.document.forms.aliasform.alias.value=alias; + this.document.forms.aliasform.cmd.value='setalias_'+index; + this.document.forms.aliasform.folderpath.value=folderpath; + this.document.forms.aliasform.submit(); + } +} + +function delalias(folderpath,index) { + if (confirm('$js_lt{"delal"}')) { + this.document.forms.aliasform.cmd.value='delalias_'+index; + this.document.forms.aliasform.folderpath.value=folderpath; + this.document.forms.aliasform.submit(); + } +} + ENDNEWSCRIPT } else { $jsmakefunctions = <