--- loncom/interface/lonbulletin.pm 2003/09/09 19:39:04 1.12
+++ loncom/interface/lonbulletin.pm 2004/07/28 18:53:38 1.26
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Bulletin Board Handler
#
-# $Id: lonbulletin.pm,v 1.12 2003/09/09 19:39:04 www Exp $
+# $Id: lonbulletin.pm,v 1.26 2004/07/28 18:53:38 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -33,21 +33,26 @@ use Apache::Constants qw(:common);
use Apache::loncommon;
use Apache::lonnet;
use Apache::lontexconvert;
-use Apache::lonxml;
use Apache::lonfeedback;
+use Apache::lonlocal;
sub handler {
my $r = shift;
- $r->content_type('text/html');
+ &Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
return OK if $r->header_only;
+ my $target=$ENV{'form.grade_target'};
# ------------------------------------------------------------ Print the screen
- $r->print(<print(<
The LearningOnline Network with CAPA
ENDDOCUMENT
+} else {
+ $r->print(&Apache::lonprintout::print_latex_header($ENV{'form.latex_type'}));
+ }
my (undef,undef,undef,undef,$marker)=split(/\//,$r->uri);
# Is this even in a course?
unless ($ENV{'request.course.id'}) {
@@ -66,48 +71,68 @@ ENDDOCUMENT
my $crs = $ENV{'course.'.$ENV{'request.course.id'}.'.num'};
# --------------------------------------------------------- The syllabus fields
- my %syllabusfields=(
+ my %syllabusfields=&Apache::lonlocal::texthash(
'aaa_title' => 'Topic',
'bbb_content' => 'Task',
'ccc_webreferences' => 'Web References');
# ------------------------------------------------------------ Get Query String
&Apache::loncommon::get_unprocessed_cgi
- ($ENV{'QUERY_STRING'},['forcestudent','register']);
+ ($ENV{'QUERY_STRING'},['forcestudent','forceedit','register','origpage']);
# ----------------------------------------------------- Force menu registration
my $addentries='';
if ($ENV{'form.register'}) {
- $addentries=' onLoad="'.&Apache::lonmenu::loadevents().
- '" onUnload="'.&Apache::lonmenu::unloadevents().'"';
+ $addentries=' onLoad="'.&Apache::lonmenu::loadevents();
+ if ($ENV{'form.origpage'}) {
+ $addentries .= "document.location='#newpost';";
+ }
+ $addentries .= '" onUnload="'.&Apache::lonmenu::unloadevents().'"';
$r->print(&Apache::lonmenu::registerurl(1));
+ } elsif ($ENV{'form.origpage'}) {
+ $addentries = "onLoad=\"document.location='#newpost';\"";
}
# --------------------------------------------------------------- Force Student
my $forcestudent='';
- if ($ENV{'form.forcestudent'}) { $forcestudent='student'; };
+ if ($ENV{'form.forcestudent'}) { $forcestudent='student'; }
+
+ my $forceedit='';
+ if ($ENV{'form.forceedit'}) { $forceedit='edit'; }
my %syllabus=&Apache::lonnet::dump('bulletinpage_'.$marker,$dom,$crs);
# --------------------------------------- There is such a user, get environment
-
- $r->print(''.&Apache::loncommon::bodytag
- ("Bulletin Board/Discussion",$forcestudent,$addentries,'',$dom,
- $ENV{'form.register'}));
-
+ if ($target ne 'tex') {
+ $r->print(''.&Apache::loncommon::bodytag
+ ("Bulletin Board/Discussion",$forcestudent,$addentries,'',$dom,
+ $ENV{'form.register'}));
+ }
my $allowed=&Apache::lonnet::allowed('mdc',$ENV{'request.course.id'});
- if ($forcestudent) { $allowed=0; }
+ my $privileged=$allowed;
+ if (($syllabus{'uploaded.lastmodified'}) && (!$forceedit)) {
+ $forcestudent='student';
+ }
+
+ if ($forcestudent or $target eq 'tex') { $allowed=0; }
- if ($allowed) {
+ if ($allowed) {
$r->print(
''.
-&Apache::loncommon::help_open_topic('Uploaded_Templates_TextBoxes','Help with filling in text boxes').'
Show Student View'.
+&Apache::loncommon::help_open_topic('Uploaded_Templates_TextBoxes','Help with filling in text boxes').'
'.&mt('Show Student View').''.
&Apache::loncommon::help_open_topic('Uploaded_Templates_PublicView').'
');
- }
+ } elsif ($privileged and $target ne 'tex') {
+ $r->print(''
+ .&mt('Edit').'');
+ }
+
if (($ENV{'form.uploaddoc.filename'}) &&
($ENV{'form.storeupl'}) && ($allowed)) {
if ($ENV{'form.uploaddoc.filename'}=~/\.(gif|jpg|png|jpeg)$/i) {
- $syllabus{'uploaded.photourl'}=
- &Apache::lonnet::userfileupload('uploaddoc',1);
+ if ($syllabus{'uploaded.photourl'}) {
+ &Apache::lonnet::removeuploadedurl($syllabus{'uploaded.photourl'});
+ }
+ $syllabus{'uploaded.photourl'}=
+ &Apache::lonnet::userfileupload('uploaddoc',1,'bulletin');
}
$syllabus{'uploaded.lastmodified'}=time;
&Apache::lonnet::put('bulletinpage_'.$marker,\%syllabus,$dom,$crs);
@@ -126,16 +151,18 @@ ENDDOCUMENT
# ---------------------------------------------------------------- Get syllabus
if (($syllabus{'uploaded.lastmodified'}) || ($allowed)) {
if ($syllabus{'uploaded.photourl'}) {
- $r->print('
');
+ &Apache::lonnet::allowuploaded('/adm/syllabus',
+ $syllabus{'uploaded.photourl'});
+ $r->print('
');
}
if ($allowed) {
$r->print(
'');
}
- $r->print('
');
+ if ($target ne 'tex') {$r->print('');} else {$r->print('\\\\');}
+ } else {
+ $r->print(''.&mt('No page information provided.').'
');
+ }
+ if ($target ne 'tex') {
+ $r->print(&Apache::lonfeedback::list_discussion
+ ('board','OPEN','bulletin___'.$marker.'___'.
+ $r->uri));
} else {
- $r->print('No page information provided.
');
+ $r->print('\\\\'.&Apache::lonxml::xmlparse($r,'tex',&Apache::lonfeedback::list_discussion
+ ('board','OPEN','bulletin___'.$marker.'___'.
+ $r->uri)));
}
- $r->print(&Apache::lonxml::xmlend(1,'bulletin___'.$marker.'___'.
- 'adm/wrapper'.$r->uri).'