version 1.18, 2013/06/18 13:23:42
|
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 1849 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 1900 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 2105 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"); |
} |
} |