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.2 -r1.3
--- openacs-4/packages/chat/catalog/chat.en_US.ISO-8859-1.xml 24 Jun 2006 14:23:40 -0000 1.2
+++ openacs-4/packages/chat/catalog/chat.en_US.ISO-8859-1.xml 21 Jun 2007 11:06:29 -0000 1.3
@@ -97,6 +97,7 @@
rooms
Send/Refresh
Sending message...
+ There are no messages to delete
There are no rooms available
to
Transcript
Index: openacs-4/packages/chat/sql/postgresql/upgrade/upgrade-5.0d6-5.1d.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/sql/postgresql/upgrade/Attic/upgrade-5.0d6-5.1d.sql,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/chat/sql/postgresql/upgrade/upgrade-5.0d6-5.1d.sql 21 Jun 2007 11:06:29 -0000 1.1
@@ -0,0 +1,692 @@
+-- upgrade script
+
+alter table chat_rooms add open boolean;
+alter table chat_rooms add auto_transcript_p boolean;
+alter table chat_rooms add private boolean;
+alter table chat_rooms add file_sent boolean;
+alter table chat_rooms add frequency1 varchar;
+
+---------------------------------
+
+alter table chat_transcripts add date date;
+alter table chat_transcripts add keywords varchar;
+
+---------------------------------
+
+alter table chat_registered_users add frequency_mail varchar;
+alter table chat_registered_users add registered_date timestamp(0) without time zone;
+
+---------------------------------
+
+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 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;
+
+---------------------------------
+
+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, integer, integer, varchar, varchar, varchar, varchar) RETURNS integer 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_id 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;
+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 );
+
+ if exists (select dot.pretty_name from dotlrn_communities_all as dot where dot.community_id = p_comm_id) then
+ select into v_comm_name dot.pretty_name from dotlrn_communities_all as dot where dot.community_id = p_comm_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,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);
+ else
+ 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,''Dotlrn'',''true'', ''false'',''false'',p_frequency1);
+ end if;
+
+
+ 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__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.
+ 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;
+
+---------------------------------
+
+CREATE OR REPLACE FUNCTION chat_room_registered__user (varchar, integer, integer, boolean, boolean, integer, varchar, varchar) RETURNS integer AS'
+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_room__delete_registered_users (integer, integer) RETURNS integer AS'
+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_transcript__new (varchar, varchar, varchar, integer, integer, timestamptz, integer, varchar, varchar) RETURNS integer AS'
+declare
+
+ p_pretty_name alias for $1;
+ p_contents alias for $2;
+ p_description alias for $3;
+ p_room_id alias for $4;
+ p_context_id alias for $5;
+ p_creation_date alias for $6;
+ p_creation_user alias for $7;
+ p_creation_ip alias for $8;
+ p_object_type alias for $9;
+ v_transcript_id chat_transcripts.transcript_id%TYPE;
+begin
+ v_transcript_id := acs_object__new (
+ null,
+ ''chat_transcript'',
+ now(),
+ p_creation_user,
+ p_creation_ip,
+ 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());
+
+ return v_transcript_id;
+end;
+'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
+
+----------------------------
+
+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 */
+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_user_id alias for $12;
+ p_room_id alias for $13;
+ p_frequency1 alias for $14;
+ p_frequency_mail alias for $15;
+begin
+
+ 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;
+
+---------------------------
+
+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__private_new (varchar, varchar, varchar, varchar, integer, timestamp, boolean, boolean, boolean, boolean, boolean, integer, integer, 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_id 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 );
+
+ if exists (select dot.pretty_name from dotlrn_communities_all as dot where dot.community_id = p_comm_id) then
+ select into v_comm_name dot.pretty_name from dotlrn_communities_all as dot where dot.community_id = p_comm_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);
+ else
+ 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,''Dotlrn'',''true'', ''false'',p_private);
+ end if;
+
+
+ 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'
+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'
+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'
+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,
+ 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'
+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,
+ 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'
+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'
+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'
+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'
+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'
+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'
+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'
+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'
+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;
+
+
+
+
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.5 -r1.6
--- openacs-4/packages/chat/tcl/chat-ajax-procs.tcl 7 Jun 2007 09:14:24 -0000 1.5
+++ openacs-4/packages/chat/tcl/chat-ajax-procs.tcl 21 Jun 2007 11:06:29 -0000 1.6
@@ -4,32 +4,77 @@
@creation-date 2006-02-02
@author Gustaf Neumann
@author Peter Alberer
+<<<<<<< chat-ajax-procs.tcl
@cvs-id $Id$
+=======
+ @cvs-id $Id$
+>>>>>>> 1.5
}
namespace eval ::chat {
::xo::ChatClass Chat -superclass ::xo::Chat
-
- Chat instproc render {} {
- my orderby time
- set result ""
+
+
+ Chat instproc login {} {
+ my instvar array user_id now chat_id
- 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 "
$timeshort" \
- "$userlink:" \
- "[my encode $msg]
\n"
- }
- return $result
- }
+
+ 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 "\
+ [_ chat.You_dont_have_permission_room]
\
+ "
+ ad_script_abort
+ }
+ }
+ }
+
+ if {![nsv_exists $array-last-activity $user_id]} {
+ my add_msg -get_new false [_ xotcl-core.has_entered_the_room]
+
+
- Chat proc login {-chat_id -package_id} {
+ }
+ my encoder noencode
+ my get_all
+ }
+
+
+
+
+ Chat proc login {-chat_id -package_id -folder_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 }
@@ -45,11 +90,26 @@
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
+<<<<<<< chat-ajax-procs.tcl
set send_url ${path}ajax/chat?m=add_msg&$context&msg=
+
+=======
+ set send_url ${path}ajax/chat?m=add_msg&$context&msg=
#$send_file
+>>>>>>> 1.5
+<<<<<<< chat-ajax-procs.tcl
set user_id [ad_conn user_id]
set return_url [ad_return_url]
+
+ set users_url ${path}ajax/chat?m=get_users&$context
+
+ set files_url ${path}ajax/chat?m=get_files&$context
+
+
+=======
+ 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
@@ -88,6 +148,7 @@
set files_url ${path}ajax/chat?m=get_files&$context
+>>>>>>> 1.5
return "\