[LON-CAPA-cvs] cvs: loncom /auth lonacc.pm /interface lonsyllabus.pm
raeburn
raeburn at source.lon-capa.org
Fri May 10 13:49:17 EDT 2013
raeburn Fri May 10 17:49:17 2013 EDT
Modified files:
/loncom/interface lonsyllabus.pm
/loncom/auth lonacc.pm
Log:
- Bug 5962.
Additional syllabus option - minimal template (provides a "blank" HTML
file (portfolio/syllabus/loncapa.html) which can be edited using the
WYSIWYG editor.
- Edit button for uploaded syllabus file (html) and minimal template
provides direct access to WYSIWYG editing screen.
-------------- next part --------------
Index: loncom/interface/lonsyllabus.pm
diff -u loncom/interface/lonsyllabus.pm:1.121 loncom/interface/lonsyllabus.pm:1.122
--- loncom/interface/lonsyllabus.pm:1.121 Thu May 9 05:43:30 2013
+++ loncom/interface/lonsyllabus.pm Fri May 10 17:49:11 2013
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Syllabus
#
-# $Id: lonsyllabus.pm,v 1.121 2013/05/09 05:43:30 raeburn Exp $
+# $Id: lonsyllabus.pm,v 1.122 2013/05/10 17:49:11 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -100,13 +100,23 @@
# -------------------------------------------------- Let's see who handles this
my $external=$courseenv{'externalsyllabus'};
my $uploaded=$courseenv{'uploadedsyllabus'};
+ my $minimal=$courseenv{'minimalsyllabus'};
- if ($uploaded =~/\w/) {
- if ($external =~ m{\Q$uploaded\E$}) {
- undef($external);
+ if (($minimal =~/\w/) || ($uploaded =~/\w/)) {
+ my $item;
+ if ($minimal =~/\w/) {
+ if ($external =~ m{\Q$minimal\E$}) {
+ undef($external);
+ }
+ $item = $minimal;
+ } elsif ($uploaded =~/\w/) {
+ if ($external =~ m{\Q$uploaded\E$}) {
+ undef($external);
+ }
+ $item = $uploaded;
}
unless ($allowed && $forceedit) {
- my $file=&Apache::lonnet::filelocation("",$uploaded);
+ my $file=&Apache::lonnet::filelocation("",$item);
if ($file =~ /\.(sty|css|js|txt|tex|html?)$/) {
my $filetype;
if ($file =~ /\.(sty|css|js|txt|tex)$/) {
@@ -122,7 +132,7 @@
my %mystyle;
&Apache::structuretags::reset_problem_globals();
my $oldfile = $env{'request.filename'};
- $env{'request.filename'} = $uploaded;
+ $env{'request.filename'} = $item;
$result = &Apache::lonxml::xmlparse($r,'web',$filecontents,
'',%mystyle);
&Apache::structuretags::reset_problem_globals();
@@ -132,7 +142,7 @@
$r->print($result);
}
} else {
- $r->print(&Apache::lonwrapper::wrapper($uploaded));
+ $r->print(&Apache::lonwrapper::wrapper($item));
}
return OK;
}
@@ -170,17 +180,25 @@
# This handler might be called anonymously ...
# ----------------------------------------------------- Only if not public call
if ($allowed) {
- if (($env{'form.choice'} =~ /^(template|url|file)$/) ||
+ if (($env{'form.choice'} =~ /^(template|minimal|url|file)$/) ||
($env{'form.phase'} =~ /^(upload|check)_embedded$/)) {
my $earlyout;
- ($earlyout,$uploaded,$external,$output) =
- &save_changes($cnum,$cdom,$uploaded,$external,\%syllabus,
- \%syllabusfields,\%courseenv);
+ ($earlyout,$uploaded,$external,$minimal,$output) =
+ &save_changes($cnum,$cdom,$uploaded,$external,$minimal,
+ \%syllabus,\%syllabusfields,\%courseenv);
+ if (($env{'form.choice'} eq 'minimal') &&
+ ($minimal eq "/uploaded/$cdom/$cnum/portfolio/syllabus/loncapa.html")) {
+ delete($env{'form.symb'});
+ delete($env{'request.symb'});
+ $r->internal_redirect("$minimal?editmode=1&forceedit=1");
+ return OK;
+ }
if ($earlyout) {
if ($target ne 'tex') {
&print_header($r,$cnum,$cdom,$crstype,$allowed,$forceedit,
\%syllabus,\%syllabusfields);
- $r->print($output);
+ $r->print($output.
+ &Apache::loncommon::end_page());
}
return OK;
}
@@ -237,8 +255,8 @@
.'</span>'
.'</div><div style="padding:0;clear:both;margin:0;border:0"></div>'."\n");
my $lonhost = $r->dir_config('lonHostID');
- $r->print(&chooser($external,$uploaded,$cdom,$cnum,$lonhost,\%syllabusfields,
- \%syllabus));
+ $r->print(&chooser($external,$uploaded,$minimal,$cdom,$cnum,$lonhost,
+ \%syllabusfields,\%syllabus));
}
} else {
#--------------------------------------------- Print last update unless editing
@@ -277,7 +295,7 @@
#-------------------------------------------------------------- Print Headtitle
if ($target ne 'tex') {
my $display = 'block';
- if ($external || $uploaded) {
+ if ($external || $uploaded || $minimal) {
$display = 'none';
}
$r->print('<div class="LC_Box" id="template" style="display: '.$display.'">'.
@@ -536,7 +554,7 @@
// <![CDATA[
function toggleEditor(pick) {
- var choices = new Array('template','url','file','templatebox');
+ var choices = new Array('template','minimal','url','file','templatebox');
for (var i=0; i<choices.length; i++) {
if (((choices[i] == 'templatebox') && (pick == 'template')) ||
(choices[i] == pick)) {
@@ -675,33 +693,39 @@
}
my $start_page =
&Apache::loncommon::start_page("Syllabus", $rss_link.$js,$args);
- $r->print($start_page);
+ if ($start_page) {
+ $r->print($start_page);
+ }
}
sub chooser {
- my ($external,$uploaded,$cdom,$cnum,$lonhost,$fields,$values) = @_;
+ my ($external,$uploaded,$minimal,$cdom,$cnum,$lonhost,$fields,$values) = @_;
my %lt = &Apache::lonlocal::texthash(
'type' => 'Syllabus Type',
'url' => 'External URL',
- 'file' => 'Uploaded File',
- 'template' => 'Syllabus Template',
+ 'file' => 'Uploaded file',
+ 'minimal' => 'Minimal template',
+ 'template' => 'Standard template',
'templateboxes' => 'Choose template items ... ',
'curr' => 'Current:',
'rep' => 'Replace:',
'upl' => 'Upload:',
'pr' => 'Preview',
'save' => 'Save',
- 'chourl' => 'Choose external URL',
+ 'sved' => 'Save and Edit',
+ 'chourl' => 'External URL',
'chofile' => 'Uploaded syllabus file',
'parse' => 'Upload embedded images/multimedia files if HTML file',
);
my %checked = (
file => '',
+ minimal => '',
url => '',
template => '',
);
my %display = (
file => 'none',
+ minimal => 'none',
url => 'none',
templatebox => 'none',
);
@@ -712,6 +736,9 @@
} elsif ($external) {
$checked{'url'} = $check;
$display{'url'} = 'block';
+ } elsif ($minimal) {
+ $checked{'minimal'} = $check;
+ $display{'minimal'} = 'block';
} else {
$checked{'template'} = $check;
$checked{'templatebox'} = $check;
@@ -722,7 +749,7 @@
'<form name="syllabus" method="post" enctype="multipart/form-data" action="">'."\n".
'<input type="hidden" name="forceedit" value="1" />'."\n".
'<div class="LC_left_float"><fieldset><legend>'.$lt{'type'}.'</legend>';
- foreach my $item ('template','url','file') {
+ foreach my $item ('minimal','template','url','file') {
$output .= '<label><input type="radio" name="choice" value="'.$item.'" '.$checked{$item}.' onclick="toggleEditor('."'$item'".')" />'.
$lt{$item}.'</label><br />';
}
@@ -733,38 +760,23 @@
'<input type="text" id="syllabusurl" name="externalsyllabus" value="'.$external.'" size="55" />'."\n".
' <input type="submit" name="storeurl" value="'.$lt{'save'}.'" />'."\n".
'</fieldset></div>'."\n".
- '<div id="file" class="LC_left_float" style="display: '.$display{'file'}.'"><fieldset><legend>'.$lt{'file'}.'</legend>';
+ '<div id="minimal" class="LC_left_float" style="display: '.$display{'minimal'}.'">'."\n".
+ '<fieldset><legend>'.$lt{'minimal'}.'</legend>';
+ if ($minimal) {
+ my ($absurl,$filename,$depbutton) = &syllabus_file_info($minimal,$cnum,$cdom,$lonhost,'minimal');
+ $output .= '<a href="javascript:extUrlPreview('."'currminimal'".');">'.$lt{'pr'}.'</a>'.
+ '<input type="hidden" name="minimalfile" value="'.&HTML::Entities::encode($absurl).'?inhibitmenu=yes" id="currminimal" />'.
+ $depbutton;
+ } else {
+ $output .= &mt('Title of Syllabus Page:').' '.
+ '<input type="text" id="minimaltitle" name="syllabustitle" value="'.&mt('Syllabus').'" size="30" />'."\n".
+ ' <input type="submit" name="storeminimal" value="'.$lt{'sved'}.'" />'."\n";
+ }
+ $output .= '</fieldset></div>'."\n".
+ '<div id="file" class="LC_left_float" style="display: '.$display{'file'}.'">'."\n".
+ '<fieldset><legend>'.$lt{'file'}.'</legend>';
if ($uploaded) {
- my $protocol = $Apache::lonnet::protocol{$lonhost};
- $protocol = 'http' if ($protocol ne 'https');
- my $absurl = $protocol.'://'.&Apache::lonnet::hostname($lonhost).$uploaded;
- my ($filename) = ($uploaded =~ m{([^/]+)$});
- my $file=&Apache::lonnet::filelocation("",$uploaded);
- my $depbutton;
- if ($file =~ /\.html?$/) {
- my $filecontents=&Apache::lonnet::getfile($file);
- unless ($filecontents eq -1) {
- my $mm = new File::MMagic;
- my $mimetype = $mm->checktype_contents($filecontents);
- if ($mimetype eq 'text/html') {
- my (%codebase,%allfiles);
- my $parse_result = &Apache::lonnet::extract_embedded_items($uploaded,\%allfiles,
- \%codebase,\$filecontents);
- my $actionurl = "/public/$cdom/$cnum/syllabus";
- my ($ignore,$num,$numpathchanges,$existing,$mapping) =
- &Apache::loncommon::ask_for_embedded_content($actionurl,undef,\%allfiles,
- \%codebase,
- {'context' => 'rewrites',
- 'ignore_remote_references' => 1,});
- if (keys(%allfiles)) {
- $depbutton = (' ' x 3).
- &editfile_button().
- &editbutton_js($uploaded);
- }
- }
- }
- }
-
+ my ($absurl,$filename,$depbutton) = &syllabus_file_info($uploaded,$cnum,$cdom,$lonhost,'file');
$output .= '<span class="LC_nobreak">'.$lt{'curr'}.' '.
'<input type="hidden" name="uploadedfile" value="'.&HTML::Entities::encode($absurl).'?inhibitmenu=yes" id="currfile" />'.
'<a href="javascript:extUrlPreview('."'currfile'".');">'.$filename.'</a></span>'.$depbutton.
@@ -772,7 +784,6 @@
} else {
$output .= $lt{'upl'};
}
-
$output .= '<br />'."\n".
'<span class="LC_nobreak">'.
'<input type="file" name="syllabusfile" size="55" />'."\n".
@@ -799,6 +810,38 @@
return $output;
}
+sub syllabus_file_info {
+ my ($item,$cnum,$cdom,$lonhost,$context) = @_;
+ my $protocol = $Apache::lonnet::protocol{$lonhost};
+ $protocol = 'http' if ($protocol ne 'https');
+ my $absurl = $protocol.'://'.&Apache::lonnet::hostname($lonhost).$item;
+ my ($filename) = ($item =~ m{([^/]+)$});
+ my $file=&Apache::lonnet::filelocation("",$item);
+ my $depbutton;
+ if ($file =~ /\.html?$/) {
+ my $filecontents=&Apache::lonnet::getfile($file);
+ unless ($filecontents eq -1) {
+ my $mm = new File::MMagic;
+ my $mimetype = $mm->checktype_contents($filecontents);
+ if ($mimetype eq 'text/html') {
+ my (%codebase,%allfiles);
+ my $parse_result = &Apache::lonnet::extract_embedded_items($item,\%allfiles,
+ \%codebase,\$filecontents);
+ my $actionurl = "/public/$cdom/$cnum/syllabus";
+ my ($ignore,$num,$numpathchanges,$existing,$mapping) =
+ &Apache::loncommon::ask_for_embedded_content($actionurl,undef,\%allfiles,
+ \%codebase,
+ {'context' => 'rewrites',
+ 'ignore_remote_references' => 1,});
+ $depbutton = (' ' x 3).
+ &editfile_button($item,$context).
+ &editbutton_js();
+ }
+ }
+ }
+ return ($absurl,$filename,$depbutton);
+}
+
sub fields_check_uncheck {
my ($fields,$values) = @_;
return unless ((ref($fields) eq 'HASH') && (ref($values) eq 'HASH'));
@@ -927,13 +970,34 @@
}
sub save_changes {
- my ($cnum,$cdom,$uploaded,$external,$syllabus,$syllabusfields,$courseenv) = @_;
+ my ($cnum,$cdom,$uploaded,$external,$minimal,$syllabus,$syllabusfields,$courseenv) = @_;
my ($earlyout,$output);
unless ((ref($syllabus) eq 'HASH') && (ref($syllabusfields) eq 'HASH')) {
- return ($earlyout,$uploaded,$external,$output);
+ return ($earlyout,$uploaded,$external,$minimal,$output);
}
+ if ($env{'form.deleteuploaded'}) {
+ my %storehash;
+ if (($env{'form.choice'} eq 'file') &&
+ ($env{'form.deleteuploaded'} eq 'file') && ($uploaded =~ /\w/)) {
+ &Apache::lonnet::delenv('course.'.$env{'request.course.id'}.'.uploadedsyllabus');
+ &Apache::lonnet::delenv('course.'.$env{'request.course.id'}.'.externalsyllabus');
+ $storehash{'uploadedsyllabus'} = '';
+ $storehash{'externalsyllabus'} = '';
+ my $putres = &Apache::lonnet::put('environment',\%storehash,$cdom,$cnum);
+ undef($uploaded);
+ undef($external);
+ } elsif (($env{'form.choice'} eq 'minimal') &&
+ ($env{'form.deleteuploaded'} eq 'minimal') && ($minimal =~ /\w/)) {
+ &Apache::lonnet::delenv('course.'.$env{'request.course.id'}.'.externalsyllabus');
+ &Apache::lonnet::delenv('course.'.$env{'request.course.id'}.'.minimalsyllabus');
+ $storehash{'externalsyllabus'} = '';
+ $storehash{'minimalsyllabus'} = '';
+ my $putres = &Apache::lonnet::put('environment',\%storehash,$cdom,$cnum);
+ undef($external);
+ undef($minimal);
+ }
+ } elsif ($env{'form.choice'} eq 'template') {
#store what the user typed in to the template
- if ($env{'form.choice'} eq 'template') {
my @shown = &Apache::loncommon::get_env_multiple('form.showfield');
$syllabus->{'uploaded.fields'} = '';
if (@shown == 0) {
@@ -1004,12 +1068,18 @@
&Apache::lonnet::delenv('course.'.$env{'request.course.id'}.'.externalsyllabus');
$storehash{'externalsyllabus'} = '';
}
+ if ($courseenv->{'minimalsyllabus'}) {
+ &Apache::lonnet::delenv('course.'.$env{'request.course.id'}.'.minimalsyllabus');
+ $storehash{'minimalsyllabus'} = '';
+ }
$storehash{'updatedsyllabus'} = $now;
&Apache::lonnet::put('environment',\%storehash,$cdom,$cnum);
&Apache::lonnet::appenv({'course.'.$env{'request.course.id'}.'.updatedsyllabus' => $now});
- if ($courseenv->{'externalsyllabus'} || $courseenv->{'uploadedsyllabus'}) {
+ if (($courseenv->{'externalsyllabus'} || $courseenv->{'uploadedsyllabus'}) ||
+ ($courseenv->{'minimalsyllabus'})) {
undef($uploaded);
undef($external);
+ undef($minimal);
}
$output = '<div>'.
&Apache::lonhtmlcommon::confirm_success(&mt('Template saved.')).
@@ -1038,7 +1108,6 @@
&Apache::lonnet::put('environment',{uploadedsyllabus => ''},
$cdom,$cnum);
undef($uploaded);
- $earlyout = 1;
}
}
} else {
@@ -1078,48 +1147,98 @@
&mt('External URL not saved -- invalid URL.').
'</div>';
}
- } elsif ($env{'form.choice'} eq 'file') {
+ } elsif (($env{'form.choice'} eq 'file') || ($env{'form.choice'} eq 'minimal')) {
# Process file upload - phase one - upload and parse primary file.
- my %allfiles = ();
- my %codebase = ();
- my ($upload_result,$uploadphase);
- if ($env{'form.syllabusfile.filename'}) {
- my ($url,$needlink) = &process_upload(\$output,$cnum,$cdom,
- \%allfiles,\%codebase);
- if ($url =~ m{^/uploaded/\Q$cdom\E/\Q$cnum\E.*/[^/]+$}) {
- my $exturl;
- my $home=&Apache::lonnet::homeserver($cnum,$cdom);
- if ($home ne 'no_host') {
- my $protocol = $Apache::lonnet::protocol{$home};
- $protocol = 'http' if ($protocol ne 'https');
- $exturl = $protocol.'://'.&Apache::lonnet::hostname($home).$url;
- }
- my %storehash = (
- uploadedsyllabus => $url,
- );
- if ($exturl) {
- $storehash{'externalsyllabus'} = $exturl;
- if ($exturl =~ /\.(html?|txt|js|css)$/) {
- $exturl .= '?inhibitmenu=yes';
- }
- } else {
- $storehash{'externalsyllabus'} = '',
+ my ($upload_result,$uploadphase,$url,$needlink,$error,$errormsg);
+ if ($env{'form.choice'} eq 'file') {
+ if ($env{'form.syllabusfile.filename'}) {
+ my %allfiles = ();
+ my %codebase = ();
+ ($url,$needlink) = &process_upload(\$output,$cnum,$cdom,
+ \%allfiles,\%codebase);
+ } else {
+ $output = '<div class="LC_info">';
+ &mt('No file uploaded').
+ '</div>';
+ }
+ } elsif ($env{'form.choice'} eq 'minimal') {
+ my $title = $env{'form.syllabustitle'};
+ $title =~ s{`}{}g;
+ $title=~s/^\s+//;
+ $title=~s/\s+$//;
+ if ($title eq '') {
+ $title = &mt('Syllabus');
+ }
+ my $initialtext = &mt('Replace with your own content.');
+ my $newhtml = <<END;
+<html>
+<head>
+<title>$title</title>
+</head>
+<body bgcolor="#ffffff">
+<h2>$title</h2>
+$initialtext
+</body>
+</html>
+END
+ $env{'form.output'}=$newhtml;
+ $url =
+ &Apache::lonnet::finishuserfileupload($cnum,$cdom,'output',
+ 'portfolio/syllabus/loncapa.html');
+ }
+ if ($url =~ m{^/uploaded/\Q$cdom\E/\Q$cnum\E.*/[^/]+$}) {
+ my $exturl;
+ my $home=&Apache::lonnet::homeserver($cnum,$cdom);
+ if ($home ne 'no_host') {
+ my $protocol = $Apache::lonnet::protocol{$home};
+ $protocol = 'http' if ($protocol ne 'https');
+ $exturl = $protocol.'://'.&Apache::lonnet::hostname($home).$url;
+ }
+ my %storehash;
+ if ($env{'form.choice'} eq 'minimal') {
+ $storehash{'minimalsyllabus'} = $url;
+ } else {
+ $storehash{'uploadedsyllabus'} = $url;
+ }
+ if ($exturl) {
+ $storehash{'externalsyllabus'} = $exturl;
+ if ($exturl =~ /\.(html?|txt|js|css)$/) {
+ $exturl .= '?inhibitmenu=yes';
}
- my $putres =
- &Apache::lonnet::put('environment',\%storehash,$cdom,$cnum);
- if ($putres eq 'ok') {
- &Apache::lonnet::make_public_indefinitely($url);
- foreach my $key (keys(%storehash)) {
- &Apache::lonnet::appenv({'course.'.$env{'request.course.id'}.'.'.$key => $storehash{$key}});
- }
+ } else {
+ $storehash{'externalsyllabus'} = '',
+ }
+ my $putres =
+ &Apache::lonnet::put('environment',\%storehash,$cdom,$cnum);
+ if ($putres eq 'ok') {
+ &Apache::lonnet::make_public_indefinitely($url);
+ foreach my $key (keys(%storehash)) {
+ &Apache::lonnet::appenv({'course.'.$env{'request.course.id'}.'.'.$key => $storehash{$key}});
+ }
+ if ($env{'form.choice'} eq 'minimal') {
+ $minimal = $url;
+ } else {
$uploaded = $url;
- if ($needlink) {
- $output .= &return_to_editor($cdom,$cnum).
- &Apache::loncommon::end_page();
- $earlyout = 1;
- }
}
+ if ($needlink) {
+ $output .= &return_to_editor($cdom,$cnum);
+ $earlyout = 1;
+ }
+ } else {
+ $error = 1;
+ $errormsg = $putres;
+ }
+ } else {
+ $error = 1;
+ }
+ if ($error) {
+ $output = '<div class="LC_error">';
+ if ($env{'form.choice'} eq 'minimal') {
+ $output = &mt('An error occurred creating the minimal template file [_1]',$errormsg);
+ } else {
+ $output = &mt('An error occurred storing the uploaded file [_1]',$errormsg);
}
+ $output .= '</div>';
}
} elsif ($env{'form.phase'} eq 'upload_embedded') {
# Process file upload - phase two - upload embedded objects
@@ -1139,8 +1258,7 @@
'/userfiles',$env{'form.primaryurl'});
$result .= $modres;
}
- $output = $result.&return_to_editor($cdom,$cnum).
- &Apache::loncommon::end_page();
+ $output = $result.&return_to_editor($cdom,$cnum);
$earlyout = 1;
} elsif ($env{'form.phase'} eq 'check_embedded') {
# Process file upload - phase three - modify references in HTML file
@@ -1149,11 +1267,10 @@
&Apache::loncommon::modify_html_refs('syllabus','portfolio/syllabus',
$cnum,$cdom,
'/userfiles',$env{'form.primaryurl'});
- $output = $result.&return_to_editor($cdom,$cnum).
- &Apache::loncommon::end_page();
+ $output = $result.&return_to_editor($cdom,$cnum);
$earlyout = 1;
}
- return ($earlyout,$uploaded,$external,$output);
+ return ($earlyout,$uploaded,$external,$minimal,$output);
}
sub process_upload {
@@ -1241,19 +1358,27 @@
}
sub editfile_button {
- my $buttontext=&mt('Edit');
+ my ($url,$context) = @_;
+ my $edittext=&mt('Edit');
+ my $deltext=&mt('Delete');
return <<"END";
- <input type="button" value="$buttontext" onclick="javascript:gotoeditor();" />
+ <input type="button" value="$edittext" onclick="javascript:gotoeditor('$url');" name="edit_$context" />
+
+ <input type="button" value="$deltext" onclick="javascript:dodelete('$context');" name="del_$context" />
+ <input type="hidden" value="" name="deleteuploaded" />
END
}
sub editbutton_js {
- my ($url) = @_;
return <<ENDJS;
<script type="text/javascript">
// <![CDATA[
- function gotoeditor() {
- document.location.href = '$url?forceedit=1';
+ function gotoeditor(url) {
+ document.location.href = url+'?editmode=1&forceedit=1';
+ }
+ function dodelete(caller,url) {
+ document.syllabus.deleteuploaded.value=caller;
+ document.syllabus.submit();
}
// ]]>
</script>
Index: loncom/auth/lonacc.pm
diff -u loncom/auth/lonacc.pm:1.143 loncom/auth/lonacc.pm:1.144
--- loncom/auth/lonacc.pm:1.143 Tue Feb 5 21:32:45 2013
+++ loncom/auth/lonacc.pm Fri May 10 17:49:17 2013
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Cookie Based Access Handler
#
-# $Id: lonacc.pm,v 1.143 2013/02/05 21:32:45 raeburn Exp $
+# $Id: lonacc.pm,v 1.144 2013/05/10 17:49:17 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -630,6 +630,15 @@
}
}
}
+ } elsif ($requrl =~ m{^/+uploaded/\Q$cdom\E/\Q$cnum\E/portfolio/syllabus/.+\.html?$}) {
+ if (&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) {
+ if ($query) {
+ &Apache::loncommon::get_unprocessed_cgi($query,['forceedit','editmode']);
+ if (($env{'form.forceedit'}) || ($env{'form.editmode'})) {
+ $env{'request.state'} = 'edit';
+ }
+ }
+ }
}
}
return OK;
More information about the LON-CAPA-cvs
mailing list