version 1.245, 2006/11/02 21:06:06
|
version 1.278.2.2, 2007/06/29 19:51:06
|
Line 35 use Apache::lonnet;
|
Line 35 use Apache::lonnet;
|
use Apache::loncommon; |
use Apache::loncommon; |
use LONCAPA::map(); |
use LONCAPA::map(); |
use Apache::lonratedt(); |
use Apache::lonratedt(); |
use Apache::lonratsrv; |
|
use Apache::lonxml; |
use Apache::lonxml; |
use Apache::lonclonecourse; |
use Apache::lonclonecourse; |
use Apache::lonnavmaps; |
use Apache::lonnavmaps; |
Line 43 use HTML::Entities;
|
Line 42 use HTML::Entities;
|
use GDBM_File; |
use GDBM_File; |
use Apache::lonlocal; |
use Apache::lonlocal; |
use Cwd; |
use Cwd; |
use LONCAPA; |
use LONCAPA qw(:DEFAULT :match); |
|
|
my $iconpath; |
my $iconpath; |
|
|
Line 100 sub authorhosts {
|
Line 99 sub authorhosts {
|
$ca=$env{'user.name'}; |
$ca=$env{'user.name'}; |
$cd=$env{'user.domain'}; |
$cd=$env{'user.domain'}; |
} else { |
} else { |
($cd,$ca)=($realm=~/^\/(\w+)\/(\w+)$/); |
($cd,$ca)=($realm=~/^\/($match_domain)\/($match_username)$/); |
} |
} |
my $allowed=0; |
my $allowed=0; |
my $myhome=&Apache::lonnet::homeserver($ca,$cd); |
my $myhome=&Apache::lonnet::homeserver($ca,$cd); |
Line 148 sub dumpcourse {
|
Line 147 sub dumpcourse {
|
my $type = &Apache::loncommon::course_type(); |
my $type = &Apache::loncommon::course_type(); |
$r->print(&Apache::loncommon::start_page('Dump '.$type.' DOCS to Construction Space'). |
$r->print(&Apache::loncommon::start_page('Dump '.$type.' DOCS to Construction Space'). |
'<form name="dumpdoc" method="post">'); |
'<form name="dumpdoc" method="post">'); |
|
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Dump '.$type.' DOCS to Construction Space')); |
my ($home,$other,%outhash)=&authorhosts(); |
my ($home,$other,%outhash)=&authorhosts(); |
unless ($home) { return ''; } |
unless ($home) { return ''; } |
my $origcrsid=$env{'request.course.id'}; |
my $origcrsid=$env{'request.course.id'}; |
Line 235 sub dumpcourse {
|
Line 235 sub dumpcourse {
|
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; |
|
$r->print('<td>'.($title?$title:' ').'</td>'); |
$r->print('<td>'.($title?$title:' ').'</td>'); |
if (!$title) { |
if (!$title) { |
$title=$_; |
$title=$_; |
Line 316 sub exportcourse {
|
Line 315 sub exportcourse {
|
} |
} |
} |
} |
$r->print(&Apache::loncommon::start_page('Export '.lc($type).' to IMS content package')); |
$r->print(&Apache::loncommon::start_page('Export '.lc($type).' to IMS content package')); |
|
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Export '.lc($type).' to IMS content package')); |
$r->print($outcome); |
$r->print($outcome); |
$r->print(&Apache::loncommon::end_page()); |
$r->print(&Apache::loncommon::end_page()); |
} else { |
} else { |
Line 365 sub exportcourse {
|
Line 365 sub exportcourse {
|
if (ref($curRes)) { |
if (ref($curRes)) { |
my $symb = $curRes->symb(); |
my $symb = $curRes->symb(); |
my $ressymb = $symb; |
my $ressymb = $symb; |
if ($ressymb =~ m|adm/(\w+)/(\w+)/(\d+)/bulletinboard$|) { |
if ($ressymb =~ m|adm/($match_domain)/($match_username)/(\d+)/bulletinboard$|) { |
unless ($ressymb =~ m|adm/wrapper/adm|) { |
unless ($ressymb =~ m|adm/wrapper/adm|) { |
$ressymb = 'bulletin___'.$3.'___adm/wrapper/adm/'.$1.'/'.$2.'/'.$3.'/bulletinboard'; |
$ressymb = 'bulletin___'.$3.'___adm/wrapper/adm/'.$1.'/'.$2.'/'.$3.'/bulletinboard'; |
} |
} |
Line 457 function containerCheck(item) {
|
Line 457 function containerCheck(item) {
|
|; |
|; |
$r->print(&Apache::loncommon::start_page('Export '.lc($type).' to IMS content package', |
$r->print(&Apache::loncommon::start_page('Export '.lc($type).' to IMS content package', |
$scripttag)); |
$scripttag)); |
|
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Export '.lc($type).' 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="'. |
Line 611 sub build_package {
|
Line 612 sub build_package {
|
if (grep/^$count$/,@$discussions) { |
if (grep/^$count$/,@$discussions) { |
my $ressymb = $symb; |
my $ressymb = $symb; |
my $mode; |
my $mode; |
if ($ressymb =~ m|adm/(\w+)/(\w+)/(\d+)/bulletinboard$|) { |
if ($ressymb =~ m|adm/($match_domain)/($match_username)/(\d+)/bulletinboard$|) { |
unless ($ressymb =~ m|adm/wrapper/adm|) { |
unless ($ressymb =~ m|adm/wrapper/adm|) { |
$ressymb = 'bulletin___'.$3.'___adm/wrapper/adm/'.$1.'/'.$2.'/'.$3.'/bulletinboard'; |
$ressymb = 'bulletin___'.$3.'___adm/wrapper/adm/'.$1.'/'.$2.'/'.$3.'/bulletinboard'; |
} |
} |
Line 696 sub process_content {
|
Line 697 sub process_content {
|
} |
} |
} elsif ($symb =~ m-lib/templates/examupload\.problem$-) { |
} elsif ($symb =~ m-lib/templates/examupload\.problem$-) { |
$content_type = 'examupload'; |
$content_type = 'examupload'; |
} elsif ($symb =~ m-adm/(\w+)/(\w+)/(\d+)/bulletinboard$-) { |
} elsif ($symb =~ m-adm/($match_domain)/($match_username)/(\d+)/bulletinboard$-) { |
$content_type = 'bulletinboard'; |
$content_type = 'bulletinboard'; |
my $contents = &Apache::imsexport::templatedpage($content_type,$3,$count,\@uploads,$1,$2); |
my $contents = &Apache::imsexport::templatedpage($content_type,$3,$count,\@uploads,$1,$2); |
if ($contents) { |
if ($contents) { |
Line 903 sub store_template {
|
Line 904 sub store_template {
|
# Imports the given (name, url) resources into the course |
# Imports the given (name, url) resources into the course |
# coursenum, coursedom, and folder must precede the list |
# coursenum, coursedom, and folder must precede the list |
sub group_import { |
sub group_import { |
my $coursenum = shift; |
my ($coursenum, $coursedom, $folder, $container, $caller, @files) = @_; |
my $coursedom = shift; |
|
my $folder = shift; |
while (@files) { |
my $container = shift; |
my $name = shift(@files); |
my $caller = shift; |
my $url = shift(@files); |
while (@_) { |
#FIXME check if file exists before overwriting, might be restoring it |
my $name = shift; |
if (($url =~ m{^/uploaded/\Q$coursedom\E/\Q$coursenum\E/(default_\d+\.)(page|sequence)$}) |
my $url = shift; |
&& ($caller eq 'londocs') |
if (($url =~ m#^/uploaded/$coursedom/$coursenum/(default_\d+\.)(page|sequence)$#) && ($caller eq 'londocs')) { |
&& (!&Apache::lonnet::stat_file($url))) { |
|
|
my $errtext = ''; |
my $errtext = ''; |
my $fatal = 0; |
my $fatal = 0; |
my $newmapstr = '<map>'."\n". |
my $newmapstr = '<map>'."\n". |
Line 934 sub group_import {
|
Line 936 sub group_import {
|
my $idx = &LONCAPA::map::getresidx($url); |
my $idx = &LONCAPA::map::getresidx($url); |
$LONCAPA::map::order[$#LONCAPA::map::order+1]=$idx; |
$LONCAPA::map::order[$#LONCAPA::map::order+1]=$idx; |
my $ext = 'false'; |
my $ext = 'false'; |
if ($url=~/^http:\/\//) { $ext = 'true'; } |
if ($url=~m{^http://} || $url=~m{^https://}) { $ext = 'true'; } |
$url =~ s/:/\:/g; |
$url = &LONCAPA::map::qtunescape($url); |
$name =~ s/:/\:/g; |
$name = &LONCAPA::map::qtunescape($name); |
$LONCAPA::map::resources[$idx] = |
$LONCAPA::map::resources[$idx] = |
join ':', ($name, $url, $ext, 'normal', 'res'); |
join ':', ($name, $url, $ext, 'normal', 'res'); |
} |
} |
Line 955 sub breadcrumbs {
|
Line 957 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'}). |
Line 964 sub breadcrumbs {
|
Line 967 sub breadcrumbs {
|
my $randompick=-1; |
my $randompick=-1; |
my $isencrypted=0; |
my $isencrypted=0; |
my $ishidden=0; |
my $ishidden=0; |
|
my $is_random_order=0; |
while (@folders) { |
while (@folders) { |
my $folder=shift(@folders); |
my $folder=shift(@folders); |
my $foldername=shift(@folders); |
my $foldername=shift(@folders); |
Line 973 sub breadcrumbs {
|
Line 977 sub breadcrumbs {
|
&escape($folderpath); |
&escape($folderpath); |
my $name=&unescape($foldername); |
my $name=&unescape($foldername); |
# randompick number, hidden, encrypted is appended with ":"s to the foldername |
# randompick number, hidden, encrypted is appended with ":"s to the foldername |
$name=~s/\:(\d*)\:(\w*)\:(\w*)$//; |
$name=~s/\:(\d*)\:(\w*)\:(\w*):(\d*)$//; |
if ($1 ne '') { |
if ($1 ne '') { |
$randompick=$1; |
$randompick=$1; |
} else { |
} else { |
Line 981 sub breadcrumbs {
|
Line 985 sub breadcrumbs {
|
} |
} |
if ($2) { $ishidden=1; } |
if ($2) { $ishidden=1; } |
if ($3) { $isencrypted=1; } |
if ($3) { $isencrypted=1; } |
|
if ($4 ne '') { $is_random_order = 1; } |
&Apache::lonhtmlcommon::add_breadcrumb( |
&Apache::lonhtmlcommon::add_breadcrumb( |
{'href'=>$url.$cpinfo, |
{'href'=>$url.$cpinfo, |
'title'=>$name, |
'title'=>$name, |
'text'=>'<font size="+1">'. |
'text'=>'<font size="+1">'. |
$name.'</font>' |
$name.'</font>', |
|
'no_mt'=>1, |
}); |
}); |
|
$plain.=$name.' > '; |
} |
} |
|
$plain=~s/\>\;\s*$//; |
return (&Apache::lonhtmlcommon::breadcrumbs(undef,undef,0,'nohelp', |
return (&Apache::lonhtmlcommon::breadcrumbs(undef,undef,0,'nohelp', |
'LC_docs_path'),$randompick,$ishidden,$isencrypted); |
'LC_docs_path'),$randompick,$ishidden,$isencrypted,$plain,$is_random_order); |
|
} |
|
|
|
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, |
|
'currentfolder' => $env{'form.folder'}); |
|
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)=@_; |
|
my $folder=$env{'form.folder'}; |
|
$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', |
|
'randomorder' => 'Randomly ordered', |
|
'set' => 'set to', |
|
'del' => 'deleted'); |
|
$r->print(&Apache::loncommon::display_filter(). |
|
'<input type="hidden" name="folder" value="'.$folder.'" />'. |
|
'<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))) { |
|
if ($env{'form.displayfilter'} eq 'currentfolder') { |
|
if ($docslog{$id}{'logentry'}{'currentfolder'} ne $folder) { next; } |
|
} |
|
my @changes=keys(%{$docslog{$id}{'logentry'}}); |
|
if ($env{'form.displayfilter'} eq 'containing') { |
|
my $wholeentry=$docslog{$id}{'exe_uname'}.':'.$docslog{$id}{'exe_udom'}.':'. |
|
&Apache::loncommon::plainname($docslog{$id}{'exe_uname'},$docslog{$id}{'exe_udom'}); |
|
foreach my $key (@changes) { |
|
$wholeentry.=':'.$docslog{$id}{'logentry'}{$key}; |
|
} |
|
if ($wholeentry!~/\Q$env{'form.containingphrase'}\E/i) { next; } |
|
} |
|
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','randomorder') { |
|
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; } |
|
} |
|
$r->print(&Apache::loncommon::end_data_table()); |
|
$r->print(&Apache::loncommon::end_page()); |
} |
} |
|
|
sub editor { |
sub editor { |
Line 1014 sub editor {
|
Line 1213 sub editor {
|
$env{'form.markedcopy_title'}=$title; |
$env{'form.markedcopy_title'}=$title; |
$env{'form.markedcopy_url'}=$url; |
$env{'form.markedcopy_url'}=$url; |
} |
} |
my ($breadcrumbtrail,$randompick,$ishidden,$isencrypted)=&breadcrumbs($folder); |
my ($breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain,$is_random_order)=&breadcrumbs($folder); |
$r->print($breadcrumbtrail); |
$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>'); |
Line 1024 sub editor {
|
Line 1223 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.changeparms'} eq 'randompick') { |
&LONCAPA::map::storeparameter($idx,'parameter_randompick',$env{'form.randpick_'.$idx},'int_pos'); |
if ($env{'form.randpick_'.$idx}) { |
} else { |
&LONCAPA::map::storeparameter($idx,'parameter_randompick',$env{'form.randpick_'.$idx},'int_pos'); |
&LONCAPA::map::delparameter($idx,'parameter_randompick'); |
&remember_parms($idx,'randompick','set',$env{'form.randpick_'.$idx}); |
|
} else { |
|
&LONCAPA::map::delparameter($idx,'parameter_randompick'); |
|
&remember_parms($idx,'randompick','del'); |
|
} |
} |
} |
if ($env{'form.hidprs_'.$idx}) { |
if ($env{'form.changeparms'} eq 'hiddenresource') { |
&LONCAPA::map::storeparameter($idx,'parameter_hiddenresource','yes','string_yesno'); |
if ($env{'form.hidprs_'.$idx}) { |
} else { |
&LONCAPA::map::storeparameter($idx,'parameter_hiddenresource','yes','string_yesno'); |
&LONCAPA::map::delparameter($idx,'parameter_hiddenresource'); |
&remember_parms($idx,'hiddenresource','set',$env{'form.hidprs_'.$idx}); |
|
} else { |
|
&LONCAPA::map::delparameter($idx,'parameter_hiddenresource'); |
|
&remember_parms($idx,'hiddenresource','del'); |
|
} |
} |
} |
if ($env{'form.encprs_'.$idx}) { |
if ($env{'form.changeparms'} eq 'encrypturl') { |
&LONCAPA::map::storeparameter($idx,'parameter_encrypturl','yes','string_yesno'); |
if ($env{'form.encprs_'.$idx}) { |
} else { |
&LONCAPA::map::storeparameter($idx,'parameter_encrypturl','yes','string_yesno'); |
&LONCAPA::map::delparameter($idx,'parameter_encrypturl'); |
&remember_parms($idx,'encrypturl','set',$env{'form.encprs_'.$idx}); |
|
} else { |
|
&LONCAPA::map::delparameter($idx,'parameter_encrypturl'); |
|
&remember_parms($idx,'encrypturl','del'); |
|
} |
|
} |
|
if ($env{'form.changeparms'} eq 'randomorder') { |
|
if ($env{'form.randorder_'.$idx}) { |
|
&LONCAPA::map::storeparameter($idx,'parameter_randomorder','yes','string_yesno'); |
|
&remember_parms($idx,'randomorder','set',$env{'form.randorder_'.$idx}); |
|
} else { |
|
&LONCAPA::map::delparameter($idx,'parameter_randomorder'); |
|
&remember_parms($idx,'randomorder','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]=$LONCAPA::map::order[$i]; |
$neworder[$i]=$LONCAPA::map::order[$i]; |
} |
} |
for ($i=$currentpos;$i<$newpos;$i++) { |
for ($i=$currentpos;$i<$newpos;$i++) { |
$neworder[$i]=$LONCAPA::map::order[$i+1]; |
$neworder[$i]=$LONCAPA::map::order[$i+1]; |
} |
} |
$neworder[$newpos]=$LONCAPA::map::order[$currentpos]; |
$neworder[$newpos]=$LONCAPA::map::order[$currentpos]; |
for ($i=$newpos+1;$i<=$#LONCAPA::map::order;$i++) { |
for ($i=$newpos+1;$i<=$#LONCAPA::map::order;$i++) { |
$neworder[$i]=$LONCAPA::map::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]=$LONCAPA::map::order[$i]; |
$neworder[$i]=$LONCAPA::map::order[$i]; |
} |
} |
$neworder[$newpos]=$LONCAPA::map::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]=$LONCAPA::map::order[$i-1]; |
$neworder[$i]=$LONCAPA::map::order[$i-1]; |
} |
} |
for ($i=$currentpos+1;$i<=$#LONCAPA::map::order;$i++) { |
for ($i=$currentpos+1;$i<=$#LONCAPA::map::order;$i++) { |
$neworder[$i]=$LONCAPA::map::order[$i]; |
$neworder[$i]=$LONCAPA::map::order[$i]; |
} |
|
} |
} |
@LONCAPA::map::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 1097 sub editor {
|
Line 1322 sub editor {
|
$url=~/^(.+)\.(\w+)$/; |
$url=~/^(.+)\.(\w+)$/; |
my $newurl=$1.$newid.'.'.$2; |
my $newurl=$1.$newid.'.'.$2; |
my $storefn=$newurl; |
my $storefn=$newurl; |
$storefn=~s/^\/\w+\/\w+\/\w+\///; |
$storefn=~s{^/\w+/$match_domain/$match_username/}{}; |
&Apache::lonclonecourse::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; |
} |
} |
$title=~s/\</\<\;/g; |
$title = &LONCAPA::map::qtunescape($title); |
$title=~s/\>/\>\;/g; |
|
$title=~s/\:/\:/g; |
|
my $ext='false'; |
my $ext='false'; |
if ($url=~/^http\:\/\//) { $ext='true'; } |
if ($url=~/^http\:\/\//) { $ext='true'; } |
$url=~s/\:/\:/g; |
$url = &LONCAPA::map::qtunescape($url); |
# Now insert the URL at the bottom |
# Now insert the URL at the bottom |
my $newidx=&LONCAPA::map::getresidx($url); |
my $newidx=&LONCAPA::map::getresidx($url); |
$LONCAPA::map::resources[$newidx]= |
$LONCAPA::map::resources[$newidx]= |
Line 1160 sub editor {
|
Line 1383 sub editor {
|
my $ratstr = $LONCAPA::map::resources[$LONCAPA::map::order[$idx]]; |
my $ratstr = $LONCAPA::map::resources[$LONCAPA::map::order[$idx]]; |
my ($rtitle,@rrest)=split(/\:/, |
my ($rtitle,@rrest)=split(/\:/, |
$LONCAPA::map::resources[$LONCAPA::map::order[$idx]]); |
$LONCAPA::map::resources[$LONCAPA::map::order[$idx]]); |
my $comment= |
my $comment=$env{'form.title'}; |
&HTML::Entities::decode($env{'form.title'}); |
$comment = &LONCAPA::map::qtunescape($comment); |
$comment=~s/\</\<\;/g; |
|
$comment=~s/\>/\>\;/g; |
|
$comment=~s/\:/\:/g; |
|
if ($comment=~/\S/) { |
if ($comment=~/\S/) { |
$LONCAPA::map::resources[$LONCAPA::map::order[$idx]]= |
$LONCAPA::map::resources[$LONCAPA::map::order[$idx]]= |
$comment.':'.join(':',@rrest); |
$comment.':'.join(':',@rrest); |
} |
} |
# Devalidate title cache |
# Devalidate title cache |
my $renamed_url=$rrest[0]; |
my $renamed_url=&LONCAPA::map::qtescape($rrest[0]); |
# Has the :-escaping |
|
$renamed_url=~s/\&colon\;/\:/g; |
|
&Apache::lonnet::devalidate_title_cache($renamed_url); |
&Apache::lonnet::devalidate_title_cache($renamed_url); |
} |
} |
# Store the changed version |
# Store the changed version |
Line 1196 sub editor {
|
Line 1414 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 1223 sub editor {
|
Line 1441 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)) { |
if (($ishidden) || ($isencrypted) || ($randompick>=0) |
|
|| ($is_random_order)) { |
$r->print('<p>'.&mt('Parameters').':<ul>'. |
$r->print('<p>'.&mt('Parameters').':<ul>'. |
($randompick>=0?'<li>'.&mt('randomly pick [_1] resources',$randompick).'</li>':''). |
($randompick>=0?'<li>'.&mt('randomly pick [_1] resources',$randompick).'</li>':''). |
|
($is_random_order?'<li>'.&mt('contents randomly ordered').'</li>':''). |
($ishidden?'<li>'.&mt('contents hidden').'</li>':''). |
($ishidden?'<li>'.&mt('contents hidden').'</li>':''). |
($isencrypted?'<li>'.&mt('URLs hidden').'</li>':''). |
($isencrypted?'<li>'.&mt('URLs hidden').'</li>':''). |
'</ul></p>'); |
'</ul></p>'); |
} |
} |
if ($randompick>=0) { |
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('<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>'); |
} |
} |
|
if ($is_random_order) { |
|
$r->print('<p>'.&mt('Caution: this folder is set to randomly order its contents. Adding or removing resources from this folder will change the order of resources shown. Do not modify the contents of this folder if it is in active student use.').'</p>'); |
|
} |
$r->print('<table>'); |
$r->print('<table>'); |
foreach (@LONCAPA::map::order) { |
foreach my $res (@LONCAPA::map::order) { |
my ($name,$url)=split(/\:/,$LONCAPA::map::resources[$_]); |
my ($name,$url)=split(/\:/,$LONCAPA::map::resources[$res]); |
$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,$res, |
|
$coursenum)); |
$idx++; |
$idx++; |
$shown++; |
$shown++; |
} |
} |
Line 1259 sub editor {
|
Line 1484 sub editor {
|
<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'}" /> |
ENDPASTE |
ENDPASTE |
$r->print( |
$r->print('<input type="submit" name="pastemarked" value="'.&mt('Paste').'" /> '); |
'<input type="submit" name="pastemarked" value="'.&mt('Paste'). |
|
'" /> '.&Apache::loncommon::filedescription( |
my $type; |
(split(/\./,$env{'form.markedcopy_url'}))[-1]).': '. |
if ($env{'form.markedcopy_url'} =~ m{^/adm/wrapper/ext}) { |
$env{'form.markedcopy_title'}); |
$type = &mt('External Resource'); |
|
$r->print($type.': '. $env{'form.markedcopy_title'}); |
|
} else { |
|
my $extension = (split(/\./,$env{'form.markedcopy_url'}))[-1]; |
|
my $type = &Apache::loncommon::filedescription($extension); |
|
my $icon = '<img src="'.&Apache::loncommon::icon($extension). |
|
'" class="LC_icon" />'; |
|
$r->print($icon.$type.': '. $env{'form.markedcopy_title'}); |
|
} |
if ($container eq 'page') { |
if ($container eq 'page') { |
$r->print(<<PAGEINFO); |
$r->print(<<PAGEINFO); |
<input type="hidden" name="pagepath" value="$env{'form.pagepath'}" /> |
<input type="hidden" name="pagepath" value="$env{'form.pagepath'}" /> |
Line 1325 sub process_file_upload {
|
Line 1558 sub process_file_upload {
|
$codebase); |
$codebase); |
my $ext='false'; |
my $ext='false'; |
if ($url=~/^http\:\/\//) { $ext='true'; } |
if ($url=~/^http\:\/\//) { $ext='true'; } |
$url=~s/\:/\:/g; |
$url = &LONCAPA::map::qtunescape($url); |
my $comment=$env{'form.comment'}; |
my $comment=$env{'form.comment'}; |
$comment=~s/\</\<\;/g; |
$comment = &LONCAPA::map::qtunescape($comment); |
$comment=~s/\>/\>\;/g; |
|
$comment=~s/\:/\:/g; |
|
if ($folder=~/^supplemental/) { |
if ($folder=~/^supplemental/) { |
$comment=time.'___&&&___'.$env{'user.name'}.'___&&&___'. |
$comment=time.'___&&&___'.$env{'user.name'}.'___&&&___'. |
$env{'user.domain'}.'___&&&___'.$comment; |
$env{'user.domain'}.'___&&&___'.$comment; |
Line 1348 sub process_file_upload {
|
Line 1579 sub process_file_upload {
|
my $total_embedded = keys(%{$allfiles}); |
my $total_embedded = keys(%{$allfiles}); |
if ($total_embedded > 0) { |
if ($total_embedded > 0) { |
my $num = 0; |
my $num = 0; |
$$upload_output .= 'This file contains embedded multimedia objects, which need to be uploaded to LON-CAPA.<br /> |
my $state = ' |
<form name="upload_embedded" action="/adm/coursedocs" |
<input type="hidden" name="folderpath" value="'.$env{'form.folderpath'}.'" /> |
method="post" enctype="multipart/form-data"> |
<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="'.&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 /> |
$phase_status = 'phasetwo'; |
<table>'; |
|
foreach my $embed_file (keys(%{$allfiles})) { |
$$upload_output .= |
$$upload_output .= '<tr><td>'.$embed_file. |
'This file contains embedded multimedia objects, which need to be uploaded to LON-CAPA.<br />'. |
'<input name="embedded_item_'.$num.'" type="file" /> |
&ask_for_embedded_content('/adm/coursedocs', |
<input name="embedded_orig_'.$num.'" type="hidden" value="'.&escape($embed_file).'" />'; |
$state,$allfiles,$codebase); |
my $attrib; |
|
if (@{$$allfiles{$embed_file}} > 1) { |
|
$attrib = join(':',@{$$allfiles{$embed_file}}); |
|
} else { |
|
$attrib = $$allfiles{$embed_file}[0]; |
|
} |
|
$$upload_output .= |
|
'<input name="embedded_attrib_'.$num.'" type="hidden" value="'.$attrib.'" />'; |
|
if (exists($$codebase{$embed_file})) { |
|
$$upload_output .= |
|
'<input name="codebase_'.$num.'" type="hidden" value="'.&escape($$codebase{$embed_file}).'" />'; |
|
} |
|
$$upload_output .= '</td></tr>'; |
|
$num ++; |
|
} |
|
$phase_status = 'phasetwo'; |
|
$$upload_output .= '</table><br /> |
|
<input type ="submit" value="Complete upload" /> |
|
</form>'; |
|
} else { |
} else { |
$$upload_output .= 'No embedded items identified<br />'; |
$$upload_output .= 'No embedded items identified<br />'; |
} |
} |
Line 1389 sub process_file_upload {
|
Line 1600 sub process_file_upload {
|
return $phase_status; |
return $phase_status; |
} |
} |
|
|
|
sub ask_for_embedded_content { |
|
my ($actionurl,$state,$allfiles,$codebase,$args)=@_; |
|
my $upload_output = ' |
|
<form name="upload_embedded" action="'.$actionurl.'" |
|
method="post" enctype="multipart/form-data">'; |
|
$upload_output .= $state; |
|
$upload_output .= '<b>Upload embedded files</b>:<br />'. |
|
&Apache::loncommon::start_data_table(); |
|
|
|
my $num = 0; |
|
foreach my $embed_file (sort {lc($a) cmp lc($b)} keys(%{$allfiles})) { |
|
$upload_output .= &Apache::loncommon::start_data_table_row(). |
|
'<td>'.$embed_file.'</td><td>'; |
|
if ($args->{'ignore_remote_references'} |
|
&& $embed_file =~ m{^\w+://}) { |
|
$upload_output.='<span class="LC_warning">'.&mt("URL points to other server.").'</span>'; |
|
} elsif ($args->{'error_on_invalid_names'} |
|
&& $embed_file ne &Apache::lonnet::clean_filename($embed_file,{'keep_path' => 1,})) { |
|
|
|
$upload_output.='<span class="LC_warning">'.&mt("Invalid characters").'</span>'; |
|
|
|
} else { |
|
|
|
$upload_output .=' |
|
<input name="embedded_item_'.$num.'" type="file" value="bob" /> |
|
<input name="embedded_orig_'.$num.'" type="hidden" value="'.&escape($embed_file).'" />'; |
|
my $attrib = join(':',@{$$allfiles{$embed_file}}); |
|
$upload_output .= |
|
"\n\t\t". |
|
'<input name="embedded_attrib_'.$num.'" type="hidden" value="'. |
|
$attrib.'" />'; |
|
if (exists($$codebase{$embed_file})) { |
|
$upload_output .= |
|
"\n\t\t". |
|
'<input name="codebase_'.$num.'" type="hidden" value="'. |
|
&escape($$codebase{$embed_file}).'" />'; |
|
} |
|
} |
|
$upload_output .= '</td>'.&Apache::loncommon::end_data_table_row(); |
|
$num++; |
|
} |
|
$upload_output .= &Apache::loncommon::end_data_table().'<br /> |
|
<input type ="hidden" name="number_embedded_items" value="'.$num.'" /> |
|
<input type ="submit" value="'.&mt('Upload Listed Files').'" /> |
|
'.&mt('(only files for which a location has been provided will be uploaded)').' |
|
</form>'; |
|
return $upload_output; |
|
} |
|
|
sub process_secondary_uploads { |
sub process_secondary_uploads { |
my ($upload_output,$coursedom,$coursenum,$formname,$num,$newidx) = @_; |
my ($upload_output,$coursedom,$coursenum,$formname,$num,$newidx) = @_; |
my $folder=$env{'form.folder'}; |
my $folder=$env{'form.folder'}; |
Line 1404 sub process_secondary_uploads {
|
Line 1664 sub process_secondary_uploads {
|
$destination .= $newidx; |
$destination .= $newidx; |
my ($url,$filename); |
my ($url,$filename); |
$url=&Apache::lonnet::userfileupload($formname.$num,1,$destination); |
$url=&Apache::lonnet::userfileupload($formname.$num,1,$destination); |
($filename) = ($url =~ m-^/uploaded/$coursedom/$coursenum/$destination/(.+)$-); |
($filename) = ($url =~ m{^/uploaded/\Q$coursedom\E/\Q$coursenum\E/\Q$destination\E/(.+)$}); |
return $filename; |
return $filename; |
} |
} |
|
|
Line 1412 sub process_secondary_uploads {
|
Line 1672 sub process_secondary_uploads {
|
|
|
sub entryline { |
sub entryline { |
my ($index,$title,$url,$folder,$allowed,$residx,$coursenum)=@_; |
my ($index,$title,$url,$folder,$allowed,$residx,$coursenum)=@_; |
$title=~s/\&colon\;/\:/g; |
$title=&HTML::Entities::encode($title,'"<>&\''); |
$title=&HTML::Entities::encode(&HTML::Entities::decode( |
|
&unescape($title)),'"<>&\''); |
|
my $renametitle=$title; |
my $renametitle=$title; |
my $foldertitle=$title; |
my $foldertitle=$title; |
my $pagetitle=$title; |
my $pagetitle=$title; |
my $orderidx=$LONCAPA::map::order[$index]; |
my $orderidx=$LONCAPA::map::order[$index]; |
if ($title=~ /^(\d+)___&&&___(\w+)___&&&___(\w+)___&&&___(.*)$/ ) { |
if ($title=~ /^(\d+)___&&&___($match_username)___&&&___($match_domain)___&&&___(.*)$/ ) { |
$foldertitle=&Apache::lontexconvert::msgtexconverted($4); |
$foldertitle=&Apache::lontexconvert::msgtexconverted($4); |
$renametitle=$4; |
$renametitle=$4; |
$title='<i>'.&Apache::lonlocal::locallocaltime($1).'</i> '. |
$title='<i>'.&Apache::lonlocal::locallocaltime($1).'</i> '. |
Line 1481 sub entryline {
|
Line 1739 sub entryline {
|
'rn' => 'Rename', |
'rn' => 'Rename', |
'cp' => 'Copy'); |
'cp' => 'Copy'); |
my $nocopy=0; |
my $nocopy=0; |
|
my $nocut=0; |
if ($url=~/\.(page|sequence)$/) { |
if ($url=~/\.(page|sequence)$/) { |
foreach (&Apache::lonsequence::attemptread(&Apache::lonnet::filelocation('',$url))) { |
foreach (&Apache::lonsequence::attemptread(&Apache::lonnet::filelocation('',$url))) { |
my ($title,$url,$ext,$type)=split(/\:/,$_); |
my ($title,$url,$ext,$type)=split(/\:/,$_); |
Line 1490 sub entryline {
|
Line 1749 sub entryline {
|
} |
} |
} |
} |
} |
} |
|
if ($url=~/^\/res\/lib\/templates\//) { |
|
$nocopy=1; |
|
$nocut=1; |
|
} |
my $copylink=' '; |
my $copylink=' '; |
|
my $cutlink=' '; |
if ($env{'form.pagepath'}) { |
if ($env{'form.pagepath'}) { |
unless ($nocopy) { |
if (!$nocopy) { |
$copylink=(<<ENDCOPY); |
$copylink=(<<ENDCOPY); |
<a href='javascript:markcopy("$pagepath","$index","$renametitle","page","$pagesymb");'> |
<a href='javascript:markcopy("$pagepath","$index","$renametitle","page","$pagesymb");'> |
<font size="-2" color="#000099">$lt{'cp'}</font></a></td> |
<font size="-2" color="#000099">$lt{'cp'}</font></a></td> |
ENDCOPY |
ENDCOPY |
|
} |
|
if (!$nocut) { |
|
$cutlink=(<<ENDCUT); |
|
<a href='javascript:cutres("$pagepath","$index","$renametitle","page","$pagesymb");'> |
|
<font size="-2" color="#550044">$lt{'ct'}</font></a> |
|
ENDCUT |
} |
} |
$line.=(<<END); |
$line.=(<<END); |
<form name="entry_$index" action="/adm/coursedocs" method="post"> |
<form name="entry_$index" action="/adm/coursedocs" method="post"> |
Line 1505 ENDCOPY
|
Line 1775 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 1517 ENDCOPY
|
Line 1788 ENDCOPY
|
</td><td bgcolor="#DDDDDD"> |
</td><td bgcolor="#DDDDDD"> |
<a href='javascript:removeres("$pagepath","$index","$renametitle","page","$pagesymb");'> |
<a href='javascript:removeres("$pagepath","$index","$renametitle","page","$pagesymb");'> |
<font size="-2" color="#990000">$lt{'rm'}</font></a> |
<font size="-2" color="#990000">$lt{'rm'}</font></a> |
<a href='javascript:cutres("$pagepath","$index","$renametitle","page","$pagesymb");'> |
$cutlink |
<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> |
$copylink |
$copylink |
END |
END |
} else { |
} else { |
unless ($nocopy) { |
if (!$nocopy) { |
$copylink=(<<ENDCOPY); |
$copylink=(<<ENDCOPY); |
<a href='javascript:markcopy("$folderpath","$index","$renametitle","sequence");'> |
<a href='javascript:markcopy("$folderpath","$index","$renametitle","sequence");'> |
<font size="-2" color="#000099">$lt{'cp'}</font></a></td> |
<font size="-2" color="#000099">$lt{'cp'}</font></a></td> |
ENDCOPY |
ENDCOPY |
} |
} |
|
if (!$nocut) { |
|
$cutlink=(<<ENDCUT); |
|
<a href='javascript:cutres("$folderpath","$index","$renametitle","sequence");'> |
|
<font size="-2" color="#550044">$lt{'ct'}</font></a> |
|
ENDCUT |
|
} |
$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 1548 ENDCOPY
|
Line 1825 ENDCOPY
|
</td><td bgcolor="#DDDDDD"> |
</td><td bgcolor="#DDDDDD"> |
<a href='javascript:removeres("$folderpath","$index","$renametitle","sequence");'> |
<a href='javascript:removeres("$folderpath","$index","$renametitle","sequence");'> |
<font size="-2" color="#990000">$lt{'rm'}</font></a> |
<font size="-2" color="#990000">$lt{'rm'}</font></a> |
<a href='javascript:cutres("$folderpath","$index","$renametitle","sequence");'> |
$cutlink |
<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> |
$copylink |
$copylink |
Line 1568 END
|
Line 1844 END
|
if ($uploaded) { |
if ($uploaded) { |
if ($extension eq 'sequence') { |
if ($extension eq 'sequence') { |
$icon=$iconpath.'/folder_closed.gif'; |
$icon=$iconpath.'/folder_closed.gif'; |
$url=~/$coursenum\/([\/\w]+)\.sequence$/; |
$url=~/\Q$coursenum\E\/([\/\w]+)\.sequence$/; |
$url='/adm/coursedocs?'; |
$url='/adm/coursedocs?'; |
$folderarg=$1; |
$folderarg=$1; |
$isfolder=1; |
$isfolder=1; |
} elsif ($extension eq 'page') { |
} elsif ($extension eq 'page') { |
$icon=$iconpath.'/page.gif'; |
$icon=$iconpath.'/page.gif'; |
$url=~/$coursenum\/([\/\w]+)\.page$/; |
$url=~/\Q$coursenum\E\/([\/\w]+)\.page$/; |
$pagearg=$1; |
$pagearg=$1; |
$url='/adm/coursedocs?'; |
$url='/adm/coursedocs?'; |
$ispage=1; |
$ispage=1; |
Line 1618 END
|
Line 1894 END
|
$url.=(($url=~/\?/)?'&':'?').'symb='.&escape($symb); |
$url.=(($url=~/\?/)?'&':'?').'symb='.&escape($symb); |
} |
} |
} |
} |
my $parameterset=' '; |
my ($parameterset,$rand_order_text) = (' ', ' '); |
if ($isfolder || $extension eq 'sequence') { |
if ($isfolder || $extension eq 'sequence') { |
my $foldername=&escape($foldertitle); |
my $foldername=&escape($foldertitle); |
my $folderpath=$env{'form.folderpath'}; |
my $folderpath=$env{'form.folderpath'}; |
Line 1630 END
|
Line 1906 END
|
.':'.((&LONCAPA::map::getparameter($orderidx, |
.':'.((&LONCAPA::map::getparameter($orderidx, |
'parameter_hiddenresource'))[0]=~/^yes$/i) |
'parameter_hiddenresource'))[0]=~/^yes$/i) |
.':'.((&LONCAPA::map::getparameter($orderidx, |
.':'.((&LONCAPA::map::getparameter($orderidx, |
'parameter_encrypturl'))[0]=~/^yes$/i); |
'parameter_encrypturl'))[0]=~/^yes$/i) |
|
.':'.((&LONCAPA::map::getparameter($orderidx, |
|
'parameter_randomorder'))[0]=~/^yes$/i); |
$url.='folderpath='.&escape($folderpath).$cpinfo; |
$url.='folderpath='.&escape($folderpath).$cpinfo; |
$parameterset='<label>'.&mt('Randomly Pick: '). |
$parameterset='<label>'.&mt('Randomly Pick: '). |
'<input type="text" size="4" onChange="this.form.submit()" name="randpick_'.$orderidx.'" value="'. |
'<input type="text" size="4" onChange="this.form.changeparms.value='."'randompick'".';this.form.submit()" name="randpick_'.$orderidx.'" value="'. |
(&LONCAPA::map::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('Save').'</a></font></label>'; |
|
|
|
my $ro_set= |
|
((&LONCAPA::map::getparameter($orderidx,'parameter_randomorder'))[0]=~/^yes$/i?' checked="checked"':''); |
|
$rand_order_text =' |
|
<nobr><label><input type="checkbox" name="randorder_$orderidx" onClick="this.form.changeparms.value=\'randomorder\';this.form.submit()" '.$ro_set.' /> '.&mt('Random Order').' </label></nobr>'; |
} |
} |
if ($ispage) { |
if ($ispage) { |
my $pagename=&escape($pagetitle); |
my $pagename=&escape($pagetitle); |
Line 1667 END
|
Line 1949 END
|
'hd' => 'Hidden', |
'hd' => 'Hidden', |
'ec' => 'URL hidden'); |
'ec' => 'URL hidden'); |
my $enctext= |
my $enctext= |
((&LONCAPA::map::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i?' checked="1"':''); |
((&LONCAPA::map::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i?' checked="checked"':''); |
my $hidtext= |
my $hidtext= |
((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i?' checked="1"':''); |
((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i?' checked="checked"':''); |
|
|
$line.=(<<ENDPARMS); |
$line.=(<<ENDPARMS); |
<td 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='hiddenresource';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='encrypturl';this.form.submit()" $enctext /> $lt{'ec'}</label></nobr></td> |
|
<td bgcolor="#BBBBFF"><font size="-2">$rand_order_text</font></td> |
<td bgcolor="#BBBBFF"><font size="-2">$parameterset</font></td> |
<td bgcolor="#BBBBFF"><font size="-2">$parameterset</font></td> |
ENDPARMS |
ENDPARMS |
} |
} |
Line 1788 sub list_symbs {
|
Line 2072 sub list_symbs {
|
my ($r) = @_; |
my ($r) = @_; |
|
|
$r->print(&Apache::loncommon::start_page('Symb List')); |
$r->print(&Apache::loncommon::start_page('Symb List')); |
|
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Symb List')); |
my $navmap = Apache::lonnavmaps::navmap->new(); |
my $navmap = Apache::lonnavmaps::navmap->new(); |
$r->print("<pre>\n"); |
$r->print("<pre>\n"); |
foreach my $res ($navmap->retrieveResources()) { |
foreach my $res ($navmap->retrieveResources()) { |
Line 1807 sub verifycontent {
|
Line 2092 sub verifycontent {
|
my $loaderror=&Apache::lonnet::overloaderror($r); |
my $loaderror=&Apache::lonnet::overloaderror($r); |
if ($loaderror) { return $loaderror; } |
if ($loaderror) { return $loaderror; } |
$r->print(&Apache::loncommon::start_page('Verify '.$type.' Documents')); |
$r->print(&Apache::loncommon::start_page('Verify '.$type.' Documents')); |
|
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Verify '.$type.' Documents')); |
$hashtied=0; |
$hashtied=0; |
undef %alreadyseen; |
undef %alreadyseen; |
%alreadyseen=(); |
%alreadyseen=(); |
Line 1842 sub checkversions {
|
Line 2128 sub checkversions {
|
my ($r) = @_; |
my ($r) = @_; |
my $type = &Apache::loncommon::course_type(); |
my $type = &Apache::loncommon::course_type(); |
$r->print(&Apache::loncommon::start_page("Check $type Document Versions")); |
$r->print(&Apache::loncommon::start_page("Check $type Document Versions")); |
|
$r->print(&Apache::lonhtmlcommon::breadcrumbs("Check $type Document Versions")); |
my $header=''; |
my $header=''; |
my $startsel=''; |
my $startsel=''; |
my $monthsel=''; |
my $monthsel=''; |
Line 1893 sub checkversions {
|
Line 2180 sub checkversions {
|
if (&Apache::lonnet::put('resourceversions',\%newsetversions, |
if (&Apache::lonnet::put('resourceversions',\%newsetversions, |
$env{'course.'.$env{'request.course.id'}.'.domain'}, |
$env{'course.'.$env{'request.course.id'}.'.domain'}, |
$env{'course.'.$env{'request.course.id'}.'.num'}) eq 'ok') { |
$env{'course.'.$env{'request.course.id'}.'.num'}) eq 'ok') { |
$r->print('<h1>'.&mt('Your Version Settings have been Stored').'</h1>'); |
$r->print('<h1>'.&mt('Your Version Settings have been Saved').'</h1>'); |
} else { |
} else { |
$r->print('<h1><font color="red">'.&mt('An Error Occured while Attempting to Store your Version Settings').'</font></h1>'); |
$r->print('<h1><font color="red">'.&mt('An Error Occured while Attempting to Save your Version Settings').'</font></h1>'); |
} |
} |
&mark_hash_old(); |
&mark_hash_old(); |
} |
} |
Line 2133 sub changewarning {
|
Line 2420 sub changewarning {
|
$help{'Caching'}.'</font></h3></form>'."\n\n"); |
$help{'Caching'}.'</font></h3></form>'."\n\n"); |
} |
} |
|
|
|
# =========================================== Breadcrumbs for special functions |
|
|
|
sub init_breadcrumbs { |
|
my ($form,$text)=@_; |
|
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
|
&Apache::lonhtmlcommon::add_breadcrumb({href=>"/adm/coursedocs", |
|
text=>&Apache::loncommon::course_type()." Documents", |
|
faq=>273, |
|
bug=>'Instructor Interface', |
|
help => 'Docs_Adding_Course_Doc'}); |
|
&Apache::lonhtmlcommon::add_breadcrumb({href=>"/adm/coursedocs?".$form.'=1', |
|
text=>$text, |
|
faq=>273, |
|
bug=>'Instructor Interface'}); |
|
} |
|
|
# ================================================================ Main Handler |
# ================================================================ Main Handler |
sub handler { |
sub handler { |
my $r = shift; |
my $r = shift; |
Line 2161 sub handler {
|
Line 2464 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 |
my $allowed=&Apache::lonnet::allowed('mdc',$env{'request.course.id'}); |
my $allowed=&Apache::lonnet::allowed('mdc',$env{'request.course.id'}); |
|
|
if ($allowed && $env{'form.verify'}) { |
if ($allowed && $env{'form.verify'}) { |
|
&init_breadcrumbs('verify','Verify Content'); |
&verifycontent($r); |
&verifycontent($r); |
} elsif ($allowed && $env{'form.listsymbs'}) { |
} elsif ($allowed && $env{'form.listsymbs'}) { |
|
&init_breadcrumbs('listsymbs','List Symbs'); |
&list_symbs($r); |
&list_symbs($r); |
|
} elsif ($allowed && $env{'form.docslog'}) { |
|
&init_breadcrumbs('docslog','Show Log'); |
|
&docs_change_log($r); |
} elsif ($allowed && $env{'form.versions'}) { |
} elsif ($allowed && $env{'form.versions'}) { |
|
&init_breadcrumbs('versions','Check/Set Resource Versions'); |
&checkversions($r); |
&checkversions($r); |
} elsif ($allowed && $env{'form.dumpcourse'}) { |
} elsif ($allowed && $env{'form.dumpcourse'}) { |
|
&init_breadcrumbs('dumpcourse','Dump '.&Apache::loncommon::course_type().' DOCS to Construction Space'); |
&dumpcourse($r); |
&dumpcourse($r); |
} elsif ($allowed && $env{'form.exportcourse'}) { |
} elsif ($allowed && $env{'form.exportcourse'}) { |
|
&init_breadcrumbs('exportcourse','Export '.&Apache::loncommon::course_type().' to IMS'); |
&exportcourse($r); |
&exportcourse($r); |
} else { |
} else { |
# is this a standard course? |
# is this a standard course? |
Line 2248 sub handler {
|
Line 2559 sub handler {
|
my %codebase = (); |
my %codebase = (); |
my ($upload_result,$upload_output); |
my ($upload_result,$upload_output); |
if ($allowed) { |
if ($allowed) { |
if (($env{'form.uploaddoc.filename'}) && ($env{'form.cmd'}=~/^upload_(\w+)/)) { |
if (($env{'form.uploaddoc.filename'}) && |
|
($env{'form.cmd'}=~/^upload_(\w+)/)) { |
# Process file upload - phase one - upload and parse primary file. |
# Process file upload - phase one - upload and parse primary file. |
$upload_result = &process_file_upload(\$upload_output,$coursenum, |
$upload_result = &process_file_upload(\$upload_output,$coursenum, |
$coursedom,\%allfiles, |
$coursedom,\%allfiles, |
Line 2353 sub handler {
|
Line 2665 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 2368 sub handler {
|
Line 2681 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 2391 sub handler {
|
Line 2705 sub handler {
|
$containertag |
$containertag |
</form> |
</form> |
<form name="simpleedit" method="post" action="/adm/coursedocs"> |
<form name="simpleedit" method="post" action="/adm/coursedocs"> |
<input type=hidden name="importdetail" value=""> |
<input type="hidden" name="importdetail" value="" /> |
$uploadtag |
$uploadtag |
</form> |
</form> |
<form action="/adm/coursedocs" method="post" name="courseverify"> |
<form action="/adm/coursedocs" method="post" name="courseverify"> |
Line 2404 $dumpbut
|
Line 2718 $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="hidden" name="folder" value="$env{'form.folder'}" /> |
|
<input type="submit" name="docslog" value="$lt{'sl'}" /> |
</td></tr></table> |
</td></tr></table> |
</form> |
</form> |
ENDCOURSEVERIFY |
ENDCOURSEVERIFY |
Line 2503 ENDFORM
|
Line 2820 ENDFORM
|
<hr /> |
<hr /> |
<form action="/adm/coursedocs" method="post" name="newext"> |
<form action="/adm/coursedocs" method="post" name="newext"> |
$uploadtag |
$uploadtag |
<input type=hidden name="importdetail" value=""> |
<input type="hidden" name="importdetail" value="" /> |
<nobr> |
<nobr> |
<input name="newext" type="button" onClick="javascript:makenewext('newext');" |
<input name="newext" type="button" onClick="javascript:makenewext('newext');" |
value="$lt{'extr'}" /> $help{'Adding_External_Resource'} |
value="$lt{'extr'}" /> $help{'Adding_External_Resource'} |
Line 2521 ENDFORM
|
Line 2838 ENDFORM
|
$r->print(<<ENDFORM); |
$r->print(<<ENDFORM); |
<br /><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> |
<input name="newfolder" type="button" |
<input name="newfolder" type="button" |
onClick="javascript:makenewfolder(this.form,'$folderseq');" |
onClick="javascript:makenewfolder(this.form,'$folderseq');" |
Line 2530 value="$lt{'newf'}" />$help{'Adding_Fold
|
Line 2847 value="$lt{'newf'}" />$help{'Adding_Fold
|
</form> |
</form> |
<br /><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> |
<input name="newpage" type="button" |
<input name="newpage" type="button" |
onClick="javascript:makenewpage(this.form,'$pageseq');" |
onClick="javascript:makenewpage(this.form,'$pageseq');" |
Line 2539 value="$lt{'newp'}" />$help{'Adding_Page
|
Line 2856 value="$lt{'newp'}" />$help{'Adding_Page
|
</form> |
</form> |
<br /><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" /> |
<nobr> |
<nobr> |
<input name="newsyl" type="submit" value="$lt{'syll'}" /> |
<input name="newsyl" type="submit" value="$lt{'syll'}" /> |
$help{'Syllabus'} |
$help{'Syllabus'} |
Line 2548 value="Syllabus=/public/$coursedom/$cour
|
Line 2865 value="Syllabus=/public/$coursedom/$cour
|
</form> |
</form> |
<br /><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" /> |
<nobr> |
<nobr> |
<input name="newnav" type="submit" value="$lt{'navc'}" /> |
<input name="newnav" type="submit" value="$lt{'navc'}" /> |
$help{'Navigate_Content'} |
$help{'Navigate_Content'} |
Line 2557 $help{'Navigate_Content'}
|
Line 2874 $help{'Navigate_Content'}
|
</form> |
</form> |
<br /><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> |
<input name="newsmppg" type="button" value="$lt{'sipa'}" |
<input name="newsmppg" type="button" value="$lt{'sipa'}" |
onClick="javascript:makesmppage();" /> $help{'Simple Page'} |
onClick="javascript:makesmppage();" /> $help{'Simple Page'} |
Line 2565 onClick="javascript:makesmppage();" /> $
|
Line 2882 onClick="javascript:makesmppage();" /> $
|
</form> |
</form> |
<br /><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> |
<input name="newsmpproblem" type="button" value="$lt{'sipr'}" |
<input name="newsmpproblem" type="button" value="$lt{'sipr'}" |
onClick="javascript:makesmpproblem();" />$help{'Simple Problem'} |
onClick="javascript:makesmpproblem();" />$help{'Simple Problem'} |
Line 2573 onClick="javascript:makesmpproblem();" /
|
Line 2890 onClick="javascript:makesmpproblem();" /
|
</form> |
</form> |
<br /><form action="/adm/coursedocs" method="post" name="newdropbox"> |
<br /><form action="/adm/coursedocs" method="post" name="newdropbox"> |
$uploadtag |
$uploadtag |
<input type=hidden name="importdetail" value=""> |
<input type="hidden" name="importdetail" value="" /> |
<nobr> |
<nobr> |
<input name="newdropbox" type="button" value="$lt{'drbx'}" |
<input name="newdropbox" type="button" value="$lt{'drbx'}" |
onClick="javascript:makedropbox();" /> |
onClick="javascript:makedropbox();" /> |
Line 2581 onClick="javascript:makedropbox();" />
|
Line 2898 onClick="javascript:makedropbox();" />
|
</form> |
</form> |
<br /><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> |
<input name="newexamupload" type="button" value="$lt{'scuf'}" |
<input name="newexamupload" type="button" value="$lt{'scuf'}" |
onClick="javascript:makeexamupload();" /> |
onClick="javascript:makeexamupload();" /> |
Line 2590 $help{'Score_Upload_Form'}
|
Line 2907 $help{'Score_Upload_Form'}
|
</form> |
</form> |
<br /><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> |
<input name="newbulletin" type="button" value="$lt{'bull'}" |
<input name="newbulletin" type="button" value="$lt{'bull'}" |
onClick="javascript:makebulboard();" /> |
onClick="javascript:makebulboard();" /> |
Line 2599 $help{'Bulletin Board'}
|
Line 2916 $help{'Bulletin Board'}
|
</form> |
</form> |
<br /><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" /> |
<nobr> |
<nobr> |
<input name="newaboutme" type="submit" value="$lt{'mypi'}" /> |
<input name="newaboutme" type="submit" value="$lt{'mypi'}" /> |
$help{'My Personal Info'} |
$help{'My Personal Info'} |
Line 2608 $help{'My Personal Info'}
|
Line 2925 $help{'My Personal Info'}
|
</form> |
</form> |
<br /><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> |
<input name="newaboutsomeone" type="button" value="$lt{'abou'}" |
<input name="newaboutsomeone" type="button" value="$lt{'abou'}" |
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'}) { |
$r->print(<<ENDBLOCK); |
$r->print(<<ENDBLOCK); |
<form action="/adm/coursedocs" method="post" name="newsmpproblem"> |
<form action="/adm/coursedocs" method="post" name="newsmpproblem"> |
$uploadtag |
$uploadtag |
<input type=hidden name="importdetail" value=""> |
<input type="hidden" name="importdetail" value="" /> |
<nobr> |
<nobr> |
<input name="newsmpproblem" type="button" value="$lt{'sipr'}" |
<input name="newsmpproblem" type="button" value="$lt{'sipr'}" |
onClick="javascript:makesmpproblem();" />$help{'Simple Problem'} |
onClick="javascript:makesmpproblem();" />$help{'Simple Problem'} |
Line 2628 onClick="javascript:makesmpproblem();" /
|
Line 2954 onClick="javascript:makesmpproblem();" /
|
</form> |
</form> |
<br /><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> |
<input name="newexamupload" type="button" value="$lt{'scuf'}" |
<input name="newexamupload" type="button" value="$lt{'scuf'}" |
onClick="javascript:makeexamupload();" /> |
onClick="javascript:makeexamupload();" /> |
Line 2692 $lt{'comment'}:<br />
|
Line 3018 $lt{'comment'}:<br />
|
<td bgcolor="#DDDDDD"> |
<td bgcolor="#DDDDDD"> |
<form action="/adm/coursedocs" method="post" name="supnewfolder"> |
<form action="/adm/coursedocs" method="post" name="supnewfolder"> |
<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> |
<input name="newfolder" type="button" |
<input name="newfolder" type="button" |
onClick="javascript:makenewfolder(this.form,'$folderseq');" |
onClick="javascript:makenewfolder(this.form,'$folderseq');" |
Line 2701 value="$lt{'newf'}" /> $help{'Adding_Fol
|
Line 3027 value="$lt{'newf'}" /> $help{'Adding_Fol
|
</form> |
</form> |
<br /><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> |
<input name="newext" type="button" |
<input name="newext" type="button" |
onClick="javascript:makenewext('supnewext');" |
onClick="javascript:makenewext('supnewext');" |
Line 2710 value="$lt{'extr'}" /> $help{'Adding_Ext
|
Line 3036 value="$lt{'extr'}" /> $help{'Adding_Ext
|
</form> |
</form> |
<br /><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" /> |
<nobr> |
<nobr> |
<input name="newsyl" type="submit" value="$lt{'syll'}" /> |
<input name="newsyl" type="submit" value="$lt{'syll'}" /> |
$help{'Syllabus'} |
$help{'Syllabus'} |
Line 2719 $help{'Syllabus'}
|
Line 3045 $help{'Syllabus'}
|
</form> |
</form> |
<br /><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" /> |
<nobr> |
<nobr> |
<input name="newaboutme" type="submit" value="$lt{'mypi'}" /> |
<input name="newaboutme" type="submit" value="$lt{'mypi'}" /> |
$help{'My Personal Info'} |
$help{'My Personal Info'} |