Diff for /loncom/interface/londocs.pm between versions 1.484.2.55 and 1.484.2.60

version 1.484.2.55, 2014/10/14 21:08:14 version 1.484.2.60, 2015/03/24 10:05:45
Line 977  sub docs_change_log { Line 977  sub docs_change_log {
   
 sub update_paste_buffer {  sub update_paste_buffer {
     my ($coursenum,$coursedom,$folder) = @_;      my ($coursenum,$coursedom,$folder) = @_;
     my (@possibles,%removals,%cuts);      my (@possibles,%removals,%cuts,$output);
     if ($env{'form.multiremove'}) {      if ($env{'form.multiremove'}) {
         $env{'form.multiremove'} =~ s/,$//;          $env{'form.multiremove'} =~ s/,$//;
         map { $removals{$_} = 1; } split(/,/,$env{'form.multiremove'});          map { $removals{$_} = 1; } split(/,/,$env{'form.multiremove'});
Line 1045  sub update_paste_buffer { Line 1045  sub update_paste_buffer {
         next if (exists($pasteurls{$coursedom.'_'.$coursenum.'_'.$url}));          next if (exists($pasteurls{$coursedom.'_'.$coursenum.'_'.$url}));
         my ($suffix,$errortxt,$locknotfreed) =          my ($suffix,$errortxt,$locknotfreed) =
             &new_timebased_suffix($env{'user.domain'},$env{'user.name'},'paste');              &new_timebased_suffix($env{'user.domain'},$env{'user.name'},'paste');
         push(@newpaste,$suffix);          if ($suffix ne '') {
         if ($locknotfreed) {              push(@newpaste,$suffix);
             return $locknotfreed;          } else {
             last;              if ($locknotfreed) {
                   return $locknotfreed;
               }
         }          }
         if (&is_supplemental_title($title)) {          if (&is_supplemental_title($title)) {
             &Apache::lonnet::appenv({'docs.markedcopy_supplemental_'.$suffix => $title});              &Apache::lonnet::appenv({'docs.markedcopy_supplemental_'.$suffix => $title});
Line 1082  sub update_paste_buffer { Line 1084  sub update_paste_buffer {
                 }                  }
             }              }
         }          }
           if ($locknotfreed) {
               $output = $locknotfreed;
               last;
           }
     }      }
     if (@newpaste) {      if (@newpaste) {
         $addtoenv{'docs.markedcopies'} = join(',',(@currpaste,@newpaste));          $addtoenv{'docs.markedcopies'} = join(',',(@currpaste,@newpaste));
     }      }
     &Apache::lonnet::appenv(\%addtoenv);      &Apache::lonnet::appenv(\%addtoenv);
     delete($env{'form.markcopy'});      delete($env{'form.markcopy'});
     return;      return $output;
 }  }
   
 sub recurse_uploaded_maps {  sub recurse_uploaded_maps {
Line 1191  sub print_paste_buffer { Line 1197  sub print_paste_buffer {
                     $icon = &Apache::loncommon::lonhttpdurl($r->dir_config('lonIconsURL'));                      $icon = &Apache::loncommon::lonhttpdurl($r->dir_config('lonIconsURL'));
                     $icon .= '/navmap.folder.closed.gif';                      $icon .= '/navmap.folder.closed.gif';
                 }                  }
                   my $title = $env{'docs.markedcopy_title_'.$suffix};
                   if ($title eq '') {
                       ($title) = ($url =~ m{/([^/]+)$});
                   }
                 $buffer = '<img src="'.$icon.'" alt="" class="LC_icon" />'.                  $buffer = '<img src="'.$icon.'" alt="" class="LC_icon" />'.
                           ': '.                            ': '.
                           &Apache::loncommon::parse_supplemental_title(                            &Apache::loncommon::parse_supplemental_title(
                              &LONCAPA::map::qtescape($env{'docs.markedcopy_title_'.$suffix}));                               &LONCAPA::map::qtescape($title));
             }              }
             $pasteitems .= '<div class="LC_left_float">';              $pasteitems .= '<div class="LC_left_float">';
             my ($options,$onclick);              my ($options,$onclick);
Line 2603  sub update_parameter { Line 2613  sub update_parameter {
         }          }
         return $haschanges;          return $haschanges;
     } else {      } else {
         return 0 if ($env{'form.changeparms'} !~ /^($valid_parameters_re)$/);          my $haschanges = 0;
           return $haschanges if ($env{'form.changeparms'} !~ /^($valid_parameters_re)$/);
   
         my $which = $env{'form.changeparms'};          my $which = $env{'form.changeparms'};
         my $idx = $env{'form.setparms'};          my $idx = $env{'form.setparms'};
           my $oldvalue = 0;
           my $newvalue = 0;
           my $current = (&LONCAPA::map::getparameter($idx,'parameter_'.$which))[0];
           if ($which eq 'randompick') {
               if ($current =~ /^(\d+)$/) {
                   $oldvalue = $1;
               }
           } elsif ($current =~ /^yes$/i) {
               $oldvalue = 1;
           }
         if ($env{'form.'.$which.'_'.$idx}) {          if ($env{'form.'.$which.'_'.$idx}) {
     my $value = ($which eq 'randompick') ? $env{'form.rpicknum_'.$idx}              $newvalue = ($which eq 'randompick') ? $env{'form.rpicknum_'.$idx}
                                          : 'yes';                                                   : 1;
     &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');  
         }          }
         return 1;          if ($oldvalue ne $newvalue) {
               $haschanges = 1;
               if ($newvalue) {
                   my $storeval = 'yes';
                   if ($which eq 'randompick') {
                       $storeval = $newvalue;
                   }
                   &LONCAPA::map::storeparameter($idx, 'parameter_'.$which, $storeval,
                                                 $parameter_type{$which});
                   &remember_parms($idx,$which,'set',$storeval);
               } else {
                   &LONCAPA::map::delparameter($idx,'parameter_'.$which);
                   &remember_parms($idx,$which,'del');
               }
           }
           return $haschanges;
     }      }
       return;
 }  }
   
   
 sub handle_edit_cmd {  sub handle_edit_cmd {
     my ($coursenum,$coursedom) =@_;      my ($coursenum,$coursedom) =@_;
     if ($env{'form.cmd'} eq '') {      if ($env{'form.cmd'} eq '') {
Line 2714  sub editor { Line 2743  sub editor {
  &snapshotbefore();   &snapshotbefore();
   
  if (&update_parameter()) {   if (&update_parameter()) {
     ($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.'.$container);      ($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.'.$container,1);
     return $errtext if ($fatal);      return $errtext if ($fatal);
  }   }
   
Line 2778  sub editor { Line 2807  sub editor {
 # Rename, cut, copy or remove a single resource  # Rename, cut, copy or remove a single resource
  if (&handle_edit_cmd()) {   if (&handle_edit_cmd()) {
             my $contentchg;              my $contentchg;
             if ($env{'form.cmd'} =~ m{^(del|cut)_}) {              if ($env{'form.cmd'} =~ m{^(remove|cut)_}) {
                 $contentchg = 1;                  $contentchg = 1;
             }              }
     ($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.'.$container,$contentchg);      ($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.'.$container,$contentchg);
Line 2810  sub editor { Line 2839  sub editor {
                     my ($name,$url)=split(/\:/,$LONCAPA::map::resources[$res]);                      my ($name,$url)=split(/\:/,$LONCAPA::map::resources[$res]);
                     $name=&LONCAPA::map::qtescape($name);                      $name=&LONCAPA::map::qtescape($name);
                     $url=&LONCAPA::map::qtescape($url);                      $url=&LONCAPA::map::qtescape($url);
                     next unless ($name && $url);                      next unless $url;
                     my %denied =                      my %denied =
                         &action_restrictions($coursenum,$coursedom,$url,                          &action_restrictions($coursenum,$coursedom,$url,
                                              $env{'form.folderpath'},\%curr_groups);                                               $env{'form.folderpath'},\%curr_groups);
Line 3826  sub new_timebased_suffix { Line 3855  sub new_timebased_suffix {
     if ($type eq 'paste') {      if ($type eq 'paste') {
         $prefix = $type;          $prefix = $type;
         $namespace = 'courseeditor';          $namespace = 'courseeditor';
           $idtype = 'addcode';
     } elsif ($type eq 'map') {      } elsif ($type eq 'map') {
         $prefix = 'docs';          $prefix = 'docs';
         if ($area eq 'supplemental') {          if ($area eq 'supplemental') {
Line 3837  sub new_timebased_suffix { Line 3867  sub new_timebased_suffix {
         $prefix = $type;          $prefix = $type;
         $namespace = 'templated';          $namespace = 'templated';
     }      }
     $idtype = 'concat';  
     my ($suffix,$freedlock,$error) =      my ($suffix,$freedlock,$error) =
         &Apache::lonnet::get_timebased_id($prefix,'num',$namespace,$dom,$num);          &Apache::lonnet::get_timebased_id($prefix,'num',$namespace,$dom,$num,$idtype);
     if (!$suffix) {      if (!$suffix) {
         if ($type eq 'paste') {          if ($type eq 'paste') {
             $errtext = &mt('Failed to acquire a unique timestamp-based suffix when adding to the paste buffer.');              $errtext = &mt('Failed to acquire a unique timestamp-based suffix when adding to the paste buffer.');
Line 3859  sub new_timebased_suffix { Line 3888  sub new_timebased_suffix {
             '<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 'paste') {          if ($type eq 'paste') {
             &mt('This will prevent use of the paste buffer until th next log-in.');              if ($freedlock eq 'nolock') {
                   $locknotfreed =
                       '<div class="LC_error">'.
                       &mt('A lockfile was not released when you added content to the clipboard earlier in this session.').' '.
   
                       &mt('As a result addition of items to the clipboard will be unavailable until your next log-in.');
               } else {
                   $locknotfreed .=
                       &mt('This will prevent addition of items to the clipboard until your next log-in.');
               }
         } elsif ($type eq 'map') {          } elsif ($type eq 'map') {
             &mt('This will prevent creation of additional folders or composite pages in this course.');              $locknotfreed .=
                   &mt('This will prevent creation of additional folders or composite pages in this course.');
         } elsif ($type eq 'smppg') {          } elsif ($type eq 'smppg') {
             $locknotfreed .=              $locknotfreed .=
                 &mt('This will prevent creation of additional simple pages in this course.');                  &mt('This will prevent creation of additional simple pages in this course.');
Line 5815  sub editing_js { Line 5854  sub editing_js {
             if (&Apache::lonnet::is_on_map($res)) {              if (&Apache::lonnet::is_on_map($res)) {
                 $backtourl = &HTML::Entities::encode(&Apache::lonnet::clutter($res),'<>&"').'?symb='.                  $backtourl = &HTML::Entities::encode(&Apache::lonnet::clutter($res),'<>&"').'?symb='.
                              &HTML::Entities::encode($caller,'<>&"');                               &HTML::Entities::encode($caller,'<>&"');
                   $backtourl = &Apache::loncommon::escape_single($backtourl); 
             } else {              } else {
                 $backtourl = '/adm/navmaps';                  $backtourl = '/adm/navmaps';
             }              }

Removed from v.1.484.2.55  
changed lines
  Added in v.1.484.2.60


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