--- loncom/interface/londocs.pm 2013/04/02 00:07:08 1.541 +++ loncom/interface/londocs.pm 2013/05/19 15:33:54 1.546 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.541 2013/04/02 00:07:08 raeburn Exp $ +# $Id: londocs.pm,v 1.546 2013/05/19 15:33:54 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -340,10 +340,8 @@ sub group_import { } my $initialtext = &mt('Replace with your own content.'); my $newhtml = < - + - $name @@ -1066,7 +1064,6 @@ END } - sub do_paste_from_buffer { my ($coursenum,$coursedom,$folder,$container,$errors) = @_; @@ -2270,7 +2267,9 @@ sub update_parameter { sub handle_edit_cmd { my ($coursenum,$coursedom) =@_; - return if ($env{'form.cmd'} eq ''); + if ($env{'form.cmd'} eq '') { + return 0; + } my ($cmd,$idx)=split('_',$env{'form.cmd'}); my $ratstr = $LONCAPA::map::resources[$LONCAPA::map::order[$idx]]; @@ -2331,7 +2330,7 @@ sub editor { my $jumpto; unless ($supplementalflag) { - $jumpto = "'uploaded/$coursedom/$coursenum/$folder.$container'"; + $jumpto = "uploaded/$coursedom/$coursenum/$folder.$container"; } unless ($allowed) { @@ -2598,9 +2597,13 @@ sub editor { my ($to_show,$output,@allidx,@allmapidx,%filters,%lists,%curr_groups); %filters = ( - canremove => [], - cancut => [], - cancopy => [], + canremove => [], + cancut => [], + cancopy => [], + hiddenresource => [], + encrypturl => [], + randomorder => [], + randompick => [], ); %curr_groups = &Apache::longroup::coursegroups(); &Apache::loncommon::start_data_table_count(); #setup a row counter @@ -2625,7 +2628,9 @@ sub editor { my $need_save; if (($allowed) || ($supplementalflag && $folder eq 'supplemental')) { - my $toolslink = '
' + my $toolslink; + if ($allowed || &Apache::lonnet::allowed('mdc',$env{'request.course.id'})) { + $toolslink = '' @@ -2635,6 +2640,7 @@ sub editor { .'class="LC_toolbarItem" ' .'title="'.&mt('Supplemental Content Editor').'">' .'
' .&Apache::loncommon::help_open_menu('Navigation Screen', 'Navigation_Screen',undef,'RAT') .''.&mt('Tools:').'

'; + } if ($shown) { if ($allowed) { $to_show = &Apache::loncommon::start_scrollbox('900px','880px','400px','contentscroll') @@ -2650,9 +2656,13 @@ sub editor { if ($folder !~ /^supplemental/) { $lists{'canhide'} = join(',',@allidx); $lists{'canrandomlyorder'} = join(',',@allmapidx); - foreach my $item ('canremove','cancut','cancopy') { + my @possfilters = ('canremove','cancut','cancopy','hiddenresource','encrypturl', + 'randomorder','randompick'); + foreach my $item (@possfilters) { if (ref($filters{$item}) eq 'ARRAY') { - $lists{$item} = join(',',@{$filters{$item}}); + if (@{$filters{$item}} > 0) { + $lists{$item} = join(',',@{$filters{$item}}); + } } } if (@allidx > 0) { @@ -2774,7 +2784,11 @@ sub multiple_check_form { ''; if ($caller eq 'settings') { $output .= - ''; + ''."\n". + ''."\n". + ''."\n". + ''."\n". + ''."\n"; } elsif ($caller eq 'actions') { $output .= ''. @@ -3057,7 +3071,7 @@ END } if ($denied{'copy'}) { - $copylink=(<$lt{'cp'} ENDCOPY } else { @@ -3083,6 +3097,7 @@ ENDCUT $cutlink=(< $form_common + $lt{'ct'} $form_end ENDCUT @@ -3100,6 +3115,7 @@ ENDREM $removelink=(< $form_common + $lt{'rm'} $form_end ENDREM @@ -3222,6 +3238,9 @@ END my $rpckchk; if ($rpicknum) { $rpckchk = ' checked="checked"'; + if (($ishash) && (ref($filtersref->{'randompick'}) eq 'ARRAY')) { + push(@{$filtersref->{'randompick'}},$orderidx.':'.$rpicknum); + } } my $formname = 'edit_randompick_'.$orderidx; $rand_pick_text = @@ -3234,8 +3253,13 @@ $form_common."\n". } $rand_pick_text .= ''. $form_end; - my $ro_set= - ((&LONCAPA::map::getparameter($orderidx,'parameter_randomorder'))[0]=~/^yes$/i?' checked="checked"':''); + my $ro_set; + if ((&LONCAPA::map::getparameter($orderidx,'parameter_randomorder'))[0]=~/^yes$/i) { + $ro_set = 'checked="checked"'; + if (($ishash) && (ref($filtersref->{'randomorder'}) eq 'ARRAY')) { + push(@{$filtersref->{'randomorder'}},$orderidx); + } + } my $formname = 'edit_rorder_'.$orderidx; $rand_order_text = '
'."\n". @@ -3312,10 +3336,19 @@ $form_end; my %lt=&Apache::lonlocal::texthash( 'hd' => 'Hidden', 'ec' => 'URL hidden'); - my $enctext= - ((&LONCAPA::map::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i?' checked="checked"':''); - my $hidtext= - ((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i?' checked="checked"':''); + my ($enctext,$hidtext); + if ((&LONCAPA::map::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i) { + $enctext = ' checked="checked"'; + if (($ishash) && (ref($filtersref->{'encrypturl'}) eq 'ARRAY')) { + push(@{$filtersref->{'encrypturl'}},$orderidx); + } + } + if ((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i) { + $hidtext = ' checked="checked"'; + if (($ishash) && (ref($filtersref->{'randomorder'}) eq 'ARRAY')) { + push(@{$filtersref->{'hiddenresource'}},$orderidx); + } + } my $formhidden = 'edit_hiddenresource_'.$orderidx; my $formurlhidden = 'edit_encrypturl_'.$orderidx; $line.=(<'."\n". '
  • '. - ''. + ''. ''.$backtext.''.$backtext.'
  • '."\n". '
  • '. @@ -5306,10 +5339,14 @@ sub editing_js { p_rmr1 => 'WARNING: Removing a resource makes associated grades and scores inaccessible!', p_rmr2a => 'Remove[_99]', p_rmr2b => '?[_99]', + p_rmr3a => 'Remove those [_2]', + p_rmr3b => 'items?[_2]', p_ctr1a => 'WARNING: Cutting a resource makes associated grades and scores inaccessible!', p_ctr1b => 'Grades remain inaccessible if resource is pasted into another folder.', p_ctr2a => 'Cut[_98]', p_ctr2b => '?[_98]', + p_ctr3a => 'Cut those[_2]', + p_ctr3b => 'items?[_2]', 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', @@ -5317,6 +5354,9 @@ sub editing_js { titbl => 'Title is blank', more => '(More ...)', less => '(Less ...)', + noor => 'No actions selected or changes to settings specified.', + noch => 'No changes to settings specified.', + noac => 'No actions selected.', ); my $crstype = &Apache::loncommon::course_type(); @@ -5340,6 +5380,8 @@ sub editing_js { if (&Apache::lonnet::is_on_map($res)) { $backtourl = &HTML::Entities::encode(&Apache::lonnet::clutter($res),'<>&"').'?symb='. &HTML::Entities::encode($caller,'<>&"'); + } else { + $backtourl = '/adm/navmaps'; } } } elsif ($env{'docs.exit.'.$env{'request.course.id'}} eq '/adm/menu') { @@ -5950,6 +5992,8 @@ function checkSubmits() { var numchanges = 0; var form = document.saveactions; var doactions = multiActions(); + var cutwarnings = 0; + var remwarnings = 0; if (doactions == 1) { var remidxlist = document.cumulativeactions.allremoveidx.value; if ((remidxlist != '') && (remidxlist != null)) { @@ -5959,6 +6003,11 @@ function checkSubmits() { if (document.getElementById('remove_'+remidxs[i]).checked) { form.multiremove.value += remidxs[i]+','; numchanges ++; + if (document.getElementById('skip_remove_'+remidxs[i])) { + if (document.getElementById('skip_remove_'+remidxs[i]).value == 0) { + remwarnings ++; + } + } } } } @@ -5971,6 +6020,11 @@ function checkSubmits() { if (document.getElementById('cut_'+cutidxs[i]).checked == true) { form.multicut.value += cutidxs[i]+','; numchanges ++; + if (document.getElementById('skip_cut_'+cutidxs[i])) { + if (document.getElementById('skip_cut_'+cutidxs[i]).value == 0) { + cutwarnings ++; + } + } } } } @@ -5992,10 +6046,12 @@ function checkSubmits() { } } var dosettings = multiSettings(); + var haschanges = 0; if (dosettings == 1) { form.allencrypturl.value = ''; form.allhiddenresource.value = ''; - form.changeparms.value = 'all'; + form.changeparms.value = 'all'; + var patt=new RegExp(",\$"); var allidxlist = document.cumulativesettings.allidx.value; if ((allidxlist != '') && (allidxlist != null)) { var allidxs = allidxlist.split(','); @@ -6012,6 +6068,8 @@ function checkSubmits() { } } } + form.allhiddenresource.value = form.allhiddenresource.value.replace(patt,""); + form.allencrypturl.value = form.allencrypturl.value.replace(patt,""); } } form.allrandompick.value = ''; @@ -6030,12 +6088,55 @@ function checkSubmits() { form.allrandomorder.value += allmapidxs[i]+','; } } + form.allrandompick.value = form.allrandompick.value.replace(patt,""); + form.allrandomorder.value = form.allrandomorder.value.replace(patt,""); + } + if (document.cumulativesettings.currhiddenresource.value != form.allhiddenresource.value) { + haschanges = 1; + } + if (document.cumulativesettings.currencrypturl.value != form.allencrypturl.value) { + haschanges = 1; + } + if (document.cumulativesettings.currrandomorder.value != form.allrandomorder.value) { + haschanges = 1; + } + if (document.cumulativesettings.currrandompick.value != form.allrandompick.value) { + haschanges = 1; + } + } + if (doactions == 1) { + if (numchanges > 0) { + if ((cutwarnings > 0) || (remwarnings > 0)) { + if (remwarnings > 0) { + if (!confirm('$lt{"p_rmr1"}\\n\\n$lt{"p_rmr3a"} '+remwarnings+' $lt{"p_rmr3b"}')) { + return false; + } + } + if (cutwarnings > 0) { + if (!confirm('$lt{"p_ctr1a"}\\n$lt{"p_ctr1b"}\\n\\n$lt{"p_ctr3a"} '+cutwarnings+' $lt{"p_ctr3b"}')) { + return false; + } + } + } + form.submit(); + return true; + } + } + if (dosettings == 1) { + if (haschanges == 1) { + form.submit(); + return true; + } + } + if ((dosettings == 1) && (doactions == 1)) { + alert("$lt{'noor'}"); + } else { + if (dosettings == 1) { + alert("$lt{'noch'}"); + } else { + alert("$lt{'noac'}"); } } - if ((numchanges > 0) || (dosettings == 1)) { - form.submit(); - return true; - } return false; }