version 1.427, 2010/05/03 16:41:51
|
version 1.440, 2010/11/28 00:04:05
|
Line 1607 sub editor {
|
Line 1607 sub editor {
|
my $shown=0; |
my $shown=0; |
if (($ishidden) || ($isencrypted) || ($randompick>=0) || ($is_random_order)) { |
if (($ishidden) || ($isencrypted) || ($randompick>=0) || ($is_random_order)) { |
$r->print('<div class="LC_Box">'. |
$r->print('<div class="LC_Box">'. |
'<p>'.&mt('Parameters:'). |
'<ol class="LC_docs_parameters"><li class="LC_docs_parameters_title">'.&mt('Parameters:').'</li>'. |
'<ul>'. |
|
($randompick>=0?'<li>'.&mt('randomly pick [quant,_1,resource]',$randompick).'</li>':''). |
($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>':''). |
($is_random_order?'<li>'.&mt('random order').'</li>':''). |
'</ul></p>'); |
'</ol>'); |
if ($randompick>=0) { |
if ($randompick>=0) { |
$r->print('<p class="LC_warning">' |
$r->print('<p class="LC_warning">' |
.&mt('Caution: this folder is set to randomly pick a subset' |
.&mt('Caution: this folder is set to randomly pick a subset' |
Line 1683 sub editor {
|
Line 1682 sub editor {
|
sub process_file_upload { |
sub process_file_upload { |
my ($upload_output,$coursenum,$coursedom,$allfiles,$codebase,$uploadcmd) = @_; |
my ($upload_output,$coursenum,$coursedom,$allfiles,$codebase,$uploadcmd) = @_; |
# upload a file, if present |
# upload a file, if present |
my $parseaction; |
my ($parseaction,$showupload,$nextphase,$mimetype); |
if ($env{'form.parserflag'}) { |
if ($env{'form.parserflag'}) { |
$parseaction = 'parse'; |
$parseaction = 'parse'; |
} |
} |
my $phase_status; |
|
my $folder=$env{'form.folder'}; |
my $folder=$env{'form.folder'}; |
if ($folder eq '') { |
if ($folder eq '') { |
$folder='default'; |
$folder='default'; |
Line 1706 sub process_file_upload {
|
Line 1704 sub process_file_upload {
|
$LONCAPA::map::resources[1]=''; |
$LONCAPA::map::resources[1]=''; |
} |
} |
if ($fatal) { |
if ($fatal) { |
return 'failed'; |
$$upload_output = '<p><span class="LC_error">'.&mt('The uploaded file has not been stored as an error occurred reading the contents of the current folder.').'</span></p>'; |
|
return; |
} |
} |
my $destination = 'docs/'; |
my $destination = 'docs/'; |
if ($folder =~ /^supplemental/) { |
if ($folder =~ /^supplemental/) { |
Line 1717 sub process_file_upload {
|
Line 1716 sub process_file_upload {
|
} elsif ($folder =~ /^(default|supplemental)_(\d+)$/) { |
} elsif ($folder =~ /^(default|supplemental)_(\d+)$/) { |
$destination .= $2.'/'; |
$destination .= $2.'/'; |
} |
} |
# this is for a course, not a user, so set coursedoc flag |
# this is for a course, not a user, so set context to coursedoc. |
# probably the only place in the system where this should be "1" |
|
my $newidx=&LONCAPA::map::getresidx(); |
my $newidx=&LONCAPA::map::getresidx(); |
$destination .= $newidx; |
$destination .= $newidx; |
my $url=&Apache::lonnet::userfileupload('uploaddoc',1,$destination, |
my $url=&Apache::lonnet::userfileupload('uploaddoc','coursedoc',$destination, |
$parseaction,$allfiles, |
$parseaction,$allfiles, |
$codebase); |
$codebase,undef,undef,undef,undef, |
|
undef,undef,\$mimetype); |
|
if ($url =~ m{^/uploaded/\Q$coursedom\E/\Q$coursenum\E.*/([^/]+)$}) { |
|
my $stored = $1; |
|
$showupload = '<p>'.&mt('Uploaded [_1]','<span class="LC_filename">'. |
|
$stored.'</span>').'</p>'; |
|
} else { |
|
my ($filename) = ($env{'form.uploaddoc.filename'} =~ m{([^/]+)$}); |
|
|
|
$$upload_output = '<p><span class="LC_error">'.&mt('Unable to save file [_1].','<span class="LC_filename">'.$filename.'</span>').'</span></p>'; |
|
return; |
|
} |
my $ext='false'; |
my $ext='false'; |
if ($url=~m{^http://}) { $ext='true'; } |
if ($url=~m{^http://}) { $ext='true'; } |
$url = &LONCAPA::map::qtunescape($url); |
$url = &LONCAPA::map::qtunescape($url); |
Line 1740 sub process_file_upload {
|
Line 1749 sub process_file_upload {
|
($errtext,$fatal)=&storemap($coursenum,$coursedom, |
($errtext,$fatal)=&storemap($coursenum,$coursedom, |
$folder.'.'.$container); |
$folder.'.'.$container); |
if ($fatal) { |
if ($fatal) { |
$$upload_output .= '<p><span class="LC_error">'.$errtext.'</span></p>'; |
$$upload_output = '<p><span class="LC_error">'.$errtext.'</span></p>'; |
return 'failed'; |
return; |
} else { |
} else { |
if ($parseaction eq 'parse') { |
if ($parseaction eq 'parse' && $mimetype eq 'text/html') { |
|
$$upload_output = $showupload; |
my $total_embedded = scalar(keys(%{$allfiles})); |
my $total_embedded = scalar(keys(%{$allfiles})); |
if ($total_embedded > 0) { |
if ($total_embedded > 0) { |
my $num = 0; |
my $uploadphase = 'upload_embedded'; |
my $state = ' |
my $primaryurl = &HTML::Entities::encode($url,'<>&"'); |
<input type="hidden" name="folderpath" value="'.&HTML::Entities::encode($env{'form.folderpath'},'<>&"').'" /> |
my $state = &embedded_form_elems($uploadphase,$primaryurl,$newidx); |
<input type="hidden" name="cmd" value="upload_embedded" /> |
my ($embedded,$num) = |
<input type="hidden" name="newidx" value="'.$newidx.'" /> |
&Apache::loncommon::ask_for_embedded_content( |
<input type="hidden" name="primaryurl" value="'.&escape($url).'" /> |
'/adm/coursedocs',$state,$allfiles,$codebase,{'docs_url' => $url}); |
<input type="hidden" name="phasetwo" value="'.$total_embedded.'" />'; |
if ($embedded) { |
$phase_status = 'phasetwo'; |
if ($num) { |
|
$$upload_output .= |
$$upload_output .= |
'<p>'.&mt('This file contains embedded multimedia objects, which need to be uploaded.').'</p>'.$embedded; |
'This file contains embedded multimedia objects, which need to be uploaded to LON-CAPA.<br />'. |
$nextphase = $uploadphase; |
&Apache::loncommon::ask_for_embedded_content( |
} else { |
'/adm/coursedocs',$state,$allfiles,$codebase); |
$$upload_output .= $embedded; |
|
} |
|
} else { |
|
$$upload_output .= &mt('Embedded item(s) already present, so no additional upload(s) required').'<br />'; |
|
} |
} else { |
} else { |
$$upload_output .= 'No embedded items identified<br />'; |
$$upload_output .= &mt('No embedded items identified').'<br />'; |
} |
} |
} |
} |
} |
} |
} |
} |
return $phase_status; |
return $nextphase; |
} |
|
|
|
sub process_secondary_uploads { |
|
my ($upload_output,$coursedom,$coursenum,$formname,$num,$newidx) = @_; |
|
my $folder=$env{'form.folder'}; |
|
my $destination = 'docs/'; |
|
if ($folder =~ /^supplemental/) { |
|
$destination = 'supplemental/'; |
|
} |
|
if (($folder eq 'default') || ($folder eq 'supplemental')) { |
|
$destination .= 'default/'; |
|
} elsif ($folder =~ /^(default|supplemental)_(\d+)$/) { |
|
$destination .= $2.'/'; |
|
} |
|
$destination .= $newidx; |
|
my ($url,$filename); |
|
$url=&Apache::lonnet::userfileupload($formname.$num,1,$destination); |
|
($filename) = ($url =~ m{^/uploaded/\Q$coursedom\E/\Q$coursenum\E/\Q$destination\E/(.+)$}); |
|
return $filename; |
|
} |
} |
|
|
sub is_supplemental_title { |
sub is_supplemental_title { |
Line 1849 sub entryline {
|
Line 1844 sub entryline {
|
} |
} |
if ($env{'form.pagepath'}) { |
if ($env{'form.pagepath'}) { |
$type = $container = 'page'; |
$type = $container = 'page'; |
$esc_path=&escape($path = $env{'form.pagepath'}); |
$esc_path=&escape($env{'form.pagepath'}); |
$path = &HTML::Entities::encode($env{'form.pagepath'},'<>&"'); |
$path = &HTML::Entities::encode($env{'form.pagepath'},'<>&"'); |
$symb=&escape($env{'form.pagesymb'}); |
$symb=&escape($env{'form.pagesymb'}); |
} |
} |
Line 2482 ENDHEADERS
|
Line 2477 ENDHEADERS
|
# Set version |
# Set version |
$r->print(&Apache::loncommon::select_form($setversions{$linkurl}, |
$r->print(&Apache::loncommon::select_form($setversions{$linkurl}, |
'set_version_'.$linkurl, |
'set_version_'.$linkurl, |
('select_form_order' => |
{'select_form_order' => |
['',1..$currentversion,'mostrecent'], |
['',1..$currentversion,'mostrecent'], |
'' => '', |
'' => '', |
'mostrecent' => &mt('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; |
for (my $prevvers=1;$prevvers<$currentversion;$prevvers++) { |
for (my $prevvers=1;$prevvers<$currentversion;$prevvers++) { |
Line 2719 sub handler {
|
Line 2714 sub handler {
|
$env{'form.pagename'}=&unescape(pop(@pagepath)); |
$env{'form.pagename'}=&unescape(pop(@pagepath)); |
$env{'form.folder'}=pop(@pagepath); |
$env{'form.folder'}=pop(@pagepath); |
$containertag = '<input type="hidden" name="pagepath" value="" />'. |
$containertag = '<input type="hidden" name="pagepath" value="" />'. |
'<input type="hidden" name="pagesymb" value="" />'; |
'<input type="hidden" name="pagesymb" value="" />'; |
$uploadtag = '<input type="hidden" name="pagepath" value="'.&HTML::Entities::encode($env{'form.pagepath'},'<>&"').'" />'. |
$uploadtag = |
'<input type="hidden" name="pagesymb" value="'.&HTML::Entities::encode($env{'form.pagesymb'},'<>&"').'" />'; |
'<input type="hidden" name="pagepath" value="'.&HTML::Entities::encode($env{'form.pagepath'},'<>&"').'" />'. |
|
'<input type="hidden" name="pagesymb" value="'.&HTML::Entities::encode($env{'form.pagesymb'},'<>&"').'" />'. |
|
'<input type="hidden" name="folderpath" value="" />'; |
|
} else { |
|
my $folderpath=$env{'form.folderpath'}; |
|
if (!$folderpath) { |
|
if ($env{'form.folder'} eq '' || |
|
$env{'form.folder'} eq 'supplemental') { |
|
$folderpath='default&'. |
|
&escape(&mt('Main '.$crstype.' Documents')); |
|
} |
|
} |
|
$containertag = '<input type="hidden" name="folderpath" value="" />'; |
|
$uploadtag = '<input type="hidden" name="folderpath" value="'.&HTML::Entities::encode($folderpath,'<>&"').'" />'; |
} |
} |
if ($r->uri=~/^\/adm\/coursedocs\/showdoc\/(.*)$/) { |
if ($r->uri=~/^\/adm\/coursedocs\/showdoc\/(.*)$/) { |
$showdoc='/'.$1; |
$showdoc='/'.$1; |
Line 2813 sub create_form_ul {
|
Line 2821 sub create_form_ul {
|
|
|
my %allfiles = (); |
my %allfiles = (); |
my %codebase = (); |
my %codebase = (); |
my ($upload_result,$upload_output); |
my ($upload_result,$upload_output,$uploadphase); |
if ($allowed) { |
if ($allowed) { |
if (($env{'form.uploaddoc.filename'}) && |
if (($env{'form.uploaddoc.filename'}) && |
($env{'form.cmd'}=~/^upload_(\w+)/)) { |
($env{'form.cmd'}=~/^upload_(\w+)/)) { |
# Process file upload - phase one - upload and parse primary file. |
my $context = $1; |
|
# Process file upload - phase one - upload and parse primary file. |
undef($hadchanges); |
undef($hadchanges); |
$upload_result = &process_file_upload(\$upload_output,$coursenum, |
$uploadphase = &process_file_upload(\$upload_output,$coursenum,$coursedom, |
$coursedom,\%allfiles, |
\%allfiles,\%codebase,$context); |
\%codebase,$1); |
|
if ($hadchanges) { |
if ($hadchanges) { |
&mark_hash_old(); |
&mark_hash_old(); |
} |
} |
if ($upload_result eq 'phasetwo') { |
$r->print($upload_output); |
$r->print($upload_output); |
} elsif ($env{'form.phase'} eq 'upload_embedded') { |
} |
# Process file upload - phase two - upload embedded objects |
} elsif ($env{'form.phasetwo'}) { |
$uploadphase = 'check_embedded'; |
my %newname = (); |
my $primaryurl = &HTML::Entities::encode($env{'form.primaryurl'},'<>&"'); |
my %origname = (); |
my $state = &embedded_form_elems($uploadphase,$primaryurl, |
my %attribs = (); |
$env{'form.newidx'}); |
my $updateflag = 0; |
my $docuname=$env{'course.'.$env{'request.course.id'}.'.num'}; |
my $residx = $env{'form.newidx'}; |
my $docudom=$env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $primary_url = &unescape($env{'form.primaryurl'}); |
my ($destination,$dir_root) = &embedded_destination(); |
# Process file upload - phase two - gather secondary files. |
my $url_root = '/uploaded/'.$docudom.'/'.$docuname; |
for (my $i=0; $i<$env{'form.phasetwo'}; $i++) { |
my $actionurl = '/adm/coursedocs'; |
if ($env{'form.embedded_item_'.$i.'.filename'}) { |
my ($result,$flag) = |
my $javacodebase; |
&Apache::loncommon::upload_embedded('coursedoc',$destination, |
$newname{$i} = &process_secondary_uploads(\$upload_output,$coursedom,$coursenum,'embedded_item_',$i,$residx); |
$docuname,$docudom,$dir_root,$url_root,undef,undef,undef,$state, |
$origname{$i} = &unescape($env{'form.embedded_orig_'.$i}); |
$actionurl); |
if (exists($env{'form.embedded_codebase_'.$i})) { |
$r->print($result.&return_to_editor()); |
$javacodebase = &unescape($env{'form.embedded_codebase_'.$i}); |
} elsif ($env{'form.phase'} eq 'check_embedded') { |
$origname{$i} =~ s#^\Q$javacodebase\E/##; |
# Process file upload - phase three - modify references in HTML file |
} |
$uploadphase = 'modified_orightml'; |
my @attributes = (); |
my $docuname=$env{'course.'.$env{'request.course.id'}.'.num'}; |
if ($env{'form.embedded_attrib_'.$i} =~ /:/) { |
my $docudom=$env{'course.'.$env{'request.course.id'}.'.domain'}; |
@attributes = split(/:/,$env{'form.embedded_attrib_'.$i}); |
my ($destination,$dir_root) = &embedded_destination(); |
} else { |
$r->print(&Apache::loncommon::modify_html_refs('coursedoc',$destination, |
@attributes = ($env{'form.embedded_attrib_'.$i}); |
$docuname,$docudom,undef, |
} |
$dir_root). |
foreach my $attr (@attributes) { |
&return_to_editor()); |
push(@{$attribs{$i}},&unescape($attr)); |
|
} |
|
if ($javacodebase) { |
|
$codebase{$i} = $javacodebase; |
|
$codebase{$i} =~ s#/$##; |
|
$updateflag = 1; |
|
} |
|
} |
|
unless ($newname{$i} eq $origname{$i}) { |
|
$updateflag = 1; |
|
} |
|
} |
|
# Process file upload - phase three - modify primary file |
|
if ($updateflag) { |
|
my ($content,$rtncode); |
|
my $updateflag = 0; |
|
my $getstatus = &Apache::lonnet::getuploaded('GET',$primary_url,$coursedom,$coursenum,\$content,\$rtncode); |
|
if ($getstatus eq 'ok') { |
|
foreach my $item (keys(%newname)) { |
|
if ($newname{$item} ne $origname{$item}) { |
|
my $attrib_regexp = ''; |
|
if (@{$attribs{$item}} > 1) { |
|
$attrib_regexp = join('|',@{$attribs{$item}}); |
|
} else { |
|
$attrib_regexp = $attribs{$item}[0]; |
|
} |
|
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; |
|
} |
|
if (exists($codebase{$item})) { |
|
$content =~ s/(codebase\s*=\s*["']?)\Q$codebase{$item}\E(["']?)/$1.$2/i; #' stupid emacs |
|
} |
|
} |
|
# Save edited file. |
|
my $saveresult; |
|
my $docuname=$env{'course.'.$env{'request.course.id'}.'.num'}; |
|
my $docudom=$env{'course.'.$env{'request.course.id'}.'.domain'}; |
|
my $url = &Apache::lonnet::store_edited_file($primary_url,$content,$docudom,$docuname,\$saveresult); |
|
} else { |
|
&Apache::lonnet::logthis('retrieval of uploaded file - '.$primary_url.' - for editing, failed: '.$getstatus); |
|
} |
|
} |
|
} |
} |
} |
} |
|
|
unless ($showdoc || $upload_result eq 'phasetwo') { |
unless ($showdoc || $uploadphase) { |
# ----------------------------------------------------------------------------- |
# ----------------------------------------------------------------------------- |
my %lt=&Apache::lonlocal::texthash( |
my %lt=&Apache::lonlocal::texthash( |
'uplm' => 'Upload a new main '.lc($crstype).' document', |
'uplm' => 'Upload a new main '.lc($crstype).' document', |
Line 2908 sub create_form_ul {
|
Line 2873 sub create_form_ul {
|
'upld' => 'Import Document', |
'upld' => 'Import Document', |
'srch' => 'Search', |
'srch' => 'Search', |
'impo' => 'Import', |
'impo' => 'Import', |
'book' => 'Import Bookmarks', |
'wish' => 'Import from Wishlist', |
'selm' => 'Select Map', |
'selm' => 'Select Map', |
'load' => 'Load Map', |
'load' => 'Load Map', |
'reco' => 'Recover Deleted Documents', |
'reco' => 'Recover Deleted Documents', |
Line 2959 CHBO
|
Line 2924 CHBO
|
$fileupload |
$fileupload |
<br /> |
<br /> |
$lt{'title'}:<br /> |
$lt{'title'}:<br /> |
<input type="text" size="50" name="comment" /> |
<input type="text" size="80" name="comment" /> |
$uploadtag |
$uploadtag |
<input type="hidden" name="cmd" value="upload_default" /> |
<input type="hidden" name="cmd" value="upload_default" /> |
<br /> |
<br /> |
Line 2981 SEDFFORM
|
Line 2946 SEDFFORM
|
my @simpleeditdefaultforma = ( |
my @simpleeditdefaultforma = ( |
{ '<img class="LC_noBorder LC_middle" src="/res/adm/pages/src.png" alt="'.$lt{srch}.'" onclick="javascript:groupsearch()" />' => "$uploadtag<a class='LC_menubuttons_link' href='javascript:groupsearch()'>$lt{'srch'}</a>" }, |
{ '<img class="LC_noBorder LC_middle" src="/res/adm/pages/src.png" alt="'.$lt{srch}.'" onclick="javascript:groupsearch()" />' => "$uploadtag<a class='LC_menubuttons_link' href='javascript:groupsearch()'>$lt{'srch'}</a>" }, |
{ '<img class="LC_noBorder LC_middle" src="/res/adm/pages/res.png" alt="'.$lt{impo}.'" onclick="javascript:groupimport();"/>' => "<a class='LC_menubuttons_link' href='javascript:groupimport();'>$lt{'impo'}</a>$help{'Importing_LON-CAPA_Resource'}" }, |
{ '<img class="LC_noBorder LC_middle" src="/res/adm/pages/res.png" alt="'.$lt{impo}.'" onclick="javascript:groupimport();"/>' => "<a class='LC_menubuttons_link' href='javascript:groupimport();'>$lt{'impo'}</a>$help{'Importing_LON-CAPA_Resource'}" }, |
{ '<img class="LC_noBorder LC_middle" src="/res/adm/pages/vbkm.png" alt="'.$lt{book}.'" onclick="javascript:groupopen(0,1,1);" />' => "<a class='LC_menubuttons_link' href='javascript:groupopen(0,1,1);'>$lt{'book'}</a>" }, |
{ '<img class="LC_noBorder LC_middle" src="/res/adm/pages/wishlist.png" alt="'.$lt{wish}.'" onclick="javascript:open_Wishlist_Import();" />' => "<a class='LC_menubuttons_link' href='javascript:open_Wishlist_Import();'>$lt{'wish'}</a>" }, |
); |
); |
$simpleeditdefaultform .= create_form_ul(create_list_elements(@simpleeditdefaultforma)); |
$simpleeditdefaultform .= create_form_ul(create_list_elements(@simpleeditdefaultforma)); |
$simpleeditdefaultform .=(<<SEDFFORM); |
$simpleeditdefaultform .=(<<SEDFFORM); |
Line 3014 ERFORM
|
Line 2979 ERFORM
|
'sl' => 'Show Log' |
'sl' => 'Show Log' |
); |
); |
|
|
my $folderpath=$env{'form.folderpath'}; |
|
if (!$folderpath) { |
|
if ($env{'form.folder'} eq '' || |
|
$env{'form.folder'} eq 'supplemental') { |
|
$folderpath='default&'. |
|
&escape(&mt('Main '.$crstype.' Documents')); |
|
} |
|
} |
|
unless ($env{'form.pagepath'}) { |
|
$containertag = '<input type="hidden" name="folderpath" value="" />'; |
|
$uploadtag = '<input type="hidden" name="folderpath" value="'.&HTML::Entities::encode($folderpath,'<>&"').'" />'; |
|
} |
|
$r->print(<<HIDDENFORM); |
$r->print(<<HIDDENFORM); |
<form name="renameform" method="post" action="/adm/coursedocs"> |
<form name="renameform" method="post" action="/adm/coursedocs"> |
<input type="hidden" name="title" /> |
<input type="hidden" name="title" /> |
Line 3062 HIDDENFORM
|
Line 3015 HIDDENFORM
|
$activeClass = 0; |
$activeClass = 0; |
} |
} |
} |
} |
$r->print('<li '.$active.' onclick="javascript:showPage(this,\'mainCourseDocuments\',\'mainnav\',\'maincoursedoc\');"><a href="#"><b>'.$tabtitles{'main'}{$crstype}.'</b></a></li>'); |
$r->print('<li '.$active |
|
. ' onclick="javascript:showPage(this,\'mainCourseDocuments\',\'mainnav\',\'maincoursedoc\');"><a href="#"><b>'.$tabtitles{'main'}{$crstype}.'</b></a></li>'); |
$active = ''; |
$active = ''; |
if (!$forcestandard || ($env{'form.folderpath'}=~/^supplemental/)) { |
if (!$forcestandard || ($env{'form.folderpath'}=~/^supplemental/)) { |
if($activeClass == 1){ |
if($activeClass == 1){ |
$active = 'class="active"'; |
$active = 'class="active"'; |
} |
} |
} |
} |
$r->print('<li '.$active.' onclick="javascript:showPage(this,\'supplCourseDocuments\',\'mainnav\',\'maincoursedoc\');"><a href="#"><b>'.$tabtitles{'supplemental'}{$crstype}.'</b></a></li>'); |
$r->print('<li '.$active |
|
.' onclick="javascript:showPage(this,\'supplCourseDocuments\',\'mainnav\',\'maincoursedoc\');"><a href="#"><b>'.$tabtitles{'supplemental'}{$crstype}.'</b></a></li>'); |
$r->print('</ul>'); |
$r->print('</ul>'); |
} else { |
} else { |
$r->print('<br />'); |
$r->print('<br />'); |
Line 3117 HIDDENFORM
|
Line 3072 HIDDENFORM
|
|
|
my $recoverform=(<<RFORM); |
my $recoverform=(<<RFORM); |
<form action="/adm/groupsort" method="post" name="recover"> |
<form action="/adm/groupsort" method="post" name="recover"> |
<a class="LC_menubuttons_link" href="javascript:groupopen('$readfile',1,0)">$lt{'reco'}</a> |
<a class="LC_menubuttons_link" href="javascript:groupopen('$readfile',1)">$lt{'reco'}</a> |
</form> |
</form> |
RFORM |
RFORM |
|
|
Line 3274 NGFFORM
|
Line 3229 NGFFORM
|
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/page.png" alt="'.$lt{newp}.'" onclick="javascript:makenewpage(document.newpage,\''.$pageseq.'\');" />'=>$newpageform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/page.png" alt="'.$lt{newp}.'" onclick="javascript:makenewpage(document.newpage,\''.$pageseq.'\');" />'=>$newpageform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/syllabus.png" alt="'.$lt{syll}.'" onclick="document.newsyl.submit()" />'=>$newsylform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/syllabus.png" alt="'.$lt{syll}.'" onclick="document.newsyl.submit()" />'=>$newsylform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/groupportfolio.png" alt="'.$lt{grpo}.'" onclick="document.newgroupfiles.submit()" />'=>$newgroupfileform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/groupportfolio.png" alt="'.$lt{grpo}.'" onclick="document.newgroupfiles.submit()" />'=>$newgroupfileform}, |
); |
); |
|
|
} |
my @importdoc = ( |
|
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/extres.png" alt="'.$lt{extr}.'" onclick="javascript:makenewext(\'newext\');" />'=>$extresourcesform}, |
|
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/ims.png" alt="'.$lt{imsf}.'" onclick="javascript:makeims();" />'=>$imspform},); |
|
$fileuploadform = create_form_ul(create_list_elements(@importdoc)) . '<hr/>' . $fileuploadform; |
|
|
push @specialdocumentsforma, ({'<img class="LC_noBorder LC_middle" src="/res/adm/pages/navigation.png" alt="'.$lt{navc}.'" onclick="document.newnav.submit()" />'=>$newnavform}, |
push @specialdocumentsforma, ({'<img class="LC_noBorder LC_middle" src="/res/adm/pages/navigation.png" alt="'.$lt{navc}.'" onclick="document.newnav.submit()" />'=>$newnavform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/simple.png" alt="'.$lt{sipa}.'" onclick="javascript:makesmppage();" />'=>$newsmppageform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/simple.png" alt="'.$lt{sipa}.'" onclick="javascript:makesmppage();" />'=>$newsmppageform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/simpprob.png" alt="'.$lt{sipr}.'" onclick="javascript:makesmpproblem();" />'=>$newsmpproblemform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/simpprob.png" alt="'.$lt{sipr}.'" onclick="javascript:makesmpproblem();" />'=>$newsmpproblemform}, |
Line 3288 NGFFORM
|
Line 3247 NGFFORM
|
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/clst.png" alt="'.$lt{rost}.'" onclick="document.newroster.submit()" />'=>$newrosterform},); |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/clst.png" alt="'.$lt{rost}.'" onclick="document.newroster.submit()" />'=>$newrosterform},); |
|
|
$specialdocumentsform = create_form_ul(create_list_elements(@specialdocumentsforma)); |
$specialdocumentsform = create_form_ul(create_list_elements(@specialdocumentsforma)); |
|
} |
|
|
if($env{'form.pagepath'}) { |
if($env{'form.pagepath'}) { |
|
|
Line 3301 if($env{'form.pagepath'}) {
|
Line 3261 if($env{'form.pagepath'}) {
|
my @tools = ( |
my @tools = ( |
# {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/extres.png" alt="'.$lt{extr}.'" />'=>$extresourcesform}, |
# {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/extres.png" alt="'.$lt{extr}.'" />'=>$extresourcesform}, |
# {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/ims.png" alt="'.$lt{imsf}.'" />'=>$imspform}, |
# {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/ims.png" alt="'.$lt{imsf}.'" />'=>$imspform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/recover.png" alt="'.$lt{reco}.'" onclick="javascript:groupopen(\''.$readfile.'\',1,0)" />'=>$recoverform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/recover.png" alt="'.$lt{reco}.'" onclick="javascript:groupopen(\''.$readfile.'\',1)" />'=>$recoverform}, |
); |
); |
|
|
my @importdoc = ( |
|
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/extres.png" alt="'.$lt{extr}.'" onclick="javascript:makenewext(\'newext\');" />'=>$extresourcesform}, |
|
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/ims.png" alt="'.$lt{imsf}.'" onclick="javascript:makeims();" />'=>$imspform}, |
|
); |
|
$fileuploadform = create_form_ul(create_list_elements(@importdoc)) . '<hr/>' . $fileuploadform; |
|
my %orderhash = ( |
my %orderhash = ( |
'00' => ['Newfolder',$newfolderform], |
|
'aa' => ['Import Documents',$fileuploadform], |
'aa' => ['Import Documents',$fileuploadform], |
'bb' => ['Published Resources',$simpleeditdefaultform], |
'bb' => ['Published Resources',$simpleeditdefaultform], |
'cc' => ['Special Documents',$specialdocumentsform], |
'cc' => ['Special Documents',$specialdocumentsform], |
'dd' => ['Tools', create_form_ul(create_list_elements(@tools)).&generate_admin_options($containertag,$uploadtag,\%help,\%env)], |
'dd' => ['Tools', create_form_ul(create_list_elements(@tools)).&generate_admin_options(\%help,\%env)], |
); |
); |
|
unless($env{'form.pagepath'}) { |
|
$orderhash{'00'} = ['Newfolder',$newfolderform]; |
|
} |
|
|
my $tid='1'; |
my $tid='1'; |
$hadchanges=0; |
$hadchanges=0; |
my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype); |
my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype); |
Line 3331 $r->print(&generate_edit_table($tid,\%or
|
Line 3289 $r->print(&generate_edit_table($tid,\%or
|
|
|
$r->print('</div>'); |
$r->print('</div>'); |
} |
} |
if ($env{'form.pagepath'}) { |
|
} |
|
# ----------------------------------------------------- Supplemental documents |
# ----------------------------------------------------- Supplemental documents |
$active = 'style="display: none;"'; |
$active = 'style="display: none;"'; |
if($activeClass == 1){ |
if($activeClass == 1){ |
Line 3465 $r->print('</div></div>');
|
Line 3421 $r->print('</div></div>');
|
</form>'); |
</form>'); |
} |
} |
} else { |
} else { |
unless ($upload_result eq 'phasetwo') { |
unless ($uploadphase) { |
# -------------------------------------------------------- This is showdoc mode |
# -------------------------------------------------------- This is showdoc mode |
$r->print("<h1>".&mt('Uploaded Document').' - '. |
$r->print("<h1>".&mt('Uploaded Document').' - '. |
&Apache::lonnet::gettitle($r->uri).'</h1><p>'. |
&Apache::lonnet::gettitle($r->uri).'</h1><p>'. |
Line 3478 $r->print('</div></div>');
|
Line 3434 $r->print('</div></div>');
|
return OK; |
return OK; |
} |
} |
|
|
|
sub embedded_form_elems { |
|
my ($phase,$primaryurl,$newidx) = @_; |
|
my $folderpath = &HTML::Entities::encode($env{'form.folderpath'},'<>&"'); |
|
return <<STATE; |
|
<input type="hidden" name="folderpath" value="$folderpath" /> |
|
<input type="hidden" name="cmd" value="upload_embedded" /> |
|
<input type="hidden" name="newidx" value="$newidx" /> |
|
<input type="hidden" name="phase" value="$phase" /> |
|
<input type="hidden" name="primaryurl" value="$primaryurl" /> |
|
STATE |
|
} |
|
|
|
sub embedded_destination { |
|
my $folder=$env{'form.folder'}; |
|
my $destination = 'docs/'; |
|
if ($folder =~ /^supplemental/) { |
|
$destination = 'supplemental/'; |
|
} |
|
if (($folder eq 'default') || ($folder eq 'supplemental')) { |
|
$destination .= 'default/'; |
|
} elsif ($folder =~ /^(default|supplemental)_(\d+)$/) { |
|
$destination .= $2.'/'; |
|
} |
|
$destination .= $env{'form.newidx'}; |
|
my $dir_root = '/userfiles'; |
|
return ($destination,$dir_root); |
|
} |
|
|
|
sub return_to_editor { |
|
my $actionurl = '/adm/coursedocs'; |
|
return '<p><form name="backtoeditor" method="post" action="'.$actionurl.'" />'."\n". |
|
'<input type="hidden" name="folderpath" value="'.&HTML::Entities::encode($env{'form.folderpath'},'<>&"').'" /></form>'."\n". |
|
'<a href="javascript:document.backtoeditor.submit();">'.&mt('Return to Editor'). |
|
'</a></p>'; |
|
} |
|
|
sub generate_admin_options { |
sub generate_admin_options { |
my ($containertag,$uploadtag,$help_ref,$env_ref) = @_; |
my ($help_ref,$env_ref) = @_; |
my %lt=&Apache::lonlocal::texthash( |
my %lt=&Apache::lonlocal::texthash( |
'vc' => 'Verify Content', |
'vc' => 'Verify Content', |
'cv' => 'Check/Set Resource Versions', |
'cv' => 'Check/Set Resource Versions', |
'ls' => 'List Symbs', |
'ls' => 'List Symbs', |
Line 3501 sub generate_admin_options {
|
Line 3493 sub generate_admin_options {
|
if($dumpbut ne ''){ |
if($dumpbut ne ''){ |
push @list, {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/dump.png" alt="'.$lt{dcd}.'" />'=>$dumpbut}; |
push @list, {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/dump.png" alt="'.$lt{dcd}.'" />'=>$dumpbut}; |
} |
} |
push @list, ({'<img class="LC_noBorder LC_middle" src="/res/adm/pages/imsexport.png" alt="'.$lt{imse}.'" class="LC_menubuttons_link" href=\'javascript:injectData(document.courseverify, "dummy", "exportcourse", "'.&mt('IMS Export').'")\' />' |
push @list, ({'<img class="LC_noBorder LC_middle" src="/res/adm/pages/imsexport.png" alt="'.$lt{imse}.'" onclick="javascript:injectData(document.courseverify, \'dummy\', \'exportcourse\', \''.&mt('IMS Export').'\');" />' |
=>$exportbut}, |
=>$exportbut}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/symbs.png" alt="'.$lt{ls}.'" onclick=\'javascript:injectData(document.courseverify, "dummy", "listsymbs", "'.$lt{'ls'}.'")\' />' |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/symbs.png" alt="'.$lt{ls}.'" onclick=\'javascript:injectData(document.courseverify, "dummy", "listsymbs", "'.$lt{'ls'}.'")\' />' |
=>"<a class='LC_menubuttons_link' href='javascript:injectData(document.courseverify, \"dummy\", \"listsymbs\", \"$lt{'ls'}\")'>$lt{'ls'}</a><input type='hidden' name='folder' value='$env{'form.folder'}' />"}, |
=>"<a class='LC_menubuttons_link' href='javascript:injectData(document.courseverify, \"dummy\", \"listsymbs\", \"$lt{'ls'}\")'>$lt{'ls'}</a><input type='hidden' name='folder' value='$env{'form.folder'}' />"}, |
Line 3532 sub generate_edit_table {
|
Line 3524 sub generate_edit_table {
|
}elsif($activetab eq $name){ |
}elsif($activetab eq $name){ |
$active = 'class="active"'; |
$active = 'class="active"'; |
} |
} |
$form .= '<li '.$active.' onclick="javascript:showPage(this, \''.$name.$tid.'\', \'navigation'.$tid.'\',\'content'.$tid.'\');"><a href="javascript:;"><b>'.&mt(${$orderhash{$name}}[0]).'</b></a></li>'; |
$form .= '<li '.$active |
|
.' onmouseover="javascript:showPage(this, \''.$name.$tid.'\', \'navigation'.$tid.'\',\'content'.$tid.'\');"' |
|
.' onclick="javascript:showPage(this, \''.$name.$tid.'\', \'navigation'.$tid.'\',\'content'.$tid.'\');"><a href="javascript:;"><b>'.&mt(${$orderhash{$name}}[0]).'</b></a></li>'; |
} else { |
} else { |
$form .= '<li '.$active.'>'.${$orderhash{$name}}[1].'</li>'; |
$form .= '<li '.$active.'>'.${$orderhash{$name}}[1].'</li>'; |
|
|
Line 3584 sub editing_js {
|
Line 3578 sub editing_js {
|
p_ctr2b => '?[_98]' |
p_ctr2b => '?[_98]' |
); |
); |
|
|
|
my $crstype = &Apache::loncommon::course_type(); |
|
my $docs_folderpath = &HTML::Entities::encode($env{'environment.internal.'.$env{'request.course.id'}.'.docs_folderpath.folderpath'},'<>&"'); |
|
my $docs_pagepath = &HTML::Entities::encode($env{'environment.internal.'.$env{'request.course.id'}.'.docs_folderpath.pagepath'},'<>&"'); |
|
my $main_container_page; |
|
if ($docs_folderpath eq '') { |
|
if ($docs_pagepath ne '') { |
|
$main_container_page = 1; |
|
} |
|
} |
|
my $toplevelmain = 'default&Main%20'.$crstype.'%20Documents'; |
|
my $toplevelsupp = 'supplemental&Supplemental%20'.$crstype.'%20Documents'; |
|
|
return <<ENDNEWSCRIPT; |
return <<ENDNEWSCRIPT; |
function makenewfolder(targetform,folderseq) { |
function makenewfolder(targetform,folderseq) { |
var foldername=prompt('$lt{"p_mnf"}','$lt{"t_mnf"}'); |
var foldername=prompt('$lt{"p_mnf"}','$lt{"t_mnf"}'); |
Line 3812 function showPage(current, pageId, nav,
|
Line 3818 function showPage(current, pageId, nav,
|
current.className = 'active'; |
current.className = 'active'; |
currentData = document.getElementById(pageId); |
currentData = document.getElementById(pageId); |
currentData.style.display = 'block'; |
currentData.style.display = 'block'; |
|
if (nav == 'mainnav') { |
|
var storedpath = "$docs_folderpath"; |
|
if (storedpath == '') { |
|
storedpath = "$docs_pagepath"; |
|
} |
|
var storedpage = "$main_container_page"; |
|
var reg = new RegExp("^supplemental"); |
|
if (pageId == 'mainCourseDocuments') { |
|
if (storedpage == 1) { |
|
document.simpleedit.folderpath.value = ''; |
|
document.uploaddocument.folderpath.value = ''; |
|
} else { |
|
if (reg.test(storedpath)) { |
|
document.simpleedit.folderpath.value = '$toplevelmain'; |
|
document.uploaddocument.folderpath.value = '$toplevelmain'; |
|
document.newext.folderpath.value = '$toplevelmain'; |
|
} else { |
|
document.simpleedit.folderpath.value = storedpath; |
|
document.uploaddocument.folderpath.value = storedpath; |
|
document.newext.folderpath.value = storedpath; |
|
} |
|
} |
|
} else { |
|
if (reg.test(storedpath)) { |
|
document.simpleedit.folderpath.value = storedpath; |
|
document.supuploaddocument.folderpath.value = storedpath; |
|
document.supnewext.folderpath.value = storedpath; |
|
} else { |
|
document.simpleedit.folderpath.value = '$toplevelsupp'; |
|
document.supuploaddocument.folderpath.value = '$toplevelsupp'; |
|
document.supnewext.folderpath.value = '$toplevelsupp'; |
|
} |
|
} |
|
} |
return false; |
return false; |
} |
} |
|
|