--- loncom/interface/londocs.pm 2005/07/26 16:41:43 1.198 +++ loncom/interface/londocs.pm 2009/01/28 11:51:22 1.326 @@ -1,2810 +1,3679 @@ -# The LearningOnline Network -# Documents -# -# $Id: londocs.pm,v 1.198 2005/07/26 16:41:43 raeburn Exp $ -# -# Copyright Michigan State University Board of Trustees -# -# This file is part of the LearningOnline Network with CAPA (LON-CAPA). -# -# 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::londocs; - -use strict; -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='