--- loncom/interface/londocs.pm 2013/01/14 23:14:59 1.484.2.25
+++ loncom/interface/londocs.pm 2012/07/13 13:36:24 1.491
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Documents
#
-# $Id: londocs.pm,v 1.484.2.25 2013/01/14 23:14:59 raeburn Exp $
+# $Id: londocs.pm,v 1.491 2012/07/13 13:36:24 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -40,7 +40,7 @@ use Apache::lonxml;
use Apache::lonclonecourse;
use Apache::lonnavmaps;
use Apache::lonnavdisplay();
-use Apache::lonextresedit();
+use Apache::lonuserstate();
use HTML::Entities;
use HTML::TokeParser;
use GDBM_File;
@@ -69,14 +69,10 @@ sub mapread {
}
sub storemap {
- my ($coursenum,$coursedom,$map,$contentchg)=@_;
- my $report;
- if (($contentchg) && ($map =~ /^default/)) {
- $report = 1;
- }
+ my ($coursenum,$coursedom,$map)=@_;
my ($outtext,$errtext)=
&LONCAPA::map::storemap('/uploaded/'.$coursedom.'/'.$coursenum.'/'.
- $map,1,$report);
+ $map,1);
if ($errtext) { return ($errtext,2); }
$hadchanges=1;
@@ -152,7 +148,7 @@ sub dumpcourse {
$r->print(&endContentScreen());
return '';
}
- my ($ca,$cd)=split(/\:/,$env{'form.authorspace'});
+ my ($ca,$cd)=split(/\@/,$env{'form.authorspace'});
$r->print('
'.&mt('Copying Files').'
');
my $title=$env{'form.authorfolder'};
$title=&clean($title);
@@ -270,9 +266,7 @@ sub dumpcourse {
sub group_import {
my ($coursenum, $coursedom, $folder, $container, $caller, @files) = @_;
- my ($donechk,$allmaps,%hierarchy,%titles,%addedmaps,%removefrommap,
- %removeparam,$importuploaded,$fixuperrors);
- $allmaps = {};
+
while (@files) {
my ($name, $url, $residx) = @{ shift(@files) };
if (($url =~ m{^/uploaded/\Q$coursedom\E/\Q$coursenum\E/(default_\d+\.)(page|sequence)$})
@@ -298,24 +292,6 @@ sub group_import {
}
}
if ($url) {
- if (($caller eq 'londocs') &&
- ($folder =~ /^default/)) {
- unless ($donechk) {
- my $chome = &Apache::lonnet::homeserver($coursenum,$coursedom);
- my $cid = $coursedom.'_'.$coursenum;
- $allmaps =
- &Apache::loncommon::allmaps_incourse($coursedom,$coursenum,
- $chome,$cid);
- $donechk = 1;
- }
- if ($url =~ m{^/uploaded/\Q$coursedom\E/\Q$coursenum\E/(default_\d+\.)(page|sequence)$}) {
- &contained_map_check($url,$folder,\%removefrommap,\%removeparam,
- \%addedmaps,\%hierarchy,\%titles,$allmaps);
- $importuploaded = 1;
- } elsif ($url =~ m{^/res/.+\.(page|sequence)$}) {
- next if ($allmaps->{$url});
- }
- }
if (!$residx
|| defined($LONCAPA::map::zombies[$residx])) {
$residx = &LONCAPA::map::getresidx($url,$residx);
@@ -329,31 +305,67 @@ sub group_import {
join(':', ($name, $url, $ext, 'normal', 'res'));
}
}
- if ($importuploaded) {
- my %import_errors;
- my %updated = (
- removefrommap => \%removefrommap,
- removeparam => \%removeparam,
- );
- &apply_fixups($folder,1,$coursedom,$coursenum,\%import_errors,\%updated);
- if (keys(%import_errors) > 0) {
- $fixuperrors =
- '
'."\n".
- &mt('The following files are either dependencies of a web page or references within a folder and/or composite page for which errors occurred during import:')."\n".
- '
";
+ $line.=$external."";
$rand_pick_text = ' ' if ($rand_pick_text eq '');
$rand_order_text = ' ' if ($rand_order_text eq '');
if (($allowed) && ($folder!~/^supplemental/)) {
@@ -2598,30 +2153,6 @@ ENDPARMS
return $line;
}
-sub newmap_suffix {
- my ($area,$container,$coursedom,$coursenum) = @_;
- my ($prefix,$idtype,$errtext,$locknotfreed);
- $prefix = 'docs';
- if ($area eq 'supplemental') {
- $prefix = 'supp';
- }
- $prefix .= $container;
- $idtype = 'concat';
- my ($suffix,$freedlock,$error) =
- &Apache::lonnet::get_timebased_id($prefix,'num','uploadedmaps',
- $coursedom,$coursenum);
- if (!$suffix) {
- $errtext = &mt('Failed to acquire a unique timestamp-based suffix for the new folder/page.');
- if ($error) {
- $errtext .= ' '.$error;
- }
- }
- if ($freedlock ne 'ok') {
- $locknotfreed = '
'.&mt('There was a problem removing a lockfile. This will prevent creation of additional folders or composite pages in this course. Please contact the domain coordinator for your LON-CAPA domain.').'
');
- $r->print(&endContentScreen());
}
@@ -2884,7 +2413,7 @@ sub checkversions {
if ($env{'form.timerange'} eq 'all') {
# show all documents
$header=&mt('All Documents in '.$crstype);
- $allsel=' selected="selected"';
+ $allsel=1;
foreach my $key (keys(%hash)) {
if ($key=~/^ids\_(\/res\/.+)$/) {
my $src=$1;
@@ -2905,19 +2434,19 @@ sub checkversions {
.&mt('seconds');
if ($env{'form.timerange'}==-1) {
$seltext='since start of course';
- $startsel=' selected="selected"';
+ $startsel='selected';
$env{'form.timerange'}=time;
}
$starttime=time-$env{'form.timerange'};
if ($env{'form.timerange'}==2592000) {
$seltext=&mt('during the last month').' ('.&Apache::lonlocal::locallocaltime($starttime).')';
- $monthsel=' selected="selected"';
+ $monthsel='selected';
} elsif ($env{'form.timerange'}==604800) {
$seltext=&mt('during the last week').' ('.&Apache::lonlocal::locallocaltime($starttime).')';
- $weeksel=' selected="selected"';
+ $weeksel='selected';
} elsif ($env{'form.timerange'}==86400) {
$seltext=&mt('since yesterday').' ('.&Apache::lonlocal::locallocaltime($starttime).')';
- $daysel=' selected="selected"';
+ $daysel='selected';
}
$header=&mt('Content changed').' '.$seltext;
} else {
@@ -2955,11 +2484,11 @@ sub checkversions {
@@ -2975,93 +2504,110 @@ $lt{'sc'}:
+
ENDHEADERS
#number of columns for version history
+ my $num_ver_col = 1;
$r->print(
- &Apache::loncommon::start_data_table().
- &Apache::loncommon::start_data_table_header_row().
- '
'.
+ '');
foreach my $key (sort(keys(%changes))) {
- #excludes not versionable problems from resource version history:
- next unless ($changes{$key}>$starttime && $key !~ /^\/res\/lib\/templates/);
- my ($root,$extension)=($key=~/^(.*)\.(\w+)$/);
- my $currentversion=&Apache::lonnet::getversion($key);
- if ($currentversion<0) {
- $currentversion=''.&mt('Could not be determined.').'';
- }
- my $linkurl=&Apache::lonnet::clutter($key);
+ if ($changes{$key}>$starttime) {
+ my ($root,$extension)=($key=~/^(.*)\.(\w+)$/);
+ my $currentversion=&Apache::lonnet::getversion($key);
+ if ($currentversion<0) {
+ $currentversion=''.&mt('Could not be determined.').'';
+ }
+ my $linkurl=&Apache::lonnet::clutter($key);
$r->print(
+ &Apache::loncommon::end_data_table_header_row().
&Apache::loncommon::start_data_table_row().
- '
'
- );
- # Used in course
- my $usedversion=$hash{'version_'.$linkurl};
- if (($usedversion) && ($usedversion ne 'mostrecent')) {
- if ($usedversion != $currentversion) {
+ '
');
+# Used in course
+ my $usedversion=$hash{'version_'.$linkurl};
+ if (($usedversion) && ($usedversion ne 'mostrecent')) {
+ if($usedversion != $currentversion){
$r->print(''.$usedversion.'');
- } else {
+ }else{
$r->print($usedversion);
}
+ } else {
+ $r->print($currentversion);
+ }
+ $r->print('
');
+# Set version
+ $r->print(&Apache::loncommon::select_form($setversions{$linkurl},
+ 'set_version_'.$linkurl,
+ {'select_form_order' =>
+ ['',1..$currentversion,'mostrecent'],
+ '' => '',
+ 'mostrecent' => &mt('most recent'),
+ map {$_,$_} (1..$currentversion)}));
+ my $lastold=1;
+ for (my $prevvers=1;$prevvers<$currentversion;$prevvers++) {
+ my $url=$root.'.'.$prevvers.'.'.$extension;
+ if (&Apache::lonnet::metadata($url,'lastrevisiondate')<
+ $starttime) {
+ $lastold=$prevvers;
+ }
+ }
+ #
+ # Code to figure out how many version entries should go in
+ # each of the four columns
+ my $entries_per_col = 0;
+ my $num_entries = ($currentversion-$lastold);
+ if ($num_entries % $num_ver_col == 0) {
+ $entries_per_col = $num_entries/$num_ver_col;
} else {
- $r->print($currentversion);
+ $entries_per_col = $num_entries/$num_ver_col + 1;
}
- $r->print('
');
- # Set version
- $r->print(&Apache::loncommon::select_form(
- $setversions{$linkurl},
- 'set_version_'.$linkurl,
- {'select_form_order' => ['',1..$currentversion,'mostrecent'],
- '' => '',
- 'mostrecent' => &mt('most recent'),
- map {$_,$_} (1..$currentversion)}));
- my $lastold=1;
- for (my $prevvers=1;$prevvers<$currentversion;$prevvers++) {
- my $url=$root.'.'.$prevvers.'.'.$extension;
- if (&Apache::lonnet::metadata($url,'lastrevisiondate')<$starttime) {
- $lastold=$prevvers;
- }
- }
- $r->print('