version 1.144, 2004/09/18 17:03:25
|
version 1.166, 2005/02/02 22:15:06
|
Line 30 package Apache::londocs;
|
Line 30 package Apache::londocs;
|
|
|
use strict; |
use strict; |
use Apache::Constants qw(:common :http); |
use Apache::Constants qw(:common :http); |
|
use Apache::imsexport; |
use Apache::lonnet; |
use Apache::lonnet; |
use Apache::loncommon; |
use Apache::loncommon; |
use Apache::lonratedt; |
use Apache::lonratedt; |
Line 131 sub dumpbutton {
|
Line 132 sub dumpbutton {
|
} |
} |
} |
} |
|
|
|
sub clean { |
|
my ($title)=@_; |
|
$title=~s/[^\w\/\!\$\%\^\*\-\_\=\+\;\:\,\\\|\`\~]+/\_/gs; |
|
return $title; |
|
} |
# -------------------------------------------------------- Actually dump course |
# -------------------------------------------------------- Actually dump course |
|
|
sub dumpcourse { |
sub dumpcourse { |
Line 148 sub dumpcourse {
|
Line 154 sub dumpcourse {
|
my ($ca,$cd)=split(/\@/,$ENV{'form.authorspace'}); |
my ($ca,$cd)=split(/\@/,$ENV{'form.authorspace'}); |
$r->print('<h3>'.&mt('Copying Files').'</h3>'); |
$r->print('<h3>'.&mt('Copying Files').'</h3>'); |
my $title=$ENV{'form.authorfolder'}; |
my $title=$ENV{'form.authorfolder'}; |
$title=~s/[^\w\/]+/\_/g; |
$title=&clean($title); |
my %replacehash=(); |
my %replacehash=(); |
foreach (keys %ENV) { |
foreach (keys %ENV) { |
if ($_=~/^form\.namefor\_(.+)/) { |
if ($_=~/^form\.namefor\_(.+)/) { |
Line 159 sub dumpcourse {
|
Line 165 sub dumpcourse {
|
$crs=~s/\_/\//g; |
$crs=~s/\_/\//g; |
foreach (keys %replacehash) { |
foreach (keys %replacehash) { |
my $newfilename=$title.'/'.$replacehash{$_}; |
my $newfilename=$title.'/'.$replacehash{$_}; |
$newfilename=~s/[^\w\/\.\/]+/\_/g; |
$newfilename=&clean($newfilename); |
my @dirs=split(/\//,$newfilename); |
my @dirs=split(/\//,$newfilename); |
my $path='/home/'.$ca.'/public_html'; |
my $path='/home/'.$ca.'/public_html'; |
my $makepath=$path; |
my $makepath=$path; |
Line 213 sub dumpcourse {
|
Line 219 sub dumpcourse {
|
} |
} |
my $title=$origcrsdata{'description'}; |
my $title=$origcrsdata{'description'}; |
$title=~s/\s+/\_/gs; |
$title=~s/\s+/\_/gs; |
$title=~s/\W//gs; |
$title=&clean($title); |
$r->print('<h3>'.&mt('Folder in Construction Space').'</h3><input type="text" size="50" name="authorfolder" value="'.$title.'" /><br />'); |
$r->print('<h3>'.&mt('Folder in Construction Space').'</h3><input type="text" size="50" name="authorfolder" value="'.$title.'" /><br />'); |
&tiehash(); |
&tiehash(); |
$r->print('<h3>'.&mt('Filenames in Construction Space').'</h3><table border="2"><tr><th>'.&mt('Internal Filename').'</th><th>'.&mt('Title').'</th><th>'.&mt('Save as ...').'</th></tr>'); |
$r->print('<h3>'.&mt('Filenames in Construction Space').'</h3><table border="2"><tr><th>'.&mt('Internal Filename').'</th><th>'.&mt('Title').'</th><th>'.&mt('Save as ...').'</th></tr>'); |
Line 222 sub dumpcourse {
|
Line 228 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>'); |
unless ($title) { |
unless ($title) { |
$title=$_; |
$title=$_; |
} |
} |
$title=~s/\.(\w+)$//; |
$title=~s/\.(\w+)$//; |
$title=~s/[^\w\/]+/\_/gs; |
$title=&clean($title); |
$title.='.'.$ext; |
$title.='.'.$ext; |
$r->print("\n<td><input type='text' size='60' name='namefor_".$_."' value='".$title."' /></td></tr>\n"); |
$r->print("\n<td><input type='text' size='60' name='namefor_".$_."' value='".$title."' /></td></tr>\n"); |
} |
} |
Line 241 sub dumpcourse {
|
Line 248 sub dumpcourse {
|
# ------------------------------------------------------ Generate "export" button |
# ------------------------------------------------------ Generate "export" button |
|
|
sub exportbutton { |
sub exportbutton { |
|
return ''; |
return '</td><td bgcolor="#DDDDCC">'. |
return '</td><td bgcolor="#DDDDCC">'. |
'<input type="submit" name="exportcourse" value="'. |
'<input type="submit" name="exportcourse" value="'. |
&mt('Export Course to IMS').'" />'. |
&mt('Export Course to IMS').'" />'. |
Line 283 sub exportcourse {
|
Line 291 sub exportcourse {
|
$outcome = '<br />As you did not select any content items or discussions for export, an IMS package has not been created. Please <a href="javascript:history.go(-1)">go back</a> to select either content items or discussions for export'; |
$outcome = '<br />As you did not select any content items or discussions for export, an IMS package has not been created. Please <a href="javascript:history.go(-1)">go back</a> to select either content items or discussions for export'; |
} else { |
} else { |
my $now = time; |
my $now = time; |
my $count = 0; |
|
my %symbs; |
my %symbs; |
my $manifestok = 0; |
my $manifestok = 0; |
my $imsresources; |
my $imsresources; |
Line 291 sub exportcourse {
|
Line 298 sub exportcourse {
|
my $copyresult; |
my $copyresult; |
my $ims_manifest = &create_ims_store($now,\$manifestok,\$outcome,\$tempexport); |
my $ims_manifest = &create_ims_store($now,\$manifestok,\$outcome,\$tempexport); |
if ($manifestok) { |
if ($manifestok) { |
&build_package($now,$navmap,\@exportitems,\@discussions,\$outcome,\$tempexport,\$copyresult,$ims_manifest); |
&build_package($now,$navmap,\@exportitems,\@discussions,\$outcome,$tempexport,\$copyresult,$ims_manifest); |
close($ims_manifest); |
close($ims_manifest); |
|
|
#Create zip file in prtspool |
#Create zip file in prtspool |
Line 320 sub exportcourse {
|
Line 327 sub exportcourse {
|
} |
} |
|
|
$r->print('<html><head><title>Export Course</title></head>'. |
$r->print('<html><head><title>Export Course</title></head>'. |
&Apache::loncommon::bodytag('Export course to IMS or SCORM content package')); |
&Apache::loncommon::bodytag('Export course to IMS content package')); |
$r->print($outcome); |
$r->print($outcome); |
$r->print('</body></html>'); |
$r->print('</body></html>'); |
} else { |
} else { |
Line 369 sub exportcourse {
|
Line 376 sub exportcourse {
|
} |
} |
if (ref($curRes)) { |
if (ref($curRes)) { |
my $symb = $curRes->symb(); |
my $symb = $curRes->symb(); |
|
my $ressymb = $symb; |
|
if ($ressymb =~ m|adm/(\w+)/(\w+)/(\d+)/bulletinboard$|) { |
|
unless ($ressymb =~ m|adm/wrapper/adm|) { |
|
$ressymb = 'bulletin___'.$3.'___adm/wrapper/adm/'.$1.'/'.$2.'/'.$3.'/bulletinboard'; |
|
} |
|
} |
my $color = $count%2; |
my $color = $count%2; |
$display .='<tr bgcolor='.$bgcolors[$color].'><td>'."\n". |
$display .='<tr bgcolor='.$bgcolors[$color].'><td>'."\n". |
'<input type="checkbox" name="archive" value="'.$count.'" '; |
'<input type="checkbox" name="archive" value="'.$count.'" '; |
Line 390 sub exportcourse {
|
Line 403 sub exportcourse {
|
my $currelem = $count+$boards+$startcount; |
my $currelem = $count+$boards+$startcount; |
$children{$parent{$depth}} .= $currelem.':'; |
$children{$parent{$depth}} .= $currelem.':'; |
$display .= ' '.$curRes->title().'</td>'; |
$display .= ' '.$curRes->title().'</td>'; |
if ($discussiontime{$symb} > 0) { |
if ($discussiontime{$ressymb} > 0) { |
$boards ++; |
$boards ++; |
$currelem = $count+$boards+$startcount; |
$currelem = $count+$boards+$startcount; |
$display .= '<td> </td><td align="right"><input type="checkbox" name="discussion" value="'.$count.'" /> </td>'."\n"; |
$display .= '<td> </td><td align="right"><input type="checkbox" name="discussion" value="'.$count.'" /> </td>'."\n"; |
Line 403 sub exportcourse {
|
Line 416 sub exportcourse {
|
<script> |
<script> |
|
|
function checkAll(field) { |
function checkAll(field) { |
for (i = 0; i < field.length; i++) |
if (field.length > 0) { |
field[i].checked = true ; |
for (i = 0; i < field.length; i++) { |
|
field[i].checked = true ; |
|
} |
|
} else { |
|
field.checked = true |
|
} |
} |
} |
|
|
function uncheckAll(field) { |
function uncheckAll(field) { |
for (i = 0; i < field.length; i++) |
if (field.length > 0) { |
field[i].checked = false ; |
for (i = 0; i < field.length; i++) { |
|
field[i].checked = false ; |
|
} |
|
} else { |
|
field.checked = false ; |
|
} |
} |
} |
|
|
function propagateCheck(item) { |
function propagateCheck(item) { |
Line 445 function containerCheck(item) {
|
Line 468 function containerCheck(item) {
|
</script> |
</script> |
|; |
|; |
$r->print('<html><head><title>Export Course</title>'.$scripttag.'</head>'. |
$r->print('<html><head><title>Export Course</title>'.$scripttag.'</head>'. |
&Apache::loncommon::bodytag('Export course to IMS or SCORM content package' |
&Apache::loncommon::bodytag('Export course to IMS content package' |
)); |
)); |
|
|
$r->print($display.'</table>'. |
$r->print($display.'</table>'. |
Line 470 sub create_ims_store {
|
Line 493 sub create_ims_store {
|
if (!-e $$tempexport) { |
if (!-e $$tempexport) { |
mkdir($$tempexport,0700); |
mkdir($$tempexport,0700); |
} |
} |
|
if (!-e "$$tempexport/resources") { |
|
mkdir("$$tempexport/resources",0700); |
|
} |
# open manifest file |
# open manifest file |
my $manifest = '/imsmanifest.xml'; |
my $manifest = '/imsmanifest.xml'; |
my $manifestfilename = $$tempexport.$manifest; |
my $manifestfilename = $$tempexport.$manifest; |
Line 483 sub create_ims_store {
|
Line 509 sub create_ims_store {
|
' identifier="MANIFEST-'.$ENV{'request.course.id'}.'-'.$now.'"'. |
' identifier="MANIFEST-'.$ENV{'request.course.id'}.'-'.$now.'"'. |
' xsi:schemaLocation="http://www.imsglobal.org/xsd/imscp_v1p1imscp_v1p1.xsd'. |
' xsi:schemaLocation="http://www.imsglobal.org/xsd/imscp_v1p1imscp_v1p1.xsd'. |
' http://www.imsglobal.org/xsd/imsmd_v1p2 imsmd_v1p2p2.xsd">'."\n". |
' http://www.imsglobal.org/xsd/imsmd_v1p2 imsmd_v1p2p2.xsd">'."\n". |
' <organizations default="ORG-."'.$ENV{'request,course.id'}.'-'.$now.'">'."\n". |
' <organizations default="ORG-'.$ENV{'request.course.id'}.'-'.$now.'">'."\n". |
' <organization identifier="ORG-'.$ENV{'request.course.id'}.'-'.$now.'"'. |
' <organization identifier="ORG-'.$ENV{'request.course.id'}.'-'.$now.'"'. |
' structure="hierarchical">'."\n". |
' structure="hierarchical">'."\n". |
' <title>'.$ENV{'request.'.$ENV{'request.course.id'}.'.description'}.'</title>' |
' <title>'.$ENV{'request.'.$ENV{'request.course.id'}.'.description'}.'</title>' |
Line 504 sub build_package {
|
Line 530 sub build_package {
|
my $lastcontainer = 0; |
my $lastcontainer = 0; |
my %parent = (); |
my %parent = (); |
my @dependencies = (); |
my @dependencies = (); |
my $cnum = $ENV{'request.'.$ENV{'request.course.id'}.'.num'}; |
my $cnum = $ENV{'course.'.$ENV{'request.course.id'}.'.num'}; |
my $cdom = $ENV{'request.'.$ENV{'request.course.id'}.'.domain'}; |
my $cdom = $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}; |
while ($curRes = $it->next()) { |
while ($curRes = $it->next()) { |
if (ref($curRes)) { |
if (ref($curRes)) { |
$count ++; |
$count ++; |
Line 534 sub build_package {
|
Line 560 sub build_package {
|
$count = 0; |
$count = 0; |
my $imsresources; |
my $imsresources; |
my $pkgdepth; |
my $pkgdepth; |
if ($curRes == $it->BEGIN_MAP()) { |
my $included = 0; |
$prevdepth = $depth; |
while ($curRes = $it->next()) { |
$depth++; |
if ($curRes == $it->BEGIN_MAP()) { |
} |
$prevdepth = $depth; |
if ($curRes == $it->END_MAP()) { |
$depth++; |
$prevdepth = $depth; |
} |
$depth--; |
if ($curRes == $it->END_MAP()) { |
} |
|
|
|
if (ref($curRes)) { |
|
if ((grep/^$count$/,@$exportitems) || (grep/^$count$/,@dependencies)) { |
|
my $symb = $curRes->symb(); |
|
my $isvisible = 'true'; |
|
my $resourceref; |
|
if ($curRes->randomout()) { |
|
$isvisible = 'false'; |
|
} |
|
unless ($curRes->is_sequence()) { |
|
$resourceref = 'identifierref="RES-'.$ENV{'request.course.id'}.'-'.$count.'"'; |
|
} |
|
if (($depth <= $prevdepth) && ($count > 1)) { |
|
print $ims_manifest ' </item>'."\n"; |
|
} |
|
$prevdepth = $depth; |
$prevdepth = $depth; |
|
$depth--; |
|
} |
|
|
|
if (ref($curRes)) { |
|
$count ++; |
|
if ((grep/^$count$/,@$exportitems) || (grep/^$count$/,@dependencies)) { |
|
my $symb = $curRes->symb(); |
|
my $isvisible = 'true'; |
|
my $resourceref; |
|
if ($curRes->randomout()) { |
|
$isvisible = 'false'; |
|
} |
|
unless ($curRes->is_sequence()) { |
|
$resourceref = 'identifierref="RES-'.$ENV{'request.course.id'}.'-'.$count.'"'; |
|
} |
|
if (($depth <= $prevdepth) && ($count > 1) && ($included)) { |
|
print $ims_manifest "\n".' </item>'."\n"; |
|
} |
|
$included = 1; |
|
$prevdepth = $depth; |
|
|
my $itementry = |
my $itementry = |
'<item identifier="ITEM-'.$ENV{'request.course.id'}.'-'.$count. |
'<item identifier="ITEM-'.$ENV{'request.course.id'}.'-'.$count. |
'" isvisible="'.$isvisible.'" '.$resourceref.'>'. |
'" isvisible="'.$isvisible.'" '.$resourceref.'>'. |
'<title>'.$curRes->title().'</title>'; |
'<title>'.$curRes->title().'</title>'; |
print $ims_manifest "\n".$itementry; |
print $ims_manifest "\n".$itementry; |
|
|
unless ($curRes->is_sequence()) { |
unless ($curRes->is_sequence()) { |
my $content_file; |
my $content_file; |
my @hrefs = (); |
my @hrefs = (); |
&process_content($count,$curRes,$cdom,$cnum,$symb,$content_file,\@hrefs,$copyresult,$tempexport); |
&process_content($count,$curRes,$cdom,$cnum,$symb,\$content_file,\@hrefs,$copyresult,$tempexport); |
if ($content_file) { |
if ($content_file) { |
$imsresources .= "\n". |
$imsresources .= "\n". |
' <resource identifier="RES-'.$ENV{'request.course.id'}.'-'.$count. |
' <resource identifier="RES-'.$ENV{'request.course.id'}.'-'.$count. |
'" type="webcontent" href="'.$content_file.'">'."\n". |
'" type="webcontent" href="'.$content_file.'">'."\n". |
' <file href="'.$content_file.'" />'."\n"; |
' <file href="'.$content_file.'" />'."\n"; |
foreach (@hrefs) { |
foreach (@hrefs) { |
$imsresources .= |
$imsresources .= |
' <file href="'.$_.'" />'."\n"; |
' <file href="'.$_.'" />'."\n"; |
|
} |
|
if (grep/^$count$/,@$discussions) { |
|
my $ressymb = $symb; |
|
my $mode; |
|
if ($ressymb =~ m|adm/(\w+)/(\w+)/(\d+)/bulletinboard$|) { |
|
unless ($ressymb =~ m|adm/wrapper/adm|) { |
|
$ressymb = 'bulletin___'.$3.'___adm/wrapper/adm/'.$1.'/'.$2.'/'.$3.'/bulletinboard'; |
|
} |
|
$mode = 'board'; |
|
} |
|
my %extras = ( |
|
caller => 'imsexport', |
|
tempexport => $tempexport.'/resources', |
|
count => $count |
|
); |
|
my $discresult = &Apache::lonfeedback::list_discussion($mode,undef,$ressymb,\%extras); |
|
} |
|
$imsresources .= ' </resource>'."\n"; |
} |
} |
$imsresources .= ' </resource>'."\n"; |
|
} |
} |
|
$pkgdepth = $depth; |
|
} else { |
|
$included = 0; |
} |
} |
$pkgdepth = $depth; |
|
} |
} |
} |
} |
while ($pkgdepth > -1) { |
while ($pkgdepth > 0) { |
print $ims_manifest " </item>\n"; |
print $ims_manifest " </item>\n"; |
$pkgdepth --; |
$pkgdepth --; |
} |
} |
Line 602 sub build_package {
|
Line 651 sub build_package {
|
sub get_dependencies { |
sub get_dependencies { |
my ($exportitems,$parent,$depth,$dependencies) = @_; |
my ($exportitems,$parent,$depth,$dependencies) = @_; |
if ($depth > 1) { |
if ($depth > 1) { |
unless (grep/^$$parent{$depth}$/,@$exportitems || grep/^$$parent{$depth}$/,@$dependencies) { |
if ((!grep/^$$parent{$depth}$/,@$exportitems) && (!grep/^$$parent{$depth}$/,@$dependencies)) { |
push @$dependencies, $$parent{$depth}; |
push @$dependencies, $$parent{$depth}; |
if ($depth > 2) { |
if ($depth > 2) { |
&get_dependencies($exportitems,$parent,$depth-1,$dependencies); |
&get_dependencies($exportitems,$parent,$depth-1,$dependencies); |
Line 616 sub process_content {
|
Line 665 sub process_content {
|
my $content_type; |
my $content_type; |
my $message; |
my $message; |
# find where user is author or co-author |
# find where user is author or co-author |
my %roleshash = &Appache::lonnet::get_my_roles(); |
my @uploads = (); |
if ($curRes->is_page()) { |
if ($curRes->is_sequence()) { |
$content_type = 'page'; |
$content_type = 'sequence'; |
|
} elsif ($curRes->is_page()) { |
|
$content_type = 'page'; # need to handle individual items in pages. |
} elsif ($symb =~ m-public/$cdom/$cnum/syllabus$-) { |
} elsif ($symb =~ m-public/$cdom/$cnum/syllabus$-) { |
$content_type = 'syllabus'; |
$content_type = 'syllabus'; |
} elsif ($symb =~ m-\.sequence____\d+____ext-) { |
my $contents = &Apache::imsexport::templatedpage($content_type); |
|
if ($contents) { |
|
$$content_file = &store_template($contents,$tempexport,$count,$content_type); |
|
} |
|
} elsif ($symb =~ m-\.sequence___\d+___ext-) { |
$content_type = 'external'; |
$content_type = 'external'; |
|
my $title = $curRes->title; |
|
my $contents = &Apache::imsexport::external($symb,$title); |
|
if ($contents) { |
|
$$content_file = &store_template($contents,$tempexport,$count,$content_type); |
|
} |
} elsif ($symb =~ m-adm/navmaps$-) { |
} elsif ($symb =~ m-adm/navmaps$-) { |
$content_type = 'navmap'; |
$content_type = 'navmap'; |
} elsif ($symb =~ m-adm/$cdom/$cnum/\d+/smppg$-) { |
} elsif ($symb =~ m-adm/[^/]+/[^/]+/(\d+)/smppg$-) { |
$content_type = 'simplepage'; |
$content_type = 'simplepage'; |
} elsif ($symb =~ m-$-) { |
my $contents = &Apache::imsexport::templatedpage($content_type,$1,$count,\@uploads); |
|
if ($contents) { |
|
$$content_file = &store_template($contents,$tempexport,$count,$content_type); |
|
} |
|
} elsif ($symb =~ m-lib/templates/simpleproblem\.problem$-) { |
$content_type = 'simpleproblem'; |
$content_type = 'simpleproblem'; |
} elsif ($symb =~ m-adm/$cdom/$cnum/\d+/bulletinboard$-) { |
my $contents = &Apache::imsexport::simpleproblem($symb); |
|
if ($contents) { |
|
$$content_file = &store_template($contents,$tempexport,$count,$content_type); |
|
} |
|
} elsif ($symb =~ m-lib/templates/examupload\.problem-m) { |
|
$content_type = 'examupload'; |
|
} elsif ($symb =~ m-adm/(\w+)/(\w+)/(\d+)/bulletinboard$-) { |
$content_type = 'bulletinboard'; |
$content_type = 'bulletinboard'; |
} elsif ($symb =~ m-adm/$cdom/$cnum/\d+/aboutme$-) { |
my $contents = &Apache::imsexport::templatedpage($content_type,$3,$count,\@uploads,$1,$2); |
|
if ($contents) { |
|
$$content_file = &store_template($contents,$tempexport,$count,$content_type); |
|
} |
|
} elsif ($symb =~ m-adm/([^/]+)/([^/]+)/aboutme$-) { |
$content_type = 'aboutme'; |
$content_type = 'aboutme'; |
} elsif ($symb =~ m-uploaded/$cdom/$cnum-) { |
my $contents = &Apache::imsexport::templatedpage($content_type,undef,$count,\@uploads,$1,$2); |
&replicate_content($cdom,$cnum,$tempexport,$symb,$count,\$message,'uploaded'); |
if ($contents) { |
} elsif ($symb =~ m-\.sequence____\d+____([^/])/([^/])-) { |
$$content_file = &store_template($contents,$tempexport,$count,$content_type); |
my $coauth = $2.':'.$1.':ca'; |
} |
|
} elsif ($symb =~ m-\.(sequence|page)___\d+___uploaded/$cdom/$cnum/-) { |
|
$$content_file = &replicate_content($cdom,$cnum,$tempexport,$symb,$count,\$message,$href,'uploaded'); |
|
} elsif ($symb =~ m-\.(sequence|page)___\d+___([^/]+)/([^/]+)-) { |
my $canedit = 0; |
my $canedit = 0; |
if ($1 eq $ENV{'user.domain'} && $2 eq $ENV{'user.name'}) { |
if ($2 eq $ENV{'user.domain'} && $3 eq $ENV{'user.name'}) { |
$canedit= 1; |
$canedit= 1; |
} elsif (defined($roleshash{$coauth})) { |
|
if ($roleshash{$coauth} =~ /(\d+):(\d+)/) { |
|
if (($1 < time || $1 == 0) && ($2 == 0 || $2 >= time)) { |
|
$canedit = 1; |
|
} |
|
} elsif ($roleshash{$coauth} eq ':') { |
|
$canedit = 1; |
|
} |
|
} |
} |
if ($canedit) { |
if ($canedit) { |
&replicate_content($cdom,$cnum,$tempexport,$symb,$count,\$message,'resource'); |
$$content_file = &replicate_content($cdom,$cnum,$tempexport,$symb,$count,\$message,$href,'resource'); |
} else { |
} else { |
&replicate_content($cdom,$cnum,$tempexport,$symb,$count,\$message,'noedit'); |
$$content_file = &replicate_content($cdom,$cnum,$tempexport,$symb,$count,\$message,$href,'noedit'); |
|
} |
|
} elsif ($symb =~ m-uploaded/$cdom/$cnum-) { |
|
$$content_file = &replicate_content($cdom,$cnum,$tempexport,$symb,$count,\$message,$href,'uploaded'); |
|
} |
|
if (@uploads > 0) { |
|
foreach my $item (@uploads) { |
|
my $uploadmsg = ''; |
|
&replicate_content($cdom,$cnum,$tempexport,$item,$count,\$uploadmsg,$href,'templateupload'); |
|
if ($uploadmsg) { |
|
$$copyresult .= $uploadmsg."\n"; |
|
} |
} |
} |
} |
} |
$$copyresult .= $message."\n"; |
if ($message) { |
|
$$copyresult .= $message."\n"; |
|
} |
} |
} |
|
|
sub replicate_content { |
sub replicate_content { |
my ($cdom,$cnum,$tempexport,$symb,$count,$message,$caller) = @_; |
my ($cdom,$cnum,$tempexport,$symb,$count,$message,$href,$caller) = @_; |
my ($map,$ind,$url)=&Apache::lonnet::decode_symb($symb); |
my ($map,$ind,$url); |
my $feedurl = &Apache::lonnet::clutter($url); |
if ($caller eq 'templateupload') { |
|
$url = $symb; |
|
$url =~ s#//#/#g; |
|
} else { |
|
($map,$ind,$url)=&Apache::lonnet::decode_symb($symb); |
|
} |
my $content; |
my $content; |
my $filename; |
my $filename; |
my $repstatus; |
my $repstatus; |
if ($url =~ m-[^/]/(.+)$-) { |
my $content_name; |
|
if ($url =~ m-/([^/]+)$-) { |
$filename = $1; |
$filename = $1; |
if (!-e $tempexport.'/resources') { |
if (!-e $tempexport.'/resources') { |
mkdir($tempexport.'/resources',0700); |
mkdir($tempexport.'/resources',0700); |
} |
} |
if (!-e $tempexport.'/resources') { |
if (!-e $tempexport.'/resources/'.$count) { |
mkdir($tempexport.'/resources/'.$count,0700); |
mkdir($tempexport.'/resources/'.$count,0700); |
} |
} |
my $destination = $$tempexport.'/resources/'.$count.'/'.$filename; |
my $destination = $tempexport.'/resources/'.$count.'/'.$filename; |
my $copiedfile; |
my $copiedfile; |
if ($copiedfile = Apache::File->new('>'.$destination)) { |
if ($copiedfile = Apache::File->new('>'.$destination)) { |
my $content; |
my $content; |
if ($caller eq 'uploaded' || $caller eq 'resource') { |
if ($caller eq 'resource') { |
$content = &Apache::lonnet::getfile($url); |
$content = &Apache::lonnet::getfile('/home/httpd/html/res/'.$url); |
if ($content eq -1) { |
if ($content eq -1) { |
$$message = 'Could not copy file '.$filename; |
$$message = 'Could not copy file '.$filename; |
} else { |
} else { |
|
&extract_media($content,$count,$tempexport,$href,'resource'); |
$repstatus = 'ok'; |
$repstatus = 'ok'; |
} |
} |
} elsif ($caller eq 'noedit') { |
} elsif ($caller eq 'uploaded' || $caller eq 'templateupload') { |
my $rtncode; |
my $rtncode; |
$repstatus = &getuploaded('GET',$url,$cdom,$cnum,$content,$rtncode); |
$repstatus = &Apache::lonnet::getuploaded('GET',$url,$cdom,$cnum,\$content,$rtncode); |
unless ($repstatus eq 'ok') { |
if ($repstatus eq 'ok') { |
|
if ($url =~ /\.html?$/i) { |
|
&extract_media(\$content,$count,$tempexport,$href,'uploaded'); |
|
} |
|
} else { |
$$message = 'Could not render '.$url.' server message - '.$rtncode; |
$$message = 'Could not render '.$url.' server message - '.$rtncode; |
} |
} |
|
} elsif ($caller eq 'noedit') { |
|
# Need to render the resource without the LON-CAPA Internal header and the Post discussion footer, and then set $content equal to this. |
|
$repstatus = 'ok'; |
|
$content = 'Not the owner of this resource'; |
} |
} |
if ($repstatus eq 'ok') { |
if ($repstatus eq 'ok') { |
print $copiedfile $content; |
print $copiedfile $content; |
Line 700 sub replicate_content {
|
Line 796 sub replicate_content {
|
$$message = 'Could not open destination file for '.$filename."\n"; |
$$message = 'Could not open destination file for '.$filename."\n"; |
} |
} |
} else { |
} else { |
$$message = 'Could not determine name of file for '; |
$$message = 'Could not determine name of file for '.$symb."\n"; |
|
} |
|
if ($repstatus eq 'ok') { |
|
$content_name = $count.'/'.$filename; |
|
} |
|
return $content_name; |
|
} |
|
|
|
sub extract_media { |
|
my ($content,$count,$tempexport,$href,$caller) = @_; |
|
# @$href will contain path to any embedded resources in the content. |
|
# For LON-CAPA problems this would be images. applets etc. |
|
# For uploaded HTML files this would be images etc. |
|
# paths will be in the form $count/res/$file, and urls in the $content will be rewritten with the new paths. |
|
return; |
|
} |
|
|
|
sub store_template { |
|
my ($contents,$tempexport,$count,$content_type) = @_; |
|
if ($contents) { |
|
if ($tempexport) { |
|
if (!-e $tempexport.'/resources') { |
|
mkdir($tempexport.'/resources',0700); |
|
} |
|
if (!-e $tempexport.'/resources/'.$count) { |
|
mkdir($tempexport.'/resources/'.$count,0700); |
|
} |
|
my $destination = $tempexport.'/resources/'.$count.'/'.$content_type.'.xml'; |
|
my $storetemplate; |
|
if ($storetemplate = Apache::File->new('>'.$destination)) { |
|
print $storetemplate $contents; |
|
close($storetemplate); |
|
} |
|
if ($content_type eq 'external') { |
|
return $count.'/'.$content_type.'.html'; |
|
} else { |
|
return $count.'/'.$content_type.'.xml'; |
|
} |
|
} |
} |
} |
return $repstatus; |
|
} |
} |
|
|
# Imports the given (name, url) resources into the course |
# Imports the given (name, url) resources into the course |
Line 873 sub editor {
|
Line 1006 sub editor {
|
if ( ($folder=~/^$1/) || ($1 eq 'default') ) { |
if ( ($folder=~/^$1/) || ($1 eq 'default') ) { |
# 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 $url=&Apache::lonnet::userfileupload('uploaddoc',1,'docs'); |
my $newidx=$#Apache::lonratedt::resources+1; |
|
my $url=&Apache::lonnet::userfileupload('uploaddoc',1,'docs/'.$newidx); |
my $ext='false'; |
my $ext='false'; |
if ($url=~/^http\:\/\//) { $ext='true'; } |
if ($url=~/^http\:\/\//) { $ext='true'; } |
$url=~s/\:/\:/g; |
$url=~s/\:/\:/g; |
Line 885 sub editor {
|
Line 1019 sub editor {
|
$comment=time.'___&&&___'.$ENV{'user.name'}.'___&&&___'. |
$comment=time.'___&&&___'.$ENV{'user.name'}.'___&&&___'. |
$ENV{'user.domain'}.'___&&&___'.$comment; |
$ENV{'user.domain'}.'___&&&___'.$comment; |
} |
} |
my $newidx=$#Apache::lonratedt::resources+1; |
|
$Apache::lonratedt::resources[$newidx]= |
$Apache::lonratedt::resources[$newidx]= |
$comment.':'.$url.':'.$ext.':normal:res'; |
$comment.':'.$url.':'.$ext.':normal:res'; |
$Apache::lonratedt::order[$#Apache::lonratedt::order+1]= |
$Apache::lonratedt::order[$#Apache::lonratedt::order+1]= |
Line 989 sub editor {
|
Line 1122 sub editor {
|
# ---------------------------------------------------------------- End commands |
# ---------------------------------------------------------------- End commands |
# ---------------------------------------------------------------- Print screen |
# ---------------------------------------------------------------- Print screen |
my $idx=0; |
my $idx=0; |
|
my $shown=0; |
$r->print('<table>'); |
$r->print('<table>'); |
foreach (@Apache::lonratedt::order) { |
foreach (@Apache::lonratedt::order) { |
my ($name,$url)=split(/\:/,$Apache::lonratedt::resources[$_]); |
my ($name,$url)=split(/\:/,$Apache::lonratedt::resources[$_]); |
unless ($name) { $name=(split(/\//,$url))[-1]; } |
unless ($name) { $name=(split(/\//,$url))[-1]; } |
unless ($name) { next; } |
unless ($name) { $idx++; next; } |
$r->print(&entryline($idx,$name,$url,$folder,$allowed,$_,$coursenum)); |
$r->print(&entryline($idx,$name,$url,$folder,$allowed,$_,$coursenum)); |
$idx++; |
$idx++; |
|
$shown++; |
} |
} |
unless ($idx) { |
unless ($shown) { |
$r->print('<tr><td>'.&mt('Currently no documents.').'</td></tr>'); |
$r->print('<tr><td>'.&mt('Currently no documents.').'</td></tr>'); |
} |
} |
$r->print('</table>'); |
$r->print('</table>'); |
Line 1032 sub entryline {
|
Line 1167 sub entryline {
|
$folderpath=&Apache::lonnet::escape($ENV{'form.folderpath'}); |
$folderpath=&Apache::lonnet::escape($ENV{'form.folderpath'}); |
# $htmlfoldername=&HTML::Entities::encode($ENV{'form.foldername'},'<>&"'); |
# $htmlfoldername=&HTML::Entities::encode($ENV{'form.foldername'},'<>&"'); |
} |
} |
my $pagepath; |
my ($pagepath,$pagesymb); |
if ($ENV{'form.pagepath'}) { |
if ($ENV{'form.pagepath'}) { |
$container = 'page'; |
$container = 'page'; |
$pagepath=&Apache::lonnet::escape($ENV{'form.pagepath'}); |
$pagepath=&Apache::lonnet::escape($ENV{'form.pagepath'}); |
|
$pagesymb=&Apache::lonnet::escape($ENV{'form.pagesymb'}); |
} |
} |
if ($allowed) { |
if ($allowed) { |
my $incindex=$index+1; |
my $incindex=$index+1; |
Line 1062 sub entryline {
|
Line 1198 sub entryline {
|
$line.=(<<END); |
$line.=(<<END); |
<form name="entry_$index" action="/adm/coursedocs" method="post"> |
<form name="entry_$index" action="/adm/coursedocs" method="post"> |
<input type="hidden" name="pagepath" value="$ENV{'form.pagepath'}" /> |
<input type="hidden" name="pagepath" value="$ENV{'form.pagepath'}" /> |
|
<input type="hidden" name="pagesymb" value="$ENV{'form.pagesymb'}" /> |
<input type="hidden" name="setparms" value="$orderidx" /> |
<input type="hidden" name="setparms" value="$orderidx" /> |
<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'> |
<a href='/adm/coursedocs?cmd=up_$index&pagepath=$pagepath&pagesymb=$pagesymb'> |
<img src="${iconpath}move_up.gif" alt='$lt{'up'}' border='0' /></a></td></tr> |
<img src="${iconpath}move_up.gif" alt='$lt{'up'}' border='0' /></a></td></tr> |
<tr><td bgcolor="#DDDDDD"> |
<tr><td bgcolor="#DDDDDD"> |
<a href='/adm/coursedocs?cmd=down_$index&pagepath=$pagepath'> |
<a href='/adm/coursedocs?cmd=down_$index&pagepath=$pagepath&pagesymb=$pagesymb'> |
<img src="${iconpath}move_down.gif" alt='$lt{'dw'}' border='0' /></a></td></tr> |
<img src="${iconpath}move_down.gif" alt='$lt{'dw'}' border='0' /></a></td></tr> |
</table></td> |
</table></td> |
<td>$selectbox |
<td>$selectbox |
</td><td bgcolor="#DDDDDD"> |
</td><td bgcolor="#DDDDDD"> |
<a href='javascript:removeres("$pagepath","$index","$renametitle","page");'> |
<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:changename("$pagepath","$index","$renametitle","page");'> |
<a href='javascript:changename("$pagepath","$index","$renametitle","page","$pagesymb");'> |
<font size="-2" color="#009900">$lt{'rn'}</font></a></td> |
<font size="-2" color="#009900">$lt{'rn'}</font></a></td> |
END |
END |
} else { |
} else { |
Line 1147 END
|
Line 1284 END
|
} elsif ($url!~/\.(sequence|page)$/) { |
} elsif ($url!~/\.(sequence|page)$/) { |
$url='/adm/coursedocs/showdoc'.$url; |
$url='/adm/coursedocs/showdoc'.$url; |
} |
} |
|
} elsif ($url=~m|^/ext/|) { |
|
$url='/adm/wrapper'.$url; |
} |
} |
unless ($container eq 'page') { |
$url.=(($url=~/\?/)?'&':'?').'symb='.&Apache::lonnet::escape($symb); |
|
if ($container eq 'page') { |
|
my $symb=$ENV{'form.pagesymb'}; |
|
|
|
$url=&Apache::lonnet::clutter((&Apache::lonnet::decode_symb($symb))[2]); |
$url.=(($url=~/\?/)?'&':'?').'symb='.&Apache::lonnet::escape($symb); |
$url.=(($url=~/\?/)?'&':'?').'symb='.&Apache::lonnet::escape($symb); |
} |
} |
} |
} |
my $parameterset=' '; |
my $parameterset=' '; |
if ($isfolder) { |
if ($isfolder) { |
Line 1159 END
|
Line 1302 END
|
if ($folderpath) { $folderpath.='&' }; |
if ($folderpath) { $folderpath.='&' }; |
$folderpath.=$folderarg.'&'.$foldername; |
$folderpath.=$folderarg.'&'.$foldername; |
$url.='folderpath='.&Apache::lonnet::escape($folderpath); |
$url.='folderpath='.&Apache::lonnet::escape($folderpath); |
$parameterset=&mt('Randomly Pick: '). |
$parameterset='<label>'.&mt('Randomly Pick: '). |
'<input type="text" size="4" name="randpick_'.$orderidx.'" value="'. |
'<input type="text" size="4" onChange="this.form.submit()" name="randpick_'.$orderidx.'" value="'. |
(&Apache::lonratedt::getparameter($orderidx,'parameter_randompick'))[0].'" />'; |
(&Apache::lonratedt::getparameter($orderidx, |
|
'parameter_randompick'))[0]. |
|
'" />'. |
|
'<font size="-2"><a href="javascript:void(0)">'.&mt('Store').'</a></font></label>'; |
|
|
} |
} |
if ($ispage) { |
if ($ispage) { |
my $pagename=&Apache::lonnet::escape($pagetitle); |
my $pagename=&Apache::lonnet::escape($pagetitle); |
Line 1169 END
|
Line 1316 END
|
my $folderpath=$ENV{'form.folderpath'}; |
my $folderpath=$ENV{'form.folderpath'}; |
if ($folderpath) { $pagepath = $folderpath.'&' }; |
if ($folderpath) { $pagepath = $folderpath.'&' }; |
$pagepath.=$pagearg.'&'.$pagename; |
$pagepath.=$pagearg.'&'.$pagename; |
$url.='pagepath='.&Apache::lonnet::escape($pagepath); |
my $symb=$ENV{'form.pagesymb'}; |
|
if (!$symb) { |
|
my $path='uploaded/'. |
|
$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}.'/'. |
|
$ENV{'course.'.$ENV{'request.course.id'}.'.num'}.'/'; |
|
$symb=&Apache::lonnet::encode_symb($path.$folder.'.sequence', |
|
$residx, |
|
$path.$pagearg.'.page'); |
|
} |
|
$url.='pagepath='.&Apache::lonnet::escape($pagepath). |
|
'&pagesymb='.&Apache::lonnet::escape($symb); |
} |
} |
$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>'. |
Line 1177 END
|
Line 1334 END
|
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'); |
'sp' => 'Store Parameters'); |
|
my $enctext= |
my $enctext= |
((&Apache::lonratedt::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i?' checked="1"':''); |
((&Apache::lonratedt::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i?' checked="1"':''); |
my $hidtext= |
my $hidtext= |
((&Apache::lonratedt::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i?' checked="1"':''); |
((&Apache::lonratedt::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'> |
<input type="checkbox" name="hidprs_$orderidx" $hidtext/> $lt{'hd'}</td> |
<nobr><label><input type="checkbox" name="hidprs_$orderidx" onClick="this.form.submit()" $hidtext /> $lt{'hd'}</label></nobr></td> |
<!--<td bgcolor="#BBBBFF"><font size='-2'> |
|
<input type="checkbox" name="encprs_$orderidx" $enctext/> $lt{'ec'}</td>--> |
|
<td bgcolor="#BBBBFF"><font size="-2">$parameterset</font></td> |
|
<td bgcolor="#BBBBFF"><font size='-2'> |
<td bgcolor="#BBBBFF"><font size='-2'> |
<input type="submit" value="$lt{'sp'}" /> |
<nobr><label><input type="checkbox" name="encprs_$orderidx" onClick="this.form.submit()" $enctext /> $lt{'ec'}</label></nobr></td> |
</font></td> |
<td bgcolor="#BBBBFF"><font size="-2">$parameterset</font></td> |
ENDPARMS |
ENDPARMS |
} |
} |
$line.="</form></tr>"; |
$line.="</form></tr>"; |
Line 1600 sub is_hash_old {
|
Line 1753 sub is_hash_old {
|
sub changewarning { |
sub changewarning { |
my ($r,$postexec)=@_; |
my ($r,$postexec)=@_; |
if (!&is_hash_old()) { return; } |
if (!&is_hash_old()) { return; } |
|
my $pathvar='folderpath'; |
|
my $path=&Apache::lonnet::escape($ENV{'form.folderpath'}); |
|
if (defined($ENV{'form.pagepath'})) { |
|
$pathvar='pagepath'; |
|
$path=&Apache::lonnet::escape($ENV{'form.pagepath'}); |
|
$path.='&symb='.&Apache::lonnet::escape($ENV{'form.pagesymb'}); |
|
} |
$r->print( |
$r->print( |
'<script>function reinit(tf) { tf.submit();'.$postexec.' }</script>'. |
'<script>function reinit(tf) { tf.submit();'.$postexec.' }</script>'. |
'<form method="post" action="/adm/roles" target="loncapaclient">'. |
'<form method="post" action="/adm/roles" target="loncapaclient">'. |
'<input type="hidden" name="orgurl" value="/adm/coursedocs?folderpath='. |
'<input type="hidden" name="orgurl" value="/adm/coursedocs?'. |
&Apache::lonnet::escape($ENV{'form.folderpath'}). |
$pathvar.'='.$path. |
'" /><input type="hidden" name="selectrole" value="1" /><h3><font color="red">'. |
'" /><input type="hidden" name="selectrole" value="1" /><h3><font color="red">'. |
&mt('Changes will become active for your current session after'). |
&mt('Changes will become active for your current session after'). |
' <input type="hidden" name="'. |
' <input type="hidden" name="'. |
Line 1654 sub handler {
|
Line 1814 sub handler {
|
# is this a standard course? |
# is this a standard course? |
|
|
my $standard=($ENV{'request.course.uri'}=~/^\/uploaded\//); |
my $standard=($ENV{'request.course.uri'}=~/^\/uploaded\//); |
my $forcestandard; |
my $forcestandard = 0; |
my $forcesupplement; |
my $forcesupplement; |
my $script=''; |
my $script=''; |
my $allowed; |
my $allowed; |
Line 1663 sub handler {
|
Line 1823 sub handler {
|
my $containertag; |
my $containertag; |
my $uploadtag; |
my $uploadtag; |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
['folderpath','pagepath']); |
['folderpath','pagepath','pagesymb']); |
if ($ENV{'form.folderpath'}) { |
if ($ENV{'form.folderpath'}) { |
my (@folderpath)=split('&',$ENV{'form.folderpath'}); |
my (@folderpath)=split('&',$ENV{'form.folderpath'}); |
$ENV{'form.foldername'}=&Apache::lonnet::unescape(pop(@folderpath)); |
$ENV{'form.foldername'}=&Apache::lonnet::unescape(pop(@folderpath)); |
Line 1673 sub handler {
|
Line 1833 sub handler {
|
my (@pagepath)=split('&',$ENV{'form.pagepath'}); |
my (@pagepath)=split('&',$ENV{'form.pagepath'}); |
$ENV{'form.pagename'}=&Apache::lonnet::unescape(pop(@pagepath)); |
$ENV{'form.pagename'}=&Apache::lonnet::unescape(pop(@pagepath)); |
$ENV{'form.folder'}=pop(@pagepath); |
$ENV{'form.folder'}=pop(@pagepath); |
$containertag = '<input type="hidden" name="pagepath" value="" />'; |
$containertag = '<input type="hidden" name="pagepath" value="" />'. |
$uploadtag = '<input type="hidden" name="pagepath" value="'.$ENV{'form.pagepath'}.'" />'; |
'<input type="hidden" name="pagesymb" value="" />'; |
|
$uploadtag = '<input type="hidden" name="pagepath" value="'.$ENV{'form.pagepath'}.'" />'. |
|
'<input type="hidden" name="pagesymb" value="'.$ENV{'form.pagesymb'}.'" />'; |
} |
} |
if ($r->uri=~/^\/adm\/coursedocs\/showdoc\/(.*)$/) { |
if ($r->uri=~/^\/adm\/coursedocs\/showdoc\/(.*)$/) { |
$showdoc='/'.$1; |
$showdoc='/'.$1; |
} |
} |
unless ($showdoc) { # got called from remote |
unless ($showdoc) { # got called from remote |
$forcestandard=($ENV{'form.folder'}=~/^default_/); |
if (($ENV{'form.folder'}=~/^default_/) || |
|
($ENV{'form.folder'} =~ m#^\d+/(pages|sequences)/#)) { |
|
$forcestandard = 1; |
|
} |
$forcesupplement=($ENV{'form.folder'}=~/^supplemental_/); |
$forcesupplement=($ENV{'form.folder'}=~/^supplemental_/); |
|
|
# does this user have privileges to post, etc? |
# does this user have privileges to post, etc? |
Line 1792 function makeabout() {
|
Line 1957 function makeabout() {
|
this.document.forms.newaboutsomeone.importdetail.value= |
this.document.forms.newaboutsomeone.importdetail.value= |
'About '+user+'=/adm/'+comp[1]+'/'+comp[0]+'/aboutme'; |
'About '+user+'=/adm/'+comp[1]+'/'+comp[0]+'/aboutme'; |
this.document.forms.newaboutsomeone.submit(); |
this.document.forms.newaboutsomeone.submit(); |
} |
} else { |
|
alert("Not a valid user\@domain"); |
|
} |
|
} else { |
|
alert("Please enter both user and domain in the format user\@domain"); |
} |
} |
} |
} |
} |
} |
|
|
function makeims() { |
function makeims() { |
var caller = document.forms.ims.folder.value |
var caller = document.forms.ims.folder.value; |
var newlocation = "/adm/imsimportdocs?folder="+caller+"&phase=one" |
var newlocation = "/adm/imsimportdocs?folder="+caller+"&phase=one"; |
newWindow = window.open("","IMSimport","HEIGHT=700,WIDTH=750,scrollbars=yes") |
newWindow = window.open("","IMSimport","HEIGHT=700,WIDTH=750,scrollbars=yes"); |
newWindow.location.href = newlocation |
newWindow.location.href = newlocation; |
} |
} |
|
|
|
|
Line 1814 function finishpick() {
|
Line 1983 function finishpick() {
|
'";this.document.forms.'+form+'.submit();'); |
'";this.document.forms.'+form+'.submit();'); |
} |
} |
|
|
function changename(folderpath,index,oldtitle,container) { |
function changename(folderpath,index,oldtitle,container,pagesymb) { |
var title=prompt('New Title',oldtitle); |
var title=prompt('New Title',oldtitle); |
if (title) { |
if (title) { |
this.document.forms.renameform.title.value=title; |
this.document.forms.renameform.title.value=title; |
Line 1824 function changename(folderpath,index,old
|
Line 1993 function changename(folderpath,index,old
|
} |
} |
if (container == 'page') { |
if (container == 'page') { |
this.document.forms.renameform.pagepath.value=folderpath; |
this.document.forms.renameform.pagepath.value=folderpath; |
|
this.document.forms.renameform.pagesymb.value=pagesymb; |
} |
} |
this.document.forms.renameform.submit(); |
this.document.forms.renameform.submit(); |
} |
} |
} |
} |
|
|
function removeres(folderpath,index,oldtitle,container) { |
function removeres(folderpath,index,oldtitle,container,pagesymb) { |
if (confirm('Remove "'+oldtitle+'"?')) { |
if (confirm('Remove "'+oldtitle+'"?')) { |
this.document.forms.renameform.cmd.value='del_'+index; |
this.document.forms.renameform.cmd.value='del_'+index; |
if (container == 'sequence') { |
if (container == 'sequence') { |
Line 1837 function removeres(folderpath,index,oldt
|
Line 2007 function removeres(folderpath,index,oldt
|
} |
} |
if (container == 'page') { |
if (container == 'page') { |
this.document.forms.renameform.pagepath.value=folderpath; |
this.document.forms.renameform.pagepath.value=folderpath; |
|
this.document.forms.renameform.pagesymb.value=pagesymb; |
} |
} |
this.document.forms.renameform.submit(); |
this.document.forms.renameform.submit(); |
} |
} |