--- loncom/interface/londocs.pm 2002/07/24 20:25:23 1.1 +++ loncom/interface/londocs.pm 2005/08/30 15:41:32 1.203 @@ -1,40 +1,2822 @@ # The LearningOnline Network -# Printout +# Documents # -# (Internal Server Error Handler +# $Id: londocs.pm,v 1.203 2005/08/30 15:41:32 raeburn Exp $ # -# (Login Screen -# 5/21/99,5/22,5/25,5/26,5/31,6/2,6/10,7/12,7/14, -# 1/14/00,5/29,5/30,6/1,6/29,7/1,11/9 Gerd Kortemeyer) +# Copyright Michigan State University Board of Trustees # -# 3/1/1 Gerd Kortemeyer) +# This file is part of the LearningOnline Network with CAPA (LON-CAPA). # -# 3/1 Gerd Kortemeyer +# LON-CAPA is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# LON-CAPA is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LON-CAPA; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# /home/httpd/html/adm/gpl.txt +# +# http://www.lon-capa.org/ # -package Apache::lonprintout; + +package Apache::londocs; use strict; -use Apache::Constants qw(:common); +use Apache::Constants qw(:common :http); +use Apache::imsexport; +use Apache::lonnet; +use Apache::loncommon; +use Apache::lonratedt; +use Apache::lonratsrv; +use Apache::lonxml; +use Apache::loncreatecourse; +use Apache::lonnavmaps; +use HTML::Entities; +use GDBM_File; +use Apache::lonlocal; +use Cwd; + +my $iconpath; + +my %hash; + +my $hashtied; +my %alreadyseen=(); + +my $hadchanges; + +# Available help topics + +my %help=(); + +# Mapread read maps into lonratedt::global arrays +# @order and @resources, determines status +# sets @order - pointer to resources in right order +# sets @resources - array with the resources with correct idx +# + +sub mapread { + my ($coursenum,$coursedom,$map)=@_; + return + &Apache::lonratedt::mapread('/uploaded/'.$coursedom.'/'.$coursenum.'/'. + $map); +} + +sub storemap { + my ($coursenum,$coursedom,$map)=@_; + my ($outtext,$errtext)= + &Apache::lonratedt::storemap('/uploaded/'.$coursedom.'/'.$coursenum.'/'. + $map,1); + if ($errtext) { return ($errtext,2); } + + $hadchanges=1; + return ($errtext,0); +} + +# ----------------------------------------- Return hash with valid author names + +sub authorhosts { + my %outhash=(); + my $home=0; + my $other=0; + foreach (keys %env) { + if ($_=~/^user\.role\.(au|ca)\.(.+)$/) { + my $role=$1; + my $realm=$2; + my ($start,$end)=split(/\./,$env{$_}); + if (($start) && ($start>time)) { next; } + if (($end) && (time>$end)) { next; } + my $ca; my $cd; + if ($1 eq 'au') { + $ca=$env{'user.name'}; + $cd=$env{'user.domain'}; + } else { + ($cd,$ca)=($realm=~/^\/(\w+)\/(\w+)$/); + } + my $allowed=0; + my $myhome=&Apache::lonnet::homeserver($ca,$cd); + my @ids=&Apache::lonnet::current_machine_ids(); + foreach my $id (@ids) { if ($id eq $myhome) { $allowed=1; } } + if ($allowed) { + $home++; + $outhash{'home_'.$ca.'@'.$cd}=1; + } else { + $outhash{'otherhome_'.$ca.'@'.$cd}=$myhome; + $other++; + } + } + } + return ($home,$other,%outhash); +} +# ------------------------------------------------------ Generate "dump" button + +sub dumpbutton { + my ($home,$other,%outhash)=&authorhosts(); + if ($home+$other==0) { return ''; } + my $output='