--- loncom/interface/londocs.pm 2013/04/02 20:33:41 1.542 +++ loncom/interface/londocs.pm 2013/04/03 02:00:19 1.543 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.542 2013/04/02 20:33:41 raeburn Exp $ +# $Id: londocs.pm,v 1.543 2013/04/03 02:00:19 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -2269,7 +2269,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]]; @@ -2597,9 +2599,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 @@ -2649,9 +2655,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) { @@ -2773,7 +2783,11 @@ sub multiple_check_form { ''; if ($caller eq 'settings') { $output .= - ''; + ''."\n". + ''."\n". + ''."\n". + ''."\n". + ''."\n"; } elsif ($caller eq 'actions') { $output .= ''. @@ -3056,7 +3070,7 @@ END } if ($denied{'copy'}) { - $copylink=(<$lt{'cp'} ENDCOPY } else { @@ -3223,6 +3237,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 = @@ -3235,8 +3252,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". @@ -3313,10 +3335,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.=(< '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(); @@ -6009,10 +6043,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(','); @@ -6029,6 +6065,8 @@ function checkSubmits() { } } } + form.allhiddenresource.value = form.allhiddenresource.value.replace(patt,""); + form.allencrypturl.value = form.allencrypturl.value.replace(patt,""); } } form.allrandompick.value = ''; @@ -6047,9 +6085,23 @@ 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 ((numchanges > 0) || (dosettings == 1)) { + if (doactions == 1) { if (numchanges > 0) { if ((cutwarnings > 0) || (remwarnings > 0)) { if (remwarnings > 0) { @@ -6065,11 +6117,23 @@ function checkSubmits() { } form.submit(); return true; - } else { + } + } + 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'}"); + } + } return false; }