--- loncom/interface/londocs.pm 2013/03/17 18:49:16 1.484.2.28 +++ loncom/interface/londocs.pm 2013/03/11 01:46:47 1.533 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.484.2.28 2013/03/17 18:49:16 raeburn Exp $ +# $Id: londocs.pm,v 1.533 2013/03/11 01:46:47 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -289,7 +289,7 @@ sub group_import { $env{'form.output'}=$newmapstr; my $result=&Apache::lonnet::finishuserfileupload($coursenum,$coursedom, 'output',$1.$2); - if ($result !~ m{^/uploaded/}) { + if ($result != m|^/uploaded/|) { $errtext.='Map not saved: A network error occurred when trying to save the new map. '; $fatal = 2; } @@ -300,7 +300,7 @@ sub group_import { if ($url) { if (($caller eq 'londocs') && ($folder =~ /^default/)) { - if (($url =~ /\.(page|sequence)$/) && (!$donechk)) { + unless ($donechk) { my $chome = &Apache::lonnet::homeserver($coursenum,$coursedom); my $cid = $coursedom.'_'.$coursenum; $allmaps = @@ -325,48 +325,6 @@ sub group_import { if ($url=~m{^http://} || $url=~m{^https://}) { $ext = 'true'; } $url = &LONCAPA::map::qtunescape($url); $name = &LONCAPA::map::qtunescape($name); - if ($name eq '') { - $name = &mt('Web Page'); - } - if ($url =~ m{^/uploaded/$coursedom/$coursenum/((?:docs|supplemental)/(?:default|\d+))/new\.html$}) { - my $filepath = $1; - my $fname = $name; - if ($fname =~ /^\W+$/) { - $fname = 'web'; - } else { - $fname =~ s/\W/_/g; - } - if (length($fname > 15)) { - $fname = substr($fname,0,14); - } - my $initialtext = &mt('Replace with your own content.'); - my $newhtml = < - - - -$name - - -$initialtext - - -END - $env{'form.output'}=$newhtml; - my $result = - &Apache::lonnet::finishuserfileupload($coursenum,$coursedom, - 'output', - "$filepath/$residx/$fname.html"); - if ($result =~ m{^/uploaded/}) { - $url = $result; - if ($filepath =~ /^supplemental/) { - $name = time.'___&&&___'.$env{'user.name'}.'___&&&___'. - $env{'user.domain'}.'___&&&___'.$name; - } - } else { - return (&mt('Failed to save new web page.'),1); - } - } $LONCAPA::map::resources[$residx] = join(':', ($name, $url, $ext, 'normal', 'res')); } @@ -377,7 +335,7 @@ END removefrommap => \%removefrommap, removeparam => \%removeparam, ); - my ($result,$msgsarray,$lockerror) = + my ($result,$msgsarray,$lockerror) = &apply_fixups($folder,1,$coursedom,$coursenum,\%import_errors,\%updated); if (keys(%import_errors) > 0) { $fixuperrors = @@ -804,7 +762,7 @@ sub print_paste_buffer { $r->print('
'.$buffer); if ((!$areachange) && (!$othercourse) && ($env{'docs.markedcopy_cmd'} eq 'cut')) { - if (($is_uploaded_map) || + if (($is_uploaded_map) || ($env{'docs.markedcopy_url'} =~ /(bulletinboard|smppg)$/) || ($env{'docs.markedcopy_url'} =~ m{^/uploaded/$coursedom/$coursenum/(?:docs|supplemental)/(.+)$})) { my ($copytext,$movetext); @@ -1049,7 +1007,7 @@ sub do_paste_from_buffer { &url_paste_fixups($url,$folder,$prefixchg,$coursedom,$coursenum, $srcdom,$srcnum,$allmaps,\%rewrites, \%retitles,\%copies,\%dbcopies,\%zombies,\%params,\%mapmoves, - \%mapchanges,\%tomove,\%newsubdir,\%newurls); + \%mapchanges,\%tomove,\%newsubdir,\%newurls); } } elsif ($url=~m {^/res/}) { # published maps can only exists once, so remove it from paste buffer when done @@ -1085,9 +1043,9 @@ sub do_paste_from_buffer { $msg = &mt('Paste failed: An error occurred when copying the bulletin board.').' '.$errtext; } return ($result,undef,[$msg],$lockerr{$prefix}); - } + } if ($lockerr{$prefix}) { - $lockerrors = $lockerr{$prefix}; + $lockerrors = $lockerr{$prefix}; } } } @@ -1116,7 +1074,7 @@ sub do_paste_from_buffer { if ($newdocsdir eq '') { $newdocsdir = 'default'; } - if (($prefixchg) || + if (($prefixchg) || ($srcdom ne $coursedom) || ($srcnum ne $coursenum) || ($env{'form.docs.markedcopy_options'} ne 'move')) { my $newpath = "$newprefix/$newdocsdir/$newidx/$rem"; @@ -1194,7 +1152,7 @@ sub do_paste_from_buffer { $save_err = $errtext; } } - + if ($env{'form.docs.markedcopy_options'} eq 'move') { &Apache::lonnet::delenv('docs.markedcopy'); &Apache::lonnet::delenv('docs.markedcopy_nested'); @@ -1270,7 +1228,7 @@ sub dbcopy { if (ref($dbref) eq 'HASH') { if ($url =~ m{/(smppg|bulletinboard)$}) { my $prefix = $1; - if (($dbref->{'cdom'} =~ /^$match_domain$/) && + if (($dbref->{'cdom'} =~ /^$match_domain$/) && ($dbref->{'cnum'} =~ /^$match_courseid$/)) { my $db_name; my $marker = (split(m{/},$url))[4]; @@ -1305,12 +1263,12 @@ sub dbcopy { my $photo = $contents{'uploaded.photourl'}; my ($subdir,$fname) = ($photo =~ m{^/uploaded/$match_domain/$match_courseid/+(bulletin|simplepage)/(?:|\d+/)([^/]+)$}); - my $newphoto; + my $newphoto; if ($fname ne '') { my $content = &Apache::lonnet::getfile($photo); unless ($content eq '-1') { $env{'form.'.$suffix.'.photourl'} = $content; - $newphoto = + $newphoto = &Apache::lonnet::finishuserfileupload($coursenum,$coursedom,$suffix.'.photourl',"$subdir/$suffix/$fname"); delete($env{'form.'.$suffix.'.photourl'}); } @@ -1327,11 +1285,11 @@ sub dbcopy { } } if (($freedlock ne 'ok') && (ref($lockerrorsref) eq 'HASH')) { - $lockerrorsref->{$prefix} = + $lockerrorsref->{$prefix} = '
'. &mt('There was a problem removing a lockfile.'); if ($prefix eq 'smppg') { - $lockerrorsref->{$prefix} .= + $lockerrorsref->{$prefix} .= &mt('This will prevent creation of additional simple pages in this course.'); } else { $lockerrorsref->{$prefix} .= &mt('This will prevent creation of additional bulletin boards in this course.'); @@ -1505,7 +1463,7 @@ sub url_paste_fixups { } } } elsif ($ressrc =~ m{^/adm/($match_domain)/($match_courseid)/.+$}) { - next if ($skip); + next if ($skip); my $srcdom = $1; my $srcnum = $2; if (($srcdom ne $cdom) || ($srcnum ne $cnum)) { @@ -2017,7 +1975,7 @@ sub editor { \%paste_errors); if (ref($pastemsgarray) eq 'ARRAY') { if (@{$pastemsgarray} > 0) { - + $r->print('

'. join('
',@{$pastemsgarray}). '

'); @@ -2063,7 +2021,7 @@ sub editor { 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) = + my ($suffix,$errortxt,$locknotfreed) = &new_timebased_suffix($coursedom,$coursenum,'map',$1,$2); if ($locknotfreed) { $r->print($locknotfreed); @@ -2085,22 +2043,6 @@ sub editor { } else { return $errortxt; } - } elsif ($url =~ m{^/uploaded/$coursedom/$coursenum/(docs|supplemental)/(default|\d+)/new.html$}) { - if ($supplementalflag) { - next unless ($1 eq 'supplemental'); - if ($folder eq 'supplemental') { - next unless ($2 eq 'default'); - } else { - next unless ($folder eq 'supplemental_'.$2); - } - } else { - next unless ($1 eq 'docs'); - if ($folder eq 'default') { - next unless ($2 eq 'default'); - } else { - next unless ($folder eq 'default_'.$2); - } - } } push(@imports, [$name, $url, $residx]); } @@ -2274,11 +2216,15 @@ sub process_file_upload { $container='page'; } ($errtext,$fatal)= - &mapread($coursenum,$coursedom,$folder.'.'.$container); + &mapread($coursenum,$coursedom,$folder.'.'.$container); if ($#LONCAPA::map::order<1) { $LONCAPA::map::order[0]=1; $LONCAPA::map::resources[1]=''; } + if ($fatal) { + $$upload_output = '
'.&mt('The uploaded file has not been stored as an error occurred reading the contents of the current folder.').'
'; + return; + } my $destination = 'docs/'; if ($folder =~ /^supplemental/) { $destination = 'supplemental/'; @@ -2288,10 +2234,6 @@ sub process_file_upload { } elsif ($folder =~ /^(default|supplemental)_(\d+)$/) { $destination .= $2.'/'; } - if ($fatal) { - $$upload_output = '
'.&mt('The uploaded file has not been stored as an error occurred reading the contents of the current folder.').'
'; - return; - } # this is for a course, not a user, so set context to coursedoc. my $newidx=&LONCAPA::map::getresidx(); $destination .= $newidx; @@ -2432,7 +2374,12 @@ sub entryline { my $line=&Apache::loncommon::start_data_table_row(); my ($form_start,$form_end,$form_common); # Edit commands - my ($esc_path, $path, $symb); + my ($type, $esc_path, $path, $symb); + if ($container eq 'page') { + $type = 'page'; + } else { + $type = 'folder'; + } if ($env{'form.folderpath'}) { $esc_path=&escape($env{'form.folderpath'}); $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"'); @@ -2600,8 +2547,8 @@ ENDREN '; $form_common=(< - + + END @@ -2609,12 +2556,12 @@ END $line.=(<
- + $lt{'up'}
- + $lt{'dw'}
@@ -2857,7 +2804,7 @@ sub new_timebased_suffix { } } if ($freedlock ne 'ok') { - $locknotfreed = + $locknotfreed = '
'. &mt('There was a problem removing a lockfile.').' '; if ($type eq 'map') { @@ -3412,6 +3359,7 @@ sub startContentScreen { if (($mode eq 'navmaps') || ($mode eq 'supplemental')) { $output .= '    '.&mt('Content Overview').'    '."\n"; $output .= '     '.&mt('Content Search').'     '."\n"; + $output .= '      '.&mt('Content Index').'      '."\n"; $output .= '
  • '.&mt('Supplemental Content').'
  • '; } else { $output .= '
  •       '.&mt('Content Editor').'      
  • '."\n"; @@ -3476,8 +3424,7 @@ sub handler { 'Docs_About_My_Personal_Info,Docs_Editing_Templated_Pages'); $help{'Group Portfolio'} = &Apache::loncommon::help_open_topic('Docs_About_Group_Files'); $help{'Caching'} = &Apache::loncommon::help_open_topic('Caching'); - $help{'Course Roster'} = &Apache::loncommon::help_open_topic('Docs_Course_Roster'); - $help{'Web Page'} = &Apache::loncommon::help_open_topic('Docs_Web_Page'); + my $allowed; # URI is /adm/supplemental when viewing supplemental docs in non-edit mode. @@ -3812,7 +3759,6 @@ sub handler { 'navc' => 'Table of Contents', 'sipa' => 'Simple Course Page', 'sipr' => 'Simple Problem', - 'webp' => 'Blank Web Page (editable)', 'drbx' => 'Drop Box', 'scuf' => 'External Scores (handgrade, upload, clicker)', 'bull' => 'Discussion Board', @@ -4065,6 +4011,7 @@ NAMFORM NASOFORM + my $newrosterform=(< @@ -4076,27 +4023,6 @@ NASOFORM NROSTFORM - my $newwebpage; - if ($folder =~ /^default_?(\d*)$/) { - $newwebpage = "/uploaded/$coursedom/$coursenum/docs/"; - if ($1) { - $newwebpage .= $1; - } else { - $newwebpage .= 'default'; - } - $newwebpage .= '/new.html'; - } - my $newwebpageform =(< - - $pathitem - - $lt{'webp'} - $help{'Web Page'} - -NWEBFORM - - my $specialdocumentsform; my @specialdocumentsforma; my $gradingform; @@ -4155,7 +4081,6 @@ NGFFORM {''.$lt{syll}.''=>$newsylform}, {''.$lt{navc}.''=>$newnavform}, {''.$lt{sipa}.''=>$newsmppageform}, - {''.$lt{webp}.''=>$newwebpageform}, ); $specialdocumentsform = &create_form_ul(&create_list_elements(@specialdocumentsforma)); @@ -4293,34 +4218,12 @@ SNSFORM SNAMFORM - my $supwebpage; - if ($folder =~ /^supplemental_?(\d*)$/) { - $supwebpage = "/uploaded/$coursedom/$coursenum/supplemental/"; - if ($1) { - $supwebpage .= $1; - } else { - $supwebpage .= 'default'; - } - $supwebpage .= '/new.html'; - } - my $supwebpageform =(< - - $pathitem - - $lt{'webp'} - $help{'Web Page'} - -SWEBFORM - my @specialdocs = ( {''.$lt{syll}.'' =>$supnewsylform}, {''.$lt{mypi}.'' =>$supnewaboutmeform}, - {''.$lt{webp}.''=>$supwebpageform}, - ); my @supimportdoc = ( {''.$lt{extr}.'' @@ -4685,7 +4588,6 @@ sub editing_js { p_msb => 'Title for the Problem', p_mdb => 'Title for the Drop Box', p_mbb => 'Title for the Discussion Board', - p_mwp => 'Title for Web Page', p_mab => "Enter user:domain for User's Personal Information Page", p_mab2 => 'Personal Information Page of ', p_mab_alrt1 => 'Not a valid user:domain', @@ -4778,21 +4680,6 @@ function makesmppage() { } } -function makewebpage(type) { - var title=prompt('$lt{"p_mwp"}'); - var formname; - if (type == 'supp') { - formname = this.document.forms.supwebpage; - } else { - formname = this.document.forms.newwebpage; - } - if (title) { - var webpage = formname.importdetail.value; - formname.importdetail.value = escape(title)+'='+webpage; - formname.submit(); - } -} - function makesmpproblem() { var title=prompt('$lt{"p_msb"}'); if (title) {