--- loncom/interface/lonsimplepage.pm 2009/12/22 06:32:35 1.91
+++ loncom/interface/lonsimplepage.pm 2013/09/17 15:04:30 1.103
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Simple Page Editor
#
-# $Id: lonsimplepage.pm,v 1.91 2009/12/22 06:32:35 faziophi Exp $
+# $Id: lonsimplepage.pm,v 1.103 2013/09/17 15:04:30 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -33,24 +33,28 @@ use Apache::Constants qw(:common);
use Apache::loncommon;
use Apache::lontemplate;
use Apache::lonnet;
-use Apache::lontexconvert;
-use Apache::lonfeedback;
+use Apache::lonhtmlgateway;
use Apache::lonlocal;
use Apache::lonprintout;
use Apache::lonxml;
use Apache::longroup;
+use Apache::lonnavmaps();
use HTML::Entities();
use LONCAPA;
sub get_db_name {
- my ($url) = @_;
- my ($udom,$uname,$marker)=(split(m{/},$url))[2,3,4];
- my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};
- my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};
-
+ my ($url,$marker,$cdom,$cnum) = @_;
+ my ($udom,$uname,$timemark)=(split(m{/},$url))[2,3,4];
+ if ($marker eq '') {
+ $marker = $timemark;
+ }
+ if (($cdom eq '') || ($cnum eq '')) {
+ $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
+ $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
+ }
my $db_name;
- if ($dom && $crs && ($udom eq $dom) && ($uname eq $crs)) {
+ if ($cdom && $cnum && ($udom eq $cdom) && ($uname eq $cnum)) {
$marker =~ s/\W//g;
$db_name = 'grppage_'.$marker;
} else {
@@ -58,7 +62,6 @@ sub get_db_name {
$db_name = 'smppage_'.$marker;
}
return if (!defined($marker));
-
return $db_name;
}
@@ -83,16 +86,17 @@ sub handler {
return OK;
}
- my $db_name = &get_db_name($r->uri);
+ my $marker = (split(m{/},$r->uri))[4];
+ my $db_name = &get_db_name($r->uri,$marker);
my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};
my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};
- my ($group,$group_desc,$group_home_view,$group_home_edit,
- $group_view_perm,$group_edit_perm);
+ my ($group,$group_desc);
+
my %curr_group = ();
my %groupinfo = ();
if ($db_name =~ /^grppage_/) {
- $group = (split(m{/},$r->uri))[4];
+ $group = $marker;
$group =~ s/\W//g;
my %curr_groups = &Apache::longroup::coursegroups($dom,$crs,$group);
if (!%curr_groups) {
@@ -112,7 +116,7 @@ sub handler {
# --------------------------------------------------------- The syllabus fields
my %syllabusfields=&Apache::lonlocal::texthash(
'aaa_title' => 'Page Title',
- 'bbb_content' => 'Content',
+ 'bbb_content' => ($target eq 'tex'?'':'Content'),
'ccc_webreferences' => 'Web References');
if ($group ne '') {
$syllabusfields{'abb_links'} = &mt('Available Group Tools');
@@ -121,13 +125,14 @@ sub handler {
# ------------------------------------------------------------ Get query string
&Apache::loncommon::get_unprocessed_cgi
- ($ENV{'QUERY_STRING'},['forcestudent','forceedit',
+ ($ENV{'QUERY_STRING'},['forceedit','todocs',
'register','ref']);
# --------------------------------------------------------------- Force Student
- my $forcestudent='';
- if ($env{'form.forcestudent'} || $target eq 'tex' ) { $forcestudent='student'; };
- my $forceedit='';
- if ($env{'form.forceedit'}) { $forceedit='edit'; }
+ my ($forceedit,$forcestudent);
+ $forceedit = $env{'form.forceedit'};
+ if (!$forceedit) {
+ $forcestudent=1;
+ }
my $refarg;
if ($env{'form.ref'}) {
@@ -137,23 +142,16 @@ sub handler {
my %syllabus=&Apache::lonnet::dump($db_name,$dom,$crs);
# --------------------------------------- There is such a user, get environment
-
- if ($target ne 'tex') {
- my $title = 'Simple Course Page';
- if ($group ne '') {
- $title = 'Simple Group Page';
+ my ($registered,$group_view_perm,$group_edit_perm,$group_home_view,
+ $group_home_edit,$has_group_access);
+ my $brcrum = [];
+ if ($group eq '') {
+ $registered = $env{'form.register'};
+ } else {
+ unless ($env{'form.ref'} eq 'grouplist') {
+ $registered = $env{'form.register'};
}
- my $start_page =
- &Apache::loncommon::start_page($title,undef,
- {'function' => $forcestudent,
- 'domain' => $dom,
- 'force_register' =>
- $env{'form.register'},});
- $r->print($start_page);
- }
-
- if ($group ne '') {
- my $group_view_perm =
+ $group_view_perm =
&Apache::lonnet::allowed('vcg',$env{'request.course.id'}.
($env{'request.course.sec'}?'/'.$env{'request.course.sec'}:''));
$group_edit_perm =
@@ -165,9 +163,28 @@ sub handler {
$env{'request.course.id'}.'/'.$group);
if ($group_view_perm || $group_edit_perm || $group_home_view ||
$group_home_edit || &Apache::longroup::check_group_access($group)) {
- if (($env{'form.ref'} eq 'grouplist') && ($target ne 'tex')) {
- $r->print(&grouppage_breadcrumbs($dom,$crs,$group,$group_desc));
+ $has_group_access = 1;
+ if (($env{'form.ref'} eq 'grouplist') && ($target ne 'tex') &&
+ (!$registered)) {
+ $brcrum = &grouppage_breadcrumbs($dom,$crs,$group,$group_desc);
}
+ }
+ }
+
+ if ($target ne 'tex') {
+ my $title = ($group eq '')? 'Simple Course Page':'Simple Group Page';
+ my $start_page =
+ &Apache::loncommon::start_page($title,undef,
+ {'domain' => $dom,
+ 'group' => $group,
+ 'bread_crumbs' => $brcrum,
+ 'force_register' => $registered,
+ });
+ $r->print($start_page);
+ }
+
+ if ($group ne '') {
+ if ($has_group_access) {
if ((!$group_home_edit) && (!$group_home_view) &&
(!$group_view_perm) && (!$group_edit_perm)) {
&display_group_links($r,$target,$group,'view',$refarg,%groupinfo);
@@ -208,10 +225,6 @@ sub handler {
} else {
$allowed=&Apache::lonnet::allowed('mdc',$env{'request.course.id'});
}
- my $privileged=$allowed;
- if (($syllabus{'uploaded.lastmodified'}) && (!$forceedit)) {
- $forcestudent='student';
- }
if ($forcestudent or $target eq 'tex') { $allowed=0; }
@@ -223,10 +236,12 @@ sub handler {
}
if ($group ne '') {
$syllabus{'uploaded.photourl'}=&Apache::lonnet::userfileupload(
- 'uploaddoc',1,"grouppage/$group");
+ 'uploaddoc','coursedoc',
+ "grouppage/$group");
} else {
$syllabus{'uploaded.photourl'}=
- &Apache::lonnet::userfileupload('uploaddoc',1,'simplepage');
+ &Apache::lonnet::userfileupload('uploaddoc','coursedoc',
+ "simplepage/$marker");
}
}
$syllabus{'uploaded.lastmodified'}=time;
@@ -243,51 +258,14 @@ sub handler {
foreach my $syl_field (keys(%syllabusfields)) {
my $field=$env{'form.'.$syl_field};
chomp($field);
- $field=~s/\s+$//s;
- $field=~s/^\s+//s;
- $field=~s/\
$//s;
- $field=&Apache::lonfeedback::clear_out_html($field,1);
+ my $gateway = Apache::lonhtmlgateway->new();
+ $field = $gateway->process_incoming_html($field,1);
$syllabus{$syl_field}=$field;
}
$syllabus{'uploaded.lastmodified'}=time;
&Apache::lonnet::put($db_name,\%syllabus,$dom,$crs);
}
-#---Print Function
- if ($target ne 'tex') {
- if ($allowed || $privileged) {
- my $functions=&Apache::lonhtmlcommon::start_funclist();
- if ($allowed) {
- $functions.=&Apache::lonhtmlcommon::add_item_funclist(
- ''
- .&mt('Show Student View').''
- .&Apache::loncommon::help_open_topic(
- 'Uploaded_Templates_PublicView'));
- } elsif ($privileged) {
- my $edittext = &mt('Edit');
- if ($group ne '') {
- $edittext = &mt('Edit Group Homepage');
- }
- $functions.=&Apache::lonhtmlcommon::add_item_funclist(
- ''
- .$edittext.'');
- if ($group ne '') {
- if ($group_edit_perm) {
- $functions.=&Apache::lonhtmlcommon::add_item_funclist(
- ''
- .&mt('Edit Group Settings')
- .'');
- }
- }
- }
- $functions.=&Apache::lonhtmlcommon::end_funclist();
- $r->print(&Apache::loncommon::head_subbox($functions));
- }
- }
-
#---Print help Text
if($target ne 'tex'){
if ($allowed) {
@@ -312,7 +290,8 @@ sub handler {
if ($allowed) {
if ($env{'form.grade_target'} ne 'tex') {
#editbox for title
- $r->print('