[LON-CAPA-cvs] cvs: loncom /interface lonmenu.pm
wenzelju
wenzelju@source.lon-capa.org
Fri, 13 Aug 2010 13:13:26 -0000
wenzelju Fri Aug 13 13:13:26 2010 EDT
Modified files:
/loncom/interface lonmenu.pm
Log:
Replaced function "Set a bookmark for this resource" by "Set a link for this resource to wishlist"
- only available for users with access to resource-pool and if the requested uri belongs to a resource from resource-pool
Index: loncom/interface/lonmenu.pm
diff -u loncom/interface/lonmenu.pm:1.331 loncom/interface/lonmenu.pm:1.332
--- loncom/interface/lonmenu.pm:1.331 Mon Jun 14 09:16:33 2010
+++ loncom/interface/lonmenu.pm Fri Aug 13 13:13:26 2010
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Routines to control the menu
#
-# $Id: lonmenu.pm,v 1.331 2010/06/14 09:16:33 droeschl Exp $
+# $Id: lonmenu.pm,v 1.332 2010/08/13 13:13:26 wenzelju Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -155,6 +155,7 @@
use Apache::loncommon();
use Apache::lonenc();
use Apache::lonlocal;
+use Apache::lonwishlist();
use LONCAPA qw(:DEFAULT :match);
use HTML::Entities();
@@ -604,8 +605,14 @@
c&8&1
c&8&2
s&8&3&prt.png&prepare[_1]&printout[_1]&gopost('/adm/printout',currentURL)&Prepare a printable document
-s&9&1&sbkm.png&set[_1]&bookmark[_2]&set_bookmark()&Set a bookmark for this resource&&1
ENDMENUITEMS
+ if (&Apache::lonnet::allowed('bre', $env{'request.course.id'}) eq 'F' && $env{'request.uri'} =~ /^\/res/) {
+ # wishlist is only available for users with access to resource-pool
+ # and links can only be set for resources within the resource-pool
+ $menuitems .= (<<ENDMENUITEMS);
+s&9&1&wishlist-link.png&set[_1]&wishlistlink[_2]&set_wishlistlink()&Set a link for this resource to wishlist&&1
+ENDMENUITEMS
+ }
my $currentURL = &Apache::loncommon::get_symb();
my ($symb_old,$symb_old_enc) = &Apache::loncommon::clean_symb($currentURL);
@@ -635,6 +642,12 @@
$menuitems .= (<<ENDMENUITEMS);
s&8&3&prt.png&prepare[_1]&printout[_1]&gopost('/adm/printout',currentURL)&Prepare a printable document
ENDMENUITEMS
+ if (&Apache::lonnet::allowed('bre', $env{'request.course.id'}) eq 'F') {
+ # wishlist is only available for users with access to resource-pool
+ $menuitems .= (<<ENDMENUITEMS);
+s&9&1&wishlist-link.png&set[_1]&wishlistlink[_2]&set_wishlistlink()&Set a link for this resource to wishlist&&1
+ENDMENUITEMS
+ }
}
my $buttons='';
foreach (split(/\n/,$menuitems)) {
@@ -1101,6 +1114,49 @@
my $end_page_bookmark =
&Apache::loncommon::end_page({'js_ready' => 1});
+ 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!');
+
+ # HTML-Markup for 'Set a link for this resource to wishlist'
+ # this is written via JavaScript document.write (function set_wishlistlink)
+ # it is split into 3 parts and the inputfields for title and path are left out
+ # these fields are inserted later to set the values for title and path
+ # automatically via JavaScript (document.title and location.pathname)
+ my $in_page_wishlistlink1 = '<h1>'.&mt('Set a link to wishlist').'</h1>'.
+ '<form method="post" name="newlink" action="/adm/wishlist?mode=set" '.
+ 'onsubmit="return newlinksubmit();" >'.
+ &Apache::lonhtmlcommon::start_pick_box().
+ &Apache::lonhtmlcommon::row_title(&mt('Link Title'));
+
+ my $in_page_wishlistlink2 = &Apache::lonhtmlcommon::row_closure().
+ &Apache::lonhtmlcommon::row_title(&mt('Path'));
+
+ my $in_page_wishlistlink3 = &Apache::lonhtmlcommon::row_closure().
+ &Apache::lonhtmlcommon::row_title(&mt('Note')).
+ '<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="'.&mt('Save in').'" />'.
+ '<select name="folders">'.
+ &Apache::lonwishlist::getfoldersOption().
+ '</select>'.
+ '<input type="button" value="'.&mt('cancel').'" onclick="javascript:window.close();" />'.
+ '</form>';
+
+ # remove all \n for inserting on javascript document.write
+ $in_page_wishlistlink1 =~ s/\n//g;
+ $in_page_wishlistlink2 =~ s/\n//g;
+ $in_page_wishlistlink3 =~ s/\n//g;
+
+ my $end_page_wishlistlink =
+ &Apache::loncommon::end_page({'js_ready' => 1});
+
return (<<ENDUTILITY)
var currentURL="$currenturl";
@@ -1244,6 +1300,35 @@
bmquery.document.close();
}
+function set_wishlistlink(title, path) {
+ if (!title) {
+ title=document.title;
+ }
+ if (!path) {
+ path=location.pathname;
+ }
+ title = title.replace(/^LON-CAPA /,'');
+ wishlistlink=window.open('','wishlistNewLink','width=560,height=350,scrollbars=0');
+ wishlistlink.document.write(
+ '$start_page_wishlistlink'
+ +'<script type="text\/javascript">'
+ +'function newlinksubmit(){'
+ +'var title = document.getElementsByName("title")[0].value;'
+ +'if (!title) {'
+ +'alert("$warningLink");'
+ +'return false;}'
+ +'return true;}'
+ +'<\/scr'+'ipt>'
+ +'$in_page_wishlistlink1'
+ +'<input type="text" name="title" size="45" value="'+title+'"/>'
+ +'$in_page_wishlistlink2'
+ +'<input type="text" name="path" size="45" value="'+path+'" '
+ +'readonly="readonly" style="background-color: #DDDDDD"/>'
+ +'$in_page_wishlistlink3'
+ +'$end_page_wishlistlink' );
+ wishlistlink.document.close();
+}
+
ENDUTILITY
}