--- loncom/interface/londocs.pm 2020/04/10 12:52:34 1.484.2.72.4.2 +++ loncom/interface/londocs.pm 2017/08/31 20:06:36 1.484.2.73 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.484.2.72.4.2 2020/04/10 12:52:34 raeburn Exp $ +# $Id: londocs.pm,v 1.484.2.73 2017/08/31 20:06:36 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -622,7 +622,7 @@ sub recurse_html { } sub group_import { - my ($coursenum, $coursedom, $folder, $container, $caller, $ltitoolsref, @files) = @_; + my ($coursenum, $coursedom, $folder, $container, $caller, @files) = @_; my ($donechk,$allmaps,%hierarchy,%titles,%addedmaps,%removefrommap, %removeparam,$importuploaded,$fixuperrors); $allmaps = {}; @@ -651,112 +651,6 @@ sub group_import { } } if ($url) { - if ($url =~ m{^(/adm/$coursedom/$coursenum/(\d+)/ext\.tool)\:?(.*)$}) { - $url = $1; - my $marker = $2; - my $info = $3; - my ($toolid,%toolhash,%toolsettings); - my @extras = ('linktext','explanation','crslabel','crstitle','crsappend'); - my @toolinfo = split(/:/,$info); - if ($residx) { - %toolsettings=&Apache::lonnet::dump('exttool_'.$marker,$coursedom,$coursenum); - $toolid = $toolsettings{'id'}; - } else { - $toolid = shift(@toolinfo); - } - $toolid =~ s/\D//g; - ($toolhash{'target'},$toolhash{'width'},$toolhash{'height'}, - $toolhash{'linktext'},$toolhash{'explanation'}, - $toolhash{'crslabel'},$toolhash{'crstitle'},$toolhash{'crsappend'}) = @toolinfo; - foreach my $item (@extras) { - $toolhash{$item} = &unescape($toolhash{$item}); - } - if (ref($ltitoolsref) eq 'HASH') { - my @deleted; - if (ref($ltitoolsref->{$toolid}) eq 'HASH') { - $toolhash{'id'} = $toolid; - if (($toolhash{'target'} eq 'iframe') || ($toolhash{'target'} eq 'tab') || - ($toolhash{'target'} eq 'window')) { - if ($toolhash{'target'} eq 'window') { - foreach my $item ('width','height') { - $toolhash{$item} =~ s/^\s+//; - $toolhash{$item} =~ s/\s+$//; - if ($toolhash{$item} =~ /\D/) { - delete($toolhash{$item}); - if ($residx) { - if ($toolsettings{$item}) { - push(@deleted,$item); - } - } - } - } - } - } elsif ($residx) { - $toolhash{'target'} = $toolsettings{'target'}; - if ($toolhash{'target'} eq 'window') { - foreach my $item ('width','height') { - $toolhash{$item} = $toolsettings{$item}; - } - } - } elsif (ref($ltitoolsref->{$toolid}->{'display'}) eq 'HASH') { - $toolhash{'target'} = $ltitoolsref->{$toolid}->{'display'}->{'target'}; - if ($toolhash{'target'} eq 'window') { - $toolhash{'width'} = $ltitoolsref->{$toolid}->{'display'}->{'width'}; - $toolhash{'height'} = $ltitoolsref->{$toolid}->{'display'}->{'height'}; - } - } - if ($toolhash{'target'} eq 'iframe') { - foreach my $item ('width','height','linktext','explanation') { - delete($toolhash{$item}); - if ($residx) { - if ($toolsettings{$item}) { - push(@deleted,$item); - } - } - } - } elsif ($toolhash{'target'} eq 'tab') { - foreach my $item ('width','height') { - delete($toolhash{$item}); - if ($residx) { - if ($toolsettings{$item}) { - push(@deleted,$item); - } - } - } - } - if (ref($ltitoolsref->{$toolid}->{'crsconf'}) eq 'HASH') { - foreach my $item ('label','title','linktext','explanation') { - my $crsitem; - if (($item eq 'label') || ($item eq 'title')) { - $crsitem = 'crs'.$item; - } else { - $crsitem = $item; - } - if ($ltitoolsref->{$toolid}->{'crsconf'}->{$item}) { - $toolhash{$crsitem} =~ s/^\s+//; - $toolhash{$crsitem} =~ s/\s+$//; - if ($toolhash{$crsitem} eq '') { - delete($toolhash{$crsitem}); - } - } else { - delete($toolhash{$crsitem}); - } - if (($residx) && (exists($toolsettings{$crsitem}))) { - unless (exists($toolhash{$crsitem})) { - push(@deleted,$crsitem); - } - } - } - } - my $putres = &Apache::lonnet::put('exttool_'.$marker,\%toolhash,$coursedom,$coursenum); - if ($putres eq 'ok') { - if (@deleted) { - &Apache::lonnet::del('exttool_'.$marker,\@deleted,$coursedom,$coursenum); - } - } - } - } - } if (($caller eq 'londocs') && ($folder =~ /^default/)) { if (($url =~ /\.(page|sequence)$/) && (!$donechk)) { @@ -768,8 +662,8 @@ sub group_import { $donechk = 1; } if ($url =~ m{^/uploaded/\Q$coursedom\E/\Q$coursenum\E/(default_\d+\.)(page|sequence)$}) { - &contained_map_check($url,$folder,$coursenum,$coursedom,\%removefrommap, - \%removeparam,\%addedmaps,\%hierarchy,\%titles,$allmaps); + &contained_map_check($url,$folder,\%removefrommap,\%removeparam, + \%addedmaps,\%hierarchy,\%titles,$allmaps); $importuploaded = 1; } elsif ($url =~ m{^/res/.+\.(page|sequence)$}) { next if ($allmaps->{$url}); @@ -940,7 +834,7 @@ sub docs_change_log { '// '."\n". @@ -1214,8 +1108,8 @@ sub update_paste_buffer { $subdir = $prefix; } my (%addedmaps,%removefrommap,%removeparam,%hierarchy,%titles,%allmaps); - &contained_map_check($url,$folder,$coursenum,$coursedom,\%removefrommap, - \%removeparam,\%addedmaps,\%hierarchy,\%titles,\%allmaps); + &contained_map_check($url,$folder,\%removefrommap,\%removeparam,\%addedmaps, + \%hierarchy,\%titles,\%allmaps); if (ref($hierarchy{$url}) eq 'HASH') { my ($nested,$nestednames); &recurse_uploaded_maps($url,$subdir,\%hierarchy,\%titles,\$nested,\$nestednames); @@ -1288,12 +1182,10 @@ sub print_paste_buffer { ($url ne '')) { $clipboardcount ++; my ($is_external,$othercourse,$fromsupp,$is_uploaded_map,$parent, - $canpaste,$nopaste,$othercrs,$areachange,$is_exttool); + $canpaste,$nopaste,$othercrs,$areachange); my $extension = (split(/\./,$env{'docs.markedcopy_url_'.$suffix}))[-1]; if ($url =~ m{^(?:/adm/wrapper/ext|(?:http|https)(?::|:))//} ) { $is_external = 1; - } elsif ($url =~ m{^/adm/$match_domain/$match_courseid/\d+/ext\.tool$}) { - $is_exttool = 1; } if ($folder =~ /^supplemental/) { $canpaste = &supp_pasteable($env{'docs.markedcopy_url_'.$suffix}); @@ -1311,7 +1203,9 @@ sub print_paste_buffer { if (($srcdom ne $coursedom) || ($srcnum ne $coursenum)) { $othercourse = 1; if ($env{"user.priv.cm./$srcdom/$srcnum"} =~ /\Q:mdc&F\E/) { - $othercrs = '
'.&mt('(from another course)'); + if ($canpaste) { + $othercrs = '
'.&mt('(from another course)'); + } } else { $canpaste = 0; $nopaste = &mt('Paste from another course unavailable.'); @@ -1325,21 +1219,6 @@ sub print_paste_buffer { } $is_uploaded_map = 1; } - } elsif ($url =~ m{^/adm/($match_domain)/($match_username)/\d+/(bulletinboard|smppg|ext\.tool)$}) { - if ($cid ne $env{'request.course.id'}) { - my ($srcdom,$srcnum) = split(/_/,$cid); - if ($env{"user.priv.cm./$srcdom/$srcnum"} =~ /\Q:mdc&F\E/) { - if (($is_exttool) && ($srcdom ne $coursedom)) { - $canpaste = 0; - $nopaste = &mt('Paste from another domain unavailable.'); - } else { - $othercrs = '
'.&mt('(from another course)'); - } - } else { - $canpaste = 0; - $nopaste = &mt('Paste from another course unavailable.'); - } - } } } if ($canpaste) { @@ -1350,9 +1229,6 @@ sub print_paste_buffer { $buffer = &mt('External Resource').': '. &LONCAPA::map::qtescape($env{'docs.markedcopy_title_'.$suffix}).' ('. &LONCAPA::map::qtescape($url).')'; - } elsif ($is_exttool) { - $buffer = &mt('External Tool').': '. - &LONCAPA::map::qtescape($env{'docs.markedcopy_title_'.$suffix}); } else { my $icon = &Apache::loncommon::icon($extension); if ($extension eq 'sequence' && @@ -1408,7 +1284,7 @@ sub print_paste_buffer { } $buttons = ''.(' 'x2); } - $buttons .= ''.(' 'x2); + $buttons .= ''.(' 'x2); if ($clipboardcount > 1) { $buttons .= ''.(' 'x20).''.(' 'x2). @@ -1509,8 +1385,7 @@ sub supp_pasteable { (($url =~ /\.sequence$/) && ($url =~ m{^/uploaded/})) || ($url =~ m{^/uploaded/$match_domain/$match_courseid/(docs|supplemental)/(default|\d+)/\d+/}) || ($url =~ m{^/adm/$match_domain/$match_username/aboutme}) || - ($url =~ m{^/public/$match_domain/$match_courseid/syllabus}) || - ($url =~ m{^/adm/$match_domain/$match_courseid/\d+/ext\.tool$})) { + ($url =~ m{^/public/$match_domain/$match_courseid/syllabus})) { return 1; } return; @@ -1632,12 +1507,11 @@ sub do_paste_from_buffer { return(); } - my (%msgs,%before,%after,@dopaste,%is_map,%notinsupp,%notincrs,%notindom,%duplicate, + my (%msgs,%before,%after,@dopaste,%is_map,%notinsupp,%notincrs,%duplicate, %prefixchg,%srcdom,%srcnum,%marktomove,$save_err,$lockerrors,$allresult); foreach my $suffix (@topaste) { my $url=&LONCAPA::map::qtescape($env{'docs.markedcopy_url_'.$suffix}); - my $cid=&LONCAPA::map::qtescape($env{'docs.markedcopy_crs_'.$suffix}); # Supplemental content may only include certain types of content # Early out if pasted content is not supported in Supplemental area if ($folder =~ /^supplemental/) { @@ -1659,26 +1533,8 @@ sub do_paste_from_buffer { } $srcdom{$suffix} = $srcd; $srcnum{$suffix} = $srcn; - } elsif (($url =~ m{^/adm/$match_domain/$match_username/\d+/(bulletinboard|smppg)$}) || - ($url =~ m{^/adm/$match_domain/$match_courseid/\d+/ext\.tool$})) { - my ($srcd,$srcn) = split(/_/,$cid); -# When paste buffer was populated using an active role in a different course -# check for mdc privilege in the course from which the resource was pasted - if (($srcd ne $coursedom) || ($srcn ne $coursenum)) { - unless ($env{"user.priv.cm./$srcd/$srcn"} =~ /\Q:mdc&F\E/) { - $notincrs{$suffix} = 1; - next; - } - } -# When buffer was populated using an active role in a different course -# disallow pasting of External Tool if course is in a different domain. - if ($srcd ne $coursedom) { - $notindom{$suffix} = 1; - next; - } - $srcdom{$suffix} = $srcd; - $srcnum{$suffix} = $srcn; } + push(@dopaste,$suffix); if ($url=~/\.(page|sequence)$/) { $is_map{$suffix} = 1; @@ -1688,7 +1544,7 @@ sub do_paste_from_buffer { my $oldprefix = $1; # When pasting content from Main Content to Supplemental Content and vice versa # URLs will contain different paths (which depend on whether pasted item is -# a folder/page or a document). +# a folder/page or a document. if (($folder =~ /^supplemental/) && (($oldprefix =~ /^default/) || ($oldprefix eq 'docs'))) { $prefixchg{$suffix} = 'docstosupp'; } elsif (($folder =~ /^default/) && ($oldprefix =~ /^supplemental/)) { @@ -1728,7 +1584,6 @@ sub do_paste_from_buffer { %msgs = &Apache::lonlocal::texthash ( notinsupp => 'Paste failed: content type is not supported within Supplemental Content', notincrs => 'Paste failed: Item is from a different course which you do not have rights to edit.', - notindom => 'Paste failed: Item is an external tool from a course in a different domain.', duplicate => 'Paste failed: only one instance of a particular published sequence or page is allowed within each course.', ); @@ -1777,14 +1632,12 @@ sub do_paste_from_buffer { } my $url=&LONCAPA::map::qtescape($env{'docs.markedcopy_url_'.$suffix}); my $title=&LONCAPA::map::qtescape($env{'docs.markedcopy_title_'.$suffix}); - my $cid=&LONCAPA::map::qtescape($env{'docs.markedcopy_crs_'.$suffix}); my $oldurl = $url; if ($is_map{$suffix}) { # If pasting a map, check if map contains other maps my (%hierarchy,%titles); - &contained_map_check($url,$folder,$coursenum,$coursedom, - \%removefrommap,\%removeparam,\%addedmaps, - \%hierarchy,\%titles,$allmaps); + &contained_map_check($url,$folder,\%removefrommap,\%removeparam, + \%addedmaps,\%hierarchy,\%titles,$allmaps); if ($url=~ m{^/uploaded/}) { my $newurl; unless ($env{'form.docs.markedcopy_options_'.$suffix} eq 'move') { @@ -1826,7 +1679,7 @@ sub do_paste_from_buffer { \%tomove,\%newsubdir,\%newurls); } } elsif ($url=~m {^/res/}) { -# published map can only exist once, so remove from paste buffer when done +# published map can only exists once, so remove from paste buffer when done push(@toclear,$suffix); # if pasting published map (main content area only) check map not already in course if ($folder =~ /^default/) { @@ -1837,23 +1690,15 @@ sub do_paste_from_buffer { } } } - if ($url=~ m{/(bulletinboard|smppg|ext\.tool)$}) { + if ($url=~ m{/(bulletinboard|smppg)$}) { my $prefix = $1; - my $fromothercrs; #need to copy the db contents to a new one, unless this is a move. my %info = ( src => $url, cdom => $coursedom, cnum => $coursenum, ); - if (($srcdom{$suffix} =~ /^$match_domain$/) && ($srcnum{$suffix} =~ /^$match_courseid$/)) { - unless (($srcdom{$suffix} eq $coursedom) && ($srcnum{$suffix} eq $coursenum)) { - $fromothercrs = 1; - $info{'cdom'} = $srcdom{$suffix}; - $info{'cnum'} = $srcnum{$suffix}; - } - } - unless (($env{'form.docs.markedcopy_options_'.$suffix} eq 'move') && (!$fromothercrs)) { + unless ($env{'form.docs.markedcopy_options_'.$suffix} eq 'move') { my (%lockerr,$msg); my ($newurl,$result,$errtext) = &dbcopy(\%info,$coursedom,$coursenum,\%lockerr); @@ -1865,8 +1710,6 @@ sub do_paste_from_buffer { $msg = &mt('Paste failed: An error occurred when copying the simple page.').' '.$errtext; } elsif ($prefix eq 'bulletinboard') { $msg = &mt('Paste failed: An error occurred when copying the discussion board.').' '.$errtext; - } elsif ($prefix eq 'ext.tool') { - $msg = &mt('Paste failed: An error occurred when copying the external tool.').' '.$errtext; } $results{$suffix} = $result; $msgerrs{$suffix} = $msg; @@ -2118,11 +1961,8 @@ sub dbcopy { my ($url,$result,$errtext); if (ref($dbref) eq 'HASH') { $url = $dbref->{'src'}; - if ($url =~ m{/(smppg|bulletinboard|ext\.tool)$}) { + if ($url =~ m{/(smppg|bulletinboard)$}) { my $prefix = $1; - if ($prefix eq 'ext.tool') { - $prefix = 'exttool'; - } if (($dbref->{'cdom'} =~ /^$match_domain$/) && ($dbref->{'cnum'} =~ /^$match_courseid$/)) { my $db_name; @@ -2133,8 +1973,6 @@ sub dbcopy { &Apache::lonsimplepage::get_db_name($url,$marker, $dbref->{'cdom'}, $dbref->{'cnum'}); - } elsif ($dbref->{'src'} =~ m{/ext\.tool$}) { - $db_name = 'exttool_'.$marker; } else { $db_name = 'bulletinpage_'.$marker; } @@ -2145,8 +1983,6 @@ sub dbcopy { if (!$suffix) { if ($prefix eq 'smppg') { $errtext = &mt('Failed to acquire a unique timestamp-based suffix when copying a simple page [_1].',$url); - } elsif ($prefix eq 'exttool') { - $errtext = &mt('Failed to acquire a unique timestamp-based suffix when copying an external tool [_1].',$url); } else { $errtext = &mt('Failed to acquire a unique timestamp-based suffix when copying a discussion board [_1].',$url); } @@ -2180,7 +2016,7 @@ sub dbcopy { $result=&Apache::lonnet::put($db_name,\%contents, $coursedom,$coursenum); if ($result eq 'ok') { - $url =~ s{/(\d*)/(smppg|bulletinboard|ext\.tool)$}{/$suffix/$2}x; + $url =~ s{/(\d*)/(smppg|bulletinboard)$}{/$suffix/$2}x; } } if (($freedlock ne 'ok') && (ref($lockerrorsref) eq 'HASH')) { @@ -2190,9 +2026,6 @@ sub dbcopy { if ($prefix eq 'smppg') { $lockerrorsref->{$prefix} .= ' '.&mt('This will prevent creation of additional simple pages in this course.'); - } elsif ($prefix eq 'exttool') { - $lockerrorsref->{$prefix} .= - ' '.&mt('This will prevent addition of more external tools to this course.'); } else { $lockerrorsref->{$prefix} .= ' '.&mt('This will prevent creation of additional discussion boards in this course.'); } @@ -2233,8 +2066,8 @@ sub uniqueness_check { } sub contained_map_check { - my ($url,$folder,$coursenum,$coursedom,$removefrommap,$removeparam,$addedmaps, - $hierarchy,$titles,$allmaps) = @_; + my ($url,$folder,$removefrommap,$removeparam,$addedmaps,$hierarchy,$titles, + $allmaps) = @_; my $content = &Apache::lonnet::getfile($url); unless ($content eq '-1') { my $parser = HTML::TokeParser->new(\$content); @@ -2263,8 +2096,7 @@ sub contained_map_check { $addedmaps->{$ressrc} = [$url]; } } - &contained_map_check($ressrc,$folder,$coursenum,$coursedom, - $removefrommap,$removeparam, + &contained_map_check($ressrc,$folder,$removefrommap,$removeparam, $addedmaps,$hierarchy,$titles,$allmaps); } } elsif ($token->[1] eq 'param') { @@ -2913,8 +2745,8 @@ sub handle_edit_cmd { sub editor { my ($r,$coursenum,$coursedom,$folder,$allowed,$upload_output,$crstype, - $supplementalflag,$orderhash,$iconpath,$pathitem,$ltitoolsref, - $canedit,$navmapref,$hiddentop)=@_; + $supplementalflag,$orderhash,$iconpath,$pathitem,$canedit,$navmapref, + $hiddentop)=@_; my ($randompick,$ishidden,$isencrypted,$plain,$is_random_order,$container); if ($allowed) { (my $breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain, @@ -3125,17 +2957,6 @@ sub editor { } else { return $errortxt; } - } elsif ($url =~ m{^/adm/$coursedom/$coursenum/new/ext\.tool}) { - my ($suffix,$errortxt,$locknotfreed) = - &new_timebased_suffix($coursedom,$coursenum,'exttool'); - if ($locknotfreed) { - $r->print($locknotfreed); - } - if ($suffix) { - $url =~ s{^(/adm/$coursedom/$coursenum)/new}{$1/$suffix}; - } else { - return $errortxt; - } } elsif ($url =~ m{^/uploaded/$coursedom/$coursenum/(docs|supplemental)/(default|\d+)/new.html$}) { if ($supplementalflag) { next unless ($1 eq 'supplemental'); @@ -3158,7 +2979,7 @@ sub editor { } ($errtext,$fatal,my $fixuperrors) = &group_import($coursenum, $coursedom, $folder,$container, - 'londocs',$ltitoolsref,@imports); + 'londocs',@imports); return $errtext if ($fatal); if ($fixuperrors) { $r->print($fixuperrors); @@ -3244,7 +3065,7 @@ sub editor { $output .= &entryline($idx,$name,$url,$folder,$allowed,$res, $coursenum,$coursedom,$crstype, $pathitem,$supplementalflag,$container, - \%filters,\%curr_groups,$ltitoolsref,$canedit, + \%filters,\%curr_groups,$canedit, $isencrypted,$navmapref); $idx++; $shown++; @@ -3624,7 +3445,7 @@ sub is_supplemental_title { sub entryline { my ($index,$title,$url,$folder,$allowed,$residx,$coursenum,$coursedom, $crstype,$pathitem,$supplementalflag,$container,$filtersref,$currgroups, - $ltitoolsref,$canedit,$isencrypted,$navmapref)=@_; + $canedit,$isencrypted,$navmapref)=@_; my ($foldertitle,$renametitle,$oldtitle); if (&is_supplemental_title($title)) { ($title,$foldertitle,$renametitle) = &Apache::loncommon::parse_supplemental_title($title); @@ -3721,7 +3542,6 @@ END 'rn' => 'Rename', 'cp' => 'Copy', 'ex' => 'External Resource', - 'et' => 'External Tool', 'ed' => 'Edit', 'pr' => 'Preview', 'sv' => 'Save', @@ -3741,7 +3561,6 @@ END |/aboutme$ |/navmaps$ |/bulletinboard$ - |/ext\.tool$ |\.html$)}x) || $isexternal) { $skip_confirm = 1; @@ -3900,8 +3719,6 @@ END if (($ENV{'SERVER_PORT'} == 443) && ($exturl !~ /^https:/)) { $nomodal = 1; } - } elsif ($url=~m{^/adm/$coursedom/$coursenum/\d+/ext\.tool$}) { - $url='/adm/wrapper'.$url; } elsif ($url eq "/public/$coursedom/$coursenum/syllabus") { if (($ENV{'SERVER_PORT'} == 443) && ($env{'course.'.$env{'request.course.id'}.'.externalsyllabus'} =~ m{^http://})) { @@ -4066,17 +3883,12 @@ $form_common."\n". $form_end; } } elsif ($supplementalflag && !$allowed) { - my $isexttool; - if ($url=~m{^/adm/$coursedom/$coursenum/\d+/ext\.tool$}) { - $url='/adm/wrapper'.$url; - $isexttool = 1; - } $url .= ($url =~ /\?/) ? '&':'?'; $url .= 'folderpath='.&HTML::Entities::encode($esc_path,'<>&"'); if ($title) { $url .= '&title='.&HTML::Entities::encode($renametitle,'<>&"'); } - if ((($isexternal) || ($isexttool)) && $orderidx) { + if ($isexternal && $orderidx) { $url .= '&idx='.$orderidx; } if ($anchor ne '') { @@ -4090,13 +3902,7 @@ $form_end; if ($isexternal) { ($editlink,$extresform) = &Apache::lonextresedit::extedit_form(0,$residx,$orig_url,$title,$pathitem, - undef,undef,undef,undef,undef,undef, - undef,$disabled); - } elsif ($orig_url =~ m{^/adm/$coursedom/$coursenum/\d+/ext\.tool$}) { - ($editlink,$extresform) = - &Apache::lonextresedit::extedit_form(0,$residx,$orig_url,$title,$pathitem, - undef,undef,undef,'tool',$coursedom, - $coursenum,$ltitoolsref,$disabled); + undef,undef,undef,$disabled); } elsif (!$isfolder && !$ispage) { my ($cfile,$home,$switchserver,$forceedit,$forceview) = &Apache::lonnet::can_edit_resource($fileloc,$coursenum,$coursedom,$orig_url); @@ -4299,8 +4105,6 @@ sub new_timebased_suffix { $errtext = &mt('Failed to acquire a unique timestamp-based suffix for the new folder/page.'); } elsif ($type eq 'smppg') { $errtext = &mt('Failed to acquire a unique timestamp-based suffix for the new simple page.'); - } elsif ($type eq 'exttool') { - $errtext = &mt('Failed to acquire a unique timestamp-based suffix for the new external tool.'); } else { $errtext = &mt('Failed to acquire a unique timestamp-based suffix for the new discussion board.'); } @@ -4329,9 +4133,6 @@ sub new_timebased_suffix { } elsif ($type eq 'smppg') { $locknotfreed .= &mt('This will prevent creation of additional simple pages in this course.'); - } elsif ($type eq 'exttool') { - $locknotfreed .= - &mt('This will prevent creation of additional external tools in this course.'); } else { $locknotfreed .= &mt('This will prevent creation of additional discussion boards in this course.'); @@ -4953,12 +4754,12 @@ sub handler { # # --------------------------------------------- Initialize help topics for this foreach my $topic ('Adding_Course_Doc','Main_Course_Documents', - 'Adding_External_Resource','Adding_External_Tool', - 'Navigate_Content','Adding_Folders','Docs_Overview', - 'Load_Map','Supplemental','Score_Upload_Form', - 'Adding_Pages','Importing_LON-CAPA_Resource', - 'Importing_IMS_Course','Uploading_From_Harddrive', - 'Course_Roster','Web_Page','Dropbox','Simple_Problem') { + 'Adding_External_Resource','Navigate_Content', + 'Adding_Folders','Docs_Overview', 'Load_Map', + 'Supplemental','Score_Upload_Form','Adding_Pages', + 'Importing_LON-CAPA_Resource','Importing_IMS_Course', + 'Uploading_From_Harddrive','Course_Roster','Web_Page', + 'Dropbox','Simple_Problem') { $help{$topic}=&Apache::loncommon::help_open_topic('Docs_'.$topic); } # Composite help files @@ -5051,7 +4852,6 @@ sub handler { my $container; my $containertag; my $pathitem; - my %ltitools; my $hiddentop; my $navmap; my $filterFunc = sub { my $res = shift; return (!$res->randomout() && !$res->is_map()) }; @@ -5229,14 +5029,12 @@ sub handler { } } my $tabidstr = join("','",@tabids); - %ltitools = &Apache::lonnet::get_domain_lti($coursedom,'consumer'); - my $posslti = keys(%ltitools); - $script .= &editing_js($udom,$uname,$supplementalflag,$coursedom,$coursenum,$posslti, + $script .= &editing_js($udom,$uname,$supplementalflag,$coursedom,$coursenum, $canedit,\$navmap). &history_tab_js(). &inject_data_js(). &Apache::lonhtmlcommon::resize_scrollbox_js('docs',$tabidstr,$tid). - &Apache::lonextresedit::extedit_javascript(\%ltitools); + &Apache::lonextresedit::extedit_javascript(); $addentries = { onload => "javascript:resize_scrollbox('contentscroll','1','1');", }; @@ -5314,6 +5112,7 @@ sub handler { undef($hadchanges); $uploadphase = &process_file_upload(\$upload_output,$coursenum,$coursedom, \%allfiles,\%codebase,$context,$crstype); + undef($navmap); if ($hadchanges) { &mark_hash_old(); } @@ -5370,8 +5169,6 @@ sub handler { 'impo' => 'Import', 'lnks' => 'Import from Stored Links', 'impm' => 'Import from Assembled Map', - 'extr' => 'External Resource', - 'extt' => 'External Tool', 'selm' => 'Select Map', 'load' => 'Load Map', 'newf' => 'New Folder', @@ -5541,12 +5338,7 @@ SEDFFORM my $extresourcesform = &Apache::lonextresedit::extedit_form(0,0,undef,undef,$pathitem, $help{'Adding_External_Resource'}, - undef,undef,undef,undef,undef,undef,$disabled); - my $exttoolform = - &Apache::lonextresedit::extedit_form(0,0,undef,undef,$pathitem, - $help{'Adding_External_Tool'},undef, - undef,'tool',$coursedom,$coursenum, - \%ltitools,$disabled); + undef,undef,$disabled); if ($allowed) { my $folder = $env{'form.folder'}; if ($folder eq '') { @@ -5794,11 +5586,6 @@ NGFFORM my @importdoc = ( {''.$lt{extr}.''=>$extresourcesform} ); - if (keys(%ltitools)) { - push(@importdoc, - {''.$lt{extt}.''=>$exttoolform}, - ); - } unless ($container eq 'page') { push(@importdoc, {''.$lt{imsf}.''=>$imspform} @@ -5841,13 +5628,16 @@ unless ($container eq 'page') { unless (($supplementalflag || $toolsflag)) { my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype, $supplementalflag,\%orderhash,$iconpath,$pathitem, - \%ltitools,$canedit,\$navmap,$hiddentop); + $canedit,\$navmap,$hiddentop); undef($navmap); if ($error) { $r->print('

'.$error.'

'); } + unless (&is_hash_old()) { if ($hadchanges) { - &mark_hash_old(); + unless (&is_hash_old()) { + &mark_hash_old(); + } } &changewarning($r,''); @@ -5908,14 +5698,8 @@ SNFFORM my $supextform = &Apache::lonextresedit::extedit_form(1,0,undef,undef,$pathitem, $help{'Adding_External_Resource'}, - undef,undef,undef,undef,undef,undef, - $disabled); + undef,undef,$disabled); - my $supexttoolform = - &Apache::lonextresedit::extedit_form(1,0,undef,undef,$pathitem, - $help{'Adding_External_Tool'}, - undef,undef,'tool',$coursedom, - $coursenum,\%ltitools,$disabled); my $supnewsylform=(< @@ -5969,16 +5753,10 @@ my @specialdocs = ( ); my @supimportdoc = ( {''.$lt{extr}.'' - =>$supextform}); - if (keys(%ltitools)) { - push(@supimportdoc, - {''.$lt{extt}.'' - =>$supexttoolform}); - } - push(@supimportdoc, + =>$supextform}, {''.$lt{upl}.'' =>$supupdocform}, - ); + ); $supupdocform = &create_form_ul(&create_list_elements(@supimportdoc)); my %suporderhash = ( @@ -5989,7 +5767,7 @@ my %suporderhash = ( if ($supplementalflag) { my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype, $supplementalflag,\%suporderhash,$iconpath,$pathitem, - \%ltitools,$canedit); + $canedit); if ($error) { $r->print('

'.$error.'

'); } else { @@ -6381,7 +6159,7 @@ END } sub editing_js { - my ($udom,$uname,$supplementalflag,$coursedom,$coursenum,$posslti,$canedit,$navmapref) = @_; + my ($udom,$uname,$supplementalflag,$coursedom,$coursenum,$canedit,$navmapref) = @_; my %js_lt = &Apache::lonlocal::texthash( p_mnf => 'Name of New Folder', t_mnf => 'New Folder', @@ -6472,17 +6250,11 @@ sub editing_js { } my $fieldsets = "'ext','doc'"; - if ($posslti) { - $fieldsets .= ",'tool'"; - } unless ($main_container_page) { $fieldsets .=",'ims'"; } if ($supplementalflag) { $fieldsets = "'suppext','suppdoc'"; - if ($posslti) { - $fieldsets .= ",'supptool'"; - } } my $jsmakefunctions; @@ -6679,19 +6451,6 @@ function toggleUpload(caller) { } } document.getElementById('upload'+blocks[i]+'form').style.display=disp; - if ((caller == 'tool') || (caller == 'supptool')) { - if (disp == 'block') { - if (document.getElementById('LC_exttoolid')) { - var toolselector = document.getElementById('LC_exttoolid'); - var suppflag = 0; - if (caller == 'supptool') { - suppflag = 1; - } - currForm = document.getElementById('new'+caller); - updateExttool(toolselector,currForm,suppflag); - } - } - } } resize_scrollbox('contentscroll','1','1'); return;