version 1.349, 2009/03/01 19:38:13
|
version 1.411.2.7, 2010/12/05 16:40:11
|
Line 35 use Apache::Constants qw(:common :http);
|
Line 35 use Apache::Constants qw(:common :http);
|
use Apache::imsexport; |
use Apache::imsexport; |
use Apache::lonnet; |
use Apache::lonnet; |
use Apache::loncommon; |
use Apache::loncommon; |
|
use Apache::lonhtmlcommon; |
use LONCAPA::map(); |
use LONCAPA::map(); |
use Apache::lonratedt(); |
use Apache::lonratedt(); |
use Apache::lonxml; |
use Apache::lonxml; |
use Apache::lonclonecourse; |
use Apache::lonclonecourse; |
use Apache::lonnavmaps; |
use Apache::lonnavmaps; |
|
use Apache::londocsgci; |
use HTML::Entities; |
use HTML::Entities; |
use GDBM_File; |
use GDBM_File; |
use Apache::lonlocal; |
use Apache::lonlocal; |
Line 72 sub storemap {
|
Line 74 sub storemap {
|
&LONCAPA::map::storemap('/uploaded/'.$coursedom.'/'.$coursenum.'/'. |
&LONCAPA::map::storemap('/uploaded/'.$coursedom.'/'.$coursenum.'/'. |
$map,1); |
$map,1); |
if ($errtext) { return ($errtext,2); } |
if ($errtext) { return ($errtext,2); } |
|
|
$hadchanges=1; |
$hadchanges=1; |
return ($errtext,0); |
return ($errtext,0); |
} |
} |
Line 116 sub authorhosts {
|
Line 118 sub authorhosts {
|
|
|
sub dumpbutton { |
sub dumpbutton { |
my ($home,$other,%outhash)=&authorhosts(); |
my ($home,$other,%outhash)=&authorhosts(); |
my $type = &Apache::loncommon::course_type(); |
my $crstype = &Apache::loncommon::course_type(); |
if ($home+$other==0) { return ''; } |
if ($home+$other==0) { return ''; } |
if ($home) { |
if ($home) { |
return '<input type="submit" name="dumpcourse" value="'. |
my $link = "<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"dumpcourse\", \"".&mt('Dump '.$crstype.' DOCS to Construction Space')."\")'>".&mt('Dump '.$crstype.' DOCS to Construction Space')."</a>"; |
&mt('Dump '.$type.' DOCS to Construction Space').'" />'. |
return $link.' '. |
&Apache::loncommon::help_open_topic('Docs_Dump_Course_Docs'); |
&Apache::loncommon::help_open_topic('Docs_Dump_Course_Docs').'<br />'; |
} else { |
} else { |
return '<div>'. |
return '<div>'. |
&mt('Dump '.$type. |
&mt('Dump '.$crstype. |
' DOCS to Construction Space: available on other servers'). |
' DOCS to Construction Space: available on other servers'). |
'</div>'; |
'</div>'; |
} |
} |
Line 140 sub clean {
|
Line 142 sub clean {
|
|
|
sub dumpcourse { |
sub dumpcourse { |
my ($r) = @_; |
my ($r) = @_; |
my $type = &Apache::loncommon::course_type(); |
my $crstype = &Apache::loncommon::course_type(); |
$r->print(&Apache::loncommon::start_page('Dump '.$type.' DOCS to Construction Space'). |
$r->print(&Apache::loncommon::start_page('Dump '.$crstype.' DOCS to Construction Space'). |
'<form name="dumpdoc" method="post">'); |
'<form name="dumpdoc" action="" method="post">'); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Dump '.$type.' DOCS to Construction Space')); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Dump '.$crstype.' 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 254 sub dumpcourse {
|
Line 256 sub dumpcourse {
|
$r->print(&Apache::loncommon::end_data_table()); |
$r->print(&Apache::loncommon::end_data_table()); |
&untiehash(); |
&untiehash(); |
$r->print( |
$r->print( |
'<p><input type="submit" name="dumpcourse" value="'.&mt("Dump $type DOCS").'" /></p></form>'); |
'<p><input type="submit" name="dumpcourse" value="'.&mt("Dump $crstype DOCS").'" /></p></form>'); |
} |
} |
} |
} |
|
|
|
|
|
|
sub exportbutton { |
sub exportbutton { |
my $type = &Apache::loncommon::course_type(); |
my $crstype = &Apache::loncommon::course_type(); |
return '<input type="submit" name="exportcourse" value="'. |
return "<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"exportcourse\", \"".&mt('IMS Export')."\")'>".&mt('IMS Export')."</a>". |
&mt('Export '.$type.' to IMS').'" />'. |
&Apache::loncommon::help_open_topic('Docs_Export_Course_Docs').'<br />'; |
&Apache::loncommon::help_open_topic('Docs_Export_Course_Docs'); |
|
} |
} |
|
|
|
|
|
|
sub exportcourse { |
sub exportcourse { |
my $r=shift; |
my $r=shift; |
my $type = &Apache::loncommon::course_type(); |
my $crstype = &Apache::loncommon::course_type(); |
my %discussiontime = &Apache::lonnet::dump('discussiontimes', |
my %discussiontime = &Apache::lonnet::dump('discussiontimes', |
$env{'course.'.$env{'request.course.id'}.'.domain'}, $env{'course.'.$env{'request.course.id'}.'.num'}); |
$env{'course.'.$env{'request.course.id'}.'.domain'}, $env{'course.'.$env{'request.course.id'}.'.num'}); |
my $numdisc = keys(%discussiontime); |
my $numdisc = keys(%discussiontime); |
my $navmap = Apache::lonnavmaps::navmap->new(); |
my $navmap = Apache::lonnavmaps::navmap->new(); |
if (!defined($navmap)) { |
if (!defined($navmap)) { |
$r->print(&Apache::loncommon::start_page('Export '.lc($type).' to IMS content package'). |
$r->print(&Apache::loncommon::start_page('Export '.$crstype.' to IMS Package'). |
'<h2>IMS Export Failed</h2>'. |
'<h2>'.&mt('IMS Export Failed').'</h2>'. |
'<div class="LC_error">'. |
'<div class="LC_error">'); |
&mt('Unable to retrieve information about course contents'). |
if ($crstype eq 'Community') { |
'</div><a href="/adm/coursedocs">'.&mt('Return to Course Editor').'</a>'); |
$r->print(&mt('Unable to retrieve information about community contents')); |
&Apache::lonnet::logthis('IMS export failed - could not create navmap object in '.lc($type).':'.$env{'request.course.id'}); |
} else { |
|
$r->print(&mt('Unable to retrieve information about course contents')); |
|
} |
|
$r->print('</div><a href="/adm/coursedocs">'); |
|
if ($crstype eq 'Community') { |
|
$r->print(&mt('Return to Community Editor')); |
|
} else { |
|
$r->print(&mt('Return to Course Editor')); |
|
} |
|
$r->print('</a>'); |
|
&Apache::lonnet::logthis('IMS export failed - could not create navmap object in '.lc($crstype).':'.$env{'request.course.id'}); |
return; |
return; |
} |
} |
my $it=$navmap->getIterator(undef,undef,undef,1,undef,undef); |
my $it=$navmap->getIterator(undef,undef,undef,1,undef,undef); |
Line 298 sub exportcourse {
|
Line 309 sub exportcourse {
|
my @exportitems = &Apache::loncommon::get_env_multiple('form.archive'); |
my @exportitems = &Apache::loncommon::get_env_multiple('form.archive'); |
my @discussions = &Apache::loncommon::get_env_multiple('form.discussion'); |
my @discussions = &Apache::loncommon::get_env_multiple('form.discussion'); |
if (@exportitems == 0 && @discussions == 0) { |
if (@exportitems == 0 && @discussions == 0) { |
$outcome = '<br />As you did not select any content items or discussions for export, an IMS package has not been created. Please <a href="javascript:history.go(-1)">go back</a> to select either content items or discussions for export'; |
$outcome = |
|
'<p class="LC_warning">' |
|
.&mt('As you did not select any content items or discussions' |
|
.' for export, an IMS package has not been created.') |
|
.'</p>' |
|
.'<p>' |
|
.&mt('Please [_1]go back[_2] to select either content items' |
|
.' or discussions for export.' |
|
,'<a href="javascript:history.go(-1)">' |
|
,'</a>') |
|
.'</p>'; |
} else { |
} else { |
my $now = time; |
my $now = time; |
my %symbs; |
my %symbs; |
Line 321 sub exportcourse {
|
Line 342 sub exportcourse {
|
open(OUTPUT, "zip -r $imszip * 2> /dev/null |"); |
open(OUTPUT, "zip -r $imszip * 2> /dev/null |"); |
close(OUTPUT); |
close(OUTPUT); |
chdir $cwd; |
chdir $cwd; |
$outcome .= &mt('Download the zip file from <a href="[_1]">IMS '.lc($type).' archive</a><br />',$imszipfile,); |
|
if ($copyresult) { |
if ($copyresult) { |
$outcome .= &mt('The following errors occurred during export - [_1]',$copyresult); |
$outcome .= '<p class="LC_error">' |
|
.&mt('The following errors occurred during export - [_1]' |
|
,$copyresult) |
|
.'</p>'; |
} |
} |
|
$outcome .= '<p>' |
|
.&mt('[_1]Your IMS package[_2] is ready for download.' |
|
,'<a href="'.$imszipfile.'">','</a>') |
|
.'</p>'; |
} else { |
} else { |
$outcome = '<br />'.&mt('Unfortunately you will not be able to retrieve an IMS archive of this posts at this time, because there was a problem creating a manifest file.').'<br />'; |
$outcome = '<p class="LC_error">' |
|
.&mt('Unfortunately you will not be able to retrieve' |
|
.' an IMS archive of this posts at this time,' |
|
.' because there was a problem creating a' |
|
.' manifest file.') |
|
.'</p>' |
|
.'<p><a href="javascript:history.go(-1)">' |
|
.&mt('Go Back') |
|
.'</a></p>'; |
} |
} |
} |
} |
$r->print(&Apache::loncommon::start_page('Export '.lc($type).' to IMS content package')); |
$r->print(&Apache::loncommon::start_page('Export '.$crstype.' to IMS Package')); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Export '.lc($type).' to IMS content package')); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs('IMS Export')); |
$r->print($outcome); |
$r->print($outcome); |
$r->print(&Apache::loncommon::end_page()); |
$r->print(&Apache::loncommon::end_page()); |
} else { |
} else { |
my $display; |
my $display; |
$display = '<form name="exportdoc" method="post">'."\n"; |
$display = '<form name="exportdoc" action="" method="post">'."\n"; |
$display .= &mt('Choose which items you wish to export from your '.$type.'.<br /><br />'); |
$display .= '<p>' |
$display .= '<table border="0" cellspacing="0" cellpadding="3">'. |
.&mt('Choose which items you wish to export from your '.$crstype.'.') |
'<tr><td><fieldset><legend> <b>Content items</b></legend>'. |
.'</p>'; |
'<input type="button" value="check all" '. |
$display .= '<div class="LC_columnSection"><fieldset>'. |
|
'<legend>'.&mt('Content items').'</legend>'. |
|
'<input type="button" value="'.&mt('check all').'" '. |
'onclick="javascript:checkAll(document.exportdoc.archive)" />'. |
'onclick="javascript:checkAll(document.exportdoc.archive)" />'. |
' <input type="button" value="uncheck all"'. |
' <input type="button" value="'.&mt('uncheck all').'"'. |
' onclick="javascript:uncheckAll(document.exportdoc.archive)" /></fieldset></td>'. |
' onclick="javascript:uncheckAll(document.exportdoc.archive)" /></fieldset>'. |
'<td> </td><td> </td>'. |
'<fieldset>'. |
'<td align="right"><fieldset><legend> <b>Discussion posts'. |
'<legend>'.&mt('Discussion posts').'</legend>'. |
'</b></legend><input type="button" value="check all"'. |
'<input type="button" value="'.&mt('check all').'"'. |
' onclick="javascript:checkAll(document.exportdoc.discussion)" />'. |
' onclick="javascript:checkAll(document.exportdoc.discussion)" />'. |
' <input type="button" value="uncheck all"'. |
' <input type="button" value="'.&mt('uncheck all').'"'. |
' onclick="javascript:uncheckAll(document.exportdoc.discussion)" /></fieldset></td>'. |
' onclick="javascript:uncheckAll(document.exportdoc.discussion)" />'. |
'</tr></table>'; |
'</fieldset></div>'; |
my $curRes; |
my $curRes; |
my $depth = 0; |
my $depth = 0; |
my $count = 0; |
my $count = 0; |
Line 358 sub exportcourse {
|
Line 395 sub exportcourse {
|
my %parent = (); |
my %parent = (); |
my %children = (); |
my %children = (); |
my $lastcontainer = $startcount; |
my $lastcontainer = $startcount; |
my @bgcolors = ('#F6F6F6','#FFFFFF'); |
$display .= &Apache::loncommon::start_data_table() |
$display .= '<table cellspacing="0"><tr>'. |
.&Apache::loncommon::start_data_table_header_row() |
'<td><b>Export content item?<br /></b></td><td> </td><td align="right">'."\n"; |
.'<th>'.&mt('Export content item?').'</th>' |
|
.'<th>'; |
if ($numdisc > 0) { |
if ($numdisc > 0) { |
$display.='<b>Export discussion posts?</b>'."\n"; |
$display .= &mt('Export discussion posts?'); |
|
} else { |
|
$display .= ' '; |
} |
} |
$display.=' </td></tr>'; |
$display .= '</th>' |
|
.&Apache::loncommon::end_data_table_header_row(); |
while ($curRes = $it->next()) { |
while ($curRes = $it->next()) { |
if (ref($curRes)) { |
if (ref($curRes)) { |
$count ++; |
$count ++; |
Line 385 sub exportcourse {
|
Line 426 sub exportcourse {
|
$ressymb = 'bulletin___'.$3.'___adm/wrapper/adm/'.$1.'/'.$2.'/'.$3.'/bulletinboard'; |
$ressymb = 'bulletin___'.$3.'___adm/wrapper/adm/'.$1.'/'.$2.'/'.$3.'/bulletinboard'; |
} |
} |
} |
} |
my $color = $count%2; |
$display .= &Apache::loncommon::start_data_table_row() |
$display .='<tr bgcolor='.$bgcolors[$color].'><td>'."\n". |
.'<td>'."\n" |
'<input type="checkbox" name="archive" value="'.$count.'" '; |
.'<input type="checkbox" name="archive" value="'.$count.'" '; |
if (($curRes->is_sequence()) || ($curRes->is_page())) { |
if (($curRes->is_sequence()) || ($curRes->is_page())) { |
my $checkitem = $count + $boards + $startcount; |
my $checkitem = $count + $boards + $startcount; |
$display .= 'onClick="javascript:propagateCheck('."'$checkitem'".')"'; |
$display .= 'onclick="javascript:propagateCheck('."'$checkitem'".')"'; |
} |
} |
$display .= ' />'."\n"; |
$display .= ' />'."\n"; |
for (my $i=0; $i<$depth; $i++) { |
for (my $i=0; $i<$depth; $i++) { |
$display .= '<img src="/adm/lonIcons/whitespace1.gif" class="LC_docs_spacer" /><img src="/adm/lonIcons/whitespace1.gif" class="LC_docs_spacer" />'."\n"; |
$display .= '<img src="/adm/lonIcons/whitespace1.gif" class="LC_docs_spacer" alt="" />' |
|
.'<img src="/adm/lonIcons/whitespace1.gif" class="LC_docs_spacer" alt="" />'."\n"; |
} |
} |
if ($curRes->is_sequence()) { |
if ($curRes->is_sequence()) { |
$display .= '<img src="/adm/lonIcons/navmap.folder.open.gif"> '."\n"; |
$display .= '<img src="/adm/lonIcons/navmap.folder.open.gif" alt="" /> '."\n"; |
$lastcontainer = $count + $startcount + $boards; |
$lastcontainer = $count + $startcount + $boards; |
} elsif ($curRes->is_page()) { |
} elsif ($curRes->is_page()) { |
$display .= '<img src="/adm/lonIcons/navmap.page.open.gif"> '."\n"; |
$display .= '<img src="/adm/lonIcons/navmap.page.open.gif" alt="" /> '."\n"; |
$lastcontainer = $count + $startcount + $boards; |
$lastcontainer = $count + $startcount + $boards; |
} |
} |
my $currelem = $count+$boards+$startcount; |
my $currelem = $count+$boards+$startcount; |
$children{$parent{$depth}} .= $currelem.':'; |
$children{$parent{$depth}} .= $currelem.':'; |
$display .= ' '.$curRes->title().'</td>'; |
$display .= ' '.$curRes->title().'</td>'."\n"; |
|
|
|
# Existing discussion posts? |
if ($discussiontime{$ressymb} > 0) { |
if ($discussiontime{$ressymb} > 0) { |
$boards ++; |
$boards ++; |
$currelem = $count+$boards+$startcount; |
$currelem = $count+$boards+$startcount; |
$display .= '<td> </td><td align="right"><input type="checkbox" name="discussion" value="'.$count.'" /> </td>'."\n"; |
$display .= '<td align="right">' |
|
.'<input type="checkbox" name="discussion" value="'.$count.'" />' |
|
.'</td>'."\n"; |
} else { |
} else { |
$display .= '<td colspan="2"> </td>'."\n"; |
$display .= '<td> </td>'."\n"; |
} |
} |
|
$display .= &Apache::loncommon::end_data_table_row(); |
} |
} |
} |
} |
|
$display .= &Apache::loncommon::end_data_table(); |
my $scripttag = qq| |
my $scripttag = qq| |
<script> |
<script type="text/javascript"> |
|
// <![CDATA[ |
function checkAll(field) { |
function checkAll(field) { |
if (field.length > 0) { |
if (field.length > 0) { |
for (i = 0; i < field.length; i++) { |
for (i = 0; i < field.length; i++) { |
Line 427 function checkAll(field) {
|
Line 475 function checkAll(field) {
|
field.checked = true |
field.checked = true |
} |
} |
} |
} |
|
|
function uncheckAll(field) { |
function uncheckAll(field) { |
if (field.length > 0) { |
if (field.length > 0) { |
for (i = 0; i < field.length; i++) { |
for (i = 0; i < field.length; i++) { |
Line 442 function propagateCheck(item) {
|
Line 490 function propagateCheck(item) {
|
if (document.exportdoc.elements[item].checked == true) { |
if (document.exportdoc.elements[item].checked == true) { |
containerCheck(item) |
containerCheck(item) |
} |
} |
} |
} |
|
|
function containerCheck(item) { |
function containerCheck(item) { |
document.exportdoc.elements[item].checked = true |
document.exportdoc.elements[item].checked = true |
Line 465 function containerCheck(item) {
|
Line 513 function containerCheck(item) {
|
for (var j=0; j<parents[item].length; j++) { |
for (var j=0; j<parents[item].length; j++) { |
containerCheck(parents[item][j]) |
containerCheck(parents[item][j]) |
} |
} |
} |
} |
} |
} |
|
// ]]> |
</script> |
</script> |
|; |
|; |
$r->print(&Apache::loncommon::start_page('Export '.lc($type).' to IMS content package', |
$r->print(&Apache::loncommon::start_page('Export '.$crstype.' to IMS Package', |
$scripttag)); |
$scripttag)); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Export '.lc($type).' to IMS content package')); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs('IMS Export')); |
$r->print($display.'</table>'. |
$r->print($display. |
'<p><input type="hidden" name="finishexport" value="1">'. |
'<p><input type="hidden" name="finishexport" value="1" />'. |
'<input type="submit" name="exportcourse" value="'. |
'<input type="submit" name="exportcourse" value="'. |
&mt('Export '.$type.' DOCS').'" /></p></form>'); |
&mt('Export').'" /></p></form>'); |
} |
} |
} |
} |
|
|
Line 859 sub extract_media {
|
Line 907 sub extract_media {
|
$repstatus = 'ok'; |
$repstatus = 'ok'; |
} |
} |
} elsif ($caller eq 'uploaded') { |
} elsif ($caller eq 'uploaded') { |
|
|
$repstatus = &Apache::lonnet::getuploaded('GET',$embed_url,$cdom,$cnum,\$embed_content,$rtncode); |
$repstatus = &Apache::lonnet::getuploaded('GET',$embed_url,$cdom,$cnum,\$embed_content,$rtncode); |
} |
} |
if ($repstatus eq 'ok') { |
if ($repstatus eq 'ok') { |
Line 924 sub group_import {
|
Line 972 sub group_import {
|
if (($url =~ m{^/uploaded/\Q$coursedom\E/\Q$coursenum\E/(default_\d+\.)(page|sequence)$}) |
if (($url =~ m{^/uploaded/\Q$coursedom\E/\Q$coursenum\E/(default_\d+\.)(page|sequence)$}) |
&& ($caller eq 'londocs') |
&& ($caller eq 'londocs') |
&& (!&Apache::lonnet::stat_file($url))) { |
&& (!&Apache::lonnet::stat_file($url))) { |
|
|
my $errtext = ''; |
my $errtext = ''; |
my $fatal = 0; |
my $fatal = 0; |
my $newmapstr = '<map>'."\n". |
my $newmapstr = '<map>'."\n". |
Line 961 sub group_import {
|
Line 1009 sub group_import {
|
} |
} |
|
|
sub breadcrumbs { |
sub breadcrumbs { |
my ($where,$allowed,$type)=@_; |
my ($allowed,$crstype)=@_; |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
my (@folders); |
my (@folders); |
if ($env{'form.pagepath'}) { |
if ($env{'form.pagepath'}) { |
Line 976 sub breadcrumbs {
|
Line 1024 sub breadcrumbs {
|
my $isencrypted=0; |
my $isencrypted=0; |
my $ishidden=0; |
my $ishidden=0; |
my $is_random_order=0; |
my $is_random_order=0; |
|
if (!$allowed) { |
|
my $description = $env{'course.'.$env{'request.course.id'}.'.description'}; |
|
&Apache::lonhtmlcommon::add_breadcrumb( |
|
{'href' => '/adm/menu', |
|
'title'=> 'Go to main menu', |
|
'text' => $description, |
|
}); |
|
$plain .= $description.' >'; |
|
} |
while (@folders) { |
while (@folders) { |
my $folder=shift(@folders); |
my $folder=shift(@folders); |
my $foldername=shift(@folders); |
my $foldername=shift(@folders); |
Line 995 sub breadcrumbs {
|
Line 1052 sub breadcrumbs {
|
if ($3) { $isencrypted=1; } |
if ($3) { $isencrypted=1; } |
if ($4 ne '') { $is_random_order = 1; } |
if ($4 ne '') { $is_random_order = 1; } |
if ($folder eq 'supplemental') { |
if ($folder eq 'supplemental') { |
if ($allowed) { |
$name = &mt('Supplemental '.$crstype.' Documents'); |
$name = &mt('Supplemental '.$type.' Documents'); |
|
} else { |
|
$name = &mt($type.' Documents'); |
|
} |
|
} |
} |
&Apache::lonhtmlcommon::add_breadcrumb( |
&Apache::lonhtmlcommon::add_breadcrumb( |
{'href'=>$url.$cpinfo, |
{'href'=>$url.$cpinfo, |
'title'=>$name, |
'title'=>$name, |
'text'=>'<font size="+1">'. |
'text'=>$name, |
$name.'</font>', |
|
'no_mt'=>1, |
'no_mt'=>1, |
}); |
}); |
$plain.=$name.' > '; |
$plain.=$name.' > '; |
} |
} |
$plain=~s/\>\;\s*$//; |
$plain=~s/\>\;\s*$//; |
return (&Apache::lonhtmlcommon::breadcrumbs(undef,undef,0,'nohelp', |
return (&Apache::lonhtmlcommon::breadcrumbs(undef,undef,0,'nohelp', |
'LC_docs_path'),$randompick,$ishidden,$isencrypted,$plain,$is_random_order); |
undef, undef, 1 ),$randompick,$ishidden,$isencrypted,$plain,$is_random_order); |
} |
} |
|
|
sub log_docs { |
sub log_docs { |
Line 1176 sub docs_change_log {
|
Line 1228 sub docs_change_log {
|
if ($oldname ne '' && $oldname ne $newname) { |
if ($oldname ne '' && $oldname ne $newname) { |
$r->print(&LONCAPA::map::qtescape($newname)); |
$r->print(&LONCAPA::map::qtescape($newname)); |
} |
} |
} |
} |
$r->print('<ul>'); |
$r->print('<ul>'); |
for (my $idx=0;$idx<=$docslog{$id}{'logentry'}{'maxidx'};$idx++) { |
for (my $idx=0;$idx<=$docslog{$id}{'logentry'}{'maxidx'};$idx++) { |
if ($docslog{$id}{'logentry'}{'after_order_res_'.$idx}) { |
if ($docslog{$id}{'logentry'}{'after_order_res_'.$idx}) { |
Line 1214 sub update_paste_buffer {
|
Line 1266 sub update_paste_buffer {
|
|
|
my ($errtext,$fatal) = &mapread($coursenum,$coursedom, |
my ($errtext,$fatal) = &mapread($coursenum,$coursedom, |
$env{'form.copyfolder'}); |
$env{'form.copyfolder'}); |
|
|
return if ($fatal); |
return if ($fatal); |
|
|
# Mark for copying |
# Mark for copying |
Line 1236 sub print_paste_buffer {
|
Line 1288 sub print_paste_buffer {
|
my ($r,$container) = @_; |
my ($r,$container) = @_; |
return if (!defined($env{'docs.markedcopy_url'})); |
return if (!defined($env{'docs.markedcopy_url'})); |
|
|
$r->print(<<ENDPASTE); |
$r->print('<fieldset>' |
<form name="pasteform" action="/adm/coursedocs" method="post"><p> |
.'<legend>'.&mt('Clipboard').'</legend>' |
ENDPASTE |
.'<form name="pasteform" action="/adm/coursedocs" method="post">' |
$r->print('<input type="submit" name="pastemarked" value="'.&mt('Paste').'" /> '); |
.'<input type="submit" name="pastemarked" value="'.&mt('Paste').'" /> ' |
|
); |
|
|
my $type; |
my $type; |
if ($env{'docs.markedcopy_url'} =~ m{^(?:/adm/wrapper/ext|(?:http|https)(?::|:))//} ) { |
if ($env{'docs.markedcopy_url'} =~ m{^(?:/adm/wrapper/ext|(?:http|https)(?::|:))//} ) { |
Line 1253 ENDPASTE
|
Line 1306 ENDPASTE
|
if ($extension eq 'sequence' && |
if ($extension eq 'sequence' && |
$env{'docs.markedcopy_url'} =~ m{/default_\d+\.sequence$ }x) { |
$env{'docs.markedcopy_url'} =~ m{/default_\d+\.sequence$ }x) { |
$icon = &Apache::loncommon::lonhttpdurl($r->dir_config('lonIconsURL')); |
$icon = &Apache::loncommon::lonhttpdurl($r->dir_config('lonIconsURL')); |
$icon .= '/folder_closed.gif'; |
$icon .= '/navmap.folder.closed.gif'; |
} |
} |
$icon = '<img src="'.$icon.'" alt="" class="LC_icon" />'; |
$icon = '<img src="'.$icon.'" alt="" class="LC_icon" />'; |
$r->print($icon.$type.': '. &parse_supplemental_title(&LONCAPA::map::qtescape($env{'docs.markedcopy_title'}))); |
$r->print($icon.$type.': '. &parse_supplemental_title(&LONCAPA::map::qtescape($env{'docs.markedcopy_title'}))); |
Line 1268 ENDPASTE
|
Line 1321 ENDPASTE
|
<input type="hidden" name="folderpath" value="'.&HTML::Entities::encode($env{'form.folderpath'},'<>&"').'" /> |
<input type="hidden" name="folderpath" value="'.&HTML::Entities::encode($env{'form.folderpath'},'<>&"').'" /> |
'); |
'); |
} |
} |
$r->print('</p></form>'); |
$r->print('</form></fieldset>'); |
} |
} |
|
|
sub do_paste_from_buffer { |
sub do_paste_from_buffer { |
Line 1402 sub update_parameter {
|
Line 1455 sub update_parameter {
|
&remember_parms($idx,$which,'set',$value); |
&remember_parms($idx,$which,'set',$value); |
} else { |
} else { |
&LONCAPA::map::delparameter($idx,'parameter_'.$which); |
&LONCAPA::map::delparameter($idx,'parameter_'.$which); |
|
|
&remember_parms($idx,$which,'del'); |
&remember_parms($idx,$which,'del'); |
} |
} |
return 1; |
return 1; |
Line 1455 sub handle_edit_cmd {
|
Line 1508 sub handle_edit_cmd {
|
} |
} |
|
|
sub editor { |
sub editor { |
my ($r,$coursenum,$coursedom,$folder,$allowed,$upload_output,$type)=@_; |
my ($r,$coursenum,$coursedom,$folder,$allowed,$upload_output,$crstype)=@_; |
|
|
my $container= ($env{'form.pagepath'}) ? 'page' |
my $container= ($env{'form.pagepath'}) ? 'page' |
: 'sequence'; |
: 'sequence'; |
|
|
Line 1470 sub editor {
|
Line 1522 sub editor {
|
$LONCAPA::map::order[0]=$idx; |
$LONCAPA::map::order[0]=$idx; |
$LONCAPA::map::resources[$idx]=''; |
$LONCAPA::map::resources[$idx]=''; |
} |
} |
|
|
my ($breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain,$is_random_order)= |
my ($breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain,$is_random_order); |
&breadcrumbs($folder,$allowed,$type); |
if ($allowed) { |
$r->print($breadcrumbtrail); |
($breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain,$is_random_order) = |
|
&breadcrumbs($allowed,$crstype); |
|
$r->print($breadcrumbtrail); |
|
} else { |
|
$randompick = -1; |
|
} |
|
|
# ------------------------------------------------------------ Process commands |
# ------------------------------------------------------------ Process commands |
|
|
# ---------------- if they are for this folder and user allowed to make changes |
# ---------------- if they are for this folder and user allowed to make changes |
Line 1495 sub editor {
|
Line 1552 sub editor {
|
($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.'.$container); |
($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.'.$container); |
return $errtext if ($fatal); |
return $errtext if ($fatal); |
} |
} |
|
|
if ($env{'form.pastemarked'}) { |
if ($env{'form.pastemarked'}) { |
my $paste_res = |
my $paste_res = |
&do_paste_from_buffer($coursenum,$coursedom,$folder); |
&do_paste_from_buffer($coursenum,$coursedom,$folder); |
Line 1541 sub editor {
|
Line 1598 sub editor {
|
return $errtext if ($fatal); |
return $errtext if ($fatal); |
} else { |
} else { |
$r->print('<p><span class="LC_error">'.&mt('No map selected.').'</span></p>'); |
$r->print('<p><span class="LC_error">'.&mt('No map selected.').'</span></p>'); |
|
|
} |
} |
} |
} |
&log_differences($plain); |
&log_differences($plain); |
Line 1551 sub editor {
|
Line 1608 sub editor {
|
my $idx=0; |
my $idx=0; |
my $shown=0; |
my $shown=0; |
if (($ishidden) || ($isencrypted) || ($randompick>=0) || ($is_random_order)) { |
if (($ishidden) || ($isencrypted) || ($randompick>=0) || ($is_random_order)) { |
$r->print('<p>'.&mt('Parameters').':<ul>'. |
$r->print('<div class="LC_Box">'. |
($randompick>=0?'<li>'.&mt('randomly pick [_1] resources',$randompick).'</li>':''). |
'<p>'.&mt('Parameters:'). |
|
'<ul>'. |
|
($randompick>=0?'<li>'.&mt('randomly pick [quant,_1,resource]',$randompick).'</li>':''). |
($ishidden?'<li>'.&mt('contents hidden').'</li>':''). |
($ishidden?'<li>'.&mt('contents hidden').'</li>':''). |
($isencrypted?'<li>'.&mt('URLs hidden').'</li>':''). |
($isencrypted?'<li>'.&mt('URLs hidden').'</li>':''). |
|
($is_random_order?'<li>'.&mt('random order').'</li>':''). |
'</ul></p>'); |
'</ul></p>'); |
} |
if ($randompick>=0) { |
if ($randompick>=0) { |
$r->print('<p class="LC_warning">' |
$r->print('<p>'.&mt('Caution: this folder is set to randomly pick a subset of resources. Adding or removing resources from this folder will change the set of resources that the students see, resulting in spurious or missing credit for completed problems, not limited to ones you modify. Do not modify the contents of this folder if it is in active student use.').'</p>'); |
.&mt('Caution: this folder is set to randomly pick a subset' |
} |
.' of resources. Adding or removing resources from this' |
if ($is_random_order) { |
.' folder will change the set of resources that the' |
$r->print('<p>'.&mt('Caution: this folder is set to randomly order its contents. Adding or removing resources from this folder will change the order of resources shown.').'</p>'); |
.' students see, resulting in spurious or missing credit' |
|
.' for completed problems, not limited to ones you' |
|
.' modify. Do not modify the contents of this folder if' |
|
.' it is in active student use.') |
|
.'</p>' |
|
); |
|
} |
|
if ($is_random_order) { |
|
$r->print('<p class="LC_warning">' |
|
.&mt('Caution: this folder is set to randomly order its' |
|
.' contents. Adding or removing resources from this folder' |
|
.' will change the order of resources shown.') |
|
.'</p>' |
|
); |
|
} |
|
$r->print('</div>'); |
} |
} |
$r->print('<table class="LC_docs_editor">'); |
|
|
my $output; |
foreach my $res (@LONCAPA::map::order) { |
foreach my $res (@LONCAPA::map::order) { |
my ($name,$url)=split(/\:/,$LONCAPA::map::resources[$res]); |
my ($name,$url)=split(/\:/,$LONCAPA::map::resources[$res]); |
$name=&LONCAPA::map::qtescape($name); |
$name=&LONCAPA::map::qtescape($name); |
$url=&LONCAPA::map::qtescape($url); |
$url=&LONCAPA::map::qtescape($url); |
unless ($name) { $name=(split(/\//,$url))[-1]; } |
unless ($name) { $name=(split(/\//,$url))[-1]; } |
unless ($name) { $idx++; next; } |
unless ($name) { $idx++; next; } |
$r->print(&entryline($idx,$name,$url,$folder,$allowed,$res, |
$output .= &entryline($idx,$name,$url,$folder,$allowed,$res, |
$coursenum)); |
$coursenum,$crstype); |
$idx++; |
$idx++; |
$shown++; |
$shown++; |
} |
} |
unless ($shown) { |
if ($shown) { |
$r->print('<tr><td>'.&mt('Currently no documents.').'</td></tr>'); |
$r->print(&Apache::loncommon::start_data_table()); |
|
if ($allowed) { |
|
$r->print(&Apache::loncommon::start_data_table_header_row() |
|
.'<th colspan="2">'.&mt('Move').'</th>' |
|
.'<th>'.&mt('Actions').'</th>' |
|
.'<th colspan="2">'.&mt('Document').'</th>'); |
|
if ($folder !~ /^supplemental/) { |
|
$->print('<th colspan="4">'.&mt('Settings').'</th>'); |
|
} |
|
$r->print(&Apache::loncommon::end_data_table_header_row()); |
|
} |
|
$r->print($output |
|
.&Apache::loncommon::end_data_table() |
|
); |
|
} else { |
|
$r->print('<p class="LC_info">' |
|
.&mt('Currently no documents.') |
|
.'</p>' |
|
); |
} |
} |
$r->print("\n</table>\n"); |
|
if ($allowed) { |
if ($allowed) { |
&print_paste_buffer($r,$container); |
&print_paste_buffer($r,$container); |
} |
} |
Line 1649 sub process_file_upload {
|
Line 1742 sub process_file_upload {
|
return 'failed'; |
return 'failed'; |
} else { |
} else { |
if ($parseaction eq 'parse') { |
if ($parseaction eq 'parse') { |
my $total_embedded = keys(%{$allfiles}); |
my $total_embedded = scalar(keys(%{$allfiles})); |
if ($total_embedded > 0) { |
if ($total_embedded > 0) { |
my $num = 0; |
my $num = 0; |
my $state = ' |
my $state = ' |
Line 1715 sub parse_supplemental_title {
|
Line 1808 sub parse_supplemental_title {
|
} |
} |
if (wantarray) { |
if (wantarray) { |
return ($title,$foldertitle,$renametitle); |
return ($title,$foldertitle,$renametitle); |
} |
} |
return $title; |
return $title; |
} |
} |
|
|
# --------------------------------------------------------------- An entry line |
# --------------------------------------------------------------- An entry line |
|
|
sub entryline { |
sub entryline { |
my ($index,$title,$url,$folder,$allowed,$residx,$coursenum)=@_; |
my ($index,$title,$url,$folder,$allowed,$residx,$coursenum,$crstype)=@_; |
|
|
my ($foldertitle,$pagetitle,$renametitle); |
my ($foldertitle,$pagetitle,$renametitle); |
if (&is_supplemental_title($title)) { |
if (&is_supplemental_title($title)) { |
($title,$foldertitle,$renametitle) = &parse_supplemental_title($title); |
($title,$foldertitle,$renametitle) = &parse_supplemental_title($title); |
Line 1736 sub entryline {
|
Line 1828 sub entryline {
|
} |
} |
|
|
my $orderidx=$LONCAPA::map::order[$index]; |
my $orderidx=$LONCAPA::map::order[$index]; |
|
|
|
|
$renametitle=~s/\\/\\\\/g; |
$renametitle=~s/\\/\\\\/g; |
$renametitle=~s/\"\;/\\\"/g; |
$renametitle=~s/\"\;/\\\"/g; |
$renametitle=~s/ /%20/g; |
$renametitle=~s/ /%20/g; |
my $line='<tr>'; |
my $line=&Apache::loncommon::start_data_table_row(); |
my ($form_start,$form_end); |
my ($form_start,$form_end); |
# Edit commands |
# Edit commands |
my ($container, $type, $esc_path, $path, $symb); |
my ($container, $type, $esc_path, $path, $symb); |
Line 1772 sub entryline {
|
Line 1864 sub entryline {
|
ne '')) { |
ne '')) { |
$selectbox= |
$selectbox= |
'<input type="hidden" name="currentpos" value="'.$incindex.'" />'. |
'<input type="hidden" name="currentpos" value="'.$incindex.'" />'. |
'<select name="newpos" onChange="this.form.submit()">'; |
'<select name="newpos" onchange="this.form.submit()">'; |
for (my $i=1;$i<=$#LONCAPA::map::order+1;$i++) { |
for (my $i=1;$i<=$#LONCAPA::map::order+1;$i++) { |
if ($i==$incindex) { |
if ($i==$incindex) { |
$selectbox.='<option value="" selected="1">('.$i.')</option>'; |
$selectbox.='<option value="" selected="selected">('.$i.')</option>'; |
} else { |
} else { |
$selectbox.='<option value="'.$i.'">'.$i.'</option>'; |
$selectbox.='<option value="'.$i.'">'.$i.'</option>'; |
} |
} |
Line 1811 sub entryline {
|
Line 1903 sub entryline {
|
} |
} |
my $copylink=' '; |
my $copylink=' '; |
my $cutlink=' '; |
my $cutlink=' '; |
|
|
my $skip_confirm = 0; |
my $skip_confirm = 0; |
if ( $folder =~ /^supplemental/ |
if ( $folder =~ /^supplemental/ |
|| ($url =~ m{( /smppg$ |
|| ($url =~ m{( /smppg$ |
Line 1844 END
|
Line 1936 END
|
$form_end = '</form>'; |
$form_end = '</form>'; |
$line.=(<<END); |
$line.=(<<END); |
<td> |
<td> |
<table class="LC_docs_entry_move"> |
<div class="LC_docs_entry_move"> |
<tr> |
<a href='/adm/coursedocs?cmd=up_$index&${type}path=$esc_path&${type}symb=$symb$cpinfo'> |
<td> |
<img src="${iconpath}move_up.gif" alt='$lt{'up'}' class="LC_icon" /> |
<a href='/adm/coursedocs?cmd=up_$index&${type}path=$esc_path&${type}symb=$symb$cpinfo'><img src="${iconpath}move_up.gif" alt='$lt{'up'}' class="LC_icon" /></a> |
</a> |
</td> |
</div> |
</tr> |
<div class="LC_docs_entry_move"> |
<tr> |
<a href='/adm/coursedocs?cmd=down_$index&${type}path=$esc_path&${type}symb=$symb$cpinfo'> |
<td> |
<img src="${iconpath}move_down.gif" alt='$lt{'dw'}' class="LC_icon" /> |
<a href='/adm/coursedocs?cmd=down_$index&${type}path=$esc_path&${type}symb=$symb$cpinfo'><img src="${iconpath}move_down.gif" alt='$lt{'dw'}' class="LC_icon" /></a> |
</a> |
</td> |
</div> |
</tr> |
|
</table> |
|
</td> |
</td> |
<td> |
<td> |
$form_start |
$form_start |
Line 1882 END
|
Line 1972 END
|
my $pagefile; |
my $pagefile; |
if ($uploaded) { |
if ($uploaded) { |
if ($extension eq 'sequence') { |
if ($extension eq 'sequence') { |
$icon=$iconpath.'/folder_closed.gif'; |
$icon=$iconpath.'/navmap.folder.closed.gif'; |
$url=~/\Q$coursenum\E\/([\/\w]+)\.sequence$/; |
$url=~/\Q$coursenum\E\/([\/\w]+)\.sequence$/; |
$url='/adm/coursedocs?'; |
$url='/adm/coursedocs?'; |
$folderarg=$1; |
$folderarg=$1; |
Line 1897 END
|
Line 1987 END
|
&Apache::lonnet::allowuploaded('/adm/coursedoc',$url); |
&Apache::lonnet::allowuploaded('/adm/coursedoc',$url); |
} |
} |
} |
} |
|
|
my $orig_url = $url; |
my $orig_url = $url; |
$orig_url=~s{http(:|:)//https(:|:)//}{https$2//}; |
$orig_url=~s{http(:|:)//https(:|:)//}{https$2//}; |
my $external = ($url=~s{^http(|s)(:|:)//}{/adm/wrapper/ext/}); |
my $external = ($url=~s{^http(|s)(:|:)//}{/adm/wrapper/ext/}); |
Line 1932 END
|
Line 2022 END
|
} |
} |
if ($container eq 'page') { |
if ($container eq 'page') { |
my $symb=$env{'form.pagesymb'}; |
my $symb=$env{'form.pagesymb'}; |
|
|
$url=&Apache::lonnet::clutter((&Apache::lonnet::decode_symb($symb))[2]); |
$url=&Apache::lonnet::clutter((&Apache::lonnet::decode_symb($symb))[2]); |
$url.=(($url=~/\?/)?'&':'?').'symb='.&escape($symb); |
$url.=(($url=~/\?/)?'&':'?').'symb='.&escape($symb); |
} |
} |
Line 1954 END
|
Line 2044 END
|
'parameter_randomorder'))[0]=~/^yes$/i); |
'parameter_randomorder'))[0]=~/^yes$/i); |
$url.='folderpath='.&escape($folderpath).$cpinfo; |
$url.='folderpath='.&escape($folderpath).$cpinfo; |
$parameterset='<label>'.&mt('Randomly Pick: '). |
$parameterset='<label>'.&mt('Randomly Pick: '). |
'<input type="text" size="4" onChange="this.form.changeparms.value='."'randompick'".';this.form.submit()" name="randompick_'.$orderidx.'" value="'. |
'<input type="text" size="4" onchange="this.form.changeparms.value='."'randompick'".';this.form.submit()" name="randompick_'.$orderidx.'" value="'. |
(&LONCAPA::map::getparameter($orderidx, |
(&LONCAPA::map::getparameter($orderidx, |
'parameter_randompick'))[0]. |
'parameter_randompick'))[0]. |
'" />'. |
'" />'. |
Line 1962 END
|
Line 2052 END
|
my $ro_set= |
my $ro_set= |
((&LONCAPA::map::getparameter($orderidx,'parameter_randomorder'))[0]=~/^yes$/i?' checked="checked"':''); |
((&LONCAPA::map::getparameter($orderidx,'parameter_randomorder'))[0]=~/^yes$/i?' checked="checked"':''); |
$rand_order_text =' |
$rand_order_text =' |
<span class="LC_nobreak"><label><input type="checkbox" name="randomorder_'.$orderidx.'" onClick="this.form.changeparms.value=\'randomorder\';this.form.submit()" '.$ro_set.' /> '.&mt('Random Order').' </label></span>'; |
<span class="LC_nobreak"><label><input type="checkbox" name="randomorder_'.$orderidx.'" onclick="this.form.changeparms.value=\'randomorder\';this.form.submit()" '.$ro_set.' /> '.&mt('Random Order').' </label></span>'; |
} |
} |
if ($ispage) { |
if ($ispage) { |
my $pagename=&escape($pagetitle); |
my $pagename=&escape($pagetitle); |
Line 1982 END
|
Line 2072 END
|
$url.='pagepath='.&escape($pagepath). |
$url.='pagepath='.&escape($pagepath). |
'&pagesymb='.&escape($symb).$cpinfo; |
'&pagesymb='.&escape($symb).$cpinfo; |
} |
} |
if ($external) { |
if (($external) && ($allowed)) { |
my $form = ($folder =~ /^default/)? 'newext' : 'supnewext'; |
my $form = ($folder =~ /^default/)? 'newext' : 'supnewext'; |
$external = ' <a class="LC_docs_ext_edit" href="javascript:edittext(\''.$form.'\',\''.$residx.'\',\''.&escape($title).'\',\''.&escape($orig_url).'\');" >'.&mt('Edit').'</a>'; |
$external = ' <a class="LC_docs_ext_edit" href="javascript:edittext(\''.$form.'\',\''.$residx.'\',\''.&escape($title).'\',\''.&escape($orig_url).'\');" >'.&mt('Edit').'</a>'; |
} else { |
} else { |
undef($external); |
undef($external); |
} |
} |
|
my $reinit; |
|
if ($crstype eq 'Community') { |
|
$reinit = &mt('(re-initialize community to access)'); |
|
} else { |
|
$reinit = &mt('(re-initialize course to access)'); |
|
} |
$line.=' |
$line.=' |
<td class="LC_docs_entry_icon"> |
<td> |
'.($url?'<a href="'.$url.'">':'').'<img src="'.$icon.'" alt="" class="LC_icon" />'.($url?'</a>':'').' |
'.($url?'<a href="'.$url.'">':'').'<img src="'.$icon.'" alt="" class="LC_icon" />'.($url?'</a>':'').' |
</td> |
</td> |
<td class="LC_docs_entry_title"> |
<td> |
'.($url?"<a href=\"$url\">":'').$title.($url?'</a>':' <span class="LC_docs_reinit_warn">'.&mt('(re-initialize course to access)').'</span>').$external." |
'.($url?"<a href=\"$url\">":'').$title.($url?'</a>':' <span class="LC_docs_reinit_warn">'.$reinit.'</span>').$external." |
</td>"; |
</td>"; |
if (($allowed) && ($folder!~/^supplemental/)) { |
if (($allowed) && ($folder!~/^supplemental/)) { |
my %lt=&Apache::lonlocal::texthash( |
my %lt=&Apache::lonlocal::texthash( |
'hd' => 'Hidden', |
'hd' => 'Hidden', |
'ec' => 'URL hidden'); |
'ec' => 'URL hidden'); |
my $enctext= |
my $enctext= |
((&LONCAPA::map::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i?' checked="1"':''); |
((&LONCAPA::map::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i?' checked="checked"':''); |
my $hidtext= |
my $hidtext= |
((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i?' checked="1"':''); |
((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i?' checked="checked"':''); |
$line.=(<<ENDPARMS); |
$line.=(<<ENDPARMS); |
<td class="LC_docs_entry_parameter"> |
<td class="LC_docs_entry_parameter"> |
$form_start |
$form_start |
<label><input type="checkbox" name="hiddenresource_$orderidx" onClick="this.form.changeparms.value='hiddenresource';this.form.submit()" $hidtext /> $lt{'hd'}</label> |
<label><input type="checkbox" name="hiddenresource_$orderidx" onclick="this.form.changeparms.value='hiddenresource';this.form.submit()" $hidtext /> $lt{'hd'}</label> |
$form_end |
$form_end |
</td> |
</td> |
<td class="LC_docs_entry_parameter"> |
<td class="LC_docs_entry_parameter"> |
$form_start |
$form_start |
<label><input type="checkbox" name="encrypturl_$orderidx" onClick="this.form.changeparms.value='encrypturl';this.form.submit()" $enctext /> $lt{'ec'}</label> |
<label><input type="checkbox" name="encrypturl_$orderidx" onclick="this.form.changeparms.value='encrypturl';this.form.submit()" $enctext /> $lt{'ec'}</label> |
$form_end |
$form_end |
</td> |
</td> |
<td class="LC_docs_entry_parameter">$form_start $rand_order_text $form_end</td> |
<td class="LC_docs_entry_parameter">$form_start $rand_order_text $form_end</td> |
<td class="LC_docs_entry_parameter">$form_start $parameterset $form_end</td> |
<td class="LC_docs_entry_parameter">$form_start $parameterset $form_end</td> |
ENDPARMS |
ENDPARMS |
} |
} |
$line.="</tr>"; |
$line.=&Apache::loncommon::end_data_table_row(); |
return $line; |
return $line; |
} |
} |
|
|
Line 2045 sub tiehash {
|
Line 2141 sub tiehash {
|
$hashtied=1; |
$hashtied=1; |
} |
} |
} |
} |
} |
} |
} |
} |
|
|
sub untiehash { |
sub untiehash { |
Line 2094 sub checkonthis {
|
Line 2190 sub checkonthis {
|
if (($errorcount) || |
if (($errorcount) || |
($warningcount)) { |
($warningcount)) { |
if ($errorcount) { |
if ($errorcount) { |
$r->print('<img src="/adm/lonMisc/bomb.gif" /><span class="LC_error">'. |
$r->print('<img src="/adm/lonMisc/bomb.gif" alt="'.&mt('bomb').'" /><span class="LC_error">'. |
&mt('[quant,_1,error]',$errorcount).'</span>'); |
&mt('[quant,_1,error]',$errorcount).'</span>'); |
} |
} |
if ($warningcount) { |
if ($warningcount) { |
Line 2119 sub checkonthis {
|
Line 2215 sub checkonthis {
|
unless ($url=~/\$/) { |
unless ($url=~/\$/) { |
$r->print('<span class="LC_error">'.&mt('not found').'</b></span>'); |
$r->print('<span class="LC_error">'.&mt('not found').'</b></span>'); |
} else { |
} else { |
$r->print('<span class="LC_unknown">'.&mt('unable to verify variable URL').'</span>'); |
$r->print('<span class="LC_error">'.&mt('unable to verify variable URL').'</span>'); |
} |
} |
} else { |
} else { |
$r->print('<span class="LC_error">'.&mt('access denied').'</span>'); |
$r->print('<span class="LC_error">'.&mt('access denied').'</span>'); |
Line 2141 List Symbs
|
Line 2237 List Symbs
|
sub list_symbs { |
sub list_symbs { |
my ($r) = @_; |
my ($r) = @_; |
|
|
my $type = &Apache::loncommon::course_type(); |
my $crstype = &Apache::loncommon::course_type(); |
$r->print(&Apache::loncommon::start_page('Symb List')); |
$r->print(&Apache::loncommon::start_page('Symb List')); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Symb List')); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Symb List')); |
my $navmap = Apache::lonnavmaps::navmap->new(); |
my $navmap = Apache::lonnavmaps::navmap->new(); |
Line 2150 sub list_symbs {
|
Line 2246 sub list_symbs {
|
'<div class="LC_error">'. |
'<div class="LC_error">'. |
&mt('Unable to retrieve information about course contents'). |
&mt('Unable to retrieve information about course contents'). |
'</div>'); |
'</div>'); |
&Apache::lonnet::logthis('Symb list failed - could not create navmap object in '.lc($type).':'.$env{'request.course.id'}); |
&Apache::lonnet::logthis('Symb list failed - could not create navmap object in '.lc($crstype).':'.$env{'request.course.id'}); |
} else { |
} else { |
$r->print("<pre>\n"); |
$r->print("<pre>\n"); |
foreach my $res ($navmap->retrieveResources()) { |
foreach my $res ($navmap->retrieveResources()) { |
Line 2164 sub list_symbs {
|
Line 2260 sub list_symbs {
|
|
|
sub verifycontent { |
sub verifycontent { |
my ($r) = @_; |
my ($r) = @_; |
my $type = &Apache::loncommon::course_type(); |
my $crstype = &Apache::loncommon::course_type(); |
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 '.$crstype.' Documents')); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Verify '.$type.' Documents')); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Verify '.$crstype.' Documents')); |
$hashtied=0; |
$hashtied=0; |
undef %alreadyseen; |
undef %alreadyseen; |
%alreadyseen=(); |
%alreadyseen=(); |
Line 2177 sub verifycontent {
|
Line 2273 sub verifycontent {
|
if ($hash{$key}=~/\.(page|sequence)$/) { |
if ($hash{$key}=~/\.(page|sequence)$/) { |
if (($key=~/^src_/) && ($alreadyseen{&unescape($hash{$key})})) { |
if (($key=~/^src_/) && ($alreadyseen{&unescape($hash{$key})})) { |
$r->print('<hr /><span class="LC_error">'. |
$r->print('<hr /><span class="LC_error">'. |
&mt('The following sequence or page is included more than once in your '.$type.': '). |
&mt('The following sequence or page is included more than once in your '.$crstype.': '). |
&unescape($hash{$key}).'</span><br />'. |
&unescape($hash{$key}).'</span><br />'. |
&mt('Note that grading records for problems included in this sequence or folder will overlap.<hr />')); |
&mt('Note that grading records for problems included in this sequence or folder will overlap.<hr />')); |
} |
} |
Line 2200 sub devalidateversioncache {
|
Line 2296 sub devalidateversioncache {
|
|
|
sub checkversions { |
sub checkversions { |
my ($r) = @_; |
my ($r) = @_; |
my $type = &Apache::loncommon::course_type(); |
my $crstype = &Apache::loncommon::course_type(); |
$r->print(&Apache::loncommon::start_page("Check $type Document Versions")); |
$r->print(&Apache::loncommon::start_page("Check $crstype Document Versions")); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs("Check $type Document Versions")); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs("Check $crstype Document Versions")); |
my $header=''; |
my $header=''; |
my $startsel=''; |
my $startsel=''; |
my $monthsel=''; |
my $monthsel=''; |
Line 2263 sub checkversions {
|
Line 2359 sub checkversions {
|
&changewarning($r,''); |
&changewarning($r,''); |
if ($env{'form.timerange'} eq 'all') { |
if ($env{'form.timerange'} eq 'all') { |
# show all documents |
# show all documents |
$header=&mt('All Documents in '.$type); |
$header=&mt('All Documents in '.$crstype); |
$allsel=1; |
$allsel=1; |
foreach my $key (keys(%hash)) { |
foreach my $key (keys(%hash)) { |
if ($key=~/^ids\_(\/res\/.+)$/) { |
if ($key=~/^ids\_(\/res\/.+)$/) { |
Line 2308 sub checkversions {
|
Line 2404 sub checkversions {
|
$env{'course.'.$env{'request.course.id'}.'.domain'}, |
$env{'course.'.$env{'request.course.id'}.'.domain'}, |
$env{'course.'.$env{'request.course.id'}.'.num'}); |
$env{'course.'.$env{'request.course.id'}.'.num'}); |
my %lt=&Apache::lonlocal::texthash |
my %lt=&Apache::lonlocal::texthash |
('st' => 'Version changes since start of '.$type, |
('st' => 'Version changes since start of '.$crstype, |
'lm' => 'Version changes since last Month', |
'lm' => 'Version changes since last Month', |
'lw' => 'Version changes since last Week', |
'lw' => 'Version changes since last Week', |
'sy' => 'Version changes since Yesterday', |
'sy' => 'Version changes since Yesterday', |
Line 2317 sub checkversions {
|
Line 2413 sub checkversions {
|
'fi' => 'File', |
'fi' => 'File', |
'md' => 'Modification Date', |
'md' => 'Modification Date', |
'mr' => 'Most recently published Version', |
'mr' => 'Most recently published Version', |
've' => 'Version used in '.$type, |
've' => 'Version used in '.$crstype, |
'vu' => 'Set Version to be used in '.$type, |
'vu' => 'Set Version to be used in '.$crstype, |
'sv' => 'Set Versions to be used in '.$type.' according to Selections below', |
'sv' => 'Set Versions to be used in '.$crstype.' according to Selections below', |
'sm' => 'Keep all Resources up-to-date with most recent Versions (default)', |
'sm' => 'Keep all Resources up-to-date with most recent Versions (default)', |
'sc' => 'Set all Resource Versions to current Version (Fix Versions)', |
'sc' => 'Set all Resource Versions to current Version (Fix Versions)', |
'di' => 'Differences'); |
'di' => 'Differences'); |
Line 2366 ENDHEADERS
|
Line 2462 ENDHEADERS
|
'<td title="'.$lt{'mr'}.'"><span class="LC_nobreak">Most Recent: '. |
'<td title="'.$lt{'mr'}.'"><span class="LC_nobreak">Most Recent: '. |
'<font size="+1">'.$currentversion.'</font>'. |
'<font size="+1">'.$currentversion.'</font>'. |
'</span></td>'. |
'</span></td>'. |
'<td title="'.$lt{'ve'}.'"><span class="LC_nobreak">In '.$type.': '. |
'<td title="'.$lt{'ve'}.'"><span class="LC_nobreak">In '.$crstype.': '. |
'<font size="+1">'); |
'<font size="+1">'); |
# Used in course |
# Used in course |
my $usedversion=$hash{'version_'.$linkurl}; |
my $usedversion=$hash{'version_'.$linkurl}; |
Line 2383 ENDHEADERS
|
Line 2479 ENDHEADERS
|
('select_form_order' => |
('select_form_order' => |
['',1..$currentversion,'mostrecent'], |
['',1..$currentversion,'mostrecent'], |
'' => '', |
'' => '', |
'mostrecent' => 'most recent', |
'mostrecent' => &mt('most recent'), |
map {$_,$_} (1..$currentversion)))); |
map {$_,$_} (1..$currentversion)))); |
$r->print('</span></td></tr><tr><td></td>'); |
$r->print('</span></td></tr><tr><td></td>'); |
my $lastold=1; |
my $lastold=1; |
Line 2394 ENDHEADERS
|
Line 2490 ENDHEADERS
|
$lastold=$prevvers; |
$lastold=$prevvers; |
} |
} |
} |
} |
# |
# |
# Code to figure out how many version entries should go in |
# Code to figure out how many version entries should go in |
# each of the four columns |
# each of the four columns |
my $entries_per_col = 0; |
my $entries_per_col = 0; |
Line 2484 sub changewarning {
|
Line 2580 sub changewarning {
|
$message='Changes will become active for your current session after [_1], or the next time you log in.'; |
$message='Changes will become active for your current session after [_1], or the next time you log in.'; |
} |
} |
$r->print("\n\n". |
$r->print("\n\n". |
'<script type="text/javascript">function reinit(tf) { tf.submit();'.$postexec.' }</script>'."\n". |
'<script type="text/javascript">'."\n". |
|
'// <![CDATA['."\n". |
|
'function reinit(tf) { tf.submit();'.$postexec.' }'."\n". |
|
'// ]]>'."\n". |
|
'</script>'."\n". |
'<form name="reinitform" method="post" action="/adm/roles" target="loncapaclient">'. |
'<form name="reinitform" method="post" action="/adm/roles" target="loncapaclient">'. |
'<input type="hidden" name="orgurl" value="'.$url. |
'<input type="hidden" name="orgurl" value="'.$url. |
'" /><input type="hidden" name="selectrole" value="1" /><h3><span class="LC_warning">'. |
'" /><input type="hidden" name="selectrole" value="1" /><p class="LC_warning">'. |
&mt($message,' <input type="hidden" name="'. |
&mt($message,' <input type="hidden" name="'. |
$env{'request.role'}.'" value="1" /><input type="button" value="'. |
$env{'request.role'}.'" value="1" /><input type="button" value="'. |
&mt('re-initializing '.$course_type).'" onClick="reinit(this.form)" />'). |
&mt('re-initializing '.$course_type).'" onclick="reinit(this.form)" />'). |
$help{'Caching'}.'</span></h3></form>'."\n\n"); |
$help{'Caching'}.'</p></form>'."\n\n"); |
} |
} |
|
|
|
|
Line 2499 sub init_breadcrumbs {
|
Line 2599 sub init_breadcrumbs {
|
my ($form,$text)=@_; |
my ($form,$text)=@_; |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::lonhtmlcommon::add_breadcrumb({href=>"/adm/coursedocs", |
&Apache::lonhtmlcommon::add_breadcrumb({href=>"/adm/coursedocs", |
text=>"Edit ".&Apache::loncommon::course_type(), |
text=>&Apache::loncommon::course_type().' Editor', |
faq=>273, |
faq=>273, |
bug=>'Instructor Interface', |
bug=>'Instructor Interface', |
help => 'Docs_Adding_Course_Doc'}); |
help => 'Docs_Adding_Course_Doc'}); |
Line 2517 sub handler {
|
Line 2617 sub handler {
|
&Apache::loncommon::content_type($r,'text/html'); |
&Apache::loncommon::content_type($r,'text/html'); |
$r->send_http_header; |
$r->send_http_header; |
return OK if $r->header_only; |
return OK if $r->header_only; |
my $type = &Apache::loncommon::course_type(); |
my $crstype = &Apache::loncommon::course_type(); |
|
|
|
my $coursedom=$env{'course.'.$env{'request.course.id'}.'.domain'}; |
|
if ($coursedom =~ /^\w+citest$/) { |
|
my $coursenum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
|
my $allowed=&Apache::lonnet::allowed('mdc',$env{'request.course.id'}); |
|
if ($allowed) { |
|
&concept_test_builder($r,$coursedom,$coursenum); |
|
return OK; |
|
} |
|
} |
|
|
# --------------------------------------------- Initialize help topics for this |
# --------------------------------------------- Initialize help topics for this |
foreach my $topic ('Adding_Course_Doc','Main_Course_Documents', |
foreach my $topic ('Adding_Course_Doc','Main_Course_Documents', |
Line 2540 sub handler {
|
Line 2649 sub handler {
|
'Docs_About_Bulletin_Board,Docs_Editing_Templated_Pages'); |
'Docs_About_Bulletin_Board,Docs_Editing_Templated_Pages'); |
$help{'My Personal Information Page'} = &Apache::loncommon::help_open_topic( |
$help{'My Personal Information Page'} = &Apache::loncommon::help_open_topic( |
'Docs_About_My_Personal_Info,Docs_Editing_Templated_Pages'); |
'Docs_About_My_Personal_Info,Docs_Editing_Templated_Pages'); |
$help{'Group Files'} = &Apache::loncommon::help_open_topic('Docs_About_Group_Files'); |
$help{'Group Portfolio'} = &Apache::loncommon::help_open_topic('Docs_About_Group_Files'); |
$help{'Caching'} = &Apache::loncommon::help_open_topic('Caching'); |
$help{'Caching'} = &Apache::loncommon::help_open_topic('Caching'); |
|
|
# does this user have privileges to modify docs |
# does this user have privileges to modify docs |
Line 2561 sub handler {
|
Line 2670 sub handler {
|
&init_breadcrumbs('dumpcourse','Dump '.&Apache::loncommon::course_type().' DOCS to Construction Space'); |
&init_breadcrumbs('dumpcourse','Dump '.&Apache::loncommon::course_type().' DOCS to Construction Space'); |
&dumpcourse($r); |
&dumpcourse($r); |
} elsif ($allowed && $env{'form.exportcourse'}) { |
} elsif ($allowed && $env{'form.exportcourse'}) { |
&init_breadcrumbs('exportcourse','Export '.&Apache::loncommon::course_type().' to IMS'); |
&init_breadcrumbs('exportcourse','IMS Export'); |
&exportcourse($r); |
&exportcourse($r); |
} else { |
} else { |
# is this a standard course? |
# is this a standard course? |
Line 2583 sub handler {
|
Line 2692 sub handler {
|
&Apache::loncommon::restore_course_settings('docs_folderpath', |
&Apache::loncommon::restore_course_settings('docs_folderpath', |
{'folderpath' => 'scalar'}); |
{'folderpath' => 'scalar'}); |
} |
} |
if (!$env{'form.folderpath'}) { |
if (!$allowed) { |
|
unless($env{'form.folderpath'} =~ /^supplemental/) { |
|
$env{'form.folderpath'} = ''; |
|
} |
|
} |
|
if (!$env{'form.folderpath'} && $allowed) { |
&Apache::loncommon::restore_course_settings('docs_folderpath', |
&Apache::loncommon::restore_course_settings('docs_folderpath', |
{'pagepath' => 'scalar'}); |
{'pagepath' => 'scalar'}); |
} |
} |
Line 2592 sub handler {
|
Line 2706 sub handler {
|
} |
} |
if ($env{'form.folderpath'} =~ /^supplemental_\d+/) { |
if ($env{'form.folderpath'} =~ /^supplemental_\d+/) { |
$env{'form.folderpath'} = 'supplemental&'. |
$env{'form.folderpath'} = 'supplemental&'. |
&escape(&mt('Supplemental '.$type.' Documents')).'&'. |
&escape(&mt('Supplemental '.$crstype.' Documents')).'&'. |
$env{'form.folderpath'}; |
$env{'form.folderpath'}; |
} |
} |
&Apache::loncommon::store_course_settings('docs_folderpath', |
&Apache::loncommon::store_course_settings('docs_folderpath', |
Line 2615 sub handler {
|
Line 2729 sub handler {
|
if ($r->uri=~/^\/adm\/coursedocs\/showdoc\/(.*)$/) { |
if ($r->uri=~/^\/adm\/coursedocs\/showdoc\/(.*)$/) { |
$showdoc='/'.$1; |
$showdoc='/'.$1; |
} |
} |
unless ($showdoc) { # got called from remote |
if ($showdoc) { # got called in sequence from course |
|
$allowed=0; |
|
} else { |
if (($env{'form.folder'}=~/^(?:group|default)_/) || |
if (($env{'form.folder'}=~/^(?:group|default)_/) || |
($env{'form.folder'} =~ m:^\d+/(pages|sequences)/:)) { |
($env{'form.folder'} =~ m:^\d+/(pages|sequences)/:)) { |
$forcestandard = 1; |
$forcestandard = 1; |
} |
} |
$forcesupplement=($env{'form.folder'}=~/^supplemental_/); |
$forcesupplement=($env{'form.folder'}=~/^supplemental_/); |
|
|
if ($allowed) { |
if ($allowed) { |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['cmd']); |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['cmd']); |
$script=&Apache::lonratedt::editscript('simple'); |
$script=&Apache::lonratedt::editscript('simple'); |
} |
} |
} else { # got called in sequence from course |
|
$allowed=0; |
|
} |
} |
|
|
|
# subroutine to list form elements |
|
sub create_list_elements { |
|
my @formarr = @_; |
|
my $list = ''; |
|
for my $button (@formarr){ |
|
for my $picture(keys %$button) { |
|
#my $link = Apache::lonhtmlcommon::htmltag('a' ,$button->{$picture}, {href => "test"}); |
|
$list .= Apache::lonhtmlcommon::htmltag('li', $picture.' '.$button->{$picture}, {class => 'LC_menubuttons_inline_text'}); |
|
} |
|
} |
|
return $list; |
|
} |
|
|
|
# subroutine to create ul from list elements |
|
sub create_form_ul { |
|
my $list = shift; |
|
my $ul = Apache::lonhtmlcommon::htmltag('ul',$list, {class => 'LC_ListStyleNormal'}); |
|
return $ul; |
|
} |
|
|
# get course data |
# get course data |
my $coursenum=$env{'course.'.$env{'request.course.id'}.'.num'}; |
my $coursenum=$env{'course.'.$env{'request.course.id'}.'.num'}; |
my $coursedom=$env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $coursedom=$env{'course.'.$env{'request.course.id'}.'.domain'}; |
Line 2647 sub handler {
|
Line 2781 sub handler {
|
$script .= &editing_js($udom,$uname); |
$script .= &editing_js($udom,$uname); |
} |
} |
# -------------------------------------------------------------------- Body tag |
# -------------------------------------------------------------------- Body tag |
$script = '<script type="text/javascript">'."\n".$script."\n".'</script>'; |
$script = '<script type="text/javascript">'."\n" |
my $brcrum = [{href=>"/adm/createuser",text=>"$type Documents"}]; |
.'// <![CDATA['."\n" |
$r->print(&Apache::loncommon::start_page("$type Documents", $script, |
.$script."\n" |
{'force_register' => $showdoc, |
.'// ]]>'."\n" |
'bread_crumbs' => $brcrum}). |
.'</script>'."\n"; |
&Apache::loncommon::help_open_menu('','',273,'RAT')); |
|
|
# Breadcrumbs |
|
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
|
if ($allowed) { |
|
&Apache::lonhtmlcommon::add_breadcrumb({ |
|
href=>"/adm/coursedocs",text=>"$crstype Editor"}); |
|
|
|
$r->print(&Apache::loncommon::start_page("$crstype Editor", $script, |
|
{'force_register' => $showdoc,}) |
|
.&Apache::loncommon::help_open_menu('','',273,'RAT') |
|
.&Apache::lonhtmlcommon::breadcrumbs( |
|
'Editing the Table of Contents for your '.$crstype, |
|
'Docs_Adding_Course_Doc') |
|
); |
|
} elsif ($showdoc) { |
|
$r->print(&Apache::loncommon::start_page("$crstype documents",undef, |
|
{'force_register' => $showdoc,})); |
|
} else { |
|
my $folder=$env{'form.folder'}; |
|
if ($folder eq '' || $folder eq 'supplemental') { |
|
$env{'form.folderpath'} = 'supplemental&'. |
|
&escape(&mt('Supplemental '.$crstype.' Documents')); |
|
} |
|
my ($breadcrumbtrail) = &breadcrumbs($allowed,$crstype); |
|
$r->print(&Apache::loncommon::start_page("Supplemental documents"). |
|
$breadcrumbtrail); |
|
} |
|
|
my %allfiles = (); |
my %allfiles = (); |
my %codebase = (); |
my %codebase = (); |
my ($upload_result,$upload_output); |
my ($upload_result,$upload_output); |
Line 2722 sub handler {
|
Line 2882 sub handler {
|
$attrib_regexp = $attribs{$item}[0]; |
$attrib_regexp = $attribs{$item}[0]; |
} |
} |
if ($content =~ m#($attrib_regexp\s*=\s*['"]?)\Q$origname{$item}\E(['"]?)#) { |
if ($content =~ m#($attrib_regexp\s*=\s*['"]?)\Q$origname{$item}\E(['"]?)#) { |
} |
} |
$content =~ s#($attrib_regexp\s*=\s*['"]?)\Q$origname{$item}\E(['"]?)#$1$newname{$item}$2#gi; |
$content =~ s#($attrib_regexp\s*=\s*['"]?)\Q$origname{$item}\E(['"]?)#$1$newname{$item}$2#gi; |
} |
} |
if (exists($codebase{$item})) { |
if (exists($codebase{$item})) { |
Line 2744 sub handler {
|
Line 2904 sub handler {
|
unless ($showdoc || $upload_result eq 'phasetwo') { |
unless ($showdoc || $upload_result eq 'phasetwo') { |
# ----------------------------------------------------------------------------- |
# ----------------------------------------------------------------------------- |
my %lt=&Apache::lonlocal::texthash( |
my %lt=&Apache::lonlocal::texthash( |
'uplm' => 'Upload a new main '.lc($type).' document', |
'uplm' => 'Upload a new main '.lc($crstype).' document', |
'upls' => 'Upload a new supplemental '.lc($type).' document', |
'upls' => 'Upload a new supplemental '.lc($crstype).' document', |
'impp' => 'Import a document', |
'impp' => 'Import a document', |
'pubd' => 'Published Documents', |
|
'copm' => 'All documents out of a published map into this folder', |
'copm' => 'All documents out of a published map into this folder', |
'upld' => 'Upload Document', |
'upld' => 'Upload Document', |
'srch' => 'Search', |
'srch' => 'Search', |
Line 2767 sub handler {
|
Line 2926 sub handler {
|
'scuf' => 'Score Upload Form', |
'scuf' => 'Score Upload Form', |
'bull' => 'Discussion Board', |
'bull' => 'Discussion Board', |
'mypi' => 'My Personal Information Page', |
'mypi' => 'My Personal Information Page', |
'grpo' => 'Group Files', |
'grpo' => 'Group Portfolio', |
'rost' => 'Course Roster', |
'rost' => 'Course Roster', |
'abou' => 'Personal Information Page for a User', |
'abou' => 'Personal Information Page for a User', |
'imsf' => 'Import IMS package', |
'imsf' => 'IMS Import', |
|
'imsl' => 'Import IMS package', |
'file' => 'File', |
'file' => 'File', |
'title' => 'Title', |
'title' => 'Title', |
'comment' => 'Comment', |
'comment' => 'Comment', |
'parse' => 'Upload embedded images/multimedia files if HTML file!', |
'parse' => 'Upload embedded images/multimedia files if HTML file', |
'nd' => 'New Document', |
'nd' => 'Upload Document', |
'pm' => 'Published Map', |
'pm' => 'Published Map', |
'sd' => 'Special Document', |
'sd' => 'Special Document', |
'mo' => 'More Options', |
'mo' => 'More Options', |
'hao' => 'Hide all Options' |
|
); |
); |
# ----------------------------------------------------------------------------- |
# ----------------------------------------------------------------------------- |
my $fileupload=(<<FIUP); |
my $fileupload=(<<FIUP); |
Line 2796 FIUP
|
Line 2955 FIUP
|
</label> |
</label> |
CHBO |
CHBO |
|
|
|
my $fileuploada = "<input type='submit' value='".$lt{'upld'}."' /> $help{'Uploading_From_Harddrive'}"; |
my $fileuploadform=(<<FUFORM); |
my $fileuploadform=(<<FUFORM); |
<form name="uploaddocument" action="/adm/coursedocs" method="post" enctype="multipart/form-data"> |
<form name="uploaddocument" action="/adm/coursedocs" method="post" enctype="multipart/form-data"> |
|
<input type="hidden" name="active" value="aa" /> |
$fileupload |
$fileupload |
<br /> |
<br /> |
$lt{'title'}:<br /> |
$lt{'title'}:<br /> |
Line 2808 CHBO
|
Line 2969 CHBO
|
<span class="LC_nobreak"> |
<span class="LC_nobreak"> |
$checkbox |
$checkbox |
</span> |
</span> |
<br /> |
FUFORM |
<br /> |
#$list .= Apache::lonhtmlcommon::htmltag('li', $picture.' '.$button->{$picture}, {class => 'LC_menubuttons_inline_text'}); |
<span class="LC_nobreak"> |
#$fileuploadform .= create_form_ul(create_list_elements(@fileuploada)); |
<input type="submit" value="$lt{'upld'}" /> |
$fileuploadform .= create_form_ul(Apache::lonhtmlcommon::htmltag('li',$fileuploada,{class => 'LC_menubuttons_inline_text'})); |
$help{'Uploading_From_Harddrive'} |
$fileuploadform .= (<<FUFORM); |
</span> |
|
</form> |
</form> |
FUFORM |
FUFORM |
|
|
my $simpleeditdefaultform=(<<SEDFFORM); |
my $simpleeditdefaultform=(<<SEDFFORM); |
<form action="/adm/coursedocs" method="post" name="simpleeditdefault"> |
<form action="/adm/coursedocs" method="post" name="simpleeditdefault"> |
$lt{'pubd'}<br /> |
<input type="hidden" name="active" value="bb" /> |
$uploadtag |
SEDFFORM |
<input type="button" onClick="javascript:groupsearch()" value="$lt{'srch'}" /> |
my @simpleeditdefaultforma = ( |
<br /> |
{ '<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/src.png" alt="'.&mt('Search').'" />' => "$uploadtag<a onclick='javascript:groupsearch()'>$lt{'srch'}</a>" }, |
<span class="LC_nobreak"> |
{ '<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/res.png" alt="'.&mt('Import').'" />' => "<a onclick='javascript:groupimport();'>$lt{'impo'}</a>$help{'Importing_LON-CAPA_Resource'}" }, |
<input type="button" onClick="javascript:groupimport();" value="$lt{'impo'}" /> |
{ '<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/vbkm.png" alt="'.&mt('Import Bookmarks').'" />' => "<a onclick='javascript:groupopen(0,1,1);'>$lt{'book'}</a>" }, |
$help{'Importing_LON-CAPA_Resource'} |
); |
</span> |
$simpleeditdefaultform .= create_form_ul(create_list_elements(@simpleeditdefaultforma)); |
<br /> |
$simpleeditdefaultform .=(<<SEDFFORM); |
<input type="button" onClick="javascript:groupopen(0,1,1);" value="$lt{'book'}" /> |
|
<hr /> |
<hr /> |
<p> |
<p> |
$lt{'copm'}<br /> |
$lt{'copm'}<br /> |
<input type="text" size="40" name="importmap" /><br /> |
<input type="text" size="40" name="importmap" /><br /> |
<span class="LC_nobreak"><input type="button" |
<span class="LC_nobreak"><input type="button" |
onClick="javascript:openbrowser('simpleeditdefault','importmap','sequence,page','')" |
onclick="javascript:openbrowser('simpleeditdefault','importmap','sequence,page','')" |
value="$lt{'selm'}" /> <input type="submit" name="loadmap" value="$lt{'load'}" /> |
value="$lt{'selm'}" /> <input type="submit" name="loadmap" value="$lt{'load'}" /> |
$help{'Load_Map'}</span> |
$help{'Load_Map'}</span> |
</p> |
</p> |
Line 2845 SEDFFORM
|
Line 3004 SEDFFORM
|
<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="" /> |
<span class="LC_nobreak"> |
<a onclick="javascript:makenewext('newext');">$lt{'extr'}</a>$help{'Adding_External_Resource'} |
<input name="newext" type="button" onClick="javascript:makenewext('newext');" |
|
value="$lt{'extr'}" /> $help{'Adding_External_Resource'} |
|
</span> |
|
</form> |
</form> |
ERFORM |
ERFORM |
|
|
Line 2866 ERFORM
|
Line 3022 ERFORM
|
if ($env{'form.folder'} eq '' || |
if ($env{'form.folder'} eq '' || |
$env{'form.folder'} eq 'supplemental') { |
$env{'form.folder'} eq 'supplemental') { |
$folderpath='default&'. |
$folderpath='default&'. |
&escape(&mt('Main '.$type.' Documents')); |
&escape(&mt('Main '.$crstype.' Documents')); |
} |
} |
} |
} |
unless ($env{'form.pagepath'}) { |
unless ($env{'form.pagepath'}) { |
Line 2888 ERFORM
|
Line 3044 ERFORM
|
HIDDENFORM |
HIDDENFORM |
} |
} |
# --------------------------------------------------------- Main tab structure |
# --------------------------------------------------------- Main tab structure |
|
|
my $activeClass = 1; |
my $activeClass = 1; |
$r->print('<ul class="LC_TabContentBigger" id="mainnav">'); |
my $active = ''; |
if (($standard) && ($allowed) && (!$forcesupplement)) { |
my %tabtitles = ( |
my $active = ''; |
main => { |
if($activeClass == 1){ |
Course => &mt('Main Course Documents'), |
$active = 'class="active"'; |
Community => &mt('Main Community Documents'), |
$activeClass = 0; |
}, |
} |
supplemental => { |
$r->print('<li '.$active.'onclick="javascript:showPage(this,\'Main Course Documents\',\'mainnav\',\'maincoursedoc\');">'.&mt('Main Course Documents').'</li>'); |
Course => &mt('Supplemental Course Documents'), |
} |
Community => &mt('Supplemental Community Documents'), |
if (!$forcestandard) { |
}, |
my $active = ''; |
); |
if($activeClass == 1){ |
if ($allowed) { |
$active = 'class="active"'; |
$r->print('<ul class="LC_TabContentBigger" id="mainnav">'); |
|
if (($standard) && ($allowed) && (!$forcesupplement) && (($env{'form.folderpath'}=~/^default/) || $env{'form.folderpath'}eq"" || ($env{'form.pagepath'}))) { |
|
if($activeClass == 1){ |
|
$active = 'class="active"'; |
|
$activeClass = 0; |
|
} |
|
} |
|
$r->print('<li '.$active.' onclick="javascript:showPage(this,\'mainCourseDocuments\',\'mainnav\',\'maincoursedoc\');"><a href="#"><b>'.$tabtitles{'main'}{$crstype}.'</b></a></li>'); |
|
$active = ''; |
|
if (!$forcestandard || ($env{'form.folderpath'}=~/^supplemental/)) { |
|
if($activeClass == 1){ |
|
$active = 'class="active"'; |
|
} |
} |
} |
$r->print('<li '.$active.'onclick="javascript:showPage(this,\'Supplemental Course Documents\',\'mainnav\',\'maincoursedoc\');">'.&mt('Supplemental Course Documents').'</li>'); |
$r->print('<li '.$active.' onclick="javascript:showPage(this,\'supplCourseDocuments\',\'mainnav\',\'maincoursedoc\');"><a href="#"><b>'.$tabtitles{'supplemental'}{$crstype}.'</b></a></li>'); |
|
$r->print('</ul>'); |
|
} else { |
|
$r->print('<br />'); |
} |
} |
$r->print('<li onclick="javascript:showPage(this,\'Special Admin Options\',\'mainnav\',\'maincoursedoc\');">'.&mt('Special Admin Options').'</li>'); |
$r->print('<div class="LC_Box" style="clear:both;margin:0;">' |
$r->print('</ul><div class="LC_ContentBoxSpecial" style="margin:0 0;padding:0 0;"><div id="maincoursedoc" style="margin:0 0;padding:0 0;">'); |
.'<div id="maincoursedoc" style="margin:0 0;padding:0 0;">'); |
# --------------------------------------------------------- Standard documents |
# --------------------------------------------------------- Standard documents |
if (($standard) && ($allowed) && (!$forcesupplement)) { |
my $savefolderpath; |
my $active = 'style="display: none;"'; |
$active = 'style="display: none;"'; |
if($activeClass == 0){ |
if($activeClass == 0){ |
$active = 'style="display: block;"'; |
$active = 'style="display: block;"'; |
} |
} |
$r->print('<div class="LC_ContentBox" id="Main Course Documents" '.$active.'>'); |
if ($allowed) { |
$r->print(&Apache::loncommon::help_open_topic('Docs_Adding_Course_Doc', |
$r->print('<div class="LC_ContentBox" id="mainCourseDocuments" '.$active.'>'); |
&mt('Editing the Table of Contents for your '.$type))); |
|
my $folder=$env{'form.folder'}; |
my $folder=$env{'form.folder'}; |
if ($folder eq '' || $folder eq 'supplemental') { |
if ($folder eq '' || $folder=~/^supplemental/) { |
$folder='default'; |
$folder='default'; |
$env{'form.folderpath'}='default&'.&escape(&mt('Main '.$type.' Documents')); |
$savefolderpath = $env{'form.folderpath'}; |
|
$env{'form.folderpath'}='default&'.&escape($tabtitles{'main'}{$crstype}); |
$uploadtag = '<input type="hidden" name="folderpath" value="'. |
$uploadtag = '<input type="hidden" name="folderpath" value="'. |
&HTML::Entities::encode($env{'form.folderpath'},'<>&"').'" />'; |
&HTML::Entities::encode($env{'form.folderpath'},'<>&"').'" />'; |
} |
} |
my $postexec=''; |
my $postexec=''; |
if ($folder eq 'default') { |
if ($folder eq 'default') { |
$r->print('<script type="text/javascript">this.window.name="loncapaclient";</script>'); |
$r->print('<script type="text/javascript">'."\n" |
|
.'// <![CDATA['."\n" |
|
.'this.window.name="loncapaclient";'."\n" |
|
.'// ]]>'."\n" |
|
.'</script>'."\n" |
|
); |
} else { |
} else { |
#$postexec='self.close();'; |
#$postexec='self.close();'; |
} |
} |
Line 2943 HIDDENFORM
|
Line 3120 HIDDENFORM
|
|
|
my $recoverform=(<<RFORM); |
my $recoverform=(<<RFORM); |
<form action="/adm/groupsort" method="post" name="recover"> |
<form action="/adm/groupsort" method="post" name="recover"> |
<input type="button" name="recovermap" onClick="javascript:groupopen('$readfile',1,0)" value="$lt{'reco'}" /> |
<a onclick="javascript:groupopen('$readfile',1,0)">$lt{'reco'}</a> |
</form> |
</form> |
RFORM |
RFORM |
|
|
my $imspform=(<<IMSPFORM); |
my $imspform=(<<IMSPFORM); |
<form action="/adm/imsimportdocs" method="post" name="ims"> |
<form action="/adm/imsimportdocs" method="post" name="ims"> |
<input type="hidden" name="folder" value="$folder" /> |
<input type="hidden" name="folder" value="$folder" /> |
<input name="imsimport" type="button" value="$lt{'imsf'}" onClick="javascript:makeims();" /> |
<a onclick="javascript:makeims();">$lt{'imsf'}</a> |
</form> |
</form> |
IMSPFORM |
IMSPFORM |
|
|
my $newnavform=(<<NNFORM); |
my $newnavform=(<<NNFORM); |
<form action="/adm/coursedocs" method="post" name="newnav"> |
<form action="/adm/coursedocs" method="post" name="newnav"> |
|
<input type="hidden" name="active" value="cc" /> |
$uploadtag |
$uploadtag |
<input type="hidden" name="importdetail" |
<input type="hidden" name="importdetail" |
value="$lt{'navc'}=/adm/navmaps" /> |
value="$lt{'navc'}=/adm/navmaps" /> |
<span class="LC_nobreak"> |
<a onclick="document.newnav.submit()">$lt{'navc'}</a> |
<input name="newnav" type="submit" value="$lt{'navc'}" /> |
|
$help{'Navigate_Content'} |
$help{'Navigate_Content'} |
</span> |
|
</form> |
</form> |
NNFORM |
NNFORM |
my $newsmppageform=(<<NSPFORM); |
my $newsmppageform=(<<NSPFORM); |
<form action="/adm/coursedocs" method="post" name="newsmppg"> |
<form action="/adm/coursedocs" method="post" name="newsmppg"> |
|
<input type="hidden" name="active" value="cc" /> |
$uploadtag |
$uploadtag |
<input type="hidden" name="importdetail" value="" /> |
<input type="hidden" name="importdetail" value="" /> |
<span class="LC_nobreak"> |
<a onclick="javascript:makesmppage();"> $lt{'sipa'}</a> |
<input name="newsmppg" type="button" value="$lt{'sipa'}" |
$help{'Simple Page'} |
onClick="javascript:makesmppage();" /> $help{'Simple Page'} |
|
</span> |
|
</form> |
</form> |
NSPFORM |
NSPFORM |
|
|
my $newsmpproblemform=(<<NSPROBFORM); |
my $newsmpproblemform=(<<NSPROBFORM); |
<form action="/adm/coursedocs" method="post" name="newsmpproblem"> |
<form action="/adm/coursedocs" method="post" name="newsmpproblem"> |
|
<input type="hidden" name="active" value="cc" /> |
$uploadtag |
$uploadtag |
<input type="hidden" name="importdetail" value="" /> |
<input type="hidden" name="importdetail" value="" /> |
<span class="LC_nobreak"> |
<a onclick="javascript:makesmpproblem();">$lt{'sipr'}</a> |
<input name="newsmpproblem" type="button" value="$lt{'sipr'}" |
$help{'Simple Problem'} |
onClick="javascript:makesmpproblem();" />$help{'Simple Problem'} |
|
</span> |
|
</form> |
</form> |
|
|
NSPROBFORM |
NSPROBFORM |
|
|
my $newdropboxform=(<<NDBFORM); |
my $newdropboxform=(<<NDBFORM); |
<form action="/adm/coursedocs" method="post" name="newdropbox"> |
<form action="/adm/coursedocs" method="post" name="newdropbox"> |
|
<input type="hidden" name="active" value="cc" /> |
$uploadtag |
$uploadtag |
<input type="hidden" name="importdetail" value="" /> |
<input type="hidden" name="importdetail" value="" /> |
<span class="LC_nobreak"> |
<a onclick="javascript:makedropbox();">$lt{'drbx'}</a> |
<input name="newdropbox" type="button" value="$lt{'drbx'}" |
|
onClick="javascript:makedropbox();" /> |
|
</span> |
|
</form> |
</form> |
NDBFORM |
NDBFORM |
|
|
my $newexuploadform=(<<NEXUFORM); |
my $newexuploadform=(<<NEXUFORM); |
<form action="/adm/coursedocs" method="post" name="newexamupload"> |
<form action="/adm/coursedocs" method="post" name="newexamupload"> |
|
<input type="hidden" name="active" value="cc" /> |
$uploadtag |
$uploadtag |
<input type="hidden" name="importdetail" value="" /> |
<input type="hidden" name="importdetail" value="" /> |
<span class="LC_nobreak"> |
<a onclick="javascript:makeexamupload();">$lt{'scuf'}</a> |
<input name="newexamupload" type="button" value="$lt{'scuf'}" |
|
onClick="javascript:makeexamupload();" /> |
|
$help{'Score_Upload_Form'} |
$help{'Score_Upload_Form'} |
</span> |
|
</form> |
</form> |
NEXUFORM |
NEXUFORM |
|
|
my $newbulform=(<<NBFORM); |
my $newbulform=(<<NBFORM); |
<form action="/adm/coursedocs" method="post" name="newbul"> |
<form action="/adm/coursedocs" method="post" name="newbul"> |
|
<input type="hidden" name="active" value="cc" /> |
$uploadtag |
$uploadtag |
<input type="hidden" name="importdetail" value="" /> |
<input type="hidden" name="importdetail" value="" /> |
<span class="LC_nobreak"> |
<a onclick="javascript:makebulboard();" >$lt{'bull'}</a> |
<input name="newbulletin" type="button" value="$lt{'bull'}" |
|
onClick="javascript:makebulboard();" /> |
|
$help{'Bulletin Board'} |
$help{'Bulletin Board'} |
</span> |
|
</form> |
</form> |
NBFORM |
NBFORM |
|
|
my $newaboutmeform=(<<NAMFORM); |
my $newaboutmeform=(<<NAMFORM); |
<form action="/adm/coursedocs" method="post" name="newaboutme"> |
<form action="/adm/coursedocs" method="post" name="newaboutme"> |
|
<input type="hidden" name="active" value="cc" /> |
$uploadtag |
$uploadtag |
<input type="hidden" name="importdetail" |
<input type="hidden" name="importdetail" |
value="$plainname=/adm/$udom/$uname/aboutme" /> |
value="$plainname=/adm/$udom/$uname/aboutme" /> |
<span class="LC_nobreak"> |
<a onclick="document.newaboutme.submit()">$lt{'mypi'}</a> |
<input name="newaboutme" type="submit" value="$lt{'mypi'}" /> |
|
$help{'My Personal Information Page'} |
$help{'My Personal Information Page'} |
</span> |
|
</form> |
</form> |
NAMFORM |
NAMFORM |
|
|
my $newaboutsomeoneform=(<<NASOFORM); |
my $newaboutsomeoneform=(<<NASOFORM); |
<form action="/adm/coursedocs" method="post" name="newaboutsomeone"> |
<form action="/adm/coursedocs" method="post" name="newaboutsomeone"> |
|
<input type="hidden" name="active" value="cc" /> |
$uploadtag |
$uploadtag |
<input type="hidden" name="importdetail" value="" /> |
<input type="hidden" name="importdetail" value="" /> |
<span class="LC_nobreak"> |
<a onclick="javascript:makeabout();">$lt{'abou'}</a> |
<input name="newaboutsomeone" type="button" value="$lt{'abou'}" |
|
onClick="javascript:makeabout();" /> |
|
</span> |
|
</form> |
</form> |
NASOFORM |
NASOFORM |
|
|
|
|
my $newrosterform=(<<NROSTFORM); |
my $newrosterform=(<<NROSTFORM); |
<form action="/adm/coursedocs" method="post" name="newroster"> |
<form action="/adm/coursedocs" method="post" name="newroster"> |
|
<input type="hidden" name="active" value="cc" /> |
$uploadtag |
$uploadtag |
<input type="hidden" name="importdetail" |
<input type="hidden" name="importdetail" |
value="$lt{'rost'}=/adm/viewclasslist" /> |
value="$lt{'rost'}=/adm/viewclasslist" /> |
<span class="LC_nobreak"> |
<a onclick="document.newroster.submit()">$lt{'rost'}</a> |
<input name="newroster" type="submit" value="$lt{'rost'}" /> |
|
$help{'Course Roster'} |
$help{'Course Roster'} |
</span> |
|
</form> |
</form> |
NROSTFORM |
NROSTFORM |
|
|
my $specialdocumentsform; |
my $specialdocumentsform; |
|
my @specialdocumentsforma; |
|
my $newfolderform; |
|
my $newfolderb; |
|
|
unless ($env{'form.pagepath'}) { |
unless ($env{'form.pagepath'}) { |
my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"'); |
my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"'); |
|
|
my $newpageform=(<<NPFORM); |
my $newpageform=(<<NPFORM); |
<form action="/adm/coursedocs" method="post" name="newpage"> |
<form action="/adm/coursedocs" method="post" name="newpage"> |
<input type="hidden" name="folderpath" value="$path" /> |
<input type="hidden" name="folderpath" value="$path" /> |
<input type="hidden" name="importdetail" value="" /> |
<input type="hidden" name="importdetail" value="" /> |
<span class="LC_nobreak"> |
<input type="hidden" name="active" value="cc" /> |
<input name="newpage" type="button" |
<a onclick="javascript:makenewpage(document.newpage,'$pageseq');">$lt{'newp'}</a> |
onClick="javascript:makenewpage(this.form,'$pageseq');" |
$help{'Adding_Pages'} |
value="$lt{'newp'}" />$help{'Adding_Pages'} |
|
</span> |
|
</form> |
</form> |
NPFORM |
NPFORM |
|
|
my $newfolderform=(<<NFFORM); |
|
|
$newfolderform=(<<NFFORM); |
<form action="/adm/coursedocs" method="post" name="newfolder"> |
<form action="/adm/coursedocs" method="post" name="newfolder"> |
<input type="hidden" name="folderpath" value="$path" /> |
<input type="hidden" name="folderpath" value="$path" /> |
<input type="hidden" name="importdetail" value="" /> |
<input type="hidden" name="importdetail" value="" /> |
<span class="LC_nobreak"> |
<input type="hidden" name="active" value="aa" /> |
<input name="newfolder" type="button" |
<a onclick="javascript:makenewfolder(document.newfolder,'$folderseq');">$lt{'newf'}</a>$help{'Adding_Folders'} |
onClick="javascript:makenewfolder(this.form,'$folderseq');" |
|
value="$lt{'newf'}" />$help{'Adding_Folders'} |
|
</span> |
|
</form> |
</form> |
NFFORM |
NFFORM |
|
|
my $newsylform=(<<NSYLFORM); |
my $newsylform=(<<NSYLFORM); |
<form action="/adm/coursedocs" method="post" name="newsyl"> |
<form action="/adm/coursedocs" method="post" name="newsyl"> |
|
<input type="hidden" name="active" value="cc" /> |
$uploadtag |
$uploadtag |
<input type="hidden" name="importdetail" |
<input type="hidden" name="importdetail" |
value="$lt{'syll'}=/public/$coursedom/$coursenum/syllabus" /> |
value="$lt{'syll'}=/public/$coursedom/$coursenum/syllabus" /> |
<span class="LC_nobreak"> |
<a onclick="document.newsyl.submit()">$lt{'syll'}</a> |
<input name="newsyl" type="submit" value="$lt{'syll'}" /> |
|
$help{'Syllabus'} |
$help{'Syllabus'} |
</span> |
|
</form> |
</form> |
NSYLFORM |
NSYLFORM |
|
|
my $newgroupfileform=(<<NGFFORM); |
my $newgroupfileform=(<<NGFFORM); |
<form action="/adm/coursedocs" method="post" name="newgroupfiles"> |
<form action="/adm/coursedocs" method="post" name="newgroupfiles"> |
|
<input type="hidden" name="active" value="cc" /> |
$uploadtag |
$uploadtag |
<input type="hidden" name="importdetail" |
<input type="hidden" name="importdetail" |
value="$lt{'grpo'}=/adm/$coursedom/$coursenum/aboutme" /> |
value="$lt{'grpo'}=/adm/$coursedom/$coursenum/aboutme" /> |
<span class="LC_nobreak"> |
<a onclick="document.newgroupfiles.submit()">$lt{'grpo'}</a> |
<input name="newgroupfiles" type="submit" value="$lt{'grpo'}" /> |
$help{'Group Portfolio'} |
$help{'Group Files'} |
|
</span> |
|
</form> |
</form> |
NGFFORM |
NGFFORM |
|
@specialdocumentsforma=( |
$specialdocumentsform="<br />$newfolderform<br />$newpageform<br />$newsylform<br />$newgroupfileform"; |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/page.png" alt="'.&mt('New Composite Page').'" />'=>$newpageform}, |
|
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/syllabus.png" alt="'.&mt('Syllabus').'" />'=>$newsylform}, |
|
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/groupportfolio.png" alt="'.&mt('Group Portfolio').'" />'=>$newgroupfileform}, |
|
); |
|
|
} |
} |
$specialdocumentsform.="<br />$newnavform<br />$newsmppageform |
push @specialdocumentsforma, ({'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/navigation.png" alt="'.&mt('Navigate Contents').'" />'=>$newnavform}, |
<br />$newsmpproblemform<br />$newdropboxform |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/simple.png" alt="'.&mt('Simple Course Page').'" />'=>$newsmppageform}, |
<br />$newexuploadform<br />$newbulform |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/simpprob.png" alt="'.&mt('Simple Problem').'" />'=>$newsmpproblemform}, |
<br />$newaboutmeform<br />$newaboutsomeoneform |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/dropbox.png" alt="'.&mt('Drop Box').'" />'=>$newdropboxform}, |
<br />$newrosterform"; |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/scoreupfrm.png" alt="'.&mt('Score Upload Form').'" />'=>$newexuploadform}, |
|
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/bchat.png" alt="'.&mt('Discussion Board').'" />'=>$newbulform}, |
|
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/myaboutme.png" alt="'.&mt('My Personal Information Page').'" />'=>$newaboutmeform}, |
|
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/aboutme.png" alt="'.&mt('Personal Information Page for a User').'" />'=>$newaboutsomeoneform}, |
|
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/chrt.png" alt="'.&mt('Course Roster').'" />'=>$newrosterform},); |
|
|
|
$specialdocumentsform = create_form_ul(create_list_elements(@specialdocumentsforma)); |
|
|
if($env{'form.pagepath'}) { |
if($env{'form.pagepath'}) { |
$specialdocumentsform="<br />$newsmpproblemform<br />$newexuploadform"; |
|
|
@specialdocumentsforma=( |
|
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/simpprob.png" alt="'.&mt('Simple Problem').'" />'=>$newsmpproblemform}, |
|
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/scoreupfrm.png" alt="'.&mt('Score Upload Form').'" />'=>$newexuploadform} |
|
); |
|
$specialdocumentsform= create_form_ul(create_list_elements(@specialdocumentsforma)); |
} |
} |
|
|
|
my @tools = ( |
|
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/extres.png" alt="'.&mt('External Resource').'" />'=>$extresourcesform}, |
|
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/ims.png" alt="'.&mt('IMS Import').'" />'=>$imspform}, |
|
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/recover.png" alt="'.&mt('Recover Deleted Resources').'" />'=>$recoverform}, |
|
); |
|
|
my %orderhash = ( |
my %orderhash = ( |
'aa' => 'New Document', |
'00' => ['Newfolder',$newfolderform], |
'bb' => 'Published Documents', |
'aa' => ['Upload Document',$fileuploadform], |
'cc' => 'Special Documents', |
'bb' => ['Published Resources',$simpleeditdefaultform], |
'dd' => 'More Options', |
'cc' => ['Special Documents',$specialdocumentsform], |
'zz' => 'Hide all Options', |
'dd' => ['Tools', create_form_ul(create_list_elements(@tools)).&generate_admin_options($containertag,$uploadtag,\%help,\%env)], |
); |
|
my %namehash = ( |
|
'New Document' => $fileuploadform, |
|
'Published Documents' => $simpleeditdefaultform, |
|
'Special Documents' => $specialdocumentsform, |
|
'More Options' => $extresourcesform.'<br />'.$imspform.'<br />'.$recoverform, |
|
); |
); |
my $tid='1'; |
my $tid='1'; |
my $content='content'; |
|
my $navigation='navigation'; |
|
my $varcd = 'Main Course Documents'; |
|
$r->print(&generate_edit_table($tid,$content,$navigation,$varcd,\%namehash,\%orderhash)); |
|
$hadchanges=0; |
$hadchanges=0; |
my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$type); |
my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype); |
if ($error) { |
if ($error) { |
$r->print('<p><span class="LC_error">'.$error.'</span></p>'); |
$r->print('<p><span class="LC_error">'.$error.'</span></p>'); |
} |
} |
Line 3151 $r->print(&generate_edit_table($tid,$con
|
Line 3325 $r->print(&generate_edit_table($tid,$con
|
} |
} |
|
|
&changewarning($r,''); |
&changewarning($r,''); |
|
$r->print(&generate_edit_table($tid,\%orderhash)); |
|
|
$r->print('</div>'); |
$r->print('</div>'); |
|
} |
if ($env{'form.pagepath'}) { |
if ($env{'form.pagepath'}) { |
} |
} |
} |
|
# ----------------------------------------------------- Supplemental documents |
# ----------------------------------------------------- Supplemental documents |
if (!$forcestandard) { |
$active = 'style="display: none;"'; |
my $active = 'style="display: none;"'; |
|
if($activeClass == 1){ |
if($activeClass == 1){ |
$active = 'style="display: block;"'; |
$active = 'style="display: block;"'; |
} |
} |
$r->print('<div class="LC_ContentBox" id="Supplemental Course Documents" '.$active.'>'); |
$r->print('<div class="LC_ContentBox" id="supplCourseDocuments" '.$active.'>'); |
my $folder=$env{'form.folder'}; |
my $folder=$env{'form.folder'}; |
unless ($folder=~/^supplemental/) { |
unless ($folder=~/^supplemental/) { |
$folder='supplemental'; |
$folder='supplemental'; |
Line 3169 $r->print('</div>');
|
Line 3344 $r->print('</div>');
|
if ($folder =~ /^supplemental$/ && |
if ($folder =~ /^supplemental$/ && |
(($env{'form.folderpath'} =~ /^default\&/) || ($env{'form.folderpath'} eq ''))) { |
(($env{'form.folderpath'} =~ /^default\&/) || ($env{'form.folderpath'} eq ''))) { |
$env{'form.folderpath'} = 'supplemental&'. |
$env{'form.folderpath'} = 'supplemental&'. |
&escape(&mt('Supplemental '.$type.' Documents')); |
&escape(&mt('Supplemental '.$crstype.' Documents')); |
|
} elsif ($allowed) { |
|
$env{'form.folderpath'} = $savefolderpath; |
} |
} |
|
$env{'form.pagepath'} = ''; |
if ($allowed) { |
if ($allowed) { |
my $folderseq= |
my $folderseq= |
'/uploaded/'.$coursedom.'/'.$coursenum.'/supplemental_'.time. |
'/uploaded/'.$coursedom.'/'.$coursenum.'/supplemental_'.time. |
Line 3178 $r->print('</div>');
|
Line 3356 $r->print('</div>');
|
|
|
my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"'); |
my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"'); |
|
|
|
my $supupdocformbtn = "<input type='submit' value='".$lt{'upld'}."' />$help{'Uploading_From_Harddrive'}"; |
my $supupdocform=(<<SUPDOCFORM); |
my $supupdocform=(<<SUPDOCFORM); |
<form action="/adm/coursedocs" method="post" enctype="multipart/form-data"> |
<form action="/adm/coursedocs" method="post" name="supuploaddocument" enctype="multipart/form-data"> |
|
<input type="hidden" name="active" value="ee" /> |
$fileupload |
$fileupload |
<br /> |
<br /> |
<br /> |
<br /> |
Line 3188 $r->print('</div>');
|
Line 3368 $r->print('</div>');
|
</span> |
</span> |
<br /><br /> |
<br /><br /> |
$lt{'comment'}:<br /> |
$lt{'comment'}:<br /> |
<textarea cols=50 rows=4 name='comment'> |
<textarea cols="50" rows="4" name="comment"></textarea> |
</textarea> |
|
<br /> |
<br /> |
<input type="hidden" name="folderpath" value="$path" /> |
<input type="hidden" name="folderpath" value="$path" /> |
<input type="hidden" name="cmd" value="upload_supplemental" /> |
<input type="hidden" name="cmd" value="upload_supplemental" /> |
<span class="LC_nobreak"> |
|
<input type="submit" value="$lt{'upld'}" /> |
|
$help{'Uploading_From_Harddrive'} |
|
</span> |
|
</form> |
|
SUPDOCFORM |
SUPDOCFORM |
|
$supupdocform .= create_form_ul(Apache::lonhtmlcommon::htmltag('li',$supupdocformbtn,{class => 'LC_menubuttons_inline_text'}))."</form>"; |
|
|
my $supnewfolderform=(<<SNFFORM); |
my $supnewfolderform=(<<SNFFORM); |
<form action="/adm/coursedocs" method="post" name="supnewfolder"> |
<form action="/adm/coursedocs" method="post" name="supnewfolder"> |
|
<input type="hidden" name="active" value="ee" /> |
<input type="hidden" name="folderpath" value="$path" /> |
<input type="hidden" name="folderpath" value="$path" /> |
<input type="hidden" name="importdetail" value="" /> |
<input type="hidden" name="importdetail" value="" /> |
<span class="LC_nobreak"> |
<a onclick="javascript:makenewfolder(document.supnewfolder,'$folderseq');">$lt{'newf'}</a> |
<input name="newfolder" type="button" |
$help{'Adding_Folders'} |
onClick="javascript:makenewfolder(this.form,'$folderseq');" |
|
value="$lt{'newf'}" /> $help{'Adding_Folders'} |
|
</span> |
|
</form> |
</form> |
SNFFORM |
SNFFORM |
|
|
|
|
my $supnewextform=(<<SNEFORM); |
my $supnewextform=(<<SNEFORM); |
<form action="/adm/coursedocs" method="post" name="supnewext"> |
<form action="/adm/coursedocs" method="post" name="supnewext"> |
|
<input type="hidden" name="active" value="ff" /> |
<input type="hidden" name="folderpath" value="$path" /> |
<input type="hidden" name="folderpath" value="$path" /> |
<input type="hidden" name="importdetail" value="" /> |
<input type="hidden" name="importdetail" value="" /> |
<span class="LC_nobreak"> |
<a onclick="javascript:makenewext('supnewext');">$lt{'extr'}</a> $help{'Adding_External_Resource'} |
<input name="newext" type="button" |
|
onClick="javascript:makenewext('supnewext');" |
|
value="$lt{'extr'}" /> $help{'Adding_External_Resource'} |
|
</span> |
|
</form> |
</form> |
SNEFORM |
SNEFORM |
|
|
my $supnewsylform=(<<SNSFORM); |
my $supnewsylform=(<<SNSFORM); |
<form action="/adm/coursedocs" method="post" name="supnewsyl"> |
<form action="/adm/coursedocs" method="post" name="supnewsyl"> |
|
<input type="hidden" name="active" value="ff" /> |
<input type="hidden" name="folderpath" value="$path" /> |
<input type="hidden" name="folderpath" value="$path" /> |
<input type="hidden" name="importdetail" |
<input type="hidden" name="importdetail" |
value="Syllabus=/public/$coursedom/$coursenum/syllabus" /> |
value="Syllabus=/public/$coursedom/$coursenum/syllabus" /> |
<span class="LC_nobreak"> |
<a onclick="document.supnewsyl.submit()">$lt{'syll'}</a> |
<input name="newsyl" type="submit" value="$lt{'syll'}" /> |
|
$help{'Syllabus'} |
$help{'Syllabus'} |
</span> |
|
</form> |
</form> |
SNSFORM |
SNSFORM |
|
|
my $supnewaboutmeform=(<<SNAMFORM); |
my $supnewaboutmeform=(<<SNAMFORM); |
<form action="/adm/coursedocs" method="post" name="subnewaboutme"> |
<form action="/adm/coursedocs" method="post" name="supnewaboutme"> |
|
<input type="hidden" name="active" value="ff" /> |
<input type="hidden" name="folderpath" value="$path" /> |
<input type="hidden" name="folderpath" value="$path" /> |
<input type="hidden" name="importdetail" |
<input type="hidden" name="importdetail" |
value="$plainname=/adm/$udom/$uname/aboutme" /> |
value="$plainname=/adm/$udom/$uname/aboutme" /> |
<span class="LC_nobreak"> |
<a onclick="document.supnewaboutme.submit()">$lt{'mypi'}</a> |
<input name="newaboutme" type="submit" value="$lt{'mypi'}" /> |
|
$help{'My Personal Information Page'} |
$help{'My Personal Information Page'} |
</span> |
|
</form> |
</form> |
SNAMFORM |
SNAMFORM |
|
|
|
|
|
my @specialdocs = ( |
|
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/extres.png" alt="'.&mt('External Resource').'" />'=>$supnewextform}, |
|
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/syllabus.png" alt="'.&mt('Syllabus').'" />'=>$supnewsylform}, |
|
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/myaboutme.png" alt="'.&mt('My Personal Information Page').'" />'=>$supnewaboutmeform}, |
|
); |
my %suporderhash = ( |
my %suporderhash = ( |
'ee' => 'New Document', |
'00' => ['Supnewfolder', $supnewfolderform], |
'ff' => 'Special Documents', |
'ee' => ['Upload Document',$supupdocform], |
'zz' => 'Hide all Options', |
'ff' => ['Special Documents',create_form_ul(create_list_elements(@specialdocs))] |
); |
); |
|
|
my %supnamehash = ( |
my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype); |
'New Document' => $supupdocform, |
if ($error) { |
'Special Documents' => $supnewfolderform.'<br />'.$supnewextform.'<br />'.$supnewsylform.'<br />'.$supnewaboutmeform, |
$r->print('<p><span class="LC_error">'.$error.'</span></p>'); |
); |
} |
|
my $tid='2'; |
|
$r->print(&generate_edit_table($tid,\%suporderhash)); |
|
} else { |
|
my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype); |
|
if ($error) { |
|
$r->print('<p><span class="LC_error">'.$error.'</span></p>'); |
|
} |
|
} |
|
|
my $tid='2'; |
|
my $content='content'; |
|
my $navigation='navigation'; |
|
my $varscd = 'Supplemental Course Documents'; |
|
|
|
$r->print(&generate_edit_table($tid,$content,$navigation,$varscd,\%supnamehash,\%suporderhash)); |
|
my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$type); |
|
if ($error) { |
|
$r->print('<p><span class="LC_error">'.$error.'</span></p>'); |
|
} |
|
$r->print('</div>'); |
|
} |
|
} |
|
$r->print('<div class="LC_ContentBox" id="Special Admin Options" style="display: none;">'); |
|
$r->print(&generate_admin_options($containertag,$uploadtag,\%help,\%env)); |
|
$r->print('</div>'); |
|
$r->print('</div>'); |
$r->print('</div>'); |
|
$r->print('</div></div>'); |
|
|
|
|
if ($allowed) { |
if ($allowed) { |
$r->print(' |
$r->print(' |
<form method="post" name="extimport" action="/adm/coursedocs"> |
<form method="post" name="extimport" action="/adm/coursedocs"> |
Line 3300 $r->print('</div>');
|
Line 3468 $r->print('</div>');
|
} |
} |
$r->print(&Apache::loncommon::end_page()); |
$r->print(&Apache::loncommon::end_page()); |
return OK; |
return OK; |
} |
} |
|
|
sub generate_admin_options { |
sub generate_admin_options { |
my ($containertag,$uploadtag,$help_ref,$env_ref) = @_; |
my ($containertag,$uploadtag,$help_ref,$env_ref) = @_; |
Line 3314 sub generate_admin_options {
|
Line 3482 sub generate_admin_options {
|
my %env = %{$env_ref}; |
my %env = %{$env_ref}; |
my $dumpbut=&dumpbutton(); |
my $dumpbut=&dumpbutton(); |
my $exportbut=&exportbutton(); |
my $exportbut=&exportbutton(); |
return (<<ENDOPTIONFORM); |
my @list = ( |
<form action="/adm/coursedocs" method="post" name="courseverify"> |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/verify.png" alt="'.&mt('Verify Content').'" />'=>"<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"verify\", \"$lt{'vc'}\")'>$lt{'vc'}</a>$help{'Verify_Content'}"}, |
<ul style="list-style-type:none"> |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/resversion.png" alt="'.&mt('Check/Set Resource Versions').'" />'=>"<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"versions\", \"$lt{'cv'}\")'>$lt{'cv'}</a>$help{'Check_Resource_Versions'}"}, |
<li> |
); |
<input type="submit" name="verify" value="$lt{'vc'}" />$help{'Verify_Content'} |
if($dumpbut ne ''){ |
</li> |
push @list, {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/dump.png" alt="'.&mt('Dump Course DOCS to Construction Space: available on other servers').'" />'=>$dumpbut}; |
<li> |
} |
<input type="submit" name="versions" value="$lt{'cv'}" />$help{'Check_Resource_Versions'} |
push @list, ({'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/imsexport.png" alt="'.&mt('IMS Export').'" />'=>$exportbut}, |
</li> |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/symbs.png" alt="'.&mt('List Symbs').'" />'=>"<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"listsymbs\", \"$lt{'ls'}\")'>$lt{'ls'}</a><input type='hidden' name='folder' value='$env{'form.folder'}' />"}, |
<li> |
{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/log.png" alt="'.&mt('Show Log').'" />'=>"<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"docslog\", \"$lt{'sl'}\")'>$lt{'sl'}</a>"}, |
$dumpbut |
); |
</li> |
return '<form action="/adm/coursedocs" method="post" name="courseverify"><input type="hidden" id="dummy" />'.create_form_ul(create_list_elements(@list)).'</form>'; |
<li> |
|
$exportbut |
|
</li> |
|
<li> |
|
<input type="submit" name="listsymbs" value="$lt{'ls'}" /> |
|
</li> |
|
<li> |
|
<input type="hidden" name="folder" value="$env{'form.folder'}" /> |
|
<input type="submit" name="docslog" value="$lt{'sl'}" /> |
|
</li> |
|
</ul> |
|
</form> |
|
<!-- <div style="clear: both; height: 0px;"> </div>--> |
|
ENDOPTIONFORM |
|
|
|
} |
} |
|
|
|
|
sub generate_edit_table { |
sub generate_edit_table { |
my ($tid,$content,$navigation,$varcd,$namehash_ref,$orderhash_ref) = @_; |
my ($tid,$orderhash_ref) = @_; |
my %namehash = %{$namehash_ref}; |
return unless(ref($orderhash_ref) eq 'HASH'); |
my %orderhash = %{$orderhash_ref}; |
my %orderhash = %{$orderhash_ref}; |
my $form; |
my $form; |
|
my $activetab; |
$form = '<div class="LC_ContentBoxSpecial"><h4 class="LC_hcell">'.&mt($varcd).'</h4>'; |
my $active; |
$form .= '<ul id="'.$navigation.$tid.'" class="LC_TabContent">'; |
if($env{'form.active'} ne ''){ |
|
$activetab = $env{'form.active'}; |
|
} |
|
$form = '<div class="LC_Box">'; |
|
$form .= '<ul id="navigation'.$tid.'" class="LC_TabContent">'; |
foreach my $name (sort(keys(%orderhash))){ |
foreach my $name (sort(keys(%orderhash))){ |
if($name eq 'zz'){ |
if($name ne '00'){ |
$form .= '<li onclick="javascript:hideAll(this, \''.$navigation.$tid.'\' ,\''.$content.$tid.'\');" class="active">'.&mt($orderhash{$name}).'</li>'; |
if($activetab eq '' || $activetab ne $name){ |
}else{ |
$active = ''; |
$form .= '<li onclick="javascript:showPage(this, \''.$tid.$orderhash{$name}.'\', \''.$navigation.$tid.'\',\''.$content.$tid.'\');">'.&mt($orderhash{$name}).'</li>'; |
}elsif($activetab eq $name){ |
} |
$active = 'class="active"'; |
|
} |
|
$form .= '<li '.$active.' onclick="javascript:showPage(this, \''.$name.$tid.'\', \'navigation'.$tid.'\',\'content'.$tid.'\');">'.&mt(${$orderhash{$name}}[0]).'</li>'; |
|
} else { |
|
$form .= '<li '.$active.'>'.${$orderhash{$name}}[1].'</li>'; |
|
|
|
} |
} |
} |
$form .= '</ul>'; |
$form .= '</ul>'; |
$form .= '<div id="'.$content.$tid.'" style="padding: 0 0; margin: 0 0;">'; |
$form .= '<div id="content'.$tid.'" style="padding: 0 0; margin: 0 0; clear: both;">'; |
foreach my $field (keys(%namehash)){ |
foreach my $field (keys(%orderhash)){ |
$form .= '<div id="'.$tid.$field.'" class="LC_ContentBox" style="display: none;">'.$namehash{$field}.'</div>'; |
if($field ne '00'){ |
} |
if($activetab eq '' || $activetab ne $field){ |
|
$active = 'style="display: none;"'; |
|
}elsif($activetab eq $field){ |
|
$active = 'style="display:block;"'; |
|
} |
|
$form .= '<div id="'.$field.$tid.'"' |
|
.' class="LC_ContentBox" '.$active.'>'.${$orderhash{$field}}[1] |
|
.'</div>'; |
|
} |
|
} |
$form .= '</div></div>'; |
$form .= '</div></div>'; |
|
|
return $form; |
return $form; |
} |
} |
|
|
|
sub concept_test_builder { |
|
my ($r,$cdom,$cnum) = @_; |
|
&Apache::londocsgci::setdefaults($cdom); |
|
if ($env{'form.context'} eq 'requestcrs') { |
|
if ($env{'form.phase'} eq 'storemap') { |
|
&Apache::londocsgci::evaluate(); |
|
my $error = &Apache::londocsgci::store('requestcrs',$cdom,$cnum); |
|
my $output = '<p>'; |
|
if ($error) { |
|
$output .= '<span class="LC_error">'. |
|
&mt('An error occurred saving your concept test: [_1].',$error). |
|
'</span>'; |
|
} else { |
|
&Apache::lonuserstate::readmap($cdom.'/'.$cnum); |
|
$output .= &mt('Your concept test has been saved.'); |
|
} |
|
$output .= '</p>'; |
|
if (&Apache::lonrequestcourse::generate_page($r,'new','chooseitems')) { |
|
my $formname = 'requestcrs'; |
|
$r->print('<br /><form name="'.$formname.'" method="post" action="/adm/requestcourse">'); |
|
my $title = &mt('Concept Test Created'); |
|
&Apache::lonrequestcourse::roster_upload_form($r,$output,$formname,$title); |
|
} |
|
$r->print(&Apache::loncommon::end_page()); |
|
return; |
|
} |
|
} |
|
my $js = ' |
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
'. |
|
&Apache::londocsgci::builder_javascript($cdom). |
|
' |
|
// ]]> |
|
</script> |
|
'; |
|
$r->print(&Apache::loncommon::start_page('Assemble Test',$js)); |
|
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
|
&Apache::lonhtmlcommon::add_breadcrumb |
|
({href=>'/adm/coursedocs', |
|
text=>"Assemble Test"}); |
|
if ($env{'form.phase'} eq 'storemap') { |
|
&Apache::lonhtmlcommon::add_breadcrumb |
|
({href=>'/adm/coursedocs?phase=storemap', |
|
text=>"Validate Test"}); |
|
&Apache::londocsgci::evaluate(); |
|
$r->print(&Apache::lonhtmlcommon::breadcrumbs |
|
('Build Concept Test','Concept_Test_Assembly')); |
|
$r->print(&Apache::londocsgci::store('edit',$cdom,$cnum)); |
|
} elsif ($env{'form.phase'} eq 'storeparms') { |
|
&Apache::lonhtmlcommon::add_breadcrumb |
|
({href=>'/adm/coursedocs?phase=storeparms', |
|
text=>"Set Availability"}); |
|
$r->print(&Apache::lonhtmlcommon::breadcrumbs |
|
('Build Concept Test','Concept_Test_Assembly')); |
|
$r->print(&Apache::londocsgci::store_dates_parms($cdom,$cnum)); |
|
$r->print(&Apache::loncommon::end_page()); |
|
return; |
|
} else { |
|
$r->print(&Apache::lonhtmlcommon::breadcrumbs |
|
('Build Concept Test','Concept_Test_Assembly')); |
|
} |
|
&Apache::londocsgci::load($cdom); |
|
&Apache::londocsgci::listresources($r,'edit',$cdom,$cnum); |
|
$r->print(&Apache::loncommon::end_page()); |
|
return; |
|
} |
|
|
sub editing_js { |
sub editing_js { |
my ($udom,$uname) = @_; |
my ($udom,$uname) = @_; |
my $now = time(); |
my $now = time(); |
Line 3383 sub editing_js {
|
Line 3624 sub editing_js {
|
p_mdb => 'Title for the Drop Box', |
p_mdb => 'Title for the Drop Box', |
p_mbb => 'Title for the Discussion Board', |
p_mbb => 'Title for the Discussion Board', |
p_mab => "Enter user:domain for User's Personal Information Page", |
p_mab => "Enter user:domain for User's Personal Information Page", |
p_mab2 => "Personal Information Page [_99]", |
p_mab2 => 'Personal Information Page of ', |
p_mab_alrt1 => 'Not a valid user:domain', |
p_mab_alrt1 => 'Not a valid user:domain', |
p_mab_alrt2 => 'Please enter both user and domain in the format user:domain', |
p_mab_alrt2 => 'Please enter both user and domain in the format user:domain', |
p_chn => 'New Title', |
p_chn => 'New Title', |
Line 3574 function unselectInactive(nav) {
|
Line 3815 function unselectInactive(nav) {
|
currentNav = document.getElementById(nav); |
currentNav = document.getElementById(nav); |
currentLis = currentNav.getElementsByTagName('LI'); |
currentLis = currentNav.getElementsByTagName('LI'); |
for (i = 0; i < currentLis.length; i++) { |
for (i = 0; i < currentLis.length; i++) { |
currentLis[i].className = 'i'; |
if(currentLis[i].className == 'right active' || currentLis[i].className == 'right'){ |
|
currentLis[i].className = 'right'; |
|
}else{ |
|
currentLis[i].className = 'i'; |
|
} |
} |
} |
} |
} |
|
|
function hideAll(current, nav, data) { |
function hideAll(current, nav, data) { |
unselectInactive(nav); |
unselectInactive(nav); |
current.className = 'active'; |
if(current.className == 'right'){ |
|
current.className = 'right active' |
|
}else{ |
|
current.className = 'active'; |
|
} |
currentData = document.getElementById(data); |
currentData = document.getElementById(data); |
currentDivs = currentData.getElementsByTagName('DIV'); |
currentDivs = currentData.getElementsByTagName('DIV'); |
for (i = 0; i < currentDivs.length; i++) { |
for (i = 0; i < currentDivs.length; i++) { |
Line 3590 for (i = 0; i < currentDivs.length; i++)
|
Line 3839 for (i = 0; i < currentDivs.length; i++)
|
} |
} |
} |
} |
|
|
|
function openTabs(pageId) { |
|
tabnav = document.getElementById(pageId).getElementsByTagName('UL'); |
|
if(tabnav.length > 2 ){ |
|
currentNav = document.getElementById(tabnav[1].id); |
|
currentLis = currentNav.getElementsByTagName('LI'); |
|
for(i = 0; i< currentLis.length; i++){ |
|
if(currentLis[i].className == 'active') { |
|
funcString = currentLis[i].onclick.toString(); |
|
tab = funcString.split('"'); |
|
currentData = document.getElementById(tab[1]); |
|
currentData.style.display = 'block'; |
|
} |
|
} |
|
} |
|
} |
|
|
function showPage(current, pageId, nav, data) { |
function showPage(current, pageId, nav, data) { |
hideAll(current, nav, data); |
hideAll(current, nav, data); |
|
openTabs(pageId); |
unselectInactive(nav); |
unselectInactive(nav); |
current.className = 'active'; |
current.className = 'active'; |
currentData = document.getElementById(pageId); |
currentData = document.getElementById(pageId); |
Line 3599 function showPage(current, pageId, nav,
|
Line 3865 function showPage(current, pageId, nav,
|
return false; |
return false; |
} |
} |
|
|
|
function injectData(current, hiddenField, name, value) { |
|
currentElement = document.getElementById(hiddenField); |
|
currentElement.name = name; |
|
currentElement.value = value; |
|
current.submit(); |
|
} |
|
|
ENDNEWSCRIPT |
ENDNEWSCRIPT |
} |
} |
1; |
1; |