version 1.148, 2020/01/20 16:27:54
|
version 1.157, 2025/03/16 21:04:09
|
Line 40 use Apache::lonannounce;
|
Line 40 use Apache::lonannounce;
|
use Apache::lonlocal; |
use Apache::lonlocal; |
use Apache::lonhtmlcommon; |
use Apache::lonhtmlcommon; |
use Apache::lonspeller(); |
use Apache::lonspeller(); |
|
use Apache::lonwrapper(); |
use HTML::Entities(); |
use HTML::Entities(); |
|
|
sub handler { |
sub handler { |
Line 152 sub handler {
|
Line 153 sub handler {
|
&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; |
|
my $oldinhibit; |
|
if ($env{'form.only_body'}) { |
|
$oldinhibit = $env{'form.inhibitmenu'}; |
|
$env{'form.inhibitmenu'} = 'yes'; |
|
} |
my $result = &Apache::lonxml::xmlparse($r,$target,$filecontents, |
my $result = &Apache::lonxml::xmlparse($r,$target,$filecontents, |
'',%mystyle); |
'',%mystyle); |
|
if ($env{'form.only_body'}) { |
|
if ($oldinhibit ne '') { |
|
$env{'form.inhibitmenu'} = $oldinhibit; |
|
} else { |
|
delete($env{'form.inhibitmenu'}); |
|
} |
|
} |
&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 170 sub handler {
|
Line 183 sub handler {
|
} else { |
} else { |
my $brcrum; |
my $brcrum; |
if ($env{'form.folderpath'} =~ /^supplemental/) { |
if ($env{'form.folderpath'} =~ /^supplemental/) { |
|
&Apache::loncommon::validate_folderpath(1,'',$cnum,$cdom); |
my $title = $env{'form.title'}; |
my $title = $env{'form.title'}; |
if ($title eq '') { |
if ($title eq '') { |
$title = &mt('Syllabus'); |
$title = &mt('Syllabus'); |
Line 187 sub handler {
|
Line 201 sub handler {
|
unless ($allowed && $forceedit) { |
unless ($allowed && $forceedit) { |
if (($env{'user.name'} eq 'public') && ($env{'user.domain'} eq 'public') && |
if (($env{'user.name'} eq 'public') && ($env{'user.domain'} eq 'public') && |
($ENV{'SERVER_PORT'} == 443) && ($external =~ m{^http://}) && !($env{'form.usehttp'})) { |
($ENV{'SERVER_PORT'} == 443) && ($external =~ m{^http://}) && !($env{'form.usehttp'})) { |
unless (&Apache::lonnet::uses_sts()) { |
my $hostname = $r->hostname(); |
|
unless ((&Apache::lonnet::uses_sts()) || (&Apache::lonnet::waf_allssl($hostname))) { |
&redirect_to_http($r); |
&redirect_to_http($r); |
return OK; |
return OK; |
} |
} |
Line 204 sub handler {
|
Line 219 sub handler {
|
$is_pdf = 1; |
$is_pdf = 1; |
} |
} |
if ($env{'form.folderpath'} =~ /^supplemental/) { |
if ($env{'form.folderpath'} =~ /^supplemental/) { |
|
&Apache::loncommon::validate_folderpath(1,'',$cnum,$cdom); |
my $title = $env{'form.title'}; |
my $title = $env{'form.title'}; |
if ($title eq '') { |
if ($title eq '') { |
$title = &mt('Syllabus'); |
$title = &mt('Syllabus'); |
} |
} |
|
$title = &HTML::Entities::encode($title,'\'"<>&'); |
$brcrum = |
$brcrum = |
&Apache::lonhtmlcommon::docs_breadcrumbs(undef,$crstype,undef,$title,1); |
&Apache::lonhtmlcommon::docs_breadcrumbs(undef,$crstype,undef,$title,1); |
} |
} |
Line 313 sub handler {
|
Line 330 sub handler {
|
if ($allowed) { |
if ($allowed) { |
#---------------------------------- Print External URL Syllabus Info if editing |
#---------------------------------- Print External URL Syllabus Info if editing |
if ($target ne 'tex') { |
if ($target ne 'tex') { |
my $hostname = &Apache::lonnet::hostname($homeserver); |
my $link = &Apache::lonnet::url_prefix($r,$cdom,$homeserver,'web'). |
my $protocol = $Apache::lonnet::protocol{$homeserver}; |
$r->uri; |
$protocol = 'http' if ($protocol ne 'https'); |
|
my $link = $protocol.'://'.$hostname.$r->uri; |
|
$r->print('<div class="LC_left_float">' |
$r->print('<div class="LC_left_float">' |
.'<span class="LC_help_open_topic LC_info">' |
.'<span class="LC_help_open_topic LC_info">' |
.'<span class="LC_info">' |
.'<span class="LC_info">' |
Line 325 sub handler {
|
Line 340 sub handler {
|
.'</span>' |
.'</span>' |
.'</div><div style="padding:0;clear:both;margin:0;border:0"></div>'."\n"); |
.'</div><div style="padding:0;clear:both;margin:0;border:0"></div>'."\n"); |
my $lonhost = $r->dir_config('lonHostID'); |
my $lonhost = $r->dir_config('lonHostID'); |
$r->print(&chooser($external,$uploaded,$minimal,$cdom,$cnum,$lonhost, |
$r->print(&chooser($r,$external,$uploaded,$minimal,$cdom,$cnum,$lonhost, |
\%syllabusfields,\%syllabus)); |
\%syllabusfields,\%syllabus)); |
} |
} |
} else { |
} else { |
Line 433 sub handler {
|
Line 448 sub handler {
|
'box_111_showrssfeeds',$display); |
'box_111_showrssfeeds',$display); |
my ($numfeeds,$hiddenfeeds,$rsslinktext); |
my ($numfeeds,$hiddenfeeds,$rsslinktext); |
my $feeds=&Apache::lonrss::advertisefeeds($cnum,$cdom,$forceedit,\$numfeeds, |
my $feeds=&Apache::lonrss::advertisefeeds($cnum,$cdom,$forceedit,\$numfeeds, |
\$hiddenfeeds); |
\$hiddenfeeds,1); |
if ($numfeeds) { |
if ($numfeeds) { |
$r->print($feeds); |
$r->print($feeds); |
$rsslinktext = &mt('New RSS Feed or Blog'); |
$rsslinktext = &mt('New RSS Feed or Blog'); |
Line 461 sub handler {
|
Line 476 sub handler {
|
&Apache::lontemplate::print_end_template($r); |
&Apache::lontemplate::print_end_template($r); |
} else { |
} else { |
unless ($hidefeeds) { |
unless ($hidefeeds) { |
my $feeds = &Apache::lonrss::advertisefeeds($cnum,$cdom,$forceedit); |
my $feeds = &Apache::lonrss::advertisefeeds($cnum,$cdom,$forceedit,'','',1); |
if ($feeds ne '') { |
if ($feeds ne '') { |
&Apache::lontemplate::print_start_template($r,&mt('RSS Feeds and Blogs'),'LC_Box'); |
&Apache::lontemplate::print_start_template($r,&mt('RSS Feeds and Blogs'),'LC_Box'); |
$r->print($feeds); |
$r->print($feeds); |
Line 506 sub handler {
|
Line 521 sub handler {
|
$r->print($urls); |
$r->print($urls); |
$r->print("<br /><div>"); |
$r->print("<br /><div>"); |
&Apache::lontemplate::print_textarea_template($r, $data{$field}, |
&Apache::lontemplate::print_textarea_template($r, $data{$field}, |
$field, Apache::lontemplate->RICH_TEXT_ALWAYS_OFF); |
$field, $fields{$field}, Apache::lontemplate->RICH_TEXT_ALWAYS_OFF); |
&Apache::lontemplate::print_saveall_template($r); |
&Apache::lontemplate::print_saveall_template($r); |
$r->print("</div>"); |
$r->print("</div>"); |
&Apache::lontemplate::print_end_template($r); |
&Apache::lontemplate::print_end_template($r); |
Line 764 sub get_breadcrumbs{
|
Line 779 sub get_breadcrumbs{
|
my ($cdom,$cnum,$crstype,$args) = @_; |
my ($cdom,$cnum,$crstype,$args) = @_; |
return unless (ref($args) eq 'HASH'); |
return unless (ref($args) eq 'HASH'); |
if ($env{'form.folderpath'} =~ /^supplemental/) { |
if ($env{'form.folderpath'} =~ /^supplemental/) { |
|
&Apache::loncommon::validate_folderpath(1,'',$cnum,$cdom); |
my $title = $env{'form.title'}; |
my $title = $env{'form.title'}; |
if ($title eq '') { |
if ($title eq '') { |
$title = &mt('Syllabus'); |
$title = &mt('Syllabus'); |
Line 772 sub get_breadcrumbs{
|
Line 788 sub get_breadcrumbs{
|
&Apache::lonhtmlcommon::docs_breadcrumbs(undef,$crstype,undef,$title,1); |
&Apache::lonhtmlcommon::docs_breadcrumbs(undef,$crstype,undef,$title,1); |
if (ref($brcrum) eq 'ARRAY') { |
if (ref($brcrum) eq 'ARRAY') { |
$args->{'bread_crumbs'} = $brcrum; |
$args->{'bread_crumbs'} = $brcrum; |
|
$args->{'bread_crumbs_nomenu'} = 1; |
} |
} |
} else { |
} else { |
if ((&Apache::lonnet::is_on_map("public/$cdom/$cnum/syllabus")) |
if ((&Apache::lonnet::is_on_map("public/$cdom/$cnum/syllabus")) |
Line 788 sub get_breadcrumbs{
|
Line 805 sub get_breadcrumbs{
|
} |
} |
|
|
sub chooser { |
sub chooser { |
my ($external,$uploaded,$minimal,$cdom,$cnum,$lonhost,$fields,$values) = @_; |
my ($r,$external,$uploaded,$minimal,$cdom,$cnum,$lonhost,$fields,$values) = @_; |
my %lt = &Apache::lonlocal::texthash( |
my %lt = &Apache::lonlocal::texthash( |
'type' => 'Syllabus Type', |
'type' => 'Syllabus Type', |
'url' => 'External URL', |
'url' => 'External URL', |
Line 843 sub chooser {
|
Line 860 sub chooser {
|
$output .= '<label><input type="radio" name="choice" value="'.$item.'" '.$checked{$item}.' onclick="toggleEditor('."'$item'".')" />'. |
$output .= '<label><input type="radio" name="choice" value="'.$item.'" '.$checked{$item}.' onclick="toggleEditor('."'$item'".')" />'. |
$lt{$item}.'</label><br />'; |
$lt{$item}.'</label><br />'; |
} |
} |
|
my $urllabeltext = &HTML::Entities::encode(&mt('Enter URL'),'"&<>'); |
$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','$protocol'".');">'.$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" aria-label="'.$urllabeltext.'" />'."\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". |
'<div id="minimal" class="LC_left_float" style="display: '.$display{'minimal'}.'">'."\n". |
'<div id="minimal" class="LC_left_float" style="display: '.$display{'minimal'}.'">'."\n". |
'<fieldset><legend>'.$lt{'minimal'}.'</legend>'; |
'<fieldset><legend>'.$lt{'minimal'}.'</legend>'; |
if ($minimal) { |
if ($minimal) { |
my ($absurl,$filename,$depbutton) = &syllabus_file_info($minimal,$cnum,$cdom,$lonhost,'minimal'); |
my ($absurl,$filename,$depbutton) = &syllabus_file_info($r,$minimal,$cnum,$cdom,$lonhost,'minimal'); |
$output .= '<a href="javascript:extUrlPreview('."'currminimal'".');">'.$lt{'pr'}.'</a>'. |
$output .= '<a href="javascript:extUrlPreview('."'currminimal'".');">'.$lt{'pr'}.'</a>'. |
'<input type="hidden" name="minimalfile" value="'.&HTML::Entities::encode($absurl).'?inhibitmenu=yes" id="currminimal" />'. |
'<input type="hidden" name="minimalfile" value="'.&HTML::Entities::encode($absurl).'?inhibitmenu=yes" id="currminimal" />'. |
$depbutton; |
$depbutton; |
} else { |
} else { |
$output .= &mt('Title of Syllabus Page:').' '. |
$output .= '<label>'.&mt('Title of Syllabus Page:').' '. |
'<input type="text" id="minimaltitle" name="syllabustitle" value="'.&mt('Syllabus').'" size="30" />'."\n". |
'<input type="text" id="minimaltitle" name="syllabustitle" value="'.&mt('Syllabus').'" size="30" /></label>'."\n". |
' <input type="submit" name="storeminimal" value="'.$lt{'sved'}.'" />'."\n"; |
' <input type="submit" name="storeminimal" value="'.$lt{'sved'}.'" />'."\n"; |
} |
} |
$output .= '</fieldset></div>'."\n". |
$output .= '</fieldset></div>'."\n". |
'<div id="file" class="LC_left_float" style="display: '.$display{'file'}.'">'."\n". |
'<div id="file" class="LC_left_float" style="display: '.$display{'file'}.'">'."\n". |
'<fieldset><legend>'.$lt{'file'}.'</legend>'; |
'<fieldset><legend>'.$lt{'file'}.'</legend>'; |
if ($uploaded) { |
if ($uploaded) { |
my ($absurl,$filename,$depbutton) = &syllabus_file_info($uploaded,$cnum,$cdom,$lonhost,'file'); |
my ($absurl,$filename,$depbutton) = &syllabus_file_info($r,$uploaded,$cnum,$cdom,$lonhost,'file'); |
$output .= '<span class="LC_nobreak">'.$lt{'curr'}.' '. |
$output .= '<span class="LC_nobreak">'.$lt{'curr'}.' '. |
'<input type="hidden" name="uploadedfile" value="'.&HTML::Entities::encode($absurl).'?inhibitmenu=yes" id="currfile" />'. |
'<input type="hidden" name="uploadedfile" value="'.&HTML::Entities::encode($absurl).'?inhibitmenu=yes" id="currfile" />'. |
'<a href="javascript:extUrlPreview('."'currfile'".');">'.$filename.'</a></span>'.$depbutton. |
'<a href="javascript:extUrlPreview('."'currfile'".');">'.$filename.'</a></span>'.$depbutton. |
Line 874 sub chooser {
|
Line 892 sub chooser {
|
} else { |
} else { |
$output .= $lt{'upl'}; |
$output .= $lt{'upl'}; |
} |
} |
|
my $labeltext = &HTML::Entities::encode(&mt('Choose syllabus file'),'"&<>'); |
$output .= '<br />'."\n". |
$output .= '<br />'."\n". |
'<span class="LC_nobreak">'. |
'<span class="LC_nobreak">'. |
'<input type="file" name="syllabusfile" size="55" />'."\n". |
'<input type="file" name="syllabusfile" size="55" aria-label="'.$labeltext.'" />'."\n". |
' <input type="submit" name="storefile" value="'.$lt{'save'}.'" />'. |
' <input type="submit" name="storefile" value="'.$lt{'save'}.'" />'. |
'</span><br />'. |
'</span><br />'. |
'<label>'. |
'<label>'. |
Line 901 sub chooser {
|
Line 920 sub chooser {
|
} |
} |
|
|
sub syllabus_file_info { |
sub syllabus_file_info { |
my ($item,$cnum,$cdom,$lonhost,$context) = @_; |
my ($r,$item,$cnum,$cdom,$lonhost,$context) = @_; |
my $hostname = &Apache::lonnet::hostname($lonhost); |
my $hostname = &Apache::lonnet::hostname($lonhost); |
my $protocol = $Apache::lonnet::protocol{$lonhost}; |
my $protocol = $Apache::lonnet::protocol{$lonhost}; |
$protocol = 'http' if ($protocol ne 'https'); |
$protocol = 'http' if ($protocol ne 'https'); |
|
my $alias = &Apache::lonnet::use_proxy_alias($r,$lonhost); |
|
$hostname = $alias if ($alias ne ''); |
my $absurl = $protocol.'://'.$hostname.$item; |
my $absurl = $protocol.'://'.$hostname.$item; |
my ($filename) = ($item =~ m{([^/]+)$}); |
my ($filename) = ($item =~ m{([^/]+)$}); |
my $file=&Apache::lonnet::filelocation("",$item); |
my $file=&Apache::lonnet::filelocation("",$item); |
Line 1038 sub get_personnel {
|
Line 1059 sub get_personnel {
|
if ($allowed) { |
if ($allowed) { |
$r->print(&Apache::loncommon::start_data_table(). |
$r->print(&Apache::loncommon::start_data_table(). |
&Apache::loncommon::start_data_table_header_row(). |
&Apache::loncommon::start_data_table_header_row(). |
'<th>'.&mt('Role hidden?').'</th><th>'.&mt('Role').'</th>'. |
'<th>'.&mt('Role (hidden if checked)').'</th>'. |
'<th>'.&mt('Personnel (hidden if checked)').'</th>'. |
'<th>'.&mt('Personnel (hidden if checked)').'</th>'. |
&Apache::loncommon::end_data_table_header_row()); |
&Apache::loncommon::end_data_table_header_row()); |
} else { |
} else { |
Line 1070 sub get_personnel {
|
Line 1091 sub get_personnel {
|
$checked = ' checked="checked"'; |
$checked = ' checked="checked"'; |
} |
} |
$r->print(&Apache::loncommon::start_data_table_row(). |
$r->print(&Apache::loncommon::start_data_table_row(). |
'<td>'. |
'<td><span class="LC_nobreak"><label>'. |
'<input type="checkbox" name="hiderole" value="'.$element.'" '. |
'<input type="checkbox" name="hiderole" value="'.$element.'" '. |
$checked.' />'. |
$checked.' />'.$roletext.'</label></span></td><td>'); |
'</td><td>'.$roletext.'</td><td>'); |
|
} else { |
} else { |
$r->print(&Apache::lonhtmlcommon::row_title($roletext)); |
$r->print(&Apache::lonhtmlcommon::row_title($roletext)); |
} |
} |