Diff for /loncom/interface/lonwishlist.pm between versions 1.21 and 1.24

version 1.21, 2014/02/28 19:24:03 version 1.24, 2014/12/20 15:35:40
Line 94  my $foldersOption; Line 94  my $foldersOption;
 sub getWishlist {  sub getWishlist {
     my @keys = &Apache::lonnet::getkeys('wishlist');      my @keys = &Apache::lonnet::getkeys('wishlist');
     my %wishlist = &Apache::lonnet::get('wishlist',\@keys);      my %wishlist = &Apache::lonnet::get('wishlist',\@keys);
     foreach my $i ( keys %wishlist) {      foreach my $i (keys(%wishlist)) {
         #File not found. This appears at the first time using the wishlist          #File not found. This appears at the first time using the wishlist
         #Create file and put 'root' into it          #Create file and put 'root' into it
        if ($i =~m/^error:No such file/) {         if ($i =~m/^\Qerror:No such file\E/) {
            &Apache::lonnet::logthis($i.'! Create file by putting in the "root" of the directory tree.');             &Apache::lonnet::logthis($i.'! Create file by putting in the "root" of the directory tree.');
            &Apache::lonnet::put('wishlist', {'root' => ''});             &Apache::lonnet::put('wishlist', {'root' => ''});
            my $options = '<option value="" selected="selected">('.&mt('Top level').')</option>';             my $options = '<option value="" selected="selected">('.&mt('Top level').')</option>';
Line 113  sub getWishlist { Line 113  sub getWishlist {
   
     # if we got no keys in hash returned by get(), return error.      # if we got no keys in hash returned by get(), return error.
     # wishlist will not be loaded, instead the user will be asked to try again later      # wishlist will not be loaded, instead the user will be asked to try again later
     if ((keys %wishlist) == 0) {      if ((keys(%wishlist)) == 0) {
         &Apache::lonnet::logthis('ERROR while attempting to get wishlist: no keys retrieved!');          &Apache::lonnet::logthis('ERROR while attempting to get wishlist: no keys retrieved!');
         return 'error';          return 'error';
     }      }
Line 1131  sub wishlistView { Line 1131  sub wishlistView {
         }          }
         # entry is a link          # entry is a link
         else {          else {
               my $quotable_link = &Apache::loncommon::escape_single($n->value()->path());
             $wishlistHTMLview .= '<td id="padd'.$index.'" style="padding-left:'.(($indent_view-$indentConst)<=0?$indentConst:$indent_view).'px; min-width: 220px;">'.              $wishlistHTMLview .= '<td id="padd'.$index.'" style="padding-left:'.(($indent_view-$indentConst)<=0?$indentConst:$indent_view).'px; min-width: 220px;">'.
                                  '<a href="javascript:preview('."'".$n->value()->path()."'".');">'.                                   '<a href="javascript:preview('."'".$quotable_link."'".');">'.
                                  '<img src="/res/adm/pages/wishlist-link.png" id="img'.$index.'" alt="link" />'.                                   '<img src="/res/adm/pages/wishlist-link.png" id="img'.$index.'" alt="link" />'.
                                  $n->value()->title().'</a></td>';                                   $n->value()->title().'</a></td>';
         }          }
Line 1305  sub wishlistMove { Line 1306  sub wishlistMove {
                $highlight = 'style="color:red;"';                 $highlight = 'style="color:red;"';
             }              }
             # link-image and title              # link-image and title
               my $quotable_link = &Apache::loncommon::escape_single($n->value()->path());
             $wishlistHTMLmove .= '<td></td>'.              $wishlistHTMLmove .= '<td></td>'.
                                  '<td id="padd'.$index.'" style="padding-left:'.(($indent_move-$indentConst)<=0?$indentConst:$indent_move).'px; min-width: 220px;">'.                                   '<td id="padd'.$index.'" style="padding-left:'.(($indent_move-$indentConst)<=0?$indentConst:$indent_move).'px; min-width: 220px;">'.
                                  '<a href="javascript:preview('."'".$n->value()->path()."'".');" '.$highlight.'>'.                                   '<a href="javascript:preview('."'".$quotable_link."'".');" '.$highlight.'>'.
                                  '<img src="/res/adm/pages/wishlist-link.png" id="img'.$index.'" alt="link"/>'.                                   '<img src="/res/adm/pages/wishlist-link.png" id="img'.$index.'" alt="link"/>'.
                                  $n->value()->title().'</a></td>';                                   $n->value()->title().'</a></td>';
         }          }
Line 1361  sub wishlistImport { Line 1363  sub wishlistImport {
   
     foreach my $n (@$nodes) {      foreach my $n (@$nodes) {
         my $index = $n->value()->nindex();          my $index = $n->value()->nindex();
   
           #
           # Determine which resources in stored links may be imported into a course/community.
           # (a) Import of directories in /res space is not supported.
           # (b) Import of a resource into a community requires user has 'bro' privilege for resource
           #     (i.e., user has author or co-author role for corresponcding Authoring Space).
           # (c) Import of a resource into a course requires user has 'be' privilege for resource.
           #
   
         if ($n->value()->path() =~ m{^(/res/$match_domain/$match_username/)}) {          if ($n->value()->path() =~ m{^(/res/$match_domain/$match_username/)}) {
             if ($is_community) {              if ($n->value()->path() =~ m{/$}) {
                 unless (&Apache::lonnet::allowed('bro',$n->value()->path())) {                  $nopick{$n->value()->path()} = $n->value()->title();
                     $nopick{$n->value()->path()} = $n->value()->title();                  $$numskipped ++;
                     $$numskipped ++;  
                 }  
             } else {              } else {
                 unless (&Apache::lonnet::allowed('bre',$n->value()->path())) {                  if ($is_community) {
                     $nopick{$n->value()->path()} = $n->value()->title();                      unless (&Apache::lonnet::allowed('bro',$n->value()->path())) {
                     $$numskipped ++;                          $nopick{$n->value()->path()} = $n->value()->title();
                           $$numskipped ++;
                       }
                   } else {
                       unless (&Apache::lonnet::allowed('bre',$n->value()->path())) {
                           $nopick{$n->value()->path()} = $n->value()->title();
                           $$numskipped ++;
                       }
                 }                  }
             }              }
         }          }
Line 1411  sub wishlistImport { Line 1427  sub wishlistImport {
         else {          else {
             $wishlistHTMLimport .= '<td id="padd'.$index.'" style="padding-left:'.(($indent_imp-$indentConst)<=0?$indentConst:$indent_imp).'px; min-width: 220px;">';              $wishlistHTMLimport .= '<td id="padd'.$index.'" style="padding-left:'.(($indent_imp-$indentConst)<=0?$indentConst:$indent_imp).'px; min-width: 220px;">';
             unless ($nopick{$n->value()->path()}) {              unless ($nopick{$n->value()->path()}) {
                 $wishlistHTMLimport .= '<a href="javascript:preview('."'".$n->value()->path()."'".');">';                  my $quotable_link = &Apache::loncommon::escape_single($n->value()->path());
                   $wishlistHTMLimport .= '<a href="javascript:preview('."'".$quotable_link."'".');">';
             }              }
             $wishlistHTMLimport .= '<img src="/res/adm/pages/'.$image.'" id="img'.$index.'" alt="link" />'.              $wishlistHTMLimport .= '<img src="/res/adm/pages/'.$image.'" id="img'.$index.'" alt="link" />'.
                                    '<span '.$style.'>'.$n->value()->title().'</span></a></td>';                                     '<span '.$style.'>'.$n->value()->title().'</span></a></td>';
Line 1855  sub makePageImport { Line 1872  sub makePageImport {
     #FIXME Saved string containing all folders in wishlist.db-file (key 'folders') in first version of lonwishlist      #FIXME Saved string containing all folders in wishlist.db-file (key 'folders') in first version of lonwishlist
     #After splitting lonwishlist into two modules, this is not necessary anymore. So, dependent from when the wishlist      #After splitting lonwishlist into two modules, this is not necessary anymore. So, dependent from when the wishlist
     #was first called (i.e. when wishlist.db was created), there might be an entry 'folders' or not. Number of links in      #was first called (i.e. when wishlist.db was created), there might be an entry 'folders' or not. Number of links in
     #wishlist.db depends on wether this entry exists or not...JW        #wishlist.db depends on whether this entry exists or not...JW  
     my $fnum;      my $fnum;
     if (defined $wishlist{'folders'}) {      if (defined $wishlist{'folders'}) {
         $fnum = (keys %wishlist)-2;          $fnum = (keys(%wishlist))-2;
     }      }
     else {      else {
         $fnum = (keys %wishlist)-1;          $fnum = (keys(%wishlist))-1;
     }      }
   
     $inner .= '<form method="post" name="groupsort" action="">'.      $inner .= '<form method="post" name="groupsort" action="">'.
Line 2111  sub HashToTree { Line 2128  sub HashToTree {
     my @TreeNodes = ();      my @TreeNodes = ();
     my $root;      my $root;
   
     foreach my $key (keys %$TreeHash) {      foreach my $key (keys(%$TreeHash)) {
         if ($key eq 'root') {          if ($key eq 'root') {
             $root = Tree->new("root");              $root = Tree->new("root");
         }          }

Removed from v.1.21  
changed lines
  Added in v.1.24


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