version 1.9, 2011/01/27 14:38:44
|
version 1.13, 2012/05/16 11:26:03
|
Line 478 sub getNodesToArray {
|
Line 478 sub getNodesToArray {
|
Calls &wishlistView(nodes), &wishlistEdit(nodes) or &wishlistMove(nodes, marked). |
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() |
=item * &makePageSet() |
|
|
Returns the HTML-Markup for the page shown when a link was set by using the icon when viewing a resource. |
Returns the HTML-Markup for the page shown when a link was set by using the icon when viewing a resource. |
Line 501 sub getNodesToArray {
|
Line 511 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 511 sub JSforWishlist {
|
Line 521 sub JSforWishlist {
|
&getFoldersToArray(\@childrenRt); |
&getFoldersToArray(\@childrenRt); |
&getFoldersForOption(\@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 = '<h1>'.$lt{'nl'}.'</h1>'. |
|
'<form method="post" name="newlink" action="/adm/wishlist" target="wishlist" '. |
|
'onsubmit="return newlinksubmit();" >'. |
|
&Apache::lonhtmlcommon::start_pick_box(). |
|
&Apache::lonhtmlcommon::row_title($lt{'lt'}). |
|
'<input type="text" name="title" size="45" value="" />'. |
|
&Apache::lonhtmlcommon::row_closure(). |
|
&Apache::lonhtmlcommon::row_title($lt{'pa'}). |
|
'<input type="text" name="path" size="45" value="" />'. |
|
&Apache::lonhtmlcommon::row_closure(). |
|
&Apache::lonhtmlcommon::row_title($lt{'nt'}). |
|
'<textarea name="note" rows="3" cols="35" style="width:100%"></textarea>'. |
|
&Apache::lonhtmlcommon::row_closure(1). |
|
&Apache::lonhtmlcommon::end_pick_box(). |
|
'<br/><br/>'. |
|
'<input type="submit" value="'.$lt{'si'}.'" />'. |
|
'<select name="folders">'. |
|
'<option value="" selected="selected">('.&mt('Top level').')</option>'. |
|
$foldersOption. |
|
'</select>'. |
|
'<input type="button" value="'.$lt{'cl'}.'" onclick="javascript:window.close();" />'. |
|
'</form>'; |
|
|
|
my $inPageNewFolder = '<h1>'.$lt{'nf'}.'</h1>'. |
|
'<form method="post" name="newfolder" action="/adm/wishlist" target="wishlist" '. |
|
'onsubmit="return newfoldersubmit();" >'. |
|
&Apache::lonhtmlcommon::start_pick_box(). |
|
&Apache::lonhtmlcommon::row_title($lt{'ft'}). |
|
'<input type="text" name="title" size="45" value="" /><br />'. |
|
&Apache::lonhtmlcommon::row_closure(). |
|
&Apache::lonhtmlcommon::row_title($lt{'nt'}). |
|
'<textarea name="note" rows="3" cols="35" style="width:100%"></textarea><br />'. |
|
&Apache::lonhtmlcommon::row_closure(1). |
|
&Apache::lonhtmlcommon::end_pick_box(). |
|
'<br/><br/>'. |
|
'<input type="submit" value="'.$lt{'si'}.'" />'. |
|
'<select name="folders">'. |
|
'<option value="" selected="selected">('.&mt('Top level').')</option>'. |
|
$foldersOption. |
|
'</select>'. |
|
'<input type="button" value="'.$lt{'cl'}.'" onclick="javascript:window.close();" />'. |
|
'</form>'; |
|
|
|
# Remove all \n for inserting on javascript document.write |
|
$inPageNewLink =~ s/\n//g; |
|
$inPageNewFolder =~ s/\n//g; |
|
|
|
# it is checked, wether a path links to a LON-CAPA-resource or an external website. links to course-contents are not allowed |
# it is checked, wether a path links to a LON-CAPA-resource or an external website. links to course-contents are not allowed |
# because they probably will return a kind of 'no access' (unless the user is already in the course, the path links to). |
# because they probably will return a kind of 'no access' (unless the user is already in the course, the path links to). |
# also importing these kind of links into a course does not make much sense. |
# also importing these kind of links into a course does not make much sense. |
Line 591 sub JSforWishlist {
|
Line 542 sub JSforWishlist {
|
|
|
my $js = &Apache::lonhtmlcommon::scripttag(<<JAVASCRIPT); |
my $js = &Apache::lonhtmlcommon::scripttag(<<JAVASCRIPT); |
function newLink() { |
function newLink() { |
newlinkWin=window.open('','newlinkWin','width=580,height=320,scrollbars=yes'); |
newlinkWin=window.open('/adm/wishlist?mode=newLink','newlinkWin','width=580,height=350, scrollbars=yes'); |
newlinkWin.document.write('$startPagePopup' |
|
+'<script type="text\/javascript">' |
|
+'function newlinksubmit(){' |
|
+'var path = document.getElementsByName("path")[0].value;' |
|
+'var title = document.getElementsByName("title")[0].value;' |
|
+'if (!path || !title) {' |
|
+'alert("$warningLink");' |
|
+'return false;}' |
|
+'var linkOK = (path.match(/^http:(\\\\/\\\\/)/) || path.match(/^https:(\\\\/\\\\/)/))' |
|
+'&& !(path.match(/\\.problem/) || path.match(/\\.exam/)' |
|
+'|| path.match(/\\.quiz/) || path.match(/\\.assess/)' |
|
+'|| path.match(/\\.survey/) || path.match(/\\.form/)' |
|
+'|| path.match(/\\.library/) || path.match(/\\.page/)' |
|
+'|| path.match(/\\.sequence/));' |
|
+'if (!path.match(/^(\\\\/res\\\\/)/) && !linkOK) {' |
|
+'alert("$warningLinkNotAllowed1");' |
|
+'return false;}' |
|
+'else {' |
|
+'window.close();' |
|
+'return true;}}' |
|
+'<\/scr'+'ipt>' |
|
+'$inPageNewLink' |
|
+'$endPagePopup'); |
|
newlinkWin.document.close(); |
|
} |
} |
|
|
function newFolder() { |
function newFolder() { |
newfolderWin=window.open('','newfolderWin','width=580,height=270, scrollbars=yes'); |
newfolderWin=window.open('/adm/wishlist?mode=newFolder','newfolderWin','width=580,height=270, scrollbars=yes'); |
newfolderWin.document.write('$startPagePopup' |
|
+'<script type="text\/javascript">' |
|
+'function newfoldersubmit(){' |
|
+'var title = document.getElementsByName("title")[0].value;' |
|
+'if (!title) {' |
|
+'alert("$warningFolder");' |
|
+'return false;}' |
|
+'else {' |
|
+'window.close();' |
|
+'return true;}}' |
|
+'<\/scr'+'ipt>' |
|
+'$inPageNewFolder' |
|
+'$endPagePopup'); |
|
newfolderWin.document.close(); |
|
} |
} |
|
|
function setFormAction(action,mode) { |
function setFormAction(action,mode) { |
Line 1190 sub wishlistView {
|
Line 1103 sub wishlistView {
|
|
|
# checkboxes |
# checkboxes |
$wishlistHTMLview .= '<td><input type="checkbox" name="mark" id="check'.$index.'" value="'.$index.'" '. |
$wishlistHTMLview .= '<td><input type="checkbox" name="mark" id="check'.$index.'" value="'.$index.'" '. |
'onclick="selectAction('."'row".$index."'".')"/></td>'; |
'onclick="selectAction('."'row".$index."'".')" /></td>'; |
|
|
# entry is a folder |
# entry is a folder |
if ($n->value()->path() eq '') { |
if ($n->value()->path() eq '') { |
Line 1258 sub wishlistEdit {
|
Line 1171 sub wishlistEdit {
|
|
|
# checkboxes |
# checkboxes |
$wishlistHTMLedit .= '<td><input type="checkbox" name="mark" id="check'.$index.'" value="'.$index.'" '. |
$wishlistHTMLedit .= '<td><input type="checkbox" name="mark" id="check'.$index.'" value="'.$index.'" '. |
'onclick="selectAction('."'row".$index."'".')"/></td>'; |
'onclick="selectAction('."'row".$index."'".')" /></td>'; |
|
|
# option-tags for sorting entries. we need the numbers from 1 to n with n being the number of entries on the same level as the current entry. |
# option-tags for sorting entries. we need the numbers from 1 to n with n being the number of entries on the same level as the current entry. |
# set the number for the current entry into brackets |
# set the number for the current entry into brackets |
Line 1281 sub wishlistEdit {
|
Line 1194 sub wishlistEdit {
|
'<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>'. |
'<input type="text" name="newtitle" value="'.$n->value()->title().'" alt = "'.$n->value()->title().'"/>'. |
'<input type="text" name="newtitle" value="'.$n->value()->title().'" alt = "'.$n->value()->title().'" />'. |
'</td><td></td>'; |
'</td><td></td>'; |
|
|
} |
} |
Line 1291 sub wishlistEdit {
|
Line 1204 sub wishlistEdit {
|
$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-$indentConst)<=0?$indentConst:$indent).'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>'; |
} |
} |
|
|
# note-icon, different icons for an entries with note and those without |
# note-icon, different icons for an entries with note and those without |
Line 1435 sub wishlistImport {
|
Line 1348 sub wishlistImport {
|
# checkboxes |
# checkboxes |
$wishlistHTMLimport .= '<td>'. |
$wishlistHTMLimport .= '<td>'. |
'<input type="checkbox" name="check" id="check'.$index.'" value="'.$index.'" '. |
'<input type="checkbox" name="check" id="check'.$index.'" value="'.$index.'" '. |
'onclick="selectAction('."'row".$index."'".')"/>'. |
'onclick="selectAction('."'row".$index."'".')" />'. |
'<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>'; |
'</td>'; |
|
|
# entry is a folder |
# entry is a folder |
Line 1502 sub makePage {
|
Line 1415 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 1584 sub makePage {
|
Line 1497 sub makePage {
|
|
|
# start form |
# start form |
my $inner .= '<form name="list" action ="/adm/wishlist" method="post">'. |
my $inner .= '<form name="list" action ="/adm/wishlist" method="post">'. |
'<input type="hidden" id="action" name="action" value=""/>'; |
'<input type="hidden" id="action" name="action" value="" />'; |
|
|
# only display subbox in view- or edit-mode |
# only display subbox in view- or edit-mode |
if ($mode eq 'view' || $mode eq 'edit') { |
if ($mode eq 'view' || $mode eq 'edit') { |
Line 1600 sub makePage {
|
Line 1513 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 1610 sub makePage {
|
Line 1523 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 1621 sub makePage {
|
Line 1534 sub makePage {
|
} |
} |
if ($markStr) { |
if ($markStr) { |
$markStr = substr($markStr, 0, length($markStr)-1); |
$markStr = substr($markStr, 0, length($markStr)-1); |
$inner .= '<input type="hidden" value="'.$markStr.'" name="markedToMove"/>'; |
$inner .= '<input type="hidden" value="'.$markStr.'" name="markedToMove" />'; |
$inner .= '<p><span class="LC_info">'.&mt('You have selected the red marked entries to be moved to another folder. '. |
$inner .= '<p><span class="LC_info">'.&mt('You have selected the red marked entries to be moved to another folder. '. |
'Now choose the new destination folder.').'</span></p>'; |
'Now choose the new destination folder.').'</span></p>'; |
&wishlistMove(\@childrenRt, $marked); |
&wishlistMove(\@childrenRt, $marked); |
$inner .= '<table class="LC_data_table LC_tableOfContent">'.$wishlistHTMLmove.'</table><br/><br/>'; |
$inner .= '<table class="LC_data_table LC_tableOfContent">'.$wishlistHTMLmove.'</table><br/><br/>'; |
$inner .= '<input type="button" value="'.&mt('Move').'" onclick="setFormAction('."'move','view'".');"/>'. |
$inner .= '<input type="button" value="'.&mt('Move').'" onclick="setFormAction('."'move','view'".');" />'. |
'<input type="button" value="'.&mt('Cancel').'" onclick="go('."'/adm/wishlist'".')"/>'; |
'<input type="button" value="'.&mt('Cancel').'" onclick="go('."'/adm/wishlist'".')" />'; |
|
|
$wishlistHTMLmove ='<tr id="root" class="LC_odd_row"><td><input type="radio" name="mark" id="radioRoot" value="root" /></td>'. |
$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>'; |
} |
} |
else { |
else { |
$inner .= '<p><span class="LC_info">'.&mt("You haven't marked any entry to move.").'</span></p>'. |
$inner .= '<p><span class="LC_info">'.&mt("You haven't marked any entry to move.").'</span></p>'. |
'<input type="button" value="'.&mt('Back').'" onclick="go('."'/adm/wishlist'".')"/>'; |
'<input type="button" value="'.&mt('Back').'" onclick="go('."'/adm/wishlist'".')" />'; |
} |
} |
} |
} |
|
|
Line 1653 sub makePage {
|
Line 1566 sub makePage {
|
|
|
# Returns the HTML-Markup for the PopUp, shown when a new link should set, when NOT |
# Returns the HTML-Markup for the PopUp, shown when a new link should set, when NOT |
# beeing in the wishlist-interface (method is called in lonmenu and lonsearchcat) |
# beeing in the wishlist-interface (method is called in lonmenu and lonsearchcat) |
sub makePopUpNewLink{ |
sub makePopUpNewLink { |
|
my ($title, $path) = @_; |
|
|
# Get all existing folders to offer posibility to set a new link |
# Get all existing folders to offer posibility to set a new link |
# into a folder |
# into a folder |
Line 1670 sub makePopUpNewLink{
|
Line 1584 sub makePopUpNewLink{
|
$foldersOption = ''; |
$foldersOption = ''; |
@allFolders = (); |
@allFolders = (); |
|
|
# HTML-Markup for 'Set a link for this resource to wishlist' |
# HTML-Markup for the Pop-Up-window 'Set a link for this resource to wishlist' |
# this is written via JavaScript document.write (function set_wishlistlink) |
my $startPageWishlistlink = |
# it is split into 3 parts and the inputfields for title and path are left out |
&Apache::loncommon::start_page('Save to Stored Links',undef, |
# these fields are inserted later to set the values for title and path |
{'only_body' => 1, |
# automatically via JavaScript (document.title and location.pathname) |
'bgcolor' => '#FFFFFF',}); |
|
|
my $start_page_wishlistlink = |
|
&Apache::loncommon::start_page('Set link to wishlist',undef, |
|
{'only_body' => 1, |
|
'js_ready' => 1, |
|
'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 '. |
|
'or to external websites. Paths to LON-CAPA resources must be of the form /res/dom/usr... . '. |
|
'Paths to external websites must contain the network protocol (e.g. http://...).'); |
|
|
|
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 |
|
# 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 (!$title) { |
|
$inPageWishlistlink1 .= '<form method="post" name="newlink" action="/adm/wishlist" target="wishlist"'. |
|
'onsubmit="return newlinksubmit();" >'; |
|
} |
|
else { |
|
$inPageWishlistlink1 .= '<form method="post" name="newlink" action="/adm/wishlist?mode=set" '. |
|
'onsubmit="return newlinksubmit();" >'; |
|
} |
|
$inPageWishlistlink1 .= &Apache::lonhtmlcommon::start_pick_box(). |
|
&Apache::lonhtmlcommon::row_title(&mt('Link Title')); |
|
|
|
my $inPageWishlistlink2 = &Apache::lonhtmlcommon::row_closure(). |
|
&Apache::lonhtmlcommon::row_title(&mt('Path')); |
|
|
my $in_page_wishlistlink1 = '<h1>'.&mt('Set a link to wishlist').'</h1>'. |
my $inPageWishlistlink3 = &Apache::lonhtmlcommon::row_closure(). |
'<form method="post" name="newlink" action="/adm/wishlist?mode=set" '. |
&Apache::lonhtmlcommon::row_title(&mt('Note')). |
'onsubmit="return newlinksubmit();" >'. |
'<textarea name="note" rows="3" cols="35" style="width:100%"></textarea>'. |
&Apache::lonhtmlcommon::start_pick_box(). |
&Apache::lonhtmlcommon::row_closure(1). |
&Apache::lonhtmlcommon::row_title(&mt('Link Title')); |
&Apache::lonhtmlcommon::end_pick_box(). |
|
'<br/><br/>'. |
my $in_page_wishlistlink2 = &Apache::lonhtmlcommon::row_closure(). |
'<input type="submit" value="'.&mt('Save in').'" />'. |
&Apache::lonhtmlcommon::row_title(&mt('Path')); |
'<select name="folders">'. |
|
$options. |
my $in_page_wishlistlink3 = &Apache::lonhtmlcommon::row_closure(). |
'</select>'. |
&Apache::lonhtmlcommon::row_title(&mt('Note')). |
'<input type="button" value="'.&mt('cancel').'" onclick="javascript:window.close();" />'. |
'<textarea name="note" rows="3" cols="35" style="width:100%"></textarea>'. |
'</form>'; |
&Apache::lonhtmlcommon::row_closure(1). |
|
&Apache::lonhtmlcommon::end_pick_box(). |
|
'<br/><br/>'. |
|
'<input type="submit" value="'.&mt('Save in').'" />'. |
|
'<select name="folders">'. |
|
$options. |
|
'</select>'. |
|
'<input type="button" value="'.&mt('cancel').'" onclick="javascript:window.close();" />'. |
|
'</form>'; |
|
$options = ''; |
$options = ''; |
|
|
# remove all \n for inserting on javascript document.write |
my $endPageWishlistlink = &Apache::loncommon::end_page(); |
$in_page_wishlistlink1 =~ s/\n//g; |
|
$in_page_wishlistlink2 =~ s/\n//g; |
my $popUp = $startPageWishlistlink. |
$in_page_wishlistlink3 =~ s/\n//g; |
$inPageWishlistlink1. |
|
'<input type="text" name="title" size="45" value="" />'. |
my $end_page_wishlistlink = |
$inPageWishlistlink2. |
&Apache::loncommon::end_page({'js_ready' => 1}); |
'<input type="text" name="path" size="45" value="" />'. |
|
$inPageWishlistlink3; |
# Add JavaScript-function to set link for a ressource to wishlist |
|
my $js.=<<SCRIPT; |
# JavaScript-function to set title and path of ressource automatically |
if(!title){ |
# and show warning, if no title was set or path is invalid |
title=document.title; |
$popUp .= <<SCRIPT; |
} |
<script type="text\/javascript"> |
if(!path){ |
document.getElementsByName("title")[0].value = '$title'; |
path=location.pathname; |
document.getElementsByName("path")[0].value = '$path'; |
} |
var fromwishlist = false; |
title = title.replace(/^LON-CAPA /,''); |
var titleget = '$title'; |
wishlistlink=window.open('','wishlistNewLink','width=560,height=350,scrollbars=0'); |
if (!titleget) { |
wishlistlink.document.write( |
fromwishlist = true; |
'$start_page_wishlistlink' |
} |
+'<script type="text\/javascript">' |
function newlinksubmit(){ |
+'function newlinksubmit(){' |
var title = document.getElementsByName("title")[0].value; |
+'var title = document.getElementsByName("title")[0].value;' |
var path = document.getElementsByName("path")[0].value; |
+'if (!title) {' |
if (!title) { |
+'alert("$warningLink");' |
alert("$warningLink"); |
+'return false;}' |
return false;} |
+'return true;}' |
var linkOK = (path.match(/\^http:(\\\/\\\/)/) || path.match(/\^https:(\\\/\\\/)/)) |
+'<\/scr'+'ipt>' |
&& !(path.match(/\\.problem/) || path.match(/\\.exam/) |
+'$in_page_wishlistlink1' |
|| path.match(/\\.quiz/) || path.match(/\\.assess/) |
+'<input type="text" name="title" size="45" value="'+title+'"/>' |
|| path.match(/\\.survey/) || path.match(/\\.form/) |
+'$in_page_wishlistlink2' |
|| path.match(/\\.library/) || path.match(/\\.page/) |
+'<input type="text" name="path" size="45" value="'+path+'" ' |
|| path.match(/\\.sequence/)); |
+'readonly="readonly" style="background-color: #DDDDDD"/>' |
if (!path.match(/\^(\\\/res\\\/)/) && !linkOK) { |
+'$in_page_wishlistlink3' |
alert("$warningLinkNotAllowed1"); |
+'$end_page_wishlistlink' ); |
return false;} |
wishlistlink.document.close(); |
if (fromwishlist) { |
|
window.close(); |
|
} |
|
return true;} |
|
<\/script> |
SCRIPT |
SCRIPT |
|
|
return $js; |
$popUp .= $endPageWishlistlink; |
|
|
|
return $popUp; |
|
} |
|
|
|
sub makePopUpNewFolder { |
|
# Get all existing folders to offer posibility to create a new folder |
|
# into an existing folder |
|
my %TreeHashLink = &Apache::lonwishlist::getWishlist(); |
|
my $rootLink = &Apache::Tree::HashToTree(\%TreeHashLink); |
|
my @childrenRtLink = $rootLink->children(); |
|
|
|
$foldersOption = ''; |
|
@allFolders = (); |
|
&getFoldersToArray(\@childrenRtLink); |
|
&getFoldersForOption(\@childrenRtLink); |
|
|
|
my $options = '<option value="" selected="selected">('.&mt('Top level').')</option>'.$foldersOption; |
|
$foldersOption = ''; |
|
@allFolders = (); |
|
|
|
# HTML-Markup for the Pop-Up-window 'New Folder' |
|
my $startPageWishlistfolder = |
|
&Apache::loncommon::start_page('New Folder',undef, |
|
{'only_body' => 1, |
|
'bgcolor' => '#FFFFFF',}); |
|
|
|
my $warningFolder = &mt('You must insert a title!'); |
|
|
|
|
|
my $inPageNewFolder = '<h1>'.&mt('New Folder').'</h1>'. |
|
'<form method="post" name="newfolder" action="/adm/wishlist" target="wishlist" '. |
|
'onsubmit="return newfoldersubmit();" >'. |
|
&Apache::lonhtmlcommon::start_pick_box(). |
|
&Apache::lonhtmlcommon::row_title(&mt('Folder title')). |
|
'<input type="text" name="title" size="45" value="" /><br />'. |
|
&Apache::lonhtmlcommon::row_closure(). |
|
&Apache::lonhtmlcommon::row_title(&mt('Note')). |
|
'<textarea name="note" rows="3" cols="35" style="width:100%"></textarea><br />'. |
|
&Apache::lonhtmlcommon::row_closure(1). |
|
&Apache::lonhtmlcommon::end_pick_box(). |
|
'<br/><br/>'. |
|
'<input type="submit" value="'.&mt('Save in').'" />'. |
|
'<select name="folders">'. |
|
$options. |
|
'</select>'. |
|
'<input type="button" value="'.&mt('Cancel').'" onclick="javascript:window.close();" />'. |
|
'</form>'; |
|
my $endPageWishlistfolder = &Apache::loncommon::end_page(); |
|
|
|
my $popUp = $startPageWishlistfolder. |
|
$inPageNewFolder; |
|
|
|
$popUp .= <<SCRIPT; |
|
<script type="text\/javascript"> |
|
function newfoldersubmit(){ |
|
var title = document.getElementsByName("title")[0].value; |
|
if (!title) { |
|
alert("$warningFolder"); |
|
return false;} |
|
else { |
|
window.close(); |
|
return true;}} |
|
<\/script> |
|
SCRIPT |
|
|
|
$popUp .= $endPageWishlistfolder; |
|
|
|
return $popUp; |
} |
} |
|
|
# 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 |
# 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}); |
|
|
# confirm success and offer link to wishlist |
# confirm success and offer link to wishlist |
my $message = &Apache::lonhtmlcommon::confirm_success(&mt('Link successfully set!')); |
my $message = &Apache::lonhtmlcommon::confirm_success(&mt('Link successfully saved!')); |
$message = &Apache::loncommon::confirmwrapper($message); |
$message = &Apache::loncommon::confirmwrapper($message); |
|
|
my $inner .= '<br>'.$message.'<br/><br/>'. |
my $inner .= '<br>'.$message.'<br/><br/>'. |
'<a href="javascript:;" onclick="opener.open('."'/adm/wishlist'".');window.close();">'.&mt('Go to wishlist').'</a>'. |
'<a href="javascript:;" onclick="opener.open('."'/adm/wishlist'".');window.close();">'.&mt('Go to Stored Links').'</a>'.(' ' x 3). |
' <a href="javascript:;" onclick="window.close();">'.&mt('Close this window').'</a>'; |
'<a href="javascript:;" onclick="window.close();">'.&mt('Close this window').'</a>'; |
|
|
# end_page |
# end_page |
my $endPage = &Apache::loncommon::end_page(); |
my $endPage = &Apache::loncommon::end_page(); |
Line 1780 sub makePageImport {
|
Line 1772 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 .= '<p><span class="LC_info">'.&mt("Please note that you can use the checkboxes corresponding to a folder to ". |
"easily check all links within this folder. The folder structure itself can't be imported. ". |
"easily check all links within this folder. The folder structure itself can't be imported. ". |
"All checked links will be imported into the current folder of your course.").'</span></p>'; |
"All checked links will be imported into the current folder of your course.").'</span></p>'; |
} |
} |
else { |
else { |
$inner .= '<p><span class="LC_info">'.&mt("Please note that you can use the checkboxes corresponding to a folder to ". |
$inner .= '<p><span class="LC_info">'.&mt("Please note that you can use the checkboxes corresponding to a folder to ". |
"easily check all links within this folder. The folder structure itself can't be imported. ") |
"easily check all links within this folder. The folder structure itself can't be imported. ") |
.'</span></p>'; |
.'</span></p>'; |
} |
} |
Line 1812 sub makePageImport {
|
Line 1804 sub makePageImport {
|
$fnum = (keys %wishlist)-1; |
$fnum = (keys %wishlist)-1; |
} |
} |
|
|
$inner .= '<form method="post" name="groupsort">'. |
$inner .= '<form method="post" name="groupsort" action="">'. |
'<input type="hidden" value="'.$fnum.'" name="fnum">'. |
'<input type="hidden" value="'.$fnum.'" name="fnum" />'. |
'<input type="button" onclick="javascript:checkAll()" id="checkallbutton" value="'.&mt('Check All').'">'. |
'<input type="button" onclick="javascript:checkAll()" id="checkallbutton" value="'.&mt('Check All').'" />'. |
'<input type="button" onclick="javascript:uncheckAll()" id="uncheckallbutton" value="'.&mt('Uncheck All').'">'. |
'<input type="button" onclick="javascript:uncheckAll()" id="uncheckallbutton" value="'.&mt('Uncheck All').'" />'. |
'<input type="button" value="'.&mt('Import Checked').'" onclick="finish_import();">'. |
'<input type="button" value="'.&mt('Import Checked').'" onclick="finish_import();" />'. |
'<input type="button" value="'.&mt('Cancel').'" onclick="window.close();"><br/><br/>'; |
'<input type="button" value="'.&mt('Cancel').'" onclick="window.close();" /><br/><br/>'; |
|
|
|
|
# wishlist-table |
# wishlist-table |
Line 1826 sub makePageImport {
|
Line 1818 sub makePageImport {
|
$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>'; |
} |
} |
$wishlistHTMLimport = ''; |
$wishlistHTMLimport = ''; |
|
|
Line 1848 sub makeErrorPage {
|
Line 1840 sub makeErrorPage {
|
&Apache::lonhtmlcommon::add_breadcrumb( |
&Apache::lonhtmlcommon::add_breadcrumb( |
{ href => '/adm/wishlist', |
{ href => '/adm/wishlist', |
text => 'Wishlist'}); |
text => 'Wishlist'}); |
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 |