version 1.325, 2008/12/19 18:57:43
|
version 1.393, 2009/10/16 19:00:44
|
Line 35 use Apache::Constants qw(:common :http);
|
Line 35 use Apache::Constants qw(:common :http);
|
use Apache::imsexport; |
use Apache::imsexport; |
use Apache::lonnet; |
use Apache::lonnet; |
use Apache::loncommon; |
use Apache::loncommon; |
|
use Apache::lonhtmlcommon; |
use LONCAPA::map(); |
use LONCAPA::map(); |
use Apache::lonratedt(); |
use Apache::lonratedt(); |
use Apache::lonxml; |
use Apache::lonxml; |
Line 59 my $hadchanges;
|
Line 60 my $hadchanges;
|
my %help=(); |
my %help=(); |
|
|
|
|
|
|
sub mapread { |
sub mapread { |
my ($coursenum,$coursedom,$map)=@_; |
my ($coursenum,$coursedom,$map)=@_; |
return |
return |
Line 73 sub storemap {
|
Line 73 sub storemap {
|
&LONCAPA::map::storemap('/uploaded/'.$coursedom.'/'.$coursenum.'/'. |
&LONCAPA::map::storemap('/uploaded/'.$coursedom.'/'.$coursenum.'/'. |
$map,1); |
$map,1); |
if ($errtext) { return ($errtext,2); } |
if ($errtext) { return ($errtext,2); } |
|
|
$hadchanges=1; |
$hadchanges=1; |
return ($errtext,0); |
return ($errtext,0); |
} |
} |
Line 120 sub dumpbutton {
|
Line 120 sub dumpbutton {
|
my $type = &Apache::loncommon::course_type(); |
my $type = &Apache::loncommon::course_type(); |
if ($home+$other==0) { return ''; } |
if ($home+$other==0) { return ''; } |
if ($home) { |
if ($home) { |
return '<div>'. |
my $link = "<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"dumpcourse\", \"".&mt('Dump '.$type.' DOCS to Construction Space')."\")'>".&mt('Dump '.$type.' DOCS to Construction Space')."</a>"; |
'<input type="submit" name="dumpcourse" value="'. |
return $link.' '. |
&mt('Dump '.$type.' DOCS to Construction Space').'" />'. |
&Apache::loncommon::help_open_topic('Docs_Dump_Course_Docs').'<br />'; |
&Apache::loncommon::help_open_topic('Docs_Dump_Course_Docs'). |
|
'</div>'; |
|
} else { |
} else { |
return '<div>'. |
return '<div>'. |
&mt('Dump '.$type. |
&mt('Dump '.$type. |
Line 136 sub dumpbutton {
|
Line 134 sub dumpbutton {
|
sub clean { |
sub clean { |
my ($title)=@_; |
my ($title)=@_; |
$title=~s/[^\w\/\!\$\%\^\*\-\_\=\+\;\:\,\\\|\`\~]+/\_/gs; |
$title=~s/[^\w\/\!\$\%\^\*\-\_\=\+\;\:\,\\\|\`\~]+/\_/gs; |
return $title; |
return $title; |
} |
} |
|
|
|
|
Line 145 sub dumpcourse {
|
Line 143 sub dumpcourse {
|
my ($r) = @_; |
my ($r) = @_; |
my $type = &Apache::loncommon::course_type(); |
my $type = &Apache::loncommon::course_type(); |
$r->print(&Apache::loncommon::start_page('Dump '.$type.' DOCS to Construction Space'). |
$r->print(&Apache::loncommon::start_page('Dump '.$type.' DOCS to Construction Space'). |
'<form name="dumpdoc" method="post">'); |
'<form name="dumpdoc" action="" method="post">'); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Dump '.$type.' DOCS to Construction Space')); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Dump '.$type.' DOCS to Construction Space')); |
my ($home,$other,%outhash)=&authorhosts(); |
my ($home,$other,%outhash)=&authorhosts(); |
unless ($home) { return ''; } |
unless ($home) { return ''; } |
Line 178 sub dumpcourse {
|
Line 176 sub dumpcourse {
|
my $fail=0; |
my $fail=0; |
for (my $i=0;$i<$#dirs;$i++) { |
for (my $i=0;$i<$#dirs;$i++) { |
$makepath.='/'.$dirs[$i]; |
$makepath.='/'.$dirs[$i]; |
unless (-e $makepath) { |
unless (-e $makepath) { |
unless(mkdir($makepath,0777)) { $fail=1; } |
unless(mkdir($makepath,0777)) { $fail=1; } |
} |
} |
} |
} |
$r->print('<br /><tt>'.$item.'</tt> => <tt>'.$newfilename.'</tt>: '); |
$r->print('<br /><tt>'.$item.'</tt> => <tt>'.$newfilename.'</tt>: '); |
Line 265 sub dumpcourse {
|
Line 263 sub dumpcourse {
|
|
|
sub exportbutton { |
sub exportbutton { |
my $type = &Apache::loncommon::course_type(); |
my $type = &Apache::loncommon::course_type(); |
return '<div>'. |
return "<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"exportcourse\", \"".&mt('IMS Export')."\")'>".&mt('IMS Export')."</a>". |
'<input type="submit" name="exportcourse" value="'. |
&Apache::loncommon::help_open_topic('Docs_Export_Course_Docs').'<br />'; |
&mt('Export '.$type.' to IMS').'" />'. |
|
&Apache::loncommon::help_open_topic('Docs_Export_Course_Docs').'</div>'; |
|
} |
} |
|
|
|
|
Line 281 sub exportcourse {
|
Line 277 sub exportcourse {
|
my $numdisc = keys(%discussiontime); |
my $numdisc = keys(%discussiontime); |
my $navmap = Apache::lonnavmaps::navmap->new(); |
my $navmap = Apache::lonnavmaps::navmap->new(); |
if (!defined($navmap)) { |
if (!defined($navmap)) { |
$r->print(&Apache::loncommon::start_page('Export '.lc($type).' to IMS content package'). |
$r->print(&Apache::loncommon::start_page('Export '.$type.' to IMS Package'). |
'<h2>IMS Export Failed</h2>'. |
'<h2>'.&mt('IMS Export Failed').'</h2>'. |
'<div class="LC_error">'. |
'<div class="LC_error">'. |
&mt('Unable to retrieve information about course contents'). |
&mt('Unable to retrieve information about course contents'). |
'</div><a href="/adm/coursedocs">'.&mt('Return to Course Editor').'</a>'); |
'</div><a href="/adm/coursedocs">'.&mt('Return to Course Editor').'</a>'); |
Line 302 sub exportcourse {
|
Line 298 sub exportcourse {
|
my @exportitems = &Apache::loncommon::get_env_multiple('form.archive'); |
my @exportitems = &Apache::loncommon::get_env_multiple('form.archive'); |
my @discussions = &Apache::loncommon::get_env_multiple('form.discussion'); |
my @discussions = &Apache::loncommon::get_env_multiple('form.discussion'); |
if (@exportitems == 0 && @discussions == 0) { |
if (@exportitems == 0 && @discussions == 0) { |
$outcome = '<br />As you did not select any content items or discussions for export, an IMS package has not been created. Please <a href="javascript:history.go(-1)">go back</a> to select either content items or discussions for export'; |
$outcome = |
|
'<p class="LC_warning">' |
|
.&mt('As you did not select any content items or discussions' |
|
.' for export, an IMS package has not been created.') |
|
.'</p>' |
|
.'<p>' |
|
.&mt('Please [_1]go back[_2] to select either content items' |
|
.' or discussions for export.' |
|
,'<a href="javascript:history.go(-1)">' |
|
,'</a>') |
|
.'</p>'; |
} else { |
} else { |
my $now = time; |
my $now = time; |
my %symbs; |
my %symbs; |
Line 325 sub exportcourse {
|
Line 331 sub exportcourse {
|
open(OUTPUT, "zip -r $imszip * 2> /dev/null |"); |
open(OUTPUT, "zip -r $imszip * 2> /dev/null |"); |
close(OUTPUT); |
close(OUTPUT); |
chdir $cwd; |
chdir $cwd; |
$outcome .= &mt('Download the zip file from <a href="[_1]">IMS '.lc($type).' archive</a><br />',$imszipfile,); |
|
if ($copyresult) { |
if ($copyresult) { |
$outcome .= &mt('The following errors occurred during export - [_1]',$copyresult); |
$outcome .= '<p class="LC_error">' |
|
.&mt('The following errors occurred during export - [_1]' |
|
,$copyresult) |
|
.'</p>'; |
} |
} |
|
$outcome .= '<p>' |
|
.&mt('[_1]Your IMS package[_2] is ready for download.' |
|
,'<a href="'.$imszipfile.'">','</a>') |
|
.'</p>'; |
} else { |
} else { |
$outcome = '<br />'.&mt('Unfortunately you will not be able to retrieve an IMS archive of this posts at this time, because there was a problem creating a manifest file.').'<br />'; |
$outcome = '<p class="LC_error">' |
|
.&mt('Unfortunately you will not be able to retrieve' |
|
.' an IMS archive of this posts at this time,' |
|
.' because there was a problem creating a' |
|
.' manifest file.') |
|
.'</p>' |
|
.'<p><a href="javascript:history.go(-1)">' |
|
.&mt('Go Back') |
|
.'</a></p>'; |
} |
} |
} |
} |
$r->print(&Apache::loncommon::start_page('Export '.lc($type).' to IMS content package')); |
$r->print(&Apache::loncommon::start_page('Export '.$type.' to IMS Package')); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Export '.lc($type).' to IMS content package')); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs('IMS Export')); |
$r->print($outcome); |
$r->print($outcome); |
$r->print(&Apache::loncommon::end_page()); |
$r->print(&Apache::loncommon::end_page()); |
} else { |
} else { |
my $display; |
my $display; |
$display = '<form name="exportdoc" method="post">'."\n"; |
$display = '<form name="exportdoc" action="" method="post">'."\n"; |
$display .= &mt('Choose which items you wish to export from your '.$type.'.<br /><br />'); |
$display .= '<p>' |
$display .= '<table border="0" cellspacing="0" cellpadding="3">'. |
.&mt('Choose which items you wish to export from your '.$type.'.') |
'<tr><td><fieldset><legend> <b>Content items</b></legend>'. |
.'</p>'; |
'<input type="button" value="check all" '. |
$display .= '<div class="LC_columnSection"><fieldset>'. |
|
'<legend>'.&mt('Content items').'</legend>'. |
|
'<input type="button" value="'.&mt('check all').'" '. |
'onclick="javascript:checkAll(document.exportdoc.archive)" />'. |
'onclick="javascript:checkAll(document.exportdoc.archive)" />'. |
' <input type="button" value="uncheck all"'. |
' <input type="button" value="'.&mt('uncheck all').'"'. |
' onclick="javascript:uncheckAll(document.exportdoc.archive)" /></fieldset></td>'. |
' onclick="javascript:uncheckAll(document.exportdoc.archive)" /></fieldset>'. |
'<td> </td><td> </td>'. |
'<fieldset>'. |
'<td align="right"><fieldset><legend> <b>Discussion posts'. |
'<legend>'.&mt('Discussion posts').'</legend>'. |
'</b></legend><input type="button" value="check all"'. |
'<input type="button" value="'.&mt('check all').'"'. |
' onclick="javascript:checkAll(document.exportdoc.discussion)" />'. |
' onclick="javascript:checkAll(document.exportdoc.discussion)" />'. |
' <input type="button" value="uncheck all"'. |
' <input type="button" value="'.&mt('uncheck all').'"'. |
' onclick="javascript:uncheckAll(document.exportdoc.discussion)" /></fieldset></td>'. |
' onclick="javascript:uncheckAll(document.exportdoc.discussion)" />'. |
'</tr></table>'; |
'</fieldset></div>'; |
my $curRes; |
my $curRes; |
my $depth = 0; |
my $depth = 0; |
my $count = 0; |
my $count = 0; |
Line 362 sub exportcourse {
|
Line 384 sub exportcourse {
|
my %parent = (); |
my %parent = (); |
my %children = (); |
my %children = (); |
my $lastcontainer = $startcount; |
my $lastcontainer = $startcount; |
my @bgcolors = ('#F6F6F6','#FFFFFF'); |
$display .= &Apache::loncommon::start_data_table() |
$display .= '<table cellspacing="0"><tr>'. |
.&Apache::loncommon::start_data_table_header_row() |
'<td><b>Export content item?<br /></b></td><td> </td><td align="right">'."\n"; |
.'<th>'.&mt('Export content item?').'</th>' |
|
.'<th>'; |
if ($numdisc > 0) { |
if ($numdisc > 0) { |
$display.='<b>Export discussion posts?</b>'."\n"; |
$display .= &mt('Export discussion posts?'); |
|
} else { |
|
$display .= ' '; |
} |
} |
$display.=' </td></tr>'; |
$display .= '</th>' |
|
.&Apache::loncommon::end_data_table_header_row(); |
while ($curRes = $it->next()) { |
while ($curRes = $it->next()) { |
if (ref($curRes)) { |
if (ref($curRes)) { |
$count ++; |
$count ++; |
Line 389 sub exportcourse {
|
Line 415 sub exportcourse {
|
$ressymb = 'bulletin___'.$3.'___adm/wrapper/adm/'.$1.'/'.$2.'/'.$3.'/bulletinboard'; |
$ressymb = 'bulletin___'.$3.'___adm/wrapper/adm/'.$1.'/'.$2.'/'.$3.'/bulletinboard'; |
} |
} |
} |
} |
my $color = $count%2; |
$display .= &Apache::loncommon::start_data_table_row() |
$display .='<tr bgcolor='.$bgcolors[$color].'><td>'."\n". |
.'<td>'."\n" |
'<input type="checkbox" name="archive" value="'.$count.'" '; |
.'<input type="checkbox" name="archive" value="'.$count.'" '; |
if (($curRes->is_sequence()) || ($curRes->is_page())) { |
if (($curRes->is_sequence()) || ($curRes->is_page())) { |
my $checkitem = $count + $boards + $startcount; |
my $checkitem = $count + $boards + $startcount; |
$display .= 'onClick="javascript:propagateCheck('."'$checkitem'".')"'; |
$display .= 'onclick="javascript:propagateCheck('."'$checkitem'".')"'; |
} |
} |
$display .= ' />'."\n"; |
$display .= ' />'."\n"; |
for (my $i=0; $i<$depth; $i++) { |
for (my $i=0; $i<$depth; $i++) { |
$display .= '<img src="/adm/lonIcons/whitespace1.gif" class="LC_docs_spacer" /><img src="/adm/lonIcons/whitespace1.gif" class="LC_docs_spacer" />'."\n"; |
$display .= '<img src="/adm/lonIcons/whitespace1.gif" class="LC_docs_spacer" alt="" />' |
|
.'<img src="/adm/lonIcons/whitespace1.gif" class="LC_docs_spacer" alt="" />'."\n"; |
} |
} |
if ($curRes->is_sequence()) { |
if ($curRes->is_sequence()) { |
$display .= '<img src="/adm/lonIcons/navmap.folder.open.gif"> '."\n"; |
$display .= '<img src="/adm/lonIcons/navmap.folder.open.gif" alt="" /> '."\n"; |
$lastcontainer = $count + $startcount + $boards; |
$lastcontainer = $count + $startcount + $boards; |
} elsif ($curRes->is_page()) { |
} elsif ($curRes->is_page()) { |
$display .= '<img src="/adm/lonIcons/navmap.page.open.gif"> '."\n"; |
$display .= '<img src="/adm/lonIcons/navmap.page.open.gif" alt="" /> '."\n"; |
$lastcontainer = $count + $startcount + $boards; |
$lastcontainer = $count + $startcount + $boards; |
} |
} |
my $currelem = $count+$boards+$startcount; |
my $currelem = $count+$boards+$startcount; |
$children{$parent{$depth}} .= $currelem.':'; |
$children{$parent{$depth}} .= $currelem.':'; |
$display .= ' '.$curRes->title().'</td>'; |
$display .= ' '.$curRes->title().'</td>'."\n"; |
|
|
|
# Existing discussion posts? |
if ($discussiontime{$ressymb} > 0) { |
if ($discussiontime{$ressymb} > 0) { |
$boards ++; |
$boards ++; |
$currelem = $count+$boards+$startcount; |
$currelem = $count+$boards+$startcount; |
$display .= '<td> </td><td align="right"><input type="checkbox" name="discussion" value="'.$count.'" /> </td>'."\n"; |
$display .= '<td align="right">' |
|
.'<input type="checkbox" name="discussion" value="'.$count.'" />' |
|
.'</td>'."\n"; |
} else { |
} else { |
$display .= '<td colspan="2"> </td>'."\n"; |
$display .= '<td> </td>'."\n"; |
} |
} |
|
$display .= &Apache::loncommon::end_data_table_row(); |
} |
} |
} |
} |
|
$display .= &Apache::loncommon::end_data_table(); |
my $scripttag = qq| |
my $scripttag = qq| |
<script> |
<script type="text/javascript"> |
|
// <![CDATA[ |
function checkAll(field) { |
function checkAll(field) { |
if (field.length > 0) { |
if (field.length > 0) { |
for (i = 0; i < field.length; i++) { |
for (i = 0; i < field.length; i++) { |
Line 431 function checkAll(field) {
|
Line 464 function checkAll(field) {
|
field.checked = true |
field.checked = true |
} |
} |
} |
} |
|
|
function uncheckAll(field) { |
function uncheckAll(field) { |
if (field.length > 0) { |
if (field.length > 0) { |
for (i = 0; i < field.length; i++) { |
for (i = 0; i < field.length; i++) { |
Line 446 function propagateCheck(item) {
|
Line 479 function propagateCheck(item) {
|
if (document.exportdoc.elements[item].checked == true) { |
if (document.exportdoc.elements[item].checked == true) { |
containerCheck(item) |
containerCheck(item) |
} |
} |
} |
} |
|
|
function containerCheck(item) { |
function containerCheck(item) { |
document.exportdoc.elements[item].checked = true |
document.exportdoc.elements[item].checked = true |
Line 469 function containerCheck(item) {
|
Line 502 function containerCheck(item) {
|
for (var j=0; j<parents[item].length; j++) { |
for (var j=0; j<parents[item].length; j++) { |
containerCheck(parents[item][j]) |
containerCheck(parents[item][j]) |
} |
} |
} |
} |
} |
} |
|
// ]]> |
</script> |
</script> |
|; |
|; |
$r->print(&Apache::loncommon::start_page('Export '.lc($type).' to IMS content package', |
$r->print(&Apache::loncommon::start_page('Export '.$type.' to IMS Package', |
$scripttag)); |
$scripttag)); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Export '.lc($type).' to IMS content package')); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs('IMS Export')); |
$r->print($display.'</table>'. |
$r->print($display. |
'<p><input type="hidden" name="finishexport" value="1">'. |
'<p><input type="hidden" name="finishexport" value="1" />'. |
'<input type="submit" name="exportcourse" value="'. |
'<input type="submit" name="exportcourse" value="'. |
&mt('Export '.$type.' DOCS').'" /></p></form>'); |
&mt('Export').'" /></p></form>'); |
} |
} |
} |
} |
|
|
Line 763 sub replicate_content {
|
Line 796 sub replicate_content {
|
if ($caller eq 'templateupload') { |
if ($caller eq 'templateupload') { |
$url = $symb; |
$url = $symb; |
$url =~ s#//#/#g; |
$url =~ s#//#/#g; |
} else { |
} else { |
($map,$ind,$url)=&Apache::lonnet::decode_symb($symb); |
($map,$ind,$url)=&Apache::lonnet::decode_symb($symb); |
} |
} |
my $content; |
my $content; |
Line 803 sub replicate_content {
|
Line 836 sub replicate_content {
|
$$message = 'Could not render '.$url.' server message - '.$rtncode."<br />\n"; |
$$message = 'Could not render '.$url.' server message - '.$rtncode."<br />\n"; |
} |
} |
} elsif ($caller eq 'noedit') { |
} elsif ($caller eq 'noedit') { |
# Need to render the resource without the LON-CAPA Internal header and the Post discussion footer, and then set $content equal to this. |
# Need to render the resource without the LON-CAPA Internal header and the Post discussion footer, and then set $content equal to this. |
$repstatus = 'ok'; |
$repstatus = 'ok'; |
$content = 'Not the owner of this resource'; |
$content = 'Not the owner of this resource'; |
} |
} |
if ($repstatus eq 'ok') { |
if ($repstatus eq 'ok') { |
print $copiedfile $content; |
print $copiedfile $content; |
Line 856 sub extract_media {
|
Line 889 sub extract_media {
|
} |
} |
} |
} |
if ($caller eq 'resource') { |
if ($caller eq 'resource') { |
my $respath = $Apache::lonnet::perlvar{'lonDocRoot'}.'/res'; |
my $respath = $Apache::lonnet::perlvar{'lonDocRoot'}.'/res'; |
my $embed_path = &Apache::lonnet::filelocation($respath,$embed_url); |
my $embed_path = &Apache::lonnet::filelocation($respath,$embed_url); |
$embed_content = &Apache::lonnet::getfile($embed_path); |
$embed_content = &Apache::lonnet::getfile($embed_path); |
unless ($embed_content eq -1) { |
unless ($embed_content eq -1) { |
$repstatus = 'ok'; |
$repstatus = 'ok'; |
} |
} |
} elsif ($caller eq 'uploaded') { |
} elsif ($caller eq 'uploaded') { |
|
|
$repstatus = &Apache::lonnet::getuploaded('GET',$embed_url,$cdom,$cnum,\$embed_content,$rtncode); |
$repstatus = &Apache::lonnet::getuploaded('GET',$embed_url,$cdom,$cnum,\$embed_content,$rtncode); |
} |
} |
if ($repstatus eq 'ok') { |
if ($repstatus eq 'ok') { |
Line 925 sub group_import {
|
Line 958 sub group_import {
|
|
|
while (@files) { |
while (@files) { |
my ($name, $url, $residx) = @{ shift(@files) }; |
my ($name, $url, $residx) = @{ shift(@files) }; |
if (($url =~ m{^/uploaded/\Q$coursedom\E/\Q$coursenum\E/(default_\d+\.)(page|sequence)$}) |
if (($url =~ m{^/uploaded/\Q$coursedom\E/\Q$coursenum\E/(default_\d+\.)(page|sequence)$}) |
&& ($caller eq 'londocs') |
&& ($caller eq 'londocs') |
&& (!&Apache::lonnet::stat_file($url))) { |
&& (!&Apache::lonnet::stat_file($url))) { |
|
|
my $errtext = ''; |
my $errtext = ''; |
my $fatal = 0; |
my $fatal = 0; |
my $newmapstr = '<map>'."\n". |
my $newmapstr = '<map>'."\n". |
Line 948 sub group_import {
|
Line 981 sub group_import {
|
} |
} |
} |
} |
if ($url) { |
if ($url) { |
if (!$residx |
if (!$residx |
|| defined($LONCAPA::map::zombies[$residx])) { |
|| defined($LONCAPA::map::zombies[$residx])) { |
$residx = &LONCAPA::map::getresidx($url,$residx); |
$residx = &LONCAPA::map::getresidx($url,$residx); |
push(@LONCAPA::map::order, $residx); |
push(@LONCAPA::map::order, $residx); |
Line 957 sub group_import {
|
Line 990 sub group_import {
|
if ($url=~m{^http://} || $url=~m{^https://}) { $ext = 'true'; } |
if ($url=~m{^http://} || $url=~m{^https://}) { $ext = 'true'; } |
$url = &LONCAPA::map::qtunescape($url); |
$url = &LONCAPA::map::qtunescape($url); |
$name = &LONCAPA::map::qtunescape($name); |
$name = &LONCAPA::map::qtunescape($name); |
$LONCAPA::map::resources[$residx] = |
$LONCAPA::map::resources[$residx] = |
join(':', ($name, $url, $ext, 'normal', 'res')); |
join(':', ($name, $url, $ext, 'normal', 'res')); |
} |
} |
} |
} |
Line 988 sub breadcrumbs {
|
Line 1021 sub breadcrumbs {
|
my $url='/adm/coursedocs?folderpath='. |
my $url='/adm/coursedocs?folderpath='. |
&escape($folderpath); |
&escape($folderpath); |
my $name=&unescape($foldername); |
my $name=&unescape($foldername); |
# randompick number, hidden, encrypted, random order, is appended with ":"s to the foldername |
# randompick number, hidden, encrypted, random order, is appended with ":"s to the foldername |
$name=~s/\:(\d*)\:(\w*)\:(\w*):(\d*)$//; |
$name=~s/\:(\d*)\:(\w*)\:(\w*):(\d*)$//; |
if ($1 ne '') { |
if ($1 ne '') { |
$randompick=$1; |
$randompick=$1; |
} else { |
} else { |
$randompick=-1; |
$randompick=-1; |
Line 999 sub breadcrumbs {
|
Line 1032 sub breadcrumbs {
|
if ($3) { $isencrypted=1; } |
if ($3) { $isencrypted=1; } |
if ($4 ne '') { $is_random_order = 1; } |
if ($4 ne '') { $is_random_order = 1; } |
if ($folder eq 'supplemental') { |
if ($folder eq 'supplemental') { |
if ($allowed) { |
$name = &mt('Supplemental '.$type.' Documents'); |
$name = &mt('Supplemental '.$type.' Documents'); |
|
} else { |
|
$name = &mt($type.' Documents'); |
|
} |
|
} |
} |
&Apache::lonhtmlcommon::add_breadcrumb( |
&Apache::lonhtmlcommon::add_breadcrumb( |
{'href'=>$url.$cpinfo, |
{'href'=>$url.$cpinfo, |
'title'=>$name, |
'title'=>$name, |
'text'=>'<font size="+1">'. |
'text'=>$name, |
$name.'</font>', |
|
'no_mt'=>1, |
'no_mt'=>1, |
}); |
}); |
$plain.=$name.' > '; |
$plain.=$name.' > '; |
} |
} |
$plain=~s/\>\;\s*$//; |
$plain=~s/\>\;\s*$//; |
return (&Apache::lonhtmlcommon::breadcrumbs(undef,undef,0,'nohelp', |
return (&Apache::lonhtmlcommon::breadcrumbs(undef,undef,0,'nohelp', |
'LC_docs_path'),$randompick,$ishidden,$isencrypted,$plain,$is_random_order); |
undef, undef, 1 ),$randompick,$ishidden,$isencrypted,$plain,$is_random_order); |
} |
} |
|
|
sub log_docs { |
sub log_docs { |
Line 1129 sub docs_change_log {
|
Line 1157 sub docs_change_log {
|
foreach my $key (@changes) { |
foreach my $key (@changes) { |
$wholeentry.=':'.$docslog{$id}{'logentry'}{$key}; |
$wholeentry.=':'.$docslog{$id}{'logentry'}{$key}; |
} |
} |
if ($wholeentry!~/\Q$env{'form.containingphrase'}\E/i) { next; } |
if ($wholeentry!~/\Q$env{'form.containingphrase'}\E/i) { next; } |
} |
} |
my $count = 0; |
my $count = 0; |
my $time = |
my $time = |
Line 1180 sub docs_change_log {
|
Line 1208 sub docs_change_log {
|
if ($oldname ne '' && $oldname ne $newname) { |
if ($oldname ne '' && $oldname ne $newname) { |
$r->print(&LONCAPA::map::qtescape($newname)); |
$r->print(&LONCAPA::map::qtescape($newname)); |
} |
} |
} |
} |
$r->print('<ul>'); |
$r->print('<ul>'); |
for (my $idx=0;$idx<=$docslog{$id}{'logentry'}{'maxidx'};$idx++) { |
for (my $idx=0;$idx<=$docslog{$id}{'logentry'}{'maxidx'};$idx++) { |
if ($docslog{$id}{'logentry'}{'after_order_res_'.$idx}) { |
if ($docslog{$id}{'logentry'}{'after_order_res_'.$idx}) { |
Line 1218 sub update_paste_buffer {
|
Line 1246 sub update_paste_buffer {
|
|
|
my ($errtext,$fatal) = &mapread($coursenum,$coursedom, |
my ($errtext,$fatal) = &mapread($coursenum,$coursedom, |
$env{'form.copyfolder'}); |
$env{'form.copyfolder'}); |
|
|
return if ($fatal); |
return if ($fatal); |
|
|
# Mark for copying |
# Mark for copying |
Line 1227 sub update_paste_buffer {
|
Line 1255 sub update_paste_buffer {
|
&Apache::lonnet::appenv({'docs.markedcopy_supplemental' => $title}); |
&Apache::lonnet::appenv({'docs.markedcopy_supplemental' => $title}); |
($title) = &parse_supplemental_title($title); |
($title) = &parse_supplemental_title($title); |
} elsif ($env{'docs.markedcopy_supplemental'}) { |
} elsif ($env{'docs.markedcopy_supplemental'}) { |
&Apache::lonnet::delenv('docs\\.markedcopy_supplemental'); |
&Apache::lonnet::delenv('docs.markedcopy_supplemental'); |
} |
} |
$url=~s{http(:|:)//https(:|:)//}{https$2//}; |
$url=~s{http(:|:)//https(:|:)//}{https$2//}; |
|
|
Line 1240 sub print_paste_buffer {
|
Line 1268 sub print_paste_buffer {
|
my ($r,$container) = @_; |
my ($r,$container) = @_; |
return if (!defined($env{'docs.markedcopy_url'})); |
return if (!defined($env{'docs.markedcopy_url'})); |
|
|
$r->print(<<ENDPASTE); |
$r->print('<fieldset>' |
<form name="pasteform" action="/adm/coursedocs" method="post"><p> |
.'<legend>'.&mt('Clipboard').'</legend>' |
ENDPASTE |
.'<form name="pasteform" action="/adm/coursedocs" method="post">' |
$r->print('<input type="submit" name="pastemarked" value="'.&mt('Paste').'" /> '); |
.'<input type="submit" name="pastemarked" value="'.&mt('Paste').'" /> ' |
|
); |
|
|
my $type; |
my $type; |
if ($env{'docs.markedcopy_url'} =~ m{^(?:/adm/wrapper/ext|(?:http|https)(?::|:))//} ) { |
if ($env{'docs.markedcopy_url'} =~ m{^(?:/adm/wrapper/ext|(?:http|https)(?::|:))//} ) { |
Line 1257 ENDPASTE
|
Line 1286 ENDPASTE
|
if ($extension eq 'sequence' && |
if ($extension eq 'sequence' && |
$env{'docs.markedcopy_url'} =~ m{/default_\d+\.sequence$ }x) { |
$env{'docs.markedcopy_url'} =~ m{/default_\d+\.sequence$ }x) { |
$icon = &Apache::loncommon::lonhttpdurl($r->dir_config('lonIconsURL')); |
$icon = &Apache::loncommon::lonhttpdurl($r->dir_config('lonIconsURL')); |
$icon .= '/folder_closed.gif'; |
$icon .= '/navmap.folder.closed.gif'; |
} |
} |
$icon = '<img src="'.$icon.'" alt="" class="LC_icon" />'; |
$icon = '<img src="'.$icon.'" alt="" class="LC_icon" />'; |
$r->print($icon.$type.': '. &parse_supplemental_title(&LONCAPA::map::qtescape($env{'docs.markedcopy_title'}))); |
$r->print($icon.$type.': '. &parse_supplemental_title(&LONCAPA::map::qtescape($env{'docs.markedcopy_title'}))); |
Line 1272 ENDPASTE
|
Line 1301 ENDPASTE
|
<input type="hidden" name="folderpath" value="'.&HTML::Entities::encode($env{'form.folderpath'},'<>&"').'" /> |
<input type="hidden" name="folderpath" value="'.&HTML::Entities::encode($env{'form.folderpath'},'<>&"').'" /> |
'); |
'); |
} |
} |
$r->print('</p></form>'); |
$r->print('</form></fieldset>'); |
} |
} |
|
|
sub do_paste_from_buffer { |
sub do_paste_from_buffer { |
Line 1331 sub do_paste_from_buffer {
|
Line 1360 sub do_paste_from_buffer {
|
} |
} |
# published maps can only exists once, so remove it from paste buffer when done |
# published maps can only exists once, so remove it from paste buffer when done |
if (($url=~/\.(page|sequence)$/) && ($url=~m {^/res/})) { |
if (($url=~/\.(page|sequence)$/) && ($url=~m {^/res/})) { |
&Apache::lonnet::delenv('docs\\.markedcopy'); |
&Apache::lonnet::delenv('docs.markedcopy'); |
} |
} |
if ($url=~ m{/smppg$}) { |
if ($url=~ m{/smppg$}) { |
my $db_name = &Apache::lonsimplepage::get_db_name($url); |
my $db_name = &Apache::lonsimplepage::get_db_name($url); |
Line 1342 sub do_paste_from_buffer {
|
Line 1371 sub do_paste_from_buffer {
|
$db_name =~ s{_\d*$ }{_$now}x; |
$db_name =~ s{_\d*$ }{_$now}x; |
my $result=&Apache::lonnet::put($db_name,\%contents, |
my $result=&Apache::lonnet::put($db_name,\%contents, |
$coursedom,$coursenum); |
$coursedom,$coursenum); |
$url =~ s{/(\d*)/smppg$ }{/$now/smppg}x; |
$url =~ s{/(\d*)/smppg$ }{/$now/smppg}x; |
$title=&mt('Copy of').' '.$title; |
$title=&mt('Copy of').' '.$title; |
} |
} |
} |
} |
Line 1356 sub do_paste_from_buffer {
|
Line 1385 sub do_paste_from_buffer {
|
if ($folder =~ /^supplemental/) { |
if ($folder =~ /^supplemental/) { |
$title = $env{'docs.markedcopy_supplemental'}; |
$title = $env{'docs.markedcopy_supplemental'}; |
} else { |
} else { |
(undef,undef,$title) = |
(undef,undef,$title) = |
&parse_supplemental_title($env{'docs.markedcopy_supplemental'}); |
&parse_supplemental_title($env{'docs.markedcopy_supplemental'}); |
} |
} |
} else { |
} else { |
Line 1380 sub uniqueness_check {
|
Line 1409 sub uniqueness_check {
|
$url=&LONCAPA::map::qtescape($url); |
$url=&LONCAPA::map::qtescape($url); |
if ($newurl eq $url) { |
if ($newurl eq $url) { |
$unique = 0; |
$unique = 0; |
last; |
last; |
} |
} |
} |
} |
return $unique; |
return $unique; |
Line 1406 sub update_parameter {
|
Line 1435 sub update_parameter {
|
&remember_parms($idx,$which,'set',$value); |
&remember_parms($idx,$which,'set',$value); |
} else { |
} else { |
&LONCAPA::map::delparameter($idx,'parameter_'.$which); |
&LONCAPA::map::delparameter($idx,'parameter_'.$which); |
|
|
&remember_parms($idx,$which,'del'); |
&remember_parms($idx,$which,'del'); |
} |
} |
return 1; |
return 1; |
Line 1434 sub handle_edit_cmd {
|
Line 1463 sub handle_edit_cmd {
|
&LONCAPA::map::makezombie($LONCAPA::map::order[$idx]); |
&LONCAPA::map::makezombie($LONCAPA::map::order[$idx]); |
splice(@LONCAPA::map::order, $idx, 1); |
splice(@LONCAPA::map::order, $idx, 1); |
|
|
} elsif ($cmd eq 'up' |
} elsif ($cmd eq 'up' |
&& ($idx) && (defined($LONCAPA::map::order[$idx-1]))) { |
&& ($idx) && (defined($LONCAPA::map::order[$idx-1]))) { |
@LONCAPA::map::order[$idx-1,$idx] = @LONCAPA::map::order[$idx,$idx-1]; |
@LONCAPA::map::order[$idx-1,$idx] = @LONCAPA::map::order[$idx,$idx-1]; |
|
|
Line 1460 sub handle_edit_cmd {
|
Line 1489 sub handle_edit_cmd {
|
|
|
sub editor { |
sub editor { |
my ($r,$coursenum,$coursedom,$folder,$allowed,$upload_output,$type)=@_; |
my ($r,$coursenum,$coursedom,$folder,$allowed,$upload_output,$type)=@_; |
|
|
my $container= ($env{'form.pagepath'}) ? 'page' |
my $container= ($env{'form.pagepath'}) ? 'page' |
: 'sequence'; |
: 'sequence'; |
|
|
Line 1474 sub editor {
|
Line 1502 sub editor {
|
$LONCAPA::map::order[0]=$idx; |
$LONCAPA::map::order[0]=$idx; |
$LONCAPA::map::resources[$idx]=''; |
$LONCAPA::map::resources[$idx]=''; |
} |
} |
|
|
my ($breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain,$is_random_order)= |
my ($breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain,$is_random_order)= |
&breadcrumbs($folder,$allowed,$type); |
&breadcrumbs($folder,$allowed,$type); |
$r->print($breadcrumbtrail); |
$r->print($breadcrumbtrail); |
|
|
# ------------------------------------------------------------ Process commands |
# ------------------------------------------------------------ Process commands |
|
|
# ---------------- if they are for this folder and user allowed to make changes |
# ---------------- if they are for this folder and user allowed to make changes |
Line 1499 sub editor {
|
Line 1527 sub editor {
|
($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.'.$container); |
($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.'.$container); |
return $errtext if ($fatal); |
return $errtext if ($fatal); |
} |
} |
|
|
if ($env{'form.pastemarked'}) { |
if ($env{'form.pastemarked'}) { |
my $paste_res = |
my $paste_res = |
&do_paste_from_buffer($coursenum,$coursedom,$folder); |
&do_paste_from_buffer($coursenum,$coursedom,$folder); |
if ($paste_res eq 'ok') { |
if ($paste_res eq 'ok') { |
($errtext,$fatal) = &storemap($coursenum,$coursedom,$folder.'.'.$container); |
($errtext,$fatal) = &storemap($coursenum,$coursedom,$folder.'.'.$container); |
Line 1545 sub editor {
|
Line 1573 sub editor {
|
return $errtext if ($fatal); |
return $errtext if ($fatal); |
} else { |
} else { |
$r->print('<p><span class="LC_error">'.&mt('No map selected.').'</span></p>'); |
$r->print('<p><span class="LC_error">'.&mt('No map selected.').'</span></p>'); |
|
|
} |
} |
} |
} |
&log_differences($plain); |
&log_differences($plain); |
Line 1555 sub editor {
|
Line 1583 sub editor {
|
my $idx=0; |
my $idx=0; |
my $shown=0; |
my $shown=0; |
if (($ishidden) || ($isencrypted) || ($randompick>=0) || ($is_random_order)) { |
if (($ishidden) || ($isencrypted) || ($randompick>=0) || ($is_random_order)) { |
$r->print('<p>'.&mt('Parameters').':<ul>'. |
$r->print('<div class="LC_Box">'. |
($randompick>=0?'<li>'.&mt('randomly pick [_1] resources',$randompick).'</li>':''). |
'<p>'.&mt('Parameters:'). |
|
'<ul>'. |
|
($randompick>=0?'<li>'.&mt('randomly pick [quant,_1,resource]',$randompick).'</li>':''). |
($ishidden?'<li>'.&mt('contents hidden').'</li>':''). |
($ishidden?'<li>'.&mt('contents hidden').'</li>':''). |
($isencrypted?'<li>'.&mt('URLs hidden').'</li>':''). |
($isencrypted?'<li>'.&mt('URLs hidden').'</li>':''). |
|
($is_random_order?'<li>'.&mt('random order').'</li>':''). |
'</ul></p>'); |
'</ul></p>'); |
} |
if ($randompick>=0) { |
if ($randompick>=0) { |
$r->print('<p class="LC_warning">' |
$r->print('<p>'.&mt('Caution: this folder is set to randomly pick a subset of resources. Adding or removing resources from this folder will change the set of resources that the students see, resulting in spurious or missing credit for completed problems, not limited to ones you modify. Do not modify the contents of this folder if it is in active student use.').'</p>'); |
.&mt('Caution: this folder is set to randomly pick a subset' |
} |
.' of resources. Adding or removing resources from this' |
if ($is_random_order) { |
.' folder will change the set of resources that the' |
$r->print('<p>'.&mt('Caution: this folder is set to randomly order its contents. Adding or removing resources from this folder will change the order of resources shown.').'</p>'); |
.' students see, resulting in spurious or missing credit' |
|
.' for completed problems, not limited to ones you' |
|
.' modify. Do not modify the contents of this folder if' |
|
.' it is in active student use.') |
|
.'</p>' |
|
); |
|
} |
|
if ($is_random_order) { |
|
$r->print('<p class="LC_warning">' |
|
.&mt('Caution: this folder is set to randomly order its' |
|
.' contents. Adding or removing resources from this folder' |
|
.' will change the order of resources shown.') |
|
.'</p>' |
|
); |
|
} |
|
$r->print('</div>'); |
} |
} |
$r->print('<table class="LC_docs_editor">'); |
|
|
my $output; |
foreach my $res (@LONCAPA::map::order) { |
foreach my $res (@LONCAPA::map::order) { |
my ($name,$url)=split(/\:/,$LONCAPA::map::resources[$res]); |
my ($name,$url)=split(/\:/,$LONCAPA::map::resources[$res]); |
$name=&LONCAPA::map::qtescape($name); |
$name=&LONCAPA::map::qtescape($name); |
$url=&LONCAPA::map::qtescape($url); |
$url=&LONCAPA::map::qtescape($url); |
unless ($name) { $name=(split(/\//,$url))[-1]; } |
unless ($name) { $name=(split(/\//,$url))[-1]; } |
unless ($name) { $idx++; next; } |
unless ($name) { $idx++; next; } |
$r->print(&entryline($idx,$name,$url,$folder,$allowed,$res, |
$output .= &entryline($idx,$name,$url,$folder,$allowed,$res, |
$coursenum)); |
$coursenum); |
$idx++; |
$idx++; |
$shown++; |
$shown++; |
} |
} |
unless ($shown) { |
if ($shown) { |
$r->print('<tr><td>'.&mt('Currently no documents.').'</td></tr>'); |
$r->print(&Apache::loncommon::start_data_table()); |
|
if ($allowed) { |
|
$r->print(&Apache::loncommon::start_data_table_header_row() |
|
.'<th colspan="2">'.&mt('Move').'</th>' |
|
.'<th>'.&mt('Actions').'</th>' |
|
.'<th colspan="2">'.&mt('Document').'</th>'); |
|
if ($folder !~ /^supplemental/) { |
|
$->print('<th colspan="4">'.&mt('Settings').'</th>'); |
|
} |
|
$r->print(&Apache::loncommon::end_data_table_header_row()); |
|
} |
|
$r->print($output |
|
.&Apache::loncommon::end_data_table() |
|
); |
|
} else { |
|
$r->print('<p class="LC_info">' |
|
.&mt('Currently no documents.') |
|
.'</p>' |
|
); |
} |
} |
$r->print("\n</table>\n"); |
|
if ($allowed) { |
if ($allowed) { |
&print_paste_buffer($r,$container); |
&print_paste_buffer($r,$container); |
} |
} |
Line 1653 sub process_file_upload {
|
Line 1717 sub process_file_upload {
|
return 'failed'; |
return 'failed'; |
} else { |
} else { |
if ($parseaction eq 'parse') { |
if ($parseaction eq 'parse') { |
my $total_embedded = keys(%{$allfiles}); |
my $total_embedded = scalar(keys(%{$allfiles})); |
if ($total_embedded > 0) { |
if ($total_embedded > 0) { |
my $num = 0; |
my $num = 0; |
my $state = ' |
my $state = ' |
Line 1664 sub process_file_upload {
|
Line 1728 sub process_file_upload {
|
<input type="hidden" name="phasetwo" value="'.$total_embedded.'" />'; |
<input type="hidden" name="phasetwo" value="'.$total_embedded.'" />'; |
$phase_status = 'phasetwo'; |
$phase_status = 'phasetwo'; |
|
|
$$upload_output .= |
$$upload_output .= |
'This file contains embedded multimedia objects, which need to be uploaded to LON-CAPA.<br />'. |
'This file contains embedded multimedia objects, which need to be uploaded to LON-CAPA.<br />'. |
&Apache::loncommon::ask_for_embedded_content( |
&Apache::loncommon::ask_for_embedded_content( |
'/adm/coursedocs',$state,$allfiles,$codebase); |
'/adm/coursedocs',$state,$allfiles,$codebase); |
Line 1719 sub parse_supplemental_title {
|
Line 1783 sub parse_supplemental_title {
|
} |
} |
if (wantarray) { |
if (wantarray) { |
return ($title,$foldertitle,$renametitle); |
return ($title,$foldertitle,$renametitle); |
} |
} |
return $title; |
return $title; |
} |
} |
|
|
Line 1727 sub parse_supplemental_title {
|
Line 1791 sub parse_supplemental_title {
|
|
|
sub entryline { |
sub entryline { |
my ($index,$title,$url,$folder,$allowed,$residx,$coursenum)=@_; |
my ($index,$title,$url,$folder,$allowed,$residx,$coursenum)=@_; |
|
|
my ($foldertitle,$pagetitle,$renametitle); |
my ($foldertitle,$pagetitle,$renametitle); |
if (&is_supplemental_title($title)) { |
if (&is_supplemental_title($title)) { |
($title,$foldertitle,$renametitle) = &parse_supplemental_title($title); |
($title,$foldertitle,$renametitle) = &parse_supplemental_title($title); |
Line 1740 sub entryline {
|
Line 1803 sub entryline {
|
} |
} |
|
|
my $orderidx=$LONCAPA::map::order[$index]; |
my $orderidx=$LONCAPA::map::order[$index]; |
|
|
|
|
$renametitle=~s/\\/\\\\/g; |
$renametitle=~s/\\/\\\\/g; |
$renametitle=~s/\"\;/\\\"/g; |
$renametitle=~s/\"\;/\\\"/g; |
$renametitle=~s/ /%20/g; |
$renametitle=~s/ /%20/g; |
my $line='<tr>'; |
my $line=&Apache::loncommon::start_data_table_row(); |
my ($form_start,$form_end); |
my ($form_start,$form_end); |
# Edit commands |
# Edit commands |
my ($container, $type, $esc_path, $path, $symb); |
my ($container, $type, $esc_path, $path, $symb); |
Line 1767 sub entryline {
|
Line 1830 sub entryline {
|
my $incindex=$index+1; |
my $incindex=$index+1; |
my $selectbox=''; |
my $selectbox=''; |
if (($folder!~/^supplemental/) && |
if (($folder!~/^supplemental/) && |
($#LONCAPA::map::order>0) && |
($#LONCAPA::map::order>0) && |
((split(/\:/, |
((split(/\:/, |
$LONCAPA::map::resources[$LONCAPA::map::order[0]]))[1] |
$LONCAPA::map::resources[$LONCAPA::map::order[0]]))[1] |
ne '') && |
ne '') && |
((split(/\:/, |
((split(/\:/, |
$LONCAPA::map::resources[$LONCAPA::map::order[1]]))[1] |
$LONCAPA::map::resources[$LONCAPA::map::order[1]]))[1] |
ne '')) { |
ne '')) { |
$selectbox= |
$selectbox= |
'<input type="hidden" name="currentpos" value="'.$incindex.'" />'. |
'<input type="hidden" name="currentpos" value="'.$incindex.'" />'. |
'<select name="newpos" onChange="this.form.submit()">'; |
'<select name="newpos" onchange="this.form.submit()">'; |
for (my $i=1;$i<=$#LONCAPA::map::order+1;$i++) { |
for (my $i=1;$i<=$#LONCAPA::map::order+1;$i++) { |
if ($i==$incindex) { |
if ($i==$incindex) { |
$selectbox.='<option value="" selected="1">('.$i.')</option>'; |
$selectbox.='<option value="" selected="selected">('.$i.')</option>'; |
} else { |
} else { |
$selectbox.='<option value="'.$i.'">'.$i.'</option>'; |
$selectbox.='<option value="'.$i.'">'.$i.'</option>'; |
} |
} |
Line 1809 sub entryline {
|
Line 1872 sub entryline {
|
} |
} |
} |
} |
} |
} |
if ($url=~/^\/res\/lib\/templates\//) { |
if ($url=~/^\/res\/lib\/templates\//) { |
$nocopy=1; |
$nocopy=1; |
$nocut=1; |
$nocut=1; |
} |
} |
my $copylink=' '; |
my $copylink=' '; |
my $cutlink=' '; |
my $cutlink=' '; |
|
|
my $skip_confirm = 0; |
my $skip_confirm = 0; |
if ( $folder =~ /^supplemental/ |
if ( $folder =~ /^supplemental/ |
|| ($url =~ m{( /smppg$ |
|| ($url =~ m{( /smppg$ |
Line 1848 END
|
Line 1911 END
|
$form_end = '</form>'; |
$form_end = '</form>'; |
$line.=(<<END); |
$line.=(<<END); |
<td> |
<td> |
<table class="LC_docs_entry_move"> |
<div class="LC_docs_entry_move"> |
<tr> |
<a href='/adm/coursedocs?cmd=up_$index&${type}path=$esc_path&${type}symb=$symb$cpinfo'> |
<td> |
<img src="${iconpath}move_up.gif" alt='$lt{'up'}' class="LC_icon" /> |
<a href='/adm/coursedocs?cmd=up_$index&${type}path=$esc_path&${type}symb=$symb$cpinfo'><img src="${iconpath}move_up.gif" alt='$lt{'up'}' class="LC_icon" /></a> |
</a> |
</td> |
</div> |
</tr> |
<div class="LC_docs_entry_move"> |
<tr> |
<a href='/adm/coursedocs?cmd=down_$index&${type}path=$esc_path&${type}symb=$symb$cpinfo'> |
<td> |
<img src="${iconpath}move_down.gif" alt='$lt{'dw'}' class="LC_icon" /> |
<a href='/adm/coursedocs?cmd=down_$index&${type}path=$esc_path&${type}symb=$symb$cpinfo'><img src="${iconpath}move_down.gif" alt='$lt{'dw'}' class="LC_icon" /></a> |
</a> |
</td> |
</div> |
</tr> |
|
</table> |
|
</td> |
</td> |
<td> |
<td> |
$form_start |
$form_start |
Line 1886 END
|
Line 1947 END
|
my $pagefile; |
my $pagefile; |
if ($uploaded) { |
if ($uploaded) { |
if ($extension eq 'sequence') { |
if ($extension eq 'sequence') { |
$icon=$iconpath.'/folder_closed.gif'; |
$icon=$iconpath.'/navmap.folder.closed.gif'; |
$url=~/\Q$coursenum\E\/([\/\w]+)\.sequence$/; |
$url=~/\Q$coursenum\E\/([\/\w]+)\.sequence$/; |
$url='/adm/coursedocs?'; |
$url='/adm/coursedocs?'; |
$folderarg=$1; |
$folderarg=$1; |
Line 1901 END
|
Line 1962 END
|
&Apache::lonnet::allowuploaded('/adm/coursedoc',$url); |
&Apache::lonnet::allowuploaded('/adm/coursedoc',$url); |
} |
} |
} |
} |
|
|
my $orig_url = $url; |
my $orig_url = $url; |
|
$orig_url=~s{http(:|:)//https(:|:)//}{https$2//}; |
my $external = ($url=~s{^http(|s)(:|:)//}{/adm/wrapper/ext/}); |
my $external = ($url=~s{^http(|s)(:|:)//}{/adm/wrapper/ext/}); |
if ((!$isfolder) && ($residx) && ($folder!~/supplemental/) && (!$ispage)) { |
if ((!$isfolder) && ($residx) && ($folder!~/supplemental/) && (!$ispage)) { |
my $symb=&Apache::lonnet::symbclean( |
my $symb=&Apache::lonnet::symbclean( |
Line 1924 END
|
Line 1986 END
|
} elsif ($url!~/\.(sequence|page)$/) { |
} elsif ($url!~/\.(sequence|page)$/) { |
$url='/adm/coursedocs/showdoc'.$url; |
$url='/adm/coursedocs/showdoc'.$url; |
} |
} |
} elsif ($url=~m|^/ext/|) { |
} elsif ($url=~m|^/ext/|) { |
$url='/adm/wrapper'.$url; |
$url='/adm/wrapper'.$url; |
$external = 1; |
$external = 1; |
} |
} |
Line 1935 END
|
Line 1997 END
|
} |
} |
if ($container eq 'page') { |
if ($container eq 'page') { |
my $symb=$env{'form.pagesymb'}; |
my $symb=$env{'form.pagesymb'}; |
|
|
$url=&Apache::lonnet::clutter((&Apache::lonnet::decode_symb($symb))[2]); |
$url=&Apache::lonnet::clutter((&Apache::lonnet::decode_symb($symb))[2]); |
$url.=(($url=~/\?/)?'&':'?').'symb='.&escape($symb); |
$url.=(($url=~/\?/)?'&':'?').'symb='.&escape($symb); |
} |
} |
Line 1945 END
|
Line 2007 END
|
my $foldername=&escape($foldertitle); |
my $foldername=&escape($foldertitle); |
my $folderpath=$env{'form.folderpath'}; |
my $folderpath=$env{'form.folderpath'}; |
if ($folderpath) { $folderpath.='&' }; |
if ($folderpath) { $folderpath.='&' }; |
# Append randompick number, hidden, and encrypted with ":" to foldername, |
# Append randompick number, hidden, and encrypted with ":" to foldername, |
# so it gets transferred between levels |
# so it gets transferred between levels |
$folderpath.=$folderarg.'&'.$foldername.':'.(&LONCAPA::map::getparameter($orderidx, |
$folderpath.=$folderarg.'&'.$foldername.':'.(&LONCAPA::map::getparameter($orderidx, |
'parameter_randompick'))[0] |
'parameter_randompick'))[0] |
Line 1957 END
|
Line 2019 END
|
'parameter_randomorder'))[0]=~/^yes$/i); |
'parameter_randomorder'))[0]=~/^yes$/i); |
$url.='folderpath='.&escape($folderpath).$cpinfo; |
$url.='folderpath='.&escape($folderpath).$cpinfo; |
$parameterset='<label>'.&mt('Randomly Pick: '). |
$parameterset='<label>'.&mt('Randomly Pick: '). |
'<input type="text" size="4" onChange="this.form.changeparms.value='."'randompick'".';this.form.submit()" name="randompick_'.$orderidx.'" value="'. |
'<input type="text" size="4" onchange="this.form.changeparms.value='."'randompick'".';this.form.submit()" name="randompick_'.$orderidx.'" value="'. |
(&LONCAPA::map::getparameter($orderidx, |
(&LONCAPA::map::getparameter($orderidx, |
'parameter_randompick'))[0]. |
'parameter_randompick'))[0]. |
'" />'. |
'" />'. |
Line 1965 END
|
Line 2027 END
|
my $ro_set= |
my $ro_set= |
((&LONCAPA::map::getparameter($orderidx,'parameter_randomorder'))[0]=~/^yes$/i?' checked="checked"':''); |
((&LONCAPA::map::getparameter($orderidx,'parameter_randomorder'))[0]=~/^yes$/i?' checked="checked"':''); |
$rand_order_text =' |
$rand_order_text =' |
<span class="LC_nobreak"><label><input type="checkbox" name="randomorder_'.$orderidx.'" onClick="this.form.changeparms.value=\'randomorder\';this.form.submit()" '.$ro_set.' /> '.&mt('Random Order').' </label></span>'; |
<span class="LC_nobreak"><label><input type="checkbox" name="randomorder_'.$orderidx.'" onclick="this.form.changeparms.value=\'randomorder\';this.form.submit()" '.$ro_set.' /> '.&mt('Random Order').' </label></span>'; |
} |
} |
if ($ispage) { |
if ($ispage) { |
my $pagename=&escape($pagetitle); |
my $pagename=&escape($pagetitle); |
Line 1992 END
|
Line 2054 END
|
undef($external); |
undef($external); |
} |
} |
$line.=' |
$line.=' |
<td class="LC_docs_entry_icon"> |
<td> |
'.($url?'<a href="'.$url.'">':'').'<img src="'.$icon.'" alt="" class="LC_icon" />'.($url?'</a>':'').' |
'.($url?'<a href="'.$url.'">':'').'<img src="'.$icon.'" alt="" class="LC_icon" />'.($url?'</a>':'').' |
</td> |
</td> |
<td class="LC_docs_entry_title"> |
<td> |
'.($url?"<a href=\"$url\">":'').$title.($url?'</a>':' <span class="LC_docs_reinit_warn">'.&mt('(re-initialize course to access)').'</span>').$external." |
'.($url?"<a href=\"$url\">":'').$title.($url?'</a>':' <span class="LC_docs_reinit_warn">'.&mt('(re-initialize course to access)').'</span>').$external." |
</td>"; |
</td>"; |
if (($allowed) && ($folder!~/^supplemental/)) { |
if (($allowed) && ($folder!~/^supplemental/)) { |
Line 2003 END
|
Line 2065 END
|
'hd' => 'Hidden', |
'hd' => 'Hidden', |
'ec' => 'URL hidden'); |
'ec' => 'URL hidden'); |
my $enctext= |
my $enctext= |
((&LONCAPA::map::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i?' checked="1"':''); |
((&LONCAPA::map::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i?' checked="checked"':''); |
my $hidtext= |
my $hidtext= |
((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i?' checked="1"':''); |
((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i?' checked="checked"':''); |
$line.=(<<ENDPARMS); |
$line.=(<<ENDPARMS); |
<td class="LC_docs_entry_parameter"> |
<td class="LC_docs_entry_parameter"> |
$form_start |
$form_start |
<label><input type="checkbox" name="hiddenresource_$orderidx" onClick="this.form.changeparms.value='hiddenresource';this.form.submit()" $hidtext /> $lt{'hd'}</label> |
<label><input type="checkbox" name="hiddenresource_$orderidx" onclick="this.form.changeparms.value='hiddenresource';this.form.submit()" $hidtext /> $lt{'hd'}</label> |
$form_end |
$form_end |
</td> |
</td> |
<td class="LC_docs_entry_parameter"> |
<td class="LC_docs_entry_parameter"> |
$form_start |
$form_start |
<label><input type="checkbox" name="encrypturl_$orderidx" onClick="this.form.changeparms.value='encrypturl';this.form.submit()" $enctext /> $lt{'ec'}</label> |
<label><input type="checkbox" name="encrypturl_$orderidx" onclick="this.form.changeparms.value='encrypturl';this.form.submit()" $enctext /> $lt{'ec'}</label> |
$form_end |
$form_end |
</td> |
</td> |
<td class="LC_docs_entry_parameter">$form_start $rand_order_text $form_end</td> |
<td class="LC_docs_entry_parameter">$form_start $rand_order_text $form_end</td> |
<td class="LC_docs_entry_parameter">$form_start $parameterset $form_end</td> |
<td class="LC_docs_entry_parameter">$form_start $parameterset $form_end</td> |
ENDPARMS |
ENDPARMS |
} |
} |
$line.="</tr>"; |
$line.=&Apache::loncommon::end_data_table_row(); |
return $line; |
return $line; |
} |
} |
|
|
Line 2048 sub tiehash {
|
Line 2110 sub tiehash {
|
$hashtied=1; |
$hashtied=1; |
} |
} |
} |
} |
} |
} |
} |
} |
|
|
sub untiehash { |
sub untiehash { |
Line 2097 sub checkonthis {
|
Line 2159 sub checkonthis {
|
if (($errorcount) || |
if (($errorcount) || |
($warningcount)) { |
($warningcount)) { |
if ($errorcount) { |
if ($errorcount) { |
$r->print('<img src="/adm/lonMisc/bomb.gif" /><span class="LC_error">'. |
$r->print('<img src="/adm/lonMisc/bomb.gif" alt="'.&mt('bomb').'" /><span class="LC_error">'. |
&mt('[quant,_1,error]',$errorcount).'</span>'); |
&mt('[quant,_1,error]',$errorcount).'</span>'); |
} |
} |
if ($warningcount) { |
if ($warningcount) { |
Line 2122 sub checkonthis {
|
Line 2184 sub checkonthis {
|
unless ($url=~/\$/) { |
unless ($url=~/\$/) { |
$r->print('<span class="LC_error">'.&mt('not found').'</b></span>'); |
$r->print('<span class="LC_error">'.&mt('not found').'</b></span>'); |
} else { |
} else { |
$r->print('<span class="LC_unknown">'.&mt('unable to verify variable URL').'</span>'); |
$r->print('<span class="LC_error">'.&mt('unable to verify variable URL').'</span>'); |
} |
} |
} else { |
} else { |
$r->print('<span class="LC_error">'.&mt('access denied').'</span>'); |
$r->print('<span class="LC_error">'.&mt('access denied').'</span>'); |
Line 2256 sub checkversions {
|
Line 2318 sub checkversions {
|
if ($haschanged) { |
if ($haschanged) { |
if (&Apache::lonnet::put('resourceversions',\%newsetversions, |
if (&Apache::lonnet::put('resourceversions',\%newsetversions, |
$env{'course.'.$env{'request.course.id'}.'.domain'}, |
$env{'course.'.$env{'request.course.id'}.'.domain'}, |
$env{'course.'.$env{'request.course.id'}.'.num'}) eq 'ok') { |
$env{'course.'.$env{'request.course.id'}.'.num'}) eq 'ok') { |
$r->print('<h1>'.&mt('Your Version Settings have been Saved').'</h1>'); |
$r->print('<h1>'.&mt('Your Version Settings have been Saved').'</h1>'); |
} else { |
} else { |
$r->print('<h1><span class="LC_error">'.&mt('An Error Occured while Attempting to Save your Version Settings').'</span></h1>'); |
$r->print('<h1><span class="LC_error">'.&mt('An Error Occured while Attempting to Save your Version Settings').'</span></h1>'); |
Line 2397 ENDHEADERS
|
Line 2459 ENDHEADERS
|
$lastold=$prevvers; |
$lastold=$prevvers; |
} |
} |
} |
} |
# |
# |
# Code to figure out how many version entries should go in |
# Code to figure out how many version entries should go in |
# each of the four columns |
# each of the four columns |
my $entries_per_col = 0; |
my $entries_per_col = 0; |
Line 2408 ENDHEADERS
|
Line 2470 ENDHEADERS
|
$entries_per_col = $num_entries/4 + 1; |
$entries_per_col = $num_entries/4 + 1; |
} |
} |
my $entries_count = 0; |
my $entries_count = 0; |
$r->print('<td valign="top"><font size="-2">'); |
$r->print('<td valign="top"><font size="-2">'); |
my $cols_output = 1; |
my $cols_output = 1; |
for (my $prevvers=$lastold;$prevvers<$currentversion;$prevvers++) { |
for (my $prevvers=$lastold;$prevvers<$currentversion;$prevvers++) { |
my $url=$root.'.'.$prevvers.'.'.$extension; |
my $url=$root.'.'.$prevvers.'.'.$extension; |
Line 2487 sub changewarning {
|
Line 2549 sub changewarning {
|
$message='Changes will become active for your current session after [_1], or the next time you log in.'; |
$message='Changes will become active for your current session after [_1], or the next time you log in.'; |
} |
} |
$r->print("\n\n". |
$r->print("\n\n". |
'<script type="text/javascript">function reinit(tf) { tf.submit();'.$postexec.' }</script>'."\n". |
'<script type="text/javascript">'."\n". |
|
'// <![CDATA['."\n". |
|
'function reinit(tf) { tf.submit();'.$postexec.' }'."\n". |
|
'// ]]>'."\n". |
|
'</script>'."\n". |
'<form name="reinitform" method="post" action="/adm/roles" target="loncapaclient">'. |
'<form name="reinitform" method="post" action="/adm/roles" target="loncapaclient">'. |
'<input type="hidden" name="orgurl" value="'.$url. |
'<input type="hidden" name="orgurl" value="'.$url. |
'" /><input type="hidden" name="selectrole" value="1" /><h3><span class="LC_warning">'. |
'" /><input type="hidden" name="selectrole" value="1" /><p class="LC_warning">'. |
&mt($message,' <input type="hidden" name="'. |
&mt($message,' <input type="hidden" name="'. |
$env{'request.role'}.'" value="1" /><input type="button" value="'. |
$env{'request.role'}.'" value="1" /><input type="button" value="'. |
&mt('re-initializing '.$course_type).'" onClick="reinit(this.form)" />'). |
&mt('re-initializing '.$course_type).'" onclick="reinit(this.form)" />'). |
$help{'Caching'}.'</span></h3></form>'."\n\n"); |
$help{'Caching'}.'</p></form>'."\n\n"); |
} |
} |
|
|
|
|
Line 2522 sub handler {
|
Line 2588 sub handler {
|
return OK if $r->header_only; |
return OK if $r->header_only; |
my $type = &Apache::loncommon::course_type(); |
my $type = &Apache::loncommon::course_type(); |
|
|
|
|
# --------------------------------------------- Initialize help topics for this |
# --------------------------------------------- Initialize help topics for this |
foreach my $topic ('Adding_Course_Doc','Main_Course_Documents', |
foreach my $topic ('Adding_Course_Doc','Main_Course_Documents', |
'Adding_External_Resource','Navigate_Content', |
'Adding_External_Resource','Navigate_Content', |
Line 2540 sub handler {
|
Line 2607 sub handler {
|
'Option_Response_Simple'); |
'Option_Response_Simple'); |
$help{'Bulletin Board'} = &Apache::loncommon::help_open_topic( |
$help{'Bulletin Board'} = &Apache::loncommon::help_open_topic( |
'Docs_About_Bulletin_Board,Docs_Editing_Templated_Pages'); |
'Docs_About_Bulletin_Board,Docs_Editing_Templated_Pages'); |
$help{'My Personal Info'} = &Apache::loncommon::help_open_topic( |
$help{'My Personal Information Page'} = &Apache::loncommon::help_open_topic( |
'Docs_About_My_Personal_Info,Docs_Editing_Templated_Pages'); |
'Docs_About_My_Personal_Info,Docs_Editing_Templated_Pages'); |
$help{'Group Files'} = &Apache::loncommon::help_open_topic('Docs_About_Group_Files'); |
$help{'Group Portfolio'} = &Apache::loncommon::help_open_topic('Docs_About_Group_Files'); |
$help{'Caching'} = &Apache::loncommon::help_open_topic('Caching'); |
$help{'Caching'} = &Apache::loncommon::help_open_topic('Caching'); |
|
|
# does this user have privileges to modify docs |
# does this user have privileges to modify docs |
Line 2563 sub handler {
|
Line 2630 sub handler {
|
&init_breadcrumbs('dumpcourse','Dump '.&Apache::loncommon::course_type().' DOCS to Construction Space'); |
&init_breadcrumbs('dumpcourse','Dump '.&Apache::loncommon::course_type().' DOCS to Construction Space'); |
&dumpcourse($r); |
&dumpcourse($r); |
} elsif ($allowed && $env{'form.exportcourse'}) { |
} elsif ($allowed && $env{'form.exportcourse'}) { |
&init_breadcrumbs('exportcourse','Export '.&Apache::loncommon::course_type().' to IMS'); |
&init_breadcrumbs('exportcourse','IMS Export'); |
&exportcourse($r); |
&exportcourse($r); |
} else { |
} else { |
# is this a standard course? |
# is this a standard course? |
Line 2575 sub handler {
|
Line 2642 sub handler {
|
my $showdoc=0; |
my $showdoc=0; |
my $containertag; |
my $containertag; |
my $uploadtag; |
my $uploadtag; |
|
|
|
|
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
['folderpath','pagepath', |
['folderpath','pagepath', |
'pagesymb']); |
'pagesymb']); |
Line 2616 sub handler {
|
Line 2685 sub handler {
|
$showdoc='/'.$1; |
$showdoc='/'.$1; |
} |
} |
unless ($showdoc) { # got called from remote |
unless ($showdoc) { # got called from remote |
if (($env{'form.folder'}=~/^(?:group|default)_/) || |
if (($env{'form.folder'}=~/^(?:group|default)_/) || |
($env{'form.folder'} =~ m:^\d+/(pages|sequences)/:)) { |
($env{'form.folder'} =~ m:^\d+/(pages|sequences)/:)) { |
$forcestandard = 1; |
$forcestandard = 1; |
} |
} |
$forcesupplement=($env{'form.folder'}=~/^supplemental_/); |
$forcesupplement=($env{'form.folder'}=~/^supplemental_/); |
|
|
if ($allowed) { |
if ($allowed) { |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['cmd']); |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['cmd']); |
$script=&Apache::lonratedt::editscript('simple'); |
$script=&Apache::lonratedt::editscript('simple'); |
} |
} |
} else { # got called in sequence from course |
} else { # got called in sequence from course |
$allowed=0; |
$allowed=0; |
} |
} |
|
|
|
# subroutine to list form elements |
|
sub create_list_elements { |
|
my @formarr = @_; |
|
my $list = ''; |
|
for my $button (@formarr){ |
|
for my $picture(keys %$button) { |
|
#my $link = Apache::lonhtmlcommon::htmltag('a' ,$button->{$picture}, {href => "test"}); |
|
$list .= Apache::lonhtmlcommon::htmltag('li', $picture.' '.$button->{$picture}, {class => 'LC_menubuttons_inline_text'}); |
|
} |
|
} |
|
return $list; |
|
} |
|
|
|
# subroutine to create ul from list elements |
|
sub create_form_ul { |
|
my $list = shift; |
|
my $ul = Apache::lonhtmlcommon::htmltag('ul',$list, {class => 'LC_ListStyleNormal'}); |
|
return $ul; |
|
} |
|
|
# get course data |
# get course data |
my $coursenum=$env{'course.'.$env{'request.course.id'}.'.num'}; |
my $coursenum=$env{'course.'.$env{'request.course.id'}.'.num'}; |
my $coursedom=$env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $coursedom=$env{'course.'.$env{'request.course.id'}.'.domain'}; |
|
|
# get personal data |
# get personal data |
my $uname=$env{'user.name'}; |
my $uname=$env{'user.name'}; |
my $udom=$env{'user.domain'}; |
my $udom=$env{'user.domain'}; |
my $plainname=&escape(&Apache::loncommon::plainname($uname,$udom)); |
my $plainname=&escape(&Apache::loncommon::plainname($uname,$udom)); |
Line 2647 sub handler {
|
Line 2736 sub handler {
|
$script .= &editing_js($udom,$uname); |
$script .= &editing_js($udom,$uname); |
} |
} |
# -------------------------------------------------------------------- Body tag |
# -------------------------------------------------------------------- Body tag |
$script = '<script type="text/javascript">'."\n".$script."\n".'</script>'; |
$script = '<script type="text/javascript">'."\n" |
my $brcrum = [{href=>"/adm/createuser",text=>"$type Documents"}]; |
.'// <![CDATA['."\n" |
$r->print(&Apache::loncommon::start_page("$type Documents", $script, |
.$script."\n" |
{'force_register' => $showdoc, |
.'// ]]>'."\n" |
'bread_crumbs' => $brcrum}). |
.'</script>'."\n"; |
&Apache::loncommon::help_open_menu('','',273,'RAT')); |
|
|
# Breadcrumbs |
|
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
|
if ($allowed) { |
|
&Apache::lonhtmlcommon::add_breadcrumb({ |
|
href=>"/adm/coursedocs",text=>"$type Editor"}); |
|
|
|
$r->print(&Apache::loncommon::start_page("$type Editor", $script, |
|
{'force_register' => $showdoc,}) |
|
.&Apache::loncommon::help_open_menu('','',273,'RAT') |
|
.&Apache::lonhtmlcommon::breadcrumbs( |
|
'Editing the Table of Contents for your '.$type, |
|
'Docs_Adding_Course_Doc') |
|
); |
|
} else { |
|
my $lc_type = lc($type); |
|
&Apache::lonhtmlcommon::add_breadcrumb({ |
|
href=>"/adm/coursedocs",text=>"Supplemental $lc_type documents"}); |
|
|
|
$r->print(&Apache::loncommon::start_page("Supplemental documents"). |
|
&Apache::lonhtmlcommon::breadcrumbs()); |
|
} |
|
|
my %allfiles = (); |
my %allfiles = (); |
my %codebase = (); |
my %codebase = (); |
my ($upload_result,$upload_output); |
my ($upload_result,$upload_output); |
if ($allowed) { |
if ($allowed) { |
if (($env{'form.uploaddoc.filename'}) && |
if (($env{'form.uploaddoc.filename'}) && |
($env{'form.cmd'}=~/^upload_(\w+)/)) { |
($env{'form.cmd'}=~/^upload_(\w+)/)) { |
# Process file upload - phase one - upload and parse primary file. |
# Process file upload - phase one - upload and parse primary file. |
undef($hadchanges); |
undef($hadchanges); |
$upload_result = &process_file_upload(\$upload_output,$coursenum, |
$upload_result = &process_file_upload(\$upload_output,$coursenum, |
$coursedom,\%allfiles, |
$coursedom,\%allfiles, |
Line 2685 sub handler {
|
Line 2795 sub handler {
|
$newname{$i} = &process_secondary_uploads(\$upload_output,$coursedom,$coursenum,'embedded_item_',$i,$residx); |
$newname{$i} = &process_secondary_uploads(\$upload_output,$coursedom,$coursenum,'embedded_item_',$i,$residx); |
$origname{$i} = &unescape($env{'form.embedded_orig_'.$i}); |
$origname{$i} = &unescape($env{'form.embedded_orig_'.$i}); |
if (exists($env{'form.embedded_codebase_'.$i})) { |
if (exists($env{'form.embedded_codebase_'.$i})) { |
$javacodebase = &unescape($env{'form.embedded_codebase_'.$i}); |
$javacodebase = &unescape($env{'form.embedded_codebase_'.$i}); |
$origname{$i} =~ s#^\Q$javacodebase\E/##; |
$origname{$i} =~ s#^\Q$javacodebase\E/##; |
} |
} |
my @attributes = (); |
my @attributes = (); |
if ($env{'form.embedded_attrib_'.$i} =~ /:/) { |
if ($env{'form.embedded_attrib_'.$i} =~ /:/) { |
Line 2722 sub handler {
|
Line 2832 sub handler {
|
$attrib_regexp = $attribs{$item}[0]; |
$attrib_regexp = $attribs{$item}[0]; |
} |
} |
if ($content =~ m#($attrib_regexp\s*=\s*['"]?)\Q$origname{$item}\E(['"]?)#) { |
if ($content =~ m#($attrib_regexp\s*=\s*['"]?)\Q$origname{$item}\E(['"]?)#) { |
} |
} |
$content =~ s#($attrib_regexp\s*=\s*['"]?)\Q$origname{$item}\E(['"]?)#$1$newname{$item}$2#gi; |
$content =~ s#($attrib_regexp\s*=\s*['"]?)\Q$origname{$item}\E(['"]?)#$1$newname{$item}$2#gi; |
} |
} |
if (exists($codebase{$item})) { |
if (exists($codebase{$item})) { |
$content =~ s/(codebase\s*=\s*["']?)\Q$codebase{$item}\E(["']?)/$1.$2/i; #' stupid emacs |
$content =~ s/(codebase\s*=\s*["']?)\Q$codebase{$item}\E(["']?)/$1.$2/i; #' stupid emacs |
Line 2735 sub handler {
|
Line 2845 sub handler {
|
my $docudom=$env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $docudom=$env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $url = &Apache::lonnet::store_edited_file($primary_url,$content,$docudom,$docuname,\$saveresult); |
my $url = &Apache::lonnet::store_edited_file($primary_url,$content,$docudom,$docuname,\$saveresult); |
} else { |
} else { |
&Apache::lonnet::logthis('retrieval of uploaded file - '.$primary_url.' - for editing, failed: '.$getstatus); |
&Apache::lonnet::logthis('retrieval of uploaded file - '.$primary_url.' - for editing, failed: '.$getstatus); |
} |
} |
} |
} |
} |
} |
Line 2747 sub handler {
|
Line 2857 sub handler {
|
'uplm' => 'Upload a new main '.lc($type).' document', |
'uplm' => 'Upload a new main '.lc($type).' document', |
'upls' => 'Upload a new supplemental '.lc($type).' document', |
'upls' => 'Upload a new supplemental '.lc($type).' document', |
'impp' => 'Import a document', |
'impp' => 'Import a document', |
'pubd' => 'Published documents', |
|
'copm' => 'All documents out of a published map into this folder', |
'copm' => 'All documents out of a published map into this folder', |
'spec' => 'Special documents', |
|
'upld' => 'Upload Document', |
'upld' => 'Upload Document', |
'srch' => 'Search', |
'srch' => 'Search', |
'impo' => 'Import', |
'impo' => 'Import', |
Line 2762 sub handler {
|
Line 2870 sub handler {
|
'extr' => 'External Resource', |
'extr' => 'External Resource', |
'syll' => 'Syllabus', |
'syll' => 'Syllabus', |
'navc' => 'Navigate Contents', |
'navc' => 'Navigate Contents', |
'sipa' => 'Simple Page', |
'sipa' => 'Simple Course Page', |
'sipr' => 'Simple Problem', |
'sipr' => 'Simple Problem', |
'drbx' => 'Drop Box', |
'drbx' => 'Drop Box', |
'scuf' => 'Score Upload Form', |
'scuf' => 'Score Upload Form', |
'bull' => 'Bulletin Board', |
'bull' => 'Discussion Board', |
'mypi' => 'My Personal Info', |
'mypi' => 'My Personal Information Page', |
'grpo' => 'Group Files', |
'grpo' => 'Group Portfolio', |
'rost' => 'Course Roster', |
'rost' => 'Course Roster', |
'abou' => 'About User', |
'abou' => 'Personal Information Page for a User', |
'imsf' => 'Import IMS package', |
'imsf' => 'IMS Import', |
|
'imsl' => 'Import IMS package', |
'file' => 'File', |
'file' => 'File', |
'title' => 'Title', |
'title' => 'Title', |
'comment' => 'Comment', |
'comment' => 'Comment', |
'parse' => 'If HTML file, upload embedded images/multimedia files' |
'parse' => 'Upload embedded images/multimedia files if HTML file!', |
|
'nd' => 'Upload Document', |
|
'pm' => 'Published Map', |
|
'sd' => 'Special Document', |
|
'mo' => 'More Options', |
); |
); |
# ----------------------------------------------------------------------------- |
# ----------------------------------------------------------------------------- |
|
my $fileupload=(<<FIUP); |
|
$lt{'file'}:<br /> |
|
<input type="file" name="uploaddoc" size="40" /> |
|
FIUP |
|
|
|
my $checkbox=(<<CHBO); |
|
<!-- <label>$lt{'parse'}? |
|
<input type="checkbox" name="parserflag" /> |
|
</label> --> |
|
<label> |
|
<input type="checkbox" name="parserflag" checked="checked" /> $lt{'parse'} |
|
</label> |
|
CHBO |
|
|
|
my @fileuploada = ( |
|
{ '<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic01" />' => "<input type='submit' value='".$lt{'upld'}."' /> $help{'Uploading_From_Harddrive'}" }, |
|
); |
|
my $fileuploadform=(<<FUFORM); |
|
<form name="uploaddocument" action="/adm/coursedocs" method="post" enctype="multipart/form-data"> |
|
<input type="hidden" name="active" value="aa" /> |
|
$fileupload |
|
<br /> |
|
$lt{'title'}:<br /> |
|
<input type="text" size="50" name="comment" /> |
|
$uploadtag |
|
<input type="hidden" name="cmd" value="upload_default" /> |
|
<br /> |
|
<span class="LC_nobreak"> |
|
$checkbox |
|
</span> |
|
FUFORM |
|
$fileuploadform .= create_form_ul(create_list_elements(@fileuploada)); |
|
$fileuploadform .= (<<FUFORM); |
|
</form> |
|
FUFORM |
|
|
|
my $simpleeditdefaultform=(<<SEDFFORM); |
|
<form action="/adm/coursedocs" method="post" name="simpleeditdefault"> |
|
<input type="hidden" name="active" value="bb" /> |
|
SEDFFORM |
|
my @simpleeditdefaultforma = ( |
|
{ '<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic03" />' => "$uploadtag<a onclick='javascript:groupsearch()'>$lt{'srch'}</a>" }, |
|
{ '<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic04" />' => "<a onclick='javascript:groupimport();'>$lt{'impo'}</a>$help{'Importing_LON-CAPA_Resource'}" }, |
|
{ '<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic05" />' => "<a onclick='javascript:groupopen(0,1,1);'>$lt{'book'}</a>" }, |
|
); |
|
$simpleeditdefaultform .= create_form_ul(create_list_elements(@simpleeditdefaultforma)); |
|
$simpleeditdefaultform .=(<<SEDFFORM); |
|
<hr /> |
|
<p> |
|
$lt{'copm'}<br /> |
|
<input type="text" size="40" name="importmap" /><br /> |
|
<span class="LC_nobreak"><input type="button" |
|
onclick="javascript:openbrowser('simpleeditdefault','importmap','sequence,page','')" |
|
value="$lt{'selm'}" /> <input type="submit" name="loadmap" value="$lt{'load'}" /> |
|
$help{'Load_Map'}</span> |
|
</p> |
|
</form> |
|
SEDFFORM |
|
|
|
my $extresourcesform=(<<ERFORM); |
|
<form action="/adm/coursedocs" method="post" name="newext"> |
|
$uploadtag |
|
<input type="hidden" name="importdetail" value="" /> |
|
<a onclick="javascript:makenewext('newext');">$lt{'extr'}</a>$help{'Adding_External_Resource'} |
|
</form> |
|
ERFORM |
|
|
if ($allowed) { |
if ($allowed) { |
&update_paste_buffer($coursenum,$coursedom); |
&update_paste_buffer($coursenum,$coursedom); |
my $dumpbut=&dumpbutton(); |
|
my $exportbut=&exportbutton(); |
|
my %lt=&Apache::lonlocal::texthash( |
my %lt=&Apache::lonlocal::texthash( |
'vc' => 'Verify Content', |
'vc' => 'Verify Content', |
'cv' => 'Check/Set Resource Versions', |
'cv' => 'Check/Set Resource Versions', |
Line 2801 sub handler {
|
Line 2979 sub handler {
|
$containertag = '<input type="hidden" name="folderpath" value="" />'; |
$containertag = '<input type="hidden" name="folderpath" value="" />'; |
$uploadtag = '<input type="hidden" name="folderpath" value="'.&HTML::Entities::encode($folderpath,'<>&"').'" />'; |
$uploadtag = '<input type="hidden" name="folderpath" value="'.&HTML::Entities::encode($folderpath,'<>&"').'" />'; |
} |
} |
|
$r->print(<<HIDDENFORM); |
|
<form name="renameform" method="post" action="/adm/coursedocs"> |
|
<input type="hidden" name="title" /> |
|
<input type="hidden" name="cmd" /> |
|
<input type="hidden" name="markcopy" /> |
|
<input type="hidden" name="copyfolder" /> |
|
$containertag |
|
</form> |
|
<form name="simpleedit" method="post" action="/adm/coursedocs"> |
|
<input type="hidden" name="importdetail" value="" /> |
|
$uploadtag |
|
</form> |
|
HIDDENFORM |
|
} |
|
# --------------------------------------------------------- Main tab structure |
|
|
|
my $activeClass = 1; |
|
my $active = ''; |
|
|
$r->print(<<ENDCOURSEVERIFY); |
$r->print('<ul class="LC_TabContentBigger" id="mainnav">'); |
<form name="renameform" method="post" action="/adm/coursedocs"> |
if (($standard) && ($allowed) && (!$forcesupplement) && (($env{'form.folderpath'}=~/^default/) || $env{'form.folderpath'}eq"" || ($env{'form.pagepath'}))) { |
<input type="hidden" name="title" /> |
if($activeClass == 1){ |
<input type="hidden" name="cmd" /> |
$active = 'class="active"'; |
<input type="hidden" name="markcopy" /> |
$activeClass = 0; |
<input type="hidden" name="copyfolder" /> |
} |
$containertag |
|
</form> |
|
<form name="simpleedit" method="post" action="/adm/coursedocs"> |
|
<input type="hidden" name="importdetail" value="" /> |
|
$uploadtag |
|
</form> |
|
<form action="/adm/coursedocs" method="post" name="courseverify"> |
|
<div class="LC_docs_course_commands"> |
|
|
|
<div> |
|
<input type="submit" name="verify" value="$lt{'vc'}" />$help{'Verify_Content'} |
|
</div> |
|
<div> |
|
<input type="submit" name="versions" value="$lt{'cv'}" />$help{'Check_Resource_Versions'} |
|
</div> |
|
$dumpbut |
|
$exportbut |
|
<div> |
|
<input type="submit" name="listsymbs" value="$lt{'ls'}" /> |
|
</div> |
|
<div> |
|
<input type="hidden" name="folder" value="$env{'form.folder'}" /> |
|
<input type="submit" name="docslog" value="$lt{'sl'}" /> |
|
</div> |
|
</div> |
|
</form> |
|
<div style="clear: both; height: 0px;"> </div> |
|
ENDCOURSEVERIFY |
|
$r->print(&Apache::loncommon::help_open_topic('Docs_Adding_Course_Doc', |
|
&mt('Editing the Table of Contents for your '.$type))); |
|
} |
} |
|
if ($allowed){ |
|
$r->print('<li '.$active.' onclick="javascript:showPage(this,\'mainCourseDocuments\',\'mainnav\',\'maincoursedoc\');"><a href="#"><b>'.&mt('Main Course Documents').'</b></a></li>'); |
|
} |
|
$active = ''; |
|
if (!$forcestandard || ($env{'form.folderpath'}=~/^supplemental/)) { |
|
if($activeClass == 1){ |
|
$active = 'class="active"'; |
|
} |
|
} |
|
$r->print('<li '.$active.' onclick="javascript:showPage(this,\'supplCourseDocuments\',\'mainnav\',\'maincoursedoc\');"><a href="#"><b>'.&mt('Supplemental Course Documents').'</b></a></li>'); |
|
$r->print('</ul>' |
|
.'<div class="LC_Box" style="clear:both;margin:0;">' |
|
.'<div id="maincoursedoc" style="margin:0 0;padding:0 0;">'); |
# --------------------------------------------------------- Standard documents |
# --------------------------------------------------------- Standard documents |
$r->print('<table class="LC_docs_documents">'); |
my $savefolderpath; |
|
my $active = 'style="display: none;"'; |
if (($standard) && ($allowed) && (!$forcesupplement)) { |
if($activeClass == 0){ |
$r->print('<tr><td class="LC_docs_document">'); |
$active = 'style="display: block;"'; |
# '<h2>'.&mt('Main Course Documents'). |
} |
# ($allowed?' '.$help{'Main_Course_Documents'}:'').'</h2>'); |
if ($allowed) { |
|
$r->print('<div class="LC_ContentBox" id="mainCourseDocuments" '.$active.'>'); |
my $folder=$env{'form.folder'}; |
my $folder=$env{'form.folder'}; |
if ($folder eq '' || $folder eq 'supplemental') { |
if ($folder eq '' || $folder=~/^supplemental/) { |
$folder='default'; |
$folder='default'; |
|
$savefolderpath = $env{'form.folderpath'}; |
$env{'form.folderpath'}='default&'.&escape(&mt('Main '.$type.' Documents')); |
$env{'form.folderpath'}='default&'.&escape(&mt('Main '.$type.' Documents')); |
$uploadtag = '<input type="hidden" name="folderpath" value="'. |
$uploadtag = '<input type="hidden" name="folderpath" value="'. |
&HTML::Entities::encode($env{'form.folderpath'},'<>&"').'" />'; |
&HTML::Entities::encode($env{'form.folderpath'},'<>&"').'" />'; |
} |
} |
my $postexec=''; |
my $postexec=''; |
if ($folder eq 'default') { |
if ($folder eq 'default') { |
$r->print('<script type="text/javascript">this.window.name="loncapaclient";</script>'); |
$r->print('<script type="text/javascript">'."\n" |
|
.'// <![CDATA['."\n" |
|
.'this.window.name="loncapaclient";'."\n" |
|
.'// ]]>'."\n" |
|
.'</script>'."\n" |
|
); |
} else { |
} else { |
#$postexec='self.close();'; |
#$postexec='self.close();'; |
} |
} |
$hadchanges=0; |
|
my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed, |
|
$upload_output,$type); |
|
if ($error) { |
|
$r->print('<p><span class="LC_error">'.$error.'</span></p>'); |
|
} |
|
if ($hadchanges) { |
|
&mark_hash_old(); |
|
} |
|
&changewarning($r,$postexec); |
|
my $folderseq='/uploaded/'.$coursedom.'/'.$coursenum.'/default_'.time. |
my $folderseq='/uploaded/'.$coursedom.'/'.$coursenum.'/default_'.time. |
'.sequence'; |
'.sequence'; |
my $pageseq = '/uploaded/'.$coursedom.'/'.$coursenum.'/default_'.time. |
my $pageseq = '/uploaded/'.$coursedom.'/'.$coursenum.'/default_'.time. |
Line 2878 ENDCOURSEVERIFY
|
Line 3054 ENDCOURSEVERIFY
|
$container='page'; |
$container='page'; |
} |
} |
my $readfile='/uploaded/'.$coursedom.'/'.$coursenum.'/'.$folder.'.'.$container; |
my $readfile='/uploaded/'.$coursedom.'/'.$coursenum.'/'.$folder.'.'.$container; |
$r->print(<<ENDFORM); |
|
<table class="LC_docs_adddocs"> |
|
<tr> |
|
<th>$lt{'uplm'}</th> |
my $recoverform=(<<RFORM); |
<th>$lt{'impp'}</th> |
<form action="/adm/groupsort" method="post" name="recover"> |
<th>$lt{'spec'}</th> |
<a onclick="javascript:groupopen('$readfile',1,0)">$lt{'reco'}</a> |
</tr> |
</form> |
<tr> |
RFORM |
<td> |
|
$lt{'file'}:<br /> |
my $imspform=(<<IMSPFORM); |
<form name="uploaddocument" action="/adm/coursedocs" method="post" enctype="multipart/form-data"> |
<form action="/adm/imsimportdocs" method="post" name="ims"> |
<input type="file" name="uploaddoc" size="40" /> |
<input type="hidden" name="folder" value="$folder" /> |
<br /> |
<a onclick="javascript:makeims();">$lt{'imsf'}</a> |
$lt{'title'}:<br /> |
</form> |
<input type="text" size="50" name="comment" /> |
IMSPFORM |
$uploadtag |
|
<input type="hidden" name="cmd" value="upload_default" /> |
my $newnavform=(<<NNFORM); |
<br /> |
<form action="/adm/coursedocs" method="post" name="newnav"> |
<span class="LC_nobreak"> |
<input type="hidden" name="active" value="cc" /> |
<label>$lt{'parse'}? |
$uploadtag |
<input type="checkbox" name="parserflag" checked="checked" /> |
<input type="hidden" name="importdetail" |
</label> |
value="$lt{'navc'}=/adm/navmaps" /> |
</span> |
<a onclick="document.newnav.submit()">$lt{'navc'}</a> |
<br /> |
$help{'Navigate_Content'} |
<br /> |
</form> |
<span class="LC_nobreak"> |
NNFORM |
<input type="submit" value="$lt{'upld'}" /> |
my $newsmppageform=(<<NSPFORM); |
$help{'Uploading_From_Harddrive'} |
<form action="/adm/coursedocs" method="post" name="newsmppg"> |
</span> |
<input type="hidden" name="active" value="cc" /> |
</form> |
$uploadtag |
</td> |
<input type="hidden" name="importdetail" value="" /> |
<td> |
<a onclick="javascript:makesmppage();"> $lt{'sipa'}</a> |
<form action="/adm/coursedocs" method="post" name="simpleeditdefault"> |
$help{'Simple Page'} |
$lt{'pubd'}<br /> |
</form> |
$uploadtag |
NSPFORM |
<input type="button" onClick="javascript:groupsearch()" value="$lt{'srch'}" /> |
|
<br /> |
my $newsmpproblemform=(<<NSPROBFORM); |
<span class="LC_nobreak"> |
<form action="/adm/coursedocs" method="post" name="newsmpproblem"> |
<input type="button" onClick="javascript:groupimport();" value="$lt{'impo'}" /> |
<input type="hidden" name="active" value="cc" /> |
$help{'Importing_LON-CAPA_Resource'} |
$uploadtag |
</span> |
<input type="hidden" name="importdetail" value="" /> |
<br /> |
<a onclick="javascript:makesmpproblem();">$lt{'sipr'}</a> |
<input type="button" onClick="javascript:groupopen(0,1,1);" value="$lt{'book'}" /> |
$help{'Simple Problem'} |
<hr /> |
</form> |
<p> |
|
$lt{'copm'}<br /> |
NSPROBFORM |
<input type="text" size="40" name="importmap" /><br /> |
|
<span class="LC_nobreak"><input type="button" |
my $newdropboxform=(<<NDBFORM); |
onClick="javascript:openbrowser('simpleeditdefault','importmap','sequence,page','')" |
<form action="/adm/coursedocs" method="post" name="newdropbox"> |
value="$lt{'selm'}" /> <input type="submit" name="loadmap" value="$lt{'load'}" /> |
<input type="hidden" name="active" value="cc" /> |
$help{'Load_Map'}</span> |
$uploadtag |
</p> |
<input type="hidden" name="importdetail" value="" /> |
</form> |
<a onclick="javascript:makedropbox();">$lt{'drbx'}</a> |
<hr /> |
</form> |
<form action="/adm/groupsort" method="post" name="recover"> |
NDBFORM |
<input type="button" name="recovermap" onClick="javascript:groupopen('$readfile',1,0)" value="$lt{'reco'}" /> |
|
</form> |
my $newexuploadform=(<<NEXUFORM); |
ENDFORM |
<form action="/adm/coursedocs" method="post" name="newexamupload"> |
unless ($env{'form.pagepath'}) { |
<input type="hidden" name="active" value="cc" /> |
$r->print(<<ENDFORM); |
$uploadtag |
<hr /> |
<input type="hidden" name="importdetail" value="" /> |
<form action="/adm/coursedocs" method="post" name="newext"> |
<a onclick="javascript:makeexamupload();">$lt{'scuf'}</a> |
$uploadtag |
$help{'Score_Upload_Form'} |
<input type="hidden" name="importdetail" value="" /> |
</form> |
<span class="LC_nobreak"> |
NEXUFORM |
<input name="newext" type="button" onClick="javascript:makenewext('newext');" |
|
value="$lt{'extr'}" /> $help{'Adding_External_Resource'} |
my $newbulform=(<<NBFORM); |
</span> |
<form action="/adm/coursedocs" method="post" name="newbul"> |
</form> |
<input type="hidden" name="active" value="cc" /> |
<br /><form action="/adm/imsimportdocs" method="post" name="ims"> |
$uploadtag |
<input type="hidden" name="folder" value="$folder" /> |
<input type="hidden" name="importdetail" value="" /> |
<input name="imsimport" type="button" value="$lt{'imsf'}" onClick="javascript:makeims();" /> |
<a onclick="javascript:makebulboard();" >$lt{'bull'}</a> |
</form> |
$help{'Bulletin Board'} |
ENDFORM |
</form> |
} |
NBFORM |
$r->print('</td><td>'); |
|
|
my $newaboutmeform=(<<NAMFORM); |
|
<form action="/adm/coursedocs" method="post" name="newaboutme"> |
|
<input type="hidden" name="active" value="cc" /> |
|
$uploadtag |
|
<input type="hidden" name="importdetail" |
|
value="$plainname=/adm/$udom/$uname/aboutme" /> |
|
<a onclick="document.newaboutme.submit()">$lt{'mypi'}</a> |
|
$help{'My Personal Information Page'} |
|
</form> |
|
NAMFORM |
|
|
|
my $newaboutsomeoneform=(<<NASOFORM); |
|
<form action="/adm/coursedocs" method="post" name="newaboutsomeone"> |
|
<input type="hidden" name="active" value="cc" /> |
|
$uploadtag |
|
<input type="hidden" name="importdetail" value="" /> |
|
<a onclick="javascript:makeabout();">$lt{'abou'}</a> |
|
</form> |
|
NASOFORM |
|
|
|
|
|
my $newrosterform=(<<NROSTFORM); |
|
<form action="/adm/coursedocs" method="post" name="newroster"> |
|
<input type="hidden" name="active" value="cc" /> |
|
$uploadtag |
|
<input type="hidden" name="importdetail" |
|
value="$lt{'rost'}=/adm/viewclasslist" /> |
|
<a onclick="document.newroster.submit()">$lt{'rost'}</a> |
|
$help{'Course Roster'} |
|
</form> |
|
NROSTFORM |
|
|
|
my $specialdocumentsform; |
|
my @specialdocumentsforma; |
|
my $newfolderform; |
|
my $newfolderb; |
|
|
unless ($env{'form.pagepath'}) { |
unless ($env{'form.pagepath'}) { |
my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"'); |
my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"'); |
$r->print(<<ENDFORM); |
|
<br /><form action="/adm/coursedocs" method="post" name="newfolder"> |
my $newpageform=(<<NPFORM); |
<input type="hidden" name="folderpath" value="$path" /> |
<form action="/adm/coursedocs" method="post" name="newpage"> |
<input type="hidden" name="importdetail" value="" /> |
<input type="hidden" name="folderpath" value="$path" /> |
<span class="LC_nobreak"> |
<input type="hidden" name="importdetail" value="" /> |
<input name="newfolder" type="button" |
<input type="hidden" name="active" value="cc" /> |
onClick="javascript:makenewfolder(this.form,'$folderseq');" |
<a onclick="javascript:makenewpage(document.newpage,'$pageseq');">$lt{'newp'}</a> |
value="$lt{'newf'}" />$help{'Adding_Folders'} |
$help{'Adding_Pages'} |
</span> |
</form> |
</form> |
NPFORM |
<br /><form action="/adm/coursedocs" method="post" name="newpage"> |
|
<input type="hidden" name="folderpath" value="$path" /> |
|
<input type="hidden" name="importdetail" value="" /> |
$newfolderform=(<<NFFORM); |
<span class="LC_nobreak"> |
<form action="/adm/coursedocs" method="post" name="newfolder"> |
<input name="newpage" type="button" |
<input type="hidden" name="folderpath" value="$path" /> |
onClick="javascript:makenewpage(this.form,'$pageseq');" |
<input type="hidden" name="importdetail" value="" /> |
value="$lt{'newp'}" />$help{'Adding_Pages'} |
<input type="hidden" name="active" value="aa" /> |
</span> |
<a onclick="javascript:makenewfolder(document.newfolder,'$folderseq');">$lt{'newf'}</a>$help{'Adding_Folders'} |
</form> |
</form> |
<br /><form action="/adm/coursedocs" method="post" name="newsyl"> |
NFFORM |
$uploadtag |
|
<input type="hidden" name="importdetail" |
my $newsylform=(<<NSYLFORM); |
value="$lt{'syll'}=/public/$coursedom/$coursenum/syllabus" /> |
<form action="/adm/coursedocs" method="post" name="newsyl"> |
<span class="LC_nobreak"> |
<input type="hidden" name="active" value="cc" /> |
<input name="newsyl" type="submit" value="$lt{'syll'}" /> |
$uploadtag |
$help{'Syllabus'} |
<input type="hidden" name="importdetail" |
</span> |
value="$lt{'syll'}=/public/$coursedom/$coursenum/syllabus" /> |
</form> |
<a onclick="document.newsyl.submit()">$lt{'syll'}</a> |
<br /><form action="/adm/coursedocs" method="post" name="newnav"> |
$help{'Syllabus'} |
$uploadtag |
|
<input type="hidden" name="importdetail" |
</form> |
value="$lt{'navc'}=/adm/navmaps" /> |
NSYLFORM |
<span class="LC_nobreak"> |
|
<input name="newnav" type="submit" value="$lt{'navc'}" /> |
my $newgroupfileform=(<<NGFFORM); |
$help{'Navigate_Content'} |
<form action="/adm/coursedocs" method="post" name="newgroupfiles"> |
</span> |
<input type="hidden" name="active" value="cc" /> |
</form> |
$uploadtag |
<br /><form action="/adm/coursedocs" method="post" name="newsmppg"> |
<input type="hidden" name="importdetail" |
$uploadtag |
value="$lt{'grpo'}=/adm/$coursedom/$coursenum/aboutme" /> |
<input type="hidden" name="importdetail" value="" /> |
<a onclick="document.newgroupfiles.submit()">$lt{'grpo'}</a> |
<span class="LC_nobreak"> |
$help{'Group Portfolio'} |
<input name="newsmppg" type="button" value="$lt{'sipa'}" |
</form> |
onClick="javascript:makesmppage();" /> $help{'Simple Page'} |
NGFFORM |
</span> |
@specialdocumentsforma=( |
</form> |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic06" />'=>$newpageform}, |
<br /><form action="/adm/coursedocs" method="post" name="newsmpproblem"> |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic07" />'=>$newsylform}, |
$uploadtag |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic08" />'=>$newgroupfileform}, |
<input type="hidden" name="importdetail" value="" /> |
); |
<span class="LC_nobreak"> |
|
<input name="newsmpproblem" type="button" value="$lt{'sipr'}" |
} |
onClick="javascript:makesmpproblem();" />$help{'Simple Problem'} |
push @specialdocumentsforma, ({'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic09" />'=>$newnavform}, |
</span> |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic10" />'=>$newsmppageform}, |
</form> |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic11" />'=>$newsmpproblemform}, |
<br /><form action="/adm/coursedocs" method="post" name="newdropbox"> |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic12" />'=>$newdropboxform}, |
$uploadtag |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic13" />'=>$newexuploadform}, |
<input type="hidden" name="importdetail" value="" /> |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic14" />'=>$newbulform}, |
<span class="LC_nobreak"> |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic15" />'=>$newaboutmeform}, |
<input name="newdropbox" type="button" value="$lt{'drbx'}" |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic16" />'=>$newaboutsomeoneform}, |
onClick="javascript:makedropbox();" /> |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic17" />'=>$newrosterform},); |
</span> |
|
</form> |
$specialdocumentsform = create_form_ul(create_list_elements(@specialdocumentsforma)); |
<br /><form action="/adm/coursedocs" method="post" name="newexamupload"> |
|
$uploadtag |
if($env{'form.pagepath'}) { |
<input type="hidden" name="importdetail" value="" /> |
|
<span class="LC_nobreak"> |
@specialdocumentsforma=( |
<input name="newexamupload" type="button" value="$lt{'scuf'}" |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic32" />'=>$newsmpproblemform}, |
onClick="javascript:makeexamupload();" /> |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic33" />'=>$newexuploadform} |
$help{'Score_Upload_Form'} |
); |
</span> |
$specialdocumentsform= create_form_ul(create_list_elements(@specialdocumentsforma)); |
</form> |
} |
<br /><form action="/adm/coursedocs" method="post" name="newbul"> |
|
$uploadtag |
my @tools = ( |
<input type="hidden" name="importdetail" value="" /> |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic18" />'=>$extresourcesform}, |
<span class="LC_nobreak"> |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic19" />'=>$imspform}, |
<input name="newbulletin" type="button" value="$lt{'bull'}" |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic20" />'=>$recoverform}, |
onClick="javascript:makebulboard();" /> |
); |
$help{'Bulletin Board'} |
|
</span> |
my %orderhash = ( |
</form> |
'00' => ['Newfolder',$newfolderform], |
<br /><form action="/adm/coursedocs" method="post" name="newaboutme"> |
'aa' => ['Upload Document',$fileuploadform], |
$uploadtag |
'bb' => ['Published Resources',$simpleeditdefaultform], |
<input type="hidden" name="importdetail" |
'cc' => ['Special Documents',$specialdocumentsform], |
value="$plainname=/adm/$udom/$uname/aboutme" /> |
'dd' => ['Tools', create_form_ul(create_list_elements(@tools)).&generate_admin_options($containertag,$uploadtag,\%help,\%env)], |
<span class="LC_nobreak"> |
); |
<input name="newaboutme" type="submit" value="$lt{'mypi'}" /> |
my $tid='1'; |
$help{'My Personal Info'} |
my $varcd = 'Main Course Documents'; |
</span> |
$hadchanges=0; |
</form> |
my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$type); |
<br /><form action="/adm/coursedocs" method="post" name="newaboutsomeone"> |
if ($error) { |
$uploadtag |
$r->print('<p><span class="LC_error">'.$error.'</span></p>'); |
<input type="hidden" name="importdetail" value="" /> |
|
<span class="LC_nobreak"> |
|
<input name="newaboutsomeone" type="button" value="$lt{'abou'}" |
|
onClick="javascript:makeabout();" /> |
|
</span> |
|
</form> |
|
<br /><form action="/adm/coursedocs" method="post" name="newgroupfiles"> |
|
$uploadtag |
|
<input type="hidden" name="importdetail" |
|
value="$lt{'grpo'}=/adm/$coursedom/$coursenum/aboutme" /> |
|
<span class="LC_nobreak"> |
|
<input name="newgroupfiles" type="submit" value="$lt{'grpo'}" /> |
|
$help{'Group Files'} |
|
</span> |
|
</form> |
|
<br /><form action="/adm/coursedocs" method="post" name="newroster"> |
|
$uploadtag |
|
<input type="hidden" name="importdetail" |
|
value="$lt{'rost'}=/adm/viewclasslist" /> |
|
<span class="LC_nobreak"> |
|
<input name="newroster" type="submit" value="$lt{'rost'}" /> |
|
$help{'Course Roster'} |
|
</span> |
|
</form> |
|
ENDFORM |
|
} |
} |
|
if ($hadchanges) { |
|
&mark_hash_old(); |
|
} |
|
|
|
&changewarning($r,''); |
|
$r->print(&generate_edit_table($tid,$varcd,\%orderhash)); |
|
|
|
$r->print('</div>'); |
|
} |
if ($env{'form.pagepath'}) { |
if ($env{'form.pagepath'}) { |
$r->print(<<ENDBLOCK); |
|
<form action="/adm/coursedocs" method="post" name="newsmpproblem"> |
|
$uploadtag |
|
<input type="hidden" name="importdetail" value="" /> |
|
<span class="LC_nobreak"> |
|
<input name="newsmpproblem" type="button" value="$lt{'sipr'}" |
|
onClick="javascript:makesmpproblem();" />$help{'Simple Problem'} |
|
</span> |
|
</form> |
|
<br /><form action="/adm/coursedocs" method="post" name="newexamupload"> |
|
$uploadtag |
|
<input type="hidden" name="importdetail" value="" /> |
|
<span class="LC_nobreak"> |
|
<input name="newexamupload" type="button" value="$lt{'scuf'}" |
|
onClick="javascript:makeexamupload();" /> |
|
$help{'Score_Upload_Form'} |
|
</span> |
|
</form> |
|
ENDBLOCK |
|
} |
} |
$r->print('</td></tr>'."\n". |
|
'</table>'); |
|
$r->print('</td></tr>'); |
|
} |
|
# ----------------------------------------------------- Supplemental documents |
# ----------------------------------------------------- Supplemental documents |
if (!$forcestandard) { |
my $active = 'style="display: none;"'; |
$r->print('<tr><td class="LC_docs_document">'); |
if($activeClass == 1){ |
# '<h2>'.&mt('Supplemental Course Documents'). |
$active = 'style="display: block;"'; |
# ($allowed?' '.$help{'Supplemental'}:'').'</h2>'); |
} |
|
$r->print('<div class="LC_ContentBox" id="supplCourseDocuments" '.$active.'>'); |
my $folder=$env{'form.folder'}; |
my $folder=$env{'form.folder'}; |
unless ($folder=~/^supplemental/) { |
unless ($folder=~/^supplemental/) { |
$folder='supplemental'; |
$folder='supplemental'; |
Line 3110 ENDBLOCK
|
Line 3285 ENDBLOCK
|
(($env{'form.folderpath'} =~ /^default\&/) || ($env{'form.folderpath'} eq ''))) { |
(($env{'form.folderpath'} =~ /^default\&/) || ($env{'form.folderpath'} eq ''))) { |
$env{'form.folderpath'} = 'supplemental&'. |
$env{'form.folderpath'} = 'supplemental&'. |
&escape(&mt('Supplemental '.$type.' Documents')); |
&escape(&mt('Supplemental '.$type.' Documents')); |
|
} elsif ($allowed) { |
|
$env{'form.folderpath'} = $savefolderpath; |
} |
} |
my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$type); |
$env{'form.pagepath'} = ''; |
if ($error) { |
|
$r->print('<p><span class="LC_error">'.$error.'</span></p>'); |
|
} |
|
if ($allowed) { |
if ($allowed) { |
my $folderseq= |
my $folderseq= |
'/uploaded/'.$coursedom.'/'.$coursenum.'/supplemental_'.time. |
'/uploaded/'.$coursedom.'/'.$coursenum.'/supplemental_'.time. |
'.sequence'; |
'.sequence'; |
|
|
my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"'); |
my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"'); |
$r->print(<<ENDSUPFORM); |
|
<table class="LC_docs_adddocs"><tr> |
my @supupdocform = ( |
<th>$lt{'upls'}</th> |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic27" />'=>"<input type='submit' value='".$lt{'upld'}."' />$help{'Uploading_From_Harddrive'}"}, |
<th>$lt{'spec'}</th> |
); |
</tr> |
my $supupdocform=(<<SUPDOCFORM); |
<tr><td> |
<form action="/adm/coursedocs" method="post" name="supuploaddocument" enctype="multipart/form-data"> |
<form action="/adm/coursedocs" method="post" enctype="multipart/form-data"> |
<input type="hidden" name="active" value="ee" /> |
<input type="file" name="uploaddoc" size="40" /> |
$fileupload |
<br /> |
<br /> |
<br /> |
<br /> |
<span class="LC_nobreak"> |
<span class="LC_nobreak"> |
<label>$lt{'parse'}? |
$checkbox |
<input type="checkbox" name="parserflag" /> |
</span> |
</label> |
<br /><br /> |
</span> |
$lt{'comment'}:<br /> |
<br /><br /> |
<textarea cols="50" rows="4" name="comment"></textarea> |
$lt{'comment'}:<br /> |
<br /> |
<textarea cols=50 rows=4 name='comment'> |
<input type="hidden" name="folderpath" value="$path" /> |
</textarea> |
<input type="hidden" name="cmd" value="upload_supplemental" /> |
<br /> |
SUPDOCFORM |
<input type="hidden" name="folderpath" value="$path" /> |
$supupdocform .= create_form_ul(create_list_elements(@supupdocform))."</form>"; |
<input type="hidden" name="cmd" value="upload_supplemental" /> |
|
<span class="LC_nobreak"> |
my $supnewfolderform=(<<SNFFORM); |
<input type="submit" value="$lt{'upld'}" /> |
<form action="/adm/coursedocs" method="post" name="supnewfolder"> |
$help{'Uploading_From_Harddrive'} |
<input type="hidden" name="active" value="ee" /> |
</span> |
<input type="hidden" name="folderpath" value="$path" /> |
</form> |
<input type="hidden" name="importdetail" value="" /> |
</td> |
<a onclick="javascript:makenewfolder(document.supnewfolder,'$folderseq');">$lt{'newf'}</a> |
<td> |
$help{'Adding_Folders'} |
<form action="/adm/coursedocs" method="post" name="supnewfolder"> |
</form> |
<input type="hidden" name="folderpath" value="$path" /> |
SNFFORM |
<input type="hidden" name="importdetail" value="" /> |
|
<span class="LC_nobreak"> |
|
<input name="newfolder" type="button" |
my $supnewextform=(<<SNEFORM); |
onClick="javascript:makenewfolder(this.form,'$folderseq');" |
<form action="/adm/coursedocs" method="post" name="supnewext"> |
value="$lt{'newf'}" /> $help{'Adding_Folders'} |
<input type="hidden" name="active" value="ff" /> |
</span> |
<input type="hidden" name="folderpath" value="$path" /> |
</form> |
<input type="hidden" name="importdetail" value="" /> |
<br /><form action="/adm/coursedocs" method="post" name="supnewext"> |
<a onclick="javascript:makenewext('supnewext');">$lt{'extr'}</a> $help{'Adding_External_Resource'} |
<input type="hidden" name="folderpath" value="$path" /> |
</form> |
<input type="hidden" name="importdetail" value="" /> |
SNEFORM |
<span class="LC_nobreak"> |
|
<input name="newext" type="button" |
my $supnewsylform=(<<SNSFORM); |
onClick="javascript:makenewext('supnewext');" |
<form action="/adm/coursedocs" method="post" name="supnewsyl"> |
value="$lt{'extr'}" /> $help{'Adding_External_Resource'} |
<input type="hidden" name="active" value="ff" /> |
</span> |
<input type="hidden" name="folderpath" value="$path" /> |
</form> |
<input type="hidden" name="importdetail" |
<br /><form action="/adm/coursedocs" method="post" name="supnewsyl"> |
value="Syllabus=/public/$coursedom/$coursenum/syllabus" /> |
<input type="hidden" name="folderpath" value="$path" /> |
<a onclick="document.supnewsyl.submit()">$lt{'syll'}</a> |
<input type="hidden" name="importdetail" |
$help{'Syllabus'} |
value="Syllabus=/public/$coursedom/$coursenum/syllabus" /> |
</form> |
<span class="LC_nobreak"> |
SNSFORM |
<input name="newsyl" type="submit" value="$lt{'syll'}" /> |
|
$help{'Syllabus'} |
my $supnewaboutmeform=(<<SNAMFORM); |
</span> |
<form action="/adm/coursedocs" method="post" name="supnewaboutme"> |
</form> |
<input type="hidden" name="active" value="ff" /> |
<br /><form action="/adm/coursedocs" method="post" name="subnewaboutme"> |
<input type="hidden" name="folderpath" value="$path" /> |
<input type="hidden" name="folderpath" value="$path" /> |
<input type="hidden" name="importdetail" |
<input type="hidden" name="importdetail" |
value="$plainname=/adm/$udom/$uname/aboutme" /> |
value="$plainname=/adm/$udom/$uname/aboutme" /> |
<a onclick="document.supnewaboutme.submit()">$lt{'mypi'}</a> |
<span class="LC_nobreak"> |
$help{'My Personal Information Page'} |
<input name="newaboutme" type="submit" value="$lt{'mypi'}" /> |
</form> |
$help{'My Personal Info'} |
SNAMFORM |
</span> |
|
</form> |
|
</td></tr> |
my @specialdocs = ( |
</table></td></tr> |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic29" />'=>$supnewextform}, |
ENDSUPFORM |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic30" />'=>$supnewsylform}, |
} |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic31" />'=>$supnewaboutmeform}, |
|
); |
|
my %suporderhash = ( |
|
'00' => ['Supnewfolder', $supnewfolderform], |
|
'ee' => ['Upload Document',$supupdocform], |
|
'ff' => ['Special Documents',create_form_ul(create_list_elements(@specialdocs))] |
|
); |
|
|
|
my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$type); |
|
if ($error) { |
|
$r->print('<p><span class="LC_error">'.$error.'</span></p>'); |
|
} |
|
my $tid='2'; |
|
my $varscd = 'Supplemental Course Documents'; |
|
$r->print(&generate_edit_table($tid,$varscd,\%suporderhash)); |
|
} else { |
|
my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$type); |
|
if ($error) { |
|
$r->print('<p><span class="LC_error">'.$error.'</span></p>'); |
|
} |
} |
} |
$r->print('</table>'); |
|
|
|
|
$r->print('</div>'); |
|
$r->print('</div></div>'); |
|
|
|
|
if ($allowed) { |
if ($allowed) { |
$r->print(' |
$r->print(' |
<form method="post" name="extimport" action="/adm/coursedocs"> |
<form method="post" name="extimport" action="/adm/coursedocs"> |
Line 3213 ENDSUPFORM
|
Line 3411 ENDSUPFORM
|
} |
} |
$r->print(&Apache::loncommon::end_page()); |
$r->print(&Apache::loncommon::end_page()); |
return OK; |
return OK; |
} |
} |
|
|
|
sub generate_admin_options { |
|
my ($containertag,$uploadtag,$help_ref,$env_ref) = @_; |
|
my %lt=&Apache::lonlocal::texthash( |
|
'vc' => 'Verify Content', |
|
'cv' => 'Check/Set Resource Versions', |
|
'ls' => 'List Symbs', |
|
'sl' => 'Show Log' |
|
); |
|
my %help = %{$help_ref}; |
|
my %env = %{$env_ref}; |
|
my $dumpbut=&dumpbutton(); |
|
my $exportbut=&exportbutton(); |
|
my @list = ( |
|
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic21" />'=>"<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"verify\", \"$lt{'vc'}\")'>$lt{'vc'}</a>$help{'Verify_Content'}"}, |
|
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic22" />'=>"<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"versions\", \"$lt{'cv'}\")'>$lt{'cv'}</a>$help{'Check_Resource_Versions'}"}, |
|
); |
|
if($dumpbut ne ''){ |
|
push @list, {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic23" />'=>$dumpbut}; |
|
} |
|
push @list, ({'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic24" />'=>$exportbut}, |
|
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic25" />'=>"<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"listsymbs\", \"$lt{'ls'}\")'>$lt{'ls'}</a><input type='hidden' name='folder' value='$env{'form.folder'}' />"}, |
|
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic26" />'=>"<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"docslog\", \"$lt{'sl'}\")'>$lt{'sl'}</a>"}, |
|
); |
|
return '<form action="/adm/coursedocs" method="post" name="courseverify"><input type="hidden" id="dummy" />'.create_form_ul(create_list_elements(@list)).'</form>'; |
|
|
|
} |
|
|
|
|
|
sub generate_edit_table { |
|
my ($tid,$varcd,$orderhash_ref) = @_; |
|
my %orderhash = %{$orderhash_ref}; |
|
my $form; |
|
my $activetab; |
|
my $active; |
|
if($env{'form.active'} ne ''){ |
|
$activetab = $env{'form.active'}; |
|
} |
|
$form = '<div class="LC_Box">'; |
|
$form .= '<ul id="navigation'.$tid.'" class="LC_TabContent">'; |
|
foreach my $name (sort(keys(%orderhash))){ |
|
if($name ne '00'){ |
|
if($activetab eq '' || $activetab ne $name){ |
|
$active = ''; |
|
}elsif($activetab eq $name){ |
|
$active = 'class="active"'; |
|
} |
|
$form .= '<li '.$active.' onclick="javascript:showPage(this, \''.$name.$tid.'\', \'navigation'.$tid.'\',\'content'.$tid.'\');">'.&mt(${$orderhash{$name}}[0]).'</li>'; |
|
} else { |
|
$form .= '<li '.$active.'>'.${$orderhash{$name}}[1].'</li>'; |
|
|
|
} |
|
} |
|
$form .= '</ul>'; |
|
$form .= '<div id="content'.$tid.'" style="padding: 0 0; margin: 0 0;">'; |
|
foreach my $field (keys(%orderhash)){ |
|
if($field ne '00'){ |
|
if($activetab eq '' || $activetab ne $field){ |
|
$active = 'style="display: none;"'; |
|
}elsif($activetab eq $field){ |
|
$active = 'style="display:block;"'; |
|
} |
|
$form .= '<div id="'.$field.$tid.'"' |
|
.' class="LC_ContentBox" '.$active.'>'.${$orderhash{$field}}[1] |
|
.'</div>'; |
|
} |
|
} |
|
$form .= '</div></div>'; |
|
|
|
return $form; |
|
} |
|
|
sub editing_js { |
sub editing_js { |
my ($udom,$uname) = @_; |
my ($udom,$uname) = @_; |
my $now = time(); |
my $now = time(); |
Line 3225 sub editing_js {
|
Line 3493 sub editing_js {
|
p_mnp => 'Name of New Page', |
p_mnp => 'Name of New Page', |
t_mnp => 'New Page', |
t_mnp => 'New Page', |
p_mxu => 'Title for the Uploaded Score', |
p_mxu => 'Title for the Uploaded Score', |
p_msp => 'Title for the Page', |
p_msp => 'Name of Simple Course Page', |
p_msb => 'Title for the Problem', |
p_msb => 'Title for the Problem', |
p_mdb => 'Title for the Drop Box', |
p_mdb => 'Title for the Drop Box', |
p_mbb => 'Title for the Bulletin Board', |
p_mbb => 'Title for the Discussion Board', |
p_mab => "Enter user:domain for User's 'About Me' Page", |
p_mab => "Enter user:domain for User's Personal Information Page", |
p_mab2 => "About [_99]", |
p_mab2 => 'Personal Information Page of ', |
p_mab_alrt1 => 'Not a valid user:domain', |
p_mab_alrt1 => 'Not a valid user:domain', |
p_mab_alrt2 => 'Please enter both user and domain in the format user:domain', |
p_mab_alrt2 => 'Please enter both user and domain in the format user:domain', |
p_chn => 'New Title', |
p_chn => 'New Title', |
Line 3278 function edittext(targetname,residx,titl
|
Line 3546 function edittext(targetname,residx,titl
|
|
|
function makeexamupload() { |
function makeexamupload() { |
var title=prompt('$lt{"p_mxu"}'); |
var title=prompt('$lt{"p_mxu"}'); |
if (title) { |
if (title) { |
this.document.forms.newexamupload.importdetail.value= |
this.document.forms.newexamupload.importdetail.value= |
escape(title)+'=/res/lib/templates/examupload.problem'; |
escape(title)+'=/res/lib/templates/examupload.problem'; |
this.document.forms.newexamupload.submit(); |
this.document.forms.newexamupload.submit(); |
Line 3287 function makeexamupload() {
|
Line 3555 function makeexamupload() {
|
|
|
function makesmppage() { |
function makesmppage() { |
var title=prompt('$lt{"p_msp"}'); |
var title=prompt('$lt{"p_msp"}'); |
if (title) { |
if (title) { |
this.document.forms.newsmppg.importdetail.value= |
this.document.forms.newsmppg.importdetail.value= |
escape(title)+'=/adm/$udom/$uname/$now/smppg'; |
escape(title)+'=/adm/$udom/$uname/$now/smppg'; |
this.document.forms.newsmppg.submit(); |
this.document.forms.newsmppg.submit(); |
Line 3296 function makesmppage() {
|
Line 3564 function makesmppage() {
|
|
|
function makesmpproblem() { |
function makesmpproblem() { |
var title=prompt('$lt{"p_msb"}'); |
var title=prompt('$lt{"p_msb"}'); |
if (title) { |
if (title) { |
this.document.forms.newsmpproblem.importdetail.value= |
this.document.forms.newsmpproblem.importdetail.value= |
escape(title)+'=/res/lib/templates/simpleproblem.problem'; |
escape(title)+'=/res/lib/templates/simpleproblem.problem'; |
this.document.forms.newsmpproblem.submit(); |
this.document.forms.newsmpproblem.submit(); |
Line 3305 function makesmpproblem() {
|
Line 3573 function makesmpproblem() {
|
|
|
function makedropbox() { |
function makedropbox() { |
var title=prompt('$lt{"p_mdb"}'); |
var title=prompt('$lt{"p_mdb"}'); |
if (title) { |
if (title) { |
this.document.forms.newdropbox.importdetail.value= |
this.document.forms.newdropbox.importdetail.value= |
escape(title)+'=/res/lib/templates/DropBox.problem'; |
escape(title)+'=/res/lib/templates/DropBox.problem'; |
this.document.forms.newdropbox.submit(); |
this.document.forms.newdropbox.submit(); |
Line 3330 function makeabout() {
|
Line 3598 function makeabout() {
|
if ((comp[0]) && (comp[1])) { |
if ((comp[0]) && (comp[1])) { |
this.document.forms.newaboutsomeone.importdetail.value= |
this.document.forms.newaboutsomeone.importdetail.value= |
'$lt{"p_mab2"}'+escape(user)+'=/adm/'+comp[1]+'/'+comp[0]+'/aboutme'; |
'$lt{"p_mab2"}'+escape(user)+'=/adm/'+comp[1]+'/'+comp[0]+'/aboutme'; |
this.document.forms.newaboutsomeone.submit(); |
this.document.forms.newaboutsomeone.submit(); |
} else { |
} else { |
alert("$lt{'p_mab_alrt1'}"); |
alert("$lt{'p_mab_alrt1'}"); |
} |
|
} else { |
|
alert("$lt{'p_mab_alrt2'}"); |
|
} |
|
} |
} |
|
} else { |
|
alert("$lt{'p_mab_alrt2'}"); |
|
} |
|
} |
} |
} |
|
|
function makeims() { |
function makeims() { |
var caller = document.forms.ims.folder.value; |
var caller = document.forms.ims.folder.value; |
var newlocation = "/adm/imsimportdocs?folder="+caller+"&phase=one"; |
var newlocation = "/adm/imsimportdocs?folder="+caller+"&phase=one"; |
newWindow = window.open("","IMSimport","HEIGHT=700,WIDTH=750,scrollbars=yes"); |
newWindow = window.open("","IMSimport","HEIGHT=700,WIDTH=750,scrollbars=yes"); |
newWindow.location.href = newlocation; |
newWindow.location.href = newlocation; |
} |
} |
|
|
|
|
function finishpick() { |
function finishpick() { |
var title=this.document.forms.extimport.title.value; |
var title=this.document.forms.extimport.title.value; |
var url=this.document.forms.extimport.url.value; |
var url=this.document.forms.extimport.url.value; |
var form=this.document.forms.extimport.useform.value; |
var form=this.document.forms.extimport.useform.value; |
var residx=this.document.forms.extimport.residx.value; |
var residx=this.document.forms.extimport.residx.value; |
eval('this.document.forms.'+form+'.importdetail.value="'+title+'='+url+'='+residx+'";this.document.forms.'+form+'.submit();'); |
eval('this.document.forms.'+form+'.importdetail.value="'+title+'='+url+'='+residx+'";this.document.forms.'+form+'.submit();'); |
} |
} |
|
|
function changename(folderpath,index,oldtitle,container,pagesymb) { |
function changename(folderpath,index,oldtitle,container,pagesymb) { |
var title=prompt('$lt{"p_chn"}',oldtitle); |
var title=prompt('$lt{"p_chn"}',oldtitle); |
if (title) { |
if (title) { |
this.document.forms.renameform.markcopy.value=-1; |
this.document.forms.renameform.markcopy.value=-1; |
this.document.forms.renameform.title.value=title; |
this.document.forms.renameform.title.value=title; |
this.document.forms.renameform.cmd.value='rename_'+index; |
this.document.forms.renameform.cmd.value='rename_'+index; |
if (container == 'sequence') { |
if (container == 'sequence') { |
this.document.forms.renameform.folderpath.value=folderpath; |
this.document.forms.renameform.folderpath.value=folderpath; |
} |
} |
if (container == 'page') { |
if (container == 'page') { |
this.document.forms.renameform.pagepath.value=folderpath; |
this.document.forms.renameform.pagepath.value=folderpath; |
this.document.forms.renameform.pagesymb.value=pagesymb; |
this.document.forms.renameform.pagesymb.value=pagesymb; |
} |
} |
this.document.forms.renameform.submit(); |
this.document.forms.renameform.submit(); |
} |
} |
} |
} |
|
|
function removeres(folderpath,index,oldtitle,container,pagesymb,skip_confirm) { |
function removeres(folderpath,index,oldtitle,container,pagesymb,skip_confirm) { |
if (skip_confirm || confirm('$lt{"p_rmr1"}\\n\\n$lt{"p_rmr2a"} "'+oldtitle+'" $lt{"p_rmr2b"}')) { |
if (skip_confirm || confirm('$lt{"p_rmr1"}\\n\\n$lt{"p_rmr2a"} "'+oldtitle+'" $lt{"p_rmr2b"}')) { |
this.document.forms.renameform.markcopy.value=-1; |
this.document.forms.renameform.markcopy.value=-1; |
this.document.forms.renameform.cmd.value='del_'+index; |
this.document.forms.renameform.cmd.value='del_'+index; |
if (container == 'sequence') { |
if (container == 'sequence') { |
this.document.forms.renameform.folderpath.value=folderpath; |
this.document.forms.renameform.folderpath.value=folderpath; |
} |
} |
if (container == 'page') { |
if (container == 'page') { |
this.document.forms.renameform.pagepath.value=folderpath; |
this.document.forms.renameform.pagepath.value=folderpath; |
this.document.forms.renameform.pagesymb.value=pagesymb; |
this.document.forms.renameform.pagesymb.value=pagesymb; |
} |
} |
this.document.forms.renameform.submit(); |
this.document.forms.renameform.submit(); |
} |
} |
} |
} |
|
|
function cutres(folderpath,index,oldtitle,container,pagesymb,folder,skip_confirm) { |
function cutres(folderpath,index,oldtitle,container,pagesymb,folder,skip_confirm) { |
if (skip_confirm || confirm('$lt{"p_ctr1a"}\\n$lt{"p_ctr1b"}\\n\\n$lt{"p_ctr2a"} "'+oldtitle+'" $lt{"p_ctr2b"}')) { |
if (skip_confirm || confirm('$lt{"p_ctr1a"}\\n$lt{"p_ctr1b"}\\n\\n$lt{"p_ctr2a"} "'+oldtitle+'" $lt{"p_ctr2b"}')) { |
this.document.forms.renameform.cmd.value='cut_'+index; |
this.document.forms.renameform.cmd.value='cut_'+index; |
this.document.forms.renameform.markcopy.value=index; |
this.document.forms.renameform.markcopy.value=index; |
this.document.forms.renameform.copyfolder.value=folder+'.'+container; |
this.document.forms.renameform.copyfolder.value=folder+'.'+container; |
if (container == 'sequence') { |
if (container == 'sequence') { |
this.document.forms.renameform.folderpath.value=folderpath; |
this.document.forms.renameform.folderpath.value=folderpath; |
} |
} |
if (container == 'page') { |
if (container == 'page') { |
this.document.forms.renameform.pagepath.value=folderpath; |
this.document.forms.renameform.pagepath.value=folderpath; |
this.document.forms.renameform.pagesymb.value=pagesymb; |
this.document.forms.renameform.pagesymb.value=pagesymb; |
} |
} |
this.document.forms.renameform.submit(); |
this.document.forms.renameform.submit(); |
} |
} |
} |
} |
|
|
function markcopy(folderpath,index,oldtitle,container,pagesymb,folder) { |
function markcopy(folderpath,index,oldtitle,container,pagesymb,folder) { |
this.document.forms.renameform.markcopy.value=index; |
this.document.forms.renameform.markcopy.value=index; |
this.document.forms.renameform.copyfolder.value=folder+'.'+container; |
this.document.forms.renameform.copyfolder.value=folder+'.'+container; |
if (container == 'sequence') { |
if (container == 'sequence') { |
this.document.forms.renameform.folderpath.value=folderpath; |
this.document.forms.renameform.folderpath.value=folderpath; |
} |
} |
if (container == 'page') { |
if (container == 'page') { |
this.document.forms.renameform.pagepath.value=folderpath; |
this.document.forms.renameform.pagepath.value=folderpath; |
this.document.forms.renameform.pagesymb.value=pagesymb; |
this.document.forms.renameform.pagesymb.value=pagesymb; |
} |
} |
this.document.forms.renameform.submit(); |
this.document.forms.renameform.submit(); |
|
} |
|
|
|
function unselectInactive(nav) { |
|
currentNav = document.getElementById(nav); |
|
currentLis = currentNav.getElementsByTagName('LI'); |
|
for (i = 0; i < currentLis.length; i++) { |
|
if(currentLis[i].className == 'right active' || currentLis[i].className == 'right'){ |
|
currentLis[i].className = 'right'; |
|
}else{ |
|
currentLis[i].className = 'i'; |
|
} |
|
} |
|
} |
|
|
|
function hideAll(current, nav, data) { |
|
unselectInactive(nav); |
|
if(current.className == 'right'){ |
|
current.className = 'right active' |
|
}else{ |
|
current.className = 'active'; |
|
} |
|
currentData = document.getElementById(data); |
|
currentDivs = currentData.getElementsByTagName('DIV'); |
|
for (i = 0; i < currentDivs.length; i++) { |
|
if(currentDivs[i].className == 'LC_ContentBox'){ |
|
currentDivs[i].style.display = 'none'; |
|
} |
|
} |
|
} |
|
|
|
function openTabs(pageId) { |
|
tabnav = document.getElementById(pageId).getElementsByTagName('UL'); |
|
if(tabnav.length > 2 ){ |
|
currentNav = document.getElementById(tabnav[1].id); |
|
currentLis = currentNav.getElementsByTagName('LI'); |
|
for(i = 0; i< currentLis.length; i++){ |
|
if(currentLis[i].className == 'active') { |
|
funcString = currentLis[i].onclick.toString(); |
|
tab = funcString.split('"'); |
|
currentData = document.getElementById(tab[1]); |
|
currentData.style.display = 'block'; |
|
} |
|
} |
|
} |
|
} |
|
|
|
function showPage(current, pageId, nav, data) { |
|
hideAll(current, nav, data); |
|
openTabs(pageId); |
|
unselectInactive(nav); |
|
current.className = 'active'; |
|
currentData = document.getElementById(pageId); |
|
currentData.style.display = 'block'; |
|
return false; |
|
} |
|
|
|
function injectData(current, hiddenField, name, value) { |
|
currentElement = document.getElementById(hiddenField); |
|
currentElement.name = name; |
|
currentElement.value = value; |
|
current.submit(); |
} |
} |
|
|
ENDNEWSCRIPT |
ENDNEWSCRIPT |
Line 3442 Available help topics
|
Line 3771 Available help topics
|
|
|
=item mapread() |
=item mapread() |
|
|
Mapread read maps into LONCAPA::map:: global arrays |
Mapread read maps into LONCAPA::map:: global arrays |
@order and @resources, determines status |
@order and @resources, determines status |
sets @order - pointer to resources in right order |
sets @order - pointer to resources in right order |
sets @resources - array with the resources with correct idx |
sets @resources - array with the resources with correct idx |