version 1.200, 2005/08/01 17:24:18
|
version 1.252, 2006/11/13 22:32:56
|
Line 33 use Apache::Constants qw(:common :http);
|
Line 33 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::lonratedt; |
use LONCAPA::map(); |
use Apache::lonratsrv; |
use Apache::lonratedt(); |
use Apache::lonxml; |
use Apache::lonxml; |
use Apache::loncreatecourse; |
use Apache::lonclonecourse; |
use Apache::lonnavmaps; |
use Apache::lonnavmaps; |
use HTML::Entities; |
use HTML::Entities; |
use GDBM_File; |
use GDBM_File; |
use Apache::lonlocal; |
use Apache::lonlocal; |
use Cwd; |
use Cwd; |
|
use LONCAPA; |
|
|
my $iconpath; |
my $iconpath; |
|
|
Line 56 my $hadchanges;
|
Line 57 my $hadchanges;
|
|
|
my %help=(); |
my %help=(); |
|
|
# Mapread read maps into lonratedt::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 |
Line 65 my %help=();
|
Line 66 my %help=();
|
sub mapread { |
sub mapread { |
my ($coursenum,$coursedom,$map)=@_; |
my ($coursenum,$coursedom,$map)=@_; |
return |
return |
&Apache::lonratedt::mapread('/uploaded/'.$coursedom.'/'.$coursenum.'/'. |
&LONCAPA::map::mapread('/uploaded/'.$coursedom.'/'.$coursenum.'/'. |
$map); |
$map); |
} |
} |
|
|
sub storemap { |
sub storemap { |
my ($coursenum,$coursedom,$map)=@_; |
my ($coursenum,$coursedom,$map)=@_; |
my ($outtext,$errtext)= |
my ($outtext,$errtext)= |
&Apache::lonratedt::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; |
Line 119 sub authorhosts {
|
Line 120 sub authorhosts {
|
|
|
sub dumpbutton { |
sub dumpbutton { |
my ($home,$other,%outhash)=&authorhosts(); |
my ($home,$other,%outhash)=&authorhosts(); |
|
my $type = &Apache::loncommon::course_type(); |
if ($home+$other==0) { return ''; } |
if ($home+$other==0) { return ''; } |
my $output='</td><td bgcolor="#DDDDCC">'; |
my $output='</td><td bgcolor="#DDDDCC">'; |
if ($home) { |
if ($home) { |
return '</td><td bgcolor="#DDDDCC">'. |
return '</td><td bgcolor="#DDDDCC">'. |
'<input type="submit" name="dumpcourse" value="'. |
'<input type="submit" name="dumpcourse" value="'. |
&mt('Dump Course DOCS to Construction Space').'" />'. |
&mt('Dump '.$type.' DOCS to Construction Space').'" />'. |
&Apache::loncommon::help_open_topic('Docs_Dump_Course_Docs'); |
&Apache::loncommon::help_open_topic('Docs_Dump_Course_Docs'); |
} else { |
} else { |
return'</td><td bgcolor="#DDDDCC">'. |
return'</td><td bgcolor="#DDDDCC">'. |
&mt('Dump Course DOCS to Construction Space: available on other servers'); |
&mt('Dump '.$type. |
|
' DOCS to Construction Space: available on other servers'); |
} |
} |
} |
} |
|
|
Line 140 sub clean {
|
Line 143 sub clean {
|
# -------------------------------------------------------- Actually dump course |
# -------------------------------------------------------- Actually dump course |
|
|
sub dumpcourse { |
sub dumpcourse { |
my $r=shift; |
my ($r) = @_; |
my $html=&Apache::lonxml::xmlbegin(); |
my $type = &Apache::loncommon::course_type(); |
$r->print($html.'<head><title>Dump DOCS</title></head>'. |
$r->print(&Apache::loncommon::start_page('Dump '.$type.' DOCS to Construction Space'). |
&Apache::loncommon::bodytag('Dump Course DOCS to Construction Space'). |
|
'<form name="dumpdoc" method="post">'); |
'<form name="dumpdoc" method="post">'); |
my ($home,$other,%outhash)=&authorhosts(); |
my ($home,$other,%outhash)=&authorhosts(); |
unless ($home) { return ''; } |
unless ($home) { return ''; } |
Line 166 sub dumpcourse {
|
Line 168 sub dumpcourse {
|
$crs=~s/\_/\//g; |
$crs=~s/\_/\//g; |
foreach (keys %replacehash) { |
foreach (keys %replacehash) { |
my $newfilename=$title.'/'.$replacehash{$_}; |
my $newfilename=$title.'/'.$replacehash{$_}; |
|
$newfilename=~s/\.(\w+)$//; |
|
my $ext=$1; |
$newfilename=&clean($newfilename); |
$newfilename=&clean($newfilename); |
|
$newfilename.='.'.$ext; |
my @dirs=split(/\//,$newfilename); |
my @dirs=split(/\//,$newfilename); |
my $path='/home/'.$ca.'/public_html'; |
my $path='/home/'.$ca.'/public_html'; |
my $makepath=$path; |
my $makepath=$path; |
Line 180 sub dumpcourse {
|
Line 185 sub dumpcourse {
|
$r->print('<br /><tt>'.$_.'</tt> => <tt>'.$newfilename.'</tt>: '); |
$r->print('<br /><tt>'.$_.'</tt> => <tt>'.$newfilename.'</tt>: '); |
if (my $fh=Apache::File->new('>'.$path.'/'.$newfilename)) { |
if (my $fh=Apache::File->new('>'.$path.'/'.$newfilename)) { |
if ($_=~/\.(sequence|page|html|htm|xml|xhtml)$/) { |
if ($_=~/\.(sequence|page|html|htm|xml|xhtml)$/) { |
print $fh &Apache::loncreatecourse::rewritefile( |
print $fh &Apache::lonclonecourse::rewritefile( |
&Apache::loncreatecourse::readfile($env{'request.course.id'},$_), |
&Apache::lonclonecourse::readfile($env{'request.course.id'},$_), |
(%replacehash,$crs => '') |
(%replacehash,$crs => '') |
); |
); |
} else { |
} else { |
print $fh |
print $fh |
&Apache::loncreatecourse::readfile($env{'request.course.id'},$_); |
&Apache::lonclonecourse::readfile($env{'request.course.id'},$_); |
} |
} |
$fh->close(); |
$fh->close(); |
} else { |
} else { |
Line 219 sub dumpcourse {
|
Line 224 sub dumpcourse {
|
$r->print('</select>'); |
$r->print('</select>'); |
} |
} |
my $title=$origcrsdata{'description'}; |
my $title=$origcrsdata{'description'}; |
$title=~s/\s+/\_/gs; |
$title=~s/[\/\s]+/\_/gs; |
$title=&clean($title); |
$title=&clean($title); |
$r->print('<h3>'.&mt('Folder in Construction Space').'</h3><input type="text" size="50" name="authorfolder" value="'.$title.'" /><br />'); |
$r->print('<h3>'.&mt('Folder in Construction Space').'</h3><input type="text" size="50" name="authorfolder" value="'.$title.'" /><br />'); |
&tiehash(); |
&tiehash(); |
$r->print('<h3>'.&mt('Filenames in Construction Space').'</h3><table border="2"><tr><th>'.&mt('Internal Filename').'</th><th>'.&mt('Title').'</th><th>'.&mt('Save as ...').'</th></tr>'); |
$r->print('<h3>'.&mt('Filenames in Construction Space').'</h3><table border="2"><tr><th>'.&mt('Internal Filename').'</th><th>'.&mt('Title').'</th><th>'.&mt('Save as ...').'</th></tr>'); |
foreach (&Apache::loncreatecourse::crsdirlist($origcrsid,'userfiles')) { |
foreach (&Apache::lonclonecourse::crsdirlist($origcrsid,'userfiles')) { |
$r->print('<tr><td>'.$_.'</td>'); |
$r->print('<tr><td>'.$_.'</td>'); |
my ($ext)=($_=~/\.(\w+)$/); |
my ($ext)=($_=~/\.(\w+)$/); |
my $title=$hash{'title_'.$hash{ |
my $title=$hash{'title_'.$hash{ |
'ids_/uploaded/'.$origcrsdata{'domain'}.'/'.$origcrsdata{'num'}.'/'.$_}}; |
'ids_/uploaded/'.$origcrsdata{'domain'}.'/'.$origcrsdata{'num'}.'/'.$_}}; |
$title=~s/:/:/g; |
$title=~s/:/:/g; |
$r->print('<td>'.($title?$title:' ').'</td>'); |
$r->print('<td>'.($title?$title:' ').'</td>'); |
unless ($title) { |
if (!$title) { |
$title=$_; |
$title=$_; |
|
} else { |
|
$title=~s|/|_|g; |
} |
} |
$title=~s/\.(\w+)$//; |
$title=~s/\.(\w+)$//; |
$title=&clean($title); |
$title=&clean($title); |
Line 242 sub dumpcourse {
|
Line 249 sub dumpcourse {
|
$r->print("</table>\n"); |
$r->print("</table>\n"); |
&untiehash(); |
&untiehash(); |
$r->print( |
$r->print( |
'<p><input type="submit" name="dumpcourse" value="'.&mt('Dump Course DOCS').'" /></p></form>'); |
'<p><input type="submit" name="dumpcourse" value="'.&mt('Dump [_1] DOCS',$type).'" /></p></form>'); |
} |
} |
} |
} |
|
|
# ------------------------------------------------------ Generate "export" button |
# ------------------------------------------------------ Generate "export" button |
|
|
sub exportbutton { |
sub exportbutton { |
|
my $type = &Apache::loncommon::course_type(); |
return '</td><td bgcolor="#DDDDCC">'. |
return '</td><td bgcolor="#DDDDCC">'. |
'<input type="submit" name="exportcourse" value="'. |
'<input type="submit" name="exportcourse" value="'. |
&mt('Export Course to IMS').'" />'. |
&mt('Export '.$type.' to IMS').'" />'. |
&Apache::loncommon::help_open_topic('Docs_Export_Course_Docs'); |
&Apache::loncommon::help_open_topic('Docs_Export_Course_Docs'); |
} |
} |
|
|
sub exportcourse { |
sub exportcourse { |
my $r=shift; |
my $r=shift; |
|
my $type = &Apache::loncommon::course_type(); |
my %discussiontime = &Apache::lonnet::dump('discussiontimes', |
my %discussiontime = &Apache::lonnet::dump('discussiontimes', |
$env{'course.'.$env{'request.course.id'}.'.domain'}, $env{'course.'.$env{'request.course.id'}.'.num'}); |
$env{'course.'.$env{'request.course.id'}.'.domain'}, $env{'course.'.$env{'request.course.id'}.'.num'}); |
my $numdisc = keys %discussiontime; |
my $numdisc = keys %discussiontime; |
Line 297 sub exportcourse {
|
Line 306 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 .= 'Download the zip file from <a href="'.$imszipfile.'">IMS course archive</a><br />'; |
$outcome .= &mt('Download the zip file from <a href="[_1]">IMS '.lc($type).' archive</a><br />',$imszipfile,); |
if ($copyresult) { |
if ($copyresult) { |
$outcome .= 'The following errors occurred during export - '.$copyresult; |
$outcome .= 'The following errors occurred during export - '.$copyresult; |
} |
} |
Line 305 sub exportcourse {
|
Line 314 sub exportcourse {
|
$outcome = '<br />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 = '<br />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 />'; |
} |
} |
} |
} |
my $html=&Apache::lonxml::xmlbegin(); |
$r->print(&Apache::loncommon::start_page('Export '.lc($type).' to IMS content package')); |
$r->print($html.'<head><title>Export Course</title></head>'. |
|
&Apache::loncommon::bodytag('Export course to IMS content package')); |
|
$r->print($outcome); |
$r->print($outcome); |
$r->print('</body></html>'); |
$r->print(&Apache::loncommon::end_page()); |
} else { |
} else { |
my $display; |
my $display; |
$display = '<form name="exportdoc" method="post">'."\n"; |
$display = '<form name="exportdoc" method="post">'."\n"; |
$display .= 'Choose which items you wish to export from your course.<br /><br />'; |
$display .= &mt('Choose which items you wish to export from your '.$type.'.<br /><br />'); |
$display .= '<table border="0" cellspacing="0" cellpadding="3">'. |
$display .= '<table border="0" cellspacing="0" cellpadding="3">'. |
'<tr><td><fieldset><legend> <b>Content items</b></legend>'. |
'<tr><td><fieldset><legend> <b>Content items</b></legend>'. |
'<input type="button" value="check all" '. |
'<input type="button" value="check all" '. |
Line 447 function containerCheck(item) {
|
Line 454 function containerCheck(item) {
|
|
|
</script> |
</script> |
|; |
|; |
my $html=&Apache::lonxml::xmlbegin(); |
$r->print(&Apache::loncommon::start_page('Export '.lc($type).' to IMS content package', |
$r->print($html.'<head><title>Export Course</title>'.$scripttag.'</head>'. |
$scripttag)); |
&Apache::loncommon::bodytag('Export course to IMS content package' |
$r->print($display.'</table>'. |
)); |
|
|
|
$r->print($display.'</table>'. |
|
'<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 Course DOCS').'" /></p></form></body></html>'); |
&mt('Export '.$type.' DOCS').'" /></p></form>'. |
|
&Apache::loncommon::end_page()); |
} |
} |
} |
} |
|
|
Line 925 sub group_import {
|
Line 930 sub group_import {
|
} |
} |
} |
} |
if ($url) { |
if ($url) { |
my $idx = &Apache::lonratedt::getresidx($url); |
my $idx = &LONCAPA::map::getresidx($url); |
$Apache::lonratedt::order[$#Apache::lonratedt::order+1]=$idx; |
$LONCAPA::map::order[$#LONCAPA::map::order+1]=$idx; |
my $ext = 'false'; |
my $ext = 'false'; |
if ($url=~/^http:\/\//) { $ext = 'true'; } |
if ($url=~/^http:\/\//) { $ext = 'true'; } |
$url =~ s/:/\:/g; |
$url =~ s/:/\:/g; |
$name =~ s/:/\:/g; |
$name =~ s/:/\:/g; |
$Apache::lonratedt::resources[$idx] = |
$LONCAPA::map::resources[$idx] = |
join ':', ($name, $url, $ext, 'normal', 'res'); |
join ':', ($name, $url, $ext, 'normal', 'res'); |
} |
} |
} |
} |
Line 949 sub breadcrumbs {
|
Line 954 sub breadcrumbs {
|
} |
} |
my $folderpath; |
my $folderpath; |
my $cpinfo=''; |
my $cpinfo=''; |
|
my $plain=''; |
if ($env{'form.markedcopy_url'}) { |
if ($env{'form.markedcopy_url'}) { |
&Apache::lonnet::logthis('Found '.$env{'form.markedcopy_url'}); |
|
$cpinfo='&markedcopy_url='. |
$cpinfo='&markedcopy_url='. |
&Apache::lonnet::escape($env{'form.markedcopy_url'}). |
&escape($env{'form.markedcopy_url'}). |
'&markedcopy_title='. |
'&markedcopy_title='. |
&Apache::lonnet::escape($env{'form.markedcopy_title'}); |
&escape($env{'form.markedcopy_title'}); |
} |
} |
|
my $randompick=-1; |
|
my $isencrypted=0; |
|
my $ishidden=0; |
while (@folders) { |
while (@folders) { |
my $folder=shift(@folders); |
my $folder=shift(@folders); |
my $foldername=shift(@folders); |
my $foldername=shift(@folders); |
if ($folderpath) {$folderpath.='&';} |
if ($folderpath) {$folderpath.='&';} |
$folderpath.=$folder.'&'.$foldername; |
$folderpath.=$folder.'&'.$foldername; |
my $url='/adm/coursedocs?folderpath='. |
my $url='/adm/coursedocs?folderpath='. |
&Apache::lonnet::escape($folderpath); |
&escape($folderpath); |
|
my $name=&unescape($foldername); |
|
# randompick number, hidden, encrypted is appended with ":"s to the foldername |
|
$name=~s/\:(\d*)\:(\w*)\:(\w*)$//; |
|
if ($1 ne '') { |
|
$randompick=$1; |
|
} else { |
|
$randompick=-1; |
|
} |
|
if ($2) { $ishidden=1; } |
|
if ($3) { $isencrypted=1; } |
&Apache::lonhtmlcommon::add_breadcrumb( |
&Apache::lonhtmlcommon::add_breadcrumb( |
{'href'=>$url.$cpinfo, |
{'href'=>$url.$cpinfo, |
'title'=>&Apache::lonnet::unescape($foldername), |
'title'=>$name, |
'text'=>'<font size="+1">'. |
'text'=>'<font size="+1">'. |
&Apache::lonnet::unescape($foldername).'</font>' |
$name.'</font>' |
}); |
}); |
|
$plain.=$name.' > '; |
|
} |
|
$plain=~s/\>\;\s*$//; |
|
return (&Apache::lonhtmlcommon::breadcrumbs(undef,undef,0,'nohelp', |
|
'LC_docs_path'),$randompick,$ishidden,$isencrypted,$plain); |
|
} |
|
|
|
sub log_docs { |
|
return &Apache::lonnet::instructor_log('docslog',@_); |
|
} |
|
|
|
{ |
|
my @oldresources=(); |
|
my @oldorder=(); |
|
my $parmidx; |
|
my %parmaction=(); |
|
my %parmvalue=(); |
|
my $changedflag; |
|
|
|
sub snapshotbefore { |
|
@oldresources=@LONCAPA::map::resources; |
|
@oldorder=@LONCAPA::map::order; |
|
$parmidx=undef; |
|
%parmaction=(); |
|
%parmvalue=(); |
|
$changedflag=0; |
|
} |
|
|
|
sub remember_parms { |
|
my ($idx,$parameter,$action,$value)=@_; |
|
$parmidx=$idx; |
|
$parmaction{$parameter}=$action; |
|
$parmvalue{$parameter}=$value; |
|
$changedflag=1; |
|
} |
|
|
|
sub log_differences { |
|
my ($plain)=@_; |
|
my %storehash=('folder' => $plain); |
|
if ($parmidx) { |
|
$storehash{'parameter_res'}=$oldresources[$parmidx]; |
|
foreach my $parm (keys %parmaction) { |
|
$storehash{'parameter_action_'.$parm}=$parmaction{$parm}; |
|
$storehash{'parameter_value_'.$parm}=$parmvalue{$parm}; |
|
} |
|
} |
|
my $maxidx=$#oldresources; |
|
if ($#LONCAPA::map::resources>$#oldresources) { |
|
$maxidx=$#LONCAPA::map::resources; |
|
} |
|
for (my $idx=0; $idx<=$maxidx; $idx++) { |
|
if ($LONCAPA::map::resources[$idx] ne $oldresources[$idx]) { |
|
$storehash{'before_resources_'.$idx}=$oldresources[$idx]; |
|
$storehash{'after_resources_'.$idx}=$LONCAPA::map::resources[$idx]; |
|
$changedflag=1; |
|
} |
|
if ($LONCAPA::map::order[$idx] ne $oldorder[$idx]) { |
|
$storehash{'before_order_res_'.$idx}=$oldresources[$oldorder[$idx]]; |
|
$storehash{'after_order_res_'.$idx}=$LONCAPA::map::resources[$LONCAPA::map::order[$idx]]; |
|
$changedflag=1; |
|
} |
|
} |
|
$storehash{'maxidx'}=$maxidx; |
|
if ($changedflag) { &log_docs(\%storehash); } |
|
} |
|
} |
|
|
|
|
|
# |
|
# Docs Change Log |
|
# |
|
sub docs_change_log { |
|
my ($r)=@_; |
|
$r->print(&Apache::loncommon::start_page('Course Document Change Log')); |
|
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Course Document Change Log')); |
|
|
|
my %docslog=&Apache::lonnet::dump('nohist_docslog', |
|
$env{'course.'.$env{'request.course.id'}.'.domain'}, |
|
$env{'course.'.$env{'request.course.id'}.'.num'}); |
|
|
|
if ((keys(%docslog))[0]=~/^error\:/) { undef(%docslog); } |
|
|
|
$r->print('<form action="/adm/coursedocs" method="post" name="docslog">'. |
|
'<input type="hidden" name="docslog" value="1" />'); |
|
|
|
my %saveable_parameters = ('show' => 'scalar',); |
|
&Apache::loncommon::store_course_settings('docs_log', |
|
\%saveable_parameters); |
|
&Apache::loncommon::restore_course_settings('docs_log', |
|
\%saveable_parameters); |
|
if (!$env{'form.show'}) { $env{'form.show'}=10; } |
|
|
|
my $countselect = |
|
&Apache::lonmeta::selectbox('show',$env{'form.show'},undef, |
|
(&mt('all'),10,20,50,100,1000,10000)); |
|
|
|
$r->print('<nobr>'.&mt('[_1] Records',$countselect).'</nobr>'. |
|
'<input type="submit" value="'.&mt('Display').'" /></form>'); |
|
$r->print(&Apache::loncommon::start_data_table().&Apache::loncommon::start_data_table_header_row(). |
|
'<th>'.&mt('Time').'</th><th>'.&mt('User').'</th><th>'.&mt('Folder').'</th><th>'.&mt('Before').'</th><th>'. |
|
&mt('After').'</th>'. |
|
&Apache::loncommon::end_data_table_header_row()); |
|
my $shown=0; |
|
foreach my $id (sort { $docslog{$b}{'exe_time'}<=>$docslog{$a}{'exe_time'} } (keys(%docslog))) { |
|
my @changes=keys(%{$docslog{$id}{'logentry'}}); |
|
my $count = 0; |
|
my $time = |
|
&Apache::lonlocal::locallocaltime($docslog{$id}{'exe_time'}); |
|
my $plainname = |
|
&Apache::loncommon::plainname($docslog{$id}{'exe_uname'}, |
|
$docslog{$id}{'exe_udom'}); |
|
my $about_me_link = |
|
&Apache::loncommon::aboutmewrapper($plainname, |
|
$docslog{$id}{'exe_uname'}, |
|
$docslog{$id}{'exe_udom'}); |
|
my $send_msg_link=''; |
|
if ((($docslog{$id}{'exe_uname'} ne $env{'user.name'}) |
|
|| ($docslog{$id}{'exe_udom'} ne $env{'user.domain'}))) { |
|
$send_msg_link ='<br />'. |
|
&Apache::loncommon::messagewrapper(&mt('Send message'), |
|
$docslog{$id}{'exe_uname'}, |
|
$docslog{$id}{'exe_udom'}); |
|
} |
|
$r->print(&Apache::loncommon::start_data_table_row()); |
|
$r->print('<td>'.$time.'</td> |
|
<td>'.$about_me_link. |
|
'<br /><tt>'.$docslog{$id}{'exe_uname'}. |
|
':'.$docslog{$id}{'exe_udom'}.'</tt>'. |
|
$send_msg_link.'</td><td>'. |
|
$docslog{$id}{'logentry'}{'folder'}.'</td><td>'); |
|
# Before |
|
for (my $idx=0;$idx<=$docslog{$id}{'logentry'}{'maxidx'};$idx++) { |
|
my $oldname=(split(/\:/,$docslog{$id}{'logentry'}{'before_resources_'.$idx}))[0]; |
|
my $newname=(split(/\:/,$docslog{$id}{'logentry'}{'after_resources_'.$idx}))[0]; |
|
if ($oldname ne $newname) { |
|
$r->print(&LONCAPA::map::qtescape($oldname)); |
|
} |
|
} |
|
$r->print('<ul>'); |
|
for (my $idx=0;$idx<=$docslog{$id}{'logentry'}{'maxidx'};$idx++) { |
|
if ($docslog{$id}{'logentry'}{'before_order_res_'.$idx}) { |
|
$r->print('<li>'.&LONCAPA::map::qtescape((split(/\:/,$docslog{$id}{'logentry'}{'before_order_res_'.$idx}))[0]).'</li>'); |
|
} |
|
} |
|
$r->print('</ul>'); |
|
# After |
|
$r->print('</td><td>'); |
|
|
|
for (my $idx=0;$idx<=$docslog{$id}{'logentry'}{'maxidx'};$idx++) { |
|
my $oldname=(split(/\:/,$docslog{$id}{'logentry'}{'before_resources_'.$idx}))[0]; |
|
my $newname=(split(/\:/,$docslog{$id}{'logentry'}{'after_resources_'.$idx}))[0]; |
|
if ($oldname ne $newname) { |
|
$r->print(&LONCAPA::map::qtescape($newname)); |
|
} |
|
} |
|
$r->print('<ul>'); |
|
for (my $idx=0;$idx<=$docslog{$id}{'logentry'}{'maxidx'};$idx++) { |
|
if ($docslog{$id}{'logentry'}{'after_order_res_'.$idx}) { |
|
$r->print('<li>'.&LONCAPA::map::qtescape((split(/\:/,$docslog{$id}{'logentry'}{'after_order_res_'.$idx}))[0]).'</li>'); |
|
} |
|
} |
|
$r->print('</ul>'); |
|
if ($docslog{$id}{'logentry'}{'parameter_res'}) { |
|
$r->print(&LONCAPA::map::qtescape((split(/\:/,$docslog{$id}{'logentry'}{'parameter_res'}))[0]).':<ul>'); |
|
foreach my $parameter ('randompick','hiddenresource','encrypturl]') { |
|
if ($docslog{$id}{'logentry'}{'parameter_action_'.$parameter}) { |
|
$r->print('<li>'.$parameter.' '.$docslog{$id}{'logentry'}{'parameter_action_'.$parameter}.' '. |
|
$docslog{$id}{'logentry'}{'parameter_value_'.$parameter}.'</li>'); |
|
} |
|
} |
|
$r->print('</ul>'); |
|
} |
|
# End |
|
$r->print('</td>'.&Apache::loncommon::end_data_table_row()); |
|
$shown++; |
|
if (!($env{'form.show'} eq &mt('all') |
|
|| $shown<=$env{'form.show'})) { last; } |
} |
} |
return &Apache::lonhtmlcommon::breadcrumbs(undef,undef,undef,undef,undef, |
$r->print(&Apache::loncommon::end_data_table()); |
0,'nohelp'); |
$r->print(&Apache::loncommon::end_page()); |
} |
} |
|
|
sub editor { |
sub editor { |
Line 986 sub editor {
|
Line 1179 sub editor {
|
} |
} |
($errtext,$fatal)= |
($errtext,$fatal)= |
&mapread($coursenum,$coursedom,$folder.'.'.$container); |
&mapread($coursenum,$coursedom,$folder.'.'.$container); |
if ($#Apache::lonratedt::order<1) { |
if ($#LONCAPA::map::order<1) { |
my $idx=&Apache::lonratedt::getresidx(); |
my $idx=&LONCAPA::map::getresidx(); |
if ($idx<=0) { $idx=1; } |
if ($idx<=0) { $idx=1; } |
$Apache::lonratedt::order[0]=$idx; |
$LONCAPA::map::order[0]=$idx; |
$Apache::lonratedt::resources[$idx]=''; |
$LONCAPA::map::resources[$idx]=''; |
} |
} |
if (defined($env{'form.markcopy'})) { |
if (defined($env{'form.markcopy'})) { |
# Mark for copying |
# Mark for copying |
my ($title,$url)=split(':',$Apache::lonratedt::resources[$Apache::lonratedt::order[$env{'form.markcopy'}]]); |
my ($title,$url)=split(':',$LONCAPA::map::resources[$LONCAPA::map::order[$env{'form.markcopy'}]]); |
$env{'form.markedcopy_title'}=$title; |
$env{'form.markedcopy_title'}=$title; |
$env{'form.markedcopy_url'}=$url; |
$env{'form.markedcopy_url'}=$url; |
} |
} |
$r->print(&breadcrumbs($folder)); |
my ($breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain)=&breadcrumbs($folder); |
|
$r->print($breadcrumbtrail); |
if ($fatal) { |
if ($fatal) { |
$r->print('<p><font color="red">'.$errtext.'</font></p>'); |
$r->print('<p><font color="red">'.$errtext.'</font></p>'); |
} else { |
} else { |
Line 1007 sub editor {
|
Line 1201 sub editor {
|
# ---------------- if they are for this folder and user allowed to make changes |
# ---------------- if they are for this folder and user allowed to make changes |
if (($allowed) && ($env{'form.folder'} eq $folder)) { |
if (($allowed) && ($env{'form.folder'} eq $folder)) { |
# set parameters and change order |
# set parameters and change order |
if (defined($env{'form.setparms'})) { |
&snapshotbefore(); |
|
if ($env{'form.changeparms'}) { |
my $idx=$env{'form.setparms'}; |
my $idx=$env{'form.setparms'}; |
# set parameters |
# set parameters |
if ($env{'form.randpick_'.$idx}) { |
if ($env{'form.randpick_'.$idx}) { |
&Apache::lonratedt::storeparameter($idx,'parameter_randompick',$env{'form.randpick_'.$idx},'int_pos'); |
&LONCAPA::map::storeparameter($idx,'parameter_randompick',$env{'form.randpick_'.$idx},'int_pos'); |
|
&remember_parms($idx,'randompick','set',$env{'form.randpick_'.$idx}); |
} else { |
} else { |
&Apache::lonratedt::delparameter($idx,'parameter_randompick'); |
&LONCAPA::map::delparameter($idx,'parameter_randompick'); |
|
&remember_parms($idx,'randompick','del'); |
} |
} |
if ($env{'form.hidprs_'.$idx}) { |
if ($env{'form.hidprs_'.$idx}) { |
&Apache::lonratedt::storeparameter($idx,'parameter_hiddenresource','yes','string_yesno'); |
&LONCAPA::map::storeparameter($idx,'parameter_hiddenresource','yes','string_yesno'); |
} else { |
&remember_parms($idx,'hiddenresource','set',$env{'form.hidprs_'.$idx}); |
&Apache::lonratedt::delparameter($idx,'parameter_hiddenresource'); |
} else { |
} |
&LONCAPA::map::delparameter($idx,'parameter_hiddenresource'); |
|
&remember_parms($idx,'hiddenresource','del'); |
|
} |
if ($env{'form.encprs_'.$idx}) { |
if ($env{'form.encprs_'.$idx}) { |
&Apache::lonratedt::storeparameter($idx,'parameter_encrypturl','yes','string_yesno'); |
&LONCAPA::map::storeparameter($idx,'parameter_encrypturl','yes','string_yesno'); |
} else { |
&remember_parms($idx,'encrypturl','set',$env{'form.encprs_'.$idx}); |
&Apache::lonratedt::delparameter($idx,'parameter_encrypturl'); |
} else { |
|
&LONCAPA::map::delparameter($idx,'parameter_encrypturl'); |
|
&remember_parms($idx,'encrypturl','del'); |
|
} |
|
# store the changed version |
|
($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.'.$container); |
|
if ($fatal) { |
|
$r->print('<p><font color="red">'.$errtext.'</font></p>'); |
|
return; |
} |
} |
|
} |
|
|
if ($env{'form.newpos'}) { |
if ($env{'form.newpos'}) { |
# change order |
# change order |
|
my $newpos=$env{'form.newpos'}-1; |
my $newpos=$env{'form.newpos'}-1; |
my $currentpos=$env{'form.currentpos'}-1; |
my $currentpos=$env{'form.currentpos'}-1; |
my $i; |
my $i; |
my @neworder=(); |
my @neworder=(); |
if ($newpos>$currentpos) { |
if ($newpos>$currentpos) { |
|
# moving stuff up |
# moving stuff up |
for ($i=0;$i<$currentpos;$i++) { |
for ($i=0;$i<$currentpos;$i++) { |
$neworder[$i]=$Apache::lonratedt::order[$i]; |
$neworder[$i]=$LONCAPA::map::order[$i]; |
} |
} |
for ($i=$currentpos;$i<$newpos;$i++) { |
for ($i=$currentpos;$i<$newpos;$i++) { |
$neworder[$i]=$Apache::lonratedt::order[$i+1]; |
$neworder[$i]=$LONCAPA::map::order[$i+1]; |
} |
} |
$neworder[$newpos]=$Apache::lonratedt::order[$currentpos]; |
$neworder[$newpos]=$LONCAPA::map::order[$currentpos]; |
for ($i=$newpos+1;$i<=$#Apache::lonratedt::order;$i++) { |
for ($i=$newpos+1;$i<=$#LONCAPA::map::order;$i++) { |
$neworder[$i]=$Apache::lonratedt::order[$i]; |
$neworder[$i]=$LONCAPA::map::order[$i]; |
} |
} |
} else { |
} else { |
# moving stuff down |
# moving stuff down |
for ($i=0;$i<$newpos;$i++) { |
for ($i=0;$i<$newpos;$i++) { |
$neworder[$i]=$Apache::lonratedt::order[$i]; |
$neworder[$i]=$LONCAPA::map::order[$i]; |
} |
} |
$neworder[$newpos]=$Apache::lonratedt::order[$currentpos]; |
$neworder[$newpos]=$LONCAPA::map::order[$currentpos]; |
for ($i=$newpos+1;$i<$currentpos+1;$i++) { |
for ($i=$newpos+1;$i<$currentpos+1;$i++) { |
$neworder[$i]=$Apache::lonratedt::order[$i-1]; |
$neworder[$i]=$LONCAPA::map::order[$i-1]; |
} |
} |
for ($i=$currentpos+1;$i<=$#Apache::lonratedt::order;$i++) { |
for ($i=$currentpos+1;$i<=$#LONCAPA::map::order;$i++) { |
$neworder[$i]=$Apache::lonratedt::order[$i]; |
$neworder[$i]=$LONCAPA::map::order[$i]; |
} |
|
} |
} |
@Apache::lonratedt::order=@neworder; |
|
} |
} |
|
@LONCAPA::map::order=@neworder; |
# store the changed version |
# store the changed version |
|
|
($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.'.$container); |
($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.'.$container); |
if ($fatal) { |
if ($fatal) { |
$r->print('<p><font color="red">'.$errtext.'</font></p>'); |
$r->print('<p><font color="red">'.$errtext.'</font></p>'); |
return; |
return; |
} |
} |
|
|
} |
} |
|
|
if ($env{'form.pastemarked'}) { |
if ($env{'form.pastemarked'}) { |
# paste resource to end of list |
# paste resource to end of list |
my $url=$env{'form.markedcopy_url'}; |
my $url=$env{'form.markedcopy_url'}; |
Line 1081 sub editor {
|
Line 1286 sub editor {
|
my $newurl=$1.$newid.'.'.$2; |
my $newurl=$1.$newid.'.'.$2; |
my $storefn=$newurl; |
my $storefn=$newurl; |
$storefn=~s/^\/\w+\/\w+\/\w+\///; |
$storefn=~s/^\/\w+\/\w+\/\w+\///; |
&Apache::loncreatecourse::writefile |
&Apache::lonclonecourse::writefile |
($env{'request.course.id'},$storefn, |
($env{'request.course.id'},$storefn, |
&Apache::lonnet::getfile($url)); |
&Apache::lonnet::getfile($url)); |
$url=$newurl; |
$url=$newurl; |
Line 1093 sub editor {
|
Line 1298 sub editor {
|
if ($url=~/^http\:\/\//) { $ext='true'; } |
if ($url=~/^http\:\/\//) { $ext='true'; } |
$url=~s/\:/\:/g; |
$url=~s/\:/\:/g; |
# Now insert the URL at the bottom |
# Now insert the URL at the bottom |
my $newidx=&Apache::lonratedt::getresidx($url); |
my $newidx=&LONCAPA::map::getresidx($url); |
$Apache::lonratedt::resources[$newidx]= |
$LONCAPA::map::resources[$newidx]= |
$title.':'.$url.':'.$ext.':normal:res'; |
$title.':'.$url.':'.$ext.':normal:res'; |
$Apache::lonratedt::order[1+$#Apache::lonratedt::order]=$newidx; |
$LONCAPA::map::order[1+$#LONCAPA::map::order]=$newidx; |
# Store the result |
# Store the result |
($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.'.$container); |
($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.'.$container); |
if ($fatal) { |
if ($fatal) { |
Line 1109 sub editor {
|
Line 1314 sub editor {
|
if ($env{'form.cmd'}) { |
if ($env{'form.cmd'}) { |
my ($cmd,$idx)=split(/\_/,$env{'form.cmd'}); |
my ($cmd,$idx)=split(/\_/,$env{'form.cmd'}); |
if ($cmd eq 'del') { |
if ($cmd eq 'del') { |
my (undef,$url)=split(':',$Apache::lonratedt::resources[$Apache::lonratedt::order[$idx]]); |
my (undef,$url)=split(':',$LONCAPA::map::resources[$LONCAPA::map::order[$idx]]); |
if (($url=~m|/+uploaded/\Q$coursedom\E/\Q$coursenum\E/|) && |
if (($url=~m|/+uploaded/\Q$coursedom\E/\Q$coursenum\E/|) && |
($url!~/\.(page|sequence|problem|exam|quiz|assess|survey|form|library)$/)) { |
($url!~/\.(page|sequence|problem|exam|quiz|assess|survey|form|library|task)$/)) { |
&Apache::lonnet::removeuploadedurl($url); |
&Apache::lonnet::removeuploadedurl($url); |
} else { |
} else { |
&Apache::lonratedt::makezombie($Apache::lonratedt::order[$idx]); |
&LONCAPA::map::makezombie($LONCAPA::map::order[$idx]); |
} |
} |
for (my $i=$idx;$i<$#Apache::lonratedt::order;$i++) { |
for (my $i=$idx;$i<$#LONCAPA::map::order;$i++) { |
$Apache::lonratedt::order[$i]= |
$LONCAPA::map::order[$i] = $LONCAPA::map::order[$i+1]; |
$Apache::lonratedt::order[$i+1]; |
|
} |
} |
$#Apache::lonratedt::order--; |
$#LONCAPA::map::order--; |
} elsif ($cmd eq 'cut') { |
} elsif ($cmd eq 'cut') { |
my (undef,$url)=split(':',$Apache::lonratedt::resources[$Apache::lonratedt::order[$idx]]); |
my (undef,$url)=split(':',$LONCAPA::map::resources[$LONCAPA::map::order[$idx]]); |
&Apache::lonratedt::makezombie($Apache::lonratedt::order[$idx]); |
&LONCAPA::map::makezombie($LONCAPA::map::order[$idx]); |
for (my $i=$idx;$i<$#Apache::lonratedt::order;$i++) { |
for (my $i=$idx;$i<$#LONCAPA::map::order;$i++) { |
$Apache::lonratedt::order[$i]= |
$LONCAPA::map::order[$i] = $LONCAPA::map::order[$i+1]; |
$Apache::lonratedt::order[$i+1]; |
|
} |
} |
$#Apache::lonratedt::order--; |
$#LONCAPA::map::order--; |
} elsif ($cmd eq 'up') { |
} elsif ($cmd eq 'up') { |
if (($idx) && (defined($Apache::lonratedt::order[$idx-1]))) { |
if (($idx) && (defined($LONCAPA::map::order[$idx-1]))) { |
my $i=$Apache::lonratedt::order[$idx-1]; |
my $i=$LONCAPA::map::order[$idx-1]; |
$Apache::lonratedt::order[$idx-1]= |
$LONCAPA::map::order[$idx-1] = $LONCAPA::map::order[$idx]; |
$Apache::lonratedt::order[$idx]; |
$LONCAPA::map::order[$idx] = $i; |
$Apache::lonratedt::order[$idx]=$i; |
|
} |
} |
} elsif ($cmd eq 'down') { |
} elsif ($cmd eq 'down') { |
if (defined($Apache::lonratedt::order[$idx+1])) { |
if (defined($LONCAPA::map::order[$idx+1])) { |
my $i=$Apache::lonratedt::order[$idx+1]; |
my $i=$LONCAPA::map::order[$idx+1]; |
$Apache::lonratedt::order[$idx+1]= |
$LONCAPA::map::order[$idx+1] = $LONCAPA::map::order[$idx]; |
$Apache::lonratedt::order[$idx]; |
$LONCAPA::map::order[$idx] = $i; |
$Apache::lonratedt::order[$idx]=$i; |
|
} |
} |
} elsif ($cmd eq 'rename') { |
} elsif ($cmd eq 'rename') { |
my $ratstr = $Apache::lonratedt::resources[$Apache::lonratedt::order[$idx]]; |
my $ratstr = $LONCAPA::map::resources[$LONCAPA::map::order[$idx]]; |
my ($rtitle,@rrest)=split(/\:/, |
my ($rtitle,@rrest)=split(/\:/, |
$Apache::lonratedt::resources[ |
$LONCAPA::map::resources[$LONCAPA::map::order[$idx]]); |
$Apache::lonratedt::order[$idx]]); |
|
my $comment= |
my $comment= |
&HTML::Entities::decode($env{'form.title'}); |
&HTML::Entities::decode($env{'form.title'}); |
$comment=~s/\</\<\;/g; |
$comment=~s/\</\<\;/g; |
$comment=~s/\>/\>\;/g; |
$comment=~s/\>/\>\;/g; |
$comment=~s/\:/\:/g; |
$comment=~s/\:/\:/g; |
if ($comment=~/\S/) { |
if ($comment=~/\S/) { |
$Apache::lonratedt::resources[ |
$LONCAPA::map::resources[$LONCAPA::map::order[$idx]]= |
$Apache::lonratedt::order[$idx]]= |
$comment.':'.join(':',@rrest); |
$comment.':'.join(':',@rrest); |
|
} |
} |
|
# Devalidate title cache |
|
my $renamed_url=$rrest[0]; |
|
# Has the :-escaping |
|
$renamed_url=~s/\&colon\;/\:/g; |
|
&Apache::lonnet::devalidate_title_cache($renamed_url); |
} |
} |
# Store the changed version |
# Store the changed version |
($errtext,$fatal)=&storemap($coursenum,$coursedom, |
($errtext,$fatal)=&storemap($coursenum,$coursedom, |
Line 1170 sub editor {
|
Line 1374 sub editor {
|
# Group import/search |
# Group import/search |
if ($env{'form.importdetail'}) { |
if ($env{'form.importdetail'}) { |
my @imports; |
my @imports; |
|
# &Apache::lonnet::logthis("imp detail ".$env{'form.importdetail'}); |
foreach (split(/\&/,$env{'form.importdetail'})) { |
foreach (split(/\&/,$env{'form.importdetail'})) { |
if (defined($_)) { |
if (defined($_)) { |
my ($name,$url)=split(/\=/,$_); |
my ($name,$url)=split(/\=/,$_); |
$name=&Apache::lonnet::unescape($name); |
$name=&unescape($name); |
$url=&Apache::lonnet::unescape($url); |
$url=&unescape($url); |
push @imports, $name, $url; |
push @imports, $name, $url; |
} |
} |
} |
} |
# Store the changed version |
# Store the changed version |
($errtext,$fatal)=group_import($coursenum, $coursedom, $folder, |
($errtext,$fatal)=&group_import($coursenum, $coursedom, $folder, |
$container,'londocs',@imports); |
$container,'londocs',@imports); |
if ($fatal) { |
if ($fatal) { |
$r->print('<p><font color="red">'.$errtext.'</font></p>'); |
$r->print('<p><font color="red">'.$errtext.'</font></p>'); |
Line 1187 sub editor {
|
Line 1392 sub editor {
|
} |
} |
} |
} |
# Loading a complete map |
# Loading a complete map |
if (($env{'form.importmap'}) && ($env{'form.loadmap'})) { |
if ($env{'form.loadmap'}) { |
foreach (&Apache::lonsequence::attemptread(&Apache::lonnet::filelocation('',$env{'form.importmap'}))) { |
if ($env{'form.importmap'}=~/\w/) { |
my ($title,$url,$ext,$type)=split(/\:/,$_); |
foreach (&Apache::lonsequence::attemptread(&Apache::lonnet::filelocation('',$env{'form.importmap'}))) { |
my $idx=&Apache::lonratedt::getresidx($url); |
my ($title,$url,$ext,$type)=split(/\:/,$_); |
$Apache::lonratedt::resources[$idx]=$_; |
my $idx=&LONCAPA::map::getresidx($url); |
$Apache::lonratedt::order |
$LONCAPA::map::resources[$idx]=$_; |
[$#Apache::lonratedt::order+1]=$idx; |
$LONCAPA::map::order[$#LONCAPA::map::order+1]=$idx; |
} |
} |
|
|
# Store the changed version |
# Store the changed version |
($errtext,$fatal)=&storemap($coursenum,$coursedom, |
($errtext,$fatal)=&storemap($coursenum,$coursedom, |
$folder.'.'.$container); |
$folder.'.'.$container); |
if ($fatal) { |
if ($fatal) { |
$r->print('<p><font color="red">'.$errtext.'</font></p>'); |
$r->print('<p><font color="red">'.$errtext.'</font></p>'); |
return; |
return; |
} |
} |
|
} else { |
|
$r->print('<p><font color="red">'.&mt('No map selected.').'</font></p>'); |
|
} |
} |
} |
|
&log_differences($plain); |
} |
} |
# ---------------------------------------------------------------- End commands |
# ---------------------------------------------------------------- End commands |
# ---------------------------------------------------------------- Print screen |
# ---------------------------------------------------------------- Print screen |
my $idx=0; |
my $idx=0; |
my $shown=0; |
my $shown=0; |
|
if (($ishidden) || ($isencrypted) || ($randompick>=0)) { |
|
$r->print('<p>'.&mt('Parameters').':<ul>'. |
|
($randompick>=0?'<li>'.&mt('randomly pick [_1] resources',$randompick).'</li>':''). |
|
($ishidden?'<li>'.&mt('contents hidden').'</li>':''). |
|
($isencrypted?'<li>'.&mt('URLs hidden').'</li>':''). |
|
'</ul></p>'); |
|
} |
|
if ($randompick>=0) { |
|
$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>'); |
|
} |
$r->print('<table>'); |
$r->print('<table>'); |
foreach (@Apache::lonratedt::order) { |
foreach (@LONCAPA::map::order) { |
my ($name,$url)=split(/\:/,$Apache::lonratedt::resources[$_]); |
my ($name,$url)=split(/\:/,$LONCAPA::map::resources[$_]); |
|
$name=&LONCAPA::map::qtescape($name); |
|
$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,$_,$coursenum)); |
$r->print(&entryline($idx,$name,$url,$folder,$allowed,$_,$coursenum)); |
Line 1269 sub process_file_upload {
|
Line 1489 sub process_file_upload {
|
} |
} |
($errtext,$fatal)= |
($errtext,$fatal)= |
&mapread($coursenum,$coursedom,$folder.'.'.$container); |
&mapread($coursenum,$coursedom,$folder.'.'.$container); |
if ($#Apache::lonratedt::order<1) { |
if ($#LONCAPA::map::order<1) { |
$Apache::lonratedt::order[0]=1; |
$LONCAPA::map::order[0]=1; |
$Apache::lonratedt::resources[1]=''; |
$LONCAPA::map::resources[1]=''; |
} |
} |
if ($fatal) { |
if ($fatal) { |
return 'failed'; |
return 'failed'; |
Line 1287 sub process_file_upload {
|
Line 1507 sub process_file_upload {
|
} |
} |
# this is for a course, not a user, so set coursedoc flag |
# this is for a course, not a user, so set coursedoc flag |
# probably the only place in the system where this should be "1" |
# probably the only place in the system where this should be "1" |
my $newidx=&Apache::lonratedt::getresidx(); |
my $newidx=&LONCAPA::map::getresidx(); |
$destination .= $newidx; |
$destination .= $newidx; |
my $url=&Apache::lonnet::userfileupload('uploaddoc',1,$destination, |
my $url=&Apache::lonnet::userfileupload('uploaddoc',1,$destination, |
$parseaction,$allfiles, |
$parseaction,$allfiles, |
Line 1304 sub process_file_upload {
|
Line 1524 sub process_file_upload {
|
$env{'user.domain'}.'___&&&___'.$comment; |
$env{'user.domain'}.'___&&&___'.$comment; |
} |
} |
|
|
$Apache::lonratedt::resources[$newidx]= |
$LONCAPA::map::resources[$newidx]= |
$comment.':'.$url.':'.$ext.':normal:res'; |
$comment.':'.$url.':'.$ext.':normal:res'; |
$Apache::lonratedt::order[$#Apache::lonratedt::order+1]= $newidx; |
$LONCAPA::map::order[$#LONCAPA::map::order+1]= $newidx; |
($errtext,$fatal)=&storemap($coursenum,$coursedom, |
($errtext,$fatal)=&storemap($coursenum,$coursedom, |
$folder.'.'.$container); |
$folder.'.'.$container); |
if ($fatal) { |
if ($fatal) { |
Line 1322 sub process_file_upload {
|
Line 1542 sub process_file_upload {
|
method="post" enctype="multipart/form-data"> |
method="post" enctype="multipart/form-data"> |
<input type="hidden" name="folderpath" value="'.$env{'form.folderpath'}.'" /> <input type="hidden" name="cmd" value="upload_embedded" /> |
<input type="hidden" name="folderpath" value="'.$env{'form.folderpath'}.'" /> <input type="hidden" name="cmd" value="upload_embedded" /> |
<input type="hidden" name="newidx" value="'.$newidx.'" /> |
<input type="hidden" name="newidx" value="'.$newidx.'" /> |
<input type="hidden" name="primaryurl" value="'.&Apache::lonnet::escape($url).'" /> |
<input type="hidden" name="primaryurl" value="'.&escape($url).'" /> |
<input type="hidden" name="phasetwo" value="'.$total_embedded.'" />'; |
<input type="hidden" name="phasetwo" value="'.$total_embedded.'" />'; |
$$upload_output .= '<b>Upload embedded files</b>:<br /> |
$$upload_output .= '<b>Upload embedded files</b>:<br /> |
<table>'; |
<table>'; |
foreach my $embed_file (keys(%{$allfiles})) { |
foreach my $embed_file (keys(%{$allfiles})) { |
$$upload_output .= '<tr><td>'.$embed_file. |
$$upload_output .= '<tr><td>'.$embed_file. |
'<input name="embedded_item_'.$num.'" type="file" /> |
'<input name="embedded_item_'.$num.'" type="file" /> |
<input name="embedded_orig_'.$num.'" type="hidden" value="'.&Apache::lonnet::escape($embed_file).'" />'; |
<input name="embedded_orig_'.$num.'" type="hidden" value="'.&escape($embed_file).'" />'; |
my $attrib; |
my $attrib; |
if (@{$$allfiles{$embed_file}} > 1) { |
if (@{$$allfiles{$embed_file}} > 1) { |
$attrib = join(':',@{$$allfiles{$embed_file}}); |
$attrib = join(':',@{$$allfiles{$embed_file}}); |
Line 1340 sub process_file_upload {
|
Line 1560 sub process_file_upload {
|
'<input name="embedded_attrib_'.$num.'" type="hidden" value="'.$attrib.'" />'; |
'<input name="embedded_attrib_'.$num.'" type="hidden" value="'.$attrib.'" />'; |
if (exists($$codebase{$embed_file})) { |
if (exists($$codebase{$embed_file})) { |
$$upload_output .= |
$$upload_output .= |
'<input name="codebase_'.$num.'" type="hidden" value="'.&Apache::lonnet::escape($$codebase{$embed_file}).'" />'; |
'<input name="codebase_'.$num.'" type="hidden" value="'.&escape($$codebase{$embed_file}).'" />'; |
} |
} |
$$upload_output .= '</td></tr>'; |
$$upload_output .= '</td></tr>'; |
$num ++; |
$num ++; |
Line 1368 sub process_secondary_uploads {
|
Line 1588 sub process_secondary_uploads {
|
if (($folder eq 'default') || ($folder eq 'supplemental')) { |
if (($folder eq 'default') || ($folder eq 'supplemental')) { |
$destination .= 'default/'; |
$destination .= 'default/'; |
} elsif ($folder =~ /^(default|supplemental)_(\d+)$/) { |
} elsif ($folder =~ /^(default|supplemental)_(\d+)$/) { |
$destination .= $1.'/'; |
$destination .= $2.'/'; |
} |
} |
$destination .= $newidx; |
$destination .= $newidx; |
my ($url,$filename); |
my ($url,$filename); |
Line 1383 sub entryline {
|
Line 1603 sub entryline {
|
my ($index,$title,$url,$folder,$allowed,$residx,$coursenum)=@_; |
my ($index,$title,$url,$folder,$allowed,$residx,$coursenum)=@_; |
$title=~s/\&colon\;/\:/g; |
$title=~s/\&colon\;/\:/g; |
$title=&HTML::Entities::encode(&HTML::Entities::decode( |
$title=&HTML::Entities::encode(&HTML::Entities::decode( |
&Apache::lonnet::unescape($title)),'"<>&\''); |
&unescape($title)),'"<>&\''); |
my $renametitle=$title; |
my $renametitle=$title; |
my $foldertitle=$title; |
my $foldertitle=$title; |
my $pagetitle=$title; |
my $pagetitle=$title; |
my $orderidx=$Apache::lonratedt::order[$index]; |
my $orderidx=$LONCAPA::map::order[$index]; |
if ($title=~ /^(\d+)___&&&___(\w+)___&&&___(\w+)___&&&___(.*)$/ ) { |
if ($title=~ /^(\d+)___&&&___(\w+)___&&&___(\w+)___&&&___(.*)$/ ) { |
$foldertitle=&Apache::lontexconvert::msgtexconverted($4); |
$foldertitle=&Apache::lontexconvert::msgtexconverted($4); |
$renametitle=$4; |
$renametitle=$4; |
Line 1395 sub entryline {
|
Line 1615 sub entryline {
|
&Apache::loncommon::plainname($2,$3).': <br />'. |
&Apache::loncommon::plainname($2,$3).': <br />'. |
$foldertitle; |
$foldertitle; |
} |
} |
|
$renametitle=~s/\\/\\\\/g; |
$renametitle=~s/\"\;/\\\"/g; |
$renametitle=~s/\"\;/\\\"/g; |
my $line='<tr>'; |
my $line='<tr>'; |
# Edit commands |
# Edit commands |
Line 1402 sub entryline {
|
Line 1623 sub entryline {
|
my $folderpath; |
my $folderpath; |
if ($env{'form.folderpath'}) { |
if ($env{'form.folderpath'}) { |
$container = 'sequence'; |
$container = 'sequence'; |
$folderpath=&Apache::lonnet::escape($env{'form.folderpath'}); |
$folderpath=&escape($env{'form.folderpath'}); |
# $htmlfoldername=&HTML::Entities::encode($env{'form.foldername'},'<>&"'); |
# $htmlfoldername=&HTML::Entities::encode($env{'form.foldername'},'<>&"'); |
} |
} |
my ($pagepath,$pagesymb); |
my ($pagepath,$pagesymb); |
if ($env{'form.pagepath'}) { |
if ($env{'form.pagepath'}) { |
$container = 'page'; |
$container = 'page'; |
$pagepath=&Apache::lonnet::escape($env{'form.pagepath'}); |
$pagepath=&escape($env{'form.pagepath'}); |
$pagesymb=&Apache::lonnet::escape($env{'form.pagesymb'}); |
$pagesymb=&escape($env{'form.pagesymb'}); |
} |
} |
my $cpinfo=''; |
my $cpinfo=''; |
if ($env{'form.markedcopy_url'}) { |
if ($env{'form.markedcopy_url'}) { |
$cpinfo='&markedcopy_url='. |
$cpinfo='&markedcopy_url='. |
&Apache::lonnet::escape($env{'form.markedcopy_url'}). |
&escape($env{'form.markedcopy_url'}). |
'&markedcopy_title='. |
'&markedcopy_title='. |
&Apache::lonnet::escape($env{'form.markedcopy_title'}); |
&escape($env{'form.markedcopy_title'}); |
} |
} |
if ($allowed) { |
if ($allowed) { |
my $incindex=$index+1; |
my $incindex=$index+1; |
my $selectbox=''; |
my $selectbox=''; |
if (($folder!~/^supplemental/) && |
if (($folder!~/^supplemental/) && |
($#Apache::lonratedt::order>0) && |
($#LONCAPA::map::order>0) && |
((split(/\:/, |
((split(/\:/, |
$Apache::lonratedt::resources[$Apache::lonratedt::order[0]]))[1] |
$LONCAPA::map::resources[$LONCAPA::map::order[0]]))[1] |
ne '') && |
ne '') && |
((split(/\:/, |
((split(/\:/, |
$Apache::lonratedt::resources[$Apache::lonratedt::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<=$#Apache::lonratedt::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="1">('.$i.')</option>'; |
} else { |
} else { |
Line 1448 sub entryline {
|
Line 1669 sub entryline {
|
'ct' => 'Cut', |
'ct' => 'Cut', |
'rn' => 'Rename', |
'rn' => 'Rename', |
'cp' => 'Copy'); |
'cp' => 'Copy'); |
|
my $nocopy=0; |
|
if ($url=~/\.(page|sequence)$/) { |
|
foreach (&Apache::lonsequence::attemptread(&Apache::lonnet::filelocation('',$url))) { |
|
my ($title,$url,$ext,$type)=split(/\:/,$_); |
|
if (($url=~/\.(page|sequence)/) && ($type ne 'zombie')) { |
|
$nocopy=1; |
|
last; |
|
} |
|
} |
|
} |
|
my $copylink=' '; |
if ($env{'form.pagepath'}) { |
if ($env{'form.pagepath'}) { |
|
unless ($nocopy) { |
|
$copylink=(<<ENDCOPY); |
|
<a href='javascript:markcopy("$pagepath","$index","$renametitle","page","$pagesymb");'> |
|
<font size="-2" color="#000099">$lt{'cp'}</font></a></td> |
|
ENDCOPY |
|
} |
$line.=(<<END); |
$line.=(<<END); |
<form name="entry_$index" action="/adm/coursedocs" method="post"> |
<form name="entry_$index" action="/adm/coursedocs" method="post"> |
<input type="hidden" name="pagepath" value="$env{'form.pagepath'}" /> |
<input type="hidden" name="pagepath" value="$env{'form.pagepath'}" /> |
Line 1456 sub entryline {
|
Line 1694 sub entryline {
|
<input type="hidden" name="markedcopy_url" value="$env{'form.markedcopy_url'}" /> |
<input type="hidden" name="markedcopy_url" value="$env{'form.markedcopy_url'}" /> |
<input type="hidden" name="markedcopy_title" value="$env{'form.markedcopy_title'}" /> |
<input type="hidden" name="markedcopy_title" value="$env{'form.markedcopy_title'}" /> |
<input type="hidden" name="setparms" value="$orderidx" /> |
<input type="hidden" name="setparms" value="$orderidx" /> |
|
<input type="hidden" name="changeparms" value="0" /> |
<td><table border='0' cellspacing='2' cellpadding='0'> |
<td><table border='0' cellspacing='2' cellpadding='0'> |
<tr><td bgcolor="#DDDDDD"> |
<tr><td bgcolor="#DDDDDD"> |
<a href='/adm/coursedocs?cmd=up_$index&pagepath=$pagepath&pagesymb=$pagesymb$cpinfo'> |
<a href='/adm/coursedocs?cmd=up_$index&pagepath=$pagepath&pagesymb=$pagesymb$cpinfo'> |
Line 1472 sub entryline {
|
Line 1711 sub entryline {
|
<font size="-2" color="#550044">$lt{'ct'}</font></a> |
<font size="-2" color="#550044">$lt{'ct'}</font></a> |
<a href='javascript:changename("$pagepath","$index","$renametitle","page","$pagesymb");'> |
<a href='javascript:changename("$pagepath","$index","$renametitle","page","$pagesymb");'> |
<font size="-2" color="#009900">$lt{'rn'}</font></a> |
<font size="-2" color="#009900">$lt{'rn'}</font></a> |
<a href='javascript:markcopy("$pagepath","$index","$renametitle","page","$pagesymb");'> |
$copylink |
<font size="-2" color="#000099">$lt{'cp'}</font></a></td> |
|
END |
END |
} else { |
} else { |
|
unless ($nocopy) { |
|
$copylink=(<<ENDCOPY); |
|
<a href='javascript:markcopy("$folderpath","$index","$renametitle","sequence");'> |
|
<font size="-2" color="#000099">$lt{'cp'}</font></a></td> |
|
ENDCOPY |
|
} |
$line.=(<<END); |
$line.=(<<END); |
<form name="entry_$index" action="/adm/coursedocs" method="post"> |
<form name="entry_$index" action="/adm/coursedocs" method="post"> |
<input type="hidden" name="folderpath" value="$env{'form.folderpath'}" /> |
<input type="hidden" name="folderpath" value="$env{'form.folderpath'}" /> |
<input type="hidden" name="markedcopy_url" value="$env{'form.markedcopy_url'}" /> |
<input type="hidden" name="markedcopy_url" value="$env{'form.markedcopy_url'}" /> |
<input type="hidden" name="markedcopy_title" value="$env{'form.markedcopy_title'}" /> |
<input type="hidden" name="markedcopy_title" value="$env{'form.markedcopy_title'}" /> |
<input type="hidden" name="setparms" value="$orderidx" /> |
<input type="hidden" name="setparms" value="$orderidx" /> |
|
<input type="hidden" name="changeparms" value="0" /> |
<td><table border='0' cellspacing='2' cellpadding='0'> |
<td><table border='0' cellspacing='2' cellpadding='0'> |
<tr><td bgcolor="#DDDDDD"> |
<tr><td bgcolor="#DDDDDD"> |
<a href='/adm/coursedocs?cmd=up_$index&folderpath=$folderpath$cpinfo'> |
<a href='/adm/coursedocs?cmd=up_$index&folderpath=$folderpath$cpinfo'> |
Line 1498 END
|
Line 1743 END
|
<font size="-2" color="#550044">$lt{'ct'}</font></a> |
<font size="-2" color="#550044">$lt{'ct'}</font></a> |
<a href='javascript:changename("$folderpath","$index","$renametitle","sequence");'> |
<a href='javascript:changename("$folderpath","$index","$renametitle","sequence");'> |
<font size="-2" color="#009900">$lt{'rn'}</font></a> |
<font size="-2" color="#009900">$lt{'rn'}</font></a> |
<a href='javascript:markcopy("$folderpath","$index","$renametitle","sequence");'> |
$copylink |
<font size="-2" color="#000099">$lt{'cp'}</font></a></td> |
|
END |
END |
} |
} |
} |
} |
Line 1529 END
|
Line 1773 END
|
&Apache::lonnet::allowuploaded('/adm/coursedoc',$url); |
&Apache::lonnet::allowuploaded('/adm/coursedoc',$url); |
} |
} |
} |
} |
$url=~s/^http\&colon\;\/\//\/adm\/wrapper\/ext\//; |
$url=~s-^http(\&colon\;|:)//-/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( |
&Apache::lonnet::declutter('uploaded/'. |
&Apache::lonnet::declutter('uploaded/'. |
Line 1553 END
|
Line 1797 END
|
} elsif ($url=~m|^/ext/|) { |
} elsif ($url=~m|^/ext/|) { |
$url='/adm/wrapper'.$url; |
$url='/adm/wrapper'.$url; |
} |
} |
$url.=(($url=~/\?/)?'&':'?').'symb='.&Apache::lonnet::escape($symb); |
if (&Apache::lonnet::symbverify($symb,$url)) { |
|
$url.=(($url=~/\?/)?'&':'?').'symb='.&escape($symb); |
|
} else { |
|
$url=''; |
|
} |
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='.&Apache::lonnet::escape($symb); |
$url.=(($url=~/\?/)?'&':'?').'symb='.&escape($symb); |
} |
} |
} |
} |
my $parameterset=' '; |
my $parameterset=' '; |
if ($isfolder) { |
if ($isfolder || $extension eq 'sequence') { |
my $foldername=&Apache::lonnet::escape($foldertitle); |
my $foldername=&escape($foldertitle); |
my $folderpath=$env{'form.folderpath'}; |
my $folderpath=$env{'form.folderpath'}; |
if ($folderpath) { $folderpath.='&' }; |
if ($folderpath) { $folderpath.='&' }; |
$folderpath.=$folderarg.'&'.$foldername; |
# Append randompick number, hidden, and encrypted with ":" to foldername, |
$url.='folderpath='.&Apache::lonnet::escape($folderpath).$cpinfo; |
# so it gets transferred between levels |
|
$folderpath.=$folderarg.'&'.$foldername.':'.(&LONCAPA::map::getparameter($orderidx, |
|
'parameter_randompick'))[0] |
|
.':'.((&LONCAPA::map::getparameter($orderidx, |
|
'parameter_hiddenresource'))[0]=~/^yes$/i) |
|
.':'.((&LONCAPA::map::getparameter($orderidx, |
|
'parameter_encrypturl'))[0]=~/^yes$/i); |
|
$url.='folderpath='.&escape($folderpath).$cpinfo; |
$parameterset='<label>'.&mt('Randomly Pick: '). |
$parameterset='<label>'.&mt('Randomly Pick: '). |
'<input type="text" size="4" onChange="this.form.submit()" name="randpick_'.$orderidx.'" value="'. |
'<input type="text" size="4" onChange="this.form.changeparms.value=1;this.form.submit()" name="randpick_'.$orderidx.'" value="'. |
(&Apache::lonratedt::getparameter($orderidx, |
(&LONCAPA::map::getparameter($orderidx, |
'parameter_randompick'))[0]. |
'parameter_randompick'))[0]. |
'" />'. |
'" />'. |
'<font size="-2"><a href="javascript:void(0)">'.&mt('Store').'</a></font></label>'; |
'<font size="-2"><a href="javascript:void(0)">'.&mt('Store').'</a></font></label>'; |
|
|
} |
} |
if ($ispage) { |
if ($ispage) { |
my $pagename=&Apache::lonnet::escape($pagetitle); |
my $pagename=&escape($pagetitle); |
my $pagepath; |
my $pagepath; |
my $folderpath=$env{'form.folderpath'}; |
my $folderpath=$env{'form.folderpath'}; |
if ($folderpath) { $pagepath = $folderpath.'&' }; |
if ($folderpath) { $pagepath = $folderpath.'&' }; |
Line 1591 END
|
Line 1846 END
|
$residx, |
$residx, |
$path.$pagearg.'.page'); |
$path.$pagearg.'.page'); |
} |
} |
$url.='pagepath='.&Apache::lonnet::escape($pagepath). |
$url.='pagepath='.&escape($pagepath). |
'&pagesymb='.&Apache::lonnet::escape($symb).$cpinfo; |
'&pagesymb='.&escape($symb).$cpinfo; |
} |
} |
$line.='<td bgcolor="#FFFFBB"><a href="'.$url.'"><img src="'.$icon. |
$line.='<td bgcolor="#FFFFBB"><a href="'.$url.'"><img src="'.$icon. |
'" border="0"></a></td>'. |
'" border="0"></a></td>'. |
"<td bgcolor='#FFFFBB'><a href='$url'>$title</a></td>"; |
"<td bgcolor='#FFFFBB'>".($url?"<a href=\"$url\">":'').$title. |
|
($url?'</a>':' <font size="-2">'.&mt('(re-initialize course to access)').'</font>')."</td>"; |
if (($allowed) && ($folder!~/^supplemental/)) { |
if (($allowed) && ($folder!~/^supplemental/)) { |
my %lt=&Apache::lonlocal::texthash( |
my %lt=&Apache::lonlocal::texthash( |
'hd' => 'Hidden', |
'hd' => 'Hidden', |
'ec' => 'URL hidden'); |
'ec' => 'URL hidden'); |
my $enctext= |
my $enctext= |
((&Apache::lonratedt::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i?' checked="1"':''); |
((&LONCAPA::map::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i?' checked="1"':''); |
my $hidtext= |
my $hidtext= |
((&Apache::lonratedt::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i?' checked="1"':''); |
((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i?' checked="1"':''); |
$line.=(<<ENDPARMS); |
$line.=(<<ENDPARMS); |
<td bgcolor="#BBBBFF"><font size='-2'> |
<td bgcolor="#BBBBFF"><font size='-2'> |
<nobr><label><input type="checkbox" name="hidprs_$orderidx" onClick="this.form.submit()" $hidtext /> $lt{'hd'}</label></nobr></td> |
<nobr><label><input type="checkbox" name="hidprs_$orderidx" onClick="this.form.changeparms.value=1;this.form.submit()" $hidtext /> $lt{'hd'}</label></nobr></td> |
<td bgcolor="#BBBBFF"><font size='-2'> |
<td bgcolor="#BBBBFF"><font size='-2'> |
<nobr><label><input type="checkbox" name="encprs_$orderidx" onClick="this.form.submit()" $enctext /> $lt{'ec'}</label></nobr></td> |
<nobr><label><input type="checkbox" name="encprs_$orderidx" onClick="this.form.changeparms.value=1;this.form.submit()" $enctext /> $lt{'ec'}</label></nobr></td> |
<td bgcolor="#BBBBFF"><font size="-2">$parameterset</font></td> |
<td bgcolor="#BBBBFF"><font size="-2">$parameterset</font></td> |
ENDPARMS |
ENDPARMS |
} |
} |
Line 1640 sub tiehash {
|
Line 1896 sub tiehash {
|
sub untiehash { |
sub untiehash { |
if ($hashtied) { untie %hash; } |
if ($hashtied) { untie %hash; } |
$hashtied=0; |
$hashtied=0; |
|
return OK; |
} |
} |
|
|
# --------------------------------------------------------------- check on this |
# --------------------------------------------------------------- check on this |
|
|
sub checkonthis { |
sub checkonthis { |
my ($r,$url,$level,$title)=@_; |
my ($r,$url,$level,$title)=@_; |
$url=&Apache::lonnet::unescape($url); |
$url=&unescape($url); |
$alreadyseen{$url}=1; |
$alreadyseen{$url}=1; |
$r->rflush(); |
$r->rflush(); |
if (($url) && ($url!~/^\/uploaded\//) && ($url!~/\*$/)) { |
if (($url) && ($url!~/^\/uploaded\//) && ($url!~/\*$/)) { |
Line 1716 sub checkonthis {
|
Line 1973 sub checkonthis {
|
|
|
|
|
# |
# |
|
# ----------------------------------------------------------------- List Symbs |
|
# |
|
sub list_symbs { |
|
my ($r) = @_; |
|
|
|
$r->print(&Apache::loncommon::start_page('Symb List')); |
|
my $navmap = Apache::lonnavmaps::navmap->new(); |
|
$r->print("<pre>\n"); |
|
foreach my $res ($navmap->retrieveResources()) { |
|
$r->print($res->compTitle()."\t".$res->symb()."\n"); |
|
} |
|
$r->print("\n</pre>\n"); |
|
$r->print('<a href="/adm/coursedocs">'.&mt('Return to DOCS').'</a>'); |
|
} |
|
|
|
|
|
# |
# -------------------------------------------------------------- Verify Content |
# -------------------------------------------------------------- Verify Content |
# |
# |
sub verifycontent { |
sub verifycontent { |
my $r=shift; |
my ($r) = @_; |
|
my $type = &Apache::loncommon::course_type(); |
my $loaderror=&Apache::lonnet::overloaderror($r); |
my $loaderror=&Apache::lonnet::overloaderror($r); |
if ($loaderror) { return $loaderror; } |
if ($loaderror) { return $loaderror; } |
my $html=&Apache::lonxml::xmlbegin(); |
$r->print(&Apache::loncommon::start_page('Verify '.$type.' Documents')); |
$r->print($html.'<head><title>Verify Content</title></head>'. |
|
&Apache::loncommon::bodytag('Verify Course Documents')); |
|
$hashtied=0; |
$hashtied=0; |
undef %alreadyseen; |
undef %alreadyseen; |
%alreadyseen=(); |
%alreadyseen=(); |
&tiehash(); |
&tiehash(); |
foreach (keys %hash) { |
foreach (keys %hash) { |
if ($hash{$_}=~/\.(page|sequence)$/) { |
if ($hash{$_}=~/\.(page|sequence)$/) { |
if (($_=~/^src_/) && ($alreadyseen{&Apache::lonnet::unescape($hash{$_})})) { |
if (($_=~/^src_/) && ($alreadyseen{&unescape($hash{$_})})) { |
$r->print('<hr /><font color="red">'. |
$r->print('<hr /><font color="red">'. |
&mt('The following sequence or page is included more than once in your course: '). |
&mt('The following sequence or page is included more than once in your '.$type.': '). |
&Apache::lonnet::unescape($hash{$_}).'</font><br />'. |
&unescape($hash{$_}).'</font><br />'. |
&mt('Note that grading records for problems included in this sequence or folder will overlap.<hr />')); |
&mt('Note that grading records for problems included in this sequence or folder will overlap.<hr />')); |
} |
} |
} |
} |
if (($_=~/^src\_(.+)$/) && (!$alreadyseen{&Apache::lonnet::unescape($hash{$_})})) { |
if (($_=~/^src\_(.+)$/) && (!$alreadyseen{&unescape($hash{$_})})) { |
&checkonthis($r,$hash{$_},0,$hash{'title_'.$1}); |
&checkonthis($r,$hash{$_},0,$hash{'title_'.$1}); |
} |
} |
} |
} |
Line 1757 sub devalidateversioncache {
|
Line 2030 sub devalidateversioncache {
|
} |
} |
|
|
sub checkversions { |
sub checkversions { |
my $r=shift; |
my ($r) = @_; |
my $html=&Apache::lonxml::xmlbegin(); |
my $type = &Apache::loncommon::course_type(); |
$r->print($html.'<head><title>Check Versions</title></head>'. |
$r->print(&Apache::loncommon::start_page("Check $type Document Versions")); |
&Apache::loncommon::bodytag('Check Course Document Versions')); |
|
my $header=''; |
my $header=''; |
my $startsel=''; |
my $startsel=''; |
my $monthsel=''; |
my $monthsel=''; |
Line 1821 sub checkversions {
|
Line 2093 sub checkversions {
|
&changewarning($r,''); |
&changewarning($r,''); |
if ($env{'form.timerange'} eq 'all') { |
if ($env{'form.timerange'} eq 'all') { |
# show all documents |
# show all documents |
$header=&mt('All Documents in Course'); |
$header=&mt('All Documents in '.$type); |
$allsel=1; |
$allsel=1; |
foreach (keys %hash) { |
foreach (keys %hash) { |
if ($_=~/^ids\_(\/res\/.+)$/) { |
if ($_=~/^ids\_(\/res\/.+)$/) { |
Line 1866 sub checkversions {
|
Line 2138 sub checkversions {
|
$env{'course.'.$env{'request.course.id'}.'.domain'}, |
$env{'course.'.$env{'request.course.id'}.'.domain'}, |
$env{'course.'.$env{'request.course.id'}.'.num'}); |
$env{'course.'.$env{'request.course.id'}.'.num'}); |
my %lt=&Apache::lonlocal::texthash |
my %lt=&Apache::lonlocal::texthash |
('st' => 'Version changes since start of Course', |
('st' => 'Version changes since start of '.$type, |
'lm' => 'Version changes since last Month', |
'lm' => 'Version changes since last Month', |
'lw' => 'Version changes since last Week', |
'lw' => 'Version changes since last Week', |
'sy' => 'Version changes since Yesterday', |
'sy' => 'Version changes since Yesterday', |
Line 1875 sub checkversions {
|
Line 2147 sub checkversions {
|
'fi' => 'File', |
'fi' => 'File', |
'md' => 'Modification Date', |
'md' => 'Modification Date', |
'mr' => 'Most recently published Version', |
'mr' => 'Most recently published Version', |
've' => 'Version used in Course', |
've' => 'Version used in '.$type, |
'vu' => 'Set Version to be used in Course', |
'vu' => 'Set Version to be used in '.$type, |
'sv' => 'Set Versions to be used in Course according to Selections below', |
'sv' => 'Set Versions to be used in '.$type.' according to Selections below', |
'sm' => 'Keep all Resources up-to-date with most recent Versions (default)', |
'sm' => 'Keep all Resources up-to-date with most recent Versions (default)', |
'sc' => 'Set all Resource Versions to current Version (Fix Versions)', |
'sc' => 'Set all Resource Versions to current Version (Fix Versions)', |
'di' => 'Differences'); |
'di' => 'Differences'); |
Line 1924 ENDHEADERS
|
Line 2196 ENDHEADERS
|
'<td title="'.$lt{'mr'}.'"><nobr>Most Recent: '. |
'<td title="'.$lt{'mr'}.'"><nobr>Most Recent: '. |
'<font size="+1">'.$currentversion.'</font>'. |
'<font size="+1">'.$currentversion.'</font>'. |
'</nobr></td>'. |
'</nobr></td>'. |
'<td title="'.$lt{'ve'}.'"><nobr>In Course: '. |
'<td title="'.$lt{'ve'}.'"><nobr>In '.$type.': '. |
'<font size="+1">'); |
'<font size="+1">'); |
# Used in course |
# Used in course |
my $usedversion=$hash{'version_'.$linkurl}; |
my $usedversion=$hash{'version_'.$linkurl}; |
Line 2028 sub changewarning {
|
Line 2300 sub changewarning {
|
my ($r,$postexec,$message,$url)=@_; |
my ($r,$postexec,$message,$url)=@_; |
if (!&is_hash_old()) { return; } |
if (!&is_hash_old()) { return; } |
my $pathvar='folderpath'; |
my $pathvar='folderpath'; |
my $path=&Apache::lonnet::escape($env{'form.folderpath'}); |
my $path=&escape($env{'form.folderpath'}); |
if (!defined($url)) { |
if (!defined($url)) { |
if (defined($env{'form.pagepath'})) { |
if (defined($env{'form.pagepath'})) { |
$pathvar='pagepath'; |
$pathvar='pagepath'; |
$path=&Apache::lonnet::escape($env{'form.pagepath'}); |
$path=&escape($env{'form.pagepath'}); |
$path.='&pagesymb='.&Apache::lonnet::escape($env{'form.pagesymb'}); |
$path.='&pagesymb='.&escape($env{'form.pagesymb'}); |
} |
} |
$url='/adm/coursedocs?'.$pathvar.'='.$path; |
$url='/adm/coursedocs?'.$pathvar.'='.$path; |
} |
} |
|
my $course_type = &Apache::loncommon::course_type(); |
if (!defined($message)) { |
if (!defined($message)) { |
$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.'; |
} |
} |
Line 2047 sub changewarning {
|
Line 2320 sub changewarning {
|
'" /><input type="hidden" name="selectrole" value="1" /><h3><font color="red">'. |
'" /><input type="hidden" name="selectrole" value="1" /><h3><font color="red">'. |
&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').'" onClick="reinit(this.form)" />'). |
&mt('re-initializing '.$course_type).'" onClick="reinit(this.form)" />'). |
$help{'Caching'}.'</font></h3></form>'."\n\n"); |
$help{'Caching'}.'</font></h3></form>'."\n\n"); |
} |
} |
|
|
Line 2057 sub handler {
|
Line 2330 sub handler {
|
&Apache::loncommon::content_type($r,'text/html'); |
&Apache::loncommon::content_type($r,'text/html'); |
$r->send_http_header; |
$r->send_http_header; |
return OK if $r->header_only; |
return OK if $r->header_only; |
|
my $type = &Apache::loncommon::course_type(); |
|
|
# --------------------------------------------- Initialize help topics for this |
# --------------------------------------------- Initialize help topics for this |
foreach ('Adding_Course_Doc','Main_Course_Documents', |
foreach ('Adding_Course_Doc','Main_Course_Documents', |
'Adding_External_Resource','Navigate_Content', |
'Adding_External_Resource','Navigate_Content', |
'Adding_Folders','Docs_Overview', 'Load_Map', |
'Adding_Folders','Docs_Overview', 'Load_Map', |
'Supplemental','Score_Upload_Form','Adding_Pages', |
'Supplemental','Score_Upload_Form','Adding_Pages', |
'Importing_LON-CAPA_Resource','Uploading_From_Harddrive', |
'Importing_LON-CAPA_Resource','Uploading_From_Harddrive', |
'Check_Resource_Versions','Verify_Content') { |
'Check_Resource_Versions','Verify_Content') { |
$help{$_}=&Apache::loncommon::help_open_topic('Docs_'.$_); |
$help{$_}=&Apache::loncommon::help_open_topic('Docs_'.$_); |
} |
} |
# Composite help files |
# Composite help files |
$help{'Syllabus'} = &Apache::loncommon::help_open_topic( |
$help{'Syllabus'} = &Apache::loncommon::help_open_topic( |
'Docs_About_Syllabus,Docs_Editing_Templated_Pages'); |
'Docs_About_Syllabus,Docs_Editing_Templated_Pages'); |
Line 2080 sub handler {
|
Line 2354 sub handler {
|
'Docs_About_My_Personal_Info,Docs_Editing_Templated_Pages'); |
'Docs_About_My_Personal_Info,Docs_Editing_Templated_Pages'); |
$help{'Caching'} = &Apache::loncommon::help_open_topic('Caching'); |
$help{'Caching'} = &Apache::loncommon::help_open_topic('Caching'); |
|
|
if ($env{'form.verify'}) { |
# does this user have privileges to modify docs |
|
my $allowed=&Apache::lonnet::allowed('mdc',$env{'request.course.id'}); |
|
|
|
if ($allowed && $env{'form.verify'}) { |
&verifycontent($r); |
&verifycontent($r); |
} elsif ($env{'form.versions'}) { |
} elsif ($allowed && $env{'form.listsymbs'}) { |
|
&list_symbs($r); |
|
} elsif ($allowed && $env{'form.docslog'}) { |
|
&docs_change_log($r); |
|
} elsif ($allowed && $env{'form.versions'}) { |
&checkversions($r); |
&checkversions($r); |
} elsif ($env{'form.dumpcourse'}) { |
} elsif ($allowed && $env{'form.dumpcourse'}) { |
&dumpcourse($r); |
&dumpcourse($r); |
} elsif ($env{'form.exportcourse'}) { |
} elsif ($allowed && $env{'form.exportcourse'}) { |
&exportcourse($r); |
&exportcourse($r); |
} else { |
} else { |
# is this a standard course? |
# is this a standard course? |
Line 2095 sub handler {
|
Line 2376 sub handler {
|
my $forcestandard = 0; |
my $forcestandard = 0; |
my $forcesupplement; |
my $forcesupplement; |
my $script=''; |
my $script=''; |
my $allowed; |
|
my $events=''; |
|
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','pagesymb','markedcopy_url','markedcopy_title']); |
['folderpath','pagepath', |
|
'pagesymb','markedcopy_url', |
|
'markedcopy_title']); |
if ($env{'form.folderpath'}) { |
if ($env{'form.folderpath'}) { |
my (@folderpath)=split('&',$env{'form.folderpath'}); |
my (@folderpath)=split('&',$env{'form.folderpath'}); |
$env{'form.foldername'}=&Apache::lonnet::unescape(pop(@folderpath)); |
$env{'form.foldername'}=&unescape(pop(@folderpath)); |
$env{'form.folder'}=pop(@folderpath); |
$env{'form.folder'}=pop(@folderpath); |
} |
} |
if ($env{'form.pagepath'}) { |
if ($env{'form.pagepath'}) { |
my (@pagepath)=split('&',$env{'form.pagepath'}); |
my (@pagepath)=split('&',$env{'form.pagepath'}); |
$env{'form.pagename'}=&Apache::lonnet::unescape(pop(@pagepath)); |
$env{'form.pagename'}=&unescape(pop(@pagepath)); |
$env{'form.folder'}=pop(@pagepath); |
$env{'form.folder'}=pop(@pagepath); |
$containertag = '<input type="hidden" name="pagepath" value="" />'. |
$containertag = '<input type="hidden" name="pagepath" value="" />'. |
'<input type="hidden" name="pagesymb" value="" />'; |
'<input type="hidden" name="pagesymb" value="" />'; |
Line 2120 sub handler {
|
Line 2401 sub handler {
|
$showdoc='/'.$1; |
$showdoc='/'.$1; |
} |
} |
unless ($showdoc) { # got called from remote |
unless ($showdoc) { # got called from remote |
if (($env{'form.folder'}=~/^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_/); |
|
|
# does this user have privileges to post, etc? |
|
$allowed=&Apache::lonnet::allowed('mdc',$env{'request.course.id'}); |
|
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; |
$script='</script>'.&Apache::lonmenu::registerurl(1,undef).'<script>'; |
|
$events='onLoad="'.&Apache::lonmenu::loadevents. |
|
'" onUnload="'.&Apache::lonmenu::unloadevents.'"'; |
|
} |
} |
|
|
# 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=&Apache::lonnet::escape( |
my $plainname=&escape(&Apache::loncommon::plainname($uname,$udom)); |
&Apache::loncommon::plainname($uname,$udom)); |
|
|
|
# graphics settings |
# graphics settings |
|
|
$iconpath = &Apache::loncommon::lonhttpdurl($r->dir_config('lonIconsURL') . "/"); |
$iconpath = &Apache::loncommon::lonhttpdurl($r->dir_config('lonIconsURL') . "/"); |
|
|
my $now=time; |
if ($allowed) { |
|
$script .= &editing_js($udom,$uname); |
# print screen |
|
my $html=&Apache::lonxml::xmlbegin(); |
|
$r->print(<<ENDDOCUMENT); |
|
$html |
|
<head> |
|
<title>The LearningOnline Network with CAPA</title> |
|
<script> |
|
$script |
|
</script> |
|
ENDDOCUMENT |
|
if ($allowed) { |
|
$r->print(<<ENDNEWSCRIPT); |
|
<script> |
|
function makenewfolder(targetform,folderseq) { |
|
var foldername=prompt('Name of New Folder','New Folder'); |
|
if (foldername) { |
|
targetform.importdetail.value=foldername+"="+folderseq; |
|
targetform.submit(); |
|
} |
|
} |
|
|
|
function makenewpage(targetform,folderseq) { |
|
var pagename=prompt('Name of New Page','New Page'); |
|
if (pagename) { |
|
targetform.importdetail.value=pagename+"="+folderseq; |
|
targetform.submit(); |
|
} |
|
} |
|
|
|
function makenewext(targetname) { |
|
this.document.forms.extimport.useform.value=targetname; |
|
window.open('/adm/rat/extpickframe.html'); |
|
} |
|
|
|
function makeexamupload() { |
|
var title=prompt('Listed Title for the Uploaded Score'); |
|
if (title) { |
|
this.document.forms.newexamupload.importdetail.value= |
|
title+'=/res/lib/templates/examupload.problem'; |
|
this.document.forms.newexamupload.submit(); |
|
} |
|
} |
|
|
|
function makesmppage() { |
|
var title=prompt('Listed Title for the Page'); |
|
if (title) { |
|
this.document.forms.newsmppg.importdetail.value= |
|
title+'=/adm/$udom/$uname/$now/smppg'; |
|
this.document.forms.newsmppg.submit(); |
|
} |
|
} |
|
|
|
function makesmpproblem() { |
|
var title=prompt('Listed Title for the Problem'); |
|
if (title) { |
|
this.document.forms.newsmpproblem.importdetail.value= |
|
title+'=/res/lib/templates/simpleproblem.problem'; |
|
this.document.forms.newsmpproblem.submit(); |
|
} |
|
} |
|
|
|
function makebulboard() { |
|
var title=prompt('Listed Title for the Bulletin Board'); |
|
if (title) { |
|
this.document.forms.newbul.importdetail.value= |
|
title+'=/adm/$udom/$uname/$now/bulletinboard'; |
|
this.document.forms.newbul.submit(); |
|
} |
|
} |
|
|
|
function makeabout() { |
|
var user=prompt("Enter user\@domain for User's 'About Me' Page"); |
|
if (user) { |
|
var comp=new Array(); |
|
comp=user.split('\@'); |
|
if ((typeof(comp[0])!=undefined) && (typeof(comp[1])!=undefined)) { |
|
if ((comp[0]) && (comp[1])) { |
|
this.document.forms.newaboutsomeone.importdetail.value= |
|
'About '+user+'=/adm/'+comp[1]+'/'+comp[0]+'/aboutme'; |
|
this.document.forms.newaboutsomeone.submit(); |
|
} else { |
|
alert("Not a valid user\@domain"); |
|
} |
|
} else { |
|
alert("Please enter both user and domain in the format user\@domain"); |
|
} |
|
} |
|
} |
|
|
|
function makeims() { |
|
var caller = document.forms.ims.folder.value; |
|
var newlocation = "/adm/imsimportdocs?folder="+caller+"&phase=one"; |
|
newWindow = window.open("","IMSimport","HEIGHT=700,WIDTH=750,scrollbars=yes"); |
|
newWindow.location.href = newlocation; |
|
} |
|
|
|
|
|
function finishpick() { |
|
var title=this.document.forms.extimport.title.value; |
|
var url=this.document.forms.extimport.url.value; |
|
var form=this.document.forms.extimport.useform.value; |
|
eval |
|
('this.document.forms.'+form+'.importdetail.value="'+title+'='+url+ |
|
'";this.document.forms.'+form+'.submit();'); |
|
} |
|
|
|
function changename(folderpath,index,oldtitle,container,pagesymb) { |
|
var title=prompt('New Title',oldtitle); |
|
if (title) { |
|
this.document.forms.renameform.title.value=title; |
|
this.document.forms.renameform.cmd.value='rename_'+index; |
|
if (container == 'sequence') { |
|
this.document.forms.renameform.folderpath.value=folderpath; |
|
} |
|
if (container == 'page') { |
|
this.document.forms.renameform.pagepath.value=folderpath; |
|
this.document.forms.renameform.pagesymb.value=pagesymb; |
|
} |
|
this.document.forms.renameform.submit(); |
|
} |
|
} |
|
|
|
function removeres(folderpath,index,oldtitle,container,pagesymb) { |
|
if (confirm('WARNING: Removing a resource makes associated grades and scores inaccessible!\\nRemove "'+oldtitle+'"?')) { |
|
this.document.forms.renameform.cmd.value='del_'+index; |
|
if (container == 'sequence') { |
|
this.document.forms.renameform.folderpath.value=folderpath; |
|
} |
|
if (container == 'page') { |
|
this.document.forms.renameform.pagepath.value=folderpath; |
|
this.document.forms.renameform.pagesymb.value=pagesymb; |
|
} |
|
this.document.forms.renameform.submit(); |
|
} |
|
} |
|
|
|
function cutres(folderpath,index,oldtitle,container,pagesymb) { |
|
if (confirm('WARNING: Cutting a resource makes associated grades and scores inaccessible!\\nGrades remain inaccessible if resource is pasted into another folder.\\nCut "'+oldtitle+'"?')) { |
|
this.document.forms.renameform.cmd.value='cut_'+index; |
|
this.document.forms.renameform.markcopy.value=index; |
|
if (container == 'sequence') { |
|
this.document.forms.renameform.folderpath.value=folderpath; |
|
} |
|
if (container == 'page') { |
|
this.document.forms.renameform.pagepath.value=folderpath; |
|
this.document.forms.renameform.pagesymb.value=pagesymb; |
|
} |
|
this.document.forms.renameform.submit(); |
|
} |
|
} |
|
|
|
function markcopy(folderpath,index,oldtitle,container,pagesymb) { |
|
this.document.forms.renameform.markcopy.value=index; |
|
if (container == 'sequence') { |
|
this.document.forms.renameform.folderpath.value=folderpath; |
|
} |
|
if (container == 'page') { |
|
this.document.forms.renameform.pagepath.value=folderpath; |
|
this.document.forms.renameform.pagesymb.value=pagesymb; |
|
} |
} |
this.document.forms.renameform.submit(); |
|
} |
|
|
|
</script> |
|
|
|
ENDNEWSCRIPT |
|
} |
|
# -------------------------------------------------------------------- Body tag |
# -------------------------------------------------------------------- Body tag |
$r->print('</head>'. |
$script = '<script type="text/javascript">'."\n".$script."\n".'</script>'; |
&Apache::loncommon::bodytag('Course Documents','',$events, |
$r->print(&Apache::loncommon::start_page("$type Documents", $script, |
'','',$showdoc). |
{'force_register' => $showdoc,}). |
&Apache::loncommon::help_open_menu('','','','',273,'RAT')); |
&Apache::loncommon::help_open_menu('','',273,'RAT')); |
|
|
my %allfiles = (); |
my %allfiles = (); |
my %codebase = (); |
my %codebase = (); |
my ($upload_result,$upload_output); |
my ($upload_result,$upload_output); |
Line 2346 ENDNEWSCRIPT
|
Line 2455 ENDNEWSCRIPT
|
my %attribs = (); |
my %attribs = (); |
my $updateflag = 0; |
my $updateflag = 0; |
my $residx = $env{'form.newidx'}; |
my $residx = $env{'form.newidx'}; |
my $primary_url = &Apache::lonnet::unescape($env{'form.primaryurl'}); |
my $primary_url = &unescape($env{'form.primaryurl'}); |
# Process file upload - phase two - gather secondary files. |
# Process file upload - phase two - gather secondary files. |
for (my $i=0; $i<$env{'form.phasetwo'}; $i++) { |
for (my $i=0; $i<$env{'form.phasetwo'}; $i++) { |
if ($env{'form.embedded_item_'.$i.'.filename'}) { |
if ($env{'form.embedded_item_'.$i.'.filename'}) { |
my $javacodebase; |
my $javacodebase; |
$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} = &Apache::lonnet::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 = &Apache::lonnet::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 = (); |
Line 2364 ENDNEWSCRIPT
|
Line 2473 ENDNEWSCRIPT
|
@attributes = ($env{'form.embedded_attrib_'.$i}); |
@attributes = ($env{'form.embedded_attrib_'.$i}); |
} |
} |
foreach (@attributes) { |
foreach (@attributes) { |
push(@{$attribs{$i}},&Apache::lonnet::unescape($_)); |
push(@{$attribs{$i}},&unescape($_)); |
} |
} |
if ($javacodebase) { |
if ($javacodebase) { |
$codebase{$i} = $javacodebase; |
$codebase{$i} = $javacodebase; |
Line 2395 ENDNEWSCRIPT
|
Line 2504 ENDNEWSCRIPT
|
$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; |
$content =~ s/(codebase\s*=\s*["']?)\Q$codebase{$item}\E(["']?)/$1.$2/i; #' stupid emacs |
} |
} |
} |
} |
# Save edited file. |
# Save edited file. |
Line 2413 ENDNEWSCRIPT
|
Line 2522 ENDNEWSCRIPT
|
unless ($showdoc || $upload_result eq 'phasetwo') { |
unless ($showdoc || $upload_result eq 'phasetwo') { |
# ----------------------------------------------------------------------------- |
# ----------------------------------------------------------------------------- |
my %lt=&Apache::lonlocal::texthash( |
my %lt=&Apache::lonlocal::texthash( |
'uplm' => 'Upload a new main course document', |
'uplm' => 'Upload a new main '.lc($type).' document', |
'upls' => 'Upload a new supplemental course document', |
'upls' => 'Upload a new supplemental '.lc($type).' document', |
'impp' => 'Import a document', |
'impp' => 'Import a document', |
'pubd' => 'Published documents', |
'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', |
Line 2422 ENDNEWSCRIPT
|
Line 2531 ENDNEWSCRIPT
|
'upld' => 'Upload Document', |
'upld' => 'Upload Document', |
'srch' => 'Search', |
'srch' => 'Search', |
'impo' => 'Import', |
'impo' => 'Import', |
|
'book' => 'Import Bookmarks', |
'selm' => 'Select Map', |
'selm' => 'Select Map', |
'load' => 'Load Map', |
'load' => 'Load Map', |
'reco' => 'Recover Deleted Resources', |
'reco' => 'Recover Deleted Resources', |
Line 2432 ENDNEWSCRIPT
|
Line 2542 ENDNEWSCRIPT
|
'navc' => 'Navigate Contents', |
'navc' => 'Navigate Contents', |
'sipa' => 'Simple Page', |
'sipa' => 'Simple Page', |
'sipr' => 'Simple Problem', |
'sipr' => 'Simple Problem', |
|
'drbx' => 'Drop Box', |
'scuf' => 'Score Upload Form', |
'scuf' => 'Score Upload Form', |
'bull' => 'Bulletin Board', |
'bull' => 'Bulletin Board', |
'mypi' => 'My Personal Info', |
'mypi' => 'My Personal Info', |
Line 2449 ENDNEWSCRIPT
|
Line 2560 ENDNEWSCRIPT
|
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', |
|
'ls' => 'List Symbs', |
|
'sl' => 'Show Log' |
); |
); |
|
|
my $folderpath=$env{'form.folderpath'}; |
my $folderpath=$env{'form.folderpath'}; |
Line 2456 ENDNEWSCRIPT
|
Line 2569 ENDNEWSCRIPT
|
if ($env{'form.folder'} eq '' || |
if ($env{'form.folder'} eq '' || |
$env{'form.folder'} eq 'supplemental') { |
$env{'form.folder'} eq 'supplemental') { |
$folderpath='default&'. |
$folderpath='default&'. |
&Apache::lonnet::escape(&mt('Main Course Documents')); |
&escape(&mt('Main '.$type.' Documents')); |
} |
} |
} |
} |
unless ($env{'form.pagepath'}) { |
unless ($env{'form.pagepath'}) { |
Line 2483 $uploadtag
|
Line 2596 $uploadtag
|
<input type="submit" name="versions" value="$lt{'cv'}" />$help{'Check_Resource_Versions'} |
<input type="submit" name="versions" value="$lt{'cv'}" />$help{'Check_Resource_Versions'} |
$dumpbut |
$dumpbut |
$exportbut |
$exportbut |
|
</td><td bgcolor="#DDDDCC"> |
|
<input type="submit" name="listsymbs" value="$lt{'ls'}" /> |
|
</td><td bgcolor="#DDDDCC"> |
|
<input type="submit" name="docslog" value="$lt{'sl'}" /> |
</td></tr></table> |
</td></tr></table> |
</form> |
</form> |
ENDCOURSEVERIFY |
ENDCOURSEVERIFY |
$r->print(&Apache::loncommon::help_open_topic('Docs_Adding_Course_Doc', |
$r->print(&Apache::loncommon::help_open_topic('Docs_Adding_Course_Doc', |
&mt('Editing the Table of Contents for your Course'))); |
&mt('Editing the Table of Contents for your '.$type))); |
} |
} |
# --------------------------------------------------------- Standard documents |
# --------------------------------------------------------- Standard documents |
$r->print('<table border=2 cellspacing=4 cellpadding=4>'); |
$r->print('<table border=2 cellspacing=4 cellpadding=4>'); |
Line 2498 ENDCOURSEVERIFY
|
Line 2615 ENDCOURSEVERIFY
|
my $folder=$env{'form.folder'}; |
my $folder=$env{'form.folder'}; |
if ($folder eq '' || $folder eq 'supplemental') { |
if ($folder eq '' || $folder eq 'supplemental') { |
$folder='default'; |
$folder='default'; |
$env{'form.folderpath'}='default&'.&Apache::lonnet::escape(&mt('Main Course Documents')); |
$env{'form.folderpath'}='default&'.&escape(&mt('Main '.$type.' Documents')); |
} |
} |
my $postexec=''; |
my $postexec=''; |
if ($folder eq 'default') { |
if ($folder eq 'default') { |
Line 2554 $uploadtag
|
Line 2671 $uploadtag
|
<form action="/adm/coursedocs" method="post" name="simpleeditdefault"> |
<form action="/adm/coursedocs" method="post" name="simpleeditdefault"> |
$lt{'pubd'}<br /> |
$lt{'pubd'}<br /> |
$uploadtag |
$uploadtag |
<input type=button onClick="javascript:groupsearch()" value="$lt{'srch'}"> |
<input type=button onClick="javascript:groupsearch()" value="$lt{'srch'}" /> |
|
<br /> |
<nobr> |
<nobr> |
<input type=button onClick="javascript:groupimport();" value="$lt{'impo'}"> |
<input type=button onClick="javascript:groupimport();" value="$lt{'impo'}" /> |
$help{'Importing_LON-CAPA_Resource'} |
$help{'Importing_LON-CAPA_Resource'} |
</nobr> |
</nobr> |
|
<br /> |
|
<input type=button onClick="javascript:groupopen(0,1,1);" value="$lt{'book'}" /> |
<p> |
<p> |
<hr /> |
<hr /> |
$lt{'copm'}<br /> |
$lt{'copm'}<br /> |
Line 2571 $help{'Load_Map'}</nobr>
|
Line 2691 $help{'Load_Map'}</nobr>
|
</form> |
</form> |
<hr /> |
<hr /> |
<form action="/adm/groupsort" method="post" name="recover"> |
<form action="/adm/groupsort" method="post" name="recover"> |
<input type="button" name="recovermap" onClick="javascript:groupopen('$readfile',1)" value="$lt{'reco'}" /> |
<input type="button" name="recovermap" onClick="javascript:groupopen('$readfile',1,0)" value="$lt{'reco'}" /> |
</form> |
</form> |
ENDFORM |
ENDFORM |
unless ($env{'form.pagepath'}) { |
unless ($env{'form.pagepath'}) { |
Line 2585 $uploadtag
|
Line 2705 $uploadtag
|
value="$lt{'extr'}" /> $help{'Adding_External_Resource'} |
value="$lt{'extr'}" /> $help{'Adding_External_Resource'} |
</nobr> |
</nobr> |
</form> |
</form> |
<form action="/adm/imsimportdocs" method="post" name="ims"> |
<br /><form action="/adm/imsimportdocs" method="post" name="ims"> |
<input type="hidden" name="folder" value="$folder" /> |
<input type="hidden" name="folder" value="$folder" /> |
<input name="imsimport" type="button" value="$lt{'imsf'}" onClick="javascript:makeims();" /> |
<input name="imsimport" type="button" value="$lt{'imsf'}" onClick="javascript:makeims();" /> |
</nobr> |
</nobr> |
Line 2595 ENDFORM
|
Line 2715 ENDFORM
|
$r->print('</td><td bgcolor="#DDDDDD">'); |
$r->print('</td><td bgcolor="#DDDDDD">'); |
unless ($env{'form.pagepath'}) { |
unless ($env{'form.pagepath'}) { |
$r->print(<<ENDFORM); |
$r->print(<<ENDFORM); |
<form action="/adm/coursedocs" method="post" name="newfolder"> |
<br /><form action="/adm/coursedocs" method="post" name="newfolder"> |
<input type="hidden" name="folderpath" value="$env{'form.folderpath'}" /> |
<input type="hidden" name="folderpath" value="$env{'form.folderpath'}" /> |
<input type=hidden name="importdetail" value=""> |
<input type=hidden name="importdetail" value=""> |
<nobr> |
<nobr> |
Line 2604 onClick="javascript:makenewfolder(this.f
|
Line 2724 onClick="javascript:makenewfolder(this.f
|
value="$lt{'newf'}" />$help{'Adding_Folders'} |
value="$lt{'newf'}" />$help{'Adding_Folders'} |
</nobr> |
</nobr> |
</form> |
</form> |
<form action="/adm/coursedocs" method="post" name="newpage"> |
<br /><form action="/adm/coursedocs" method="post" name="newpage"> |
<input type="hidden" name="folderpath" value="$env{'form.folderpath'}" /> |
<input type="hidden" name="folderpath" value="$env{'form.folderpath'}" /> |
<input type=hidden name="importdetail" value=""> |
<input type=hidden name="importdetail" value=""> |
<nobr> |
<nobr> |
Line 2613 onClick="javascript:makenewpage(this.for
|
Line 2733 onClick="javascript:makenewpage(this.for
|
value="$lt{'newp'}" />$help{'Adding_Pages'} |
value="$lt{'newp'}" />$help{'Adding_Pages'} |
</nobr> |
</nobr> |
</form> |
</form> |
<form action="/adm/coursedocs" method="post" name="newsyl"> |
<br /><form action="/adm/coursedocs" method="post" name="newsyl"> |
$uploadtag |
$uploadtag |
<input type=hidden name="importdetail" |
<input type=hidden name="importdetail" |
value="Syllabus=/public/$coursedom/$coursenum/syllabus"> |
value="Syllabus=/public/$coursedom/$coursenum/syllabus"> |
Line 2622 value="Syllabus=/public/$coursedom/$cour
|
Line 2742 value="Syllabus=/public/$coursedom/$cour
|
$help{'Syllabus'} |
$help{'Syllabus'} |
</nobr> |
</nobr> |
</form> |
</form> |
<form action="/adm/coursedocs" method="post" name="newnav"> |
<br /><form action="/adm/coursedocs" method="post" name="newnav"> |
$uploadtag |
$uploadtag |
<input type=hidden name="importdetail" |
<input type=hidden name="importdetail" |
value="Navigate Content=/adm/navmaps"> |
value="Navigate Content=/adm/navmaps"> |
Line 2631 value="Navigate Content=/adm/navmaps">
|
Line 2751 value="Navigate Content=/adm/navmaps">
|
$help{'Navigate_Content'} |
$help{'Navigate_Content'} |
</nobr> |
</nobr> |
</form> |
</form> |
<form action="/adm/coursedocs" method="post" name="newsmppg"> |
<br /><form action="/adm/coursedocs" method="post" name="newsmppg"> |
$uploadtag |
$uploadtag |
<input type=hidden name="importdetail" value=""> |
<input type=hidden name="importdetail" value=""> |
<nobr> |
<nobr> |
Line 2639 $uploadtag
|
Line 2759 $uploadtag
|
onClick="javascript:makesmppage();" /> $help{'Simple Page'} |
onClick="javascript:makesmppage();" /> $help{'Simple Page'} |
</nobr> |
</nobr> |
</form> |
</form> |
<form action="/adm/coursedocs" method="post" name="newsmpproblem"> |
<br /><form action="/adm/coursedocs" method="post" name="newsmpproblem"> |
$uploadtag |
$uploadtag |
<input type=hidden name="importdetail" value=""> |
<input type=hidden name="importdetail" value=""> |
<nobr> |
<nobr> |
Line 2647 $uploadtag
|
Line 2767 $uploadtag
|
onClick="javascript:makesmpproblem();" />$help{'Simple Problem'} |
onClick="javascript:makesmpproblem();" />$help{'Simple Problem'} |
</nobr> |
</nobr> |
</form> |
</form> |
<form action="/adm/coursedocs" method="post" name="newexamupload"> |
<br /><form action="/adm/coursedocs" method="post" name="newdropbox"> |
|
$uploadtag |
|
<input type=hidden name="importdetail" value=""> |
|
<nobr> |
|
<input name="newdropbox" type="button" value="$lt{'drbx'}" |
|
onClick="javascript:makedropbox();" /> |
|
</nobr> |
|
</form> |
|
<br /><form action="/adm/coursedocs" method="post" name="newexamupload"> |
$uploadtag |
$uploadtag |
<input type=hidden name="importdetail" value=""> |
<input type=hidden name="importdetail" value=""> |
<nobr> |
<nobr> |
Line 2656 onClick="javascript:makeexamupload();" /
|
Line 2784 onClick="javascript:makeexamupload();" /
|
$help{'Score_Upload_Form'} |
$help{'Score_Upload_Form'} |
</nobr> |
</nobr> |
</form> |
</form> |
<form action="/adm/coursedocs" method="post" name="newbul"> |
<br /><form action="/adm/coursedocs" method="post" name="newbul"> |
$uploadtag |
$uploadtag |
<input type=hidden name="importdetail" value=""> |
<input type=hidden name="importdetail" value=""> |
<nobr> |
<nobr> |
Line 2665 onClick="javascript:makebulboard();" />
|
Line 2793 onClick="javascript:makebulboard();" />
|
$help{'Bulletin Board'} |
$help{'Bulletin Board'} |
</nobr> |
</nobr> |
</form> |
</form> |
<form action="/adm/coursedocs" method="post" name="newaboutme"> |
<br /><form action="/adm/coursedocs" method="post" name="newaboutme"> |
$uploadtag |
$uploadtag |
<input type=hidden name="importdetail" |
<input type=hidden name="importdetail" |
value="$plainname=/adm/$udom/$uname/aboutme"> |
value="$plainname=/adm/$udom/$uname/aboutme"> |
Line 2674 value="$plainname=/adm/$udom/$uname/abou
|
Line 2802 value="$plainname=/adm/$udom/$uname/abou
|
$help{'My Personal Info'} |
$help{'My Personal Info'} |
</nobr> |
</nobr> |
</form> |
</form> |
<form action="/adm/coursedocs" method="post" name="newaboutsomeone"> |
<br /><form action="/adm/coursedocs" method="post" name="newaboutsomeone"> |
$uploadtag |
$uploadtag |
<input type=hidden name="importdetail" value=""> |
<input type=hidden name="importdetail" value=""> |
<nobr> |
<nobr> |
Line 2694 $uploadtag
|
Line 2822 $uploadtag
|
onClick="javascript:makesmpproblem();" />$help{'Simple Problem'} |
onClick="javascript:makesmpproblem();" />$help{'Simple Problem'} |
</nobr> |
</nobr> |
</form> |
</form> |
<form action="/adm/coursedocs" method="post" name="newexamupload"> |
<br /><form action="/adm/coursedocs" method="post" name="newexamupload"> |
$uploadtag |
$uploadtag |
<input type=hidden name="importdetail" value=""> |
<input type=hidden name="importdetail" value=""> |
<nobr> |
<nobr> |
Line 2721 ENDBLOCK
|
Line 2849 ENDBLOCK
|
if ($folder =~ /^supplemental$/ && |
if ($folder =~ /^supplemental$/ && |
$env{'form.folderpath'} =~ /^default\&/) { |
$env{'form.folderpath'} =~ /^default\&/) { |
$env{'form.folderpath'}='supplemental&'. |
$env{'form.folderpath'}='supplemental&'. |
&Apache::lonnet::escape(&mt('Supplemental Course Documents')); |
&escape(&mt('Supplemental '.$type.' Documents')); |
} |
} |
&editor($r,$coursenum,$coursedom,$folder,$allowed); |
&editor($r,$coursenum,$coursedom,$folder,$allowed); |
if ($allowed) { |
if ($allowed) { |
Line 2767 onClick="javascript:makenewfolder(this.f
|
Line 2895 onClick="javascript:makenewfolder(this.f
|
value="$lt{'newf'}" /> $help{'Adding_Folders'} |
value="$lt{'newf'}" /> $help{'Adding_Folders'} |
</nobr> |
</nobr> |
</form> |
</form> |
<form action="/adm/coursedocs" method="post" name="supnewext"> |
<br /><form action="/adm/coursedocs" method="post" name="supnewext"> |
<input type="hidden" name="folderpath" value="$env{'form.folderpath'}" /> |
<input type="hidden" name="folderpath" value="$env{'form.folderpath'}" /> |
<input type=hidden name="importdetail" value=""> |
<input type=hidden name="importdetail" value=""> |
<nobr> |
<nobr> |
Line 2776 onClick="javascript:makenewext('supnewex
|
Line 2904 onClick="javascript:makenewext('supnewex
|
value="$lt{'extr'}" /> $help{'Adding_External_Resource'} |
value="$lt{'extr'}" /> $help{'Adding_External_Resource'} |
</nobr> |
</nobr> |
</form> |
</form> |
<form action="/adm/coursedocs" method="post" name="supnewsyl"> |
<br /><form action="/adm/coursedocs" method="post" name="supnewsyl"> |
<input type="hidden" name="folderpath" value="$env{'form.folderpath'}" /> |
<input type="hidden" name="folderpath" value="$env{'form.folderpath'}" /> |
<input type=hidden name="importdetail" |
<input type=hidden name="importdetail" |
value="Syllabus=/public/$coursedom/$coursenum/syllabus"> |
value="Syllabus=/public/$coursedom/$coursenum/syllabus"> |
Line 2785 value="Syllabus=/public/$coursedom/$cour
|
Line 2913 value="Syllabus=/public/$coursedom/$cour
|
$help{'Syllabus'} |
$help{'Syllabus'} |
</nobr> |
</nobr> |
</form> |
</form> |
<form action="/adm/coursedocs" method="post" name="subnewaboutme"> |
<br /><form action="/adm/coursedocs" method="post" name="subnewaboutme"> |
<input type="hidden" name="folderpath" value="$env{'form.folderpath'}" /> |
<input type="hidden" name="folderpath" value="$env{'form.folderpath'}" /> |
<input type=hidden name="importdetail" |
<input type=hidden name="importdetail" |
value="$plainname=/adm/$udom/$uname/aboutme"> |
value="$plainname=/adm/$udom/$uname/aboutme"> |
Line 2813 ENDSUPFORM
|
Line 2941 ENDSUPFORM
|
} |
} |
} |
} |
} |
} |
$r->print('</body></html>'); |
$r->print(&Apache::loncommon::end_page()); |
return OK; |
return OK; |
} |
} |
|
|
|
|
|
sub editing_js { |
|
my ($udom,$uname) = @_; |
|
my $now = time(); |
|
|
|
return <<ENDNEWSCRIPT; |
|
function makenewfolder(targetform,folderseq) { |
|
var foldername=prompt('Name of New Folder','New Folder'); |
|
if (foldername) { |
|
targetform.importdetail.value=escape(foldername)+"="+folderseq; |
|
targetform.submit(); |
|
} |
|
} |
|
|
|
function makenewpage(targetform,folderseq) { |
|
var pagename=prompt('Name of New Page','New Page'); |
|
if (pagename) { |
|
targetform.importdetail.value=escape(pagename)+"="+folderseq; |
|
targetform.submit(); |
|
} |
|
} |
|
|
|
function makenewext(targetname) { |
|
this.document.forms.extimport.useform.value=targetname; |
|
window.open('/adm/rat/extpickframe.html'); |
|
} |
|
|
|
function makeexamupload() { |
|
var title=prompt('Listed Title for the Uploaded Score'); |
|
if (title) { |
|
this.document.forms.newexamupload.importdetail.value= |
|
escape(title)+'=/res/lib/templates/examupload.problem'; |
|
this.document.forms.newexamupload.submit(); |
|
} |
|
} |
|
|
|
function makesmppage() { |
|
var title=prompt('Listed Title for the Page'); |
|
if (title) { |
|
this.document.forms.newsmppg.importdetail.value= |
|
escape(title)+'=/adm/$udom/$uname/$now/smppg'; |
|
this.document.forms.newsmppg.submit(); |
|
} |
|
} |
|
|
|
function makesmpproblem() { |
|
var title=prompt('Listed Title for the Problem'); |
|
if (title) { |
|
this.document.forms.newsmpproblem.importdetail.value= |
|
escape(title)+'=/res/lib/templates/simpleproblem.problem'; |
|
this.document.forms.newsmpproblem.submit(); |
|
} |
|
} |
|
|
|
function makedropbox() { |
|
var title=prompt('Listed Title for the Drop Box'); |
|
if (title) { |
|
this.document.forms.newdropbox.importdetail.value= |
|
escape(title)+'=/res/lib/templates/DropBox.problem'; |
|
this.document.forms.newdropbox.submit(); |
|
} |
|
} |
|
|
|
function makebulboard() { |
|
var title=prompt('Listed Title for the Bulletin Board'); |
|
if (title) { |
|
this.document.forms.newbul.importdetail.value= |
|
escape(title)+'=/adm/$udom/$uname/$now/bulletinboard'; |
|
this.document.forms.newbul.submit(); |
|
} |
|
} |
|
|
|
function makeabout() { |
|
var user=prompt("Enter user:domain for User's 'About Me' Page"); |
|
if (user) { |
|
var comp=new Array(); |
|
comp=user.split(':'); |
|
if ((typeof(comp[0])!=undefined) && (typeof(comp[1])!=undefined)) { |
|
if ((comp[0]) && (comp[1])) { |
|
this.document.forms.newaboutsomeone.importdetail.value= |
|
'About '+escape(user)+'=/adm/'+comp[1]+'/'+comp[0]+'/aboutme'; |
|
this.document.forms.newaboutsomeone.submit(); |
|
} else { |
|
alert("Not a valid user:domain"); |
|
} |
|
} else { |
|
alert("Please enter both user and domain in the format user:domain"); |
|
} |
|
} |
|
} |
|
|
|
function makeims() { |
|
var caller = document.forms.ims.folder.value; |
|
var newlocation = "/adm/imsimportdocs?folder="+caller+"&phase=one"; |
|
newWindow = window.open("","IMSimport","HEIGHT=700,WIDTH=750,scrollbars=yes"); |
|
newWindow.location.href = newlocation; |
|
} |
|
|
|
|
|
function finishpick() { |
|
var title=this.document.forms.extimport.title.value; |
|
var url=this.document.forms.extimport.url.value; |
|
var form=this.document.forms.extimport.useform.value; |
|
eval |
|
('this.document.forms.'+form+'.importdetail.value="'+title+'='+url+ |
|
'";this.document.forms.'+form+'.submit();'); |
|
} |
|
|
|
function changename(folderpath,index,oldtitle,container,pagesymb) { |
|
var title=prompt('New Title',oldtitle); |
|
if (title) { |
|
this.document.forms.renameform.title.value=title; |
|
this.document.forms.renameform.cmd.value='rename_'+index; |
|
if (container == 'sequence') { |
|
this.document.forms.renameform.folderpath.value=folderpath; |
|
} |
|
if (container == 'page') { |
|
this.document.forms.renameform.pagepath.value=folderpath; |
|
this.document.forms.renameform.pagesymb.value=pagesymb; |
|
} |
|
this.document.forms.renameform.submit(); |
|
} |
|
} |
|
|
|
function removeres(folderpath,index,oldtitle,container,pagesymb) { |
|
if (confirm('WARNING: Removing a resource makes associated grades and scores inaccessible!\\nRemove "'+oldtitle+'"?')) { |
|
this.document.forms.renameform.cmd.value='del_'+index; |
|
if (container == 'sequence') { |
|
this.document.forms.renameform.folderpath.value=folderpath; |
|
} |
|
if (container == 'page') { |
|
this.document.forms.renameform.pagepath.value=folderpath; |
|
this.document.forms.renameform.pagesymb.value=pagesymb; |
|
} |
|
this.document.forms.renameform.submit(); |
|
} |
|
} |
|
|
|
function cutres(folderpath,index,oldtitle,container,pagesymb) { |
|
if (confirm('WARNING: Cutting a resource makes associated grades and scores inaccessible!\\nGrades remain inaccessible if resource is pasted into another folder.\\nCut "'+oldtitle+'"?')) { |
|
this.document.forms.renameform.cmd.value='cut_'+index; |
|
this.document.forms.renameform.markcopy.value=index; |
|
if (container == 'sequence') { |
|
this.document.forms.renameform.folderpath.value=folderpath; |
|
} |
|
if (container == 'page') { |
|
this.document.forms.renameform.pagepath.value=folderpath; |
|
this.document.forms.renameform.pagesymb.value=pagesymb; |
|
} |
|
this.document.forms.renameform.submit(); |
|
} |
|
} |
|
|
|
function markcopy(folderpath,index,oldtitle,container,pagesymb) { |
|
this.document.forms.renameform.markcopy.value=index; |
|
if (container == 'sequence') { |
|
this.document.forms.renameform.folderpath.value=folderpath; |
|
} |
|
if (container == 'page') { |
|
this.document.forms.renameform.pagepath.value=folderpath; |
|
this.document.forms.renameform.pagesymb.value=pagesymb; |
|
} |
|
this.document.forms.renameform.submit(); |
|
} |
|
|
|
ENDNEWSCRIPT |
|
} |
1; |
1; |
__END__ |
__END__ |