');
for (my $idx=0;$idx<=$docslog{$id}{'logentry'}{'maxidx'};$idx++) {
my $oldname=(split(/\:/,$docslog{$id}{'logentry'}{'before_resources_'.$idx}))[0];
my $newname=(split(/\:/,$docslog{$id}{'logentry'}{'after_resources_'.$idx}))[0];
- if ($oldname ne $newname) {
- $r->print(&LONCAPA::map::qtunescape($newname));
+ if ($oldname ne '' && $oldname ne $newname) {
+ $r->print(&LONCAPA::map::qtescape($newname));
}
}
+ $r->print('
');
+ for (my $idx=0;$idx<=$docslog{$id}{'logentry'}{'maxidx'};$idx++) {
+ if ($docslog{$id}{'logentry'}{'after_order_res_'.$idx}) {
+ $r->print('
'.&Apache::loncommon::end_data_table_row());
$shown++;
@@ -1145,7 +1185,6 @@ sub docs_change_log {
|| $shown<=$env{'form.show'})) { last; }
}
$r->print(&Apache::loncommon::end_data_table());
- $r->print(&Apache::loncommon::end_page());
}
sub editor {
@@ -1184,27 +1223,33 @@ sub editor {
if ($env{'form.changeparms'}) {
my $idx=$env{'form.setparms'};
# set parameters
- if ($env{'form.randpick_'.$idx}) {
- &LONCAPA::map::storeparameter($idx,'parameter_randompick',$env{'form.randpick_'.$idx},'int_pos');
- &remember_parms($idx,'randompick','set',$env{'form.randpick_'.$idx});
- } else {
- &LONCAPA::map::delparameter($idx,'parameter_randompick');
- &remember_parms($idx,'randompick','del');
+ if ($env{'form.changeparms'} eq 'randompick') {
+ if ($env{'form.randpick_'.$idx}) {
+ &LONCAPA::map::storeparameter($idx,'parameter_randompick',$env{'form.randpick_'.$idx},'int_pos');
+ &remember_parms($idx,'randompick','set',$env{'form.randpick_'.$idx});
+ } else {
+ &LONCAPA::map::delparameter($idx,'parameter_randompick');
+ &remember_parms($idx,'randompick','del');
+ }
+ }
+ if ($env{'form.changeparms'} eq 'hiddenresource') {
+ if ($env{'form.hidprs_'.$idx}) {
+ &LONCAPA::map::storeparameter($idx,'parameter_hiddenresource','yes','string_yesno');
+ &remember_parms($idx,'hiddenresource','set',$env{'form.hidprs_'.$idx});
+ } else {
+ &LONCAPA::map::delparameter($idx,'parameter_hiddenresource');
+ &remember_parms($idx,'hiddenresource','del');
+ }
+ }
+ if ($env{'form.changeparms'} eq 'encrypturl') {
+ if ($env{'form.encprs_'.$idx}) {
+ &LONCAPA::map::storeparameter($idx,'parameter_encrypturl','yes','string_yesno');
+ &remember_parms($idx,'encrypturl','set',$env{'form.encprs_'.$idx});
+ } else {
+ &LONCAPA::map::delparameter($idx,'parameter_encrypturl');
+ &remember_parms($idx,'encrypturl','del');
+ }
}
- if ($env{'form.hidprs_'.$idx}) {
- &LONCAPA::map::storeparameter($idx,'parameter_hiddenresource','yes','string_yesno');
- &remember_parms($idx,'hiddenresource','set',$env{'form.hidprs_'.$idx});
- } else {
- &LONCAPA::map::delparameter($idx,'parameter_hiddenresource');
- &remember_parms($idx,'hiddenresource','del');
- }
- if ($env{'form.encprs_'.$idx}) {
- &LONCAPA::map::storeparameter($idx,'parameter_encrypturl','yes','string_yesno');
- &remember_parms($idx,'encrypturl','set',$env{'form.encprs_'.$idx});
- } else {
- &LONCAPA::map::delparameter($idx,'parameter_encrypturl');
- &remember_parms($idx,'encrypturl','del');
- }
# store the changed version
($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.'.$container);
if ($fatal) {
@@ -1264,18 +1309,16 @@ sub editor {
$url=~/^(.+)\.(\w+)$/;
my $newurl=$1.$newid.'.'.$2;
my $storefn=$newurl;
- $storefn=~s/^\/\w+\/\w+\/\w+\///;
+ $storefn=~s{^/\w+/$match_domain/$match_username/}{};
&Apache::lonclonecourse::writefile
($env{'request.course.id'},$storefn,
&Apache::lonnet::getfile($url));
$url=$newurl;
}
- $title=~s/\\<\;/g;
- $title=~s/\>/\>\;/g;
- $title=~s/\:/\:/g;
+ $title = &LONCAPA::map::qtunescape($title);
my $ext='false';
if ($url=~/^http\:\/\//) { $ext='true'; }
- $url=~s/\:/\:/g;
+ $url = &LONCAPA::map::qtunescape($url);
# Now insert the URL at the bottom
my $newidx=&LONCAPA::map::getresidx($url);
$LONCAPA::map::resources[$newidx]=
@@ -1327,19 +1370,14 @@ sub editor {
my $ratstr = $LONCAPA::map::resources[$LONCAPA::map::order[$idx]];
my ($rtitle,@rrest)=split(/\:/,
$LONCAPA::map::resources[$LONCAPA::map::order[$idx]]);
- my $comment=
- &HTML::Entities::decode($env{'form.title'});
- $comment=~s/\\<\;/g;
- $comment=~s/\>/\>\;/g;
- $comment=~s/\:/\:/g;
+ my $comment=$env{'form.title'};
+ $comment = &LONCAPA::map::qtunescape($comment);
if ($comment=~/\S/) {
$LONCAPA::map::resources[$LONCAPA::map::order[$idx]]=
$comment.':'.join(':',@rrest);
}
# Devalidate title cache
- my $renamed_url=$rrest[0];
-# Has the :-escaping
- $renamed_url=~s/\&colon\;/\:/g;
+ my $renamed_url=&LONCAPA::map::qtescape($rrest[0]);
&Apache::lonnet::devalidate_title_cache($renamed_url);
}
# Store the changed version
@@ -1407,13 +1445,14 @@ sub editor {
$r->print('
'.&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.').'
');
}
$r->print('
');
- foreach (@LONCAPA::map::order) {
- my ($name,$url)=split(/\:/,$LONCAPA::map::resources[$_]);
+ foreach my $res (@LONCAPA::map::order) {
+ my ($name,$url)=split(/\:/,$LONCAPA::map::resources[$res]);
$name=&LONCAPA::map::qtescape($name);
$url=&LONCAPA::map::qtescape($url);
unless ($name) { $name=(split(/\//,$url))[-1]; }
unless ($name) { $idx++; next; }
- $r->print(&entryline($idx,$name,$url,$folder,$allowed,$_,$coursenum));
+ $r->print(&entryline($idx,$name,$url,$folder,$allowed,$res,
+ $coursenum));
$idx++;
$shown++;
}
@@ -1427,11 +1466,19 @@ sub editor {
ENDPASTE
- $r->print(
- ' '.&Apache::loncommon::filedescription(
- (split(/\./,$env{'form.markedcopy_url'}))[-1]).': '.
- $env{'form.markedcopy_title'});
+ $r->print(' ');
+
+ my $type;
+ if ($env{'form.markedcopy_url'} =~ m{^/adm/wrapper/ext}) {
+ $type = &mt('External Resource');
+ $r->print($type.': '. $env{'form.markedcopy_title'});
+ } else {
+ my $extension = (split(/\./,$env{'form.markedcopy_url'}))[-1];
+ my $type = &Apache::loncommon::filedescription($extension);
+ my $icon = '';
+ $r->print($icon.$type.': '. $env{'form.markedcopy_title'});
+ }
if ($container eq 'page') {
$r->print(<
@@ -1493,11 +1540,9 @@ sub process_file_upload {
$codebase);
my $ext='false';
if ($url=~/^http\:\/\//) { $ext='true'; }
- $url=~s/\:/\:/g;
+ $url = &LONCAPA::map::qtunescape($url);
my $comment=$env{'form.comment'};
- $comment=~s/\\<\;/g;
- $comment=~s/\>/\>\;/g;
- $comment=~s/\:/\:/g;
+ $comment = &LONCAPA::map::qtunescape($comment);
if ($folder=~/^supplemental/) {
$comment=time.'___&&&___'.$env{'user.name'}.'___&&&___'.
$env{'user.domain'}.'___&&&___'.$comment;
@@ -1516,38 +1561,18 @@ sub process_file_upload {
my $total_embedded = keys(%{$allfiles});
if ($total_embedded > 0) {
my $num = 0;
- $$upload_output .= 'This file contains embedded multimedia objects, which need to be uploaded to LON-CAPA.
- ';
+ $phase_status = 'phasetwo';
+
+ $$upload_output .=
+ 'This file contains embedded multimedia objects, which need to be uploaded to LON-CAPA. '.
+ &ask_for_embedded_content('/adm/coursedocs',
+ $state,$allfiles,$codebase);
} else {
$$upload_output .= 'No embedded items identified ';
}
@@ -1557,6 +1582,55 @@ sub process_file_upload {
return $phase_status;
}
+sub ask_for_embedded_content {
+ my ($actionurl,$state,$allfiles,$codebase,$args)=@_;
+ my $upload_output = '
+ ';
+ return $upload_output;
+}
+
sub process_secondary_uploads {
my ($upload_output,$coursedom,$coursenum,$formname,$num,$newidx) = @_;
my $folder=$env{'form.folder'};
@@ -1572,7 +1646,7 @@ sub process_secondary_uploads {
$destination .= $newidx;
my ($url,$filename);
$url=&Apache::lonnet::userfileupload($formname.$num,1,$destination);
- ($filename) = ($url =~ m-^/uploaded/$coursedom/$coursenum/$destination/(.+)$-);
+ ($filename) = ($url =~ m{^/uploaded/\Q$coursedom\E/\Q$coursenum\E/\Q$destination\E/(.+)$});
return $filename;
}
@@ -1580,14 +1654,12 @@ sub process_secondary_uploads {
sub entryline {
my ($index,$title,$url,$folder,$allowed,$residx,$coursenum)=@_;
- $title=~s/\&colon\;/\:/g;
- $title=&HTML::Entities::encode(&HTML::Entities::decode(
- &unescape($title)),'"<>&\'');
+ $title=&HTML::Entities::encode($title,'"<>&\'');
my $renametitle=$title;
my $foldertitle=$title;
my $pagetitle=$title;
my $orderidx=$LONCAPA::map::order[$index];
- if ($title=~ /^(\d+)___&&&___(\w+)___&&&___(\w+)___&&&___(.*)$/ ) {
+ if ($title=~ /^(\d+)___&&&___($match_username)___&&&___($match_domain)___&&&___(.*)$/ ) {
$foldertitle=&Apache::lontexconvert::msgtexconverted($4);
$renametitle=$4;
$title=''.&Apache::lonlocal::locallocaltime($1).' '.
@@ -1599,17 +1671,17 @@ sub entryline {
my $line='
';
# Edit commands
my $container;
- my $folderpath;
+ my ($container, $type, $esc_path, $path, $symb);
if ($env{'form.folderpath'}) {
+ $type = 'folder';
$container = 'sequence';
- $folderpath=&escape($env{'form.folderpath'});
+ $esc_path=&escape($path = $env{'form.folderpath'});
# $htmlfoldername=&HTML::Entities::encode($env{'form.foldername'},'<>&"');
}
- my ($pagepath,$pagesymb);
if ($env{'form.pagepath'}) {
- $container = 'page';
- $pagepath=&escape($env{'form.pagepath'});
- $pagesymb=&escape($env{'form.pagesymb'});
+ $type = $container = 'page';
+ $esc_path=&escape($path = $env{'form.pagepath'});
+ $symb=&escape($env{'form.pagesymb'});
}
my $cpinfo='';
if ($env{'form.markedcopy_url'}) {
@@ -1649,6 +1721,7 @@ sub entryline {
'rn' => 'Rename',
'cp' => 'Copy');
my $nocopy=0;
+ my $nocut=0;
if ($url=~/\.(page|sequence)$/) {
foreach (&Apache::lonsequence::attemptread(&Apache::lonnet::filelocation('',$url))) {
my ($title,$url,$ext,$type)=split(/\:/,$_);
@@ -1658,73 +1731,58 @@ sub entryline {
}
}
}
+ if ($url=~/^\/res\/lib\/templates\//) {
+ $nocopy=1;
+ $nocut=1;
+ }
my $copylink=' ';
- if ($env{'form.pagepath'}) {
- unless ($nocopy) {
- $copylink=(<
-$lt{'cp'}
-ENDCOPY
- }
- $line.=(<
-
-
-
-
-
-
-