version 1.11, 2012/05/14 16:39:41
|
version 1.18, 2013/06/18 13:23:42
|
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 511 sub getNodesToArray {
|
Line 513 sub getNodesToArray {
|
# Return a script-tag containing Javascript-function |
# Return a script-tag containing Javascript-function |
# needed for wishlist actions like 'new link' ect. |
# needed for wishlist actions like 'new link' ect. |
sub JSforWishlist { |
sub JSforWishlist { |
my $startPagePopup = &Apache::loncommon::start_page('Wishlist',undef, |
my $startPagePopup = &Apache::loncommon::start_page('Stored Links',undef, |
{'only_body' => 1, |
{'only_body' => 1, |
'js_ready' => 1, |
'js_ready' => 1, |
'bgcolor' => '#FFFFFF',}); |
'bgcolor' => '#FFFFFF',}); |
Line 528 sub JSforWishlist {
|
Line 530 sub JSforWishlist {
|
# that means that it is checked wether a path contains .problem, .quiz, .exam etc. |
# that means that it is checked wether a path contains .problem, .quiz, .exam etc. |
# this is good for most cases but crashes as soon as a real external website contains one of this pattern in its URL. |
# this is good for most cases but crashes as soon as a real external website contains one of this pattern in its URL. |
# so maybe there's a better way to find out wether a given URL belongs to a LON-CAPA-server or not ...? |
# so maybe there's a better way to find out wether a given URL belongs to a LON-CAPA-server or not ...? |
my $warningLinkNotAllowed1 = &mt('You can only insert links to LON-CAPA resources from the resource-pool '. |
my $warningLinkNotAllowed1 = |
'or to external websites. Paths to LON-CAPA resources must be of the form /res/dom/usr... . '. |
&mt('You can only insert links to LON-CAPA resources from the resource-pool'. |
'Paths to external websites must contain the network protocol (e.g. http://...).'); |
' or to external websites.'. |
my $warningLinkNotAllowed2 = &mt('The following link is not allowed: '); |
' Paths to LON-CAPA resources must be of the form /res/domain/user/...'. |
|
' Paths to external websites must contain the network protocol, e.g. http://...'); |
|
my $warningLinkNotAllowed2 = &mt('The following link is not allowed:').' '; |
my $warningLink = &mt('You must insert a title and a path!'); |
my $warningLink = &mt('You must insert a title and a path!'); |
my $warningFolder = &mt('You must insert a title!'); |
my $warningFolder = &mt('You must insert a title!'); |
my $warningDelete = &mt('Are you sure you want to delete the selected entries? Deleting a folder also deletes all entries within this folder!'); |
my $warningDelete = &mt('Are you sure you want to delete the selected entries? Deleting a folder also deletes all entries within this folder!'); |
my $warningSave = &mt('You have unsaved changes. You can either save these changes now by clicking "ok" or click "cancel" if you do not want to save your changes.'); |
my $warningSave = &mt('You have unsaved changes. You can either save these changes now by clicking "OK" or click "Cancel" if you do not want to save your changes.'); |
my $warningMoveS = &mt('You must select at minimum one entry to move!'); |
my $warningMoveS = &mt('You must select at minimum one entry to move!'); |
my $warningMoveD = &mt('You must select a destination folder!'); |
my $warningMoveD = &mt('You must select a destination folder!'); |
$foldersOption = ''; |
$foldersOption = ''; |
Line 808 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 1008 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 1088 JAVASCRIPT
|
Line 1098 JAVASCRIPT
|
|
|
# HTML-Markup for table if in view-mode |
# HTML-Markup for table if in view-mode |
my $wishlistHTMLview; |
my $wishlistHTMLview; |
my $indent = $indentConst; |
my $indent_view = $indentConst; |
sub wishlistView { |
sub wishlistView { |
my $nodes = shift; |
my $nodes = shift; |
|
|
Line 1107 sub wishlistView {
|
Line 1117 sub wishlistView {
|
|
|
# entry is a folder |
# entry is a folder |
if ($n->value()->path() eq '') { |
if ($n->value()->path() eq '') { |
$wishlistHTMLview .= '<td id="padd'.$index.'" style="padding-left:'.(($indent-$indentConst)<0?0:($indent-$indentConst)).'px; min-width: 220px;">'. |
$wishlistHTMLview .= '<td id="padd'.$index.'" style="padding-left:'.(($indent_view-$indentConst)<0?0:($indent_view-$indentConst)).'px; min-width: 220px;">'. |
'<a href="javascript:;" onclick="folderAction('."'row".$index."'".')" style="vertical-align:top">'. |
'<a href="javascript:;" onclick="folderAction('."'row".$index."'".')" style="vertical-align:top">'. |
'<img src="/adm/lonIcons/arrow.closed.gif" id="img'.$index.'" alt = "" class="LC_icon"/>'. |
'<img src="/adm/lonIcons/arrow.closed.gif" id="img'.$index.'" alt = "" class="LC_icon"/>'. |
'<img src="/adm/lonIcons/navmap.folder.closed.gif" id="imgFolder'.$index.'" alt="folder"/>'. |
'<img src="/adm/lonIcons/navmap.folder.closed.gif" id="imgFolder'.$index.'" alt="folder"/>'. |
Line 1115 sub wishlistView {
|
Line 1125 sub wishlistView {
|
} |
} |
# entry is a link |
# entry is a link |
else { |
else { |
$wishlistHTMLview .= '<td id="padd'.$index.'" style="padding-left:'.(($indent-$indentConst)<=0?$indentConst:$indent).'px; min-width: 220px;">'. |
$wishlistHTMLview .= '<td id="padd'.$index.'" style="padding-left:'.(($indent_view-$indentConst)<=0?$indentConst:$indent_view).'px; min-width: 220px;">'. |
'<a href="javascript:preview('."'".$n->value()->path()."'".');">'. |
'<a href="javascript:preview('."'".$n->value()->path()."'".');">'. |
'<img src="/res/adm/pages/wishlist-link.png" id="img'.$index.'" alt="link" />'. |
'<img src="/res/adm/pages/wishlist-link.png" id="img'.$index.'" alt="link" />'. |
$n->value()->title().'</a></td>'; |
$n->value()->title().'</a></td>'; |
Line 1145 sub wishlistView {
|
Line 1155 sub wishlistView {
|
# if the entry is a folder, it could have other entries as content. if it has, call wishlistView for those entries |
# if the entry is a folder, it could have other entries as content. if it has, call wishlistView for those entries |
my @children = $n->children(); |
my @children = $n->children(); |
if ($#children >=0) { |
if ($#children >=0) { |
$indent += 20; |
$indent_view += 20; |
&wishlistView(\@children); |
&wishlistView(\@children); |
$indent -= 20; |
$indent_view -= 20; |
} |
} |
} |
} |
} |
} |
Line 1155 sub wishlistView {
|
Line 1165 sub wishlistView {
|
|
|
# HTML-Markup for table if in edit-mode |
# HTML-Markup for table if in edit-mode |
my $wishlistHTMLedit; |
my $wishlistHTMLedit; |
my $indent = $indentConst; |
my $indent_edit = $indentConst; |
sub wishlistEdit { |
sub wishlistEdit { |
my $nodes = shift; |
my $nodes = shift; |
my $curNode = 1; |
my $curNode = 1; |
Line 1190 sub wishlistEdit {
|
Line 1200 sub wishlistEdit {
|
if ($n->value()->path() eq '') { |
if ($n->value()->path() eq '') { |
$wishlistHTMLedit .= '<td><select class="LC_hidden" name="sel" id="sel'.$index.'" onchange="submitSelect();">'. |
$wishlistHTMLedit .= '<td><select class="LC_hidden" name="sel" id="sel'.$index.'" onchange="submitSelect();">'. |
$options.'</select></td>'. |
$options.'</select></td>'. |
'<td id="padd'.$index.'" style="padding-left:'.(($indent-$indentConst)<0?0:($indent-$indentConst)).'px;">'. |
'<td id="padd'.$index.'" style="padding-left:'.(($indent_edit-$indentConst)<0?0:($indent_edit-$indentConst)).'px;">'. |
'<a href="javascript:;" onclick="folderAction('."'row".$index."'".')" style="vertical-align:top" >'. |
'<a href="javascript:;" onclick="folderAction('."'row".$index."'".')" style="vertical-align:top" >'. |
'<img src="/adm/lonIcons/arrow.closed.gif" id="img'.$index.'" alt = "" class="LC_icon"/>'. |
'<img src="/adm/lonIcons/arrow.closed.gif" id="img'.$index.'" alt = "" class="LC_icon"/>'. |
'<img src="/adm/lonIcons/navmap.folder.closed.gif" id="imgFolder'.$index.'" alt="folder"/></a>'. |
'<img src="/adm/lonIcons/navmap.folder.closed.gif" id="imgFolder'.$index.'" alt="folder"/></a>'. |
Line 1202 sub wishlistEdit {
|
Line 1212 sub wishlistEdit {
|
else { |
else { |
$wishlistHTMLedit .= '<td><select class="LC_hidden" name="sel" id="sel'.$index.'" onchange="submitSelect();">'. |
$wishlistHTMLedit .= '<td><select class="LC_hidden" name="sel" id="sel'.$index.'" onchange="submitSelect();">'. |
$options.'</select></td>'. |
$options.'</select></td>'. |
'<td id="padd'.$index.'" style="padding-left:'.(($indent-$indentConst)<=0?$indentConst:$indent).'px;">'. |
'<td id="padd'.$index.'" style="padding-left:'.(($indent_edit-$indentConst)<=0?$indentConst:$indent_edit).'px;">'. |
'<img src="/res/adm/pages/wishlist-link.png" id="img'.$index.'" alt="link"/>'. |
'<img src="/res/adm/pages/wishlist-link.png" id="img'.$index.'" alt="link"/>'. |
'<input type="text" name="newtitle" value="'.$n->value()->title().'" alt = "'.$n->value()->title().'" /></td>'. |
'<input type="text" name="newtitle" value="'.$n->value()->title().'" alt = "'.$n->value()->title().'" /></td>'. |
'<td><input type="text" name="newpath" value="'.$n->value()->path().'" alt = "'.$n->value()->path().'" /></td>'; |
'<td><input type="text" name="newpath" value="'.$n->value()->path().'" alt = "'.$n->value()->path().'" /></td>'; |
Line 1232 sub wishlistEdit {
|
Line 1242 sub wishlistEdit {
|
# if the entry is a folder, it could have other entries as content. if it has, call wishlistEdit for those entries |
# if the entry is a folder, it could have other entries as content. if it has, call wishlistEdit for those entries |
my @children = $n->children(); |
my @children = $n->children(); |
if ($#children >=0) { |
if ($#children >=0) { |
$indent += 20; |
$indent_edit += 20; |
&wishlistEdit(\@children); |
&wishlistEdit(\@children); |
$indent -= 20; |
$indent_edit -= 20; |
} |
} |
} |
} |
} |
} |
Line 1244 sub wishlistEdit {
|
Line 1254 sub wishlistEdit {
|
# HTML-Markup for table if in move-mode |
# HTML-Markup for table if in move-mode |
my $wishlistHTMLmove ='<tr id="root" class="LC_odd_row"><td><input type="radio" name="mark" id="radioRoot" value="root" /></td>'. |
my $wishlistHTMLmove ='<tr id="root" class="LC_odd_row"><td><input type="radio" name="mark" id="radioRoot" value="root" /></td>'. |
'<td>'.&mt('Top level').'</td><td></td></tr>'; |
'<td>'.&mt('Top level').'</td><td></td></tr>'; |
my $indent = $indentConst; |
my $indent_move = $indentConst; |
sub wishlistMove { |
sub wishlistMove { |
my $nodes = shift; |
my $nodes = shift; |
my $marked = shift; |
my $marked = shift; |
Line 1268 sub wishlistMove {
|
Line 1278 sub wishlistMove {
|
# display a radio-button, if the folder was not selected to be moved |
# display a radio-button, if the folder was not selected to be moved |
if (!$isIn) { |
if (!$isIn) { |
$wishlistHTMLmove .= '<td><input type="radio" name="mark" id="radio'.$index.'" value="'.$index.'" /></td>'. |
$wishlistHTMLmove .= '<td><input type="radio" name="mark" id="radio'.$index.'" value="'.$index.'" /></td>'. |
'<td id="padd'.$index.'" style="padding-left:'.(($indent-$indentConst)<0?0:($indent-$indentConst)).'px; min-width: 220px;">'; |
'<td id="padd'.$index.'" style="padding-left:'.(($indent_move-$indentConst)<0?0:($indent_move-$indentConst)).'px; min-width: 220px;">'; |
} |
} |
# higlight the title, if the folder was selected to be moved |
# highlight the title, if the folder was selected to be moved |
else { |
else { |
$wishlistHTMLmove .= '<td></td>'. |
$wishlistHTMLmove .= '<td></td>'. |
'<td id="padd'.$index.'" style="padding-left:'.(($indent-$indentConst)<0?0:($indent-$indentConst)).'px; min-width: 220px;'. |
'<td id="padd'.$index.'" style="padding-left:'.(($indent_move-$indentConst)<0?0:($indent_move-$indentConst)).'px; min-width: 220px;'. |
'color:red;">'; |
'color:red;">'; |
} |
} |
#arrow- and folder-image, all folders are open, and title |
#arrow- and folder-image, all folders are open, and title |
Line 1290 sub wishlistMove {
|
Line 1300 sub wishlistMove {
|
} |
} |
# link-image and title |
# link-image and title |
$wishlistHTMLmove .= '<td></td>'. |
$wishlistHTMLmove .= '<td></td>'. |
'<td id="padd'.$index.'" style="padding-left:'.(($indent-$indentConst)<=0?$indentConst:$indent).'px; min-width: 220px;">'. |
'<td id="padd'.$index.'" style="padding-left:'.(($indent_move-$indentConst)<=0?$indentConst:$indent_move).'px; min-width: 220px;">'. |
'<a href="javascript:preview('."'".$n->value()->path()."'".');" '.$highlight.'>'. |
'<a href="javascript:preview('."'".$n->value()->path()."'".');" '.$highlight.'>'. |
'<img src="/res/adm/pages/wishlist-link.png" id="img'.$index.'" alt="link"/>'. |
'<img src="/res/adm/pages/wishlist-link.png" id="img'.$index.'" alt="link"/>'. |
$n->value()->title().'</a></td>'; |
$n->value()->title().'</a></td>'; |
Line 1320 sub wishlistMove {
|
Line 1330 sub wishlistMove {
|
# if the entry is a folder, it could have other entries as content. if it has, call wishlistMove for those entries |
# if the entry is a folder, it could have other entries as content. if it has, call wishlistMove for those entries |
my @children = $n->children(); |
my @children = $n->children(); |
if ($#children >=0) { |
if ($#children >=0) { |
$indent += 20; |
$indent_move += 20; |
&wishlistMove(\@children, $marked); |
&wishlistMove(\@children, $marked); |
$indent -= 20; |
$indent_move -= 20; |
} |
} |
} |
} |
} |
} |
Line 1331 sub wishlistMove {
|
Line 1341 sub wishlistMove {
|
|
|
# HTML-Markup for table if in import-mode |
# HTML-Markup for table if in import-mode |
my $wishlistHTMLimport; |
my $wishlistHTMLimport; |
my $indent = $indentConst; |
my $indent_imp = $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 1346 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 '') { |
$wishlistHTMLimport .= '<td id="padd'.$index.'" style="padding-left:'.(($indent-$indentConst)<0?0:($indent-$indentConst)).'px; min-width: 220px;">'. |
$wishlistHTMLimport .= '<td id="padd'.$index.'" style="padding-left:'.(($indent_imp-$indentConst)<0?0:($indent_imp-$indentConst)).'px; min-width: 220px;">'. |
'<a href="javascript:;" onclick="folderAction('."'row".$index."'".')" style="vertical-align:top">'. |
'<a href="javascript:;" onclick="folderAction('."'row".$index."'".')" style="vertical-align:top">'. |
'<img src="/adm/lonIcons/arrow.closed.gif" id="img'.$index.'" alt = "" class="LC_icon"/>'. |
'<img src="/adm/lonIcons/arrow.closed.gif" id="img'.$index.'" alt = "" class="LC_icon"/>'. |
'<img src="/adm/lonIcons/navmap.folder.closed.gif" id="imgFolder'.$index.'" alt="folder"/>'. |
'<img src="/adm/lonIcons/navmap.folder.closed.gif" id="imgFolder'.$index.'" alt="folder"/>'. |
Line 1364 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_imp-$indentConst)<=0?$indentConst:$indent_imp).'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 1395 sub wishlistImport {
|
Line 1436 sub wishlistImport {
|
# if the entry is a folder, it could have other entries as content. if it has, call wishlistImport for those entries |
# if the entry is a folder, it could have other entries as content. if it has, call wishlistImport for those entries |
my @children = $n->children(); |
my @children = $n->children(); |
if ($#children >=0) { |
if ($#children >=0) { |
$indent += 20; |
$indent_imp += 20; |
&wishlistImport(\@children); |
&wishlistImport(\@children,$numskipped); |
$indent -= 20; |
$indent_imp -= 20; |
} |
} |
} |
} |
|
return; |
} |
} |
|
|
# Returns the HTML-Markup for wishlist |
# Returns the HTML-Markup for wishlist |
Line 1415 sub makePage {
|
Line 1457 sub makePage {
|
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::lonhtmlcommon::add_breadcrumb( |
&Apache::lonhtmlcommon::add_breadcrumb( |
{ href => '/adm/wishlist?mode='.$mode, |
{ href => '/adm/wishlist?mode='.$mode, |
text => 'Wishlist'}); |
text => 'Stored Links'}); |
my $startPage = &Apache::loncommon::start_page('Wishlist',undef, |
my $startPage = &Apache::loncommon::start_page('Stored Links',undef, |
{'add_entries' => { |
{'add_entries' => { |
'onload' => 'javascript:onLoadAction('."'".$mode."'".');', |
'onload' => 'javascript:onLoadAction('."'".$mode."'".');', |
'onunload' => 'javascript:window.name = '."'loncapaclient'"}}); |
'onunload' => 'javascript:window.name = '."'loncapaclient'"}}); |
|
|
my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs(&mt('Wishlist').&Apache::loncommon::help_open_topic('Wishlist')); |
my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs(&mt('Stored Links').&Apache::loncommon::help_open_topic('Wishlist')); |
|
|
# get javascript-code for wishlist-interactions |
# get javascript-code for wishlist-interactions |
my $js = &JSforWishlist(); |
my $js = &JSforWishlist(); |
Line 1513 sub makePage {
|
Line 1555 sub makePage {
|
$inner .= &Apache::loncommon::end_data_table(); |
$inner .= &Apache::loncommon::end_data_table(); |
} |
} |
else { |
else { |
$inner .= '<span class="LC_info">'.&mt("Your wishlist ist currently empty.").'</span>'; |
$inner .= '<span class="LC_info">'.&mt("Your Stored Links list is currently empty.").'</span>'; |
} |
} |
$wishlistHTMLedit = ''; |
$wishlistHTMLedit = ''; |
} |
} |
Line 1523 sub makePage {
|
Line 1565 sub makePage {
|
$inner .= '<table class="LC_data_table LC_tableOfContent">'.$wishlistHTMLview.'</table>'; |
$inner .= '<table class="LC_data_table LC_tableOfContent">'.$wishlistHTMLview.'</table>'; |
} |
} |
else { |
else { |
$inner .= '<span class="LC_info">'.&mt("Your wishlist ist currently empty.").'</span>'; |
$inner .= '<span class="LC_info">'.&mt("Your Stored Links list is currently empty.").'</span>'; |
} |
} |
$wishlistHTMLview = ''; |
$wishlistHTMLview = ''; |
} |
} |
Line 1586 sub makePopUpNewLink {
|
Line 1628 sub makePopUpNewLink {
|
|
|
# HTML-Markup for the Pop-Up-window 'Set a link for this resource to wishlist' |
# HTML-Markup for the Pop-Up-window 'Set a link for this resource to wishlist' |
my $startPageWishlistlink = |
my $startPageWishlistlink = |
&Apache::loncommon::start_page('Set link to wishlist',undef, |
&Apache::loncommon::start_page('Save to Stored Links',undef, |
{'only_body' => 1, |
{'only_body' => 1, |
'bgcolor' => '#FFFFFF',}); |
'bgcolor' => '#FFFFFF',}); |
|
|
my $warningLink = &mt('You must insert a title!'); |
my $warningLink = &mt('You must insert a title!'); |
my $warningLinkNotAllowed1 = &mt('You can only insert links to LON-CAPA resources from the resource-pool '. |
my $warningLinkNotAllowed1 = |
'or to external websites. Paths to LON-CAPA resources must be of the form /res/dom/usr... . '. |
&mt('You can only insert links to LON-CAPA resources from the resource-pool'. |
'Paths to external websites must contain the network protocol (e.g. http://...).'); |
' or to external websites.'. |
|
' Paths to LON-CAPA resources must be of the form /res/domain/user/...'. |
|
' Paths to external websites must contain the network protocol, e.g. http://...'); |
|
|
my $inPageWishlistlink1 = '<h1>'.&mt('Set a link to wishlist').'</h1>'; |
my $inPageWishlistlink1 = '<h1>'.&mt('Save to Stored Links').'</h1>'; |
# If no title is delivered, 'New Link' is called up from the wishlist-interface, so after |
# If no title is delivered, 'New Link' is called up from the wishlist-interface, so after |
# submitting the window should close instead of offering a link to wishlist (like it should do |
# submitting the window should close instead of offering a link to wishlist (like it should do |
# if we call 'Set New Link' from within a browsed ressource) |
# if we call 'Set New Link' from within a browsed ressource) |
Line 1623 sub makePopUpNewLink {
|
Line 1667 sub makePopUpNewLink {
|
'<select name="folders">'. |
'<select name="folders">'. |
$options. |
$options. |
'</select>'. |
'</select>'. |
'<input type="button" value="'.&mt('cancel').'" onclick="javascript:window.close();" />'. |
'<input type="button" value="'.&mt('Cancel').'" onclick="javascript:window.close();" />'. |
'</form>'; |
'</form>'; |
$options = ''; |
$options = ''; |
|
|
Line 1742 SCRIPT
|
Line 1786 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('Wishlist',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 set!')); |
$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 wishlist').'</a>'. |
.&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 1772 sub makePageImport {
|
Line 1819 sub makePageImport {
|
$root = $rootgiven; |
$root = $rootgiven; |
@childrenRt = $root->children(); |
@childrenRt = $root->children(); |
# start_page |
# start_page |
my $startPage = &Apache::loncommon::start_page('Wishlist',undef, |
my $startPage = &Apache::loncommon::start_page('Stored Links',undef, |
{'only_body' => 1}); |
{'only_body' => 1}); |
|
|
# get javascript-code for wishlist-interactions |
# get javascript-code for wishlist-interactions |
my $js = &JSforWishlist(); |
my $js = &JSforWishlist(); |
$js .= &JSforImport($rat); |
$js .= &JSforImport($rat); |
|
|
my $inner = '<h1>'.&mt('Import Resources from Wishlist').'</h1>'; |
my $inner = '<h1>'.&mt('Import Resources from Stored Links').'</h1>'; |
if (!$rat) { |
if (!$rat) { |
$inner .= '<p><span class="LC_info">'.&mt("Please note that you can use the checkboxes corresponding to a folder to ". |
$inner .= |
"easily check all links within this folder. The folder structure itself can't be imported. ". |
'<ul>'. |
"All checked links will be imported into the current folder of your course.").'</span></p>'; |
'<li class="LC_info">'.&mt('Use the checkboxes corresponding to a folder to '. |
|
'easily check all links within the folder.').'</li>'. |
|
'<li class="LC_info">'.&mt('The folder structure itself cannot be imported.').'</li>'. |
|
'<li class="LC_info">'.&mt('All checked links will be imported into the current folder of your course.').'</li>'. |
|
'</ul>'; |
} |
} |
else { |
else { |
$inner .= '<p><span class="LC_info">'.&mt("Please note that you can use the checkboxes corresponding to a folder to ". |
$inner .= |
"easily check all links within this folder. The folder structure itself can't be imported. ") |
'<ul>'. |
.'</span></p>'; |
'<li class="LC_info">'.&mt('Use the checkboxes corresponding to a folder to '. |
|
'easily check all links within this folder.').'</li>'. |
|
'<li class="LC_info">'.&mt('The folder structure itself cannot be imported.').'</li>'. |
|
'</ul>'; |
} |
} |
my %wishlist = &getWishlist(); |
my %wishlist = &getWishlist(); |
|
|
Line 1813 sub makePageImport {
|
Line 1867 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 wishlist ist 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 = ''; |
|
|
Line 1839 sub makeErrorPage {
|
Line 1897 sub makeErrorPage {
|
# breadcrumbs and start_page |
# breadcrumbs and start_page |
&Apache::lonhtmlcommon::add_breadcrumb( |
&Apache::lonhtmlcommon::add_breadcrumb( |
{ href => '/adm/wishlist', |
{ href => '/adm/wishlist', |
text => 'Wishlist'}); |
text => 'Stored Links'}); |
my $startPage = &Apache::loncommon::start_page('Wishlist'); |
my $startPage = &Apache::loncommon::start_page('Stored Links'); |
|
|
my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs(&mt('Wishlist').&Apache::loncommon::help_open_topic('Wishlist')); |
my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs(&mt('Stored Links').&Apache::loncommon::help_open_topic('Wishlist')); |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
|
|
# error-message |
# error-message |