--- loncom/interface/londocs.pm 2010/12/07 17:33:36 1.443
+++ loncom/interface/londocs.pm 2011/01/30 01:21:29 1.452
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Documents
#
-# $Id: londocs.pm,v 1.443 2010/12/07 17:33:36 www Exp $
+# $Id: londocs.pm,v 1.452 2011/01/30 01:21:29 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1150,6 +1150,7 @@ sub docs_change_log {
&Apache::loncommon::restore_course_settings('docs_log',
\%saveable_parameters);
if (!$env{'form.show'}) { $env{'form.show'}=10; }
+# FIXME: internationalization seems wrong here
my %lt=('hiddenresource' => 'Resources hidden',
'encrypturl' => 'URL hidden',
'randompick' => 'Randomly pick',
@@ -1238,6 +1239,7 @@ sub docs_change_log {
$r->print(&LONCAPA::map::qtescape((split(/\:/,$docslog{$id}{'logentry'}{'parameter_res'}))[0]).':
');
$r->print(''
.'
');
@@ -2678,6 +2668,10 @@ sub endContentScreen {
$r->print('
');
}
+sub supplemental_base {
+ return 'supplemental&'.&escape(&mt('Supplemental '.&Apache::loncommon::course_type().' Documents'));
+}
+
sub handler {
my $r = shift;
&Apache::loncommon::content_type($r,'text/html');
@@ -2730,45 +2724,83 @@ sub handler {
&init_breadcrumbs('exportcourse','IMS Export');
&exportcourse($r);
} else {
-# is this a standard course?
+#
+# Done catching special calls
+# The whole rest is for course and supplemental documents
+# Get the parameters that may be needed
+#
+ &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
+ ['folderpath','pagepath',
+ 'pagesymb','forcesupplement','forcestandard']);
+
+# standard=1: this is a "new-style" course with an uploaded map as top level
+# standard=2: this is a "old-style" course, and there is nothing we can do
my $standard=($env{'request.course.uri'}=~/^\/uploaded\//);
- my $forcestandard = 0;
- my $forcesupplement;
+
+# Decide whether this should display supplemental or main content
+# supplementalflag=1: show supplemental documents
+# supplementalflag=0: show standard documents
+
+
+ my $supplementalflag=($env{'form.folderpath'}=~/^supplemental/);
+ if (($env{'form.folderpath'}=~/^default/) || $env{'form.folderpath'} eq "" || ($env{'form.pagepath'})) {
+ $supplementalflag=0;
+ }
+ if ($env{'form.forcesupplement'}) { $supplementalflag=1; }
+ if ($env{'form.forcestandard'}) { $supplementalflag=0; }
+ unless ($allowed) { $supplementalflag=1; }
+ unless ($standard) { $supplementalflag=1; }
+
my $script='';
my $showdoc=0;
my $containertag;
my $uploadtag;
-
- &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
- ['folderpath','pagepath',
- 'pagesymb','forcesupplement','forcestandard']);
+# Where do we store these for when we come back?
+ my $stored_folderpath='docs_folderpath';
+ if ($supplementalflag) {
+ $stored_folderpath='docs_sup_folderpath';
+ }
+
# No folderpath, no pagepath, see if we have something stored
if ((!$env{'form.folderpath'}) && (!$env{'form.pagepath'})) {
- &Apache::loncommon::restore_course_settings('docs_folderpath',
+ &Apache::loncommon::restore_course_settings($stored_folderpath,
{'folderpath' => 'scalar'});
}
+
+# If we are not allowed to make changes, all we can see are supplemental docs
if (!$allowed) {
- unless($env{'form.folderpath'} =~ /^supplemental/) {
- $env{'form.folderpath'} = '';
+ $env{'form.pagepath'}='';
+ unless ($env{'form.folderpath'} =~ /^supplemental/) {
+ $env{'form.folderpath'} = &supplemental_base();
}
}
+# If we still not have a folderpath, see if we can resurrect at pagepath
if (!$env{'form.folderpath'} && $allowed) {
- &Apache::loncommon::restore_course_settings('docs_folderpath',
+ &Apache::loncommon::restore_course_settings($stored_folderpath,
{'pagepath' => 'scalar'});
}
- if ($env{'form.pagepath'}) {
- $env{'form.folderpath'}='';
- }
+# Make the zeroth entry in supplemental docs page paths, so we can get to top level
if ($env{'form.folderpath'} =~ /^supplemental_\d+/) {
- $env{'form.folderpath'} = 'supplemental&'.
- &escape(&mt('Supplemental '.$crstype.' Documents')).'&'.
+ $env{'form.folderpath'} = &supplemental_base()
+ .'&'.
$env{'form.folderpath'};
}
- &Apache::loncommon::store_course_settings('docs_folderpath',
+# If after all of this, we still don't have any paths, make them
+ unless (($env{'form.pagepath'}) || ($env{'form.folderpath'})) {
+ if ($supplementalflag) {
+ $env{'form.folderpath'}=&supplemental_base();
+ } else {
+ $env{'form.folderpath'}='default';
+ }
+ }
+
+# Store this
+ &Apache::loncommon::store_course_settings($stored_folderpath,
{'pagepath' => 'scalar',
'folderpath' => 'scalar'});
+
if ($env{'form.folderpath'}) {
my (@folderpath)=split('&',$env{'form.folderpath'});
$env{'form.foldername'}=&unescape(pop(@folderpath));
@@ -2802,12 +2834,6 @@ sub handler {
if ($showdoc) { # got called in sequence from course
$allowed=0;
} else {
- if (($env{'form.folder'}=~/^(?:group|default)_/) ||
- ($env{'form.folder'} =~ m:^\d+/(pages|sequences)/:)) {
- $forcestandard = 1;
- }
- $forcesupplement=($env{'form.folder'}=~/^supplemental_/);
-
if ($allowed) {
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['cmd']);
$script=&Apache::lonratedt::editscript('simple');
@@ -2839,29 +2865,20 @@ sub handler {
# Breadcrumbs
&Apache::lonhtmlcommon::clear_breadcrumbs();
- if ($allowed) {
+ unless ($showdoc) {
&Apache::lonhtmlcommon::add_breadcrumb({
- href=>"/adm/coursedocs",text=>"$crstype Editor"});
+ href=>"/adm/coursedocs",text=>"$crstype Contents"});
- $r->print(&Apache::loncommon::start_page("$crstype Editor", $script,
+ $r->print(&Apache::loncommon::start_page("$crstype Contents", $script,
{'force_register' => $showdoc,})
.&Apache::loncommon::help_open_menu('','',273,'RAT')
.&Apache::lonhtmlcommon::breadcrumbs(
'Editing the Table of Contents for your '.$crstype,
'Docs_Adding_Course_Doc')
);
- } elsif ($showdoc) {
+ } else {
$r->print(&Apache::loncommon::start_page("$crstype documents",undef,
{'force_register' => $showdoc,}));
- } else {
- my $folder=$env{'form.folder'};
- if ($folder eq '' || $folder eq 'supplemental') {
- $env{'form.folderpath'} = 'supplemental&'.
- &escape(&mt('Supplemental '.$crstype.' Documents'));
- }
- my ($breadcrumbtrail) = &breadcrumbs($allowed,$crstype);
- $r->print(&Apache::loncommon::start_page("Supplemental documents").
- $breadcrumbtrail);
}
my %allfiles = ();
@@ -2930,7 +2947,7 @@ sub handler {
'sipa' => 'Simple Course Page',
'sipr' => 'Simple Problem',
'drbx' => 'Drop Box',
- 'scuf' => 'Score Upload Form',
+ 'scuf' => 'External Scores (handgrade, upload, clicker)',
'bull' => 'Discussion Board',
'mypi' => 'My Personal Information Page',
'grpo' => 'Group Portfolio',
@@ -2977,8 +2994,6 @@ CHBO
$checkbox
FUFORM
- #$list .= Apache::lonhtmlcommon::htmltag('li', $picture.' '.$button->{$picture}, {class => 'LC_menubuttons_inline_text'});
- #$fileuploadform .= create_form_ul(create_list_elements(@fileuploada));
$fileuploadform .= &create_form_ul(&Apache::lonhtmlcommon::htmltag('li',$fileuploada,{class => 'LC_menubuttons_inline_text'})).'';
my $simpleeditdefaultform=(<&"');
+ my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"');
my $newpageform=(<
@@ -3247,35 +3253,35 @@ NGFFORM
@specialdocumentsforma=(
{'
'=>$newpageform},
{'
'=>$newsylform},
- {'
'=>$newgroupfileform},
- );
+ {'
'=>$newnavform},
+ {'
'=>$newsmppageform},
+ );
+ $specialdocumentsform = &create_form_ul(&create_list_elements(@specialdocumentsforma));
+
my @importdoc = (
{'
'=>$extresourcesform},
{'
'=>$imspform},);
$fileuploadform = &create_form_ul(&create_list_elements(@importdoc)) . '
' . $fileuploadform;
- push @specialdocumentsforma, ({'
'=>$newnavform},
- {'
'=>$newsmppageform},
- {'
'=>$newsmpproblemform},
- {'
'=>$newdropboxform},
- {'
'=>$newexuploadform},
- {'
'=>$newbulform},
- {'
'=>$newaboutmeform},
- {'
'=>$newaboutsomeoneform},
- {'
'=>$newrosterform},);
+ @gradingforma=(
+ {'
'=>$newsmpproblemform},
+ {'
'=>$newdropboxform},
+ {'
'=>$newexuploadform},
+
+ );
+ $gradingform = &create_form_ul(&create_list_elements(@gradingforma));
+
+ @communityforma=(
+ {'
'=>$newbulform},
+ {'
'=>$newaboutmeform},
+ {'
'=>$newaboutsomeoneform},
+ {'
'=>$newrosterform},
+ {'
'=>$newgroupfileform},
+ );
+ $communityform = &create_form_ul(&create_list_elements(@communityforma));
- $specialdocumentsform = &create_form_ul(&create_list_elements(@specialdocumentsforma));
- }
-if($env{'form.pagepath'}) {
-
- @specialdocumentsforma=(
- {'
'=>$newsmpproblemform},
- {'
'=>$newexuploadform}
- );
- $specialdocumentsform= &create_form_ul(&create_list_elements(@specialdocumentsforma));
-}
my @tools = (
# {'
'=>$extresourcesform},
@@ -3286,11 +3292,13 @@ my @tools = (
my %orderhash = (
'aa' => ['Import Documents',$fileuploadform],
'bb' => ['Published Resources',$simpleeditdefaultform],
- 'cc' => ['Special Documents',$specialdocumentsform],
- 'dd' => ['Tools', &create_form_ul(&create_list_elements(@tools)).&generate_admin_options(\%help,\%env)],
+ 'cc' => ['Grading Resources',$gradingform],
+ 'ff' => ['Tools', &create_form_ul(&create_list_elements(@tools)).&generate_admin_options(\%help,\%env)],
);
-unless($env{'form.pagepath'}) {
+unless ($env{'form.pagepath'}) {
$orderhash{'00'} = ['Newfolder',$newfolderform];
+ $orderhash{'dd'} = ['Community Resources',$communityform];
+ $orderhash{'ee'} = ['Special Documents',$specialdocumentsform];
}
$hadchanges=0;
@@ -3317,8 +3325,7 @@ unless($env{'form.pagepath'}) {
}
if ($folder =~ /^supplemental$/ &&
(($env{'form.folderpath'} =~ /^default\&/) || ($env{'form.folderpath'} eq ''))) {
- $env{'form.folderpath'} = 'supplemental&'.
- &escape(&mt('Supplemental '.$crstype.' Documents'));
+ $env{'form.folderpath'} = &supplemental_base();
} elsif ($allowed) {
$env{'form.folderpath'} = $savefolderpath;
}
@@ -3572,7 +3579,7 @@ sub editing_js {
t_mnf => 'New Folder',
p_mnp => 'Name of New Page',
t_mnp => 'New Page',
- p_mxu => 'Title for the Uploaded Score',
+ p_mxu => 'Title for the External Score',
p_msp => 'Name of Simple Course Page',
p_msb => 'Title for the Problem',
p_mdb => 'Title for the Drop Box',
@@ -3601,7 +3608,7 @@ sub editing_js {
}
}
my $toplevelmain = 'default&Main%20'.$crstype.'%20Documents';
- my $toplevelsupp = 'supplemental&Supplemental%20'.$crstype.'%20Documents';
+ my $toplevelsupp = &supplemental_base();
return <