--- loncom/interface/lonindexer.pm 2006/06/23 06:39:09 1.146
+++ loncom/interface/lonindexer.pm 2006/07/21 08:25:25 1.149
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Directory Indexer
#
-# $Id: lonindexer.pm,v 1.146 2006/06/23 06:39:09 www Exp $
+# $Id: lonindexer.pm,v 1.149 2006/07/21 08:25:25 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -123,7 +123,11 @@ sub handler {
%hash = ();
{
my %dbfile;
- if (tie(%dbfile,'GDBM_File',$diropendb,&GDBM_READER(),0640)) {
+ if (tie(%dbfile,'GDBM_File',$diropendb,&GDBM_WRITER(),0640)) {
+ if ($env{'form.launch'} eq '1') {
+ &start_fresh_session(\%dbfile);
+ }
+
while(my($key,$value)=each(%dbfile)) {
$hash{$key}=$value;
}
@@ -131,9 +135,6 @@ sub handler {
}
}
{
- if ($env{'form.launch'} eq '1') {
- &start_fresh_session();
- }
#Hijack lonindexer to verify a title and be close down.
if ($env{'form.launch'} eq '2') {
&Apache::loncommon::content_type($r,'text/html');
@@ -1046,6 +1047,7 @@ sub display_line {
# links
&dynmetaread($filelink);
$r->print('
');
+ &coursecontext($r,$filelink);
&dynmetaprint($r,$filelink,'goto_list');
&dynmetaprint($r,$filelink,'comefrom_list');
&dynmetaprint($r,$filelink,'sequsage_list');
@@ -1148,6 +1150,17 @@ sub display_line {
}
+sub coursecontext {
+ my ($r,$filelink)=@_;
+ my $filesymb=&Apache::lonnet::symbread($filelink);
+ if ($filesymb) {
+ my ($map,$index,$resource)=&Apache::lonnet::decode_symb($filesymb);
+ $r->print(&mt('Already in this course: [_1] in folder/map [_2]. ',
+ &Apache::lonnet::gettitle($resource),
+ &Apache::lonnet::gettitle($map)));
+ }
+}
+
sub showpreview {
my ($filelink)=@_;
my ($curfext)=($filelink=~/\.(\w+)$/);
@@ -1162,6 +1175,11 @@ sub showpreview {
$output=join("\n",);
close(FH);
} else {
+# In update display mode, remove old cache. This is done to retroactively
+# clean up course context renderings.
+ if (-e $cache) {
+ unlink($cache);
+ }
$output=&Apache::lonnet::ssi_body($filelink);
# Is access denied? Don't render, don't store
if ($output=~/LONCAPAACCESSCONTROLERRORSCREEN/s) {
@@ -1214,14 +1232,15 @@ sub begin_form {
# --------- settings whenever the user causes the indexer window to be launched
sub start_fresh_session {
- delete $hash{'form.catalogmode'};
- delete $hash{'form.mode'};
- delete $hash{'form.form'};
- delete $hash{'form.element'};
- delete $hash{'form.omit'};
- delete $hash{'form.only'};
- foreach (keys %hash) {
- delete $hash{$_} if (/^(pre_|store)/);
+ my ($hash) = @_;
+ delete $hash->{'form.catalogmode'};
+ delete $hash->{'form.mode'};
+ delete $hash->{'form.form'};
+ delete $hash->{'form.element'};
+ delete $hash->{'form.omit'};
+ delete $hash->{'form.only'};
+ foreach (keys %{$hash}) {
+ delete $hash->{$_} if (/^(pre_|store)/);
}
}
|