Index: openacs-4/packages/chat/chat.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/chat.info,v
diff -u -r1.11 -r1.12
--- openacs-4/packages/chat/chat.info	24 Jun 2007 15:21:18 -0000	1.11
+++ openacs-4/packages/chat/chat.info	19 Nov 2007 01:14:08 -0000	1.12
@@ -7,21 +7,20 @@
     <initial-install-p>f</initial-install-p>
     <singleton-p>f</singleton-p>
     
-    <version name="5.1d2" url="http://openacs.org/repository/download/apm/chat-5.1d2.apm">
+    <version name="5.0d6" url="http://openacs.org/repository/download/apm/chat-5.0d6.apm">
         <owner url="http://www.openacs.org">Peter Alberer</owner>
         <summary>Server based chat with an html and ajax client.</summary>
         <release-date>2006-04-11</release-date>
         <vendor url="http://openacs.org">OpenACS</vendor>
-        <description format="text/html">Adapted by Peter Alberer 2006/03/25 to allow java and ajax to coexist. 
+        <description format="text/html">Adapted by Peter Alberer 2006/03/25 to allow java and ajax to coexist. 
 Adapted by Tekne 2006/03/01 to replace JAVA server with AJAX; make use of generalized chat class from xotcl-core.</description>
         <maturity>0</maturity>
 
-        <provides url="chat" version="5.1d2"/>
+        <provides url="chat" version="5.0d6"/>
         <requires url="acs-kernel" version="5.0d13"/>
         <requires url="xotcl-core" version="0.36"/>
 
         <callbacks>
-            <callback type="after-install"  proc="chat::install::package_install"/>
         </callbacks>
         <parameters>
             <parameter datatype="number"  min_n_values="1"  max_n_values="1"  name="AppletHeight"  default="500" description="Height of the applet"/>
Index: openacs-4/packages/chat/catalog/chat.de_DE.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/catalog/chat.de_DE.ISO-8859-1.xml,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/chat/catalog/chat.de_DE.ISO-8859-1.xml	24 Jun 2006 14:23:40 -0000	1.2
+++ openacs-4/packages/chat/catalog/chat.de_DE.ISO-8859-1.xml	19 Nov 2007 01:14:15 -0000	1.3
@@ -92,7 +92,6 @@
   <msg key="Room_name">Raumname</msg>
   <msg key="Room_no_active">Raum nicht aktiv</msg>
   <msg key="Room_not_found">Raum nicht gefunden</msg>
-  <msg key="rooms">R�ume</msg>
   <msg key="Send_Refresh">Senden</msg>
   <msg key="sending_message">Sende Nachricht...</msg>
   <msg key="There_are_no_rooms_available">Es sind keine R�ume verf�gbar</msg>
Index: openacs-4/packages/chat/catalog/chat.en_US.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/catalog/chat.en_US.ISO-8859-1.xml,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/chat/catalog/chat.en_US.ISO-8859-1.xml	21 Jun 2007 11:06:29 -0000	1.3
+++ openacs-4/packages/chat/catalog/chat.en_US.ISO-8859-1.xml	19 Nov 2007 01:14:15 -0000	1.4
@@ -94,10 +94,8 @@
   <msg key="Room_name">Room name</msg>
   <msg key="Room_no_active">Room no active</msg>
   <msg key="Room_not_found">Room not found, Invalid room id</msg>
-  <msg key="rooms">rooms</msg>
   <msg key="Send_Refresh">Send/Refresh</msg>
   <msg key="sending_message">Sending message...</msg>
-  <msg key="There">There are no messages to delete</msg>
   <msg key="There_are_no_rooms_available">There are no rooms available</msg>
   <msg key="to">to</msg>
   <msg key="Transcript">Transcript</msg>
Index: openacs-4/packages/chat/catalog/chat.es_ES.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/catalog/chat.es_ES.ISO-8859-1.xml,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/chat/catalog/chat.es_ES.ISO-8859-1.xml	15 May 2007 20:14:23 -0000	1.3
+++ openacs-4/packages/chat/catalog/chat.es_ES.ISO-8859-1.xml	19 Nov 2007 01:14:15 -0000	1.4
@@ -94,7 +94,6 @@
   <msg key="Room_name">Nombre de la sala</msg>
   <msg key="Room_no_active">Sala no activa</msg>
   <msg key="Room_not_found">Sala no encontrada. Id de sala incorrecto</msg>
-  <msg key="rooms">salas</msg>
   <msg key="Send_Refresh">Enviar/Actualizar</msg>
   <msg key="sending_message">Enviando mensaje...</msg>
   <msg key="There_are_no_rooms_available">No hay salas disponibles</msg>
Index: openacs-4/packages/chat/catalog/chat.pt_BR.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/catalog/chat.pt_BR.ISO-8859-1.xml,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/chat/catalog/chat.pt_BR.ISO-8859-1.xml	15 May 2007 20:14:23 -0000	1.3
+++ openacs-4/packages/chat/catalog/chat.pt_BR.ISO-8859-1.xml	19 Nov 2007 01:14:15 -0000	1.4
@@ -79,6 +79,7 @@
   <msg key="Moderated">Moderada</msg>
   <msg key="msg">Mensagem</msg>
   <msg key="Name">Nome</msg>
+  <msg key="No">N�o</msg>
   <msg key="No_information_available">Sem informa��es dispon�veis</msg>
   <msg key="noactive">Desativada</msg>
   <msg key="Refresh">Atualizar</msg>
@@ -106,18 +107,22 @@
   <msg key="transcription_msg">transcri��o de todas as mensgens do chat</msg>
   <msg key="Transcripts">Transcri��es</msg>
   <msg key="transcripts_of_room">Transcri��es dispon�veis na sala</msg>
+  <msg key="Trascript">Transcri��o</msg>
+  <msg key="Trasncript">Transcri��o</msg>
   <msg key="Unauthorized">N�o autorizado</msg>
   <msg key="Unauthorized_privilege">Privil�gio n�o autorizado</msg>
   <msg key="Unban">Desbanir</msg>
   <msg key="unban">desbanir</msg>
   <msg key="Unban_user">Desbanir usu�rio</msg>
   <msg key="Untitled">Sem T�tulo</msg>
   <msg key="Update_room">Atualizar sala</msg>
+  <msg key="Users_allow">Usu�rios permitidos</msg>
   <msg key="Users_ban">Usu�rios banidos</msg>
   <msg key="View">Ver</msg>
   <msg key="View_transcript">Ver transcri��o</msg>
   <msg key="What_search">para nome ou e-mail ou usu�rio limitado a</msg>
   <msg key="xotcl_missing">&lt;b&gt;Aviso&lt;/b&gt; O par�emtro do pacote &quot;DefaultClient&quot; est� configurado para &quot;Ajax&quot; mas o pacote xotcl-core n�o est� instalado. Chat em Ajax n�o funciona sem o xotcl-core!</msg>
+  <msg key="Yes">Sim</msg>
   <msg key="You_dont_have_permission_room">Voc� n�o tem permiss�o para entrar nesta sala de chat</msg>
   <msg key="your_name_is">seu nome �</msg>
 </message_catalog>
Index: openacs-4/packages/chat/lib/current-messages.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/lib/current-messages.tcl,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/chat/lib/current-messages.tcl	7 Jun 2007 09:14:24 -0000	1.3
+++ openacs-4/packages/chat/lib/current-messages.tcl	19 Nov 2007 01:14:15 -0000	1.4
@@ -7,25 +7,7 @@
 }
 
 db_multirow -extend { person_name } messages select_msg_itens $sql {
-    db_1row room_info2 {
-    		select count(r.alias)
-    		from chat_registered_users r
-    		where r.user_id = :creation_user
-    		and r.room_id = :room_id
+    if { [catch { set person_name [chat_user_name $creation_user] }] } {
+        set person_name "Unknown"
     }
-    if { $count > 0} {
-	db_1row room_info2 {
-		select r.alias
-		from chat_registered_users r
-    		where r.user_id = :creation_user
-    		and r.room_id = :room_id
-	}
-        if { [catch { set person_name [chat_user_name2 $creation_user $alias] }] } {
-        	set person_name "System"
-    	}
-    } else {
-    	if { [catch { set person_name [chat_user_name $creation_user] }] } {
-        	set person_name "System"
-    	}
-    }
 }
Index: openacs-4/packages/chat/lib/transcript-view.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/lib/transcript-view.tcl,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/chat/lib/transcript-view.tcl	7 Jun 2007 09:14:24 -0000	1.3
+++ openacs-4/packages/chat/lib/transcript-view.tcl	19 Nov 2007 01:14:15 -0000	1.4
@@ -8,21 +8,4 @@
     where transcript_id=:transcript_id
 }
 
-set user_id [ad_conn user_id]
-#A professor who creates a rooom will be able to admin it.
-db_1row room_info2 {
-		select count(cr.creator) as counter2
-		from chat_rooms cr
-		where cr.room_id = :room_id
-		and cr.creator = :user_id		
- }
- if { $counter2 > 0} { 	
- 		set admin_professor "t"
- } else {
- 	 set admin_professor "f"
- } 
-if { $admin_professor eq "t"} {
-set edit_p 1
-} else {
 set edit_p [permission::permission_p -object_id $room_id -privilege "chat_transcript_edit"]
-}
Index: openacs-4/packages/chat/sql/postgresql/chat-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/sql/postgresql/chat-create.sql,v
diff -u -r1.6 -r1.7
--- openacs-4/packages/chat/sql/postgresql/chat-create.sql	24 Jun 2007 15:21:19 -0000	1.6
+++ openacs-4/packages/chat/sql/postgresql/chat-create.sql	19 Nov 2007 01:14:15 -0000	1.7
@@ -1,7 +1,9 @@
 --
 -- packages/chat/sql/chat-create.sql
 --
--- @author ddao@arsdigita.com and Pablo Mu�oz(pablomp@tid.es)
+-- @author ddao@arsdigita.com
+-- @creation-date November 09, 2000
+-- @cvs-id $Id$
 --
 
 
@@ -84,8 +86,6 @@
        );
 
 
-	
-
        attr_id := acs_attribute__create_attribute (
           ''chat_room'',       -- object_type
           ''pretty_name'',     -- attribute_name
@@ -180,8 +180,37 @@
 SELECT inline_0();
 DROP function inline_0();
 
----------------------------------------
 
+create table chat_rooms (
+
+    room_id            integer
+                       constraint chat_rooms_room_id_pk primary key
+                       constraint chat_rooms_room_id_fk
+                       references acs_objects(object_id),
+    -- This is room name.
+    pretty_name        varchar(100)
+                       constraint chat_rooms_pretty_name_nn not null,
+    description        varchar(2000),
+    moderated_p        boolean
+                       default 'f'
+                       constraint chat_rooms_moderate_p_ck
+                       check (moderated_p in ('t','f')),
+    active_p           boolean
+                       default 't'
+                       constraint chat_rooms_active_p_ck
+                       check (active_p in ('t','f')),
+    -- if set then log all chat messages in this room.
+    archive_p          boolean
+                        default 't'
+                       constraint chat_rooms_archive_p_ck
+                        check (archive_p in ('t', 'f')),
+    -- flush the rooms messages every night at 00:05                    
+    auto_flush_p        boolean default 't',
+    -- automatically create a transcript after flushing the room
+    auto_transcript_p   boolean default 'f'
+);
+
+
 -- create chat transcript object type
 CREATE FUNCTION inline_0()
 RETURNS integer
@@ -265,299 +294,115 @@
 DROP function inline_0();
 
 
----------------------------------------------
-
-CREATE TABLE chat_rooms (
-  room_id INTEGER NOT NULL, 
-  pretty_name VARCHAR(100) NOT NULL, 
-  description VARCHAR(2000), 
-  moderated_p BOOLEAN DEFAULT false, 
-  active_p BOOLEAN DEFAULT true, 
-  archive_p BOOLEAN DEFAULT false, 
-  maximal_participants INTEGER, 
-  end_date DATE, 
-  creator INTEGER, 
-  context_id INTEGER, 
-  comm_name VARCHAR, 
-  open BOOLEAN, 
-  auto_transcript_p BOOLEAN, 
-  file_sent BOOLEAN, 
-  private BOOLEAN, 
-  frequency1 VARCHAR, 
-  CONSTRAINT chat_rooms_room_id_pk PRIMARY KEY(room_id), 
-  CONSTRAINT chat_rooms_active_p_ck CHECK ((active_p = true) OR (active_p = false)), 
-  CONSTRAINT chat_rooms_archive_p_ck CHECK ((archive_p = true) OR (archive_p = false)), 
-  CONSTRAINT chat_rooms_moderate_p_ck CHECK ((moderated_p = true) OR (moderated_p = false)), 
-  CONSTRAINT chat_rooms_fk FOREIGN KEY ("creator")
-    REFERENCES users(user_id)
-    ON DELETE cascade
-    NOT DEFERRABLE, 
-  CONSTRAINT chat_rooms_room_id_fk FOREIGN KEY (room_id)
-    REFERENCES acs_objects(object_id)
-    ON DELETE NO ACTION
-    ON UPDATE NO ACTION
-    NOT DEFERRABLE
-) WITH OIDS;
-
-
 ---------------------------------
 
-CREATE TABLE chat_transcripts (
-  transcript_id INTEGER NOT NULL, 
-  contents VARCHAR(32000) NOT NULL, 
-  pretty_name VARCHAR(100) NOT NULL, 
-  description VARCHAR(2000), 
-  room_id INTEGER, 
-  date DATE,
-  keywords VARCHAR,  
-  CONSTRAINT chat_trans_transcript_id_pk PRIMARY KEY(transcript_id), 
-  CONSTRAINT chat_trans_room_id_fk FOREIGN KEY (room_id)
-    REFERENCES chat_rooms(room_id)
-    ON DELETE NO ACTION
-    ON UPDATE NO ACTION
-    NOT DEFERRABLE, 
-  CONSTRAINT chat_trans_transcript_id_fk FOREIGN KEY (transcript_id)
-    REFERENCES acs_objects(object_id)
-    ON DELETE NO ACTION
-    ON UPDATE NO ACTION
-    NOT DEFERRABLE
-) WITH OIDS;
+create table chat_transcripts (
+    transcript_id      integer
+                       constraint chat_trans_transcript_id_pk primary key
+                       constraint chat_trans_transcript_id_fk
+                       references acs_objects(object_id),
+    contents           varchar(32000)
+                       constraint chat_trans_contents_nn not null,
+    -- Chat transcript name.
+    pretty_name        varchar(100)
+                       constraint chat_trans_pretty_name_nn not null,
+    description        varchar(2000),
+    room_id            integer
+                       constraint chat_trans_room_id_fk references chat_rooms
+);
 
 
 ---------------------------------
 
-CREATE TABLE chat_msgs (
-  msg_id INTEGER NOT NULL, 
-  msg VARCHAR(4000), 
-  msg_len INTEGER, 
-  html_p BOOLEAN DEFAULT false, 
-  approved_p BOOLEAN DEFAULT true, 
-  creation_user INTEGER NOT NULL, 
-  creation_ip VARCHAR(50), 
-  creation_date DATE NOT NULL, 
-  room_id INTEGER, 
-  CONSTRAINT chat_msgs_msg_id_pk PRIMARY KEY(msg_id), 
-  CONSTRAINT chat_msgs_approve_p_ck CHECK ((approved_p = true) OR (approved_p = false)), 
-  CONSTRAINT chat_msgs_html_p_ck CHECK ((html_p = true) OR (html_p = false)), 
-  CONSTRAINT chat_msgs_msg_len_ck CHECK (msg_len >= 0), 
-  CONSTRAINT chat_msgs_creation_user_fk FOREIGN KEY (creation_user)
-    REFERENCES parties(party_id)
-    ON DELETE cascade
-    NOT DEFERRABLE, 
-  CONSTRAINT chat_msgs_room_id_fk FOREIGN KEY (room_id)
-    REFERENCES chat_rooms(room_id)
-    ON DELETE cascade
-    NOT DEFERRABLE
-) WITH OIDS;
+create table chat_msgs (
+    msg_id             integer
+                       constraint chat_msgs_msg_id_pk primary key,
+    msg                varchar(4000),
+    msg_len            integer
+                       constraint chat_msgs_msg_len_ck
+                       check (msg_len >= 0),
+    html_p             boolean
+                       default 'f'
+                       constraint chat_msgs_html_p_ck
+                       check (html_p in ('t','f')),
+    approved_p         boolean
+                       default 't'
+                       constraint chat_msgs_approve_p_ck
+                       check(approved_p in ('t','f')),
+    creation_user      integer
+                       constraint chat_msgs_creation_user_fk
+                       references parties(party_id)
+                       constraint chat_msgs_creation_user_nn not null,
+    creation_ip        varchar(50) ,
+    creation_date      timestamptz,
+    room_id            integer
+                       constraint chat_msgs_room_id_fk references chat_rooms
+);
 
 
---------------------------------
-
-CREATE TABLE chat_registered_users (
-  alias VARCHAR(20) NOT NULL, 
-  room_id INTEGER, 
-  user_id INTEGER, 
-  rss_service BOOLEAN, 
-  mail_service BOOLEAN, 
-  registered_id INTEGER NOT NULL, 
-  frequency_mail varchar,
-  registered_date TIMESTAMP(0) WITHOUT TIME ZONE, 
-  CONSTRAINT chat_registered_users_pkey PRIMARY KEY(registered_id), 
-  CONSTRAINT chat_registered_users_fk FOREIGN KEY (room_id)
-    REFERENCES chat_rooms(room_id)
-    ON DELETE cascade
-    NOT DEFERRABLE, 
-  CONSTRAINT chat_registered_users_fk1 FOREIGN KEY (user_id)
-    REFERENCES users(user_id)
-    ON DELETE cascade
-    NOT DEFERRABLE, 
-  CONSTRAINT chat_registered_users_fk2 FOREIGN KEY (registered_id)
-    REFERENCES acs_objects(object_id)
-    ON DELETE cascade
-    NOT DEFERRABLE
-) WITH OIDS;
-
-
 ---------------------------------
 
-CREATE TABLE chat_keywords (
-  room_id INTEGER, 
-  keyword VARCHAR, 
-  CONSTRAINT chat_keywords_fk FOREIGN KEY (room_id)
-    REFERENCES chat_rooms(room_id)
-    ON DELETE cascade
-    NOT DEFERRABLE
-) WITH OIDS;
+create or replace function chat_room__new (integer, varchar, varchar, boolean, boolean, boolean, boolean, boolean, integer, timestamptz, integer, varchar, varchar)
+returns integer as '
+declare
+   p_room_id        alias for $1;
+   p_pretty_name    alias for $2;
+   p_description    alias for $3;
+   p_moderated_p    alias for $4;
+   p_active_p       alias for $5;
+   p_archive_p      alias for $6;
+   p_auto_flush_p      alias for $7;
+   p_auto_transcript_p      alias for $8;
+   p_context_id     alias for $9;
+   p_creation_date  alias for $10;
+   p_creation_user  alias for $11;
+   p_creation_ip    alias for $12;
+   p_object_type    alias for $13;
+   v_room_id        chat_rooms.room_id%TYPE;
+begin
+   v_room_id := acs_object__new (
+     null,
+     ''chat_room'',
+     now(),
+     p_creation_user,
+     p_creation_ip,
+     p_context_id
+   );
 
+   insert into chat_rooms
+       (room_id, pretty_name, description, moderated_p, active_p, archive_p, auto_flush_p, auto_transcript_p)
+   values
+       (v_room_id, p_pretty_name, p_description, p_moderated_p, p_active_p, p_archive_p, p_auto_flush_p, p_auto_transcript_p);
 
----------------------------------
+return v_room_id;
 
-CREATE TABLE chat_private_room_users (
-  room_id INTEGER, 
-  user_id1 INTEGER, 
-  user_id2 INTEGER, 
-  CONSTRAINT chat_private_room_users_fk FOREIGN KEY (room_id)
-    REFERENCES chat_rooms(room_id)
-    ON DELETE cascade
-    NOT DEFERRABLE
-) WITH OIDS;
+end;' language 'plpgsql';
 
 
----------------------------------
 
-CREATE TABLE chat_room_user_id (
-  room_id INTEGER NOT NULL references chat_rooms
-                           on delete cascade, 
-  user_id INTEGER NOT NULL, 
-  CONSTRAINT chat_room_user_id_fk FOREIGN KEY (user_id)
-    REFERENCES users(user_id)
-    ON DELETE cascade
-    NOT DEFERRABLE
-) WITH OIDS;
 
 
 ---------------------------------
 
-
-CREATE TABLE chat_rooms_files_sent (
-  file VARCHAR, 
-  title VARCHAR, 
-  room_id INTEGER NOT NULL, 
-  date DATE, 
-  send_file_id INTEGER references cr_revisions
-                       on delete cascade, 
-  description VARCHAR, 
-  message BOOLEAN, 
-  creation_user INTEGER, 
-  CONSTRAINT chat_rooms_files_sent_fk FOREIGN KEY (room_id)
-    REFERENCES chat_rooms(room_id)
-    ON DELETE cascade
-    NOT DEFERRABLE
-) WITH OIDS;
-
-
----------------------------------
-
-
-CREATE TABLE chat_rss (
-  room_name VARCHAR, 
-  creator VARCHAR, 
-  end_date DATE, 
-  description VARCHAR, 
-  comm_name VARCHAR, 
-  user_registered VARCHAR, 
-  rss_id INTEGER NOT NULL, 
-  date TIMESTAMP(0) WITHOUT TIME ZONE, 
-  entry_timestamp TIMESTAMP(0) WITHOUT TIME ZONE, 
-  CONSTRAINT "chat_rss_pkey" PRIMARY KEY("rss_id")
-) WITH OIDS;
-
-
----------------------------------
-
-CREATE TABLE chat_file_transcript (
-  transcript_id INTEGER, 
-  file_id INTEGER
-) WITH OIDS;
-
----------------------------------
-
-CREATE TABLE chat_files_rss (
-  file_id INTEGER, 
-  rss_id INTEGER
-) WITH OIDS;
-
-
----------------------------------
-
-CREATE TABLE chat_key_rss (
-  rss_id INTEGER, 
-  key VARCHAR
-) WITH OIDS;
-
-
----------------------------------
-
-CREATE TABLE chat_partitipants_rss (
-  partitipant VARCHAR, 
-  rss_id INTEGER
-) WITH OIDS;
-
-
----------------------------------
-
-CREATE TABLE chat_partitipants_transcript (
-  transcript_id INTEGER, 
-  partitipant VARCHAR
-) WITH OIDS;
-
----------------------------------
-
-CREATE TABLE chat_room_transcript_keywords (
-  keyword VARCHAR, 
-  transcript_id INTEGER
-) WITH OIDS;
-
-
----------------------------------
-
-CREATE TABLE chat_transcription_rss (
-  rss_id INTEGER, 
-  transcription_id INTEGER
-) WITH OIDS;
-
-
----------------------------------
-
-CREATE OR REPLACE FUNCTION chat_room__new (varchar, varchar, varchar, varchar, integer, timestamp, boolean, boolean, boolean, boolean, boolean, integer, varchar, integer, varchar, varchar, varchar, varchar) RETURNS integer AS'
-/* Nuevo cuerpo de Function */
+create function chat_room__name (integer)
+returns varchar as '
 declare
-   p_pretty_name    alias for $1;
-   p_alias          alias for $2;
-   p_description    alias for $3;
-   p_key_words      alias for $4;
-   p_maxP           alias for $5;
-   p_end_date       alias for $6;
-   p_Rss_service    alias for $7;
-   p_Mail_service   alias for $8;
-   p_moderated_p    alias for $9;
-   p_active_p       alias for $10;
-   p_archive_p      alias for $11;
-   p_context_id     alias for $12;
-   p_comm_name        alias for $13;
-   p_creation_user  alias for $14;
-   p_creation_ip    alias for $15;
-   p_object_type    alias for $16;
-   p_frequency1     alias for $17;
-   p_frequency2	    alias for $18;
-   v_room_id        chat_rooms.room_id%TYPE;
-   v_registered_id  chat_rooms.room_id%TYPE;
-   v_comm_name      varchar;
+   p_room_id         alias for $1;
+   v_pretty_name     chat_rooms.pretty_name%TYPE;
 begin
-     v_room_id := acs_object__new(null,''chat_room'',now(),p_creation_user,p_creation_ip,p_context_id   );
-     v_registered_id := acs_object__new(null,''chat_room'',now(),p_creation_user,p_creation_ip,p_context_id   );
+     select into v_pretty_name pretty_name from chat_rooms where room_id =  p_room_id;
+     return v_pretty_name;
+end;' language 'plpgsql';
 
-        insert into chat_rooms
-               (room_id, pretty_name, description, moderated_p, active_p, archive_p, maximal_participants, end_date, creator, context_id,comm_name,auto_transcript_p,file_sent,private,frequency1)
-       values
-             (v_room_id, p_pretty_name, p_description, p_moderated_p, p_active_p, p_archive_p, p_maxP, p_end_date,p_creation_user, p_context_id,v_comm_name,''true'',''false'',''false'',p_frequency1);
 
 
-   insert into chat_registered_users
-       (alias, room_id, user_id, RSS_service, mail_service, registered_id, frequency_mail)
-   values
-       (p_alias, v_room_id, p_creation_user, p_Rss_service, p_Mail_service, v_registered_id, p_frequency2);
 
-return v_room_id;
+-------------------------------
 
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
 
 
-
--------------------------------
-
-CREATE OR REPLACE FUNCTION chat_room__message_count (integer) RETURNS integer AS'
+create function chat_room__message_count (integer)
+returns integer as '
 declare
    p_room_id        alias for $1;
    v_count integer;
@@ -567,108 +412,54 @@
    where room_id = p_room_id;
    return v_count;
 
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
+end;' language 'plpgsql';
 
 ---------------------------------
 
-CREATE OR REPLACE FUNCTION chat_room__delete_all_msgs (integer) RETURNS integer AS'
+
+
+create function chat_room__delete_all_msgs (integer)
+returns integer as '
 declare
    p_room_id        alias for $1;
 begin
    delete from chat_msgs where room_id = p_room_id;
    return 0;
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
+end;' language 'plpgsql';
 
 ---------------------------------
 
 
-CREATE OR REPLACE FUNCTION chat_room__del (integer) RETURNS integer AS'
+
+create function chat_room__del (integer)
+returns integer as '
 declare
    p_room_id        alias for $1;
 begin
 
     --TO DO: delete transcriptions?
 
-    -- Erase all the users relate to this chat room.
-    delete from chat_private_room_users where room_id = p_room_id;
-    
-    -- Erase all the files sent relate to this chat room.
-    delete from chat_rooms_files_sent where room_id = p_room_id;
 
-    -- Erase all the messages relate to this chat room.
+    -- First erase all the messages relate to this chat room.
     delete from chat_msgs where room_id = p_room_id;
 
-    -- Erase all the registered users relate to this chat room.
-    delete from chat_registered_users where room_id = p_room_id;
-    
-    -- Erase all the transcripts relate to this chat room.
-    delete from chat_transcripts where room_id = p_room_id;
-    
-    -- Erase all the keywords to this chat room.
-    delete from chat_keywords where room_id = p_room_id;
-    
      -- Delete all privileges associate with this room
      delete from acs_permissions where object_id = p_room_id;
 
      -- Now delete the chat room itself.
      delete from chat_rooms where room_id = p_room_id;
-     
-     delete from rss_gen_subscrs where summary_context_id = p_room_id;
-     
-     delete from acs_objects where context_id = p_room_id;
 
      PERFORM acs_object__delete(p_room_id);
 
    return 0;
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
+end;' language 'plpgsql';
 
----------------------------------
 
-CREATE OR REPLACE FUNCTION chat_room__delete_registered_users (integer, integer) RETURNS integer AS'
-/* Nuevo cuerpo de Function */
-declare
-   p_room_id        alias for $1;
-   p_user_id        alias for $2;
-begin
-    delete from chat_registered_users where room_id = p_room_id
-    and user_id = p_user_id;
-    return 0;
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
-
-
-
 ---------------------------------
 
-CREATE OR REPLACE FUNCTION chat_room_registered__user (varchar, integer, integer, boolean, boolean, integer, varchar, varchar) RETURNS integer AS'
-/* Nuevo cuerpo de Function */
-declare
-   p_alias          alias for $1;
-   p_user_id        alias for $2;
-   p_room_id        alias for $3;
-   p_RSS_service    alias for $4;
-   p_mail_service   alias for $5;
-   p_context_id     alias for $6;
-   p_creation_ip    alias for $7;
-   p_frequency_mail alias for $8;
-   v_registered_id          chat_rooms.room_id%TYPE;
-begin
-   v_registered_id := acs_object__new(null,''chat_room'',now(),p_user_id,p_creation_ip,p_context_id   );
-   insert into chat_registered_users
-       (alias, room_id, user_id, RSS_service, mail_service, registered_id, frequency_mail, registered_date)
-   values
-       (p_alias, p_room_id, p_user_id, p_RSS_service, p_mail_service, v_registered_id, p_frequency_mail, now());
-return v_registered_id;
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
 
----------------------------------
-
-
-CREATE OR REPLACE FUNCTION chat_transcript__new (varchar, varchar, varchar, integer, integer, timestamptz, integer, varchar, varchar) RETURNS integer AS'
+create function chat_transcript__new (varchar, varchar, varchar, integer, integer, timestamptz, integer,  varchar, varchar)
+returns integer as '
 declare
 
    p_pretty_name      alias for $1;
@@ -691,19 +482,17 @@
      p_context_id
    );
 
-   insert into chat_transcripts (transcript_id,   pretty_name,   contents,   description,   room_id, date)
-                        values  (v_transcript_id, p_pretty_name, p_contents, p_description, p_room_id, now());
+   insert into chat_transcripts (transcript_id,   pretty_name,   contents,   description,   room_id)
+                        values  (v_transcript_id, p_pretty_name, p_contents, p_description, p_room_id);
 
    return v_transcript_id;
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
+end;' language 'plpgsql';
 
 
 
 -----------------------------
-
-
-CREATE OR REPLACE FUNCTION chat_transcript__del (integer) RETURNS integer AS'
+create function chat_transcript__del (integer)
+returns integer as '
 declare
    p_transcript_id      alias for $1;
 begin
@@ -716,61 +505,41 @@
 
         PERFORM acs_object__delete(p_transcript_id);
         return 0;
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
-
-
+end;' language 'plpgsql';
 ----------------------------
 
-CREATE OR REPLACE FUNCTION chat_room__edit (varchar, varchar, varchar, varchar, integer, timestamp, boolean, boolean, boolean, boolean, boolean, integer, integer, varchar, varchar) RETURNS integer AS'
-/* Nuevo cuerpo de Function */
+
+create or replace function chat_room__edit (integer, varchar, varchar, boolean, boolean, boolean, boolean, boolean)
+returns integer as '
 declare
-   p_pretty_name    alias for $1;
-   p_alias          alias for $2;
+   p_room_id        alias for $1;
+   p_pretty_name    alias for $2;
    p_description    alias for $3;
-   p_key_words      alias for $4;
-   p_maxP           alias for $5;
-   p_end_date       alias for $6;
-   p_Rss_service    alias for $7;
-   p_Mail_service   alias for $8;
-   p_moderated_p    alias for $9;
-   p_active_p       alias for $10;
-   p_archive_p      alias for $11;
-   p_user_id        alias for $12;
-   p_room_id        alias for $13;
-   p_frequency1     alias for $14;
-   p_frequency_mail alias for $15;
+   p_moderated_p    alias for $4;
+   p_active_p       alias for $5;
+   p_archive_p      alias for $6;
+   p_auto_flush_p      alias for $7;
+   p_auto_transcript_p      alias for $8;
 begin
 
-     update chat_rooms
-            set pretty_name = p_pretty_name,
+        update chat_rooms set
+            pretty_name = p_pretty_name,
             description = p_description,
-            maximal_participants = p_maxP,
-            end_date = p_end_date,
             moderated_p = p_moderated_p,
             active_p    = p_active_p,
             archive_p   = p_archive_p,
-            frequency1 = p_frequency1
-            where
-                 room_id = p_room_id;
-         
-     update chat_registered_users
-            set alias = p_alias,
-            RSS_service = p_Rss_service,
-            mail_service = p_Mail_service,
-	    frequency_mail = p_frequency_mail
-            where
-                 room_id = p_room_id
-                 and user_id = p_user_id;
-            
-            return 0;
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
+            auto_flush_p   = p_auto_flush_p,
+            auto_transcript_p   = p_auto_transcript_p
+        where
+            room_id = p_room_id;
+        return 0;
+end;' language 'plpgsql';
 
 
 ---------------------------
 
-CREATE OR REPLACE FUNCTION chat_room__message_post (integer, varchar, integer, varchar) RETURNS integer AS'
+create function chat_room__message_post (integer, varchar, integer, varchar)
+returns integer as '
 declare
    p_room_id        alias for $1;
    p_msg            alias for $2;
@@ -814,13 +583,13 @@
 
 
 return 0;
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
+end;' language 'plpgsql';
 
 ---------------------------
 
 
-CREATE OR REPLACE FUNCTION chat_transcript__edit (integer, varchar, varchar, varchar) RETURNS integer AS'
+create function chat_transcript__edit (integer, varchar, varchar, varchar )
+returns integer as '
 declare
     p_transcript_id   alias for $1;
     p_pretty_name     alias for $2;
@@ -836,379 +605,84 @@
 
 
 return 0;
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
+end;' language 'plpgsql';
 
 
 
 
------------------------------
 
 
-CREATE OR REPLACE FUNCTION chat_room__insert_keywords (varchar, integer) RETURNS integer AS'
-/* Nuevo cuerpo de Function */
-declare
-p_word      alias for $1;
-p_room_id           alias for $2;
-begin
-insert into chat_keywords
-               (keyword,room_id)
-       values
-             (p_word, p_room_id);
-return 0;
 
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
 
-----------------------------
 
-CREATE OR REPLACE FUNCTION chat_room__name (integer) RETURNS varchar AS'
-declare
-   p_room_id         alias for $1;
-   v_pretty_name     chat_rooms.pretty_name%TYPE;
-begin
-     select into v_pretty_name pretty_name from chat_rooms where room_id =  p_room_id;
-     return v_pretty_name;
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
 
 
-----------------------------
 
-CREATE OR REPLACE FUNCTION chat_room__private_new (varchar, varchar, varchar, varchar, integer, timestamp, boolean, boolean, boolean, boolean, boolean, integer, varchar, integer, varchar, varchar, boolean) RETURNS integer AS'
-/* Nuevo cuerpo de Function */
-declare
-   p_pretty_name    alias for $1;
-   p_alias          alias for $2;
-   p_description    alias for $3;
-   p_key_words      alias for $4;
-   p_maxP           alias for $5;
-   p_end_date       alias for $6;
-   p_Rss_service    alias for $7;
-   p_Mail_service   alias for $8;
-   p_moderated_p    alias for $9;
-   p_active_p       alias for $10;
-   p_archive_p      alias for $11;
-   p_context_id     alias for $12;
-   p_comm_name        alias for $13;
-   p_creation_user  alias for $14;
-   p_creation_ip    alias for $15;
-   p_object_type    alias for $16;
-   p_private        alias for $17;
-   v_room_id        chat_rooms.room_id%TYPE;
-   v_registered_id  chat_rooms.room_id%TYPE;
-   v_comm_name      varchar;
-begin
 
-     v_room_id := acs_object__new(null,''chat_room'',now(),p_creation_user,p_creation_ip,p_context_id   );
-     v_registered_id := acs_object__new(null,''chat_room'',now(),p_creation_user,p_creation_ip,p_context_id   );
 
-     insert into chat_rooms
-               (room_id, pretty_name, description, moderated_p, active_p, archive_p, maximal_participants, end_date, creator, context_id,comm_name,auto_transcript_p,file_sent,private)
-       values
-             (v_room_id, p_pretty_name, p_description, p_moderated_p, p_active_p, p_archive_p, p_maxP, p_end_date,p_creation_user, p_context_id,v_comm_name,''true'',''false'',p_private);
 
 
-   insert into chat_registered_users
-       (alias, room_id, user_id, RSS_service, mail_service, registered_id)
-   values
-       (p_alias, v_room_id, p_creation_user, p_Rss_service, p_Mail_service, v_registered_id);
 
-return v_room_id;
 
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
 
-------------------------------------
 
-CREATE OR REPLACE FUNCTION chat_room__send_files (integer, varchar, varchar, varchar, date, integer, integer, varchar, integer) RETURNS integer AS'
-/* Nuevo cuerpo de Function */
 
-declare
-   p_chat_id    alias for $1;
-   p_file    alias for $2;
-   p_title          alias for $3;
-   p_description    alias for $4;
-   p_date      alias for $5;
-   p_context_id     alias for $6;
-   p_creation_user  alias for $7;
-   p_creation_ip    alias for $8;
-   p_send_file_id   alias for $9;
 
-begin
 
-   insert into chat_rooms_files_sent
-       (room_id, file, title, description, date, send_file_id, message,creation_user)
-   values
-       (p_chat_id, p_file, p_title, p_description, p_date, p_send_file_id,''false'',p_creation_user);
 
-return p_send_file_id;
 
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
 
------------------------------------------
 
 
-CREATE OR REPLACE FUNCTION chat_room__send_files_message (integer) RETURNS integer AS'
-/* Nuevo cuerpo de Function */
-declare
-p_chat_id       alias for $1;
-begin
-update chat_rooms_files_sent set
-            message = ''true''
-            where room_id = p_chat_id;
-return 0;
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
 
------------------------------------------
 
 
-CREATE OR REPLACE FUNCTION chat_rss__store_db (varchar, varchar, date, varchar,
-varchar, varchar, timestamp) RETURNS integer AS'
-/* Nuevo cuerpo de Function */
-declare
-p_room_name           alias for $1;
-p_room_description    alias for $2;
-p_end_date            alias for $3;
-p_r_creator           alias for $4;
-p_comm_name           alias for $5;
-p_registered_users    alias for $6;
-p_entry_timestamp     alias for $7;
 
-v_rss_id                  chat_rss.rss_id%TYPE;
 
 
-begin
-v_rss_id := acs_object__new(null,''chat_room'',now(),null,null,null );
 
-insert into chat_rss
-               ( room_name, creator, end_date, description, comm_name,
-user_registered, rss_id,date, entry_timestamp)
-       values
-             (p_room_name, p_r_creator,p_end_date,
-p_room_description,p_comm_name,p_registered_users,v_rss_id,now(),p_entry_timestamp);
-return v_rss_id;
 
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
 
-------------------------------------------
 
 
-CREATE OR REPLACE FUNCTION chat_update_rss (varchar, varchar, timestamp, varchar, varchar, varchar, varchar) RETURNS integer AS'
-/* Nuevo cuerpo de Function */
-declare
-p_room_name     alias for $1;
-p_room_creator  alias for $2;
-p_end_date      alias for $3;
-p_room_description    alias for $4;
-p_comm_name           alias for $5;
-p_msg_creator         alias for $6;
-p_registered_users    alias for $7;
 
-begin
 
-     update chat_rss set
-            room_name = p_room_name,
-            creator = p_room_creator,
-            end_date = p_end_date,
-            description = p_room_description,
-            comm_name = p_comm_name,
--- xxx jopez no existe este campo ?            msg_creator = p_msg_creator,
-            user_registered = p_registered_users
-            where room_id = p_room_id;
-            
-    return 0;
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
 
 
--------------------------------------
 
-CREATE OR REPLACE FUNCTION chat_upload (varchar, varchar, timestamp, varchar, varchar, varchar, varchar) RETURNS integer AS'
-/* Nuevo cuerpo de Function */
-declare
-p_room_name     alias for $1;
-p_room_creator  alias for $2;
-p_end_date      alias for $3;
-p_room_description    alias for $4;
-p_comm_name           alias for $5;
-p_msg_creator         alias for $6;
-p_registered_users    alias for $7;
 
-begin
 
-     update chat_rss set
-            room_name = p_room_name,
-            creator = p_room_creator,
-            end_date = p_end_date,
-            description = p_room_description,
-            comm_name    = p_comm_name,
--- xxx jopez no existe este campo ?           msg_creator   = p_msg_creator
-            user_registered = p_registered_users
-            where rss_id = p_rss_id;
 
-    return 0;
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
 
------------------------------------
 
-CREATE OR REPLACE FUNCTION chat_room__edit_admin (varchar, boolean, boolean, integer, integer, varchar, integer, varchar) RETURNS integer AS'
-/* Nuevo cuerpo de Function */
-declare
-   
-   p_alias          alias for $1;
-   p_Rss_service    alias for $2;
-   p_Mail_service   alias for $3;
-   p_context_id     alias for $4;
-   p_creation_user  alias for $5;
-   p_creation_ip    alias for $6;
-   p_room_id        alias for $7;
-   p_frequency_mail alias for $8;
-   v_registered_id  chat_rooms.room_id%TYPE;
-   
-   begin
-   
-   v_registered_id := acs_object__new(null,''chat_room'',now(),p_creation_user,p_creation_ip,p_context_id   );
-   if exists (select ru.user_id from chat_registered_users as ru where ru.room_id = p_room_id and ru.user_id = p_creation_user) then
 
-   else
-   insert into chat_registered_users
-       (alias, room_id, user_id, RSS_service, mail_service, registered_id, frequency_mail)
-   values
-       (p_alias, p_room_id, p_creation_user, p_Rss_service, p_Mail_service, v_registered_id, p_frequency_mail);
-   end if;
-return 0;
 
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
 
--------------------------------------
 
 
-CREATE OR REPLACE FUNCTION chat_room__store_transcripts_keywords (varchar, integer) RETURNS integer AS'
-/* New function body */
-declare
-p_keyword         alias for $1;
-p_transcript_id  alias for $2;
-begin
-insert into chat_room_transcript_keywords
-               ( transcript_id,keyword)
-       values
-             (p_transcript_id,p_keyword);
-return 0;
 
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
 
-------------------------------------------
 
-CREATE OR REPLACE FUNCTION chat_rss__store_keywords_rss (integer, varchar) RETURNS integer AS'
-/* New function body */
-declare
-p_rss_id          alias for $1;
-p_keywords    alias for $2;
 
-begin
-insert into chat_key_rss
-               (rss_id,key)
-       values
-             (p_rss_id, p_keywords);
-return 0;
 
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
 
 
----------------------------------------------
 
 
-CREATE OR REPLACE FUNCTION chat_rss__store_partitipants_rss (integer, varchar) RETURNS integer AS'
-/* New function body */
-declare
-p_rss_id          alias for $1;
-p_partitipant    alias for $2;
-begin
-insert into chat_partitipants_rss
-               ( partitipant,rss_id)
-       values
-             (p_partitipant,p_rss_id);
-return 0;
 
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
 
-----------------------------------------------
 
-CREATE OR REPLACE FUNCTION chat_rss__store_sent_files_rss (integer, integer) RETURNS integer AS'
-/* New function body */
-declare
-p_rss_id          alias for $1;
-p_file_id   alias for $2;
-begin
-insert into chat_files_rss
-               ( rss_id,file_id)
-       values
-             (p_rss_id, p_file_id);
-return 0;
 
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
 
----------------------------------------------
 
-CREATE OR REPLACE FUNCTION chat_rss__store_transcripts_rss (integer, integer) RETURNS integer AS'
-/* New function body */
-declare
-p_rss_id          alias for $1;
-p_t_id   alias for $2;
 
-begin
-insert into chat_transcription_rss
-               ( rss_id,transcription_id)
-       values
-             (p_rss_id, p_t_id);
-return 0;
 
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
 
-----------------------------------------------
 
-CREATE OR REPLACE FUNCTION chat_transcript__store_partitipants_transcript (integer, varchar) RETURNS integer AS'
-/* New function body */
-declare
-p_transcript_id          alias for $1;
-p_partitipant    alias for $2;
-begin
-insert into chat_partitipants_transcript
-               ( transcript_id,partitipant)
-       values
-             (p_transcript_id,p_partitipant);
-return 0;
 
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
 
-------------------------------------------------
 
-CREATE OR REPLACE FUNCTION chat_transcript__store_sent_files_tanscript (integer, integer) RETURNS integer AS'
-/* New function body */
-declare
-p_transcript_id          alias for $1;
-p_f_id   alias for $2;
-begin
-insert into chat_file_transcript
-               ( transcript_id,file_id)
-       values
-             (p_transcript_id, p_f_id);
-return 0;
 
-end;
-'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
 
 
 
@@ -1229,79 +703,3 @@
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Index: openacs-4/packages/chat/sql/postgresql/chat-drop.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/sql/postgresql/chat-drop.sql,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/chat/sql/postgresql/chat-drop.sql	7 Jun 2007 09:14:24 -0000	1.3
+++ openacs-4/packages/chat/sql/postgresql/chat-drop.sql	19 Nov 2007 01:14:15 -0000	1.4
@@ -46,59 +46,25 @@
 drop   function chat_transcript__del (integer);
 drop   function chat_transcript__edit (integer, varchar, varchar, varchar );
 
-drop   function chat_room__new (varchar, varchar, varchar, varchar, integer, timestamp, boolean, boolean, boolean, boolean, boolean, integer, integer, integer, varchar, varchar, varchar);
+
+drop   function chat_room__new (integer, varchar, varchar, boolean, boolean, boolean, integer, timestamptz, integer, varchar, varchar);
 drop   function chat_room__name (integer);
 
 drop   function chat_room__message_post (integer, varchar, integer, varchar);
 
-drop   function chat_room__delete_registered_users (integer, integer);
-drop   funciton chat_room_registered__user (varchar, integer, integer, boolean, boolean, integer, varchar);
 
-drop   function chat_room__edit (varchar, varchar, varchar, varchar, integer, timestamp, boolean, boolean, boolean, boolean, boolean, integer, integer, varchar);
+
+drop   function chat_room__edit (integer, varchar, varchar, boolean, boolean, boolean);
 drop   function chat_room__message_count (integer);
 drop   function chat_room__delete_all_msgs (integer);
 
-drop function chat_room__insert_keywords (varchar, integer);
-
-drop function chat_room__send_files (integer, varchar, varchar, varchar, date, integer, integer, varchar);
-drop function chat_room__send_files_message (integer)
-
-drop function chat_rss__store_db (varchar, varchar, date, varchar, varchar, varchar, timestamp);
-drop function chat_update_rss ();
-drop function chat_upload ();
-
-drop function chat_room__private_new (varchar, varchar, varchar, varchar, integer, timestamp, boolean, boolean, boolean, boolean, boolean, integer, integer, integer, varchar, varchar, boolean);
 drop   function chat_room__del (integer);
 
-drop function chat_room__edit_admin (varchar, boolean, boolean, integer, integer, varchar, integer);
-drop function chat_room__store_transcripts_keywords (varchar, integer);
-drop function chat_rss__store_keywords_rss (integer, varchar);
-drop function chat_rss__store_partitipants_rss (integer, varchar);
-drop function chat_rss__store_sent_files_rss (integer, integer);
-drop function chat_rss__store_transcripts_rss (integer, integer);
-drop function chat_transcript__store_partitipants_transcript (integer, varchar);
-drop function chat_transcript__store_sent_files_tanscript (integer, integer);
-
-
 drop table chat_msgs;
-drop table chat_registered_users;
-drop table chat_file_transcript;
-drop table chat_files_rss;
-drop table chat_key_rss;
-drop table chat_partitipants_rss;
-drop table chat_partitipants_transcript;
-drop table chat_room_transcript_keywords;
-drop table chat_transcription_rss;
 drop table chat_transcripts;
-drop table chat_keywords;
-drop table chat_private_room_users;
-drop table chat_room_user_id;
-drop table chat_rooms_files_sent;
-drop table chat_rss;
 drop table chat_rooms;
 
 
-
 --
 -- Drop all chat privileges
 --
Fisheye: Tag 1.3 refers to a dead (removed) revision in file `openacs-4/packages/chat/sql/postgresql/upgrade/upgrade-5.0d6-5.1d.sql'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/tcl/chat-ajax-procs-postgresql.xql'.
Fisheye: No comparison available.  Pass `N' to diff?
Index: openacs-4/packages/chat/tcl/chat-ajax-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/tcl/chat-ajax-procs.tcl,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/chat/tcl/chat-ajax-procs.tcl	22 Jun 2007 09:05:04 -0000	1.7
+++ openacs-4/packages/chat/tcl/chat-ajax-procs.tcl	19 Nov 2007 01:14:16 -0000	1.8
@@ -9,75 +9,29 @@
 
 namespace eval ::chat {
   ::xo::ChatClass Chat -superclass ::xo::Chat
-  
-  
-  Chat instproc login {} {        
-    my instvar array user_id now chat_id
-    
-    
-    db_1row room_info {
-		select maximal_participants as maximal
-		from chat_rooms as cp
-		where cp.room_id = :chat_id
-	}
-	db_1row room_info {
-		select count(cr.room_id) as count
-		from chat_room_user_id as cr
-		where cr.room_id = :chat_id
-	}	
-	if { $count < $maximal} {		
-        	db_1row room_info {
-			select count(cr.room_id) as count2
-			from chat_room_user_id as cr
-			where cr.user_id = :user_id
-			and cr.room_id = :chat_id		
-		}
-        	if { $count2 == 0 } {
-        		db_dml insert_users {insert into chat_room_user_id (room_id,user_id) values (:chat_id,:user_id);}
-        	}
-        } 
-        if { $count == $maximal} {
-              
-		db_1row room_info {
-			select count(chat_room_user_id.user_id) as count
-			from chat_room_user_id
-			where chat_room_user_id.user_id = :user_id
-			and chat_room_user_id.room_id = :chat_id
-		}	
-		if { $count == 0 } {
-			if { [permission::permission_p -party_id $user_id -object_id [dotlrn::get_package_id] -privilege admin] } {
-				
-			} else {
-				
-				ns_return 200 text/html "<HTML><BODY>\
-				<div id='messages'>[_ chat.You_dont_have_permission_room]</div>\
-				</BODY></HTML>"
-  				ad_script_abort
-  			}
-  		}
-  	}
-    
-    if {![nsv_exists $array-last-activity $user_id]} {        
-        my add_msg -get_new false [_ xotcl-core.has_entered_the_room]
-        
-	
 
-    }    
-    my encoder noencode      
-    my get_all 
+  Chat instproc render {} {
+    my orderby time
+    set result ""
+    foreach child [my children] {
+      set msg       [$child msg]
+      set user_id   [$child user_id]
+      set color     [$child color]
+      set timelong  [clock format [$child time]]
+      set timeshort [clock format [$child time] -format {[%H:%M:%S]}]
+      set userlink  [my user_link -user_id $user_id -color $color]
+      append result "<p class='line'><span class='timestamp'>$timeshort</span>" \
+	  "<span class='user'>$userlink:</span>" \
+	  "<span class='message'>[my encode $msg]</span></p>\n"
+    }
+    return $result
   }
-  
-  
-   
-  
-  Chat proc login {-chat_id -package_id -folder_id} {
+
+  Chat proc login {-chat_id -package_id} {
     auth::require_login
     if {![info exists package_id]} {set package_id [ad_conn package_id] }
     if {![info exists chat_id]}    {set chat_id $package_id }
 
-    
-    
-
     set context id=$chat_id&s=[ad_conn session_id].[clock seconds]
     set jspath packages/chat/www/ajax/chat.js
     if { ![file exists [acs_root_dir]/$jspath] } {
@@ -86,638 +40,28 @@
     set file [open [acs_root_dir]/$jspath]; set js [read $file]; close $file
     set path      [site_node::get_url_from_object_id -object_id $package_id]
     set login_url ${path}ajax/chat?m=login&$context
-    set send_url  ${path}ajax/chat?m=add_msg&$context&msg=    
-    #$send_file
-   
-    set user_id [ad_conn user_id]
-    set return_url [ad_return_url]
-    db_1row room_info {
-        select room.comm_name
-        from chat_rooms as room
-        where room.room_id = :chat_id        
-      }  		
-    	set folder_id "$comm_name's Public Files" 
-    	db_1row room_info {
-        	select count(acs.object_id) as count
-        	from acs_objects as acs
-        	where acs.title = :folder_id        
-      	}  
-    	if { $count > 0 } {   
-    		db_1row room_info {
-        		select acs.object_id as id
-        		from acs_objects as acs
-        		where acs.title = :folder_id        
-      		}
-      		set folder_id $id  
-      	} else {
-      		acs_user::get -user_id $user_id -array user      		
-      		set name [expr {$user(screen_name) ne "" ? $user(screen_name) : $user(name)}]      		
-      		set folder_id "$name's Shared Files"      		
-      		  
-      		#$folder_id
-      		db_1row room_info {
-        		select fs.folder_id as id
-        		from fs_folders as fs
-        		where fs.name = :folder_id
-      		}  
-      		set folder_id $id  
-      	}
-   	
-    
-    set users_url ${path}ajax/chat?m=get_users&$context  
-    
-    set files_url ${path}ajax/chat?m=get_files&$context      
-    
-    
+    set send_url  ${path}ajax/chat?m=add_msg&$context&msg=
+    set users_url ${path}ajax/chat?m=get_users&$context
     return "\
       <script type='text/javascript' language='javascript'>
       $js
-     
       // register the data sources (for sending messages, receiving updates)
       var pushMessage = registerDataConnection(pushReceiver, '$path/ajax/chat?m=get_new&$context', false);
       var pullUpdates = registerDataConnection(updateReceiver, '$path/ajax/chat?m=get_updates&$context', true);
       // register an update function to refresh the data sources every 5 seconds
       var updateInterval = setInterval(updateDataConnections,5000);
-      
       </script>
-     
       <form id='ichat_form' name='ichat_form' action='#' onsubmit='pushMessage.chatSendMsg(\"$send_url\"); return false;'>
       <iframe name='ichat' id='ichat' frameborder='0' src='$login_url'
-          style='width:65%; border:1px solid black; margin-right:12px;' height='257'></iframe>
+          style='width:70%; border:1px solid black; margin-right:15px;' height='257'></iframe>
       <iframe name='ichat-users' id='ichat-users' frameborder='0' src='$users_url'
-          style='width:16%; border:1px solid black; margin-right:12px;' height='257'></iframe>
-       <iframe name='ichat-files' id='ichat-files' frameborder='0' src='$files_url'
-          style='width:15%; border:1px solid black;' height='257'></iframe>                   
-      <table>
-      <tr>
-      <td>
-      <div style='margin-top:10px; margin-right:5px;'>
-      #chat.message# <input tabindex='1' type='text' size='58' name='msg' id='chatMsg'> <input type='submit' value='#chat.Send_Refresh#'>        </form>
-      </div></td><td>      
-       <div style='margin-top:10px; margin-right:10px;'>
-       <form name='upload'  action='upload' onsubmit='upload'>
-       
-      		 		   		      		      		
-      		<input type='submit' value='[_ chat.send_file]'><input type='hidden' name='folder_id' value='$folder_id'>
-      		<input type='hidden' name='chat_id' value='$chat_id'>
-      		<input type='hidden' name='return_url' value='$return_url'></form></div></td><td>      
-      </td></tr></table>      		
-      		
-                        
-	
-"
-  }  
-  
-  Chat instproc render2 {-chat_id} {
-    my orderby time
-    set result ""
-    set msg_true "f"
-      
-    my instvar chat_id
-    
-    
-    
-    
-    db_1row room_info {
-        select room.maximal_participants as maxp
-        from chat_rooms as room
-        where room.room_id = :chat_id        
-      }   
-     
-	
-    foreach child [my children] {
-    
-      set msg       [$child msg]      
-      set msg_all ""
-     
-      for {set i 0} {$i < [llength $msg]} {incr i 1} {
-      	set word [lindex $msg $i]
-      	
-     
-      	    	set j 0
-      		if { [string range $word $j $j] eq "h" } {      	      		
-      			set aux [expr $j+1]      		
-      			if { [string range $word $aux [expr $aux+5] ] eq "ttp://" } { 
-      		  		set url [lindex $msg $i]  		  		
-      		  		lappend msg_all $i
-      		  		set msg_true "t"
-      		  		
-      			}      		      		
-      		} else {
-      			if { [string range $word $j $j] eq "w" } { 
-      			set aux [expr $j+1]      		
-      				if { [string range $word $aux [expr $aux+1] ] eq "ww" } { 
-      		  			set url [lindex $msg $i]  		  		
-      		  			lappend msg_all $i
-      		  			set msg_true "t"
-      		  		
-      				}
-      			}
-      		}
-      	
-      }
-            
-      set user_id   [$child user_id]
-      set color     [$child color]           
-     set timelong  [clock format [$child time]]
-      set timeshort [clock format [$child time] -format {[%H:%M:%S]}]
-      set timeshort2 [clock format [$child time] -format {[%D]}]
-    
-      
-      
-      
-      
-      
-      db_1row room_info {
-        select count(1) as info
-        from chat_registered_users
-        where room_id = :chat_id
-        and user_id = :user_id
-      }
-        
-    
-    if { $info > 0 } {
-    	set timeshort [clock format [$child time] -format {[%H:%M:%S]}]
-	db_1row room_info {	
-        	select alias as alias
-        	from chat_registered_users
-        	where room_id = :chat_id
-        	and user_id = :user_id
-	}	
-	set userlink  [my user_link2 -user_id $user_id -color $color -alias $alias]
-	
-	if {$msg_true eq  "t"} {
-	
-	append result "<p class='line'><span class='timestamp'>$timeshort</span>" \
-	  "<span class='user'>$userlink:</span>"
-	
-	append result "<span class='message'>"
-	set k 0
-	for {set l 0} {$l < [llength $msg]} {incr l 1} {
-		
-		
-			if { $l eq [lindex $msg_all $k] } {
-			
-				if { [string range [lindex $msg $l] 0 0] eq "w" } {
-					set msg_url  [my user_link4 -url [lindex $msg $l] -color $color]
-				} else {
-					set msg_url  [my user_link3 -url [lindex $msg $l] -color $color]
-				}
-				
-				append result $msg_url
-				append result " "
-				if { $k < [llength $msg_all]} {
-					set k [expr $k+1]
-				}
-			} else {
-				append result [lindex $msg $l]
-				append result " "
-			}
-		
-	  	
-	}
-	append result "</span></p>\n"
-	} else {		
-        append result "<p class='line'><span class='timestamp'>$timeshort</span>" \
-	  "<span class='user'>$userlink:</span>" \
-	  "<span class='message'>[my encode $msg]</span></p>\n"
-	}
-	  
-    }
-   
-    if {$info eq 0} {
-    	set timeshort [clock format [$child time] -format {[%H:%M:%S]}]
-      
-    	set userlink  [my user_link -user_id $user_id -color $color]
-    	
-    	if {$msg_true eq  "t"} {
-	
-	append result "<p class='line'><span class='timestamp'>$timeshort</span>" \
-	  "<span class='user'>$userlink:</span>"
-	
-	append result "<span class='message'>"
-	set k 0
-	for {set l 0} {$l < [llength $msg]} {incr l 1} {
-		
-		
-			if { $l eq [lindex $msg_all $k] } {
-			
-				if { [string range [lindex $msg $l] 0 0] eq "w" } {
-					set msg_url  [my user_link4 -url [lindex $msg $l] -color $color]
-				} else {
-					set msg_url  [my user_link3 -url [lindex $msg $l] -color $color]
-				}				
-				append result $msg_url
-				append result " "
-				if { $k < [llength $msg_all]} {
-					set k [expr $k+1]
-				}
-			} else {
-				append result [lindex $msg $l]
-				append result " "
-			}
-		
-	  	
-	}
-	append result "</span></p>\n"
-	} else {
-
-        append result "<p class='line'><span class='timestamp'>$timeshort</span>" \
-	  "<span class='user'>$userlink:</span>" \
-	  "<span class='message'>[my encode $msg]</span></p>\n"
-	}
-    }
+          style='width:25%; border:1px solid black;' height='257'></iframe>
+      <div style='margin-top:10px;'>
+      #chat.message# <input tabindex='1' type='text' size='80' name='msg' id='chatMsg'>
+      <input type='submit' value='#chat.Send_Refresh#'>
+      </div>
+      </form> 
+    "
   }
-      
-      #test send files
-    
-    db_1row room_info1 {
-        select count(files.message) as message
-        from chat_rooms_files_sent as files
-        where files.room_id = :chat_id
-        and files.message = false
-      }
-    
-    if { $message > 0 } {
-      db_1row room_info1 {
-      select files.title as title,files.file as fil
-        from chat_rooms_files_sent as files
-        where files.room_id = :chat_id
-        and files.message = false
-      }
-      
-      
-    
-      
-      
-      
-      db_1row room_info {
-        select room.comm_name
-        from chat_rooms as room
-        where room.room_id = :chat_id        
-      }  		
-    	set folder_id "$comm_name's Public Files" 
-    	   
-    	db_1row room_info {
-        select count(acs.object_id) as count
-        from acs_objects as acs
-        where acs.title = :folder_id        
-      	}  
-      	if { $count > 0 } {
-      		db_1row room_info {
-        		select acs.object_id as id
-        		from acs_objects as acs
-        		where acs.title = :folder_id        
-      		}
-      		set url [ad_conn url]  
-      		set folder_id $id
-      		set inicio 0
-      		set final [expr [string length $url]-16]
-      		set comm_name [string range $url $inicio $final]  
-      		if { [string length $comm_name] > 0 } {      			 
-      			set url "$comm_name/file-storage/index?folder_id=$folder_id"
-      		}
-      	} else {
-      		
-      		acs_user::get -user_id $user_id -array user      		
-      		set name [expr {$user(screen_name) ne "" ? $user(screen_name) : $user(name)}]      		
-      		set folder_id "$name's Shared Files" 
-      		#$folder_id
-      		
-      		
-      		db_1row room_info {
-        		select fs.folder_id as id
-        		from fs_folders as fs
-        		where fs.name = :folder_id        
-      		}  
-      		set folder_id $id
-      		set url "/dotlrn/file-storage/index?folder_id=$folder_id"  
-      	}
-   	   	
-      
-      
-      set user_file -1
-      
-      
-      set userlink  [my user_link -user_id "-1" -color ""]
-      set msg_file  [my user_link4 -url "I has uploaded the '$title' file ($fil) to the " -color ""]    
-      append result2 "<span class='message'>"
-      
-      append msg_file [my user_link5 -url "$url" -msg "public files of the community" -color ""]      
-         
-      append result2 $msg_file
-      append result2 " "
-      append result2 "</span>\n"
-      set delete_message [send_file_message $chat_id]
-      set uid -1
-      set m [my add_msg -get_new true -uid $user_id "$result2"]
-      
-      set userlink  [my user_link -user_id $user_file -color ""]        
-      append result "<p class='line'><span class='timestamp'>$timeshort</span><span class='user'>$userlink:</span>"
-      append result "<span class='message'>"
-      set msg_file  [my user_link4 -url "The file '$title' has been sent to the " -color ""]
-      append msg_file [my user_link5 -url "$url" -msg "public files of the community." -color ""]      
-     append result $msg_file
-      append result " "
-      append result "</span></p>\n"
-      
-     
-    }
-    
-    return $result
-  }
-  
-  
-  Chat instproc get_files {} {
-    my instvar chat_id
-    set output ""
-    set count 0    
-       	ns_log Notice "en el get files...     $output"
-   
-   
-    db_foreach file "select distinct fil.file as file
-        from chat_rooms_files_sent as fil
-        where fil.room_id = :chat_id " {
-          
-   
-    set url [ad_conn url]
-    
-    set inicio 0
-    set final [expr [string length $url]-16]
-    set comm_name [string range $url $inicio $final]
-    
-    if { [string length $comm_name] > 0 } {    	
-    	append output "<tr><td class='files'><a href='$comm_name/file-storage/view/public\/$file' target='_blank'>$file</a></td></tr>"
-    } else {   
-    	set user_id [ad_conn user_id]
-    	acs_user::get -user_id $user_id -array user      		
-      		set name [expr {$user(screen_name) ne "" ? $user(screen_name) : $user(name)}]      		
-      		set folder_id "$name's Shared Files"
-      		
-      		db_1row room_info {
-        		select fs.folder_id as id
-        		from fs_folders as fs
-        		where fs.name = :folder_id
-      		}  
-      		set folder_id $id
-      		append url_file "dotlrn_fs_" $user_id
-      		append url_file "_root_folder"
-      		append url_file2 "dotlrn_fs_" $user_id
-      		append url_file2 "_shared_folder"
-      		
-      		append output "<tr><td class='files'><a href='/dotlrn/file-storage/view/$url_file/$url_file2/\/$file' target='_blank'>$file</a></td></tr>"     	
-        
-    }    
-    } if_no_rows {
-       append output "<tr><td class='files'>[_ chat.no_files]</td></tr>"
-    }	 
-        
-    return $output
-  }
-  
-  
-  
-  
-  Chat instproc sweeper {} {
-    my instvar array now chat_id
-    my log "-- starting"
-       
-   
-    foreach {user timestamp} [nsv_array get $array-last-activity] {
-      ns_log Notice "YY at user $user with $timestamp"
-      set ago [expr {($now - $timestamp) / 1000}]
-      
-          
-      if {$ago > 1000} { 
-		my add_msg -get_new false -uid $user "auto logout"		
-     		db_dml insert_users {delete from chat_room_user_id where room_id = :chat_id and user_id = :user;}
-		nsv_unset $array-last-activity $user
-		nsv_unset $array-color $user 
-		nsv_unset $array-login $user
-					
-      }
-          
-    }    
-    my log "-- ending"
-  }
-  
-  
-  Chat instproc get_users {} {
-    my instvar chat_id
-    set output ""
-    set count 0
-    
-	
-    
-    foreach {user_id timestamp} [my active_user_list] {
-    
-    	
-      set count [expr $count+1]
-      if {$user_id > 0} {
-      	db_1row room_info {
-        	select count(1) as info
-        	from chat_registered_users
-        	where room_id = :chat_id
-        	and user_id = :user_id
-    	}
-    	if { $info > 0 } {
-		db_1row room_info {	
-        		select alias as alias
-        		from chat_registered_users
-        		where room_id = :chat_id
-        		and user_id = :user_id
-		}
-	
-	set pp [my sweeper]
-		
-	
-		
-	set color [my user_color $user_id]
-	set diff [clock format [expr {[clock seconds] - $timestamp}] -format "%H:%M:%S" -gmt 1]
-	
-	set package_id [ad_conn package_id]
-	db_1row url { 
-     		   select site_node__url(node_id) as url
-        		from site_nodes
-        		where object_id=:package_id
-    	}
-	
-	set userlink  [my user_link2 -user_id $user_id -alias $alias]
-	set user_id2 [ad_conn user_id]
-      		set url2 "private-room?room_id=$chat_id&user_id1=$user_id&user_id2=$user_id2"     		      		      		 
-    		append link $url $url2
-    		set address [my encode $link]
-      		set narrow [dt_right_arrow]      		
-      		ns_log Notice "URL---------------$link---------$userlink"      		
-		append output "<tr><td><a target='_blank' title='[_ chat-portlet.private_room]' href='$address'><img src='$narrow' /></a></td><td class='user'>$userlink</td> <td class='timestamp'>$diff</td></tr>"
-	
-	}
-	if { $info eq 0 } {
-		set link ""
-		set package_id [ad_conn package_id]
-		db_1row url { 
-     		   select site_node__url(node_id) as url
-        		from site_nodes
-        		where object_id=:package_id
-    		}
-		set diff [clock format [expr {[clock seconds] - $timestamp}] -format "%H:%M:%S" -gmt 1]
-		set userlink  [my user_link -user_id $user_id]
-		set user_id2 [ad_conn user_id]
-      		set url2 "private-room?room_id=$chat_id&user_id1=$user_id&user_id2=$user_id2"     		      		      		 
-    		append link $url $url2
-    		set address [my encode $link]
-      		set narrow [dt_right_arrow]      		
-      		ns_log Notice "URL---------------$link---------$userlink"      		
-		append output "<tr><td><a target='_blank' title='[_ chat-portlet.private_room]' href='$address'><img src='$narrow' /></a></td><td class='user'>$userlink</td> <td class='timestamp'>$diff</td></tr>"
-	}
-      }
-    }  
-     
-    return $output
-  }
+}
 
-
-
-Chat instproc logout {} {  
-    my instvar array user_id chat_id    
-    my add_msg -get_new false [_ chat.has_left_the_room].
-    
-    db_dml insert_users {delete from chat_room_user_id where room_id = :chat_id and user_id = :user_id;}
-
-    catch {        
-        nsv_unset $array-last-activity $user_id
-        nsv_unset $array-login $user_id
-        nsv_unset $array-color $user_id
-    }
-  }  
-  
-  
-  
-   Chat instproc user_link { -user_id -color } {  
-  my instvar chat_id
-   if {$user_id > 0} {
-        set name [my user_name $user_id]
-      set url "/shared/community-member?user%5fid=$user_id"
-      if {![info exists color]} {
-	set color [my user_color $user_id]
-      }
-      set user_id2 [ad_conn user_id]
-      set user_info "#chat.user_info#"
-      set creator "<a style='color:$color;' title='[_ chat.user_info]' target='_blank' href='$url'>$name</a>"
-    } elseif { $user_id == 0 } {
-      set creator "Nobody"
-    } else {
-      set creator "System"
-    }  
-    return [my encode $creator]  
-  }
-  
- 
-  
-  Chat instproc user_link2 { -user_id -color -alias} {    
-  my instvar chat_id
-   if {$user_id > 0} {
-        set name $alias
-      set url "/shared/community-member?user%5fid=$user_id"
-      set user_id2 [ad_conn user_id]
-      if {![info exists color]} {
-	set color [my user_color $user_id]
-      }
-      set user_info "#chat.user_info#"
-      set creator "<a style='color:$color;' title='[_ chat.user_info]' target='_blank' href='$url'>$alias</a>"
-      ns_log Notice "El creator vale---------------$creator"
-    } elseif { $user_id == 0 } {
-      set creator "Nobody"
-    } else {
-      set creator "System"
-    }  
-    set tt [my encode $creator]
-    ns_log Notice "El creator a string vale          $tt"
-    return [my encode $creator]  
-  }
-  
-  Chat instproc user_link3 { -url -color} {    
-      set creator "<a style='color:$color;' title='[_ chat.user_info]' target='_blank' href='$url'>$url</a>"
-   
-    return [my encode $creator]  
-  }
-  
-  Chat instproc user_link4 { -url -color} {    
-      set creator "<a style='color:$color;' title='[_ chat.user_info]' target='_blank' href='http://$url/'>$url</a>"
-   
-    return [my encode $creator]  
-  }
-  
-  Chat instproc user_link5 { -url -msg -color} {    
-      set creator "<a style='color:$color;' title='[_ chat.user_info]' target='_blank' href='/../$url'>$msg</a>"
-   
-    return [my encode $creator]  
-  }    
-  
-  
-  Chat instproc add_msg {{-get_new:boolean true} -uid msg} {  
-    my instvar array now user_id chat_id    
-  
-     if { $get_new eq "true" } {
-    	
-	db_1row room_info {
-		select count(cr.room_id) as count
-		from chat_room_user_id as cr
-		where cr.room_id = :chat_id
-		and cr.user_id = :user_id
-	}
-	if { $count == 1 || [permission::permission_p -party_id $user_id -object_id [dotlrn::get_package_id] -privilege admin]} {    	       
-    		set user_id [expr {[info exists uid] ? $uid : [my set user_id]}]
-    		set color   [my user_color $user_id]        		
-    		set msg $msg    		
-    
-    		if {$get_new && [info command ::thread::mutex] ne ""} { 
-      				
-      		my broadcast_msg [Message new -volatile -time [clock seconds] \
-			    -user_id $user_id -msg $msg -color $color]
-	
-    	}
-
-    	set msg_id $now.$user_id
-    	if { ![nsv_exists $array-login $user_id] } {
-      			nsv_set $array-login $user_id [clock seconds]
-      	}
-    	
-    	nsv_set $array $msg_id [list $now [clock seconds] $user_id $msg $color]    
-    	nsv_set $array-seen newest $now
-    	nsv_set $array-seen last [clock seconds]
-    	nsv_set $array-last-activity $user_id $now
-    	if {$get_new} {my get_new}
-    	}
-    
-    
-    } else {
-    	
-    	set user_id [expr {[info exists uid] ? $uid : [my set user_id]}]
-    	set color   [my user_color $user_id]    
-    	
-    	set msg $msg
-    	
-    
-    	if {$get_new && [info command ::thread::mutex] ne ""} { 
-    	  
-    	  my broadcast_msg [Message new -volatile -time [clock seconds] \
-			    -user_id $user_id -msg $msg -color $color]
-	
-    	}
-
-   	 set msg_id $now.$user_id
-   	 if { ![nsv_exists $array-login $user_id] } {
-   	   nsv_set $array-login $user_id [clock seconds]
-   	 }
-   	 nsv_set $array $msg_id [list $now [clock seconds] $user_id $msg $color]    
-   	 nsv_set $array-seen newest $now
-   	 nsv_set $array-seen last [clock seconds]
-   	 nsv_set $array-last-activity $user_id $now
-   	 if {$get_new} {my get_new}
-    }
-    
-  }  
-  
-  
-}	
Index: openacs-4/packages/chat/tcl/chat-init.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/tcl/chat-init.tcl,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/chat/tcl/chat-init.tcl	7 Jun 2007 09:14:24 -0000	1.3
+++ openacs-4/packages/chat/tcl/chat-init.tcl	19 Nov 2007 01:14:16 -0000	1.4
@@ -10,5 +10,6 @@
 nsv_set chat new_message [ns_mutex create]
 
 nsv_set chat server_started 0
-	
-ad_schedule_proc -thread t -schedule_proc ns_schedule_daily [list 18 05] chat_flush_rooms
+
+ad_schedule_proc -thread t -schedule_proc ns_schedule_daily [list 0 5] chat_flush_rooms
+
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/tcl/chat-install-procs.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Index: openacs-4/packages/chat/tcl/chat-procs-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/tcl/Attic/chat-procs-postgresql.xql,v
diff -u -r1.5 -r1.6
--- openacs-4/packages/chat/tcl/chat-procs-postgresql.xql	24 Jun 2007 15:21:19 -0000	1.5
+++ openacs-4/packages/chat/tcl/chat-procs-postgresql.xql	19 Nov 2007 01:14:16 -0000	1.6
@@ -3,165 +3,26 @@
    <rdbms><type>postgresql</type><version>7.1</version></rdbms>
 <fullquery name="chat_room_new.create_room">
       <querytext>
-            select chat_room__new (            
+            select chat_room__new (
+             NULL,
              :pretty_name,
-             :alias,
              :description,
-             :key_words,
-             :maxP,
-             timestamp :end_date,
-             boolean :Rss_service,
-             boolean :Mail_service,
-             boolean :moderated_p,
-             boolean :active_p,
-             boolean :archive_p,
-             integer :context_id,
-             varchar :comm_name,
-             integer :creation_user,
-             varchar :creation_ip,
-             varchar 'chat_room',
-             varchar :frequency1,
-             varchar :frequency2
+             :moderated_p,
+             :active_p,
+             :archive_p,
+             :auto_flush_p,
+             :auto_transcript_p,
+             :context_id,
+             now(),
+             :creation_user,
+             :creation_ip,
+             'chat_room'
             )
       </querytext>
 </fullquery>
 
-<fullquery name="chat_room_new.insert_keywords">
-      <querytext>
-            select chat_room__insert_keywords (             
-             :word,
-             :room_id
-             )
-      </querytext>
-</fullquery>
 
-<fullquery name="chat_room_edit.insert_keywords">
-      <querytext>
-            select chat_room__insert_keywords (             
-             :word,
-             :room_id
-             )
-      </querytext>
-</fullquery>
 
-<fullquery name="chat_room_private_new.create_private_room">
-      <querytext>      
-            select chat_room__private_new (            
-             varchar :pretty_name,
-             varchar :alias,
-             varchar :description,
-             varchar :key_words,
-             integer :maxP,
-             timestamp :end_date,
-             boolean :Rss_service,
-             boolean :Mail_service,
-             boolean :moderated_p,
-             boolean :active_p,
-             boolean :archive_p,
-             integer :context_id,
-             varchar :comm_name,             
-             integer :creation_user,
-             varchar :creation_ip,
-             varchar 'chat_room',
-             boolean :private		                                       
-            )
-      </querytext>
-</fullquery>
-
-<fullquery name="chat_send_mails.sender_info3">
-<querytext>
-	select '$from' as from_addr,
-               '$sender_first_names' as sender_first_names,
-               '$sender_last_name' as sender_last_name,
-               parties.email as email
-               from dotlrn_member_rels_full,parties
-               where dotlrn_member_rels_full.community_id = '2267'
-               and parties.party_id = dotlrn_member_rels_full.user_id               
-</querytext>
-</fullquery>
-
-<fullquery name="chat_send_mails.sender_info4">
-<querytext>
-	select '$from' as from_addr,
-               '$sender_first_names' as sender_first_names,
-               '$sender_last_name' as sender_last_name,
-               parties.email as email
-               from dotlrn_member_rels_full,parties
-               where dotlrn_member_rels_full.community_id = '$community_id'
-               and parties.party_id = dotlrn_member_rels_full.user_id
-               and parties.party_id = '$user_id'
-</querytext>
-</fullquery>
-
-
-
-<fullquery name="chat_send_mails.sender_info">
-        <querytext>
-        select '$from' as from_addr,
-               '$sender_first_names' as sender_first_names,
-               '$sender_last_name' as sender_last_name,
-               parties.email,
-               CASE
-                  WHEN
-                      acs_objects.object_type = 'user'
-                  THEN
-                      (select first_names
-                       from persons
-                       where person_id = parties.party_id)
-                  WHEN
-                      acs_objects.object_type = 'group'
-                  THEN
-                      (select group_name
-                       from groups
-                       where group_id = parties.party_id)
-                  WHEN
-                      acs_objects.object_type = 'rel_segment'
-                  THEN
-                      (select segment_name
-                       from rel_segments
-                       where segment_id = parties.party_id)
-                  ELSE
-                      ''
-               END as first_names,
-               CASE
-                  WHEN
-                     acs_objects.object_type = 'user'
-                  THEN
-                      (select last_name
-                       from persons
-                       where person_id = parties.party_id)
-                  ELSE 
-                      ''
-               END as last_name,
-               '$safe_community_name' as community_name,
-               '$community_url' as community_url
-            from acs_rels,
-                 parties,
-                 acs_objects
-            where (acs_rels.object_id_one = $community_id
-            and acs_rels.object_id_two = parties.party_id
-            and parties.party_id = acs_objects.object_id
-            and parties.party_id in (select acs_rels.object_id_two  
-                                     from acs_rels, membership_rels
-                                     where acs_rels.object_id_one = acs__magic_object_id('registered_users')
-                                     and acs_rels.rel_id = membership_rels.rel_id
-                                     and membership_rels.member_state = 'approved' ))
-	    $who_will_receive_this_clause
-        </querytext>
-    </fullquery>
-    
-    <fullquery name="select_sender_info">
-        <querytext>
-            select parties.email as sender_email,
-                   persons.first_names as sender_first_names,
-                   persons.last_name as sender_last_name
-            from parties,
-                 persons
-            where parties.party_id = :sender_id
-            and persons.person_id = :sender_id
-        </querytext>
-    </fullquery>
-
 <fullquery name="chat_room_new.grant_permission">
       <querytext>
         -- Automatic grant room privilege to creator of the room (must not be null).
@@ -251,61 +112,39 @@
            return 0;
 	end;
      </querytext>
-</fullquery>   
+</fullquery>
 
+
 <fullquery name="chat_room_edit.edit_room">
       <querytext>
-         begin            
+         begin
 	    perform chat_room__edit (
+	        :room_id,
 	        :pretty_name,
-	        :alias,
 	        :description,
-	        :key_words,
-	        :maxP,
-	        :end_date,
-	        :Rss_service,
-	        :Mail_service,
 	        :moderated_p,
 	        :active_p,
-          :archive_p,
-          :user_id,
-          :room_id,
-          :frequency1,
-	  :frequency_mail
+            :archive_p,
+            :auto_flush_p,
+            :auto_transcript_p
 	    );
             return 0;
 	end;
      </querytext>
 </fullquery>
 
-<fullquery name="chat_room_edit.edit_room_admin">
-      <querytext>        
-	    select chat_room__edit_admin (
-	        :alias,
-	        :Rss_service,
-	        :Mail_service,
-	        :context_id,
-	        :user_id,
-	        :creation_ip,
-          	:room_id,
-                :frequency_mail
-	    )        
-     </querytext>
-</fullquery>
 
-
 <fullquery name="chat_message_count.message_count">
       <querytext>
          select chat_room__message_count(:room_id);
      </querytext>
 </fullquery>
 
 
-
-<fullquery name="chat_room_delete_registered_users.delete_users">
+<fullquery name="chat_room_message_delete.delete_message">
       <querytext>
-          begin          
-	    perform chat_room__delete_registered_users(:room_id,:user_id);
+          begin
+	    perform chat_room__delete_all_msgs(:room_id);
             return 0;
 	end;
      </querytext>
@@ -382,164 +221,5 @@
       </querytext>
 </fullquery>
 
-
-<fullquery name="chat_transcript_edit_keywords.store_transcripts_keywords">
-      <querytext>
-          select chat_room__store_transcripts_keywords (
-             :word,
-             :transcript_id
-            )
-      </querytext>
-</fullquery>
-
-
-<fullquery name="chat_registered_user.register">
-      <querytext>
-            select chat_room_registered__user (
-             varchar :alias,
-             integer :user_id,
-             integer :room_id,
-             boolean :RSS_service,
-             boolean :mail_service,
-             integer :context_id,
-             varchar :creation_ip,
-             varchar :frequency_mail
-            )
-      </querytext>
-</fullquery>
-
-
-<fullquery name="send_file.send_file">
-      <querytext>
-            select chat_room__send_files (
-             integer :chat_id,
-             varchar :file,
-             varchar :title,
-             varchar :description,
-             date :date,
-             integer :context_id,
-             integer :creation_user,
-             varchar :creation_ip,
-	     integer :send_file_id
-            )
-      </querytext>
-</fullquery>
-
-<fullquery name="send_file_message.send_file_message">
-      <querytext>      
-      	begin      	
-            perform chat_room__send_files_message (:chat_id);
-            return 0;
-        end;
-      </querytext>
-</fullquery>
-
-
-<fullquery name="chat::rss::lastUpdated.select_last_updated">
-    <querytext>    
-    	select max(o.last_modified) as last_updated
-        from acs_objects o, chat_rooms cr
-        where cr.context_id=:package_id
-        and o.object_id=cr.room_id
-    </querytext>
-  </fullquery>
-  
-  <fullquery name="chat__rss_datasource.get_chat_items">
-        <querytext>
-        select cr.room_id as item_id,
-        cr.pretty_name as title,
-        to_char(o.last_modified, 'YYYY-MM-DD HH24:MI:SS') as last_modified
-        from chat_rooms cr,
-        acs_objects o
-        where cr.context_id=:package_id
-        and o.object_id = cr.room_id
-        and cr.room_id=:summary_context_id
-        order by o.last_modified desc
-        limit $limit
-        </querytext>        
-        
-</fullquery>
-
-
-<fullquery name="rss_db.rss_db">
-      <querytext>     
-      	select chat_rss__store_db (
-            	varchar :room_name,
-            	varchar :room_description,
-            	date :end_date,
-            	varchar :r_creator,
-            	varchar :comm_name,
-            	varchar :registered_users,
-            	timestamp :entry_timestamp
-           	);
-      </querytext>
-</fullquery>
-
-
-<fullquery name="store_partitipants_rss.store_partitipants_rss">
-      <querytext>     
-      	select chat_rss__store_partitipants_rss (
-            	:rss_id,
-            	:partitipant
-           	);
-      </querytext>
-</fullquery>
-
-<fullquery name="store_partitipants_transcript.store_partitipants_transcript">
-      <querytext>     
-      	select chat_transcript__store_partitipants_transcript (
-            	:transcript_id,
-            	:partitipant
-           	);
-      </querytext>
-</fullquery>
-
-<fullquery name="store_sent_files_rss.store_sent_files_rss">
-      <querytext>     
-      	select chat_rss__store_sent_files_rss (
-            	:rss_id,
-            	:send_file_id
-           	);
-      </querytext>
-</fullquery>
-
-<fullquery name="store_sent_files_tanscript.store_sent_files_tanscript">
-      <querytext>     
-      	select chat_transcript__store_sent_files_tanscript (
-            	:transcript_id,
-            	:f_id
-           	);
-      </querytext>
-</fullquery>
-
-<fullquery name="store_keywords_rss.store_keywords_rss">
-      <querytext>     
-      	select chat_rss__store_keywords_rss (
-            	:rss_id,
-            	:key
-           	);
-      </querytext>
-</fullquery>
-
-
-<fullquery name="store_transcripts_rss.store_transcripts_rss">
-      <querytext>     
-      	select chat_rss__store_transcripts_rss (
-            	:rss_id,
-            	:transcription_id
-           	);
-      </querytext>
-</fullquery>
-
-
-<fullquery name="get_files_sent">
-  	<querytext>
-    	select fs.send_file_id as f_id
-      from chat_files_sent fs
-      where room_id = :room_id
-      	  and date >= :time 
-  	</querytext>
-  </fullquery>
-  
 </queryset>
 
Index: openacs-4/packages/chat/tcl/chat-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/tcl/chat-procs.tcl,v
diff -u -r1.10 -r1.11
--- openacs-4/packages/chat/tcl/chat-procs.tcl	24 Jun 2007 15:21:19 -0000	1.10
+++ openacs-4/packages/chat/tcl/chat-procs.tcl	19 Nov 2007 01:14:16 -0000	1.11
@@ -2,15 +2,14 @@
 ad_library {
     TCL Library for the chat system v.4
 
-    @author David Dao (ddao@arsdigita.com) and Pablo Mu�oz(pablomp@tid.es)
-    
+    @author David Dao (ddao@arsdigita.com)
+    @creation-date November 17, 2000
+    @cvs-id $Id$
 }
 
-namespace eval chat::rss {}
-
 ad_proc -private chat_start_server {} { Start Java chat server. } {
 
-    if {[nsv_get chat server_started]} {
+    if [nsv_get chat server_started] {
         return
     }
     ns_log notice "chat_start_server: Starting chat server"
@@ -63,7 +62,7 @@
     while { 1 } {
         # Wait until there is new message in queue.
         ns_mutex lock [nsv_get chat new_message]
-        if {[nsv_exists chat html_message]} {
+        if [nsv_exists chat html_message] {
             # Get message from queue.
             puts $w [nsv_get chat html_message]
             flush $w
@@ -99,7 +98,7 @@
                 regexp "<from>(.*)</from>" $line match screen_name
                 regexp "<body>(.*)</body>" $line match msg
                 regexp "<from_user_id>(.*)</from_user_id>" $line match user_id
-                if {![nsv_exists chat_room $room_id]} {
+                if ![nsv_exists chat_room $room_id] {
                     nsv_set chat_room $room_id {}                   
                 }
 
@@ -119,12 +118,12 @@
                     }
                 }
 
-                chat_room_get -room_id $room_id -array room_info
-                if { $room_info(archive_p) eq "t" } { 
-                    if {[catch {chat_post_message_to_db -creation_user $user_id $room_id $msg} errmsg]} {
-                        ns_log error "chat_post_message_to_db: error: $errmsg"
-                    }
-                }
+				chat_room_get -room_id $room_id -array room_info
+				if { $room_info(archive_p) eq "t" } { 
+					if [catch {chat_post_message_to_db -creation_user $user_id $room_id $msg} errmsg] {
+						ns_log error "chat_post_message_to_db: error: $errmsg"
+					}
+				}
 
                 nsv_lappend chat_room $room_id $line
 
@@ -143,138 +142,48 @@
 } {
     Log chat message to the database.
 } {
-   
+    # ns_log Notice $msg
     db_exec_plsql post_message {}
 
 }
-ad_proc -public chat_room_new {    
-    {-alias ""}    
-    {-key_words ""}
-    {-maxP ""}
-    {-end_date ""}
-    {-Rss_service ""}
-    {-frequency1 ""}
-    {-frequency2 ""}
-    {-Mail_service ""}
-    {-moderated_p ""}
-    {-active_p ""}
-    {-archive_p ""}
-    {-auto_flush_p ""}
-    {-auto_transcript_p ""}
-    {-context_id ""}    
-    {-comm_name ""}
+ad_proc -public chat_room_new {
+    {-description ""}
+    {-moderated_p f}
+    {-active_p t}
+    {-archive_p f}
+    {-auto_flush_p t}
+    {-auto_transcript_p f}
+    {-context_id ""}
     {-creation_user ""}
     {-creation_ip ""}
-    description
     pretty_name
+
 } {
     Create new chat room. Return room_id if successful else raise error.
 } {
 
-    
     db_transaction {
         set room_id [db_exec_plsql create_room {}]
     }
 
     db_exec_plsql grant_permission {}
-    
-    for {set i 0} {$i < [llength $key_words]} {incr i 1} {
-    	set word [lindex $key_words $i]
-	
-    	db_exec_plsql insert_keywords { }
-    }
-    
-    
 
     return $room_id
 }
 
-ad_proc -public chat_room_private_new {    
-    {-alias ""}    
-    {-key_words ""}
-    {-maxP ""}
-    {-end_date ""}
-    {-Rss_service ""}
-    {-Mail_service ""}
-    {-moderated_p ""}
-    {-active_p ""}
-    {-archive_p ""}
-    {-auto_flush_p ""}
-    {-auto_transcript_p ""}
-    {-context_id ""}    
-    {-comm_name ""}
-    {-creation_user ""}
-    {-creation_ip ""}
-    {-private ""}
-    description
-    pretty_name
-} {
-    Create new chat room. Return room_id if successful else raise error.
-} {
-
-    db_transaction {
-        set room_id [db_exec_plsql create_private_room {}]
-    }
-
-    
-
-    return $room_id
-}
-
 ad_proc -public chat_room_edit {
-    {-alias ""}
-    {-key_words ""}
-    {-maxP ""}
-    {-end_date ""}
-    {-Rss_service ""}
-    {-frequency1 ""}
-    {-frequency_mail ""}
-    {-Mail_service ""}
-    {-moderated_p ""}
-    {-active_p ""}
-    {-archive_p ""}
-    {-user_id ""}
-    {-room_id ""}
-    description
+    room_id
     pretty_name
+    description
+    moderated_p
+    active_p
+    archive_p
+    auto_flush_p
+    auto_transcript_p
 } {
     Edit information on chat room. All information require.
 } {
-
-  for {set i 0} {$i < [llength $key_words]} {incr i 1} {  
-    	set word [lindex $key_words $i]
-	
-	db_1row room_info {
-		select count(ck.room_id) as words
-		from chat_keywords ck
-		where ck.room_id = :room_id
-		and ck.keyword = :word
-	} 
-	if {  $words eq 0 } {
-    		db_exec_plsql insert_keywords { }
-    	}
-    }
-        
-  db_exec_plsql edit_room {}
-  
-  
-  #A professor who creates a rooom will be able to admin it.
-	db_1row room_info2 {
-		select count(cr.creator) as counter2
-		from chat_rooms cr
-		where cr.room_id = :room_id
-		and cr.creator = :user_id		
- 	}
- 	if { $counter2 > 0} {
- 		return 0 	 		
-	} else {	
-		set context_id [ad_conn package_id]
-		set creation_ip [ad_conn peeraddr]
-		db_exec_plsql edit_room_admin {}
-		return 0
-	}  
-  
-   
+   db_exec_plsql edit_room {}
 }
 
 ad_proc -public chat_room_delete {
@@ -426,10 +335,7 @@
     Return display name of this user to use in chat.
 } {
 	acs_user::get -user_id $user_id -array user
-	
-	
 	set name [expr {$user(screen_name) ne "" ? $user(screen_name) : $user(name)}]
-	
     return $name
 
 }
@@ -463,22 +369,20 @@
         if { $room_info(archive_p) eq "f" } { return }
         
         # write message to the database
-        if {[catch {chat_post_message_to_db -creation_user $user_id $room_id $message} errmsg]} {
+        if [catch {chat_post_message_to_db -creation_user $user_id $room_id $message} errmsg] {
             ns_log error "chat_post_message_to_db: error: $errmsg"
         }
 }
 
 
-
-
 ad_proc -public chat_moderate_message_post {
     room_id
     user_id
     message
 } {
     Post moderate message to the chat room and broadcast to all applet clients. Only use by HTML client.
 } {
-    set chat_msg "<message><from>[chat_user_name2 $user_id $alias]</from><from_user_id>$user_id</from_user_id><room_id>$room_id</room_id><body>$message</body><status>pending</status></message>"
+    set chat_msg "<message><from>[chat_user_name $user_id]</from><from_user_id>$user_id</from_user_id><room_id>$room_id</room_id><body>$message</body><status>pending</status></message>"
 
     # Add message to queue. Notify thread responsible for broadcast message to applets.
     nsv_set chat html_message $chat_msg
@@ -497,7 +401,7 @@
 
     # The first time html client enter chat room, chat_room variable is not initialize correctly.
     # Therefore I just hard code the variable.
-    if {![nsv_exists chat_room $room_id]} {
+    if ![nsv_exists chat_room $room_id] {
         nsv_set chat_room $room_id [list "<message><from>[chat_user_name $user_id]</from><room_id>$room_id</room_id><body>[_ chat.has_entered_the_room]</body><status>approved</status></message>"]
     }
 
@@ -513,14 +417,14 @@
     set counter 0
 
     #foreach msg $chat_messages 
-    for { set i [expr {$cnt - 1}] } { $i >= 0 } { set i [expr {$i - 1}] } {
+    for { set i [expr $cnt - 1] } { $i >= 0 } { set i [expr $i - 1] } {
         set msg [lindex $chat_messages $i]
         regexp "<from>(.*)</from>" $msg match screen_name
         regexp "<body>(.*)</body>" $msg match chat_msg
         regexp "<status>(.*)</status>" $msg match status
 
 
-        if {$status eq "pending" || $status eq "rejected"} {
+        if {$status == "pending" || $status == "rejected"} {
             continue;
         }
 
@@ -531,7 +435,7 @@
         incr counter
         set array_val(rownum) $counter
 
-        if {$screen_name == $user_name && $chat_msg eq "has entered the room."} {
+        if {$screen_name == $user_name && $chat_msg == "has entered the room."} {
             return
         }
     }
@@ -544,7 +448,6 @@
     {-context_id ""}
     {-creation_user ""}
     {-creation_ip ""}
-    {-keywords ""}
     pretty_name
     contents
     room_id
@@ -576,33 +479,14 @@
     transcript_id
     pretty_name
     description
-    contents    
+    contents
 } {
     Edit chat transcript.
 } {
     db_exec_plsql edit_transcript {}
     db_dml update_contents {}
 }
 
-ad_proc -public chat_transcript_edit_keywords {
-    transcript_id
-    keywords    
-} {
-    Edit chat transcript.
-} {    	
-	for {set i 0} {$i < [llength $keywords]} {incr i 1} {
-	    	set word [lindex $keywords $i]
-		
-		db_1row select_keywords {select count(ck.keyword) as ckey from chat_room_transcript_keywords ck where ck.transcript_id = :transcript_id and ck.keyword = :word}
-		if { $ckey > 0 } {
-		} else {
-			db_exec_plsql store_transcripts_keywords {}
-		}    		
-	}
-	
-        
-}
-
 ad_proc -public chat_room_get {
     {-room_id {}}
     {-array:required}
@@ -621,1245 +505,32 @@
 }
 
 ad_proc -private chat_flush_rooms {} {Flush the messages in all of the chat rooms} {
-    
+    # ns_log Notice "YY Starting chat_flush_rooms operation"
     set room_ids [db_list get_rooms *SQL*] 
     foreach room_id $room_ids {
         chat_room_flush $room_id
     }
-} 
-  
+}   
 
 ad_proc -private chat_room_flush { room_id } {Flush the messages a single chat room} {
-    
+    # ns_log Notice "YY flushing room $room_id"
     db_transaction {
         array set room_info [chat_room_get_not_cached $room_id]
         set contents ""
         # do we have to create a transcript for the room
-        if { $room_info(auto_transcript_p) eq "t" } {               
-        		set time [clock format [expr [clock seconds]-86400] -format "%D"]
-            		# build a list of all messages
-            		db_foreach get_archives_messages {} {
-            		
-            		if { $creation_user eq "-1" } {
-				append contents "\[$creation_date\] <b>System</b>: $msg<br>\n"
-			} else {
-            			db_1row room_info2 {
-    					select count(r.alias)
-    					from chat_registered_users r
-    					where r.user_id = :creation_user
-    					and r.room_id = :room_id
-				}
-
-				if { $count > 0} {
-					db_1row room_info2 {
-    						select r.alias
-    						from chat_registered_users r
-    						where r.user_id = :creation_user
-    						and r.room_id = :room_id
-					}
-					append contents "\[$creation_date\] <b>[chat_user_name2 $creation_user $alias]</b>: $msg<br>\n"
-				} else {
-	    				append contents "\[$creation_date\] <b>[chat_user_name $creation_user]</b>: $msg<br>\n"
-				}
-            		}
-                	#append contents "\[$creation_date\] <b>[chat_user_name $creation_user]</b>: $msg<br>\n"
-            		}
-            		   
+        if { $room_info(auto_transcript_p) eq "t" } {
+            # build a list of all messages
+            db_foreach get_archives_messages {} {
+                append contents "\[$creation_date\] <b>[chat_user_name $creation_user]</b>: $msg<br>\n"
+            }
             if { $contents ne "" } {
-            	
-                set transcript_id [chat_transcript_new \
+                chat_transcript_new \
                     -description "#chat.automatically_created_transcript#" \
-                    "#chat.transcript_of_date# [clock format [clock seconds] -format "%d.%m.%Y"]" $contents $room_id]
-                set time [clock format [expr [clock seconds]-86400] -format "%D"]    
-                db_foreach get_files_sent {} {
-                		set ft [store_sent_files_tanscript $transcript_id $f_id]
-                }
-                
-                db_foreach partitipants_transcript "select distinct msg.creation_user as msg_creator
-     						from chat_msgs as msg
-     						where msg.room_id = :room_id and creation_date >= :time and msg.creation_user>-1" {
-	
-								#append de los participantes
-		
-								db_1row room_info {
-  							select count(r.alias) as count
-  							from chat_registered_users r
-  							where r.room_id = :room_id
-  							and r.user_id = :msg_creator
-  							}
-    	
-  							if { $count > 0 } {
-  								db_1row room_info {
-  									select r.alias as partitipant
-  									from chat_registered_users r
-  									where r.room_id = :room_id
-  									and r.user_id = :msg_creator
-  								}
-  							} else {
-  								db_1row room_info {
-  									select p.first_names as first_names, p.last_name as last_name
-  									from persons p
-  									where p.person_id = :msg_creator
-  								}
-  								append msg_creator1 $first_names " "
-  								append partitipant $msg_creator1 $last_name
-  							}    		
-    				
-  							set pt [store_partitipants_transcript $transcript_id $partitipant]  		
-		
-								
-								} if_no_rows {
-								
-								}
+                    "#chat.transcript_of_date# [clock format [clock seconds] -format "%d.%m.%Y"]" $contents $room_id
             }
-       }     
-         # clear all the messages in the room
-        #chat_room_message_delete $room_id
-    }
-}
-
-ad_proc -public chat_registered_user {     
-    {-RSS_service ""}
-    {-mail_service ""}
-    {-context_id ""}
-    {-creation_ip ""}
-    {-frequency_mail ""}
-    room_id   
-    alias    
-    user_id
-} {
-    A user is regitered in a chat room.
-} {
-
-    db_transaction {
-    	set registered_id [db_exec_plsql register {}]
-    }  
-
-    return $registered_id
-}
-
-ad_proc -public chat_send_mails {    
-    room_id
-    community_id
-    user_id
-    package_id
-    frequency
-} {
-    Send mails to the registered users with the brief of the chat room conversation
-} {
-    
-     db_1row info {
-	select r.frequency_mail,
-        to_char(r.registered_date, 'YYYY-MM-DD HH24:MI:SS') as registered_date
-	from chat_registered_users r
-	where r.room_id = :room_id
-	 and r.user_id = :user_id
-    }
-
-     set entry_date_ansi [lc_time_tz_convert -from [lang::system::timezone] -to "Etc/GMT" -time_value $registered_date]
-     set entry_timestamp [clock scan $entry_date_ansi]
-    
-    switch $frequency_mail {
-	"dayly" {
-	    set mail_time [expr [clock seconds]-86400]
-	
-	}
-	"weekly" {
-	    set mail_time [expr [clock seconds]-604800]
-	}
-	"monthly" {
-	    set mail_time [expr [clock seconds]-2592000] 
-	}
-    }
-     
-     if { !($mail_time eq $entry_timestamp) } {
-	 # the mail does not have to be sent
-	 return
-     }
-
-     set sende_first_names ""
-     set sender_last_name ""
-     set sender_email ""
-    db_foreach room_info "select user_id as user_id from chat_registered_users where chat_registered_users.room_id = :room_id" {
-    
-    	  set sender_id $user_id
-    	  db_1row select_sender_info {
-    
-    		select parties.email as sender_email,
-                   persons.first_names as sender_first_names,
-                   persons.last_name as sender_last_name
-          	  from parties,persons
-          	  where parties.party_id = :sender_id
-            	and persons.person_id = :sender_id    
-    	  }
-    	  
-    	  db_1row query {    		
-    		select parties.email as email
-               from dotlrn_member_rels_full,parties
-               where dotlrn_member_rels_full.community_id = :community_id
-               and parties.party_id = dotlrn_member_rels_full.user_id
-               and parties.party_id = :user_id
-    	  }
-    	  
-   
-    	  
-    	
-   	 
-   	 set from $sender_email
-   	 
-   	
-   	 if { $community_id eq "" } {
-   	 	set community_name "All Dotlrn communities"
-   	 	set community_url "Dotlrn"
-   	 	set safe_community_name [db_quote $community_name]
-  		append who_will_receive_this_clause [db_map recipients_clause]
-  	  	set query [db_map sender_info]
- 	   	
-    	} else {
-    		set community_name [dotlrn_community::get_community_name_not_cached $community_id]
-    		set community_url "[ad_parameter -package_id [ad_acs_kernel_id] SystemURL][dotlrn_community::get_community_url $community_id]"
-    		set safe_community_name [db_quote $community_name]
-    		append who_will_receive_this_clause [db_map recipients_clause]
-    		
-    		set query [db_map sender_info4]
-    		
-    	}   
-     
-    
-    	set send_date [template::util::date::now_min_interval]    
-    
-    	db_1row room_info {
-    		select r.pretty_name as name,r.comm_name as comm_name,r.description as description,p.first_names as first_names, p.last_name as last_name
-    		from chat_rooms as r, persons as p
-    		where r.room_id = :room_id
-    		and p.person_id = r.creator	    		    		
-    	} 
-    	db_1row room_info2 { select count(fs.title) as count
-    		from chat_rooms as r, chat_rooms_files_sent as fs
-    		where r.room_id = :room_id
-    		and r.room_id = fs.room_id }
-    	
-    	if { $count > 0 } {
-    		db_1row room_info2 { select fs.title as file_name, fs.description as fdescription,fs.creation_user as sender
-    			from chat_rooms as r, chat_rooms_files_sent as fs
-    			where r.room_id = :room_id
-    			and r.room_id = fs.room_id }
-    			db_0or1row sf2 {
-    					select p.first_names as sender_first_names, p.last_name as sender_last_name
-    					from persons p
-    					where p.person_id = :sender
-    				}
-    				append sender_name1 $sender_first_names " "
-    				append sender_name $sender_name1 $sender_last_name   			
-												
-    	 }
-    	set partitipants ""
-    	
-    	db_foreach rss_partitipants "select distinct  persons.first_names as first_names, persons.last_name as last_name
-        	from chat_msgs as msg,persons
-        	where msg.room_id = :room_id
-        	and msg.creation_user = persons.person_id" {
-		#append de los participantes
-		append partitipants $first_names " "
-		append partitipants $last_name " "
-		append partitipants " |" " "
-		
-	} if_no_rows {
-		
-		set partitipants "There are not partitipants"
-	}
-
-
-	if { [string index $partitipants [expr [string length $partitipants]-2]] eq "|" } {
-		set inicio 0
-		set final [expr [string length $partitipants]-3]
-		
-		set partitipants [string range $partitipants $inicio $final]
-		
-	}
-	
-	set registered_users ""
-        db_foreach rss_registered "select distinct registered.alias as users
-        	from chat_registered_users as registered
-        	where registered.room_id = :room_id" {
-		#append de los participantes
-		append registered_users $users " | "
-	} if_no_rows {
-		
-		set registered_users "There are not registered users"
-	}	
-    	
-    	
-
-	if { [string index $registered_users [expr [string length $registered_users]-2]] eq "|" } {
-		set inicio 0
-		set final [expr [string length $registered_users]-3]
-		set registered_users [string range $registered_users $inicio $final]
-		
-	}
-	
-	set keywords ""
-	db_foreach keywords "select k.keyword as key from chat_keywords as k
-    		where k.room_id = :room_id" {
-			#append de las keywords 
-			append keywords $key " | "
-	} if_no_rows {
-			
-			set keywords "There are not keywords"
-	}
-	if { [string index $keywords [expr [string length $keywords]-2]] eq "|" } {
-		set inicio 0
-		set final [expr [string length $keywords]-3]
-		set keysw [string range $keywords $inicio $final]		
-	}
-    	
-    	set subject "$name conversations brief"
-    	if { $count > 0 } {
-    		set message "This is a brief of the conversations during the $frequency: \r\n\r\n Room name --> $name \r\n\r\n Community name --> $comm_name \r\n\r\n Description --> $description \r\n\r\n Creator --> $first_names $last_name \r\n\r\n Keywords --> $keysw \r\n\r\n Partitipants --> $partitipants \r\n\r\n Registered users --> $registered_users \r\n\r\n File Title--> $file_name \r\n\r\n File description --> $fdescription \r\n\r\n File sender --> $sender_name"
-    	} else {
-    		set message "This is a brief of the conversations during the $frequency: \r\n\r\n Room name --> $name \r\n\r\n Community name --> $comm_name \r\n\r\n Description --> $description \r\n\r\n Creator --> $first_names $last_name \r\n\r\n Keywords --> $keysw \r\n\r\n Partitipants --> $partitipants \r\n\r\n Registered users --> $registered_users \r\n\r\n File Title-->  "
-    	}
-    	set message_type "text"    
-    
-    	bulk_mail::new \
-        	-package_id $package_id \
-        	-send_date [template::util::date::get_property linear_date $send_date] \
-        	-date_format "YYYY MM DD HH24 MI SS" \
-        	-from_addr $from \
-        	-subject "\[$community_name\] $subject" \
-        	-message $message \
-        	-message_type $message_type \
-        	-query $query \
-        } if_no_rows {
-        	
         }
-        
-}
-
-ad_proc -public chat_send_mails_monthly {    
-    room_id
-    community_id
-    user_id
-    package_id
-    week
-    frequency
-} {
-    Send mails to the registered users with the brief of the chat room conversation
-} {
-     if { $week eq "4"} {    	
-     
-     
-     
-     set sende_first_names ""
-     set sender_last_name ""
-     set sender_email ""
-    db_foreach room_info "select user_id as user_id from chat_registered_users where chat_registered_users.room_id = :room_id" {
-    
-    	  set sender_id $user_id
-    	 
-    	  db_1row select_sender_info {
-    
-    		select parties.email as sender_email,
-                   persons.first_names as sender_first_names,
-                   persons.last_name as sender_last_name
-          	  from parties,persons
-          	  where parties.party_id = :sender_id
-            	and persons.person_id = :sender_id    
-    	  }
-    	  
-    	  db_1row query {    		
-    		select parties.email as email
-               from dotlrn_member_rels_full,parties
-               where dotlrn_member_rels_full.community_id = :community_id
-               and parties.party_id = dotlrn_member_rels_full.user_id
-               and parties.party_id = :user_id
-    	  }
-    	  
-   
-   	 
-   	 set from $sender_email
-   	 
-   	
-   	 if { $community_id eq "" } {
-   	 	set community_name "All Dotlrn communities"
-   	 	set community_url "Dotlrn"
-   	 	set safe_community_name [db_quote $community_name]
-  		append who_will_receive_this_clause [db_map recipients_clause]
-  	  	set query [db_map sender_info]
- 	   	
-    	} else {
-    		set community_name [dotlrn_community::get_community_name_not_cached $community_id]
-    		set community_url "[ad_parameter -package_id [ad_acs_kernel_id] SystemURL][dotlrn_community::get_community_url $community_id]"
-    		set safe_community_name [db_quote $community_name]
-    		append who_will_receive_this_clause [db_map recipients_clause]
-    		
-    		set query [db_map sender_info4]
-    		
-    	}   
-     
-    
-    	set send_date [template::util::date::now_min_interval]    
-    
-    	db_1row room_info {
-    		select r.pretty_name as name,r.comm_name as comm_name,r.description as description,p.first_names as first_names, p.last_name as last_name
-    		from chat_rooms as r, persons as p
-    		where r.room_id = :room_id
-    		and p.person_id = r.creator	    		    		
-    	} 
-    	db_1row room_info2 { select count(fs.title) as count
-    		from chat_rooms as r, chat_rooms_files_sent as fs
-    		where r.room_id = :room_id
-    		and r.room_id = fs.room_id }
-    	
-    	if { $count > 0 } {
-    		db_1row room_info2 { select fs.title as file_name, fs.description as fdescription
-    			from chat_rooms as r, chat_rooms_files_sent as fs
-    			where r.room_id = :room_id
-    			and r.room_id = fs.room_id }
-    	 }
-    	set partitipants ""
-    	
-    	db_foreach rss_partitipants "select distinct  persons.first_names as first_names, persons.last_name as last_name
-        	from chat_msgs as msg,persons
-        	where msg.room_id = :room_id
-        	and msg.creation_user = persons.person_id" {
-		#append de los participantes
-		append partitipants $first_names " "
-		append partitipants $last_name " "
-		append partitipants " |" " "
-		
-	} if_no_rows {
-		
-		set partitipants "There are not partitipants"
-	}
-	
-
-	if { [string index $partitipants [expr [string length $partitipants]-2]] eq "|" } {
-		set inicio 0
-		set final [expr [string length $partitipants]-3]
-		
-		set partitipants [string range $partitipants $inicio $final]
-		
-	}
-	
-	set registered_users ""
-        db_foreach rss_registered "select distinct registered.alias as users
-        	from chat_registered_users as registered
-        	where registered.room_id = :room_id" {
-		#append de los participantes
-		append registered_users $users " | "
-	} if_no_rows {
-		
-		set registered_users "There are not registered users"
-	}	
-    	
-    	
-
-	if { [string index $registered_users [expr [string length $registered_users]-2]] eq "|" } {
-		set inicio 0
-		set final [expr [string length $registered_users]-3]
-		set registered_users [string range $registered_users $inicio $final]
-		#set registered_users [string range 0 [expr [string length $registered_users]-3]]
-		
-	}
-	
-	set keywords ""
-	db_foreach keywords "select k.keyword as key from chat_keywords as k
-    		where k.room_id = :room_id" {
-			#append de las keywords 
-			append keywords $key " | "
-	} if_no_rows {
-			
-			set keywords "There are not keywords"
-	}
-	if { [string index $keywords [expr [string length $keywords]-2]] eq "|" } {
-		set inicio 0
-		set final [expr [string length $keywords]-3]
-		set registered_users [string range $keywords $inicio $final]
-		
-	}
-    	
-    	set subject "$name conversations brief"
-    	if { $count > 0 } {
-    		set message "This is a brief of the conversations during the $frequency: \r\n\r\n Room name --> $name \r\n\r\n Community name --> $comm_name \r\n\r\n Description --> $description \r\n\r\n Creator --> $first_names $last_name \r\n\r\n Keywords --> $keysw \r\n\r\n Partitipants --> $partitipants \r\n\r\n Registered users --> $registered_users \r\n\r\n File Title--> $file_name \r\n\r\n File description --> $fdescription \r\n\r\n File sender --> $sender_name"
-    	} else {
-    		set message "This is a brief of the conversations during the $frequency: \r\n\r\n Room name --> $name \r\n\r\n Community name --> $comm_name \r\n\r\n Description --> $description \r\n\r\n Creator --> $first_names $last_name \r\n\r\n Keywords --> $keysw \r\n\r\n Partitipants --> $partitipants \r\n\r\n Registered users --> $registered_users \r\n\r\n File Title-->  "
-    	}
-    	set message_type "text"    
-    
-    	bulk_mail::new \
-        	-package_id $package_id \
-        	-send_date [template::util::date::get_property linear_date $send_date] \
-        	-date_format "YYYY MM DD HH24 MI SS" \
-        	-from_addr $from \
-        	-subject "\[$community_name\] $subject" \
-        	-message $message \
-        	-message_type $message_type \
-        	-query $query \
-        } if_no_rows {
-        	
-        }
-        } else {
-        	set week [expr $week+1]
-        	ad_schedule_proc -thread t -schedule_proc ns_schedule_weekly [list 0 15 18] chat_send_mails_monthly $room_id $community_id $user_id $package_id $week 
-        }
-        
-}
-
-
-ad_proc -public chat_message_post2 {
-    room_id
-    user_id
-    alias
-    message
-    moderator_p
-} {
-    Post message to the chat room and broadcast to all applet clients. Used by ajax + html.
-} {
-    if {$moderator_p == "1" } {
-        set status "approved"
-    } else {
-        set status "pending"
+        # clear all the messages in the room
+        chat_room_message_delete $room_id
     }
-    	
-	set default_client [parameter::get -parameter "DefaultClient" -default "ajax"]
-	if {$default_client eq "java"} {
-		set chat_msg "<message><from>[chat_user_name2 $user_id $alias]</from><from_user_id>$user_id</from_user_id><room_id>$room_id</room_id><body>$message</body><status>$status</status></message>"
-		# Add message to queue. Notify thread responsible for 
-		# broadcast message to applets.
-		nsv_set chat html_message $chat_msg
-		ns_mutex unlock [nsv_get chat new_message]  
-	}
-    
-        # do not write messages to the database if the room should not be archived
-        chat_room_get -room_id $room_id -array room_info
-        if { $room_info(archive_p) eq "f" } { return }
-        
-        # write message to the database
-        if {[catch {chat_post_message_to_db -creation_user $user_id $room_id $message} errmsg]} {
-            ns_log error "chat_post_message_to_db: error: $errmsg"
-        }
 }
 
-ad_proc -public chat_user_name2 {
-    user_id
-    alias
-} {
-    Return display name of this user to use in chat.
-} {
-	acs_user::get -user_id $user_id -array user
-	set name [expr {$alias ne "" ? $alias : $alias}]
-    return $name
-
-}
-
-ad_proc -public chat_room_delete_registered_users {
-    room_id
-    user_id
-} {
-    Delete the registered users in a room. 
-} {
-   db_exec_plsql delete_users {}
-}
-
-#pablomp
-
-ad_proc -private send_file {
-	chat_id
-	file
-	title
-	description
-	date
-	context_id
-	creation_user
-	creation_ip
-        send_file_id
-} {
-
-	
-    	db_exec_plsql send_file {}
-    	  
- }
-
-
-ad_proc -private send_file_message {
-	chat_id	
-} {
-
-    	db_exec_plsql send_file_message {}
-    	 
- }
-
-
-
-
-
-
-
-ad_proc -private chat__rss_datasource {
-summary_context_id
-} {
-    This procedure implements the "datasource" operation of the 
-    RssGenerationSubscriber service contract.  
-
-    @author Dave Bauer (dave@thedesignexperience.org) and Pablo Mu�oz (pablomp@tid.es)
-} {
-    
-    
-    set limit 15
-    set items [list]
-
-    db_1row room_info {
-    	select r.context_id as package_id
-    	from chat_rooms r
-    	where r.room_id = :summary_context_id
-    }
-    
-    set package_url [chat_util_get_url $package_id]
-    set content "RSS in the chat"
-    set column_array(channel_lastBuildDate) ""
-    set items ""
-
-    db_foreach get_chat_items {} {
-        #set entry_url [export_vars -base "[ad_url]${package_url}chat?[export_vars -url {{room_id $summary_context_id}}]"]
-	set entry_url [export_vars -base "[ad_url]${package_url}chat?room_id=$summary_context_id"]
-	
-        set content_as_text [ad_html_text_convert -from "text/plain" -to text/plain -- $content]
-	# for now, support only full content in feed
-        set description $content_as_text
-
-        # Always convert timestamp to GMT
-        set entry_date_ansi [lc_time_tz_convert -from [lang::system::timezone] -to "Etc/GMT" -time_value $last_modified]
-        #set entry_timestamp "[clock format [clock scan $entry_date_ansi] -format "%a, %d %b %Y %H:%M:%S"] GMT"
-	set entry_timestamp "[clock format [clock scan $entry_date_ansi] -format "%Y-%m-%d %H:%M:%S"] GMT"
-	
-	set items [rss_generation $summary_context_id $entry_url $content_as_text $entry_timestamp]
-	
-	# set the lastbuilddate just once
-	expr { [string eq $column_array(channel_lastBuildDate) ""] ? [set column_array(channel_lastBuildDate) $entry_timestamp] : [set column_array(channel_lastBuildDate) ""] }
-    }
-    set column_array(channel_title) "RSS Chat"
-    set column_array(channel_description) "RSS Chat"
-    set column_array(items) $items
-    set column_array(channel_language) ""
-    set column_array(channel_copyright) ""
-    set column_array(channel_managingEditor) ""
-    set column_array(channel_webMaster) ""
-    set column_array(channel_rating) ""
-    set column_array(channel_skipDays) ""
-    set column_array(channel_skipHours) ""
-    set column_array(version) 2.0
-    set column_array(image) ""
-    set column_array(channel_link) $entry_url
-    
-    return [array get column_array]
-}
-
-ad_proc -private chat::rss::create_rss_gen_subscr_impl {} {
-} {
-    set spec {
-	name "chat_rss"
-	aliases {
-	    datasource chat__rss_datasource
-	    lastUpdated chat_update_rss
-	}
-        contract_name "RssGenerationSubscriber"
-        owner "chat"
-    }
-    acs_sc::impl::new_from_spec -spec $spec
-}
-
-ad_proc chat_util_get_url {
-    package_id
-} {
-    @author Pablo Mu�oz
-} {
-
-    set url_stub ""
-
-    db_0or1row get_url_stub "
-        select site_node__url(node_id) as url_stub
-        from site_nodes
-        where object_id=:package_id
-    "
-
-    return $url_stub
-
-}
-
-ad_proc -private chat_update_rss_monthly {
-summary_context_id
-week    
-} {
-    Returns the time that the last chat room was modified,
-    in Unix time.  Returns 0 otherwise.
-
-    @author PabloMP (pablomp@tid.es)
-} {
-		if { $week eq "4" } {
-			[chat_update_rss $summary_context_id]
-		} else {
-        	set week [expr $week+1]
-   			  ad_schedule_proc -thread t -schedule_proc ns_schedule_weekly [list 0 15 18] [chat_update_rss_monthly $room_id $week]
-    }
-    
-}
-
-
-ad_proc -private chat_update_rss {
-summary_context_id    
-} {
-    Returns the time that the last chat room was modified,
-    in Unix time.  Returns 0 otherwise.
-
-    @author PabloMP (pablomp@tid.es)
-} {
-
-   
-    
-    set subscr_id [rss_support::get_subscr_id \
-                       -summary_context_id $summary_context_id \
-                       -impl_name "chat_rss" \
-                       -owner "chat"]
-                       
-    rss_gen_report $subscr_id
-    
-}
-
-
-
-
-
-
-
-ad_proc rss_generation { room_id entry_url content_as_text entry_timestamp } {
-	@author Pablo Mu�oz (pablomp@tid.es)
-} {
-    set msg_creator ""
-    set registered_users ""
-    set partitipants ""
-    set r_creator ""
-    
-    db_foreach rss_partitipants {
-	select distinct room.pretty_name as room_name,room.frequency1, 
-	room.creator as room_creator, room.description as room_description, 
-	room.end_date as end_date 
-	from chat_rooms as room where room.room_id = :room_id 
-    } {
-	if { ![db_0or1row user_info {
-	    select r.alias as r_creator
-	    from chat_registered_users r
-	    where r.room_id = :room_id
-	    and r.user_id = :room_creator
-	    limit 1
-	}] } {
-	    set r_creator [person::name -person_id $room_creator]
-	}
-	
-    }
-    
-    #regisered users
-    set registered_users_list [db_list rss_registered_users {
-	select distinct registered.alias as users
-	from chat_registered_users as registered
-	where registered.room_id = :room_id
-    }]
-    set registered_users [join $registered_users_list " | "]
-
-# 	# room participants
-# 	append registered_users $users " | "
-#     #$registered_users
-#     if { [string index $registered_users [expr [string length $registered_users]-2]] eq "|" } {
-# 	set inicio 0
-# 	set final [expr [string length $registered_users]-4]
-# 	set registered_users [string range $registered_users $inicio $final]
-	
-#     }
-    
-    #comm_name 
-    
-    db_1row room_info {
-	select r.comm_name as comm_name
-	from chat_rooms r, persons p
-	where r.room_id = :room_id
-	and p.person_id = r.creator	    		    		
-    }  
-    
-    #Store the values of the new rss in the data base
-
-    set rss_id [rss_db $room_name $room_description $end_date $r_creator $comm_name $registered_users $entry_timestamp]
-    
-    db_1row frequency {
-	select r.frequency1
-	from chat_rooms r
-	where r.room_id = :room_id	    		    		
-    }
-    
-    switch $frequency1 {
-	"dayly" {
-	    set rss_time [clock format [expr [clock scan $entry_timestamp -gmt "true"]-86400] -format "%D"]
-	}
-	"weekly" {
-	    set rss_time [clock format [expr [clock scan $entry_timestamp -gmt "true"]-604800] -format "%D"]  
-	}
-	"monthly" {
-	    set rss_time [clock format [expr [clock scan $entry_timestamp -gmt "true"]-2592000] -format "%D"] 
-	}
-    }
-    
-    #partitipants  	  
-    
-    db_foreach rss_partitipants "select distinct msg.creation_user as msg_creator
-     	from chat_msgs as msg
-     	where msg.room_id = :room_id and creation_date >= :rss_time" {
-	    
-	    #append de los participantes
-	    #$msg_creator
-	    if { $msg_creator eq "-1" } {
-		append partitipant "System" ""
-	    } else {
-		db_1row room_info {
-		    select count(r.alias) as count
-		    from chat_registered_users r
-		    where r.room_id = :room_id
-		    and r.user_id = :msg_creator
-		}
-		
-		if { $count > 0 } {
-		    db_1row room_info {
-			select r.alias as partitipant
-			from chat_registered_users r
-			where r.room_id = :room_id
-			and r.user_id = :msg_creator
-		    }
-		} else {
-		    db_1row room_info {
-			select p.first_names as first_names, p.last_name as last_name
-			from persons p
-			where p.person_id = :msg_creator
-		    }
-		    append msg_creator1 $first_names " "
-		    append partitipant $msg_creator1 $last_name
-		}    		
-	    }
-	    
-	    set p [store_partitipants_rss $rss_id $partitipant]
-	    set partitipant ""  		
-	    
-	    #append partitipants $creator " | "
-	    
-	} if_no_rows {
-	    
-	}
-    
-    
-    db_1row room_info {
-	select r.comm_name as comm_name
-	from chat_rooms r, persons p
-	where r.room_id = :room_id
-	and p.person_id = r.creator	    		    		
-    }
-    
-    
-    #sent files
-    
-    db_foreach room_info2 "select fs.send_file_id
-   			from chat_rooms_files_sent fs
-   			where fs.room_id = :room_id and date >= :rss_time" {   		
-			    
-			    set s [store_sent_files_rss $rss_id $send_file_id]
-   			}
-    
-    #keywords
-    
-    set keywords ""
-    set keysw ""
-    db_foreach keywords "select k.keyword as key from chat_keywords k
-    			where k.room_id = :room_id" {
-			    #append de las keywords 
-			    
-			    set k [store_keywords_rss $rss_id $key]
-			    
-			    #append keywords $key " | "			
-			} if_no_rows {
-			    
-			    set keywords "There are not keywords"
-			}
-    
-    
-    db_1row room_info6 { 
-	select count(ct.room_id) as count2
-	from chat_transcripts ct
-	where ct.room_id = :room_id    		 
-    }
-    set tname ""
-    set tdescription ""
-    set tdate ""
-    
-    db_foreach room_info2 "select ct.transcript_id as transcription_id
-    			from chat_transcripts ct
-    			where ct.room_id = :room_id and date >= :rss_time" {
-			    set t [store_transcripts_rss $rss_id $transcription_id]
-			}
-    
-    set rss_data [list]
-    
-    db_foreach rss_stored "select r.room_name as r_name,r.rss_id,r.creator as r_cre,r.end_date as r_end_date,r.description as r_description,r.comm_name as r_comm_name,r.user_registered as r_user_registered,r.date as entry_timestamp from chat_rss r 	where r.room_name = :room_name
-    	and r.creator = :r_creator
-    	order by entry_timestamp desc" {
-	    
-	    
-	    set keywords ""
-	    set keysw ""
-	    db_foreach keywords "select k.key from chat_key_rss k
-    				where k.rss_id = :rss_id" {
-				    
-				    #append de las keywords 
-				    append keywords $key " | "
-				    
-				} if_no_rows {
-				    
-				    set keywords "There are not keywords"
-				}
-	    if { [string index $keywords [expr [string length $keywords]-2]] eq "|" } {
-		set inicio 0
-		set final [expr [string length $keywords]-4]
-		set keysw [string range $keywords $inicio $final]		
-	    }   	
-	    
-	    set partitipants ""
-	    
-	    db_foreach partitipants "select p.partitipant as part from chat_partitipants_rss p
-    				where p.rss_id = :rss_id" {
-				    
-				    #append de las keywords 
-				    append partitipants $part " | "
-				    
-				} if_no_rows {
-				    
-				    set partitipants "There are not partitipants"
-				}    	 
-	    #set p_pants "There are not partitipants"
-	    
-	    if { [string index $partitipants [expr [string length $partitipants]-2]] eq "|" } {
-		set inicio 0
-		set final [expr [string length $partitipants]-4]
-		set p_pants [string range $partitipants $inicio $final]				
-	    } else {
-		set p_pants ""
-	    }
-	    set file ""
-	    set file [list]
-	    set files ""
-	    
-	    db_foreach sent_files "select f.file_id as f_id from chat_files_rss f
-    				where f.rss_id = :rss_id" {
-				    
-				    
-				    append file $f_id " "					
-				    
-				    
-				} if_no_rows {
-				    
-				    set f_name ""
-				    set f_description ""
-				    set f_sender ""
-				    set files "f"
-				    
-				}
-	    
-	    set f_name_end ""
-	    set f_description_end ""    		
-	    set f_sender_end ""
-	    set sender_name1 ""
-	    set sender_name ""
-	    
-	    if { !($files eq "f") } {
-		set sender_name1 " "
-		set sender_name ""
-		
-		
-		for {set i 0} {$i < [llength $file]} {incr i 1} {
-		    set f_id [lindex $file $i]
-		    
-		    db_1row sf {
-			select fs.title as file_name, fs.description as fdescription, fs.creation_user as sender
-			from chat_rooms_files_sent fs
-			where fs.send_file_id = :f_id
-		    }
-		    db_0or1row sf2 {
-			select p.first_names as sender_first_names, p.last_name as sender_last_name
-			from persons p
-			where p.person_id = :sender
-		    }
-		    append sender_name1 $sender_first_names " "
-		    append sender_name $sender_name1 $sender_last_name    			
-		    append f_name $file_name " | "
-		    append f_description $fdescription " | "
-		    append f_sender $sender_name " | "
-		    set sender_name1 ""
-		    set sender_name ""	
-		}
-		
-		if { [string index $f_name [expr [string length $f_name]-2]] eq "|" } {
-		    set inicio 0
-		    set final [expr [string length $f_name]-4]
-		    set f_name_end [string range $f_name $inicio $final]
-		    
-		    set final [expr [string length $f_description]-4]
-		    set f_description_end [string range $f_description $inicio $final]
-		    
-		    set final [expr [string length $f_sender]-4]
-		    set f_sender_end [string range $f_sender $inicio $final]
-		    set f_sender ""						
-		    set sender_name1 ""
-		    set sender_name ""	
-		}
-		
-	    }
-	    
-	    
-	    set trans ""
-	    set tname ""    		
-	    set tdescription ""
-	    set tdate ""
-	    set tname6 ""
-	    set tname5 ""
-	    set transcription ""
-	    
-	    db_foreach transcripts "select t.transcription_id as t_id from chat_transcription_rss t
-    				where t.rss_id = :rss_id" {
-				    
-				    
-				    append transcription $t_id " "					
-				    
-				    
-				} if_no_rows {
-				    
-				    set trans "f"						
-				}
-	    
-	    
-	    
-	    
-	    if { !($trans eq "f") } {
-		
-		
-		for {set i 0} {$i < [llength $transcription]} {incr i 1} {
-		    set t_id [lindex $transcription $i]
-		    
-		    db_1row sf {
-			select ct.pretty_name as tname1, ct.description as tdescription1,ct.date as tdate1
-			from chat_transcripts ct
-			where ct.transcript_id = :t_id								
-		    }	
-		    if { [string index $tname1 0] eq "#" } { 
-			
-			set inicio 6
-			set final [expr [string length $tname1]-13]
-			set tname2 [string range $tname1 $inicio $final]
-			set tname3 [string range $tname1 [expr $final+2] [string length $tname1]]
-			db_1row room_info2 { 
-			    select distinct lm.message as tname4
-			    from lang_messages lm
-			    where lm.message_key = :tname2
-			}
-			set tname6 ""
-			set tname5 ""
-			append tname5 $tname4 " "
-			append tname6 $tname5 $tname3
-			append tname $tname6 " | "
-		    } else {
-			append tname $tname1 " | "
-		    }
-		    set tname1 ""
-		    set transcriptname ""
-		    
-		    if { [string index $tdescription1 0] eq "#" } { 
-			
-			set inicio 6
-			set final [expr [string length $tdescription1]-2]
-			set tdescription2 [string range $tdescription1 $inicio $final]
-			
-			db_1row room_info11 { 
-			    select distinct lm.message as tdescription3
-			    from lang_messages lm
-			    where lm.message_key = :tdescription2
-			}
-			
-			append tdescription $tdescription3 " | "
-			
-		    } else {
-			if { $tdescription eq "" } {
-			    append tdescription "No description" " | "
-			} else {
-			    append tdescription $tdescription1 " | "
-			}
-		    }
-		    set tdescription1 ""
-		    
-		    
-		    
-		    
-		    append tdate $tdate1 " | "		
-		}
-	    }
-	    set transcriptname ""
-	    #le quito la barrita del final
-	    if { [string index $tname [expr [string length $tname]-2]] eq "|" } {
-		set inicio 0
-		set final [expr [string length $tname]-4]
-		set transcriptname [string range $tname $inicio $final]		
-	    }
-	    set transcriptdescription ""
-	    #le quito la barrita del final
-	    if { [string index $tdescription [expr [string length $tdescription]-2]] eq "|" } {
-		set inicio 0
-		set final [expr [string length $tdescription]-4]
-		set transcriptdescription [string range $tdescription $inicio $final]		
-	    }
-	    set transcriptdate ""
-	    #le quito la barrita del final
-	    if { [string index $tdate [expr [string length $tdate]-2]] eq "|" } {
-		set inicio 0
-		set final [expr [string length $tdate]-4]
-		set transcriptdate [string range $tdate $inicio $final]			
-	    }				
-	    
-	    db_1row room_info2 {
-    			select r.context_id as package_id
-    			from chat_rooms r
-    			where r.room_id = :room_id
-    		}
-		
-    		
-		set package_url [chat_util_get_url $package_id]
-		set entry_url [export_vars -base "[ad_url]${package_url}chat-transcripts?room_id=$room_id"]
-				
-		set dat ""
-		set dat "#chat.transcript_of_date# "
-		append dat [clock format [clock seconds] -format %d.%m.%Y]				
-				
-				
-		db_1row room_info2 { 
-			select cr.frequency1
-    			from chat_rooms cr
-    			where cr.room_id = :room_id    						
-    	  	}
-    	  	if { $frequency1 eq "dayly" } {
-			db_1row room_info2 { 
-				select count(ct.pretty_name) as trans
-    				from chat_transcripts ct
-    				where ct.pretty_name = :dat
-    				and ct.room_id = :room_id
-   	  		}      
-    	  		if { $trans > 0 } {
-    	  			db_1row room_info2 { 
-					select ct.transcript_id
-    					from chat_transcripts ct
-    					where ct.pretty_name = :dat
-    					and ct.room_id = :room_id
-    	  			}
-    	  			set entry_url [export_vars -base "[ad_url]${package_url}chat-transcript?room_id=$room_id&transcript_id=$transcript_id"]
-    	  		}
-		}			
-	    
-	    
-	    
-	    
-	    
-	    set rss_data_stored1 	[list 	\
-					     link $entry_url \
-					     title "$room_name $entry_timestamp" \
-					     description "<p><b>[_ chat.Description]:</b> $r_description </p> <p> <b>[_ chat.room_creator]:</b> $r_cre  </p> <p> <b>[_ chat.comm_name]:</b> $r_comm_name </p> <p> <b> [_ chat.reg_users]:</b> $r_user_registered </p> <b>[_ chat.k_words]:</b> $keysw </p> <p> <b> [_ chat.partitipants]:</b> $p_pants </p> <b>[_ chat.files_sent]:</b> <p> <BLOCKQUOTE> <b> [_ chat.name]: </b> $f_name_end </p> <p> <BLOCKQUOTE> <b> [_ chat.Description]: </b> $f_description_end </p> <p> <BLOCKQUOTE> <b> [_ chat.sender]: </b> $f_sender_end </p> <p> <b>[_ chat.transcripton]:</b> <p> <BLOCKQUOTE> <b>[_ chat.name]:</b> $transcriptname </p> <p> <BLOCKQUOTE> <b>[_ chat.Description]:</b> $transcriptdescription </p> <p> <BLOCKQUOTE> <b>[_ chat.date_rss2]:</b> $transcriptdate </p> </p>" \
-					     value $content_as_text \
-					     timestamp $entry_timestamp]		                               
-	    lappend rss_data $rss_data_stored1
-	    
-	    set f_name ""
-	    set f_name_end ""
-	    set f_description ""
-	    set f_description_end ""
-	    set f_sender ""
-	    set sender_name1 ""
-	    set sender_name ""
-	    set f_sender_end ""
-	    set tname ""
-	    set trans ""
-	    set tdescription ""
-	    set tdate ""
-	}	
-    
-    return $rss_data
-    
-    #	set rss [rss_creation $room_id $entry_url $content_as_text $entry_timestamp]		
-    
-    #	return $rss
-    
-}
-
-# ad_proc rss_creation { room_id entry_url content_as_text entry_timestamp } {
-# 	@author Pablo Mu�oz (pablomp@tid.es)
-# } {
-# }
-
-ad_proc rss_db { 
-	room_name
-	room_description
-	end_date
-	r_creator
-	comm_name
-	registered_users
-	entry_timestamp
-} {
-	db_exec_plsql rss_db {}
-	
-}
-
-ad_proc store_partitipants_rss { 
-	rss_id
-	partitipant	
-} {
-	db_exec_plsql store_partitipants_rss {}
-	
-} 
-
-ad_proc store_partitipants_transcript { 
-	transcript_id
-	partitipant	
-} {
-	db_exec_plsql store_partitipants_transcript {}
-	
-} 
-
-ad_proc store_sent_files_rss { 
-	rss_id
-	send_file_id	
-} {
-	db_exec_plsql store_sent_files_rss {}
-	
-}
-
-ad_proc store_sent_files_tanscript { 
-	transcript_id
-	f_id	
-} {
-	db_exec_plsql store_sent_files_tanscript {}
-	
-}  
-
-ad_proc store_keywords_rss { 
-	rss_id
-	key
-} {
-	db_exec_plsql store_keywords_rss {}
-	
-} 	 	
-  	
-ad_proc store_transcripts_rss { 
-	rss_id
-	transcription_id
-} {
-	db_exec_plsql store_transcripts_rss {}
-	
-}	
Index: openacs-4/packages/chat/tcl/chat-procs.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/tcl/Attic/chat-procs.xql,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/chat/tcl/chat-procs.xql	7 Jun 2007 09:14:24 -0000	1.3
+++ openacs-4/packages/chat/tcl/chat-procs.xql	19 Nov 2007 01:14:16 -0000	1.4
@@ -17,14 +17,12 @@
 	where transcript_id = :transcript_id
     </querytext>
   </fullquery>
-  
-  
 
   <fullquery name="chat_flush_rooms.get_rooms">
     <querytext>
             select room_id 
             from chat_rooms 
-            where archive_p = 't'
+            where archive_p = 't' and auto_flush_p = 't'
     </querytext>
   </fullquery>
 
@@ -33,41 +31,10 @@
       select msg, creation_user, to_char(creation_date, 'DD.MM.YYYY hh24:mi:ss') as creation_date
       from chat_msgs
       where room_id = :room_id
-      	  and creation_date >= :time 
           and msg is not null
       order by creation_date
     </querytext>
   </fullquery>
-  
-  <fullquery name="get_archives_messages">
-  	<querytext>
-    	select msg, creation_user, to_char(creation_date, 'DD.MM.YYYY hh24:mi:ss') as creation_date
-    	from chat_msgs
-    	where room_id = :room_id
-          and msg is not null
-    	order by creation_date
-  	</querytext>
-  </fullquery> 
-  
-  <fullquery name="chat_room_message_delete.delete_message">
-    <querytext>
-   	 begin
-            perform chat_room__delete_all_msgs(:room_id);
-            return 0;
-         end;
-    </querytext>
-  </fullquery> 
-  
-  <fullquery name="chat_room_flush.get_files_sent">
-  	<querytext>
-    	select fs.send_file_id as f_id
-      from chat_rooms_files_sent fs
-      where room_id = :room_id
-      	  and date >= :time 
-  	</querytext>
-  </fullquery>
-  
- 
-  
+
 </queryset>
 
Index: openacs-4/packages/chat/www/ajax-chat-script.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/Attic/ajax-chat-script.adp,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/chat/www/ajax-chat-script.adp	7 Jun 2007 09:14:25 -0000	1.3
+++ openacs-4/packages/chat/www/ajax-chat-script.adp	19 Nov 2007 01:14:16 -0000	1.4
@@ -4,10 +4,9 @@
 <property name="focus">ichat_form.msg</property>
 
 <p>
-
 <a href="room-exit?room_id=@room_id@" class="button" title="#chat.exit_msg#">#chat.Log_off#</a> 
 <a href="chat-transcript?room_id=@room_id@" class="button" title="#chat.transcription_msg#">#chat.Transcript#</a>
-
+<a href="room-enter?room_id=@room_id@&client=html" class="button" title="#chat.html_client_msg#">#chat.Hml#</a>
 </p>
 
 @chat_frame;noquote@
Index: openacs-4/packages/chat/www/ajax-chat-script.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/Attic/ajax-chat-script.tcl,v
diff -u -r1.5 -r1.6
--- openacs-4/packages/chat/www/ajax-chat-script.tcl	21 Jun 2007 11:06:29 -0000	1.5
+++ openacs-4/packages/chat/www/ajax-chat-script.tcl	19 Nov 2007 01:14:16 -0000	1.6
@@ -1,12 +1,12 @@
 ad_page_contract {
   a tiny chat client
 
-  @author Gustaf Neumann (gustaf.neumann@wu-wien.ac.at) and Pablo Mu�oz (pablomp@tid.es)
+  @author Gustaf Neumann (gustaf.neumann@wu-wien.ac.at)
   @creation-date Jan 31, 2006
   @cvs-id $Id$
 } -query {
-  msg:optional   
+  msg:optional
 }
 
-set chat_frame [ ::chat::Chat login -chat_id $room_id -folder_id $folder_id]
+set chat_frame [ ::chat::Chat login -chat_id $room_id]
 
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/chat-transcript-search-2.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/chat-transcript-search-2.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/chat-transcript-search-2.xql'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/chat-transcript-search.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Index: openacs-4/packages/chat/www/chat-transcripts.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/chat-transcripts.adp,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/chat/www/chat-transcripts.adp	7 Jun 2007 09:14:25 -0000	1.3
+++ openacs-4/packages/chat/www/chat-transcripts.adp	19 Nov 2007 01:14:16 -0000	1.4
@@ -1,9 +1,9 @@
 <master>
 <property name="context">#chat.Transcripts#</property>
-<property name="title">#chat.transcript_of_room# "@room_name;noquote@"</property>
+<property name="title">#chat.transcripts_of_room# "@room_name;noquote@"</property>
 
 <if @active@ eq "t">
-<p><table><tr><td><a class="button" href="chat-transcript?room_id=@room_id@">#chat.current_transcript#</a></td><td><a class="button" href="chat-transcript-search?room_id=@room_id@">#chat.search_transcription#</a></td></tr></table></p><br>
+<p><a class="button" href="chat-transcript?room_id=@room_id@">#chat.current_transcript#</a></p>
 </if>
 <else>
 <br>
Index: openacs-4/packages/chat/www/chat.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/chat.tcl,v
diff -u -r1.11 -r1.12
--- openacs-4/packages/chat/www/chat.tcl	24 Jun 2007 15:21:19 -0000	1.11
+++ openacs-4/packages/chat/www/chat.tcl	19 Nov 2007 01:14:16 -0000	1.12
@@ -3,7 +3,7 @@
 
     Decide which template to use HTML or AJAX.
 
-    @author David Dao (ddao@arsdigita.com) and Pablo Mu�oz(pablomp@tid.es)
+    @author David Dao (ddao@arsdigita.com)
     @creation-date November 22, 2000
     @cvs-id $Id$
 } {
@@ -29,99 +29,60 @@
     ad_return_complaint 1 "[_ chat.Room_not_found]"
 }
 
-set user_id [ad_conn user_id]
-set return_url [ad_return_url]
-db_1row room_info {
-	select room.comm_name
-       	from chat_rooms as room
-        where room.room_id = :room_id        
-} 
- 	       
-set folder_title "$comm_name's Public Files" 
-
-set folder_id [db_string count {select object_id
-        	from acs_objects as acs
-        	where acs.title = :folder_title} -default ""]  
-
-if {$folder_id eq ""} {
-    acs_user::get -user_id $user_id -array user      		
-    set name [expr {$user(screen_name) ne "" ? $user(screen_name) : $user(name)}]      		
-    set folder_id "$name's Shared Files"      		
-    
-    #$folder_id
-    db_1row room_info {
-    	    		select fs.folder_id as id
-        			from fs_folders as fs
-        			where fs.name = :folder_id
-    }  
-    set folder_id $id  
-}
-
-
-
 set context_bar $room_name
 auth::require_login
 set user_id [ad_conn user_id]
 set read_p [permission::permission_p -object_id $room_id -privilege "chat_read"]
 set write_p [permission::permission_p -object_id $room_id -privilege "chat_write"]
 set ban_p [permission::permission_p -object_id $room_id -privilege "chat_ban"]
-#set moderate_room_p [chat_room_moderate_p $room_id]
+set moderate_room_p [chat_room_moderate_p $room_id]
 
+if { $moderate_room_p == "t" } {
+    set moderator_p [permission::permission_p -object_id $room_id -privilege "chat_moderator"]
+} else {
+    # This is an unmoderate room, therefore everyone is a moderator.
+    set moderator_p "1"
+}
 
-#if { $moderate_room_p eq "t" } {
-#    set moderator_p [permission::permission_p -object_id $room_id -privilege "chat_moderator"]
-#} else {
-#    # This is an unmoderate room, therefore everyone is a moderator.
-#    set moderator_p "1"
-#}
-
 if { ($read_p == "0" && $write_p == "0") || ($ban_p == "1") } {
-	db_1row room_info {
-		select cr.private as private
-		from chat_rooms as cr
-		where cr.room_id = :room_id
-	}
-	if { $private eq "f"} {
-	
-    		#Display unauthorize privilege page.    
-    		ad_returnredirect unauthorized
-    		ad_script_abort
-    	}	
+    #Display unauthorize privilege page.
+    ad_returnredirect unauthorized
+    ad_script_abort
 }
 
 # Get chat screen name.
 set user_name [chat_user_name $user_id]
 
 # send message to the database 
-if { $message ne "" } {
+if { ![empty_string_p $message] } {
     chat_message_post $room_id $user_id $message $moderator_p
 }
 
-
 # Determine which template to use for html or ajax client
 switch $client {
     "html" {
         set template_use "html-chat"
         # forward to ajax if necessary
-        if { $message ne "" } {
+        if { ![empty_string_p $message] } {
             set session_id [ad_conn session_id]
             ::chat::Chat c1 -volatile -chat_id $room_id -session_id $session_id
             c1 add_msg $message
         }
     }
-    "ajax" {        
-        set template_use "ajax-chat-script"        
+    "ajax" {
+        set template_use "ajax-chat-script"
     }
-    "java" {    
-        set template_use "java-chat"
+	"java" {
+		set template_use "java-chat"
 
-        # Get config paramater for applet.
-        set width [ad_parameter AppletWidth "" 500]
-        set height [ad_parameter AppletHeight "" 400]   
+		# Get config paramater for applet.
+		set width [ad_parameter AppletWidth "" 500]
+		set height [ad_parameter AppletHeight "" 400]   
     
-        set host [ad_parameter ServerHost "" [ns_config "ns/server/[ns_info server]/module/nssock" Hostname]]
-        set port [ad_parameter ServerPort "" 8200]
-     }
+		set host [ad_parameter ServerHost "" [ns_config "ns/server/[ns_info server]/module/nssock" Hostname]]
+		set port [ad_parameter ServerPort "" 8200]
+	}
 }
+
 ad_return_template $template_use
 
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/html-chat-script-form.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/html-chat-script-form.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/html-chat-script-msg.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/html-chat-script-msg.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/html-chat-script.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/html-chat-script.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Index: openacs-4/packages/chat/www/html-chat.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/Attic/html-chat.adp,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/chat/www/html-chat.adp	26 Oct 2006 11:11:20 -0000	1.7
+++ openacs-4/packages/chat/www/html-chat.adp	19 Nov 2007 01:14:16 -0000	1.8
@@ -35,5 +35,6 @@
 <input type=hidden name="room_id" value="@room_id@">
 <input type=hidden name="client" value="html">
 <input type=submit value="#chat.Send_Refresh#">
+<input type=submit value="#chat.Refresh#">
 </form>
 
Index: openacs-4/packages/chat/www/html-chat.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/Attic/html-chat.tcl,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/chat/www/html-chat.tcl	24 Jun 2006 14:23:42 -0000	1.2
+++ openacs-4/packages/chat/www/html-chat.tcl	19 Nov 2007 01:14:16 -0000	1.3
@@ -17,7 +17,7 @@
 set richclient(msg) "[_ chat.${richclient(short)}_client_msg]"
 set richclient(title) "[_ chat.[string totitle $richclient(short)]]"
 
-if { ($read_p == "0" && $write_p == "0") || ($ban_p == "1") || ($active eq "f") } {
+if { ($read_p == "0" && $write_p == "0") || ($ban_p == "1") || ($active == "f") } {
     #Display unauthorize privilege page.
     ad_returnredirect unauthorized
     ad_script_abort
Index: openacs-4/packages/chat/www/index-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/index-postgresql.xql,v
diff -u -r1.4 -r1.5
--- openacs-4/packages/chat/www/index-postgresql.xql	24 Jun 2007 15:21:19 -0000	1.4
+++ openacs-4/packages/chat/www/index-postgresql.xql	19 Nov 2007 01:14:16 -0000	1.5
@@ -11,9 +11,6 @@
            rm.moderated_p, 
            rm.active_p, 
            rm.archive_p,
-           rm.open as open,
-           rm.private as private,
-           rm.comm_name as community,
            acs_permission__permission_p(room_id, :user_id, 'chat_room_admin') as admin_p,
            acs_permission__permission_p(room_id, :user_id, 'chat_read') as user_p,           
            (select site_node__url(site_nodes.node_id)
@@ -27,28 +24,5 @@
   </querytext>
 </fullquery>
 
-<fullquery name="rooms_list2">     
-  <querytext>
-    select distinct rm.room_id as room_id, 
-           rm.pretty_name, 
-           rm.description, 
-           rm.moderated_p, 
-           rm.active_p, 
-           rm.archive_p,
-           rm.private as private,
-           rm.open as open,
-           rm.comm_name as community,
-           acs_permission__permission_p(room_id, :user_id, 'chat_room_admin') as admin_p,
-           acs_permission__permission_p(room_id, :user_id, 'chat_read') as user_p,           
-           (select site_node__url(site_nodes.node_id)
-                   from site_nodes
-                   where site_nodes.object_id = obj.context_id) as base_url
-    from chat_rooms rm, 
-         acs_objects obj
-    where rm.room_id = obj.object_id     
-    order by rm.pretty_name
-  </querytext>
-</fullquery>
-
 </queryset>
 
Index: openacs-4/packages/chat/www/index.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/index.adp,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/chat/www/index.adp	7 Jun 2007 09:14:25 -0000	1.8
+++ openacs-4/packages/chat/www/index.adp	19 Nov 2007 01:14:16 -0000	1.9
@@ -17,14 +17,9 @@
 
 <if @rooms:rowcount@ eq 0>
 <p><i>#chat.There_are_no_rooms_available#</i></p>
-<if @room_create_p@ eq 1><p><a class="button" href="room-new">#chat.Create_a_new_room#</a></td></p></if>
+<if @room_create_p@ eq 1><p><a class="button" href="room-edit">#chat.Create_a_new_room#</a></p></if>
 </if>
 <else>
-<if @list@ eq 1> 
 <listtemplate name="rooms"></listtemplate>
-</if>
-<else>
-<listtemplate name="rooms2"></listtemplate>
 </else>
-</else>
 
Index: openacs-4/packages/chat/www/index.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/index.tcl,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/chat/www/index.tcl	24 Jun 2007 15:21:19 -0000	1.7
+++ openacs-4/packages/chat/www/index.tcl	19 Nov 2007 01:14:16 -0000	1.8
@@ -20,96 +20,21 @@
 set room_create_p [permission::permission_p -object_id $package_id -privilege chat_room_create]
 set default_client [parameter::get -parameter "DefaultClient" -default "ajax"]
 set warning ""
-set path [ad_return_url]
 
 if { $default_client eq "ajax" && ![apm_package_installed_p xotcl-core] } {
     set warning "[_ chat.xotcl_missing]"
 }
 
 if { $room_create_p } {
-    lappend actions "#chat.Create_a_new_room#" room-new "#chat.Create_a_new_room#"    
+    lappend actions "#chat.Create_a_new_room#" room-edit "#chat.Create_a_new_room#"
 }
-lappend actions "#chat.Search_a_room#" room-search?package_id=[ad_conn package_id] "#chat.Search_a_room#"
 
-if {[info procs dotlrn_community::get_community_id] eq ""} {
-    set community_id ""
-} else {
-    set community_id [dotlrn_community::get_community_id]
-}
-
-if { $community_id eq "" } {	
-	set list 0
-} else {
-	set list 1	
-}
-
-db_multirow -extend { active_users last_activity rss_exists rss_feed_url2 rss_service admin_professor} rooms rooms_list {} {
+db_multirow -extend { active_users last_activity } rooms rooms_list {} {
   set room [::chat::Chat create new -volatile -chat_id $room_id]
   set active_users [$room nr_active_users]
   set last_activity [$room last_activity]
-  set rss_exists [rss_support::subscription_exists -summary_context_id $room_id -impl_name chat_rss]
-  set rss_feed_url2 [chat_util_get_url $package_id]/rss/rss.tcl?room_id=$room_id
-  
-  db_1row room_info {
-		select count(cru.rss_service) as counter
-		from chat_registered_users cru
-		where cru.user_id = :user_id
-		and cru.room_id = :room_id
-		and cru.rss_service = 'true'
- } 
- if { $counter > 0} {		
-	set rss_service 1
- } else {
-	set rss_service 0
- }
- db_1row room_info2 {
-		select count(cr.creator) as counter2
-		from chat_rooms cr
-		where cr.room_id = :room_id
-		and cr.creator = :user_id		
- }
- if { $counter2 > 0} { 	
- 		set admin_professor "t"
- } else {
- 	 set admin_professor "f"
- } 
 }
 
-
-db_multirow -extend { active_users last_activity rss_exists rss_feed_url2 rss_service admin_professor} rooms2 rooms_list2 {} {
-  set room [::chat::Chat create new -volatile -chat_id $room_id]
-  set active_users [$room nr_active_users]
-  set last_activity [$room last_activity]
-  set rss_exists [rss_support::subscription_exists -summary_context_id $room_id -impl_name chat_rss]
-  set rss_feed_url2 [chat_util_get_url $package_id]/rss/rss.tcl?room_id=$room_id
-  
-  db_1row room_info {
-		select count(cru.rss_service) as counter
-		from chat_registered_users cru
-		where cru.user_id = :user_id
-		and cru.room_id = :room_id
-		and cru.rss_service = 'true'
- } 
- if { $counter > 0} {		
-	set rss_service 1
- } else {
-	set rss_service 0
- }
- db_1row room_info2 {
-		select count(cr.creator) as counter2
-		from chat_rooms cr
-		where cr.room_id = :room_id
-		and cr.creator = :user_id		
- }
- if { $counter2 > 0} { 	
- 		set admin_professor "t"
- } else {
- 	 set admin_professor "f"
- } 
-}
-
-
-
 list::create \
     -name "rooms" \
     -multirow "rooms" \
@@ -118,78 +43,35 @@
     -actions $actions \
     -row_pretty_plural [_ chat.rooms] \
     -elements {
-        open {
-            label "#chat.open_room#"
+        active {
+            label "#chat.Active#"
             html { align "center" }
             display_template {
-            	
-                <if @rooms.open@ eq t>
+                <if @rooms.active_p@ eq t>
                 <div style="padding-top:5px;">
-                <img src="/resources/chat/active.png" title="#chat.open_room#">
+                <img src="/resources/chat/active.png">
                 </div>
                 </if>
                 <else>
                 <div style="padding-top:5px;">                
-                <img src="/resources/chat/inactive.png" title="#chat.close_room#">
+                <img src="/resources/chat/inactive.png">
                 </div>
                 </else>
             }
-        }        
-        private {
-            label "#chat.private_room#"
-            html { align "center" }
-            display_template {
-            	
-                <if @rooms.private@ eq f>
-                <div style="padding-top:5px;">
-                <img src="/resources/chat/active.png" title="#chat.not_private_room#">
-                </div>
-                </if>
-                <else>
-                <div style="padding-top:5px;">                
-                <img src="/resources/chat/inactive.png" title="#chat.private_room#">
-                </div>
-                </else>
-            }
         }
         pretty_name {
             label "#chat.Room_name#"
-            html { align "center" }
+            html { width 400px }
             display_template {
                 <if @rooms.active_p@ eq t>
-                <a href="room-enter?room_id=@rooms.room_id@&client=$default_client">@rooms.pretty_name@</a>
+                <a href="room-enter?room_id=@rooms.room_id@&client=$default_client">@rooms.pretty_name@</a>&nbsp;\[<a href="room-enter?room_id=@rooms.room_id@&client=html">#chat.HTML_chat#</a>\]
                 </if>
                 <else>
                 @rooms.pretty_name@
                 </else>
-                <div style="float:center">@rooms.description@</div>                
+                <div style="float:left">@rooms.description@</div>                
             }
         }
-        community {
-            label "#chat.community_class#"
-            html { align "center"}
-            display_template {
-            	<if @rooms.user_p@ eq t>
-            	@rooms.community@
-            	</if>
-            }
-        }
-        rss {
-        	label "#chat.rss#"
-            	html { align "center" }
-            	display_template {
-            		
-                	<if @rooms.rss_exists@ eq 1>
-                	<if @rooms.rss_service@ eq 1>
-	  		<br/><a href="@rooms.rss_feed_url2@">#rss-support.Syndication_Feed#&nbsp;<img src="/resources/xml.gif" alt="Subscribe via RSS" width="26" height="10" border=0 /></a><hr/><br/>
-        		</if>
-        		<else> #chat.no_rss#
-        		</else>
-        		</if>
-        		<else> #chat.no_rss#
-        		</else>
-        	}
-        }       
         active_users {
             label "#chat.active_users#"
             html { style "text-align:center;" }
@@ -201,133 +83,12 @@
         actions {
             label "#chat.actions#"
             display_template {
-            <if @rooms.admin_p@ eq f>
-            		<if @rooms.admin_professor@ eq "t">            			                             	
-                	<a href="@rooms.base_url@room?room_id=@rooms.room_id@" class=button>#chat.room_admin#</a>
-                	<a href="chat-transcripts?room_id=@rooms.room_id@" class=button>#chat.Transcripts#</a>
-            		</if>
-            		<else>
-            			<a href="@rooms.base_url@options?action=$path&room_id=@rooms.room_id@" class=button>\n#chat.room_change_options#</a>
-        		</br>
-        			<a href="@rooms.base_url@chat-transcripts?room_id=@rooms.room_id@" class=button>\n#chat.Transcripts#</a>
-        		</else>
-            </if>
-            <else>
-            	<a href="@rooms.base_url@room?room_id=@rooms.room_id@" class=button>#chat.room_admin#</a>  
-                <a href="chat-transcripts?room_id=@rooms.room_id@" class=button>#chat.Transcripts#</a>                            	
-            </else>
-            }
-        }
-    }
-
-list::create \
-    -name "rooms2" \
-    -multirow "rooms2" \
-    -key room_id \
-    -pass_properties {room_create_p} \
-    -actions $actions \
-    -row_pretty_plural [_ chat.rooms] \
-    -elements {
-        open {
-            label "#chat.open_room#"
-            html { align "center" }
-            display_template {
-            	
-                <if @rooms2.open@ eq t>
-                <div style="padding-top:5px;">
-                <img src="/resources/chat/active.png" title="#chat.open_room#">
-                </div>
+                <a href="chat-transcripts?room_id=@rooms.room_id@" class=button>#chat.Transcripts#</a>
+                <if @room_create_p@ eq 1>
+                <a href="@rooms.base_url@room?room_id=@rooms.room_id@" class=button>#chat.room_admin#</a>
                 </if>
-                <else>
-                <div style="padding-top:5px;">                
-                <img src="/resources/chat/inactive.png" title="#chat.close_room#">
-                </div>
-                </else>
             }
-        }        
-        private {
-            label "#chat.private_room#"
-            html { align "center" }
-            display_template {
-            	
-                <if @rooms2.private@ eq f>
-                <div style="padding-top:5px;">
-                <img src="/resources/chat/active.png" title="#chat.not_private_room#">
-                </div>
-                </if>
-                <else>
-                <div style="padding-top:5px;">                
-                <img src="/resources/chat/inactive.png" title="#chat.private_room#">
-                </div>
-                </else>
-            }
         }
-        pretty_name {
-            label "#chat.Room_name#"
-            html { align "center" }
-            display_template {
-                <if @rooms2.active_p@ eq t>
-                	<a href="@rooms2.base_url@chat?room_id=@rooms2.room_id@&client=ajax">@rooms2.pretty_name@</a>
-                </if>       	
-        	<if @rooms2.active_p@ ne t>
-          	(NO #chat.Active#)
-        	</if>
-                <div style="float:center">@rooms2.description@</div>                
-            }
-        }
-        community {
-            label "#chat.community_class#"
-            html { align "center"}
-            display_template {
-            	<if @rooms2.user_p@ eq t>
-            	@rooms2.community@
-            	</if>
-            }
-        }
-        rss {
-        	label "#chat.rss#"
-            	html { align "center" }
-            	display_template {
-            		
-                	<if @rooms2.rss_exists@ eq 1>
-                	<if @rooms2.rss_service@ eq 1>
-	  		<br/><a href="@rooms2.rss_feed_url2@">#rss-support.Syndication_Feed#&nbsp;<img src="/resources/xml.gif" alt="Subscribe via RSS" width="26" height="10" border=0 /></a><hr/><br/>
-        		</if>
-        		<else> #chat.no_rss#
-        		</else>
-        		</if>
-        		<else> #chat.no_rss#
-        		</else>
-        	}
-        }       
-        active_users {
-            label "#chat.active_users#"
-            html { style "text-align:center;" }
-        }
-        last_activity {
-            label "#chat.last_activity#"
-            html { style "text-align:center;" }
-        }
-        actions {
-            label "#chat.actions#"
-            display_template {
-            <if @rooms2.admin_p@ eq f>
-            		<if @rooms2.admin_professor@ eq "t">            			                             	
-                	<a href="@rooms2.base_url@room?room_id=@rooms2.room_id@" class=button>#chat.room_admin#</a>
-                	<a href="chat-transcripts?room_id=@rooms2.room_id@" class=button>#chat.Transcripts#</a>
-            		</if>
-            		<else>
-            			<a href="@rooms2.base_url@options?action=$path&room_id=@rooms2.room_id@" class=button>\n#chat.room_change_options#</a>
-        		</br>
-        			<a href="@rooms2.base_url@chat-transcripts?room_id=@rooms2.room_id@" class=button>\n#chat.Transcripts#</a>
-        		</else>
-            </if>
-            <else>
-            	<a href="@rooms2.base_url@room?room_id=@rooms2.room_id@" class=button>#chat.room_admin#</a>  
-                <a href="chat-transcripts?room_id=@rooms2.room_id@" class=button>#chat.Transcripts#</a>                            	
-            </else>
-            }
-        }
     }
 
 ad_return_template
Index: openacs-4/packages/chat/www/java-chat.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/Attic/java-chat.adp,v
diff -u -r1.5 -r1.6
--- openacs-4/packages/chat/www/java-chat.adp	26 Oct 2006 11:11:20 -0000	1.5
+++ openacs-4/packages/chat/www/java-chat.adp	19 Nov 2007 01:14:16 -0000	1.6
@@ -4,8 +4,8 @@
 
 <center>
    <applet code=adChatApplet.class archive=chat.jar width=@width@ height=@height@>
-   <param name="user_id" value="@user_id@">   	   
-   <param name="user_name" value="@user_name@">    
+   <param name="user_id" value="@user_id@">
+   <param name="user_name" value="@user_name@">
    <param name="room_id" value="@room_id@">
    <param name="host" value="@host@">
    <param name="port" value="@port@">
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/logoff.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/logoff.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/logoff2.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/logon.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.3 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/logon.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Index: openacs-4/packages/chat/www/message-delete-2.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/message-delete-2.tcl,v
diff -u -r1.6 -r1.7
--- openacs-4/packages/chat/www/message-delete-2.tcl	7 Jun 2007 09:14:25 -0000	1.6
+++ openacs-4/packages/chat/www/message-delete-2.tcl	19 Nov 2007 01:14:16 -0000	1.7
@@ -2,34 +2,19 @@
 ad_page_contract {
     Delete messages in the room.
 
-    @author David Dao (ddao@arsdigita.com) and Pablo Mu�oz(pablomp@tid.es)
-    
+    @author David Dao (ddao@arsdigita.com)
+    @creation-date January 18, 2001
+    @cvs-id $Id$
 } {
     room_id:integer,notnull
 }
-set user_id [ad_conn user_id]
-#A professor who creates a rooom will be able to admin it.
-db_1row room_info2 {
-		select count(cr.creator) as counter2
-		from chat_rooms cr
-		where cr.room_id = :room_id
-		and cr.creator = :user_id		
- }
- if { $counter2 > 0} { 	
- 		set admin_professor "t"
- } else {
- 	 set admin_professor "f"
- } 
-if { $admin_professor eq "t"} {
-} else {
-	permission::require_permission -object_id $room_id -privilege chat_room_delete
-}
 
+permission::require_permission -object_id $room_id -privilege chat_room_delete
 
 if { [catch {chat_room_message_delete $room_id} errmsg] } {
     ad_return_complaint 1 "[_ chat.Delete_messages_failed]: $errmsg"
 }
 
 ::chat::Chat flush_messages -chat_id $room_id
 
-ad_returnredirect .
+ad_returnredirect .
\ No newline at end of file
Index: openacs-4/packages/chat/www/message-delete.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/message-delete.adp,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/chat/www/message-delete.adp	21 Jun 2007 11:06:29 -0000	1.7
+++ openacs-4/packages/chat/www/message-delete.adp	19 Nov 2007 01:14:16 -0000	1.8
@@ -9,13 +9,8 @@
 <property name="context">@context_bar;noquote@</property>
 <property name="title">#chat.Confirm_message_delete#</property>
 
-<if @message_count@ gt 0>
 <form method="post" action="message-delete-2">
 <input type=hidden name=room_id value=@room_id@>
 #chat.Are_you_sure_you_want_to_delete# @message_count@ #chat.messages_in# @pretty_name@?
 <p><input type=submit value=#acs-kernel.common_Yes#>
 </form>
-</if>
-<else>
-#chat.There#
-</else>
\ No newline at end of file
Index: openacs-4/packages/chat/www/message-delete.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/message-delete.tcl,v
diff -u -r1.4 -r1.5
--- openacs-4/packages/chat/www/message-delete.tcl	7 Jun 2007 09:14:25 -0000	1.4
+++ openacs-4/packages/chat/www/message-delete.tcl	19 Nov 2007 01:14:16 -0000	1.5
@@ -2,8 +2,9 @@
 ad_page_contract {
     Display delete message confirmation.
 
-    @author David Dao (ddao@arsdigita.com) and Pablo Mu�oz (pablomp@tid.es)
-   
+    @author David Dao (ddao@arsdigita.com)
+    @creation-date January 18, 2001
+    @cvs-id $Id$
 } {
     room_id:notnull,integer
 } -properties {
@@ -13,23 +14,7 @@
     context_bar:onevalue
 }
 
-set user_id [ad_conn user_id]
-#A professor who creates a rooom will be able to admin it.
-db_1row room_info2 {
-		select count(cr.creator) as counter2
-		from chat_rooms cr
-		where cr.room_id = :room_id
-		and cr.creator = :user_id		
- }
- if { $counter2 > 0} { 	
- 		set admin_professor "t"
- } else {
- 	 set admin_professor "f"
- } 
-if { $admin_professor eq "t"} {
-} else {
-	ad_require_permission $room_id chat_room_delete
-}
+ad_require_permission $room_id chat_room_delete
 
 set context_bar [list [list "room?room_id=$room_id" "[_ chat.Room_Information]"] "[_ chat.Delete_messages]"]
 
Fisheye: Tag 1.3 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/options.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.3 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/options.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/options2.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.3 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/options2.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/private-room.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/private-room.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Index: openacs-4/packages/chat/www/room-delete-2.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/room-delete-2.tcl,v
diff -u -r1.4 -r1.5
--- openacs-4/packages/chat/www/room-delete-2.tcl	7 Jun 2007 09:14:25 -0000	1.4
+++ openacs-4/packages/chat/www/room-delete-2.tcl	19 Nov 2007 01:14:16 -0000	1.5
@@ -2,30 +2,14 @@
 ad_page_contract {
     Delete the chat room.
 
-    @author David Dao (ddao@arsdigita.com) and Pablo Mu�oz(pablomp@tid.es)
+    @author David Dao (ddao@arsdigita.com)
     @creation-date November 16, 2000
     @cvs-id $Id$
 } {
     room_id:integer,notnull
 }
-set user_id [ad_conn user_id]
 
-#A professor who creates a rooom will be able to admin it.
-db_1row room_info2 {
-		select count(cr.creator) as counter2
-		from chat_rooms cr
-		where cr.room_id = :room_id
-		and cr.creator = :user_id		
- }
- if { $counter2 > 0} { 	
- 		set admin_professor "t"
- } else {
- 	 set admin_professor "f"
- } 
-if { $admin_professor eq "t"} {
-} else {
 ad_require_permission $room_id chat_room_delete
-}
 
 if { [catch {chat_room_delete $room_id} errmsg] } {
     ad_return_complaint 1 "[_ chat.Delete_room_failed]: $errmsg"
Index: openacs-4/packages/chat/www/room-delete.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/room-delete.tcl,v
diff -u -r1.4 -r1.5
--- openacs-4/packages/chat/www/room-delete.tcl	7 Jun 2007 09:14:25 -0000	1.4
+++ openacs-4/packages/chat/www/room-delete.tcl	19 Nov 2007 01:14:16 -0000	1.5
@@ -2,8 +2,9 @@
 ad_page_contract {
     Display delete confirmation.
 
-    @author David Dao (ddao@arsdigita.com) and Pablo Mu�oz(pablomp@tid.es)
-    
+    @author David Dao (ddao@arsdigita.com)
+    @creation-date November 15, 2000
+    @cvs-id $Id$
 } {
     room_id:notnull,integer
 } -properties {
@@ -12,25 +13,8 @@
     context_bar:onevalue
 }
 
-set user_id [ad_conn user_id]
+ad_require_permission $room_id chat_room_delete
 
-#A professor who creates a rooom will be able to admin it.
-db_1row room_info2 {
-		select count(cr.creator) as counter2
-		from chat_rooms cr
-		where cr.room_id = :room_id
-		and cr.creator = :user_id		
- }
- if { $counter2 > 0} { 	
- 		set admin_professor "t"
- } else {
- 	 set admin_professor "f"
- } 
-if { $admin_professor eq "t"} {
-} else {
-	ad_require_permission $room_id chat_room_delete
-}
-
 set context_bar [list [list "room?room_id=$room_id" "[_ chat.Room_Information]"] "[_ chat.Delete_room]"]
 
 set pretty_name [chat_room_name $room_id]
Fisheye: Tag 1.8 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/room-edit-2.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/room-edit.postgresql'.
Fisheye: No comparison available.  Pass `N' to diff?
Index: openacs-4/packages/chat/www/room-edit.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/room-edit.tcl,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/chat/www/room-edit.tcl	6 Jul 2007 12:13:23 -0000	1.8
+++ openacs-4/packages/chat/www/room-edit.tcl	19 Nov 2007 01:14:16 -0000	1.9
@@ -2,223 +2,96 @@
 ad_page_contract {
     Display a form to edit room information.
 
-    @author Peter Alberer (peter@alberer.com) and Pablo Mu�oz(pablomp@tid.es)    
+    @author Peter Alberer (peter@alberer.com)
+    @creation-date March 26, 2006
 } {
     room_id:integer,optional
 } 
 
-set user_id [ad_conn user_id]
+permission::require_permission -object_id [ad_conn package_id] -privilege chat_room_edit
 
-#A professor who creates a rooom will be able to admin it.
-db_1row room_info2 {
-		select count(cr.creator) as counter2
-		from chat_rooms cr
-		where cr.room_id = :room_id
-		and cr.creator = :user_id		
- }
- if { $counter2 > 0} { 	
- 		set admin_professor "t"
- } else {
- 	 set admin_professor "f"
- } 
-if { $admin_professor eq "t"} {
-	
-} else {
-	permission::require_permission -object_id [ad_conn package_id] -privilege chat_room_edit
-}
-
 if { ![info exists room_id] } {
     set title "[_ chat.Create_a_new_room]"
 } else {
     set title "[_ chat.Edit_room] \"[chat_room_name $room_id]\""
 }
 
-set user_id [ad_conn user_id]
-
-
-db_1row room_info {
-    select rm.room_id,
-    rm.pretty_name as pretty_name,
-    rm.frequency1,
-    rm.description as description,
-    rm.moderated_p as moderated,
-    rm.maximal_participants as max_p,
-    rm.active_p as active_p,
-    rm.archive_p as archive_p,
-    to_char(rm.end_date,'YYYY-MM-DD HH24:MI:SS') as end_date_ansi, 
-    (select ru.alias
-     from chat_registered_users ru
-     where rm.room_id = ru.room_id
-     and ru.user_id = :user_id) as alias,
-    (select ru.RSS_service
-     from chat_registered_users ru
-     where rm.room_id = ru.room_id
-     and ru.user_id = :user_id) as rss_service,
-    (select ru.mail_service
-     from chat_registered_users ru
-     where rm.room_id = ru.room_id
-     and ru.user_id = :user_id) as mail_service,
-    (select ru.frequency_mail
-     from chat_registered_users ru
-     where rm.room_id = ru.room_id
-     and ru.user_id = :user_id) as frequency2
-    from chat_rooms rm
-    where rm.room_id = :room_id
-}
-
-set key_words ""
-db_foreach room_info "select ck.keyword as key from chat_keywords ck where ck.room_id = :room_id" {
-    append key_words $key " "	
-}
-	
-set rss_active $rss_service
-set frequency1_rss $frequency1
-set end_date [template::util::date::from_ansi $end_date_ansi "YYYY-MM-DD HH24:MI:SS"]
-set frequency_active $frequency2
-
 ad_form -name "edit-room" -edit_buttons [list [list [_ chat.Update_room] next]] -has_edit 1 -form {
-    {room_id:key} 
+    {room_id:key}    
+    {moderated_p:boolean(hidden)
+        {value "f"}
+    }    
     {pretty_name:text(text)
         {label "#chat.Room_name#" }
-        {title "Name of the room"}
     }
-    {alias:text(text)
-        {label "#chat.alias#" }
-        {help_text "[_ chat.alias_in_this_room]"}
-    }
     {description:text(textarea),optional
         {label "#chat.Description#" }
         {html {rows 6 cols 65}}
     }
-    {key_words:text(textarea),optional
-        {label "#chat.keywords#" }
-        {html {rows 3 cols 25}}
-        {help_text "[_ chat.main_words]"}
-    }
-    {max_p:text(text)
-        {label "#chat.maximal_partitipants#" }
-        {help_text "[_ chat.maximal_number_partitipants]"}
-    }    
-    {end_date:date(date)
-        {label "#chat.end_date#" }
-        {help_text "[_ chat.end_date_description]"}
-    }    
-    {rss_service:boolean(radio)
-        {label "#chat.rss_service#" }
-        {options {{"#acs-kernel.common_Yes#" t} {"#acs-kernel.common_No#" f}}}
-        {help_text "[_ chat.rss_syndication]"}
-    }
-    {frequency1:text(select),optional
-        {label "#chat.frequency_rss#" }
-        {options {{"dayly" dayly} {"weekly" weekly} {"monthly" monthly} }}
-        {help_text "[_ chat.frequency_rss_description]"} 
-    }
-    {mail_service:boolean(radio)
-        {label "#chat.mail_service#" }
-        {options {{"#acs-kernel.common_Yes#" t} {"#acs-kernel.common_No#" f}}}
-        {help_text "[_ chat.receive_mails]"}
-    }
-    {frequency2:text(select),optional	
-        {label "#chat.frequency_mail#" }
-        {options {{"daily" dayly} {"weekly" weekly}  {"monthly" monthly} }}        
-        {help_text "[_ chat.frequency_mail_description]"} 
-    }
- #   {moderated:boolean(radio)
- #       {label "#chat.Moderated#" }
- #       {options {{"#acs-kernel.common_Yes#" t} {"#acs-kernel.common_No#" f}}}
- #   }
     {active_p:boolean(radio)
         {label "#chat.Active#" }
-        {options {{"#acs-kernel.common_Yes#" t} {"#acs-kernel.common_No#" f}}}
+        {options {{"#acs-kernel.common_Yes#" t} {"#acs-kernel.common_no#" f}}}
+        {value "t"}
     }
     {archive_p:boolean(radio)
         {label "#chat.Archive#" }
-        {options {{"#acs-kernel.common_Yes#" t} {"#acs-kernel.common_No#" f}}}
+        {options {{"#acs-kernel.common_Yes#" t} {"#acs-kernel.common_no#" f}}}
+        {value "t"}
     }    
-#    {auto_flush_p:boolean(radio)
- #       {label "#chat.AutoFlush#" }
-  #      {options {{"#acs-kernel.common_Yes#" t} {"#acs-kernel.common_No#" f}}}
-   #     {help_text "[_ chat.AutoFlushHelp]"}
- #   }  
- #   {auto_transcript_p:boolean(radio)
- #       {label "#chat.AutoTranscript#" }
-  #      {options {{"#acs-kernel.common_Yes#" t} {"#acs-kernel.common_No#" f}}}
-   #     {help_text "[_ chat.AutoTranscriptHelp]"}
-  #  }
-} -edit_request {
-    
-} -edit_data {
-    
-}  -after_submit {	
-	#$rss_active
-	set date [lrange $end_date 0 2]
-	set community_id [dotlrn_community::get_community_id]
-	if { $community_id eq "" } {
-		set comm_id 0
-	}
-	set package_id [ad_conn package_id]
-								
-	if {[catch {set room_edit [chat_room_edit \
-	                      -alias $alias \
-                              -key_words $key_words \
-                              -maxP $max_p \
-                              -end_date $date \
-                              -Rss_service $rss_service \
-                              -frequency1 $frequency1 \
-			      -frequency_mail $frequency2 \
-                              -Mail_service $mail_service \
-                              -moderated_p $moderated \
+    {auto_flush_p:boolean(radio)
+        {label "#chat.AutoFlush#" }
+        {options {{"#acs-kernel.common_Yes#" t} {"#acs-kernel.common_no#" f}}}
+        {value "t"}
+        {help_text "[_ chat.AutoFlushHelp]"}
+    }  
+    {auto_transcript_p:boolean(radio)
+        {label "#chat.AutoTranscript#" }
+        {options {{"#acs-kernel.common_Yes#" t} {"#acs-kernel.common_no#" f}}}
+        {value "f"}
+        {help_text "[_ chat.AutoTranscriptHelp]"}
+    }      
+} -new_data {
+    if {[catch {set room_id [chat_room_new -moderated_p $moderated_p \
+                              -description $description \
                               -active_p $active_p \
                               -archive_p $archive_p \
-                              -user_id [ad_conn user_id] \
-                              -room_id $room_id \
-                              $description $pretty_name]} errmsg]} {
-         
+                              -auto_flush_p $auto_flush_p \
+                              -auto_transcript_p $auto_transcript_p \
+                              -context_id [ad_conn package_id] \
+                              -creation_user [ad_conn user_id] \
+                              -creation_ip [ad_conn peeraddr] $pretty_name]} errmsg]} {
         ad_return_complaint 1 "[_ chat.Create_new_room_failed]: $errmsg"
         break
     }
-    
-	if { $mail_service eq "t" && ![string eq $frequency_active $frequency2]} {  
-
-    		if { $frequency2 eq "dayly" } {
-   			ad_schedule_proc -thread t -schedule_proc ns_schedule_daily [list 01 00] chat_send_mails $room_id $community_id $user_id $package_id "daily"
-   		}
-   		if { $frequency2 eq "weekly" } {
-		    ad_schedule_proc -thread t -schedule_proc ns_schedule_weekly [list 0 01 00] chat_send_mails $room_id $community_id $user_id $package_id "weekly"
-   		}
-   		if { $frequency2 eq "monthly" } {
-   			set week 1
-   			ad_schedule_proc -thread t -schedule_proc ns_schedule_weekly [list 0 01 00] chat_send_mails_monthly $room_id $community_id $user_id $package_id $week "monthly"
-   		}
-   }		
-      
-    if { $rss_service eq "t" } {    		
-		if { $rss_active eq "f"} {			
-                       		#ad_returnredirect "rss?room_id=$room_id"                	                	
-      
-			if { $frequency1_rss eq $frequency1} {
-			} else {
-				 #if the rss exists, only create a thread with the schedule
-				 if { [rss_support::subscription_exists \
-           			 	-summary_context_id $room_id \
-            				-impl_name chat_rss] } {
-            
-            
-           			 	if { $frequency1 eq "dayly" } {
-						ad_schedule_proc -thread t -schedule_proc ns_schedule_daily [list 00 10] [chat_update_rss $room_id]
-					 }
-   					 if { $frequency1 eq "weekly" } {
-   						ad_schedule_proc -thread t -schedule_proc ns_schedule_weekly [list 0 00 10] [chat_update_rss $room_id]   						
-   					 }
-   					 if { $frequency1 eq "monthly" } {
-   						set week 1
-   						ad_schedule_proc -thread t -schedule_proc ns_schedule_weekly [list 0 00 10] [chat_update_rss_monthly $room_id $week]
-   					 }
-   				}	 
-   		       }           
-      		
-		}
-     }
+    set comm_id ""
+    if {[info command dotlrn_community::get_community_id] ne ""} {
+      set comm_id [dotlrn_community::get_community_id] 
+    }
+    if {$comm_id ne ""} {
+      chat_user_grant $room_id $comm_id
+    } else {
+      #-2 Registered Users
+      #chat_user_grant $room_id -2 
+      #0 Unregistered Visitor
+      #chat_user_grant $room_id 0
+      #-1 The Public
+      chat_user_grant $room_id -2
+    }
+} -edit_request {
+    if {[catch {db_1row room_info {
+        select pretty_name, description, moderated_p, archive_p, active_p, auto_flush_p, auto_transcript_p
+        from chat_rooms
+        where room_id = :room_id}} errmsg]} {
+        ad_return_complaint 1 "[_ chat.Room_not_found]."
+        break
+    }
+} -edit_data {
+    if {[catch {chat_room_edit $room_id $pretty_name $description $moderated_p $active_p $archive_p $auto_flush_p $auto_transcript_p} errmsg]} {
+        ad_return_complaint 1 "[_ chat.Could_not_update_room]: $errmsg"
+        break
+    }
+    util_memoize_flush [list chat_room_get_not_cached $room_id]
+} -after_submit {
     ad_returnredirect "room?room_id=$room_id"
     ad_script_abort    
 }
Index: openacs-4/packages/chat/www/room-enter.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/Attic/room-enter.tcl,v
diff -u -r1.6 -r1.7
--- openacs-4/packages/chat/www/room-enter.tcl	7 Jun 2007 09:14:25 -0000	1.6
+++ openacs-4/packages/chat/www/room-enter.tcl	19 Nov 2007 01:14:16 -0000	1.7
@@ -9,7 +9,6 @@
 } {
     room_id:integer,notnull
     client:trim
-    
 } 
 
 set user_id [ad_conn user_id]
@@ -20,7 +19,7 @@
 ns_log notice "--query ban $ban_p: permission::permission_p -object_id $room_id -privilege chat_ban -party_id [ad_conn user_id]"
 set active  [room_active_status $room_id]
 
-if { ($read_p == "0" && $write_p == "0") || ($ban_p == "1") || ($active eq "f") } {
+if { ($read_p == "0" && $write_p == "0") || ($ban_p == "1") || ($active == "f") } {
     #Display unauthorize privilege page.
     ad_returnredirect unauthorized
     ad_script_abort
@@ -31,13 +30,12 @@
 if {$default_client eq "java"} {
 	chat_start_server
 }
+
 switch $client {
-    		"html" - "ajax" - "html-chat-script" {
-        	ns_log Notice "YY room-enter: has_entered_the room"        	
-        	chat_message_post $room_id $user_id "[_ chat.has_entered_the_room]." "1"
-        	}
+    "html" - "ajax" - "html-chat-script" {
+        ns_log Notice "YY room-enter: has_entered_the room"
+        chat_message_post $room_id $user_id "[_ chat.has_entered_the_room]." "1"
+    }
 }
 
-
-
 ad_returnredirect "chat?room_id=$room_id&client=$client"
Fisheye: Tag 1.8 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/room-entry.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.7 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/room-new-2.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/room-new-postgresql.xql'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.9 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/room-new.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/room-search-2.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/room-search-2.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/room-search.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/room-search.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Index: openacs-4/packages/chat/www/room.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/room.adp,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/chat/www/room.adp	26 Oct 2006 11:11:20 -0000	1.7
+++ openacs-4/packages/chat/www/room.adp	19 Nov 2007 01:14:16 -0000	1.8
@@ -28,9 +28,15 @@
         <td class="form-label">#chat.Archive#</td>
         <td>@archive_p@</td>
     </tr>   
-     
-          
     <tr class="form-element">
+        <td class="form-label">#chat.AutoFlush#</td>
+        <td>@auto_flush_p@</td>
+    </tr>  
+    <tr class="form-element">
+        <td class="form-label">#chat.AutoTranscript#</td>
+        <td>@auto_transcript_p@</td>
+    </tr>      
+    <tr class="form-element">
         <td class="form-label">#chat.message_count#</td>
         <td>@message_count@</td>
     </tr>
Index: openacs-4/packages/chat/www/room.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/room.tcl,v
diff -u -r1.6 -r1.7
--- openacs-4/packages/chat/www/room.tcl	7 Jun 2007 09:14:25 -0000	1.6
+++ openacs-4/packages/chat/www/room.tcl	19 Nov 2007 01:14:16 -0000	1.7
@@ -1,8 +1,9 @@
 #/www/chat/room.tcl
 ad_page_contract {
     Display information about chat room.
-    @author David Dao (ddao@arsdigita.com) and Pablo Mu�oz(pablomp@tid.es)
-    
+    @author David Dao (ddao@arsdigita.com)
+    @creation-date November 15, 2000
+    @cvs-id $Id$
 } {
     room_id:integer,notnull
 } -properties {
@@ -31,32 +32,7 @@
 }
 
 set context_bar [list "[_ chat.Room_Information]"]
-set user_id [ad_conn user_id]
 
-#A professor who creates a rooom will be able to admin it.
-db_1row room_info2 {
-		select count(cr.creator) as counter2
-		from chat_rooms cr
-		where cr.room_id = :room_id
-		and cr.creator = :user_id		
- }
- if { $counter2 > 0} { 	
- 		set admin_professor "t"
- } else {
- 	 set admin_professor "f"
- } 
-if { $admin_professor eq "t"} {
-set room_view_p 1
-set room_edit_p 1
-set room_delete_p 1
-set user_ban_p 1
-set user_unban_p 1
-set user_grant_p 1
-set user_revoke_p 1
-#set moderator_grant_p 1
-#set moderator_revoke_p 1
-set transcript_create_p 1
-} else {
 ###
 # Get all available permission of this user on this room.
 ###
@@ -67,15 +43,15 @@
 set user_unban_p [permission::permission_p -object_id $room_id -privilege chat_user_unban]
 set user_grant_p [permission::permission_p -object_id $room_id -privilege chat_user_grant]
 set user_revoke_p [permission::permission_p -object_id $room_id -privilege chat_user_revoke]
-#set moderator_grant_p [permission::permission_p -object_id $room_id -privilege chat_moderator_grant]
-#set moderator_revoke_p [permission::permission_p -object_id $room_id -privilege chat_moderator_revoke]
+set moderator_grant_p [permission::permission_p -object_id $room_id -privilege chat_moderator_grant]
+set moderator_revoke_p [permission::permission_p -object_id $room_id -privilege chat_moderator_revoke]
 set transcript_create_p [permission::permission_p -object_id $room_id -privilege chat_transcript_create]
-}
+
 ###
 # Get room basic information.
 ###
 db_1row room_info {
-    select pretty_name, description, moderated_p, active_p, archive_p
+    select pretty_name, description, moderated_p, active_p, archive_p, auto_flush_p, auto_transcript_p
     from chat_rooms
     where room_id = :room_id
 }
Index: openacs-4/packages/chat/www/search-2.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/search-2.tcl,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/chat/www/search-2.tcl	24 Jun 2006 14:23:42 -0000	1.2
+++ openacs-4/packages/chat/www/search-2.tcl	19 Nov 2007 01:14:16 -0000	1.3
@@ -27,27 +27,27 @@
 
 set context [list [list "./" "Users"] "Search"]
 
-if {[info exists keyword]} {
+if [info exists keyword] {
     # this is an administrator 
-    if { $keyword eq "" } {
+    if { [empty_string_p $keyword] } {
         incr exception_count
         append exception_text "<li>You forgot to type a search string!\n"
     }
 } else {
     # from one of the user pages
-    if { (![info exists email] || $email eq "") && \
-            (![info exists last_name] || $last_name eq "") } {
+    if { (![info exists email] || [empty_string_p $email]) && \
+            (![info exists last_name] || [empty_string_p $last_name]) } {
         incr exception_count
         append exception_text "<li>You must specify either an email address or last name to search for.\n"
     }
 
     if { [info exists email] && [info exists last_name] && \
-            $email ne "" && $last_name ne "" } {
+            ![empty_string_p $email] && ![empty_string_p $last_name] } {
         incr exception_count
         append exception_text "<li>You can only specify either email or last name, not both.\n"
     }
 
-    if { ![info exists target] || $target eq "" } {
+    if { ![info exists target] || [empty_string_p $target] } {
         incr exception_count
         append exception_text "<li>Target was not specified. This shouldn't have happened,
 please contact the <a href=\"mailto:[ad_host_administrator]\">administrator</a>
@@ -68,7 +68,7 @@
     set search_type "keyword"
     set sql_keyword "%[string tolower $keyword]%"
     lappend where_clause "(username like :sql_keyword or email like :sql_keyword or lower(first_names || ' ' || last_name) like :sql_keyword)"
-} elseif { [info exists email] && $email ne "" } {
+} elseif { [info exists email] && ![empty_string_p $email] } {
     set search_type "email"    
     set sql_email "%[string tolower $email]%"
     lappend where_clause "email like :sql_email"
@@ -124,7 +124,7 @@
     set user_search:[set rowcount](member_state) $member_state
 
     
-    if { $member_state ne "approved" } {
+    if { $member_state != "approved" } {
         set user_search:[set rowcount](user_finite_state_links) [join [ad_registration_finite_state_machine_admin_links $member_state $email_verified_p $user_id_from_search "search?[export_url_vars email last_name keyword target passthrough limit_users_in_group_id only_authorized_p]"] " | "]
     } else {
         set user_search:[set rowcount](user_finite_state_links) ""
Index: openacs-4/packages/chat/www/search-3.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/search-3.tcl,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/chat/www/search-3.tcl	7 Jun 2007 09:14:25 -0000	1.3
+++ openacs-4/packages/chat/www/search-3.tcl	19 Nov 2007 01:14:16 -0000	1.4
@@ -1,55 +1,16 @@
 ad_page_contract {
-@author Pablo Mu�oz(@pablomp@tid.es)
 
 } {
     type:notnull
     room_id:integer,notnull
     party_id:integer,notnull
 }
 
-
 if {$type eq "user"} {
-
-set user_id [ad_conn user_id]
-#A professor who creates a rooom will be able to admin it.
-db_1row room_info2 {
-		select count(cr.creator) as counter2
-		from chat_rooms cr
-		where cr.room_id = :room_id
-		and cr.creator = :user_id		
- }
- if { $counter2 > 0} { 	
- 		set admin_professor "t"
- } else {
- 	 set admin_professor "f"
- } 
-if { $admin_professor eq "t"} {
-} else {
   ad_require_permission $room_id chat_user_grant
-}
   chat_user_grant $room_id $party_id
 } else {
-
-set user_id [ad_conn user_id]
-#A professor who creates a rooom will be able to admin it.
-db_1row room_info2 {
-		select count(cr.creator) as counter2
-		from chat_rooms cr
-		where cr.room_id = :room_id
-		and cr.creator = :user_id		
- }
- if { $counter2 > 0} { 	
- 		set admin_professor "t"
- } else {
- 	 set admin_professor "f"
- } 
- 
-if { $admin_professor eq "t"} {
-
-} else {
-
-ad_require_permission $room_id chat_user_ban
-} 
+  ad_require_permission $room_id chat_user_ban
   chat_user_ban $room_id $party_id
 }
 ad_returnredirect "room?room_id=$room_id"
Index: openacs-4/packages/chat/www/transcript-edit-2.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/Attic/transcript-edit-2.tcl,v
diff -u -r1.6 -r1.7
--- openacs-4/packages/chat/www/transcript-edit-2.tcl	7 Jun 2007 09:14:25 -0000	1.6
+++ openacs-4/packages/chat/www/transcript-edit-2.tcl	19 Nov 2007 01:14:16 -0000	1.7
@@ -11,7 +11,6 @@
     contents:html,notnull
     room_id:notnull,integer
     {description:trim ""}
-    {keywords:trim ""}
 }
 
 permission::require_permission -object_id $transcript_id -privilege chat_transcript_edit
@@ -20,4 +19,4 @@
     ad_return_complaint 1 "[_ chat.Could_not_update_transcript]: $errmsg"
 }
 
-ad_returnredirect "transcript-view?transcript_id=$transcript_id&room_id=$room_id"
+ad_returnredirect "transcript-view?transcript_id=$transcript_id&room_id=$room_id"
\ No newline at end of file
Index: openacs-4/packages/chat/www/transcript-edit.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/transcript-edit.tcl,v
diff -u -r1.5 -r1.6
--- openacs-4/packages/chat/www/transcript-edit.tcl	7 Jun 2007 09:14:25 -0000	1.5
+++ openacs-4/packages/chat/www/transcript-edit.tcl	19 Nov 2007 01:14:16 -0000	1.6
@@ -2,8 +2,9 @@
 ad_page_contract {
     Retrieve transcript content.
 
-    @author David Dao (ddao@arsdigita.com) and Pablo Mu�oz(pablomp@tid.es)
-    
+    @author David Dao (ddao@arsdigita.com)
+    @creation-date November 28, 2000
+    @cvs-id $Id$
 } {
     transcript_id:integer,notnull
     room_id:integer,notnull
@@ -16,20 +17,11 @@
 set active_p [room_active_status $room_id]
 
 db_1row get_transcript_info {
-    select ct.pretty_name, ct.description, ct.contents
-    from chat_transcripts ct
-    where transcript_id = :transcript_id    
+    select pretty_name, description, contents
+    from chat_transcripts
+    where transcript_id = :transcript_id
 }
-set keywords ""
-db_foreach get_transcript_info2 {
-    select ck.keyword as key
-    from chat_room_transcript_keywords ck
-    where ck.transcript_id = :transcript_id    
-} {
-	append keywords $key " "
-}
 
-
 ad_form -name "edit-transcription" -edit_buttons [list [list [_ chat.Edit] next]] -has_edit 1 -form {
     {room_id:integer(hidden)
         {value $room_id}
@@ -46,21 +38,14 @@
         {html {rows 6 cols 65}}
         {value $description}
     }
-    {keywords:text(textarea),optional
-        {label "#chat.keywords#" }
-        {html {rows 6 cols 65}}
-        {value $keywords}
-    }
     {contents:text(textarea)
         {label "#chat.Transcript#" }
-        {html {rows 3 cols 65}}
+        {html {rows 6 cols 65}}
         {value $contents}
     }
 } -on_submit {
     if { [catch {chat_transcript_edit $transcript_id $pretty_name $description $contents} errmsg] } {
         ad_return_complaint 1 "[_ chat.Could_not_update_transcript]: $errmsg"
-    }    
-    chat_transcript_edit_keywords $transcript_id $keywords
-    
+    }
     ad_returnredirect "chat-transcript?transcript_id=$transcript_id&room_id=$room_id"    
 }
Index: openacs-4/packages/chat/www/transcript-entry.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/Attic/transcript-entry.adp,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/chat/www/transcript-entry.adp	7 Jun 2007 09:14:25 -0000	1.7
+++ openacs-4/packages/chat/www/transcript-entry.adp	19 Nov 2007 01:14:16 -0000	1.8
@@ -43,10 +43,6 @@
           <td><textarea name="description" rows=6 cols=65>@description@</textarea>
        </tr>
        <tr class="form-element">
-          <td class="form-label">#chat.keywords#</th>
-          <td><textarea name="keywords" rows=3 cols=65>@keywords@</textarea>
-       </tr>
-       <tr class="form-element">
           <td class="form-label">#chat.Contents#</th>
     	  <td><div style="border: 1px solid #A4B97F; padding:3px; color: #666666;">@contents;noquote@</div>
        </tr>
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/transcript-new-2-postgresql.xql'.
Fisheye: No comparison available.  Pass `N' to diff?
Index: openacs-4/packages/chat/www/transcript-new-2.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/Attic/transcript-new-2.tcl,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/chat/www/transcript-new-2.tcl	7 Jun 2007 09:14:25 -0000	1.3
+++ openacs-4/packages/chat/www/transcript-new-2.tcl	19 Nov 2007 01:14:16 -0000	1.4
@@ -1,12 +1,10 @@
 #/chat/www/transcript-new-2.tcl
 ad_page_contract {
     Save transcript.
-    @author Pablo Mu�oz(pablomp@tid.es)
 } {
     room_id:integer,notnull
     transcript_name:trim,notnull
     {description:trim ""}
-    {keywords:trim ""}
     {delete_messages:optional "off"}
     {deactivate_room:optional "off"}
     contents:trim,notnull,html
@@ -26,15 +24,6 @@
     $transcript_name $contents $room_id
 ]
 
-#store_transcripts_keywords $keywords transcript_id
-for {set i 0} {$i < [llength $keywords]} {incr i 1} {
-    	set word [lindex $keywords $i]
-    	#set k [store_transcripts_keywords $word $transcript_id]
-    	db_exec_plsql store_transcripts_keywords {}
-	}	
-
-
-
 if { $delete_messages eq "on" } {
     chat_room_message_delete $room_id
     # forward the information to AJAX
@@ -45,19 +34,5 @@
     db_dml "update_chat" "update chat_rooms set active_p = 'f' where room_id = $room_id"
 }
 
-
-
 ad_returnredirect "chat-transcript?room_id=$room_id&transcript_id=$transcript_id"
 
-
-ad_proc store_transcripts_keywords { 
-	keywords
-	transcript_id
-} {
-	for {set i 0} {$i < [llength $keywords]} {incr i 1} {
-    	set word [lindex $keywords $i]
-    	#set k [store_transcripts_keywords $word $transcript_id]
-    	db_exec_plsql store_transcripts_keywords {}
-	}	
-	
-}	
\ No newline at end of file
Index: openacs-4/packages/chat/www/transcript-new.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/transcript-new.tcl,v
diff -u -r1.5 -r1.6
--- openacs-4/packages/chat/www/transcript-new.tcl	7 Jun 2007 09:14:25 -0000	1.5
+++ openacs-4/packages/chat/www/transcript-new.tcl	19 Nov 2007 01:14:16 -0000	1.6
@@ -1,7 +1,6 @@
 #/chat/www/transcript-new.tcl
 ad_page_contract {
     Display available all available chat messages.
-    @author Pablo Mu�oz(pablomp@tid.es)
 } {
     room_id:integer,notnull
 } -properties {
@@ -15,23 +14,7 @@
     contents:onevalue
 }
 
-set user_id [ad_conn user_id]
-#A professor who creates a rooom will be able to admin it.
-db_1row room_info2 {
-		select count(cr.creator) as counter2
-		from chat_rooms cr
-		where cr.room_id = :room_id
-		and cr.creator = :user_id		
- }
- if { $counter2 > 0} { 	
- 		set admin_professor "t"
- } else {
- 	 set admin_professor "f"
- } 
-if { $admin_professor eq "t"} {
-} else {
 permission::require_permission -object_id $room_id -privilege chat_transcript_create
-}
 
 set context_bar [list [list "room?room_id=$room_id" "[_ chat.Room_Information]"] "[_ chat.Create_transcript]"]
 
@@ -43,35 +26,10 @@
 set title "[_ chat.Create_transcript]"
 set submit_label "[_ chat.Create_transcript]"
 set active_p [room_active_status $room_id]
-set keywords ""
 
-
-
 #Build a list of all message.
 db_foreach get_archives_messages {} {
-	
-	if { $creation_user eq "-1" } {
-		append contents "\[$creation_date\] <b>System</b>: $msg<br>\n"
-	} else {
-		db_1row room_info2 {
-    			select count(r.alias)
-    			from chat_registered_users r
-    			where r.user_id = :creation_user
-    			and r.room_id = :room_id
-		}
-
-		if { $count > 0} {
-			db_1row room_info2 {
-    				select r.alias
-    				from chat_registered_users r
-    				where r.user_id = :creation_user
-    				and r.room_id = :room_id
-			}
-			append contents "\[$creation_date\] <b>[chat_user_name2 $creation_user $alias]</b>: $msg<br>\n"
-		} else {
-	    		append contents "\[$creation_date\] <b>[chat_user_name $creation_user]</b>: $msg<br>\n"
-		}
-	}
+    append contents "\[$creation_date\] <b>[chat_user_name $creation_user]</b>: $msg<br>\n"
 }
 
 ad_return_template "transcript-entry"
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/transcript-search.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/upload.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/upload.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.4 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/user-grant-2.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.4 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/user-grant-postgresql.xql'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.6 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/user-grant.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.5 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/user-revoke-2.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.4 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/user-revoke-postgresql.xql'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.8 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/user-revoke.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.6 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/user-revoke.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/admin/rss.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Index: openacs-4/packages/chat/www/ajax/chat.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/ajax/Attic/chat.js,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/chat/www/ajax/chat.js	7 Jun 2007 09:14:25 -0000	1.3
+++ openacs-4/packages/chat/www/ajax/chat.js	19 Nov 2007 01:14:17 -0000	1.4
@@ -51,7 +51,7 @@
         if (node.childNodes[i].nodeType == 3 ) {
             // if this is a textnode, skip it
             continue;
-        }        
+        }
         msgCount++;
         p = doc.createElement('p');
         p.className = 'line';
@@ -80,144 +80,68 @@
 }
 
 function pushReceiver(content) {
-	//alert(content);
-    updateReceiver(content);   
+    updateReceiver(content);
     var msgField = document.getElementById('chatMsg');
     msgField.value = '';
     msgField.disabled = false;
     msgField.focus();
 }
 
 function updateReceiver(content) {
-  //  alert(content);
     var xmlobject = (new DOMParser()).parseFromString(content, 'application/xhtml+xml');
     var body = xmlobject.getElementsByTagName('body');
-   //alert(content);
     
-    for (var i = 0 ; i < body[0].childNodes.length ; i++) {    
+    for (var i = 0 ; i < body[0].childNodes.length ; i++) {
         if (body[0].childNodes[i].nodeType == 3 ) {
             // if this is a textnode, skip it
             continue;
         }
-       
         var attribute = body[0].childNodes[i].getAttribute('id');
-      
         switch (attribute) {
             case "messages":
-                var messagesNode = body[0].childNodes[i];                
+                var messagesNode = body[0].childNodes[i];
                 if (messagesNode.hasChildNodes()) {
-                    var messagesDoc = frames['ichat'].document; //esto es lo actual de mi pagina
-                    var messagesDiv = frames['ichat'].document.getElementById('messages'); //actual de mi pagina
-                    messagesReceiver(messagesNode,messagesDoc,messagesDiv);//con todos los elemtnos nuevos en messagesNode, el documento messagesDco y la capa exacta, creare una nueva capa y sustituyo en el documento la que tengo por la nueva
+                    var messagesDoc = frames['ichat'].document;
+                    var messagesDiv = frames['ichat'].document.getElementById('messages');
+                    messagesReceiver(messagesNode,messagesDoc,messagesDiv);
                 }                
                 break;
-            case "users":     
-            	var usersNode = body[0].childNodes[i].childNodes[0];
-            	             
+            case "users":
+                var usersNode = body[0].childNodes[i].childNodes[0];
                 var usersDoc = frames['ichat-users'].document;
-                
                 var usersTbody = frames['ichat-users'].document.getElementById('users').tBodies[0];
-                
                 usersReceiver(usersNode,usersDoc,usersTbody);                
                 break;
-            case "files":
-                var filesNode = body[0].childNodes[i].childNodes[0];                
-                var filesDoc = frames['ichat-files'].document;
-                var filesTbody = frames['ichat-files'].document.getElementById('files').tBodies[0];
-                filesReceiver(filesNode,filesDoc,filesTbody);                
-                break;
         }
     }
-    
-    
-    
-    
 }
 
 function usersReceiver(node,doc,tbody) {
     var tr, td, e, s, nbody;
-    
-    
     nbody = doc.createElement('tbody');
     for (var i = 0 ; i < node.childNodes.length ; i++) {
         if (node.childNodes[i].nodeType == 3 ){
             // if this is a textnode, skip it
             continue;
         }
-        
         tr = doc.createElement('tr');
-        e = node.childNodes[i].getElementsByTagName('td');
+        e = node.childNodes[i].getElementsByTagName('TD');
         
-        
         td = doc.createElement('td');
-        var ref = e[0].firstChild.getAttribute('href');
-        var ref2 = e[0].firstChild.firstChild.getAttribute('src');            
-        var aux = "<img src='"+ref2+"' />"; 
-        var aux2 = "<a target='_blank' title='Private Room' href='"+ref+"'>"+aux+"</a>";
-        td.innerHTML = decodeURIComponent(aux2);       
-        tr.appendChild(td);         
-        
-        
-                      
-        td = doc.createElement('td');        
-        td.innerHTML = decodeURIComponent(e[1].firstChild.nodeValue.replace(/\+/g,' '));
+        td.innerHTML = decodeURIComponent(e[0].firstChild.nodeValue.replace(/\+/g,' '));
         td.className = 'user';
-        tr.appendChild(td);      
-                
+        tr.appendChild(td);
         
         td = doc.createElement('td');
-        td.innerHTML = decodeURIComponent(e[2].firstChild.nodeValue.replace(/\+/g,' '));
+        td.innerHTML = decodeURIComponent(e[1].firstChild.nodeValue.replace(/\+/g,' '));
         td.className = 'timestamp';
-        tr.appendChild(td);
+        tr.appendChild(td);   
         
-        
         nbody.appendChild(tr);
-        
     }
     tbody.parentNode.replaceChild(nbody,tbody);
-    
-    
 }
 
-function filesReceiver(node,doc,tbody) {
-    var tr, td, e, s, nbody;
-    
-    
-    nbody = doc.createElement('tbody');
-    for (var i = 0 ; i < node.childNodes.length ; i++) {
-        if (node.childNodes[i].nodeType == 3 ){
-            // if this is a textnode, skip it
-            continue;
-        }
-        
-        tr = doc.createElement('tr');
-        e = node.childNodes[i].getElementsByTagName('td');
-        
-        td = doc.createElement('td');
-        
-        var ref = e[0].childNodes[0];
-        
-        if(ref.nodeType != 1){
-        	td = doc.createElement('td');       	
-        	td.appendChild(e[0].firstChild);        	
-        	td.className = 'files';
-        	tr.appendChild(td);
-        	nbody.appendChild(tr);	
-        }
-        else{
-        	var ref = e[0].childNodes[0].getAttribute('href');            
-        	var aux = "<a href="+ref+">"+e[0].firstChild.childNodes[0].nodeValue.replace(/\+/g,' ')+"</a>"; 	
-        	td.innerHTML = decodeURIComponent(aux);
-        	td.className = 'files';
-        	tr.appendChild(td);    
-        	nbody.appendChild(tr);
-	}
-    }
-    tbody.parentNode.replaceChild(nbody,tbody);
-    
-}
-
-
 function DataConnection() {};
 
 DataConnection.prototype = {
@@ -228,14 +152,10 @@
     autoConnect: null,
     
     httpSendCmd: function(url) {
-    	
         // if (!this.connection) {
-        //alert('httpSendCmd');
-        //alert(url);
             this.busy = true;
             this.connection = getHttpObject();
         // }
-        
         this.connection.open('GET', url + '&mc=' + msgcount++, true);
         var self = this;
         this.connection.onreadystatechange = function() {
@@ -245,7 +165,6 @@
     },
     
     httpReceiver: function(obj) {
-    //	alert('httpReceiver');
          if (obj.connection.readyState == 4) {
             if (obj.connection.status == 200) {
                 obj.handler(obj.connection.responseText);
@@ -258,7 +177,6 @@
     }, 
     
     chatSendMsg: function(send_url) {
-    	//alert('chatSendMsg');
         // if (inactivityTimeout) {
         //     clearTimeout(inactivityTimeout);
             // alert("Clearing inactivityTimeout");
@@ -271,11 +189,9 @@
             alert("chatSendMsg conflict! Maybe banned?");
         }
         var msgField = document.getElementById('chatMsg');
-        //alert(msgField);
         if (msgField.value == '') {
             return;
         }
-        //alert(send_url);
         msgField.disabled = true;
         this.httpSendCmd(send_url + escape(msgField.value));
         msgField.value = '#chat.sending_message#';
@@ -295,10 +211,6 @@
 }
 
 function registerDataConnection(handler,url,autoConnect) {
-//	alert('registerDataConnection');
-	//alert(handler);
-	//alert(url);
-	//alert(autoConnect);
     // var ds = new DataConnection(handler,url,autoConnect);
     var ds = new DataConnection();
     ds.handler = handler;
@@ -310,9 +222,7 @@
 }
 
 function updateDataConnections() {
-	//alert('updateDataConnections');
     for (var ds in dataConnections) {
-    	//alert(ds);
         if (dataConnections[ds].autoConnect) {
             // alert("updating " + dataConnections[ds].url);
             dataConnections[ds].updateBackground();
@@ -329,15 +239,11 @@
 }
 
 function startProc() {
-   // alert('startProc');
     document.getElementById('chatMsg').focus();
     var messagesDiv = frames['ichat'].document.getElementById('messages');
-   // alert(frames['ichat'].document.getElementById('messages'));
-   // alert('startProc2');
     if (messagesDiv) { 
         frames['ichat'].window.scrollTo(0,messagesDiv.offsetHeight); 
     }
-  //  alert('startProc3');
 }
 
 window.onload = startProc;
Index: openacs-4/packages/chat/www/ajax/chat.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/ajax/Attic/chat.tcl,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/chat/www/ajax/chat.tcl	7 Jun 2007 09:14:25 -0000	1.3
+++ openacs-4/packages/chat/www/ajax/chat.tcl	19 Nov 2007 01:14:17 -0000	1.4
@@ -1,49 +1,16 @@
 ad_page_contract {
   a tiny chat client
 
-  @author Gustaf Neumann (gustaf.neumann@wu-wien.ac.at) and Pablo Mu�oz (pablomp@tid.es)
-  
+  @author Gustaf Neumann (gustaf.neumann@wu-wien.ac.at)
+  @creation-date Jan 31, 2006
+  @cvs-id $Id$
 } -query {
-  m  
+  m
   id
   s
-  {msg:optional,allhtml ""}  
+  {msg:optional,allhtml ""}
 }
-set room [::chat::Chat create new -volatile -chat_id $id]
-set active_users [$room nr_active_users]
 
-set user_id [ad_conn user_id]
-
-
-
-
-db_1row room_info {
-		select maximal_participants as maximal
-		from chat_rooms as cp
-		where cp.room_id = :id
-}
-if { $active_users >= $maximal} {
-	#If the user is active and the room is full	
-	db_1row room_info {
-		select count(chat_room_user_id.user_id) as count
-		from chat_room_user_id
-		where chat_room_user_id.user_id = :user_id
-		and chat_room_user_id.room_id = :id
-	}	
-	if { $count == 0 } {
-			if { [permission::permission_p -party_id $user_id -object_id [dotlrn::get_package_id] -privilege admin] } {
-				
-			} else {
-				#blanco
-				
-			ns_return 200 text/html "<HTML><BODY>\
-			<div id='messages'>[_ chat.You_dont_have_permission_room]</div>\
-			</BODY></HTML>"
-  			ad_script_abort
-  			}
-  	}
-}
-
 set ban_p [permission::permission_p -object_id $id -privilege "chat_ban"]
 if {$ban_p} {
   ns_return 200 text/html "<HTML><BODY>\
@@ -52,58 +19,9 @@
   ad_script_abort
 }
 
-db_1row date {	
-        select r.end_date as date, pretty_name as name
-        from chat_rooms as r
-        where r.room_id = :id        		
-	}
-if { [clock format [clock seconds] -format "%Y/%m%d"] > $date } {
-	db_0or1row update_closed {	
-        	update chat_rooms SET open = 'false'        	
-        	WHERE room_id = :id;
-        	select 1;        	        	
-	}
-	ns_return 200 text/html "<HTML><BODY>\
-	<div id='messages'>[_ chat.closed_room]</div>\
-	</BODY></HTML>"
-  ad_script_abort
-}
-set user_id [ad_conn user_id]
-db_1row room_info {
-		select distinct count(cp.user_id1) as count1
-		from chat_private_room_users as cp
-		where cp.room_id = :id
-		and cp.user_id1 = :user_id		
-}
-
-db_1row room_info {
-		select distinct count(cp.user_id1) as count2
-		from chat_private_room_users as cp
-		where cp.room_id = :id
-		and cp.user_id2 = :user_id
-}
-db_1row room_info {
-		select cr.private as private
-		from chat_rooms as cr
-		where cr.room_id = :id
-}
-if { $count1 == 0 && $count2 == 0 } {
-	if { $private eq "t" } {	
-		ns_return 200 text/html "<HTML><BODY>\
-		<div id='messages'>[_ chat.You_dont_have_permission_room]</div>\
-		</BODY></HTML>"
-  		ad_script_abort
-	}
-	
-}
-
-
 set message_output ""
 set user_output "-"
-set files_output "-"
 
-
-#crea el objeto de tipo xotcl
 ::chat::Chat c1 -volatile -chat_id $id -session_id $s
 
 switch -- $m {
@@ -125,26 +43,13 @@
     set message_output [c1 $m]
   }
   get_updates {
-  	
-      set message_output [c1 get_new]      
-      
+      set message_output [c1 get_new]
       set user_output [c1 get_users]
-      
-      set files_output [c1 get_files]
-      
-      
   }
   get_users {
-    
     c1 encoder noencode
     set user_output [c1 get_users]
-    
   }
-  get_files {
-      
-    c1 encoder noencode
-    set files_output [c1 get_files]
-  }
   default {ns_log error "--c unknown method $m called."} 
 }
 
@@ -159,25 +64,17 @@
 #users { width: 100%; font-size: 12px; color: #666666; font-family: Trebuchet MS, Lucida Grande, Lucida Sans Unicode, Arial, sans-serif; }
 #users .user {text-align: left; vertical-align: top; font-weight:bold; }
 #users .timestamp {text-align: right; vertical-align: top; }
-#files { width: 100%; font-size: 12px; color: #666666; font-family: Trebuchet MS, Lucida Grande, Lucida Sans Unicode, Arial, sans-serif; }
-#files .file {text-align: left; vertical-align: top; font-weight:bold; }
 </style>
-<body id='body' style='margin:0px; padding:5px;'>"
+<body style='margin:0px; padding:5px;'>"
 
 if { $message_output ne "" } {
     append output "<div id='messages'>$message_output</div>\n"
 }
 
 if { $user_output ne "-" } {
-	
     append output "<table id='users'><tbody>$user_output</tbody></table>\n"
 }
 
-if { $files_output ne "-" } {
-
-    append output "<table id='files'><tbody>$files_output</tbody></table>\n"
-}
-
 append output "
 </body>
 </HTML>"
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/ajax/files.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.3 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/ajax/users.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/rss/index.vuh'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/chat/www/rss/rss.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?