--- loncom/interface/lonwishlist.pm 2013/06/18 13:23:42 1.18 +++ loncom/interface/lonwishlist.pm 2014/05/31 16:01:33 1.22 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Utility-routines for wishlist # -# $Id: lonwishlist.pm,v 1.18 2013/06/18 13:23:42 bisitz Exp $ +# $Id: lonwishlist.pm,v 1.22 2014/05/31 16:01:33 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -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'}; @@ -1042,6 +1042,12 @@ sub JSforImport{ function finish_import() { opener.document.forms.simpleedit.importdetail.value=''; 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") != '') { opener.document.forms.simpleedit.importdetail.value+='&'+ eval("document.forms.groupsort.title"+num+".value")+'='+ @@ -1355,16 +1361,30 @@ sub wishlistImport { foreach my $n (@$nodes) { 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 ($is_community) { - unless (&Apache::lonnet::allowed('bro',$n->value()->path())) { - $nopick{$n->value()->path()} = $n->value()->title(); - $$numskipped ++; - } + if ($n->value()->path() =~ m{/$}) { + $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 ++; + if ($is_community) { + unless (&Apache::lonnet::allowed('bro',$n->value()->path())) { + $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 ++; + } } } } @@ -1463,7 +1483,7 @@ sub makePage { 'onload' => 'javascript:onLoadAction('."'".$mode."'".');', '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 my $js = &JSforWishlist(); @@ -1900,11 +1920,11 @@ sub makeErrorPage { text => '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(); # error-message - my $inner .= ''.&mt('An error occurred! Please try again later.').''; + my $inner .= '
'.&mt('An error occurred! Please try again later.').'
'; # end_page my $endPage = &Apache::loncommon::end_page();