version 1.14, 2012/05/22 16:31:38
|
version 1.15, 2012/06/07 02:28:04
|
Line 50 use Apache::lonnet;
|
Line 50 use Apache::lonnet;
|
use Apache::loncommon(); |
use Apache::loncommon(); |
use Apache::lonhtmlcommon; |
use Apache::lonhtmlcommon; |
use Apache::lonlocal; |
use Apache::lonlocal; |
use LONCAPA; |
use LONCAPA qw(:DEFAULT :match); |
use Tree; |
use Tree; |
|
|
|
|
Line 466 sub getNodesToArray {
|
Line 466 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). |
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". |
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) |
=item * &makePage(mode, marked) |
|
|
Line 810 sub JSforWishlist {
|
Line 812 sub JSforWishlist {
|
|
|
function setChecked(row,checked) { |
function setChecked(row,checked) { |
var childCHECK = document.getElementById(row.id.replace('row','check')); |
var childCHECK = document.getElementById(row.id.replace('row','check')); |
childCHECK.checked = checked; |
if (!childCHECK.disabled) { |
|
childCHECK.checked = checked; |
|
} |
} |
} |
|
|
function getPreviousFolderRows(row) { |
function getPreviousFolderRows(row) { |
Line 1010 sub JSforWishlist {
|
Line 1014 sub JSforWishlist {
|
function checkAll() { |
function checkAll() { |
var checkboxes = document.getElementsByName('check'); |
var checkboxes = document.getElementsByName('check'); |
for (var i = 0; i < checkboxes.length; i++) { |
for (var i = 0; i < checkboxes.length; i++) { |
checkboxes[i].checked = "checked"; |
if (!checkboxes[i].disabled) { |
|
checkboxes[i].checked = "checked"; |
|
} |
} |
} |
} |
} |
|
|
function uncheckAll() { |
function uncheckAll() { |
var checkboxes = document.getElementsByName('check'); |
var checkboxes = document.getElementsByName('check'); |
for (var i = 0; i < checkboxes.length; i++) { |
for (var i = 0; i < checkboxes.length; i++) { |
checkboxes[i].checked = ""; |
if (!checkboxes[i].disabled) { |
|
checkboxes[i].checked = ""; |
|
} |
} |
} |
} |
} |
|
|
Line 1336 my $wishlistHTMLimport;
|
Line 1344 my $wishlistHTMLimport;
|
my $indent = $indentConst; |
my $indent = $indentConst; |
my $form = 1; |
my $form = 1; |
sub wishlistImport { |
sub wishlistImport { |
my $nodes = shift; |
my ($nodes,$numskipped) = @_; |
|
|
|
my ($is_community,%nopick); |
|
if ($env{'request.course.id'}) { |
|
if (&Apache::loncommon::course_type() eq 'Community') { |
|
$is_community = 1; |
|
} |
|
} |
|
|
foreach my $n (@$nodes) { |
foreach my $n (@$nodes) { |
my $index = $n->value()->nindex(); |
my $index = $n->value()->nindex(); |
|
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 ++; |
|
} |
|
} else { |
|
unless (&Apache::lonnet::allowed('bre',$n->value()->path())) { |
|
$nopick{$n->value()->path()} = $n->value()->title(); |
|
$$numskipped ++; |
|
} |
|
} |
|
} |
|
|
# start row, use data_table routines to set class to LC_even or LC_odd automatically. this row contains a checkbox, the title and the note-icon. |
# start row, use data_table routines to set class to LC_even or LC_odd automatically. this row contains a checkbox, the title and the note-icon. |
# only display the top level entries on load |
# only display the top level entries on load |
Line 1348 sub wishlistImport {
|
Line 1376 sub wishlistImport {
|
|
|
|
|
# checkboxes |
# checkboxes |
$wishlistHTMLimport .= '<td>'. |
$wishlistHTMLimport .= '<td>'; |
'<input type="checkbox" name="check" id="check'.$index.'" value="'.$index.'" '. |
my ($disabled,$onclick,$image,$style); |
'onclick="selectAction('."'row".$index."'".')" />'. |
if ($nopick{$n->value()->path()}) { |
|
$disabled = ' disabled="disabled"'; |
|
$image = 'wishlist-link-lighter.png'; |
|
$style = 'style="color:#808080;"'; |
|
} else { |
|
$onclick = ' onclick="selectAction('."'row".$index."'".')"'; |
|
$image = 'wishlist-link.png'; |
|
} |
|
$wishlistHTMLimport .= '<input type="checkbox" name="check" id="check'.$index.'" value="'.$index.'" '. |
|
$disabled.$onclick.' />'. |
'<input type="hidden" name="title'.$index.'" value="'.&escape($n->value()->title()).'" />'. |
'<input type="hidden" name="title'.$index.'" value="'.&escape($n->value()->title()).'" />'. |
'<input type="hidden" name="filelink'.$index.'" value="'.&escape($n->value()->path()).'" />'. |
'<input type="hidden" name="filelink'.$index.'" value="'.&escape($n->value()->path()).'" />'. |
'<input type="hidden" name="id'.$index.'" />'. |
'<input type="hidden" name="id'.$index.'" />'; |
'</td>'; |
$wishlistHTMLimport .= '</td>'; |
|
|
# entry is a folder |
# entry is a folder |
if ($n->value()->path() eq '') { |
if ($n->value()->path() eq '') { |
Line 1366 sub wishlistImport {
|
Line 1403 sub wishlistImport {
|
} |
} |
# entry is a link |
# entry is a link |
else { |
else { |
$wishlistHTMLimport .= '<td id="padd'.$index.'" style="padding-left:'.(($indent-$indentConst)<=0?$indentConst:$indent).'px; min-width: 220px;">'. |
$wishlistHTMLimport .= '<td id="padd'.$index.'" style="padding-left:'.(($indent-$indentConst)<=0?$indentConst:$indent).'px; min-width: 220px;">'; |
'<a href="javascript:preview('."'".$n->value()->path()."'".');">'. |
unless ($nopick{$n->value()->path()}) { |
'<img src="/res/adm/pages/wishlist-link.png" id="img'.$index.'" alt="link" />'. |
$wishlistHTMLimport .= '<a href="javascript:preview('."'".$n->value()->path()."'".');">'; |
$n->value()->title().'</a></td>'; |
} |
|
$wishlistHTMLimport .= '<img src="/res/adm/pages/'.$image.'" id="img'.$index.'" alt="link" />'. |
|
'<span '.$style.'>'.$n->value()->title().'</span></a></td>'; |
$form++; |
$form++; |
} |
} |
|
|
Line 1398 sub wishlistImport {
|
Line 1437 sub wishlistImport {
|
my @children = $n->children(); |
my @children = $n->children(); |
if ($#children >=0) { |
if ($#children >=0) { |
$indent += 20; |
$indent += 20; |
&wishlistImport(\@children); |
&wishlistImport(\@children,$numskipped); |
$indent -= 20; |
$indent -= 20; |
} |
} |
} |
} |
|
return; |
} |
} |
|
|
# Returns the HTML-Markup for wishlist |
# Returns the HTML-Markup for wishlist |
Line 1786 sub makePageImport {
|
Line 1826 sub makePageImport {
|
my $inner = '<h1>'.&mt('Import Resources from Stored Links').'</h1>'; |
my $inner = '<h1>'.&mt('Import Resources from Stored Links').'</h1>'; |
if (!$rat) { |
if (!$rat) { |
$inner .= |
$inner .= |
'<p class="LC_info">'. |
'<ul>'. |
&mt('Please note that you can use the checkboxes corresponding to a folder to '. |
'<li class="LC_info">'.&mt('Use the checkboxes corresponding to a folder to '. |
'easily check all links within this folder.'. |
'easily check all links within the folder.').'</li>'. |
' The folder structure itself cannot be imported.'). |
'<li class="LC_info">'.&mt('The folder structure itself cannot be imported.').'</li>'. |
' '.&mt('All checked links will be imported into the current folder of your course.'). |
'<li class="LC_info">'.&mt('All checked links will be imported into the current folder of your course.').'</li>'. |
'</p>'; |
'</ul>'; |
} |
} |
else { |
else { |
$inner .= |
$inner .= |
'<p class="LC_info">'. |
'<ul>'. |
&mt('Please note that you can use the checkboxes corresponding to a folder to '. |
'<li class="LC_info">'.&mt('Use the checkboxes corresponding to a folder to '. |
'easily check all links within this folder.'. |
'easily check all links within this folder.').'</li>'. |
' The folder structure itself cannot be imported.'). |
'<li class="LC_info">'.&mt('The folder structure itself cannot be imported.').'</li>'. |
'</p>'; |
'</ul>'; |
} |
} |
my %wishlist = &getWishlist(); |
my %wishlist = &getWishlist(); |
|
|
Line 1824 sub makePageImport {
|
Line 1864 sub makePageImport {
|
|
|
|
|
# wishlist-table |
# wishlist-table |
&wishlistImport(\@childrenRt); |
my $numskipped = 0; |
|
&wishlistImport(\@childrenRt,\$numskipped); |
if ($wishlistHTMLimport ne '') { |
if ($wishlistHTMLimport ne '') { |
$inner .= '<table class="LC_data_table LC_tableOfContent">'.$wishlistHTMLimport.'</table>'; |
$inner .= '<table class="LC_data_table LC_tableOfContent">'.$wishlistHTMLimport.'</table>'; |
} |
} |
else { |
else { |
$inner .= '<span class="LC_info">'.&mt("Your Stored Links list is currently empty.").'</span>'; |
$inner .= '<span class="LC_info">'.&mt("Your Stored Links list is currently empty.").'</span>'; |
} |
} |
|
if ($numskipped > 0) { |
|
$inner .= '<p class="LC_info">'.&mt('Note: where a Stored Link is unavailable for import in the current context it is grayed out.').'</p>'; |
|
} |
$wishlistHTMLimport = ''; |
$wishlistHTMLimport = ''; |
|
|
$inner .= '</form>'; |
$inner .= '</form>'; |