'.&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('');
- }
+
+ &print_paste_buffer($r,$container);
+
}
}
@@ -1524,11 +1555,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;
@@ -1547,38 +1576,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
';
}
@@ -1588,6 +1597,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'};
@@ -1603,52 +1661,76 @@ 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;
}
+sub is_supplemental_title {
+ my ($title) = @_;
+ return scalar($title =~ m/^(\d+)___&&&___($match_username)___&&&___($match_domain)___&&&___(.*)$/);
+}
+
+sub parse_supplemental_title {
+ my ($title) = @_;
+
+ my ($foldertitle,$renametitle);
+ if ($title =~ /&&&/) {
+ $title = &HTML::Entites::decode($title);
+ }
+ if ($title =~ m/^(\d+)___&&&___($match_username)___&&&___($match_domain)___&&&___(.*)$/) {
+ $renametitle=$4;
+ my ($time,$uname,$udom) = ($1,$2,$3);
+ $foldertitle=&Apache::lontexconvert::msgtexconverted($4);
+ my $name = &Apache::loncommon::plainname($uname,$udom);
+ $name = &HTML::Entities::encode($name,'"<>&\'');
+ $title=''.&Apache::lonlocal::locallocaltime($time).' '.
+ $name.':
'.$foldertitle;
+ }
+ if (wantarray) {
+ return ($title,$foldertitle,$renametitle);
+ }
+ return $title;
+}
+
# --------------------------------------------------------------- An entry line
sub entryline {
my ($index,$title,$url,$folder,$allowed,$residx,$coursenum)=@_;
- $title=~s/\&colon\;/\:/g;
- $title=&HTML::Entities::encode(&HTML::Entities::decode(
- &unescape($title)),'"<>&\'');
- my $renametitle=$title;
- my $foldertitle=$title;
- my $pagetitle=$title;
- my $orderidx=$LONCAPA::map::order[$index];
- if ($title=~ /^(\d+)___&&&___(\w+)___&&&___(\w+)___&&&___(.*)$/ ) {
- $foldertitle=&Apache::lontexconvert::msgtexconverted($4);
- $renametitle=$4;
- $title=''.&Apache::lonlocal::locallocaltime($1).' '.
- &Apache::loncommon::plainname($2,$3).':
'.
- $foldertitle;
+
+ my ($foldertitle,$pagetitle,$renametitle);
+ if (&is_supplemental_title($title)) {
+ ($title,$foldertitle,$renametitle) = &parse_supplemental_title($title);
+ $pagetitle = $foldertitle;
+ } else {
+ $title=&HTML::Entities::encode($title,'"<>&\'');
+ $renametitle=$title;
+ $foldertitle=$title;
+ $pagetitle=$title;
}
+
+ my $orderidx=$LONCAPA::map::order[$index];
+
+
$renametitle=~s/\\/\\\\/g;
$renametitle=~s/\"\;/\\\"/g;
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($env{'form.folderpath'});
+ $path = &HTML::Entities::encode($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'});
+ $path = &HTML::Entities::encode($env{'form.pagepath'},'<>&"');
+ $symb=&escape($env{'form.pagesymb'});
}
my $cpinfo='';
- if ($env{'form.markedcopy_url'}) {
- $cpinfo='&markedcopy_url='.
- &escape($env{'form.markedcopy_url'}).
- '&markedcopy_title='.
- &escape($env{'form.markedcopy_title'});
- }
if ($allowed) {
my $incindex=$index+1;
my $selectbox='';
@@ -1680,6 +1762,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(/\:/,$_);
@@ -1689,73 +1772,56 @@ sub entryline {
}
}
}
+ if ($url=~/^\/res\/lib\/templates\//) {
+ $nocopy=1;
+ $nocut=1;
+ }
my $copylink=' ';
- if ($env{'form.pagepath'}) {
- unless ($nocopy) {
- $copylink=(<
-$lt{'cp'}
-ENDCOPY
- }
- $line.=(<
-
-
-
-
-
-
-
-
-
- |
-
-
- |
- |
-$selectbox
- |
-
-$lt{'rm'}
-
-$lt{'ct'}
-
-$lt{'rn'}
-$copylink
-END
- } else {
- unless ($nocopy) {
- $copylink=(<
-$lt{'cp'} |
+ my $cutlink=' ';
+
+ if (!$nocopy) {
+ $copylink=(<
+$lt{'cp'}
ENDCOPY
- }
- $line.=(<
-
-
-
-
-
-
-
-
- |
-
-
- |
- |
-$selectbox
- |
-
-$lt{'rm'}
-
+ }
+ if (!$nocut) {
+ $cutlink=(<
$lt{'ct'}
-
-$lt{'rn'}
+ENDCUT
+ }
+ $line.=(<
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+ |
+
+
+ |
+
+ $selectbox
+ |
+
+ $lt{'rm'}
+$cutlink
+ $lt{'rn'}
$copylink
+ |
END
- }
+
}
# Figure out what kind of a resource this is
my ($extension)=($url=~/\.(\w+)$/);
@@ -1769,13 +1835,13 @@ END
if ($uploaded) {
if ($extension eq 'sequence') {
$icon=$iconpath.'/folder_closed.gif';
- $url=~/$coursenum\/([\/\w]+)\.sequence$/;
+ $url=~/\Q$coursenum\E\/([\/\w]+)\.sequence$/;
$url='/adm/coursedocs?';
$folderarg=$1;
$isfolder=1;
} elsif ($extension eq 'page') {
$icon=$iconpath.'/page.gif';
- $url=~/$coursenum\/([\/\w]+)\.page$/;
+ $url=~/\Q$coursenum\E\/([\/\w]+)\.page$/;
$pagearg=$1;
$url='/adm/coursedocs?';
$ispage=1;
@@ -1834,11 +1900,11 @@ END
'parameter_encrypturl'))[0]=~/^yes$/i);
$url.='folderpath='.&escape($folderpath).$cpinfo;
$parameterset='';
+''.&mt('Save').'';
}
if ($ispage) {
@@ -1857,10 +1923,10 @@ END
$path.$pagearg.'.page');
}
$url.='pagepath='.&escape($pagepath).
- '&pagesymb='.&escape($symb).$cpinfo;
+ '&pagesymb='.&escape($symb).$cpinfo;
}
$line.=' | '.
+ '" class="LC_icon" /> | '.
"".($url?"":'').$title.
($url?'':' '.&mt('(re-initialize course to access)').'')." | ";
if (($allowed) && ($folder!~/^supplemental/)) {
@@ -1873,9 +1939,9 @@ END
((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i?' checked="1"':'');
$line.=(<
-
+
- |
+
$parameterset |
ENDPARMS
}
@@ -2097,9 +2163,9 @@ sub checkversions {
if (&Apache::lonnet::put('resourceversions',\%newsetversions,
$env{'course.'.$env{'request.course.id'}.'.domain'},
$env{'course.'.$env{'request.course.id'}.'.num'}) eq 'ok') {
- $r->print(''.&mt('Your Version Settings have been Stored').'
');
+ $r->print(''.&mt('Your Version Settings have been Saved').'
');
} else {
- $r->print(''.&mt('An Error Occured while Attempting to Store your Version Settings').'
');
+ $r->print(''.&mt('An Error Occured while Attempting to Save your Version Settings').'
');
}
&mark_hash_old();
}
@@ -2416,8 +2482,7 @@ sub handler {
my $uploadtag;
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
['folderpath','pagepath',
- 'pagesymb','markedcopy_url',
- 'markedcopy_title']);
+ 'pagesymb']);
if ($env{'form.folderpath'}) {
my (@folderpath)=split('&',$env{'form.folderpath'});
$env{'form.foldername'}=&unescape(pop(@folderpath));
@@ -2429,8 +2494,8 @@ sub handler {
$env{'form.folder'}=pop(@pagepath);
$containertag = ''.
'';
- $uploadtag = ''.
- '';
+ $uploadtag = ''.
+ '';
}
if ($r->uri=~/^\/adm\/coursedocs\/showdoc\/(.*)$/) {
$showdoc='/'.$1;
@@ -2476,7 +2541,8 @@ sub handler {
my %codebase = ();
my ($upload_result,$upload_output);
if ($allowed) {
- if (($env{'form.uploaddoc.filename'}) && ($env{'form.cmd'}=~/^upload_(\w+)/)) {
+ if (($env{'form.uploaddoc.filename'}) &&
+ ($env{'form.cmd'}=~/^upload_(\w+)/)) {
# Process file upload - phase one - upload and parse primary file.
$upload_result = &process_file_upload(\$upload_output,$coursenum,
$coursedom,\%allfiles,
@@ -2591,6 +2657,7 @@ sub handler {
);
# -----------------------------------------------------------------------------
if ($allowed) {
+ &update_paste_buffer($coursenum,$coursedom);
my $dumpbut=&dumpbutton();
my $exportbut=&exportbutton();
my %lt=&Apache::lonlocal::texthash(
@@ -2610,7 +2677,7 @@ sub handler {
}
unless ($env{'form.pagepath'}) {
$containertag = '';
- $uploadtag = '';
+ $uploadtag = '';
}
$r->print(<
+
$containertag
@@ -2718,10 +2787,10 @@ $help{'Importing_LON-CAPA_Resource'}
$lt{'copm'}
-
+
+value="$lt{'selm'}" />
$help{'Load_Map'}
@@ -2744,15 +2813,15 @@ value="$lt{'extr'}" /> $help{'Adding_Ext
ENDFORM
}
$r->print('');
unless ($env{'form.pagepath'}) {
+ my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"');
$r->print(<
|