--- loncom/interface/lonwishlist.pm 2011/01/27 14:38:44 1.9 +++ loncom/interface/lonwishlist.pm 2014/12/20 15:35:40 1.24 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Utility-routines for wishlist # -# $Id: lonwishlist.pm,v 1.9 2011/01/27 14:38:44 wenzelju Exp $ +# $Id: lonwishlist.pm,v 1.24 2014/12/20 15:35:40 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -50,7 +50,7 @@ use Apache::lonnet; use Apache::loncommon(); use Apache::lonhtmlcommon; use Apache::lonlocal; -use LONCAPA; +use LONCAPA qw(:DEFAULT :match); use Tree; @@ -94,10 +94,10 @@ my $foldersOption; sub getWishlist { my @keys = &Apache::lonnet::getkeys('wishlist'); 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 #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::put('wishlist', {'root' => ''}); my $options = ''; @@ -113,7 +113,7 @@ sub getWishlist { # 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 - if ((keys %wishlist) == 0) { + if ((keys(%wishlist)) == 0) { &Apache::lonnet::logthis('ERROR while attempting to get wishlist: no keys retrieved!'); return 'error'; } @@ -197,7 +197,7 @@ sub newEntry() { my $date = gmtime(); # Create Entry-Object 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); # Add this node to wishlist-tree my $folderIndex = $env{'form.folders'}; @@ -466,11 +466,13 @@ sub getNodesToArray { Recursive call starting with all children of the root of the tree (parameter nodes is reference to an array containing the nodes of the current level). -=item * &wishlistImport(nodes) +=item * &wishlistImport(nodes, numskipped) Returns the table-HTML-markup for the wishlist in mode "import". - Recursive call starting with all children of the root of the tree (parameter nodes is reference to an array containing the nodes of the current level). - + Recursive call starting with all children of the root of the tree (parameter nodes is reference to an array containing the nodes of the current level). + Side effect: increments the scalar ref: numskipped with a count of items in + Stored Links unavailable for selection, (e.g., now marked obsolete or + inaccessible in Community context). =item * &makePage(mode, marked) @@ -478,6 +480,16 @@ sub getNodesToArray { Calls &wishlistView(nodes), &wishlistEdit(nodes) or &wishlistMove(nodes, marked). +=item * &makePopUpNewLink(title, path) + + Returns the HTML-markup for the pop-up-window 'Add Link'. If this is called up from a browsed resource, the input-fields titel and path are pre-filled with the resources' meta-data-title and it's path. + + +=item * &makePopUpNewFolder() + + Returns the HTML-markup for the pop-up-window 'Add Folder'. + + =item * &makePageSet() Returns the HTML-Markup for the page shown when a link was set by using the icon when viewing a resource. @@ -501,7 +513,7 @@ sub getNodesToArray { # Return a script-tag containing Javascript-function # needed for wishlist actions like 'new link' ect. sub JSforWishlist { - my $startPagePopup = &Apache::loncommon::start_page('Wishlist',undef, + my $startPagePopup = &Apache::loncommon::start_page('Stored Links',undef, {'only_body' => 1, 'js_ready' => 1, 'bgcolor' => '#FFFFFF',}); @@ -511,65 +523,6 @@ sub JSforWishlist { &getFoldersToArray(\@childrenRt); &getFoldersForOption(\@childrenRt); - # texthash - my %lt = &Apache::lonlocal::texthash( - 'nl' => 'New Link', - 'nf' => 'New Folder', - 'lt' => 'Link Title', - 'ft' => 'Folder Title', - 'pa' => 'Path', - 'nt' => 'Note', - 'si' => 'Save in', - 'cl' => 'Cancel'); - - - my $inPageNewLink = '