Diff for /loncom/interface/londocs.pm between versions 1.484.2.27 and 1.537

version 1.484.2.27, 2013/03/17 18:46:21 version 1.537, 2013/03/17 14:27:34
Line 353  $initialtext Line 353  $initialtext
 </html>  </html>
 END  END
                 $env{'form.output'}=$newhtml;                  $env{'form.output'}=$newhtml;
                 my $result =                  my $result = 
                     &Apache::lonnet::finishuserfileupload($coursenum,$coursedom,                      &Apache::lonnet::finishuserfileupload($coursenum,$coursedom,
                                                           'output',                                                            'output',
                                                           "$filepath/$residx/$fname.html");                                                            "$filepath/$residx/$fname.html");
Line 377  END Line 377  END
                           removefrommap => \%removefrommap,                            removefrommap => \%removefrommap,
                           removeparam   => \%removeparam,                            removeparam   => \%removeparam,
                       );                        );
         my ($result,$msgsarray,$lockerror) =          my ($result,$msgsarray,$lockerror) = 
             &apply_fixups($folder,1,$coursedom,$coursenum,\%import_errors,\%updated);              &apply_fixups($folder,1,$coursedom,$coursenum,\%import_errors,\%updated);
         if (keys(%import_errors) > 0) {          if (keys(%import_errors) > 0) {
             $fixuperrors =              $fixuperrors =
Line 804  sub print_paste_buffer { Line 804  sub print_paste_buffer {
         $r->print('<form name="pasteform" action="/adm/coursedocs" method="post">'.$buffer);          $r->print('<form name="pasteform" action="/adm/coursedocs" method="post">'.$buffer);
         if ((!$areachange) && (!$othercourse) &&          if ((!$areachange) && (!$othercourse) &&
             ($env{'docs.markedcopy_cmd'} eq 'cut')) {              ($env{'docs.markedcopy_cmd'} eq 'cut')) {
             if (($is_uploaded_map) ||              if (($is_uploaded_map) || 
                 ($env{'docs.markedcopy_url'} =~ /(bulletinboard|smppg)$/) ||                  ($env{'docs.markedcopy_url'} =~ /(bulletinboard|smppg)$/) ||
                 ($env{'docs.markedcopy_url'} =~ m{^/uploaded/$coursedom/$coursenum/(?:docs|supplemental)/(.+)$})) {                  ($env{'docs.markedcopy_url'} =~ m{^/uploaded/$coursedom/$coursenum/(?:docs|supplemental)/(.+)$})) {
                 my ($copytext,$movetext);                  my ($copytext,$movetext);
Line 1049  sub do_paste_from_buffer { Line 1049  sub do_paste_from_buffer {
                 &url_paste_fixups($url,$folder,$prefixchg,$coursedom,$coursenum,                  &url_paste_fixups($url,$folder,$prefixchg,$coursedom,$coursenum,
                                   $srcdom,$srcnum,$allmaps,\%rewrites,                                    $srcdom,$srcnum,$allmaps,\%rewrites,
                                   \%retitles,\%copies,\%dbcopies,\%zombies,\%params,\%mapmoves,                                    \%retitles,\%copies,\%dbcopies,\%zombies,\%params,\%mapmoves,
                                   \%mapchanges,\%tomove,\%newsubdir,\%newurls);                                    \%mapchanges,\%tomove,\%newsubdir,\%newurls); 
             }              }
         } elsif ($url=~m {^/res/}) {          } elsif ($url=~m {^/res/}) {
 # published maps can only exists once, so remove it from paste buffer when done  # published maps can only exists once, so remove it from paste buffer when done
Line 1085  sub do_paste_from_buffer { Line 1085  sub do_paste_from_buffer {
                     $msg = &mt('Paste failed: An error occurred when copying the bulletin board.').' '.$errtext;                      $msg = &mt('Paste failed: An error occurred when copying the bulletin board.').' '.$errtext;
                 }                  }
                 return ($result,undef,[$msg],$lockerr{$prefix});                  return ($result,undef,[$msg],$lockerr{$prefix});
             }      }
             if ($lockerr{$prefix}) {              if ($lockerr{$prefix}) {
                 $lockerrors = $lockerr{$prefix};                  $lockerrors = $lockerr{$prefix};  
             }              }
         }          }
     }      }
Line 1116  sub do_paste_from_buffer { Line 1116  sub do_paste_from_buffer {
                 if ($newdocsdir eq '') {                  if ($newdocsdir eq '') {
                     $newdocsdir = 'default';                      $newdocsdir = 'default';
                 }                  }
                 if (($prefixchg) ||                  if (($prefixchg) || 
                     ($srcdom ne $coursedom) || ($srcnum ne $coursenum) ||                      ($srcdom ne $coursedom) || ($srcnum ne $coursenum) ||
                     ($env{'form.docs.markedcopy_options'} ne 'move')) {                      ($env{'form.docs.markedcopy_options'} ne 'move')) {
                     my $newpath = "$newprefix/$newdocsdir/$newidx/$rem";                      my $newpath = "$newprefix/$newdocsdir/$newidx/$rem";
Line 1194  sub do_paste_from_buffer { Line 1194  sub do_paste_from_buffer {
             $save_err = $errtext;              $save_err = $errtext;
         }          }
     }      }
      
     if ($env{'form.docs.markedcopy_options'} eq 'move') {      if ($env{'form.docs.markedcopy_options'} eq 'move') {
         &Apache::lonnet::delenv('docs.markedcopy');          &Apache::lonnet::delenv('docs.markedcopy');
         &Apache::lonnet::delenv('docs.markedcopy_nested');          &Apache::lonnet::delenv('docs.markedcopy_nested');
Line 1270  sub dbcopy { Line 1270  sub dbcopy {
     if (ref($dbref) eq 'HASH') {      if (ref($dbref) eq 'HASH') {
         if ($url =~ m{/(smppg|bulletinboard)$}) {          if ($url =~ m{/(smppg|bulletinboard)$}) {
             my $prefix = $1;              my $prefix = $1;
             if (($dbref->{'cdom'} =~ /^$match_domain$/) &&              if (($dbref->{'cdom'} =~ /^$match_domain$/) && 
                 ($dbref->{'cnum'} =~ /^$match_courseid$/)) {                  ($dbref->{'cnum'} =~ /^$match_courseid$/)) {
                 my $db_name;                  my $db_name;
                 my $marker = (split(m{/},$url))[4];                  my $marker = (split(m{/},$url))[4];
Line 1305  sub dbcopy { Line 1305  sub dbcopy {
                         my $photo = $contents{'uploaded.photourl'};                          my $photo = $contents{'uploaded.photourl'};
                         my ($subdir,$fname) =                          my ($subdir,$fname) =
                             ($photo =~ m{^/uploaded/$match_domain/$match_courseid/+(bulletin|simplepage)/(?:|\d+/)([^/]+)$});                              ($photo =~ m{^/uploaded/$match_domain/$match_courseid/+(bulletin|simplepage)/(?:|\d+/)([^/]+)$});
                         my $newphoto;                          my $newphoto; 
                         if ($fname ne '') {                          if ($fname ne '') {
                             my $content = &Apache::lonnet::getfile($photo);                              my $content = &Apache::lonnet::getfile($photo);
                             unless ($content eq '-1') {                              unless ($content eq '-1') {
                                 $env{'form.'.$suffix.'.photourl'} = $content;                                  $env{'form.'.$suffix.'.photourl'} = $content;
                                 $newphoto =                                  $newphoto = 
                                     &Apache::lonnet::finishuserfileupload($coursenum,$coursedom,$suffix.'.photourl',"$subdir/$suffix/$fname");                                      &Apache::lonnet::finishuserfileupload($coursenum,$coursedom,$suffix.'.photourl',"$subdir/$suffix/$fname");
                                 delete($env{'form.'.$suffix.'.photourl'});                                  delete($env{'form.'.$suffix.'.photourl'});
                             }                              }
Line 1327  sub dbcopy { Line 1327  sub dbcopy {
                     }                      }
                 }                  }
                 if (($freedlock ne 'ok') && (ref($lockerrorsref) eq 'HASH')) {                  if (($freedlock ne 'ok') && (ref($lockerrorsref) eq 'HASH')) {
                     $lockerrorsref->{$prefix} =                      $lockerrorsref->{$prefix} = 
                         '<div class="LC_error">'.                          '<div class="LC_error">'.
                         &mt('There was a problem removing a lockfile.');                          &mt('There was a problem removing a lockfile.');
                     if ($prefix eq 'smppg') {                      if ($prefix eq 'smppg') {
                         $lockerrorsref->{$prefix} .=                          $lockerrorsref->{$prefix} .= 
                             &mt('This will prevent creation of additional simple pages in this course.');                              &mt('This will prevent creation of additional simple pages in this course.');
                     } else {                      } else {
                         $lockerrorsref->{$prefix} .= &mt('This will prevent creation of additional bulletin boards in this course.');                          $lockerrorsref->{$prefix} .= &mt('This will prevent creation of additional bulletin boards in this course.');
Line 1505  sub url_paste_fixups { Line 1505  sub url_paste_fixups {
                     }                      }
                 }                  }
             } elsif ($ressrc =~ m{^/adm/($match_domain)/($match_courseid)/.+$}) {              } elsif ($ressrc =~ m{^/adm/($match_domain)/($match_courseid)/.+$}) {
                 next if ($skip);                    next if ($skip);
                 my $srcdom = $1;                  my $srcdom = $1;
                 my $srcnum = $2;                  my $srcnum = $2;
                 if (($srcdom ne $cdom) || ($srcnum ne $cnum)) {                  if (($srcdom ne $cdom) || ($srcnum ne $cnum)) {
Line 1889  my %parameter_type = ( 'randompick' Line 1889  my %parameter_type = ( 'randompick'
 my $valid_parameters_re = join('|',keys(%parameter_type));  my $valid_parameters_re = join('|',keys(%parameter_type));
 # set parameters  # set parameters
 sub update_parameter {  sub update_parameter {
       if ($env{'form.changeparms'} eq 'all') {
     return 0 if ($env{'form.changeparms'} !~ /^($valid_parameters_re)$/);          my (@allidx,@allmapidx,%allchecked,%currchecked);
           %allchecked = (
     my $which = $env{'form.changeparms'};                           'hiddenresource' => {},
     my $idx = $env{'form.setparms'};                           'encrypturl'     => {},
     if ($env{'form.'.$which.'_'.$idx}) {                           'randompick'     => {},
  my $value = ($which eq 'randompick') ? $env{'form.'.$which.'_'.$idx}                           'randomorder'    => {},
                                      : 'yes';                        );
  &LONCAPA::map::storeparameter($idx, 'parameter_'.$which, $value,          foreach my $which (keys(%allchecked)) {
       $parameter_type{$which});              $env{'form.all'.$which} =~ s/,$//;   
  &remember_parms($idx,$which,'set',$value);              if ($which eq 'randompick') {
                   foreach my $item (split(/,/,$env{'form.all'.$which})) {
                       my ($res,$value) = split(/:/,$item);
                       if ($value =~ /^\d+$/) {
                           $allchecked{$which}{$res} = $value;
                       }
                   }
               } else {
                   map { $allchecked{$which}{$_} = 1; } split(/,/,$env{'form.all'.$which});
               }
           }
           my $haschanges = 0;
           foreach my $res (@LONCAPA::map::order) {
               my ($name,$url)=split(/\:/,$LONCAPA::map::resources[$res]);
               $name=&LONCAPA::map::qtescape($name);
               $url=&LONCAPA::map::qtescape($url);
               next unless ($name && $url);
               my $is_map;
               if ($url =~ m{/uploaded/.+\.(page|sequence)$}) {
                   $is_map = 1;
               }
               foreach my $which (keys(%allchecked)) {
                   if (($which eq 'randompick' || $which eq 'randomorder')) {
                       next if (!$is_map);
                   } 
                   my $oldvalue = 0;
                   my $newvalue = 0;
                   if ($allchecked{$which}{$res}) {
                       $newvalue = $allchecked{$which}{$res};
                   }
                   my $current = (&LONCAPA::map::getparameter($res,'parameter_'.$which))[0];
                   if ($which eq 'randompick') {
                       if ($current =~ /^(\d+)$/) {
                           $oldvalue = $1;
                       }
                   } else {
                       if ($current =~ /^yes$/i) {
                           $oldvalue = 1;
                       }
                   }
                   if ($oldvalue ne $newvalue) {
                       $haschanges = 1;
                       if ($newvalue) {
                           my $storeval = 'yes';
                           if ($which eq 'randompick') {
                               $storeval = $newvalue;
                           }
                           &LONCAPA::map::storeparameter($res,'parameter_'.$which,
                                                         $storeval,
                                                         $parameter_type{$which});
                           &remember_parms($res,$which,'set',$storeval);
                       } elsif ($oldvalue) {
                           &LONCAPA::map::delparameter($res,'parameter_'.$which);
                           &remember_parms($res,$which,'del');
                       }
                   }
               }
           }
           return $haschanges;
     } else {      } else {
  &LONCAPA::map::delparameter($idx,'parameter_'.$which);          return 0 if ($env{'form.changeparms'} !~ /^($valid_parameters_re)$/);
   
           my $which = $env{'form.changeparms'};
           my $idx = $env{'form.setparms'};
           if ($env{'form.'.$which.'_'.$idx}) {
       my $value = ($which eq 'randompick') ? $env{'form.rpicknum_'.$idx}
                                            : 'yes';
       &LONCAPA::map::storeparameter($idx, 'parameter_'.$which, $value,
             $parameter_type{$which});
       &remember_parms($idx,$which,'set',$value);
           } else {
       &LONCAPA::map::delparameter($idx,'parameter_'.$which);
   
  &remember_parms($idx,$which,'del');      &remember_parms($idx,$which,'del');
           }
           return 1;
     }      }
     return 1;  
 }  }
   
   
Line 2017  sub editor { Line 2087  sub editor {
                                       \%paste_errors);                                        \%paste_errors);
                 if (ref($pastemsgarray) eq 'ARRAY') {                  if (ref($pastemsgarray) eq 'ARRAY') {
                     if (@{$pastemsgarray} > 0) {                      if (@{$pastemsgarray} > 0) {
                             
                         $r->print('<p class="LC_info">'.                          $r->print('<p class="LC_info">'.
                                   join('<br />',@{$pastemsgarray}).                                    join('<br />',@{$pastemsgarray}).
                                   '</p>');                                    '</p>');
Line 2063  sub editor { Line 2133  sub editor {
     my ($name,$url,$residx)=      my ($name,$url,$residx)=
  map { &unescape($_); } split(/\=/,$item);   map { &unescape($_); } split(/\=/,$item);
                     if ($url =~ m{^\Q/uploaded/$coursedom/$coursenum/\E(default|supplemental)_new\.(sequence|page)$}) {                      if ($url =~ m{^\Q/uploaded/$coursedom/$coursenum/\E(default|supplemental)_new\.(sequence|page)$}) {
                         my ($suffix,$errortxt,$locknotfreed) =                           my ($suffix,$errortxt,$locknotfreed) =
                             &new_timebased_suffix($coursedom,$coursenum,'map',$1,$2);                              &new_timebased_suffix($coursedom,$coursenum,'map',$1,$2);
                         if ($locknotfreed) {                          if ($locknotfreed) {
                             $r->print($locknotfreed);                              $r->print($locknotfreed);
Line 2167  sub editor { Line 2237  sub editor {
         $r->print('</div>');          $r->print('</div>');
     }      }
   
     my ($to_show,$output);      my ($to_show,$output,@allidx,@allmapidx);
   
     &Apache::loncommon::start_data_table_count(); #setup a row counter       &Apache::loncommon::start_data_table_count(); #setup a row counter 
     foreach my $res (@LONCAPA::map::order) {      foreach my $res (@LONCAPA::map::order) {
Line 2176  sub editor { Line 2246  sub editor {
         $url=&LONCAPA::map::qtescape($url);          $url=&LONCAPA::map::qtescape($url);
         unless ($name) {  $name=(split(/\//,$url))[-1]; }          unless ($name) {  $name=(split(/\//,$url))[-1]; }
         unless ($name) { $idx++; next; }          unless ($name) { $idx++; next; }
           push(@allidx,$res);
           if ($url =~ m{/uploaded/.+\.(page|sequence)$}) {
               push(@allmapidx,$res);
           }
         $output .= &entryline($idx,$name,$url,$folder,$allowed,$res,          $output .= &entryline($idx,$name,$url,$folder,$allowed,$res,
                               $coursenum,$coursedom,$crstype,                                $coursenum,$coursedom,$crstype,
                               $pathitem,$supplementalflag,$container);                                $pathitem,$supplementalflag,$container);
Line 2206  sub editor { Line 2280  sub editor {
                 if ($folder !~ /^supplemental/) {                  if ($folder !~ /^supplemental/) {
                     $to_show .= '<th colspan="4">'.&mt('Settings').'</th>';                      $to_show .= '<th colspan="4">'.&mt('Settings').'</th>';
                 }                  }
                 $to_show .= &Apache::loncommon::end_data_table_header_row()                  $to_show .= &Apache::loncommon::end_data_table_header_row();
                            .$output.' '                  if ($folder !~ /^supplemental/) {
                       my $idxlist = join(',',@allidx);
                       my $mapidxlist = join(',',@allmapidx);
                       if (@allidx > 0) {
                           my $path;
                           if ($env{'form.folderpath'}) {
                               $path = 
                                   &HTML::Entities::encode($env{'form.folderpath'},'<>&"');
                           }
                           $to_show .= 
                               &Apache::loncommon::continue_data_table_row().
                               '<td colspan="5">&nbsp;</td>'.
                               '<td colspan="4">'.
                               '<form action="/adm/coursedocs" method="post" name="togglemultchecks">'.
                               '<span class="LC_nobreak" style="font-size:x-small;font-weight:bold;">'.&mt('Select:').'&nbsp;'.
                               '<label><input type="radio" name="showmultpick" value="0" onclick="javascript:togglePick();" checked="checked" />'.&mt('single').'</label>'.('&nbsp;'x2).'<label><input type="radio" name="showmultpick" value="1" onclick="javascript:togglePick();" />'.&mt('multiple').'</label></span></form>'.
                               '<div id="multiclick" style="display: none">'.
                               '<form action="/adm/coursedocs" method="post" name="cumulativechecks" onsubmit="return submitSettings(this);">'."\n".
                               '<fieldset><legend style="font-size:x-small;">'.&mt('check/uncheck all').'</legend>'."\n".
                               '<table><tr><td class="LC_docs_entry_parameter"><span class="LC_nobreak"><input type="checkbox" name="hiddenresourceall" id="hiddenresourceall" onclick="propagateState(this.form,'."'hiddenresource'".')" />'.&mt('Hidden').'</span></td><td class="LC_docs_entry_parameter"><span class="LC_nobreak"><input type="checkbox" name="randompickall" id="randompickall" onclick="updatePick(this.form,'."'all','check'".');propagateState(this.form,'."'randompick'".');propagateState(this.form,'."'rpicknum'".');" />'.&mt('Randomly Pick').'<span id="rpicktextall"></span><input type="hidden" name="rpicknumall" id="rpicknumall" value="" /></span></td>'.
                               '</tr>'."\n".
                               '<tr><td class="LC_docs_entry_parameter"><span class="LC_nobreak"><input type="checkbox" name="encrypturlall" id="encrypturlall" onclick="propagateState(this.form,'."'encrypturl'".')" />'.&mt('URL hidden').'</span></td><td class="LC_docs_entry_parameter"><span class="LC_nobreak"><input type="checkbox" name="randomorderall" id="randomorderall" onclick="propagateState(this.form,'."'randomorder'".')" />'.&mt('Random Order').'</span></td></tr></table>'."\n".
                               '</fieldset>'.
                               '<input type="hidden" name="folderpath" value="'.$path.'" />'.
                               '<input type="hidden" name="symb" value="'.$env{'form.symb'}.'" />'.
                               '<input type="hidden" name="allhiddenresource" value="" />'.
                               '<input type="hidden" name="allencrypturl" value="" />'.
                               '<input type="hidden" name="allrandompick" value="" />'.
                               '<input type="hidden" name="allrandomorder" value="" />'.
                               '<input type="hidden" name="allidx" value="'.$idxlist.'" />'.
                               '<input type="hidden" name="allmapidx" value="'.$mapidxlist.'" />'.
                               '<input type="hidden" name="changeparms" value="all" />'.
                               '<input type="submit" name="multiplesettings" value="'.&mt('Save settings below').'" />'.
                               '</form>'.
                               '</div>'.
   
                               '</td>'.
                               &Apache::loncommon::end_data_table_row();
                       }
                   }
                   $to_show .= $output.' '
                            .&Apache::loncommon::end_data_table()                             .&Apache::loncommon::end_data_table()
                            .'<br style="line-height:2px;" />'                             .'<br style="line-height:2px;" />'
                            .&Apache::loncommon::end_scrollbox();                             .&Apache::loncommon::end_scrollbox();
Line 2432  sub entryline { Line 2546  sub entryline {
     my $line=&Apache::loncommon::start_data_table_row();      my $line=&Apache::loncommon::start_data_table_row();
     my ($form_start,$form_end,$form_common);      my ($form_start,$form_end,$form_common);
 # Edit commands  # Edit commands
     my ($type, $esc_path, $path, $symb);      my ($esc_path, $path, $symb);
     if ($container eq 'page') {  
         $type = 'page';  
     } else {  
         $type = 'folder';  
     }  
     if ($env{'form.folderpath'}) {      if ($env{'form.folderpath'}) {
  $esc_path=&escape($env{'form.folderpath'});   $esc_path=&escape($env{'form.folderpath'});
  $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"');   $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"');
Line 2605  ENDREN Line 2714  ENDREN
    <form action="/adm/coursedocs" method="post">     <form action="/adm/coursedocs" method="post">
 ';  ';
         $form_common=(<<END);          $form_common=(<<END);
    <input type="hidden" name="${type}path" value="$path" />     <input type="hidden" name="folderpath" value="$path" />
    <input type="hidden" name="${type}symb" value="$symb" />     <input type="hidden" name="symb" value="$symb" />
    <input type="hidden" name="setparms" value="$orderidx" />     <input type="hidden" name="setparms" value="$orderidx" />
    <input type="hidden" name="changeparms" value="0" />     <input type="hidden" name="changeparms" value="0" />
 END  END
Line 2614  END Line 2723  END
  $line.=(<<END);   $line.=(<<END);
 <td>  <td>
 <div class="LC_docs_entry_move">  <div class="LC_docs_entry_move">
   <a href='/adm/coursedocs?cmd=up_$index&amp;${type}path=$esc_path&amp;${type}symb=$symb'>    <a href='/adm/coursedocs?cmd=up_$index&amp;folderpath=$esc_path&amp;symb=$symb'>
     <img src="${iconpath}move_up.gif" alt="$lt{'up'}" class="LC_icon" />      <img src="${iconpath}move_up.gif" alt="$lt{'up'}" class="LC_icon" />
   </a>    </a>
 </div>  </div>
 <div class="LC_docs_entry_move">  <div class="LC_docs_entry_move">
   <a href='/adm/coursedocs?cmd=down_$index&amp;${type}path=$esc_path&amp;${type}symb=$symb'>    <a href='/adm/coursedocs?cmd=down_$index&amp;folderpath=$esc_path&amp;symb=$symb'>
     <img src="${iconpath}move_down.gif" alt="$lt{'dw'}" class="LC_icon" />      <img src="${iconpath}move_down.gif" alt="$lt{'dw'}" class="LC_icon" />
   </a>    </a>
 </div>  </div>
Line 2723  END Line 2832  END
             if ($rpicknum) {              if ($rpicknum) {
                 $rpckchk = ' checked="checked"';                  $rpckchk = ' checked="checked"';
             }              }
             my $formname = 'edit_rpick_'.$orderidx;              my $formname = 'edit_randompick_'.$orderidx;
     $rand_pick_text =       $rand_pick_text = 
 '<form action="/adm/coursedocs" method="post" name="'.$formname.'">'."\n".  '<form action="/adm/coursedocs" method="post" name="'.$formname.'">'."\n".
 $form_common."\n".  $form_common."\n".
 '<span class="LC_nobreak"><label><input type="checkbox" name="randpickon_'.$orderidx.'" id="rpick_'.$orderidx.'" onclick="'."updatePick(this.form,'$orderidx','check');".'"'.$rpckchk.' /> '.&mt('Randomly Pick').'</label><input type="hidden" name="randompick_'.$orderidx.'" id="rpicknum_'.$orderidx.'" value="'.$rpicknum.'" />';  '<span class="LC_nobreak"><label><input type="checkbox" name="randompick_'.$orderidx.'" id="randompick_'.$orderidx.'" onclick="'."updatePick(this.form,'$orderidx','check');".'"'.$rpckchk.' /> '.&mt('Randomly Pick').'</label><input type="hidden" name="rpicknum_'.$orderidx.'" id="rpicknum_'.$orderidx.'" value="'.$rpicknum.'" /><span id="randompicknum_'.$orderidx.'">';
             if ($rpicknum ne '') {              if ($rpicknum ne '') {
                 $rand_pick_text .= ':&nbsp;<a href="javascript:updatePick('."document.$formname,'$orderidx','link'".')">'.$rpicknum.'</a>';                  $rand_pick_text .= ':&nbsp;<a href="javascript:updatePick('."document.$formname,'$orderidx','link'".')">'.$rpicknum.'</a>';
             }              }
             $rand_pick_text .= '</span></form>';              $rand_pick_text .= '</span></span>'.
                                  $form_end;
        my $ro_set=         my $ro_set=
         ((&LONCAPA::map::getparameter($orderidx,'parameter_randomorder'))[0]=~/^yes$/i?' checked="checked"':'');          ((&LONCAPA::map::getparameter($orderidx,'parameter_randomorder'))[0]=~/^yes$/i?' checked="checked"':'');
               my $formname = 'edit_rorder_'.$orderidx;
     $rand_order_text =       $rand_order_text = 
 $form_start.  '<form action="/adm/coursedocs" method="post" name="'.$formname.'">'."\n".
 $form_common.'  $form_common."\n".
 <span class="LC_nobreak"><label><input type="checkbox" name="randomorder_'.$orderidx.'" onclick="'."this.form.changeparms.value='randomorder';this.form.submit()".'" '.$ro_set.' /> '.&mt('Random Order').' </label></span></form>';  '<span class="LC_nobreak"><label><input type="checkbox" name="randomorder_'.$orderidx.'" id="randomorder_'.$orderidx.'" onclick="checkForSubmit(this.form,'."'randomorder'".')"; '.$ro_set.' /> '.&mt('Random Order').' </label></span>'.
   $form_end; 
         }          }
     } elsif ($supplementalflag && !$allowed) {      } elsif ($supplementalflag && !$allowed) {
         $url .= ($url =~ /\?/) ? '&amp;':'?';          $url .= ($url =~ /\?/) ? '&amp;':'?';
Line 2811  $form_common.' Line 2923  $form_common.'
     ((&LONCAPA::map::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i?' checked="checked"':'');      ((&LONCAPA::map::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i?' checked="checked"':'');
  my $hidtext=   my $hidtext=
     ((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i?' checked="checked"':'');      ((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i?' checked="checked"':'');
           my $formhidden = 'edit_hiddenresource_'.$orderidx;
           my $formurlhidden = 'edit_encrypturl_'.$orderidx;
  $line.=(<<ENDPARMS);   $line.=(<<ENDPARMS);
   <td class="LC_docs_entry_parameter">    <td class="LC_docs_entry_parameter">
     $form_start      <form action="/adm/coursedocs" method="post" name="$formhidden">
     $form_common      $form_common
     <label><input type="checkbox" name="hiddenresource_$orderidx" onclick="this.form.changeparms.value='hiddenresource';this.form.submit()" $hidtext /> $lt{'hd'}</label>      <label><input type="checkbox" name="hiddenresource_$orderidx" id="hiddenresource_$orderidx" onclick="checkForSubmit(this.form,'."'hiddenresource'".');" $hidtext /> $lt{'hd'}</label>
     $form_end      $form_end
     <br />      <br />
     $form_start      <form action="/adm/coursedocs" method="post" name="$formurlhidden">
     $form_common      $form_common
     <label><input type="checkbox" name="encrypturl_$orderidx" onclick="this.form.changeparms.value='encrypturl';this.form.submit()" $enctext /> $lt{'ec'}</label>      <label><input type="checkbox" name="encrypturl_$orderidx" id="encrypturl_$orderidx" onclick="checkForSubmit(this.form,'."'encrypturl'".');" $enctext /> $lt{'ec'}</label>
     $form_end      $form_end
   </td>    </td>
   <td class="LC_docs_entry_parameter">$rand_pick_text<br />    <td class="LC_docs_entry_parameter">$rand_pick_text<br />
Line 2862  sub new_timebased_suffix { Line 2976  sub new_timebased_suffix {
         }          }
     }      }
     if ($freedlock ne 'ok') {      if ($freedlock ne 'ok') {
         $locknotfreed =          $locknotfreed = 
             '<div class="LC_error">'.              '<div class="LC_error">'.
             &mt('There was a problem removing a lockfile.').' ';              &mt('There was a problem removing a lockfile.').' ';
         if ($type eq 'map') {          if ($type eq 'map') {
Line 3417  sub startContentScreen { Line 3531  sub startContentScreen {
     if (($mode eq 'navmaps') || ($mode eq 'supplemental')) {      if (($mode eq 'navmaps') || ($mode eq 'supplemental')) {
         $output .= '<li'.(($mode eq 'navmaps')?' class="active"':'').'><a href="/adm/navmaps"><b>&nbsp;&nbsp;&nbsp;&nbsp;'.&mt('Content Overview').'&nbsp;&nbsp;&nbsp;&nbsp;</b></a></li>'."\n";          $output .= '<li'.(($mode eq 'navmaps')?' class="active"':'').'><a href="/adm/navmaps"><b>&nbsp;&nbsp;&nbsp;&nbsp;'.&mt('Content Overview').'&nbsp;&nbsp;&nbsp;&nbsp;</b></a></li>'."\n";
         $output .= '<li'.(($mode eq 'coursesearch')?' class="active"':'').'><a href="/adm/searchcourse"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.&mt('Content Search').'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></a></li>'."\n";          $output .= '<li'.(($mode eq 'coursesearch')?' class="active"':'').'><a href="/adm/searchcourse"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.&mt('Content Search').'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></a></li>'."\n";
           $output .= '<li'.(($mode eq 'courseindex')?' class="active"':'').'><a href="/adm/indexcourse"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.&mt('Content Index').'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></a></li>'."\n";
         $output .= '<li '.(($mode eq 'suppdocs')?' class="active"':'').'><a href="/adm/supplemental"><b>'.&mt('Supplemental Content').'</b></a></li>';          $output .= '<li '.(($mode eq 'suppdocs')?' class="active"':'').'><a href="/adm/supplemental"><b>'.&mt('Supplemental Content').'</b></a></li>';
     } else {      } else {
         $output .= '<li '.(($mode eq 'docs')?' class="active"':'').' id="tabbededitor"><a href="/adm/coursedocs?forcestandard=1"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.&mt('Content Editor').'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></a></li>'."\n";          $output .= '<li '.(($mode eq 'docs')?' class="active"':'').' id="tabbededitor"><a href="/adm/coursedocs?forcestandard=1"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.&mt('Content Editor').'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></a></li>'."\n";
Line 3483  sub handler { Line 3598  sub handler {
     $help{'Caching'} = &Apache::loncommon::help_open_topic('Caching');      $help{'Caching'} = &Apache::loncommon::help_open_topic('Caching');
     $help{'Course Roster'} = &Apache::loncommon::help_open_topic('Docs_Course_Roster');      $help{'Course Roster'} = &Apache::loncommon::help_open_topic('Docs_Course_Roster');
     $help{'Web Page'} =  &Apache::loncommon::help_open_topic('Docs_Web_Page');      $help{'Web Page'} =  &Apache::loncommon::help_open_topic('Docs_Web_Page');
        
     my $allowed;      my $allowed;
 # URI is /adm/supplemental when viewing supplemental docs in non-edit mode.  # URI is /adm/supplemental when viewing supplemental docs in non-edit mode.
     unless ($r->uri eq '/adm/supplemental') {      unless ($r->uri eq '/adm/supplemental') {
Line 3817  sub handler { Line 3932  sub handler {
                 'navc' => 'Table of Contents',                  'navc' => 'Table of Contents',
                 'sipa' => 'Simple Course Page',                  'sipa' => 'Simple Course Page',
                 'sipr' => 'Simple Problem',                  'sipr' => 'Simple Problem',
                 'webp' => 'Blank Web Page (editable)',                  'webp' => 'Blank Web Page (editable)', 
                 'drbx' => 'Drop Box',                  'drbx' => 'Drop Box',
                 'scuf' => 'External Scores (handgrade, upload, clicker)',                  'scuf' => 'External Scores (handgrade, upload, clicker)',
                 'bull' => 'Discussion Board',                  'bull' => 'Discussion Board',
Line 4100  NROSTFORM Line 4215  NROSTFORM
         $help{'Web Page'}          $help{'Web Page'}
         </form>          </form>
 NWEBFORM  NWEBFORM
    
   
 my $specialdocumentsform;  my $specialdocumentsform;
 my @specialdocumentsforma;  my @specialdocumentsforma;
Line 4690  sub editing_js { Line 4805  sub editing_js {
                                           p_msb => 'Title for the Problem',                                            p_msb => 'Title for the Problem',
                                           p_mdb => 'Title for the Drop Box',                                            p_mdb => 'Title for the Drop Box',
                                           p_mbb => 'Title for the Discussion Board',                                            p_mbb => 'Title for the Discussion Board',
                                           p_mwp => 'Title for Web Page',                                            p_mwp => 'Title for Web Page', 
                                           p_mab => "Enter user:domain for User's Personal Information Page",                                            p_mab => "Enter user:domain for User's Personal Information Page",
                                           p_mab2 => 'Personal Information Page of ',                                            p_mab2 => 'Personal Information Page of ',
                                           p_mab_alrt1 => 'Not a valid user:domain',                                            p_mab_alrt1 => 'Not a valid user:domain',
Line 4792  function makewebpage(type) { Line 4907  function makewebpage(type) {
        formname = this.document.forms.newwebpage;         formname = this.document.forms.newwebpage;
    }     }
    if (title) {     if (title) {
        var webpage = formname.importdetail.value;         var webpage = formname.importdetail.value; 
        formname.importdetail.value = escape(title)+'='+webpage;         formname.importdetail.value = escape(title)+'='+webpage;
        formname.submit();         formname.submit();
    }     }
Line 4926  this.document.forms.renameform.submit(); Line 5041  this.document.forms.renameform.submit();
 }  }
   
 function updatePick(targetform,index,caller) {  function updatePick(targetform,index,caller) {
     var pickitem = document.getElementById('rpick_'+index);      var pickitem;
     var picknumitem = document.getElementById('rpicknum_'+index);      var picknumitem;
       var picknumtext;
       if (index == 'all') {
           pickitem = document.getElementById('randompickall');
           picknumitem = document.getElementById('rpicknumall');
           picknumtext = document.getElementById('rpicktextall');
       } else {
           pickitem = document.getElementById('randompick_'+index);
           picknumitem = document.getElementById('rpicknum_'+index);
           picknumtext = document.getElementById('randompicknum_'+index);
       }
     if (pickitem.checked) {      if (pickitem.checked) {
         var picknum=prompt('$lt{"rpck"}',picknumitem.value);          var picknum=prompt('$lt{"rpck"}',picknumitem.value);
         if (picknum == '' || picknum == null) {          if (picknum == '' || picknum == null) {
             if (caller == 'check') {              if (caller == 'check') {
                 pickitem.checked=false;                  pickitem.checked=false;
                 return;                  if (index == 'all') {
                       picknumtext.innerHTML = '';
                       if (caller == 'link') {
                           propagateState(targetform,'rpicknum');
                       }
                   } else {
                       checkForSubmit(targetform,'randompick');
                   }
             }              }
         } else {          } else {
             picknum.toString();              picknum.toString();
             var regexdigit=/^\\d+\$/;              var regexdigit=/^\\d+\$/;
             if (regexdigit.test(picknum)) {              if (regexdigit.test(picknum)) {
                 picknumitem.value = picknum;                  picknumitem.value = picknum;
                 targetform.changeparms.value='randompick';                  if (index == 'all') {
                 targetform.submit();                      picknumtext.innerHTML = '&nbsp;<a href="javascript:updatePick(document.cumulativechecks,\\'all\\',\\'link\\');">'+picknum+'</a>';
                       if (caller == 'link') {
                           propagateState(targetform,'rpicknum');
                       }
                   } else {
                       picknumtext.innerHTML = '&nbsp;<a href="javascript:updatePick(document.edit_randompick_'+index+',\\''+index+'\\',\\'link\\');">'+picknum+'</a>';
                       checkForSubmit(targetform,'randompick');
                   }
             } else {              } else {
                 if (caller == 'check') {                  if (caller == 'check') {
                     pickitem.checked=false;                      if (index == 'all') {
                           picknumtext.innerHTML = '';
                           if (caller == 'link') {
                               propagateState(targetform,'rpicknum');
                           }
                       } else {
                           pickitem.checked=false;
                           checkForSubmit(targetform,'randompick');
                       }
                 }                  }
                 return;                  return;
             }              }
         }          }
     } else {      } else {
         picknumitem.value = 0;          picknumitem.value = '';
         targetform.changeparms.value='randompick';          picknumtext.innerHTML = '';
         targetform.submit();          if (index == 'all') {
               if (caller == 'link') {
                   propagateState(targetform,'rpicknum');
               }
           } else {
               checkForSubmit(targetform,'randompick');
           }
     }      }
 }  }
   
   function propagateState(form,param) {
       if (document.getElementById(param+'all')) {
           var setcheck = 0;
           var rpick = 0;
           if (param == 'rpicknum') {
               if (document.getElementById('randompickall')) {
                   if (document.getElementById('randompickall').checked) {
                       if (document.getElementById('rpicknumall')) {
                           rpick = document.getElementById('rpicknumall').value;
                       }
                   }
               }
           } else {
               if (document.getElementById(param+'all').checked) {
                   setcheck = 1;
               }
           }
           if ((param == 'encrypturl') || (param == 'hiddenresource')) {
               var allidxlist = form.allidx.value;
               if (allidxlist != '') {
                   var allidxs = allidxlist.split(',');
                   if (allidxs.length > 1) {
                       for (var i=0; i<allidxs.length; i++) {
                           if (document.getElementById(param+'_'+allidxs[i])) {
                               if (setcheck == 1) {
                                   document.getElementById(param+'_'+allidxs[i]).checked = true;
                               } else {
                                   document.getElementById(param+'_'+allidxs[i]).checked = false;
                               }
                           }
                       }
                   }
               }
           } else {
               var allmapidxlist = form.allmapidx.value;
               if (allmapidxlist != '') {
                   var allmapidxs = allmapidxlist.split(',');
                   if (allmapidxs.length > 1) {
                       for (var i=0; i<allmapidxs.length; i++) {
                           var item = param+'_'+allmapidxs[i];
                           if (document.getElementById(item)) {
                               if (param == 'rpicknum') {
                                   if (document.getElementById('randompick_'+allmapidxs[i])) {
                                       if (document.getElementById('randompick_'+allmapidxs[i]).checked) {
                                           document.getElementById(param+'_'+allmapidxs[i]).value = rpick;
                                           if (rpick > 0) {
                                               document.getElementById('randompicknum_'+allmapidxs[i]).innerHTML = ':&nbsp;<a href="javascript:updatePick(document.edit_randompick_'+allmapidxs[i]+',\\''+allmapidxs[i]+'\\',\\'link\\')">'+rpick+'</a>';
                                           } else {
                                               document.getElementById('randompicknum_'+allmapidxs[i]).innerHTML =  '';
                                           }
                                       }
                                   }
                               } else {
                                   if (setcheck == 1) {
                                       document.getElementById(param+'_'+allmapidxs[i]).checked = true;
                                   } else {
                                       document.getElementById(param+'_'+allmapidxs[i]).checked = false;
                                   }
                               }
                           }
                       }
                   }
               }
           }
       }
       return;
   }
   
   function checkForSubmit(targetform,param) {
       if (document.togglemultchecks.showmultpick.length) {
           for (var i=0; i<document.togglemultchecks.showmultpick.length; i++) {
               if (document.togglemultchecks.showmultpick[i].checked) {
                   if (document.togglemultchecks.showmultpick[i].value == 0) {
                       targetform.changeparms.value=param;
                       targetform.submit();
                   }
               }
           }
       }
       return;
   }
   
 function unselectInactive(nav) {  function unselectInactive(nav) {
 currentNav = document.getElementById(nav);  currentNav = document.getElementById(nav);
 currentLis = currentNav.getElementsByTagName('LI');  currentLis = currentNav.getElementsByTagName('LI');
Line 5060  function toContents(jumpto) { Line 5295  function toContents(jumpto) {
     location.href=newurl;      location.href=newurl;
 }  }
   
   function submitSettings(form) {
       var allidxlist = form.allidx.value;
       form.allencrypturl.value = '';
       form.allhiddenresource.value = '';
       if (allidxlist != '') {
           var allidxs = allidxlist.split(',');
           if (allidxs.length > 1) {
               for (var i=0; i<allidxs.length; i++) {
                   if (document.getElementById('hiddenresource_'+allidxs[i])) {
                       if (document.getElementById('hiddenresource_'+allidxs[i]).checked) {
                           form.allhiddenresource.value += allidxs[i]+',';
                       }
                   }
                   if (document.getElementById('encrypturl_'+allidxs[i])) {
                       if (document.getElementById('encrypturl_'+allidxs[i]).checked) {
                           form.allencrypturl.value += allidxs[i]+',';
                       }
                   }
               }
           }
       }
       var allmapidxlist = form.allmapidx.value;
       form.allrandompick.value = '';
       form.allrandomorder.value = '';
       if (allmapidxlist != '') {
           var allmapidxs = allmapidxlist.split(',');
           for (var i=0; i<allmapidxs.length; i++) {
               var randompick = document.getElementById('randompick_'+allmapidxs[i]);
               var rpicknum = document.getElementById('rpicknum_'+allmapidxs[i]);
               var randorder = document.getElementById('randomorder_'+allmapidxs[i]);
               if ((randompick.checked) && (rpicknum.value != '')) {
                   form.allrandompick.value += allmapidxs[i]+':'+rpicknum.value+',';
               }
               if (randorder.checked) {
                   form.allrandomorder.value += allmapidxs[i]+',';
               }
           }
       }
       form.submit();
       return true;
   }
   
   function togglePick() {
       var disp = 'none';
       if (document.getElementById('multiclick')) {
           var curr = document.getElementById('multiclick').style.display;
           if (curr == 'none') {
               disp='block';
           }
           document.getElementById('multiclick').style.display=disp;
       }
       if (document.getElementById('savemulti')) {
           var curr = document.getElementById('save.multi').style.display;
           if (curr == 'none') {
               disp='inline';
           }
           document.getElementById('savemulti').style.display=disp;
       }
       resize_scrollbox('contentscroll','1','1');
       return;
   }
   
 ENDNEWSCRIPT  ENDNEWSCRIPT
 }  }
   

Removed from v.1.484.2.27  
changed lines
  Added in v.1.537


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>