Diff for /loncom/interface/lonwishlist.pm between versions 1.10 and 1.14

version 1.10, 2011/02/15 14:54:51 version 1.14, 2012/05/22 16:31:38
Line 511  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 528  sub JSforWishlist { Line 528  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 1103  sub wishlistView { Line 1105  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 1171  sub wishlistEdit { Line 1173  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 1194  sub wishlistEdit { Line 1196  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 1204  sub wishlistEdit { Line 1206  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 1270  sub wishlistMove { Line 1272  sub wishlistMove {
                 $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-$indentConst)<0?0:($indent-$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-$indentConst)<0?0:($indent-$indentConst)).'px; min-width: 220px;'.
Line 1348  sub wishlistImport { Line 1350  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 1415  sub makePage { Line 1417  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 1497  sub makePage { Line 1499  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 1513  sub makePage { Line 1515  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 1525  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 1534  sub makePage { Line 1536  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 1586  sub makePopUpNewLink { Line 1588  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 1627  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 1631  sub makePopUpNewLink { Line 1635  sub makePopUpNewLink {
   
     my $popUp = $startPageWishlistlink.      my $popUp = $startPageWishlistlink.
     $inPageWishlistlink1.      $inPageWishlistlink1.
     '<input type="text" name="title" size="45" value=""/>'.      '<input type="text" name="title" size="45" value="" />'.
     $inPageWishlistlink2.      $inPageWishlistlink2.
     '<input type="text" name="path" size="45" value=""/>'.      '<input type="text" name="path" size="45" value="" />'.
     $inPageWishlistlink3;      $inPageWishlistlink3;
   
     # JavaScript-function to set title and path of ressource automatically      # JavaScript-function to set title and path of ressource automatically
Line 1743  SCRIPT Line 1747  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       # 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>'.('&nbsp;' x 3).
                  '&nbsp;<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 1772  sub makePageImport { Line 1776  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. ".              '<p class="LC_info">'.
                                                   "All checked links will be imported into the current folder of your course.").'</span></p>';              &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 cannot be imported.').
               ' '.&mt('All checked links will be imported into the current folder of your course.').
               '</p>';
     }      }
     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. ")              '<p class="LC_info">'.
                                                   .'</span></p>';              &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 cannot be imported.').
               '</p>';
     }      }
     my %wishlist = &getWishlist();      my %wishlist = &getWishlist();
   
Line 1804  sub makePageImport { Line 1815  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 1818  sub makePageImport { Line 1829  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 1840  sub makeErrorPage { Line 1851  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

Removed from v.1.10  
changed lines
  Added in v.1.14


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>