--- loncom/interface/lonsyllabus.pm 2009/05/15 13:43:46 1.90
+++ loncom/interface/lonsyllabus.pm 2009/09/20 22:04:57 1.97
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Syllabus
#
-# $Id: lonsyllabus.pm,v 1.90 2009/05/15 13:43:46 amueller Exp $
+# $Id: lonsyllabus.pm,v 1.97 2009/09/20 22:04:57 amueller Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -58,8 +58,8 @@ sub handler {
if ($homeserver eq 'no_host') {
&Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
- &Apache::loncommon::simple_error_page($r,'No syllabus available',
- 'No syllabus available');
+ &Apache::loncommon::simple_error_page($r,'No syllabus available',
+ 'No syllabus available');
return OK;
}
# ------------------------------------- There is such a course, get environment
@@ -68,7 +68,7 @@ sub handler {
# ------------------------------------------------------------ Print the screen
if ($target eq 'tex') {
- $r->print(&Apache::lonprintout::print_latex_header($env{'form.latex_type'}));
+ $r->print(&Apache::lonprintout::print_latex_header($env{'form.latex_type'}));
}
# -------------------------------------------------- Let's see who handles this
my $externalsyllabus=$courseenv{'externalsyllabus'};
@@ -76,10 +76,10 @@ sub handler {
if ($externalsyllabus=~/\w/) {
if ($env{'form.wrapperdisplay'} eq 'menu') {
- $r->print(&Apache::lonwrapper::simple_menu());
+ $r->print(&Apache::lonwrapper::simple_menu());
} else {
- $r->print(&Apache::lonwrapper::wrapper("/public/$cdom/$cnum/syllabus?wrapperdisplay=menu",
- $externalsyllabus));
+ $r->print(&Apache::lonwrapper::wrapper("/public/$cdom/$cnum/syllabus?wrapperdisplay=menu",
+ $externalsyllabus));
}
return OK;
}
@@ -110,7 +110,7 @@ sub handler {
# ----------------------------------------------------------------- Make header
if ($target ne 'tex') {
- my $rss_link = &Apache::lonrss::rss_link($cnum,$cdom);
+ my $rss_link = &Apache::lonrss::rss_link($cnum,$cdom);
my $js;
if ($env{'form.backto'} eq 'coursecatalog') {
$js .= <<"ENDSCRIPT";
@@ -139,14 +139,14 @@ function getIndexByName(item) {
ENDSCRIPT
}
- my $start_page =
- &Apache::loncommon::start_page("Syllabus", $rss_link.$js,
- {'function' => $forcestudent,
- 'domain' => $cdom,
- 'force_register' =>
- $env{'form.register'},});
+ my $start_page =
+ &Apache::loncommon::start_page("Syllabus", $rss_link.$js,
+ {'function' => undef,
+ 'domain' => $cdom,
+ 'force_register' =>
+ $env{'form.register'},});
- $r->print($start_page);
+ $r->print($start_page);
if ($env{'form.backto'} eq 'coursecatalog') {
&Apache::lonhtmlcommon::clear_breadcrumbs();
&Apache::lonhtmlcommon::add_breadcrumb
@@ -162,7 +162,6 @@ ENDSCRIPT
text=>"Course syllabus"});
$r->print(&Apache::lonhtmlcommon::breadcrumbs());
}
-
}
# ---------------------------------------------------------- Load syllabus info
my %syllabus=&Apache::lonnet::dump('syllabus',$cdom,$cnum);
@@ -174,54 +173,54 @@ ENDSCRIPT
if ($env{'user.environment'}) {
# does this user have privileges to post, etc?
if ($env{'request.course.id'}
- && $cdom eq $env{'course.'.$env{'request.course.id'}.'.domain'}
- && $cnum eq $env{'course.'.$env{'request.course.id'}.'.num'}) {
+ && $cdom eq $env{'course.'.$env{'request.course.id'}.'.domain'}
+ && $cnum eq $env{'course.'.$env{'request.course.id'}.'.num'}) {
$allowed=&Apache::lonnet::allowed('mdc',$env{'request.course.id'});
- $privileged=$allowed;
- if (($syllabus{'uploaded.lastmodified'}) && (!$forceedit)) {
- $forcestudent='student';
- }
+ $privileged=$allowed;
+ if (($syllabus{'uploaded.lastmodified'}) && (!$forceedit)) {
+ $forcestudent='student';
+ }
if ($forcestudent or $target eq 'tex') { $allowed=0; }
}
if (($allowed) && ($env{'form.storesyl'})) {
- foreach my $syl_field (keys(%syllabusfields)) {
+ foreach my $syl_field (keys(%syllabusfields)) {
my $field=$env{'form.'.$syl_field};
- chomp($field);
+ chomp($field);
$field=~s/\s+$//s;
- $field=~s/^\s+//s;
- $field=~s/\
$//s;
- $field=&Apache::lonfeedback::clear_out_html($field,1);
- $syllabus{$syl_field}=$field;
+ $field=~s/^\s+//s;
+ $field=~s/\
$//s;
+ $field=&Apache::lonfeedback::clear_out_html($field,1);
+ $syllabus{$syl_field}=$field;
if ($syl_field eq 'lll_includeurl') { # clean up included URLs
my $field='';
- foreach my $value (split(/\n/,$syllabus{$syl_field})) {
- my $url=$value;
+ foreach my $value (split(/\n/,$syllabus{$syl_field})) {
+ my $url=$value;
# get rid of leading and trailing spaces
$url=~s/^\s+//;
$url=~s/\s+$//;
if ($url=~m|^https?\://([^/]+)/(.+)$|) {
- my $host = $1;
+ my $host = $1;
my $remainder=$2;
# remove the hostname from internal URLs
- my $hostname = &Apache::lonnet::hostname($host);
- my %all_hostnames = &Apache::lonnet::all_hostnames();
- foreach my $possible_host (keys(%all_hostnames)) {
+ my $hostname = &Apache::lonnet::hostname($host);
+ my %all_hostnames = &Apache::lonnet::all_hostnames();
+ foreach my $possible_host (keys(%all_hostnames)) {
if ($possible_host =~ /\Q$hostname\E/i) {
- $url=$remainder;
- }
- }
- }
+ $url=$remainder;
+ }
+ }
+ }
# norm internal URLs
unless ($url=~/^https?\:/) {
- $url=&Apache::lonnet::clutter($url);
+ $url=&Apache::lonnet::clutter($url);
}
# re-assemble field
if ($url) {
- $field.=$url."\n";
+ $field.=$url."\n";
}
- }
+ }
$syllabus{$syl_field}=$field;
- }
+ }
}
$syllabus{'uploaded.domain'}=$env{'user.domain'};
$syllabus{'uploaded.name'}=$env{'user.name'};
@@ -230,28 +229,60 @@ ENDSCRIPT
}
}
-#---------------------Print External URL Syllabus Info
+#--------Functions
+ if( ($allowed || $privileged) && $target ne 'tex') {
+ my $functions=&Apache::lonhtmlcommon::start_funclist();
+ if ($allowed) {
+ #if you have the register flag, keep it
+ if($env{'form.register'} == 1) {
+ $functions.=&Apache::lonhtmlcommon::add_item_funclist(
+ ''
+ .&mt('Show Public View').''
+ .&Apache::loncommon::help_open_topic(
+ 'Uploaded_Templates_PublicView'));
+ } else {
+ $functions.=&Apache::lonhtmlcommon::add_item_funclist(
+ ''
+ .&mt('Show Public View').''
+ .&Apache::loncommon::help_open_topic(
+ 'Uploaded_Templates_PublicView'));
+ }
+ } elsif ($privileged) {
+ if($env{'form.register'} == 1) {
+ $functions.=&Apache::lonhtmlcommon::add_item_funclist(
+ ''
+ .&mt('Edit').'');
+ } else {
+ $functions.=&Apache::lonhtmlcommon::add_item_funclist(
+ ''
+ .&mt('Edit').'');
+ }
+ }
+
+ $functions.=&Apache::lonhtmlcommon::end_funclist();
+ $r->print(&Apache::loncommon::head_subbox($functions));
+ }
+
+#---------------------Print External URL Syllabus Info and Help Text
if( ($allowed) && ($target ne 'tex') ) {
- my $protocol = $Apache::lonnet::protocol{$homeserver};
- $protocol = 'http' if ($protocol ne 'https');
+ my $protocol = $Apache::lonnet::protocol{$homeserver};
+ $protocol = 'http' if ($protocol ne 'https');
$r->print('
' .&mt('This syllabus can be publicly viewed at [_1]' ,''.$protocol.'://'.&Apache::lonnet::hostname($homeserver).$r->uri.'') .' '.&Apache::loncommon::help_open_topic('Syllabus_ExtLink') .'
' .'' - .&mt('Instead of using this template you can specify an external URL as Syllabus in the [_1]Course Parameters[_2].' - ,'','') + .&mt('Instead of using this template you can specify an external URL as Syllabus in the [_1]Course Configuration[_2].' + ,'','') .'
' ); + #-Print Help Text + $r->print(&Apache::loncommon::help_open_topic( + 'Uploaded_Templates_TextBoxes', + &mt('Help with filling in text boxes'))); } -#-Print Help Text - if ($target ne 'tex') { - if ($allowed) { - $r->print(&Apache::loncommon::help_open_topic('Uploaded_Templates_TextBoxes',&mt('Help with filling in text boxes'))); - } - } #----------Print last update my $lastmod=$syllabus{'uploaded.lastmodified'}; $lastmod=($lastmod?&Apache::lonlocal::locallocaltime($lastmod):&mt('never')); @@ -260,177 +291,158 @@ ENDSCRIPT $syllabus{'uploaded.domain'}),$syllabus{'uploaded.name'}, $syllabus{'uploaded.domain'}); if ($target ne 'tex') { - $r->print('');} else {$r->print('\par ');} - $r->print(&mt('No syllabus information provided.')); - if ($target ne 'tex') {$r->print('
');} + if ($target ne 'tex') {$r->print('');} else {$r->print('\par ');} + $r->print(&mt('No syllabus information provided.')); + if ($target ne 'tex') {$r->print('
');} } if ($target ne 'tex') { if ($env{'form.backto'} eq 'coursecatalog') { @@ -438,9 +450,9 @@ ENDSCRIPT &Apache::lonhtmlcommon::echo_form_input(['backto','courseid']). ''); } - $r->print(&Apache::loncommon::end_page()); + $r->print(&Apache::loncommon::end_page()); } else { - $r->print('\end{document}'); + $r->print('\end{document}'); } return OK; }