version 1.234, 2006/06/30 00:47:14
|
version 1.255, 2006/11/22 03:56:36
|
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 lib '/home/httpd/lib/perl/'; |
|
use LONCAPA; |
use LONCAPA; |
|
|
my $iconpath; |
my $iconpath; |
Line 58 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 67 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 186 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 230 sub dumpcourse {
|
Line 229 sub dumpcourse {
|
$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 929 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 953 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'}) { |
$cpinfo='&markedcopy_url='. |
$cpinfo='&markedcopy_url='. |
&escape($env{'form.markedcopy_url'}). |
&escape($env{'form.markedcopy_url'}). |
'&markedcopy_title='. |
'&markedcopy_title='. |
&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); |
Line 966 sub breadcrumbs {
|
Line 971 sub breadcrumbs {
|
$folderpath.=$folder.'&'.$foldername; |
$folderpath.=$folder.'&'.$foldername; |
my $url='/adm/coursedocs?folderpath='. |
my $url='/adm/coursedocs?folderpath='. |
&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'=>&unescape($foldername), |
'title'=>$name, |
'text'=>'<font size="+1">'. |
'text'=>'<font size="+1">'. |
&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 %lt=('hiddenresource' => 'Resources hidden', |
|
'encrypturl' => 'URL hidden', |
|
'randompick' => 'Randomly pick', |
|
'set' => 'set to', |
|
'del' => 'deleted'); |
|
|
|
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>'. |
|
&mt($lt{$parameter}.' '.$lt{$docslog{$id}{'logentry'}{'parameter_action_'.$parameter}}.' [_1]', |
|
$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,0,'nohelp', |
$r->print(&Apache::loncommon::end_data_table()); |
'LC_docs_path'); |
$r->print(&Apache::loncommon::end_page()); |
} |
} |
|
|
sub editor { |
sub editor { |
Line 989 sub editor {
|
Line 1186 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 1010 sub editor {
|
Line 1208 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 1084 sub editor {
|
Line 1293 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 1096 sub editor {
|
Line 1305 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 1112 sub editor {
|
Line 1321 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|task)$/)) { |
($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 1173 sub editor {
|
Line 1381 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(/\=/,$_); |
Line 1182 sub editor {
|
Line 1391 sub editor {
|
} |
} |
} |
} |
# 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 1194 sub editor {
|
Line 1403 sub editor {
|
if ($env{'form.importmap'}=~/\w/) { |
if ($env{'form.importmap'}=~/\w/) { |
foreach (&Apache::lonsequence::attemptread(&Apache::lonnet::filelocation('',$env{'form.importmap'}))) { |
foreach (&Apache::lonsequence::attemptread(&Apache::lonnet::filelocation('',$env{'form.importmap'}))) { |
my ($title,$url,$ext,$type)=split(/\:/,$_); |
my ($title,$url,$ext,$type)=split(/\:/,$_); |
my $idx=&Apache::lonratedt::getresidx($url); |
my $idx=&LONCAPA::map::getresidx($url); |
$Apache::lonratedt::resources[$idx]=$_; |
$LONCAPA::map::resources[$idx]=$_; |
$Apache::lonratedt::order |
$LONCAPA::map::order[$#LONCAPA::map::order+1]=$idx; |
[$#Apache::lonratedt::order+1]=$idx; |
|
} |
} |
# Store the changed version |
# Store the changed version |
($errtext,$fatal)=&storemap($coursenum,$coursedom, |
($errtext,$fatal)=&storemap($coursenum,$coursedom, |
Line 1210 sub editor {
|
Line 1418 sub editor {
|
$r->print('<p><font color="red">'.&mt('No map selected.').'</font></p>'); |
$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=&Apache::lonratsrv::qtescape($name); |
$name=&LONCAPA::map::qtescape($name); |
$url=&Apache::lonratsrv::qtescape($url); |
$url=&LONCAPA::map::qtescape($url); |
unless ($name) { $name=(split(/\//,$url))[-1]; } |
unless ($name) { $name=(split(/\//,$url))[-1]; } |
unless ($name) { $idx++; next; } |
unless ($name) { $idx++; next; } |
$r->print(&entryline($idx,$name,$url,$folder,$allowed,$_,$coursenum)); |
$r->print(&entryline($idx,$name,$url,$folder,$allowed,$_,$coursenum)); |
Line 1277 sub process_file_upload {
|
Line 1496 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 1295 sub process_file_upload {
|
Line 1514 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 1312 sub process_file_upload {
|
Line 1531 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 1395 sub entryline {
|
Line 1614 sub entryline {
|
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 1431 sub entryline {
|
Line 1650 sub entryline {
|
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 1482 ENDCOPY
|
Line 1701 ENDCOPY
|
<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 1513 ENDCOPY
|
Line 1733 ENDCOPY
|
<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 1583 END
|
Line 1804 END
|
} elsif ($url=~m|^/ext/|) { |
} elsif ($url=~m|^/ext/|) { |
$url='/adm/wrapper'.$url; |
$url='/adm/wrapper'.$url; |
} |
} |
$url.=(($url=~/\?/)?'&':'?').'symb='.&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'}; |
|
|
Line 1596 END
|
Line 1821 END
|
my $foldername=&escape($foldertitle); |
my $foldername=&escape($foldertitle); |
my $folderpath=$env{'form.folderpath'}; |
my $folderpath=$env{'form.folderpath'}; |
if ($folderpath) { $folderpath.='&' }; |
if ($folderpath) { $folderpath.='&' }; |
$folderpath.=$folderarg.'&'.$foldername; |
# Append randompick number, hidden, and encrypted with ":" to foldername, |
|
# 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; |
$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>'; |
Line 1626 END
|
Line 1858 END
|
} |
} |
$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 2126 sub handler {
|
Line 2359 sub handler {
|
'Docs_About_Bulletin_Board,Docs_Editing_Templated_Pages'); |
'Docs_About_Bulletin_Board,Docs_Editing_Templated_Pages'); |
$help{'My Personal Info'} = &Apache::loncommon::help_open_topic( |
$help{'My Personal Info'} = &Apache::loncommon::help_open_topic( |
'Docs_About_My_Personal_Info,Docs_Editing_Templated_Pages'); |
'Docs_About_My_Personal_Info,Docs_Editing_Templated_Pages'); |
|
$help{'Group Files'} = &Apache::loncommon::help_open_topic('Docs_About_Group_Files'); |
$help{'Caching'} = &Apache::loncommon::help_open_topic('Caching'); |
$help{'Caching'} = &Apache::loncommon::help_open_topic('Caching'); |
|
|
# does this user have privileges to modify docs |
# does this user have privileges to modify docs |
Line 2135 sub handler {
|
Line 2369 sub handler {
|
&verifycontent($r); |
&verifycontent($r); |
} elsif ($allowed && $env{'form.listsymbs'}) { |
} elsif ($allowed && $env{'form.listsymbs'}) { |
&list_symbs($r); |
&list_symbs($r); |
|
} elsif ($allowed && $env{'form.docslog'}) { |
|
&docs_change_log($r); |
} elsif ($allowed && $env{'form.versions'}) { |
} elsif ($allowed && $env{'form.versions'}) { |
&checkversions($r); |
&checkversions($r); |
} elsif ($allowed && $env{'form.dumpcourse'}) { |
} elsif ($allowed && $env{'form.dumpcourse'}) { |
Line 2173 sub handler {
|
Line 2409 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; |
} |
} |
Line 2194 sub handler {
|
Line 2430 sub handler {
|
# get personal data |
# get personal data |
my $uname=$env{'user.name'}; |
my $uname=$env{'user.name'}; |
my $udom=$env{'user.domain'}; |
my $udom=$env{'user.domain'}; |
my $plainname=&escape( |
my $plainname=&escape(&Apache::loncommon::plainname($uname,$udom)); |
&Apache::loncommon::plainname($uname,$udom)); |
|
|
|
# graphics settings |
# graphics settings |
|
|
Line 2319 sub handler {
|
Line 2554 sub handler {
|
'scuf' => 'Score Upload Form', |
'scuf' => 'Score Upload Form', |
'bull' => 'Bulletin Board', |
'bull' => 'Bulletin Board', |
'mypi' => 'My Personal Info', |
'mypi' => 'My Personal Info', |
|
'grpo' => 'Group Files', |
'abou' => 'About User', |
'abou' => 'About User', |
'imsf' => 'Import IMS package', |
'imsf' => 'Import IMS package', |
'file' => 'File', |
'file' => 'File', |
Line 2334 sub handler {
|
Line 2570 sub handler {
|
'vc' => 'Verify Content', |
'vc' => 'Verify Content', |
'cv' => 'Check/Set Resource Versions', |
'cv' => 'Check/Set Resource Versions', |
'ls' => 'List Symbs', |
'ls' => 'List Symbs', |
|
'sl' => 'Show Log' |
); |
); |
|
|
my $folderpath=$env{'form.folderpath'}; |
my $folderpath=$env{'form.folderpath'}; |
Line 2370 $dumpbut
|
Line 2607 $dumpbut
|
$exportbut |
$exportbut |
</td><td bgcolor="#DDDDCC"> |
</td><td bgcolor="#DDDDCC"> |
<input type="submit" name="listsymbs" value="$lt{'ls'}" /> |
<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 |
Line 2580 $uploadtag
|
Line 2819 $uploadtag
|
onClick="javascript:makeabout();" /> |
onClick="javascript:makeabout();" /> |
</nobr> |
</nobr> |
</form> |
</form> |
|
<br /><form action="/adm/coursedocs" method="post" name="newgroupfiles"> |
|
$uploadtag |
|
<input type=hidden name="importdetail" |
|
value="Group Files=/adm/$coursedom/$coursenum/aboutme"> |
|
<nobr> |
|
<input name="newgroupfiles" type="submit" value="$lt{'grpo'}" /> |
|
$help{'Group Files'} |
|
</nobr> |
|
</form> |
ENDFORM |
ENDFORM |
} |
} |
if ($env{'form.pagepath'}) { |
if ($env{'form.pagepath'}) { |
Line 2724 sub editing_js {
|
Line 2972 sub editing_js {
|
function makenewfolder(targetform,folderseq) { |
function makenewfolder(targetform,folderseq) { |
var foldername=prompt('Name of New Folder','New Folder'); |
var foldername=prompt('Name of New Folder','New Folder'); |
if (foldername) { |
if (foldername) { |
targetform.importdetail.value=foldername+"="+folderseq; |
targetform.importdetail.value=escape(foldername)+"="+folderseq; |
targetform.submit(); |
targetform.submit(); |
} |
} |
} |
} |
Line 2732 function makenewfolder(targetform,folder
|
Line 2980 function makenewfolder(targetform,folder
|
function makenewpage(targetform,folderseq) { |
function makenewpage(targetform,folderseq) { |
var pagename=prompt('Name of New Page','New Page'); |
var pagename=prompt('Name of New Page','New Page'); |
if (pagename) { |
if (pagename) { |
targetform.importdetail.value=pagename+"="+folderseq; |
targetform.importdetail.value=escape(pagename)+"="+folderseq; |
targetform.submit(); |
targetform.submit(); |
} |
} |
} |
} |
Line 2746 function makeexamupload() {
|
Line 2994 function makeexamupload() {
|
var title=prompt('Listed Title for the Uploaded Score'); |
var title=prompt('Listed Title for the Uploaded Score'); |
if (title) { |
if (title) { |
this.document.forms.newexamupload.importdetail.value= |
this.document.forms.newexamupload.importdetail.value= |
title+'=/res/lib/templates/examupload.problem'; |
escape(title)+'=/res/lib/templates/examupload.problem'; |
this.document.forms.newexamupload.submit(); |
this.document.forms.newexamupload.submit(); |
} |
} |
} |
} |
Line 2755 function makesmppage() {
|
Line 3003 function makesmppage() {
|
var title=prompt('Listed Title for the Page'); |
var title=prompt('Listed Title for the Page'); |
if (title) { |
if (title) { |
this.document.forms.newsmppg.importdetail.value= |
this.document.forms.newsmppg.importdetail.value= |
title+'=/adm/$udom/$uname/$now/smppg'; |
escape(title)+'=/adm/$udom/$uname/$now/smppg'; |
this.document.forms.newsmppg.submit(); |
this.document.forms.newsmppg.submit(); |
} |
} |
} |
} |
Line 2764 function makesmpproblem() {
|
Line 3012 function makesmpproblem() {
|
var title=prompt('Listed Title for the Problem'); |
var title=prompt('Listed Title for the Problem'); |
if (title) { |
if (title) { |
this.document.forms.newsmpproblem.importdetail.value= |
this.document.forms.newsmpproblem.importdetail.value= |
title+'=/res/lib/templates/simpleproblem.problem'; |
escape(title)+'=/res/lib/templates/simpleproblem.problem'; |
this.document.forms.newsmpproblem.submit(); |
this.document.forms.newsmpproblem.submit(); |
} |
} |
} |
} |
Line 2773 function makedropbox() {
|
Line 3021 function makedropbox() {
|
var title=prompt('Listed Title for the Drop Box'); |
var title=prompt('Listed Title for the Drop Box'); |
if (title) { |
if (title) { |
this.document.forms.newdropbox.importdetail.value= |
this.document.forms.newdropbox.importdetail.value= |
title+'=/res/lib/templates/DropBox.problem'; |
escape(title)+'=/res/lib/templates/DropBox.problem'; |
this.document.forms.newdropbox.submit(); |
this.document.forms.newdropbox.submit(); |
} |
} |
} |
} |
Line 2782 function makebulboard() {
|
Line 3030 function makebulboard() {
|
var title=prompt('Listed Title for the Bulletin Board'); |
var title=prompt('Listed Title for the Bulletin Board'); |
if (title) { |
if (title) { |
this.document.forms.newbul.importdetail.value= |
this.document.forms.newbul.importdetail.value= |
title+'=/adm/$udom/$uname/$now/bulletinboard'; |
escape(title)+'=/adm/$udom/$uname/$now/bulletinboard'; |
this.document.forms.newbul.submit(); |
this.document.forms.newbul.submit(); |
} |
} |
} |
} |
|
|
function makeabout() { |
function makeabout() { |
var user=prompt("Enter user\@domain for User's 'About Me' Page"); |
var user=prompt("Enter user:domain for User's 'About Me' Page"); |
if (user) { |
if (user) { |
var comp=new Array(); |
var comp=new Array(); |
comp=user.split('\@'); |
comp=user.split(':'); |
if ((typeof(comp[0])!=undefined) && (typeof(comp[1])!=undefined)) { |
if ((typeof(comp[0])!=undefined) && (typeof(comp[1])!=undefined)) { |
if ((comp[0]) && (comp[1])) { |
if ((comp[0]) && (comp[1])) { |
this.document.forms.newaboutsomeone.importdetail.value= |
this.document.forms.newaboutsomeone.importdetail.value= |
'About '+user+'=/adm/'+comp[1]+'/'+comp[0]+'/aboutme'; |
'About '+escape(user)+'=/adm/'+comp[1]+'/'+comp[0]+'/aboutme'; |
this.document.forms.newaboutsomeone.submit(); |
this.document.forms.newaboutsomeone.submit(); |
} else { |
} else { |
alert("Not a valid user\@domain"); |
alert("Not a valid user:domain"); |
} |
} |
} else { |
} else { |
alert("Please enter both user and domain in the format user\@domain"); |
alert("Please enter both user and domain in the format user:domain"); |
} |
} |
} |
} |
} |
} |