Diff for /loncom/interface/lonwishlist.pm between versions 1.17 and 1.23

version 1.17, 2013/04/10 22:12:43 version 1.23, 2014/12/15 17:36:22
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 197  sub newEntry() { Line 197  sub newEntry() {
     my $date = gmtime();      my $date = gmtime();
     # Create Entry-Object      # Create Entry-Object
     my $entry = Entry->new(title => $title, path => $path, note => $note, date => $date);      my $entry = Entry->new(title => $title, path => $path, note => $note, date => $date);
     # Create Tree-Object, this correspones a node in the wishlist-tree      # Create Tree-Object, this corresponds a node in the wishlist-tree
     my $tree = Tree->new($entry);      my $tree = Tree->new($entry);
     # Add this node to wishlist-tree      # Add this node to wishlist-tree
     my $folderIndex = $env{'form.folders'};      my $folderIndex = $env{'form.folders'};
Line 1042  sub JSforImport{ Line 1042  sub JSforImport{
         function finish_import() {          function finish_import() {
             opener.document.forms.simpleedit.importdetail.value='';              opener.document.forms.simpleedit.importdetail.value='';
             for (var num = 0; num < document.forms.groupsort.fnum.value; num++) {              for (var num = 0; num < document.forms.groupsort.fnum.value; num++) {
                   try {
                       eval("document.forms.groupsort.filelink"+num+".value");
                   }
                   catch(err) {
                      continue;
                   }
                 if (eval("document.forms.groupsort.check"+num+".checked") && eval("document.forms.groupsort.filelink"+num+".value") != '') {                  if (eval("document.forms.groupsort.check"+num+".checked") && eval("document.forms.groupsort.filelink"+num+".value") != '') {
                     opener.document.forms.simpleedit.importdetail.value+='&'+                      opener.document.forms.simpleedit.importdetail.value+='&'+
                     eval("document.forms.groupsort.title"+num+".value")+'='+                      eval("document.forms.groupsort.title"+num+".value")+'='+
Line 1355  sub wishlistImport { Line 1361  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 1463  sub makePage { Line 1483  sub makePage {
                                                         'onload' => 'javascript:onLoadAction('."'".$mode."'".');',                                                          'onload' => 'javascript:onLoadAction('."'".$mode."'".');',
                                                         'onunload' => 'javascript:window.name = '."'loncapaclient'"}});                                                          'onunload' => 'javascript:window.name = '."'loncapaclient'"}});
   
     my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs(&mt('Stored Links').&Apache::loncommon::help_open_topic('Wishlist'));      my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs(&mt('Stored Links'),'Wishlist');
   
     # get javascript-code for wishlist-interactions      # get javascript-code for wishlist-interactions
     my $js = &JSforWishlist();      my $js = &JSforWishlist();
Line 1786  SCRIPT Line 1806  SCRIPT
   
 # Returns the HTML-Markup for the page, shown when a link was set  # Returns the HTML-Markup for the page, shown when a link was set
 sub makePageSet {  sub makePageSet {
     # start_page       my $title = 'Stored Links';
     my $startPage = &Apache::loncommon::start_page('Stored Links',undef,  
                                                    {'only_body' => 1});      # start_page
       my $output =
           &Apache::loncommon::start_page($title,undef,
                                          {'only_body' => 1})
          .'<h1>'.&mt($title).'</h1>';
           
     # confirm success and offer link to wishlist      # confirm success and offer link to wishlist
     my $message = &Apache::lonhtmlcommon::confirm_success(&mt('Link successfully saved!'));      $output .=
     $message = &Apache::loncommon::confirmwrapper($message);          &Apache::loncommon::confirmwrapper(
               &Apache::lonhtmlcommon::confirm_success(
     my $inner .= '<br>'.$message.'<br/><br/>'.                  &mt('Link successfully saved!')))
                  '<a href="javascript:;" onclick="opener.open('."'/adm/wishlist'".');window.close();">'.&mt('Go to Stored Links').'</a>'.('&nbsp;' x 3).         .&Apache::lonhtmlcommon::actionbox(
                  '<a href="javascript:;" onclick="window.close();">'.&mt('Close this window').'</a>';              ['<a href="javascript:;" onclick="opener.open('."'/adm/wishlist'".');window.close();">'.&mt('Go to Stored Links').'</a>',
                '<a href="javascript:;" onclick="window.close();">'.&mt('Close this window').'</a>'
               ]);
   
     # end_page       # end_page 
     my $endPage =  &Apache::loncommon::end_page();      $output .= &Apache::loncommon::end_page();
   
     # put all page-elements together  
     my $page = $startPage.$inner.$endPage;  
   
     return $page;      return $output;
 }  }
   
   
Line 1846  sub makePageImport { Line 1869  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 1897  sub makeErrorPage { Line 1920  sub makeErrorPage {
                 text => 'Stored Links'});                  text => 'Stored Links'});
     my $startPage = &Apache::loncommon::start_page('Stored Links');      my $startPage = &Apache::loncommon::start_page('Stored Links');
           
     my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs(&mt('Stored Links').&Apache::loncommon::help_open_topic('Wishlist'));      my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs(&mt('Stored Links'),'Wishlist');
     &Apache::lonhtmlcommon::clear_breadcrumbs();      &Apache::lonhtmlcommon::clear_breadcrumbs();
   
     # error-message      # error-message
     my $inner .= '<span class="LC_error">'.&mt('An error occurred! Please try again later.').'</span>';      my $inner .= '<p class="LC_error">'.&mt('An error occurred! Please try again later.').'</p>';
   
     # end_page       # end_page 
     my $endPage =  &Apache::loncommon::end_page();      my $endPage =  &Apache::loncommon::end_page();
Line 2102  sub HashToTree { Line 2125  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.17  
changed lines
  Added in v.1.23


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