--- loncom/interface/londocs.pm 2012/12/13 00:51:34 1.484.2.12 +++ loncom/interface/londocs.pm 2012/12/13 02:45:27 1.484.2.15 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.484.2.12 2012/12/13 00:51:34 raeburn Exp $ +# $Id: londocs.pm,v 1.484.2.15 2012/12/13 02:45:27 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1828,6 +1828,18 @@ sub editor { if (defined($item)) { my ($name,$url,$residx)= map {&unescape($_)} split(/\=/,$item); + if ($url=~ m{^\Q/uploaded/$coursedom/$coursenum/\E(default|supplemental)_new\.(sequence|page)$}) { + my ($suffix,$errortxt,$locknotfreed) = + &newmap_suffix($1,$2,$coursedom,$coursenum); + if ($locknotfreed) { + $r->print($locknotfreed); + } + if ($suffix) { + $url =~ s/_new\./_$suffix./; + } else { + return $errortxt; + } + } push(@imports, [$name, $url, $residx]); } } @@ -2467,13 +2479,14 @@ $form_common.' EXTLNK } else { - my ($cfile,$home,$switchserver,$uploaded) = - &Apache::lonnet::can_edit_resource($fileloc,$coursenum,$coursedom); + my ($cfile,$home,$switchserver,$forceedit,$forceview) = + &Apache::lonnet::can_edit_resource($fileloc,$coursenum,$coursedom,$orig_url); if (($cfile ne '') && ($symb ne '')) { my $jscall = &Apache::lonhtmlcommon::jump_to_editres($cfile,$home, $switchserver, - $uploaded,$symb); + $forceedit, + undef,$symb); if ($jscall) { $editlink = ' '.&mt('Edit').''; @@ -2536,6 +2549,30 @@ 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.').'
'; + } + return ($suffix,$errtext,$locknotfreed); +} + =pod =item tiehash() @@ -3533,6 +3570,7 @@ sub handler { 'srch' => 'Search', 'impo' => 'Import', 'lnks' => 'Import from Stored Links', + 'impm' => 'Import from Assembled Map', 'selm' => 'Select Map', 'load' => 'Load Map', 'reco' => 'Recover Deleted Documents', @@ -3632,26 +3670,31 @@ IMSFORM FUFORM - my $simpleeditdefaultform=(< - + my $importpubform=(< + $lt{'impm'}$help{'Load_Map'} +
+ +
+ SEDFFORM + my @simpleeditdefaultforma = ( { ''.$lt{srch}.'' => "$uploadtag$lt{'srch'}" }, { ''.$lt{impo}.'' => "$lt{'impo'}$help{'Importing_LON-CAPA_Resource'}" }, { ''.$lt{lnks}.'' => "$lt{'lnks'}" }, - ); - $simpleeditdefaultform .= &create_form_ul(&create_list_elements(@simpleeditdefaultforma)); - $simpleeditdefaultform .=(< - $lt{'copm'}
-
- - $help{'Load_Map'} - -SEDFFORM + { ''.$lt{impm}.'' => $importpubform } + ); + $importpubform = &create_form_ul(&create_list_elements(@importpubforma)); my $extresourcesform=(<$lt{'extr'}$help{'Adding_External_Resource'} @@ -3727,9 +3770,9 @@ HIDDENFORM } else { #$postexec='self.close();'; } - my $folderseq='/uploaded/'.$coursedom.'/'.$coursenum.'/default_'.time. + my $folderseq='/uploaded/'.$coursedom.'/'.$coursenum.'/default_new.sequence'; '.sequence'; - my $pageseq = '/uploaded/'.$coursedom.'/'.$coursenum.'/default_'.time. + my $pageseq = '/uploaded/'.$coursedom.'/'.$coursenum.'/default_new.page'; '.page'; my $container='sequence'; if ($env{'form.pagepath'}) { @@ -3918,7 +3961,7 @@ NGFFORM my %orderhash = ( 'aa' => ['Import Content',$fileuploadform], - 'bb' => ['Published Content',$simpleeditdefaultform], + 'bb' => ['Published Content',$importpubform], 'cc' => ['Grading Resources',$gradingform], ); unless ($env{'form.pagepath'}) { @@ -3957,8 +4000,7 @@ unless ($env{'form.pagepath'}) { $env{'form.pagepath'} = ''; if ($allowed) { my $folderseq= - '/uploaded/'.$coursedom.'/'.$coursenum.'/supplemental_'.time. - '.sequence'; + '/uploaded/'.$coursedom.'/'.$coursenum.'/supplemental_new.sequence'; my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"'); @@ -4546,6 +4588,34 @@ function makeabout() { } } +function toggleUpload(caller) { + var blocks = Array($fieldsets); + for (var i=0; i