version 1.123, 2013/05/14 14:30:15
|
version 1.138.2.3.4.1, 2020/04/07 18:42:25
|
Line 35 use Apache::loncommon;
|
Line 35 use Apache::loncommon;
|
use Apache::lonnet; |
use Apache::lonnet; |
use Apache::lontexconvert; |
use Apache::lontexconvert; |
use Apache::lonfeedback; |
use Apache::lonfeedback; |
|
use Apache::lonhtmlgateway; |
use Apache::lonannounce; |
use Apache::lonannounce; |
use Apache::lonlocal; |
use Apache::lonlocal; |
use Apache::lonhtmlcommon; |
use Apache::lonhtmlcommon; |
Line 53 sub handler {
|
Line 54 sub handler {
|
# ------------------------------------------------------------ Get query string |
# ------------------------------------------------------------ Get query string |
&Apache::loncommon::get_unprocessed_cgi |
&Apache::loncommon::get_unprocessed_cgi |
($ENV{'QUERY_STRING'},['register','forceedit','todocs', |
($ENV{'QUERY_STRING'},['register','forceedit','todocs', |
'folderpath','title']); |
'folderpath','title','only_body']); |
# ----------------------------------------------------- Is this even a course? |
# ----------------------------------------------------- Is this even a course? |
my $homeserver=&Apache::lonnet::homeserver($cnum,$cdom); |
my $homeserver=&Apache::lonnet::homeserver($cnum,$cdom); |
if ($homeserver eq 'no_host') { |
if ($homeserver eq 'no_host') { |
Line 71 sub handler {
|
Line 72 sub handler {
|
} |
} |
# ------------------------------------- There is such a course, get environment |
# ------------------------------------- There is such a course, get environment |
my %courseenv=&Apache::lonnet::dump('environment',$cdom,$cnum); |
my %courseenv=&Apache::lonnet::dump('environment',$cdom,$cnum); |
|
my $crstype = &Apache::loncommon::course_type(); |
# ------------------------------------------------------------ Print the screen |
|
|
|
if ($target eq 'tex') { |
|
$r->print(&Apache::lonprintout::print_latex_header($env{'form.latex_type'})); |
|
} |
|
|
|
# --------------------------------------------------------------- Force Student |
# --------------------------------------------------------------- Force Student |
my ($forceedit,$forcestudent); |
my ($forceedit,$forcestudent); |
Line 102 sub handler {
|
Line 98 sub handler {
|
my $uploaded=$courseenv{'uploadedsyllabus'}; |
my $uploaded=$courseenv{'uploadedsyllabus'}; |
my $minimal=$courseenv{'minimalsyllabus'}; |
my $minimal=$courseenv{'minimalsyllabus'}; |
|
|
if (($minimal =~/\w/) || ($uploaded =~/\w/)) { |
if (($minimal =~/\w/) || ($uploaded =~/\w/)) { |
my $item; |
my ($item,$is_pdf); |
if ($minimal =~/\w/) { |
if ($minimal =~/\w/) { |
if ($external =~ m{\Q$minimal\E$}) { |
if ($external =~ m{\Q$minimal\E$}) { |
undef($external); |
undef($external); |
Line 114 sub handler {
|
Line 110 sub handler {
|
undef($external); |
undef($external); |
} |
} |
$item = $uploaded; |
$item = $uploaded; |
|
if ($item =~ /\.pdf$/i) { |
|
$is_pdf = 1; |
|
} |
} |
} |
unless ($allowed && $forceedit) { |
unless ($allowed && $forceedit) { |
my $file=&Apache::lonnet::filelocation("",$item); |
my $file=&Apache::lonnet::filelocation("",$item); |
if ($file =~ /\.(sty|css|js|txt|tex|html?)$/) { |
if ($file =~ /\.(tex|x?html?)$/) { |
my $filetype; |
my $filetype = $1; |
if ($file =~ /\.(sty|css|js|txt|tex)$/) { |
|
$filetype=$1; |
|
} else { |
|
$filetype='html'; |
|
} |
|
my $result = ''; |
|
my $filecontents=&Apache::lonnet::getfile($file); |
my $filecontents=&Apache::lonnet::getfile($file); |
if ($filecontents eq -1) { |
if ($filecontents eq -1) { |
$r->print(&mt('Syllabus file unavailable')); |
$r->print(&mt('Syllabus file unavailable')); |
} elsif ($filetype eq 'html') { |
} elsif ($filetype eq 'tex') { |
|
if ($target eq 'tex') { |
|
$r->print($filecontents); |
|
} else { |
|
my $texengine = $env{'form.texengine'}; |
|
if ($texengine eq '') { |
|
$texengine = 'tth'; |
|
} elsif (lc($texengine) eq 'jsmath') { |
|
$texengine = 'MathJax'; |
|
} |
|
my $result = &Apache::lontexconvert::converted(\$filecontents,$texengine); |
|
my %args; |
|
&get_breadcrumbs($cdom,$cnum,$crstype,\%args); |
|
if ($env{'form.only_body'}) { |
|
$args{'only_body'} = 1; |
|
} |
|
if ($env{'request.use_absolute'}) { |
|
$args{'use_absolute'} = $env{'request.use_absolute'}; |
|
} |
|
$r->print(&Apache::loncommon::start_page("Syllabus",undef,\%args). |
|
$result. |
|
&Apache::loncommon::end_page()); |
|
} |
|
} else { |
my %mystyle; |
my %mystyle; |
|
unless ($target eq 'tex') { |
|
$target = 'web'; |
|
} |
&Apache::structuretags::reset_problem_globals(); |
&Apache::structuretags::reset_problem_globals(); |
my $oldfile = $env{'request.filename'}; |
my $oldfile = $env{'request.filename'}; |
$env{'request.filename'} = $item; |
$env{'request.filename'} = $item; |
$result = &Apache::lonxml::xmlparse($r,'web',$filecontents, |
my $result = &Apache::lonxml::xmlparse($r,$target,$filecontents, |
'',%mystyle); |
'',%mystyle); |
&Apache::structuretags::reset_problem_globals(); |
&Apache::structuretags::reset_problem_globals(); |
&Apache::lonhomework::finished_parsing(); |
&Apache::lonhomework::finished_parsing(); |
$env{'request.filename'} = $oldfile; |
$env{'request.filename'} = $oldfile; |
Line 142 sub handler {
|
Line 161 sub handler {
|
$r->print($result); |
$r->print($result); |
} |
} |
} else { |
} else { |
$r->print(&Apache::lonwrapper::wrapper($item)); |
if ($target eq 'tex') { |
|
$r->print(&Apache::lonprintout::print_latex_header($env{'form.latex_type'}). |
|
' \strut \\\\ \textbf{'.&mt('Syllabus').'} \strut \\\\ '. |
|
&mt('Unsupported file type.').' \strut \\\\ '. |
|
&mt('Print the syllabus directly from your web browser'). |
|
'\end{document}'); |
|
} else { |
|
my $brcrum; |
|
if ($env{'form.folderpath'} =~ /^supplemental/) { |
|
my $title = $env{'form.title'}; |
|
if ($title eq '') { |
|
$title = &mt('Syllabus'); |
|
} |
|
$brcrum = |
|
&Apache::lonhtmlcommon::docs_breadcrumbs(undef,$crstype,undef,$title,1); |
|
} |
|
$r->print(&Apache::lonwrapper::wrapper($item,$brcrum,$env{'request.use_absolute'}, |
|
undef,$is_pdf,'','','',&mt('Syllabus'))); |
|
} |
} |
} |
return OK; |
return OK; |
} |
} |
} elsif ($external=~/\w/) { |
} elsif ($external=~/\w/) { |
unless ($allowed && $forceedit) { |
unless ($allowed && $forceedit) { |
$r->print(&Apache::lonwrapper::wrapper($external)); |
if ($target eq 'tex') { |
|
$r->print(&Apache::lonprintout::print_latex_header($env{'form.latex_type'}). |
|
' \strut \\\\ \textbf{'.&mt('Syllabus').'} \strut \\\\ '.$external.' '. |
|
' \strut \\\\ '.&mt('Print the syllabus directly from your web browser'). |
|
'\end{document}'); |
|
} else { |
|
my $is_ext = 1; |
|
my ($is_pdf,$brcrum); |
|
if ($external =~ /\.pdf$/i) { |
|
$is_pdf = 1; |
|
} |
|
if ($env{'form.folderpath'} =~ /^supplemental/) { |
|
my $title = $env{'form.title'}; |
|
if ($title eq '') { |
|
$title = &mt('Syllabus'); |
|
} |
|
$brcrum = |
|
&Apache::lonhtmlcommon::docs_breadcrumbs(undef,$crstype,undef,$title,1); |
|
} |
|
$r->print(&Apache::lonwrapper::wrapper($external,$brcrum,$env{'request.use_absolute'}, |
|
$is_ext,$is_pdf,'','','',&mt('Syllabus'))); |
|
} |
return OK; |
return OK; |
} |
} |
} |
} |
|
|
my $crstype = &Apache::loncommon::course_type(); |
# ------------------------------------------------------------ Print the screen |
|
|
|
if ($target eq 'tex') { |
|
$r->print(&Apache::lonprintout::print_latex_header($env{'form.latex_type'})); |
|
} |
|
|
# ------------------------------ The buck stops here: internal syllabus display |
# ------------------------------ The buck stops here: internal syllabus display |
# --------------------------------------------------------- The syllabus fields |
# --------------------------------------------------------- The syllabus fields |
Line 330 sub handler {
|
Line 392 sub handler {
|
} |
} |
&Apache::lontemplate::print_start_template($r,&mt('Personnel'),'LC_Box', |
&Apache::lontemplate::print_start_template($r,&mt('Personnel'),'LC_Box', |
'box_000_showpeople',$display); |
'box_000_showpeople',$display); |
$r->print(&get_personnel($r,$target,$cdom,$cnum,$allowed)); |
$r->print(&get_personnel($r,$target,$cdom,$cnum,$allowed,$crstype,\%syllabus)); |
&Apache::lontemplate::print_end_template($r); |
&Apache::lontemplate::print_end_template($r); |
} else { |
} else { |
unless ($hidepersonnel) { |
unless ($hidepersonnel) { |
&Apache::lontemplate::print_start_template($r,&mt('Personnel'),'LC_Box'); |
&Apache::lontemplate::print_start_template($r,&mt('Personnel'),'LC_Box'); |
$r->print(&get_personnel($r,$target,$cdom,$cnum,$allowed)); |
$r->print(&get_personnel($r,$target,$cdom,$cnum,$allowed,$crstype,\%syllabus)); |
&Apache::lontemplate::print_end_template($r); |
&Apache::lontemplate::print_end_template($r); |
} |
} |
} |
} |
} else { |
} else { |
unless ($hidepersonnel) { |
unless ($hidepersonnel) { |
$r->print(&get_personnel($r,$target,$cdom,$cnum,$allowed)); |
$r->print(&get_personnel($r,$target,$cdom,$cnum,$allowed,$crstype,%syllabus)); |
} |
} |
} |
} |
# -------------------------------------------------------------- Announcements? |
# -------------------------------------------------------------- Announcements? |
Line 383 sub handler {
|
Line 445 sub handler {
|
} |
} |
$rsslinktext = &mt('Manage Course RSS Feeds/Blogs'); |
$rsslinktext = &mt('Manage Course RSS Feeds/Blogs'); |
if ($crstype eq 'Community') { |
if ($crstype eq 'Community') { |
$rsslinktext = &mt('Manage Communiity RSS Feeds/Blogs'); |
$rsslinktext = &mt('Manage Community RSS Feeds/Blogs'); |
} |
} |
} |
} |
my $editurl= &Apache::lonnet::absolute_url().'/adm/'.$cdom.'/'.$cnum.'/_rss.html'; |
my $editurl= &Apache::lonnet::absolute_url().'/adm/'.$cdom.'/'.$cnum.'/_rss.html'; |
Line 404 sub handler {
|
Line 466 sub handler {
|
} |
} |
# ---------------------------------------------------------------- Get syllabus |
# ---------------------------------------------------------------- Get syllabus |
if (($syllabus{'uploaded.lastmodified'}) || ($allowed)) { |
if (($syllabus{'uploaded.lastmodified'}) || ($allowed)) { |
if ($allowed) { |
|
$r->print('<form method="post" action="">'); |
|
} |
|
|
|
my $url_include_handler = sub { |
my $url_include_handler = sub { |
my ($r, $field, $message, $group, $data_ref, $fields_ref, $target, $allowed, $display) = @_; |
my ($r, $field, $message, $group, $data_ref, $fields_ref, $target, $allowed, $display) = @_; |
my %data = %{$data_ref}; |
my %data = %{$data_ref}; |
Line 454 sub handler {
|
Line 512 sub handler {
|
$target, $allowed, Apache::lontemplate->RICH_TEXT_DETECT_HTML, \%custom_hash, |
$target, $allowed, Apache::lontemplate->RICH_TEXT_DETECT_HTML, \%custom_hash, |
undef,\%displayfields,\%noshow); |
undef,\%displayfields,\%noshow); |
if ($allowed) { |
if ($allowed) { |
$r->print('</form>'. |
$r->print('</div></form>'. |
&Apache::lonhtmlcommon::htmlareaselectactive()); |
&Apache::lonhtmlcommon::htmlareaselectactive()); |
} |
} |
} else { |
} else { |
Line 544 ENDSCRIPT
|
Line 602 ENDSCRIPT
|
my $checkedstr = "var include = new Array('".join("','",@checked)."');"; |
my $checkedstr = "var include = new Array('".join("','",@checked)."');"; |
my $uncheckedstr = "var exclude = new Array('".join("','",@unchecked)."');"; |
my $uncheckedstr = "var exclude = new Array('".join("','",@unchecked)."');"; |
my $invurl = &mt('Invalid URL'); |
my $invurl = &mt('Invalid URL'); |
|
&js_escape(\$invurl); |
my $urlregexp = <<'ENDREGEXP'; |
my $urlregexp = <<'ENDREGEXP'; |
/^([a-z]([a-z]|\d|\+|-|\.)*):(\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?((\[(|(v[\da-f]{1,}\.(([a-z]|\d|-|\.|_|~)|[!\$&'\(\)\*\+,;=]|:)+))\])|((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=])*)(:\d*)?)(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*|(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)){0})(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i |
/^([a-z]([a-z]|\d|\+|-|\.)*):(\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?((\[(|(v[\da-f]{1,}\.(([a-z]|\d|-|\.|_|~)|[!\$&'\(\)\*\+,;=]|:)+))\])|((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=])*)(:\d*)?)(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*|(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)){0})(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i |
ENDREGEXP |
ENDREGEXP |
Line 568 function toggleEditor(pick) {
|
Line 627 function toggleEditor(pick) {
|
|
|
var regexp = $urlregexp; |
var regexp = $urlregexp; |
|
|
function extUrlPreview(caller) { |
function extUrlPreview(caller,protocol) { |
if (document.getElementById(caller)) { |
if (document.getElementById(caller)) { |
var url = document.getElementById(caller).value; |
var url = document.getElementById(caller).value; |
if (regexp.test(url)) { |
if (regexp.test(url)) { |
openMyModal(url,500,400,'yes'); |
var http_regex = /^http\:\/\//gi; |
|
if ((protocol == 'https') && (http_regex.test(url))) { |
|
window.open(url,"syllabuspreview","height=400,width=500,scrollbars=1,resizable=1,menubar=0,location=1"); |
|
} else { |
|
openMyModal(url,500,400,'yes'); |
|
} |
} else { |
} else { |
alert("$invurl"); |
alert("$invurl"); |
} |
} |
Line 664 ENDSCRIPT
|
Line 728 ENDSCRIPT
|
{href=>$r->uri, |
{href=>$r->uri, |
text=>"Course syllabus"}); |
text=>"Course syllabus"}); |
$args->{'bread_crumbs'} = $brcrum; |
$args->{'bread_crumbs'} = $brcrum; |
} elsif ($env{'form.folderpath'} =~ /^supplemental/) { |
} else { |
|
&get_breadcrumbs($cdom,$cnum,$crstype,$args); |
|
} |
|
if ($allowed) { |
|
my %loaditem = ( |
|
onload => 'setTemplateBoxes();', |
|
); |
|
$args->{'add_entries'} = \%loaditem; |
|
} else { |
|
if ($env{'request.use_absolute'}) { |
|
$args->{'use_absolute'} = $env{'request.use_absolute'}; |
|
} |
|
} |
|
if ($env{'form.only_body'}) { |
|
$args->{'only_body'} = 1; |
|
} |
|
my $start_page = |
|
&Apache::loncommon::start_page("Syllabus", $rss_link.$js,$args); |
|
if ($start_page) { |
|
$r->print($start_page); |
|
} |
|
} |
|
|
|
sub get_breadcrumbs{ |
|
my ($cdom,$cnum,$crstype,$args) = @_; |
|
return unless (ref($args) eq 'HASH'); |
|
if ($env{'form.folderpath'} =~ /^supplemental/) { |
my $title = $env{'form.title'}; |
my $title = $env{'form.title'}; |
if ($title eq '') { |
if ($title eq '') { |
$title = &mt('Syllabus'); |
$title = &mt('Syllabus'); |
Line 685 ENDSCRIPT
|
Line 775 ENDSCRIPT
|
]; |
]; |
} |
} |
} |
} |
if ($allowed) { |
return; |
my %loaditem = ( |
|
onload => 'setTemplateBoxes();', |
|
); |
|
$args->{'add_entries'} = \%loaditem; |
|
} |
|
my $start_page = |
|
&Apache::loncommon::start_page("Syllabus", $rss_link.$js,$args); |
|
if ($start_page) { |
|
$r->print($start_page); |
|
} |
|
} |
} |
|
|
sub chooser { |
sub chooser { |
Line 744 sub chooser {
|
Line 824 sub chooser {
|
$checked{'templatebox'} = $check; |
$checked{'templatebox'} = $check; |
$display{'templatebox'} = 'block'; |
$display{'templatebox'} = 'block'; |
} |
} |
|
my $protocol = ($ENV{'SERVER_PORT'} == 443?'https':'http'); |
|
|
my $output = |
my $output = |
'<form name="syllabus" method="post" enctype="multipart/form-data" action="">'."\n". |
'<form name="syllabus" method="post" enctype="multipart/form-data" action="">'."\n". |
Line 756 sub chooser {
|
Line 837 sub chooser {
|
$output .= '</fieldset></div>'."\n". |
$output .= '</fieldset></div>'."\n". |
'<div id="url" class="LC_left_float" style="display: '.$display{'url'}.'">'."\n". |
'<div id="url" class="LC_left_float" style="display: '.$display{'url'}.'">'."\n". |
'<fieldset><legend>'.$lt{'chourl'}.'</legend><span class="LC_nobreak">'."\n". |
'<fieldset><legend>'.$lt{'chourl'}.'</legend><span class="LC_nobreak">'."\n". |
'<a href="javascript:extUrlPreview('."'syllabusurl'".');">'.$lt{'pr'}.'</a></span> '."\n". |
'<a href="javascript:extUrlPreview('."'syllabusurl','$protocol'".');">'.$lt{'pr'}.'</a></span> '."\n". |
'<input type="text" id="syllabusurl" name="externalsyllabus" value="'.$external.'" size="55" />'."\n". |
'<input type="text" id="syllabusurl" name="externalsyllabus" value="'.$external.'" size="55" />'."\n". |
' <input type="submit" name="storeurl" value="'.$lt{'save'}.'" />'."\n". |
' <input type="submit" name="storeurl" value="'.$lt{'save'}.'" />'."\n". |
'</fieldset></div>'."\n". |
'</fieldset></div>'."\n". |
Line 817 sub syllabus_file_info {
|
Line 898 sub syllabus_file_info {
|
my $absurl = $protocol.'://'.&Apache::lonnet::hostname($lonhost).$item; |
my $absurl = $protocol.'://'.&Apache::lonnet::hostname($lonhost).$item; |
my ($filename) = ($item =~ m{([^/]+)$}); |
my ($filename) = ($item =~ m{([^/]+)$}); |
my $file=&Apache::lonnet::filelocation("",$item); |
my $file=&Apache::lonnet::filelocation("",$item); |
my $depbutton; |
my ($depbutton,$filetype,$editable); |
if ($file =~ /\.html?$/) { |
if ($file =~ /\.(xhtml|xml|tex|html|htm)$/) { |
|
$filetype=$1; |
|
} |
|
if ($filetype) { |
|
unless ($filetype eq 'tex') { |
|
$filetype='html'; |
|
} |
|
} |
|
if ($filetype eq 'html') { |
my $filecontents=&Apache::lonnet::getfile($file); |
my $filecontents=&Apache::lonnet::getfile($file); |
unless ($filecontents eq -1) { |
unless ($filecontents eq -1) { |
my $mm = new File::MMagic; |
my $mm = new File::MMagic; |
Line 833 sub syllabus_file_info {
|
Line 922 sub syllabus_file_info {
|
\%codebase, |
\%codebase, |
{'context' => 'rewrites', |
{'context' => 'rewrites', |
'ignore_remote_references' => 1,}); |
'ignore_remote_references' => 1,}); |
$depbutton = (' ' x 3). |
$editable = 1; |
&editfile_button($item,$context). |
|
&editbutton_js(); |
|
} |
} |
} |
} |
} |
} |
|
$depbutton = (' ' x 3). |
|
&editfile_button($item,$context,$editable). |
|
&editbutton_js(); |
return ($absurl,$filename,$depbutton); |
return ($absurl,$filename,$depbutton); |
} |
} |
|
|
Line 920 sub fields_check_uncheck {
|
Line 1010 sub fields_check_uncheck {
|
} |
} |
|
|
sub get_personnel { |
sub get_personnel { |
my ($r,$target,$cdom,$cnum,$allowed) = @_; |
my ($r,$target,$cdom,$cnum,$allowed,$crstype,$syllabus) = @_; |
|
my (%hiddenroles,%hiddenusers); |
|
if (ref($syllabus) eq 'HASH') { |
|
if (ref($syllabus->{'personnel'}) eq 'HASH') { |
|
if ($syllabus->{'personnel'}{'hiderole'}) { |
|
map { $hiddenroles{$_} = 1; } split(/,/,$syllabus->{'personnel'}{'hiderole'}); |
|
} |
|
if ($syllabus->{'personnel'}{'hideuser'}) { |
|
map { $hiddenusers{$_} = 1; } split(/,/,$syllabus->{'personnel'}{'hideuser'}); |
|
} |
|
} |
|
} |
my $output; |
my $output; |
my %coursepersonnel=&Apache::lonnet::get_course_adv_roles($cdom.'/'.$cnum); |
my %coursepersonnel=&Apache::lonnet::get_course_adv_roles($cdom.'/'.$cnum,1); |
if ($target ne 'tex') { |
if ($target ne 'tex') { |
$r->print(&Apache::lonhtmlcommon::start_pick_box()); |
if ($allowed) { |
|
$r->print(&Apache::loncommon::start_data_table(). |
|
&Apache::loncommon::start_data_table_header_row(). |
|
'<th>'.&mt('Role hidden?').'</th><th>'.&mt('Role').'</th>'. |
|
'<th>'.&mt('Personnel (hidden if checked)').'</th>'. |
|
&Apache::loncommon::end_data_table_header_row()); |
|
} else { |
|
$r->print(&Apache::lonhtmlcommon::start_pick_box()); |
|
} |
} else { |
} else { |
$r->print('\begin{tabular}{|p{0.45\textwidth}|p{0.45\textwidth}|}\hline'); |
$r->print('\begin{tabular}{|p{0.45\textwidth}|p{0.45\textwidth}|}\hline'); |
} |
} |
my @personnel=sort(keys(%coursepersonnel)); |
my @personnel=sort(keys(%coursepersonnel)); |
my $lastpers=$personnel[$#personnel]; |
my $lastpers=$personnel[$#personnel]; |
foreach my $element (@personnel) { |
foreach my $element (@personnel) { |
|
unless ($allowed) { |
|
next if ($hiddenroles{$element}) |
|
} |
|
my ($role,$sec); |
|
if ($element =~ /:/) { |
|
($role,$sec) = split(/:/,$element); |
|
} else { |
|
$role = $element; |
|
} |
|
my $roletext = &Apache::lonnet::plaintext($role,$crstype); |
|
if ($sec) { |
|
$roletext .=' ('.&Apache::lonlocal::mt('Section [_1]',$sec).')'; |
|
} |
if ($target ne 'tex') { |
if ($target ne 'tex') { |
$r->print(&Apache::lonhtmlcommon::row_title($element)); |
if ($allowed) { |
|
my $checked; |
|
if ($hiddenroles{$element}) { |
|
$checked = ' checked="checked"'; |
|
} |
|
$r->print(&Apache::loncommon::start_data_table_row(). |
|
'<td>'. |
|
'<input type="checkbox" name="hiderole" value="'.$element.'" '. |
|
$checked.' />'. |
|
'</td><td>'.$roletext.'</td><td>'); |
|
} else { |
|
$r->print(&Apache::lonhtmlcommon::row_title($roletext)); |
|
} |
} else { |
} else { |
$r->print(' '.&Apache::lonxml::xmlparse($r,'tex',$element).' & '); |
$r->print(' '.&Apache::lonxml::xmlparse($r,'tex',$roletext).' & '); |
} |
} |
my @coursepersonlist; |
my @coursepersonlist; |
foreach my $user (split(/\,/,$coursepersonnel{$element})) { |
foreach my $user (split(/\,/,$coursepersonnel{$element})) { |
my ($puname,$pudom)=split(/\:/,$user); |
my ($puname,$pudom)=split(/\:/,$user); |
if ($target ne 'tex') { |
if ($target ne 'tex') { |
my $courseperson = &Apache::loncommon::plainname($puname,$pudom); |
my $courseperson = &Apache::loncommon::plainname($puname,$pudom); |
if (($env{'user.name'} eq '') || ($env{'user.name'} eq 'public') || |
my $checked; |
($env{'user.domain'} eq '') || ($env{'user.domain'} eq 'public')) { |
if ($hiddenusers{$element.'&'.$puname.':'.$pudom}) { |
push(@coursepersonlist,$courseperson); |
$checked = ' checked="checked"'; |
|
} |
|
if ($allowed) { |
|
my $item = '<span class="LC_nobreak"><label>'. |
|
'<input type="checkbox" name="hideuser" value="'.$element.'&'.$puname.':'.$pudom.'"'.$checked.' />'. |
|
&Apache::loncommon::aboutmewrapper($courseperson |
|
, |
|
$puname,$pudom). |
|
'</label>'.(' 'x2).'</span> '; |
|
push(@coursepersonlist,$item); |
|
|
} else { |
} else { |
push(@coursepersonlist,&Apache::loncommon::aboutmewrapper($courseperson, |
next if ($hiddenusers{$element.'&'.$puname.':'.$pudom}); |
$puname,$pudom)); |
if (($env{'user.name'} eq '') || ($env{'user.name'} eq 'public') || |
|
($env{'user.domain'} eq '') || ($env{'user.domain'} eq 'public')) { |
|
push(@coursepersonlist,$courseperson); |
|
} else { |
|
push(@coursepersonlist,&Apache::loncommon::aboutmewrapper($courseperson, |
|
$puname,$pudom)); |
|
} |
} |
} |
} else { |
} else { |
push(@coursepersonlist,&Apache::loncommon::plainname($puname, |
push(@coursepersonlist,&Apache::loncommon::plainname($puname, |
$pudom).' '); |
$pudom).' '); |
} |
} |
} |
} |
$r->print(join(", ",@coursepersonlist)); |
if ($allowed) { |
|
$r->print(join('',@coursepersonlist)); |
|
} else { |
|
$r->print(join(', ',@coursepersonlist)); |
|
} |
if ($target ne 'tex') { |
if ($target ne 'tex') { |
my $lastclose=$element eq $lastpers?1:0; |
if ($allowed) { |
$r->print(&Apache::lonhtmlcommon::row_closure($lastclose)); |
$r->print('</td>'.&Apache::loncommon::end_data_table_row()); |
|
} else { |
|
my $lastclose=$element eq $lastpers?1:0; |
|
$r->print(&Apache::lonhtmlcommon::row_closure($lastclose)); |
|
} |
} else { |
} else { |
$r->print('\\\\ \hline'); |
$r->print('\\\\ \hline'); |
} |
} |
} |
} |
if ($target ne 'tex') { |
if ($target ne 'tex') { |
$r->print(&Apache::lonhtmlcommon::end_pick_box()); |
if ($allowed) { |
|
$r->print(&Apache::loncommon::end_data_table()); |
|
} else { |
|
$r->print(&Apache::lonhtmlcommon::end_pick_box()); |
|
} |
} else { |
} else { |
$r->print('\end{tabular}\\\\'); |
$r->print('\end{tabular}\\\\'); |
} |
} |
Line 972 sub get_personnel {
|
Line 1134 sub get_personnel {
|
sub save_changes { |
sub save_changes { |
my ($cnum,$cdom,$uploaded,$external,$minimal,$syllabus,$syllabusfields,$courseenv) = @_; |
my ($cnum,$cdom,$uploaded,$external,$minimal,$syllabus,$syllabusfields,$courseenv) = @_; |
my ($earlyout,$output); |
my ($earlyout,$output); |
unless ((ref($syllabus) eq 'HASH') && (ref($syllabusfields) eq 'HASH')) { |
unless ((ref($syllabus) eq 'HASH') && (ref($syllabusfields) eq 'HASH') || |
|
(ref($courseenv) eq 'HASH')) { |
return ($earlyout,$uploaded,$external,$minimal,$output); |
return ($earlyout,$uploaded,$external,$minimal,$output); |
} |
} |
if ($env{'form.deleteuploaded'}) { |
if (($env{'form.deleteuploaded_file'}) || ($env{'form.deleteuploaded_minimal'})) { |
my %storehash; |
my %storehash; |
if (($env{'form.choice'} eq 'file') && |
if (($env{'form.choice'} eq 'file') && |
($env{'form.deleteuploaded'} eq 'file') && ($uploaded =~ /\w/)) { |
($env{'form.deleteuploaded_file'}) && ($uploaded =~ /\w/)) { |
|
if ($courseenv->{'uploadedsyllabus'} =~ m{^\Q/uploaded/$cdom/$cnum/portfolio\E(/syllabus/.+)$}) { |
|
my $filename = $1; |
|
&update_access_permissions($cdom,$cnum,$filename); |
|
} |
&Apache::lonnet::delenv('course.'.$env{'request.course.id'}.'.uploadedsyllabus'); |
&Apache::lonnet::delenv('course.'.$env{'request.course.id'}.'.uploadedsyllabus'); |
&Apache::lonnet::delenv('course.'.$env{'request.course.id'}.'.externalsyllabus'); |
&Apache::lonnet::delenv('course.'.$env{'request.course.id'}.'.externalsyllabus'); |
$storehash{'uploadedsyllabus'} = ''; |
$storehash{'uploadedsyllabus'} = ''; |
Line 987 sub save_changes {
|
Line 1154 sub save_changes {
|
undef($uploaded); |
undef($uploaded); |
undef($external); |
undef($external); |
} elsif (($env{'form.choice'} eq 'minimal') && |
} elsif (($env{'form.choice'} eq 'minimal') && |
($env{'form.deleteuploaded'} eq 'minimal') && ($minimal =~ /\w/)) { |
($env{'form.deleteuploaded_minimal'}) && ($minimal =~ /\w/)) { |
|
my $minimalurl = "/uploaded/$cdom/$cnum/portfolio/syllabus/loncapa.html"; |
|
if ($courseenv->{'minimalsyllabus'} eq "$minimalurl") { |
|
my $filecontents=&Apache::lonnet::getfile(&Apache::lonnet::filelocation("",$minimalurl)); |
|
unless ($filecontents eq -1) { |
|
$env{'form.output'} = $filecontents; |
|
&Apache::lonnet::finishuserfileupload($cnum,$cdom,'output', |
|
'portfolio/syllabus/loncapa.html.bak'); |
|
$minimalurl = &default_minimal_syllabus($cnum,$cdom); |
|
} |
|
} |
|
&update_access_permissions($cdom,$cnum,'/syllabus/loncapa.html'); |
&Apache::lonnet::delenv('course.'.$env{'request.course.id'}.'.externalsyllabus'); |
&Apache::lonnet::delenv('course.'.$env{'request.course.id'}.'.externalsyllabus'); |
&Apache::lonnet::delenv('course.'.$env{'request.course.id'}.'.minimalsyllabus'); |
&Apache::lonnet::delenv('course.'.$env{'request.course.id'}.'.minimalsyllabus'); |
$storehash{'externalsyllabus'} = ''; |
$storehash{'externalsyllabus'} = ''; |
Line 1010 sub save_changes {
|
Line 1188 sub save_changes {
|
my ($prefix) = split(/_/,$field); |
my ($prefix) = split(/_/,$field); |
$syllabus->{'uploaded.fields'} .= $prefix.','; |
$syllabus->{'uploaded.fields'} .= $prefix.','; |
} |
} |
|
if ($field eq '000_showpeople') { |
|
my @hideusers = &Apache::loncommon::get_env_multiple('form.hideuser'); |
|
my @hideroles = &Apache::loncommon::get_env_multiple('form.hiderole'); |
|
my %coursepersonnel=&Apache::lonnet::get_course_adv_roles($cdom.'/'.$cnum,1); |
|
my %personnel; |
|
foreach my $key (keys(%coursepersonnel)) { |
|
map { $personnel{$key}{$_} = 1; } split(/,/,$coursepersonnel{$key}); |
|
} |
|
%{$syllabus->{'personnel'}} = (); |
|
$syllabus->{'personnel'}{'hideuser'} = ''; |
|
$syllabus->{'personnel'}{'hiderole'} = ''; |
|
foreach my $role (@hideroles) { |
|
if (exists($personnel{$role})) { |
|
$syllabus->{'personnel'}{'hiderole'} .= $role.','; |
|
} |
|
} |
|
foreach my $item (@hideusers) { |
|
my ($role,$user) = split(/\&/,$item); |
|
if (ref($personnel{$role}) eq 'HASH') { |
|
if ($personnel{$role}{$user}) { |
|
$syllabus->{'personnel'}{'hideuser'} .= $item.','; |
|
} |
|
} |
|
} |
|
$syllabus->{'personnel'}{'hideuser'} =~ s/,$//; |
|
$syllabus->{'personnel'}{'hiderole'} =~ s/,$//; |
|
} |
} |
} |
$syllabus->{'uploaded.fields'} =~ s/,$//; |
$syllabus->{'uploaded.fields'} =~ s/,$//; |
} |
} |
foreach my $syl_field (keys(%{$syllabusfields})) { |
foreach my $syl_field (keys(%{$syllabusfields})) { |
my $field=$env{'form.'.$syl_field}; |
my $field=$env{'form.'.$syl_field}; |
chomp($field); |
chomp($field); |
$field=~s/\s+$//s; |
my $gateway = Apache::lonhtmlgateway->new(); |
$field=~s/^\s+//s; |
$field = $gateway->process_incoming_html($field,1); |
$field=~s/\<br\s*\/*\>$//s; |
|
$field=&Apache::lonfeedback::clear_out_html($field,1); |
|
#here it will be stored |
#here it will be stored |
$syllabus->{$syl_field}=$field; |
$syllabus->{$syl_field}=$field; |
if ($syl_field eq 'lll_includeurl') { # clean up included URLs |
if ($syl_field eq 'lll_includeurl') { # clean up included URLs |
Line 1114 sub save_changes {
|
Line 1317 sub save_changes {
|
($url,$needlink) = &process_upload(\$output,$cnum,$cdom, |
($url,$needlink) = &process_upload(\$output,$cnum,$cdom, |
\%allfiles,\%codebase); |
\%allfiles,\%codebase); |
} else { |
} else { |
$output = '<div class="LC_info">'; |
$output = '<div class="LC_info">'. |
&mt('No file uploaded'). |
&mt('No file uploaded'). |
'</div>'; |
'</div>'; |
} |
} |
} elsif ($env{'form.choice'} eq 'minimal') { |
} elsif ($env{'form.choice'} eq 'minimal') { |
my $title = $env{'form.syllabustitle'}; |
$url = "/uploaded/$cdom/$cnum/portfolio/syllabus/loncapa.html"; |
$title =~ s{`}{}g; |
my $filecontents=&Apache::lonnet::getfile(&Apache::lonnet::filelocation("",$url)); |
$title=~s/^\s+//; |
if ($filecontents eq -1) { |
$title=~s/\s+$//; |
$url = &default_minimal_syllabus($cnum,$cdom); |
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.*/[^/]+$}) { |
if ($url =~ m{^/uploaded/\Q$cdom\E/\Q$cnum\E.*/[^/]+$}) { |
my $exturl = &home_http_host($cdom,$cnum); |
my $exturl = &home_http_host($cdom,$cnum); |
Line 1230 END
|
Line 1415 END
|
return ($earlyout,$uploaded,$external,$minimal,$output); |
return ($earlyout,$uploaded,$external,$minimal,$output); |
} |
} |
|
|
|
sub default_minimal_syllabus { |
|
my ($cnum,$cdom) = @_; |
|
my $title; |
|
if ($env{'form.syllabustitle'}) { |
|
$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; |
|
return &Apache::lonnet::finishuserfileupload($cnum,$cdom,'output', |
|
'portfolio/syllabus/loncapa.html'); |
|
} |
|
|
sub update_syllabus_env { |
sub update_syllabus_env { |
my ($cdom,$cnum,$courseenv,$saved,$uploaded,$minimal,$external); |
my ($cdom,$cnum,$courseenv,$saved,$uploaded,$minimal,$external) = @_; |
return unless(ref($courseenv) eq 'HASH'); |
return ($uploaded,$minimal,$external) unless(ref($courseenv) eq 'HASH'); |
my $now = time; |
my $now = time; |
my (@envkeys,%storehash); |
my (@envkeys,%storehash); |
if ($saved eq 'template') { |
if ($saved eq 'template') { |
if ($uploaded) { |
if ($uploaded || $env{'course.'.$env{'request.course.id'}.'.uploadedsyllabus'}) { |
push(@envkeys,'uploaded'); |
push(@envkeys,'uploaded'); |
} |
} |
if ($minimal) { |
if ($minimal || $env{'course.'.$env{'request.course.id'}.'.minimalsyllabus'}) { |
push(@envkeys,'minimal'); |
push(@envkeys,'minimal'); |
} |
} |
if ($external) { |
if ($external || $env{'course.'.$env{'request.course.id'}.'.externalsyllabus'}) { |
push(@envkeys,'external'); |
push(@envkeys,'external'); |
} |
} |
$storehash{'updatedsyllabus'} = $now; |
$storehash{'updatedsyllabus'} = $now; |
&Apache::lonnet::appenv({'course.'.$env{'request.course.id'}.'.updatedsyllabus' => $now |
&Apache::lonnet::appenv({'course.'.$env{'request.course.id'}.'.updatedsyllabus' => $now |
}); |
}); |
|
|
} elsif ($saved eq 'url') { |
} elsif ($saved eq 'url') { |
my $prefix = &home_http_host($cdom,$cnum); |
my $prefix = &home_http_host($cdom,$cnum); |
if ($external =~ m{^\Q$prefix/uploaded/$cdom/$cnum/portfolio/syllabus/\E(.+)$}) { |
if ($external =~ m{^\Q$prefix/uploaded/$cdom/$cnum/portfolio/syllabus/\E(.+)$}) { |
my $file = $1; |
my $file = $1; |
if ($file eq 'loncapa.html') { |
if ($file eq 'loncapa.html') { |
if ($uploaded) { |
if ($uploaded || $env{'course.'.$env{'request.course.id'}.'.uploadedsyllabus'}) { |
push(@envkeys,'uploaded'); |
push(@envkeys,'uploaded'); |
} |
} |
} elsif ($minimal) { |
} elsif ($minimal || $env{'course.'.$env{'request.course.id'}.'.minimalsyllabus'}) { |
push(@envkeys,'minimal'); |
push(@envkeys,'minimal'); |
} |
} |
} else { |
} else { |
if ($uploaded) { |
if ($uploaded || $env{'course.'.$env{'request.course.id'}.'.uploadedsyllabus'}) { |
push(@envkeys,'uploaded'); |
push(@envkeys,'uploaded'); |
} |
} |
if ($minimal) { |
if ($minimal || $env{'course.'.$env{'request.course.id'}.'.minimalsyllabus'}) { |
push(@envkeys,'minimal'); |
push(@envkeys,'minimal'); |
} |
} |
} |
} |
} elsif ($saved eq 'file') { |
} elsif ($saved eq 'file') { |
if ($minimal) { |
if ($minimal || $env{'course.'.$env{'request.course.id'}.'.minimalsyllabus'}) { |
push(@envkeys,'minimal'); |
push(@envkeys,'minimal'); |
} |
} |
} elsif ($saved eq 'minimal') { |
} elsif ($saved eq 'minimal') { |
if ($uploaded) { |
if ($uploaded || $env{'course.'.$env{'request.course.id'}.'.uploadedsyllabus'}) { |
push(@envkeys,'uploaded'); |
push(@envkeys,'uploaded'); |
} |
} |
} |
} |
if (@envkeys > 0) { |
if (@envkeys > 0) { |
foreach my $item (@envkeys) { |
foreach my $item (@envkeys) { |
my $key = $item.'syllabus'; |
my $key = $item.'syllabus'; |
if ($courseenv->{$key}) { |
if ($courseenv->{$key} ne '') { |
&Apache::lonnet::delenv('course.'.$env{'request.course.id'}.'.'.$key); |
&Apache::lonnet::delenv('course.'.$env{'request.course.id'}.'.'.$key); |
|
if ($item eq 'minimal') { |
|
&update_access_permissions($cdom,$cnum,'/syllabus/loncapa.html'); |
|
} elsif ($item eq 'uploaded') { |
|
if ($courseenv->{$key} =~ m{^\Q/uploaded/$cdom/$cnum/portfolio\E(/syllabus/.+)$}) { |
|
my $filename = $1; |
|
&update_access_permissions($cdom,$cnum,$filename); |
|
} |
|
} |
$storehash{$key} = ''; |
$storehash{$key} = ''; |
|
} elsif ($env{'course.'.$env{'request.course.id'}.'.'.$key} ne '') { |
|
&Apache::lonnet::delenv('course.'.$env{'request.course.id'}.'.'.$key); |
} |
} |
if ($item eq 'uploaded') { |
if ($item eq 'uploaded') { |
undef($uploaded); |
undef($uploaded); |
Line 1301 sub update_syllabus_env {
|
Line 1524 sub update_syllabus_env {
|
return ($uploaded,$minimal,$external); |
return ($uploaded,$minimal,$external); |
} |
} |
|
|
|
sub update_access_permissions { |
|
my ($cdom,$cnum,$file_name) = @_; |
|
my $current_permissions = &Apache::lonnet::get_portfile_permissions($cdom,$cnum); |
|
my %access_controls = |
|
&Apache::lonnet::get_access_controls($current_permissions,'',$file_name); |
|
if (keys(%access_controls) > 0) { |
|
my %changes; |
|
foreach my $key (keys(%{$access_controls{$file_name}})) { |
|
$changes{'delete'}{$key} = 1; |
|
} |
|
if (keys(%changes) > 0) { |
|
my ($outcome,$deloutcome,$new_values,$translation) = |
|
&Apache::lonnet::modify_access_controls($file_name,\%changes, |
|
$cdom,$cnum); |
|
} |
|
} |
|
return; |
|
} |
|
|
sub home_http_host { |
sub home_http_host { |
my ($cdom,$cnum) = @_; |
my ($cdom,$cnum) = @_; |
my $home=&Apache::lonnet::homeserver($cnum,$cdom); |
my $home=&Apache::lonnet::homeserver($cnum,$cdom); |
if ($home ne 'no_host') { |
if ($home ne 'no_host') { |
my $protocol = $Apache::lonnet::protocol{$home}; |
my $protocol = $Apache::lonnet::protocol{$home}; |
$protocol = 'http' if ($protocol ne 'https'); |
$protocol = 'http' if ($protocol ne 'https'); |
return $protocol.'//'.$home; |
return $protocol.'://'.&Apache::lonnet::hostname($home); |
} |
} |
return; |
return; |
} |
} |
Line 1397 sub return_to_editor {
|
Line 1639 sub return_to_editor {
|
} |
} |
|
|
sub editfile_button { |
sub editfile_button { |
my ($url,$context) = @_; |
my ($url,$context,$editable) = @_; |
my $edittext=&mt('Edit'); |
my $edittext=&mt('Edit'); |
my $deltext=&mt('Delete'); |
my $deltext=&mt('Delete'); |
return <<"END"; |
my $output; |
<input type="button" value="$edittext" onclick="javascript:gotoeditor('$url');" name="edit_$context" /> |
if ($editable) { |
|
$output = ' |
<input type="button" value="$deltext" onclick="javascript:dodelete('$context');" name="del_$context" /> |
<input type="button" value="'.$edittext.'" onclick="javascript:gotoeditor('."'$url'".');" name="edit_'.$context.'" /> |
<input type="hidden" value="" name="deleteuploaded" /> |
'; |
END |
} |
|
$output .= ' |
|
<input type="button" value="'.$deltext.'" onclick="javascript:dodelete('."'$context'".');" name="del_'.$context.'" /> |
|
<input type="hidden" value="" name="deleteuploaded_'.$context.'" id="deleteuploaded_'.$context.'" /> |
|
'; |
|
return $output; |
} |
} |
|
|
sub editbutton_js { |
sub editbutton_js { |
|
my %js_lt = &Apache::lonlocal::texthash( |
|
min => 'Are you sure you want to delete the contents of the syllabus template?', |
|
file => 'Are you sure you want to delete the uploaded syllabus file?', |
|
noundo => 'This action cannot be reversed.' |
|
); |
|
&js_escape(\%js_lt); |
return <<ENDJS; |
return <<ENDJS; |
<script type="text/javascript"> |
<script type="text/javascript"> |
// <![CDATA[ |
// <![CDATA[ |
Line 1416 sub editbutton_js {
|
Line 1669 sub editbutton_js {
|
document.location.href = url+'?editmode=1&forceedit=1'; |
document.location.href = url+'?editmode=1&forceedit=1'; |
} |
} |
function dodelete(caller,url) { |
function dodelete(caller,url) { |
document.syllabus.deleteuploaded.value=caller; |
if (document.getElementById('deleteuploaded_'+caller)) { |
document.syllabus.submit(); |
document.getElementById('deleteuploaded_'+caller).value=1; |
|
if (caller == 'minimal') { |
|
if (confirm("$js_lt{'min'}"+"\\n"+"$js_lt{'noundo'}")) { |
|
document.syllabus.submit(); |
|
} |
|
} |
|
if (caller == 'file') { |
|
if (confirm("$js_lt{'file'}"+"\\n"+"$js_lt{'noundo'}")) { |
|
document.syllabus.submit(); |
|
} |
|
} |
|
} |
|
return; |
} |
} |
// ]]> |
// ]]> |
</script> |
</script> |