Index: openacs-4/contrib/packages/jabber/README =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/Attic/README,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/README 1 Oct 2003 04:35:38 -0000 1.1 @@ -0,0 +1,17 @@ + +In the extra c directory you find the tarballs for the nsjabber module , a admin patch for the Jabber Server 1.4.x and a patched conference-0.4.1+ component for the Jabber Server. + + + +Instalation: +The package for openacs can be pre installed. + +The tarballs (in the c dir.) include README files with further instructions in their head directorys, the jabber package for openacs has a complet instalation documentation, for all parts of needed to let the jabber package work properly. + + +Bjoern Kiesbye +email:bkiesbye@sussdorff-roy.com +jid:bjoern_open@intranet.sussdorff-roy.com + +copyright Sussdorff & Roy 2003 + \ No newline at end of file Index: openacs-4/contrib/packages/jabber/jabber.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/Attic/jabber.info,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/jabber.info 1 Oct 2003 04:35:33 -0000 1.1 @@ -0,0 +1,257 @@ + + + + + Jabber + Jabber + f + t + + + + oracle + postgresql + + Sussdorff-Roy GbR + Package for comunication based on Jabber Server. + 2003-03-06 + Sussdorff-Roy GbR + This package allows users to communicate through the different IM services with other users using the jabber server. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: openacs-4/contrib/packages/jabber/nsjabber-patch-1.tar.gz =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/Attic/nsjabber-patch-1.tar.gz,v diff -u -N Binary files differ Index: openacs-4/contrib/packages/jabber/c/conference-0.4.1+.tar.gz =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/c/Attic/conference-0.4.1+.tar.gz,v diff -u -N Binary files differ Index: openacs-4/contrib/packages/jabber/c/mod_acs-0.1.0.0.tar =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/c/Attic/mod_acs-0.1.0.0.tar,v diff -u -N Binary files differ Index: openacs-4/contrib/packages/jabber/c/nsjabber-0.1.0.1.tar =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/c/Attic/nsjabber-0.1.0.1.tar,v diff -u -N Binary files differ Index: openacs-4/contrib/packages/jabber/sql/oracle/jabber-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/sql/oracle/Attic/jabber-create.sql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/sql/oracle/jabber-create.sql 1 Oct 2003 04:35:45 -0000 1.1 @@ -0,0 +1,812 @@ +-- +-- +-- package/jabber/sql/oracle/jabber-create.sql +-- @author Luis Mosteiro Fernandez +-- +-- + +create table jb_services ( + service varchar2(255) primary key, + pretty_name varchar2(255), + -- active_check_p to control whether service is avaiable (t) or not (f) + active_check_p char check(active_check_p in ('t','f')) + ); + + + + + +-- Screen +-- Definition as an object +-- Screen saves every screenname, it can be taken as a buddylist +-- users within the OACS System can have several screens, because they can be member in different im-systems +-- moreover the screens of external users are stored in this table +-- implementation as object, because it is imaginable to put a permission +-- on the screenname so not everyone can add this screen to his buddylist + +begin +acs_object_type.create_type ( +supertype => 'acs_object', +object_type => 'jb_screen', +pretty_name => 'Screen', +pretty_plural => 'Screens', +table_name => 'JB_SCREENS', +id_column => 'SCREEN_ID' +); +end; +/ +show errors; + + +declare + attr_id acs_attributes.attribute_id%TYPE; +begin + attr_id := acs_attribute.create_attribute ( + object_type => 'jb_screen', + attribute_name => 'user_id', + pretty_name => 'User ID', + pretty_plural => 'User IDs', + datatype => 'integer' + ); + + attr_id := acs_attribute.create_attribute ( + object_type => 'jb_screen', + attribute_name => 'im_screen_name', + pretty_name => 'IM Screen Name', + pretty_plural => 'IM Screen Names', + datatype => 'string' + ); + + attr_id := acs_attribute.create_attribute ( + object_type => 'jb_screen', + attribute_name => 'service', + pretty_name => 'Service', + pretty_plural => 'Services', + datatype => 'string' + ); + + attr_id := acs_attribute.create_attribute ( + object_type => 'jb_screen', + attribute_name => 'status', + pretty_name => 'Status', + pretty_plural => 'Status', + datatype => 'string' + ); + + attr_id := acs_attribute.create_attribute ( + object_type => 'jb_screen', + attribute_name => 'away_msg', + pretty_name => 'Away_Message', + pretty_plural => 'Away_Messages', + datatype => 'string' + ); + + attr_id := acs_attribute.create_attribute ( + object_type => 'jb_screen', + attribute_name => 'resourc', + pretty_name => 'Resource', + pretty_plural => 'Resources', + datatype => 'string' + ); + + attr_id := acs_attribute.create_attribute ( + object_type => 'jb_screen', + attribute_name => 'refcount', + pretty_name => 'Reference_Count', + pretty_plural => 'Reference_Counts', + datatype => 'integer' + ); +end; +/ +show errors; + +create table jb_screens ( + screen_id integer primary key references acs_objects(object_id), + -- user_id is null, if the user is not member of the OACS + user_id integer references users(user_id), + im_screen_name varchar2(255), + service varchar2(255) references jb_services(service) , + status varchar2(255), + away_msg varchar2(4000), + resourc varchar2(255), + refcount integer, + unique (im_screen_name , service) + ); + +create or replace package jb_screen +as + +function new ( + screen_id in jb_screens.screen_id%TYPE default null, + user_id in jb_screens.user_id%TYPE default null, + im_screen_name in jb_screens.im_screen_name%TYPE default null, + service in jb_screens.service%TYPE default null, + status in jb_screens.status%TYPE default null, + away_msg in jb_screens.away_msg%TYPE default null, + resourc in jb_screens.resourc%TYPE default null, + refcount in jb_screens.refcount%TYPE default null, + object_type in acs_object_types.object_type%TYPE default 'jb_screen', + creation_date in acs_objects.creation_date%TYPE default sysdate, + creation_user in acs_objects.creation_user%TYPE default null, + creation_ip in acs_objects.creation_ip%TYPE default null, + context_id in acs_objects.context_id%TYPE default null +) return jb_screens.screen_id%TYPE; + +procedure delete ( + screen_id in jb_screens.screen_id%TYPE +); +end jb_screen; +/ +show errors + + + + + +create or replace package body jb_screen +as + +function new ( + screen_id in jb_screens.screen_id%TYPE default null, + user_id in jb_screens.user_id%TYPE default null, + im_screen_name in jb_screens.im_screen_name%TYPE default null, + service in jb_screens.service%TYPE default null, + status in jb_screens.status%TYPE default null, + away_msg in jb_screens.away_msg%TYPE default null, + resourc in jb_screens.resourc%TYPE default null, + refcount in jb_screens.refcount%TYPE default null, + object_type in acs_object_types.object_type%TYPE default 'jb_screen', + creation_date in acs_objects.creation_date%TYPE default sysdate, + creation_user in acs_objects.creation_user%TYPE default null, + creation_ip in acs_objects.creation_ip%TYPE default null, + context_id in acs_objects.context_id%TYPE default null +) return jb_screens.screen_id%TYPE +is + v_screen_id integer; +begin + v_screen_id := acs_object.new ( + object_id => screen_id, + object_type => object_type, + creation_date => creation_date, + creation_user => creation_user, + creation_ip => creation_ip, + context_id => context_id + ); + + +insert into jb_screens + (screen_id, user_id, im_screen_name, service, status, away_msg, resourc, refcount) +values + (v_screen_id, user_id, im_screen_name, service, status, away_msg, resourc, refcount); + + +return v_screen_id; +end new; + +procedure delete ( + screen_id in jb_screens.screen_id%TYPE +) +is +begin + delete from jb_screens + where screen_id = jb_screen.delete.screen_id; + + acs_object.delete(screen_id); +end delete; + +end jb_screen; +/ +show errors; + + +-- jb_user_jabber_information +-- this table stores jabber login information for each user + +create table jb_user_jabber_information ( + user_id integer primary key references users(user_id), + jabber_regstate char(2), + jabber_passwd varchar2(16), + autologin char(2) check (autologin in ('t','f')) + ); + +-- jb_subscription_request + + +create table jb_subscription_requests ( + -- screen is a full Jabber-ID + screen varchar2(255) primary key, + asked date + ); +-- jb_message_log +-- log table for messages + +create sequence jb_message_log_seq start with 1; + +create table jb_message_log ( + message_id integer primary key, + user_id integer references users(user_id), + message VARCHAR2(4000), + send date, + conn_state varchar(2), + -- receive jabber_id + receive_jid varchar2(1000) + ); + +-- jb_xml_to_send + +create table jb_xml_to_send ( + xml blob, + stored date + ); + + + + +-- jb_friends +-- this table stores information for all user friends (whether external or internal friends) + +create table jb_friends ( + user_id integer references users(user_id), + friend_screen_id integer references jb_screens(screen_id), + friend_first_name varchar2(255), + friend_last_name varchar2(255), + primary key(user_id , friend_screen_id) + ); + + +-- Conference Room +-- implementation as object to use the permissioning system + + +begin +acs_object_type.create_type ( +supertype => 'acs_object', +object_type => 'jb_conference_room', +pretty_name => 'Conference Room', +pretty_plural => 'Conference Rooms', +table_name => 'JB_CONFERENCE_ROOMS', +id_column => 'room_id' +); +end; +/ +show errors; + + + +declare +attr_id acs_attributes.attribute_id%TYPE; +begin + attr_id := acs_attribute.create_attribute ( + object_type => 'jb_conference_room', + attribute_name => 'creator_jabber_id', + pretty_name => 'Creator Jabber ID', + pretty_plural => 'Creator Jabber IDs', + datatype => 'string' + ); + + attr_id := acs_attribute.create_attribute ( + object_type => 'jb_conference_room', + attribute_name => 'name', + pretty_name => 'Name', + pretty_plural => 'Names', + datatype => 'string' + ); + + attr_id := acs_attribute.create_attribute ( + object_type => 'jb_conference_room', + attribute_name => 'description', + pretty_name => 'Description', + pretty_plural => 'Descriptions', + datatype => 'string' + ); +end; +/ +show errors; + +create table jb_conference_rooms ( + room_id integer primary key references acs_objects(object_id), + creator_jabber_id varchar2(255), + -- jabber_id of the creator + -- only users having a jabber_id can create a conference room + -- jabber_ids look like: screen_name_of_the_service@service_name.jabber_server + -- therefore it has to be varchar + name varchar(100) unique, + description varchar(1000), + type varchar2(15) + ); + + +create or replace package jb_conference_room +as + +function new ( + room_id in jb_conference_rooms.room_id%TYPE default null, + creator_jabber_id in jb_conference_rooms.creator_jabber_id%TYPE default null, + name in jb_conference_rooms.name%TYPE default null, + description in jb_conference_rooms.description%TYPE default null, + object_type in acs_object_types.object_type%TYPE default 'jb_conference_room', + creation_date in acs_objects.creation_date%TYPE default sysdate, + creation_user in acs_objects.creation_user%TYPE default null, + creation_ip in acs_objects.creation_ip%TYPE default null, + context_id in acs_objects.context_id%TYPE default null +) return jb_conference_rooms.room_id%TYPE; + +procedure delete ( + room_id in jb_conference_rooms.room_id%TYPE +); +end jb_conference_room; +/ +show errors + + +create or replace package body jb_conference_room +as + +function new ( + room_id in jb_conference_rooms.room_id%TYPE default null, + creator_jabber_id in jb_conference_rooms.creator_jabber_id%TYPE default null, + name in jb_conference_rooms.name%TYPE default null, + description in jb_conference_rooms.description%TYPE default null, + object_type in acs_object_types.object_type%TYPE default 'conference_room', + creation_date in acs_objects.creation_date%TYPE default sysdate, + creation_user in acs_objects.creation_user%TYPE default null, + creation_ip in acs_objects.creation_ip%TYPE default null, + context_id in acs_objects.context_id%TYPE default null +) return jb_conference_rooms.room_id%TYPE +is +v_room_id integer; +begin +v_room_id := acs_object.new ( + object_id => room_id, + object_type => object_type, + creation_date => creation_date, + creation_user => creation_user, + creation_ip => creation_ip, + context_id => context_id + ); + + +insert into jb_conference_rooms + (room_id, creator_jabber_id, name, description) +values + (v_room_id, creator_jabber_id, name, description); + + +return v_room_id; +end new; + +procedure delete ( + room_id in jb_conference_rooms.room_id%TYPE +) +is +begin + delete from jb_conference_rooms + where room_id = jb_conference_room.delete.room_id; + +acs_object.delete(room_id); +end delete; + +end jb_conference_room; +/ +show errors; + + + + + + +-- Conference Room Thread +-- no implementation as object +-- user permission controlled for entire room, not for a single thread + + + + +create sequence jb_conference_room_threads_seq start with 1; + +create table jb_conference_room_threads ( + thread_id integer primary key, + room_id integer not null references jb_conference_rooms(room_id), + start_time date, + end_time date, + subject varchar2(200), + description varchar2(1000), + creator_jabber_id varchar2(255), + creator_user_id integer references users(user_id) + ); + + +-- Maps Rooms to the threads where the dicussion Started, for storing the structure of a discussion on an major topic, that maybe +-- displayed later . + + + +create table jb_room_start_from_thread ( + thread_id not null references jb_conference_room_threads(thread_id), + room_id not null references jb_conference_rooms(room_id), + primary key(thread_id , room_id) + ); + + + +-- maps a Room to a Party so oher users/groups can posibly browes the discussions. + +create table jb_room_party_map ( + party_id not null references parties(party_id), + room_id not null references jb_conference_rooms(room_id), + primary key (party_id , room_id) + ); + +-- stores the group_id's that have access to the conference system +-- conference_only_p indicates if this group was created for conferencing ('t') and we (jabber admin) may be allowed to change it, +-- or if this groups originated some where else in the package. + + +create table jb_conference_groups ( + group_id primary key references groups(group_id), + conference_only_p char(1) default 't' check (conference_only_p in ('t' , 'f') ), + default_room_id unique references jb_conference_rooms(room_id) + ); + + +create table jb_groups_blocked_conference( + group_id primary key references groups(group_id) + ); + + +-- IMPORTANT +-- creation of a dummy conference room and conference room thread, so the C-module can work! +-- C-module has an own sequence for the threads, but it needs to have a start point, so the database has to provide this start point + + + + +create table jb_conference_protocols ( + jabber_id varchar2(100), + user_id integer references users(user_id), + message varchar2(1000), + stored date, + room_id integer references jb_conference_rooms(room_id), + thread_id integer references jb_conference_room_threads(thread_id) + ) ; + +create index jb_conference_protocols_id on jb_conference_protocols(room_id, thread_id); + + + + + +-- Now come some PL/SQL procedures and functions, which are used by the c-modules + +-- validate whether user is registered + +create or replace procedure jb_reg_validation(screen_in IN varchar2 , regstate IN varchar2) is + v_user_id jb_screens.user_id%TYPE; + BEGIN + v_user_id := v_user_id; + + END; + + +/ + +show errors + +-- Update the online state of a user +create or replace procedure jb_update_status (status_in IN varchar2 , resourc_in IN varchar2 , screen_in IN varchar2 , service_in IN varchar2) +IS +service_long varchar2(255); +BEGIN + + IF service_in = 'a' THEN + service_long := 'aim' ; + END IF; + IF service_in = 'j' THEN + service_long := 'jabber' ; + END IF; + IF service_in = 'm' THEN + service_long := 'msn' ; + END IF; + IF service_in = 'r' THEN + service_long := 'irc' ; + END IF; + IF service_in = 'i' THEN + service_long := 'icq' ; + END IF; + IF service_in = 'y' THEN + service_long := 'yahoo' ; + END IF; + + + update jb_screens SET status = status_in , resourc= resourc_in WHERE LOWER(im_screen_name)=LOWER(screen_in) and service = service_long; + + commit; + +END; + +/ + +show errors + + +-- Clear the online states of every one on Login or Logout + +create or replace procedure jb_clear_status +IS +Begin +update jb_screens SET status='offline' , resourc='offline'; +commit; +End; +/ +show errors + + + + +--checks if jid_in is in the table of the subscription requests , we store them in ther because we may have to wait +--for a while till some one (jid_in) answers the request, it returns 0 in case there is nothing known about jid_in +--or n > 0 in case there is something known about jid_in + +create or replace function jb_subscription_check (jid_in IN varchar2) +return integer +AS r_exists integer; +BEGIN + r_exists := 0; + select count(screen) into r_exists from jb_subscription_requests where lower(screen) = lower(jid_in) ; + + return r_exists; +END; + +/ + +show errors + + + + +--inserts a new subscription request + +create or replace procedure jb_subscription_insert(jid_in IN varchar2) +IS +BEGIN + insert into jb_subscription_requests (screen , asked ) values ( jid_in , sysdate); + commit; +END; + +/ +show errors + +--removes a certain subscription request + +create or replace procedure jb_subscription_del (jid_in IN varchar2) +IS +BEGIN + delete from jb_subscription_requests where lower(screen) = lower(jid_in); + commit; +END; + +/ +show errors + + + + +--Find the user_id to a given jid, when someone invites us through sending a jabber invite from his jabber client: + +create or replace function jb_get_user_id (screen_in IN varchar2) return integer AS r_user_id integer; + +BEGIN + + Select persons.person_id INTO r_user_id + FROM persons, jb_screens + WHERE persons.person_id = jb_screens.user_id + AND jb_screens.service = 'jabber' + AND jb_screens.im_screen_name = screen_in; + + return r_user_id; + +END; + +/ + +show errors + + + + + +--Get the jid from a given user_id + +create or replace function jb_get_jid (user_id_in IN integer) return VARCHAR2 AS r_jid varchar2(150); +BEGIN + + Select sn.im_screen_name INTO r_jid + FROM jb_screens sn + WHERE sn.user_id = user_id_in + AND sn.service = 'jabber'; + + return r_jid; + +END; +/ +show errors + + + + +--if a room is destroyed or the topic changes, the discussion on the last topic (thread) ends ,insert this time as thread end time: + + +create or replace procedure jb_conference_thread_finish(thread_id_in IN integer) +IS +BEGIN + update jb_conference_room_threads set end_time = sysdate where thread_id = thread_id_in; + commit; +END; +/ +show errors + + + + + +--When a room starts or the topic changes a new Thread is created : + + +create or replace procedure jb_conference_thread_new (thread_id_in IN integer , room_id_in IN integer , subject_in IN varchar2 , creator_jid_in IN varchar2 , creator_user_id_in IN integer) +IS + +BEGIN + + IF creator_user_id_in = 0 THEN + + insert into jb_conference_room_threads (thread_id , room_id , start_time , subject , creator_jabber_id ) + values (thread_id_in , room_id_in , sysdate , subject_in , creator_jid_in ); + + ELSE + + insert into jb_conference_room_threads (thread_id , room_id , start_time , subject , creator_jabber_id , creator_user_id ) + values (thread_id_in , room_id_in , sysdate , subject_in , creator_jid_in , creator_user_id_in); + + END IF; + + commit; + +END; + +/ +show errors + + + +--When a message is received from a conference room it is stored in the db: + + +create or replace procedure jb_conference_message(jid_in IN varchar2 , message_in IN varchar2 , room_id_in IN integer , thread_id_in IN integer , user_id_in IN integer) +IS +BEGIN + + IF user_id_in = 0 THEN + + insert into jb_conference_protocols (jabber_id , message , stored , room_id , thread_id ) + values (jid_in , message_in , sysdate , room_id_in , thread_id_in ); + + ELSE + + insert into jb_conference_protocols (jabber_id , user_id , message , stored , room_id , thread_id) + values (jid_in , user_id_in , message_in , sysdate , room_id_in , thread_id_in ); + + END IF; + + COMMIT; + +END; +/ +show errors; + + + + + + +-- When a room is created (it is maybe recreated every Monday at 8:00 ) see if we already have a room_id for that room. + +create or replace function jb_conference_room_check(room_name_in IN varchar2 ) return integer AS r_room_id integer; +BEGIN + r_room_id := -1; + + select room_id INTO r_room_id from jb_conference_rooms where lower(name)=lower(room_name_in); + + return r_room_id; + +END; +/ +show errors + + + + + +-- When a room is fully new created , create a new Table entry. We do not use the room_id given by the c-module due to the fact that +-- conference_room is implemented as object + + +create or replace procedure jb_conference_rooms_new ( user_id_in IN integer , creator_jid_in IN varchar2 , name_in IN varchar2 , description_in IN varchar2) +IS + +BEGIN + + + IF user_id_in = 0 THEN + + + declare + id integer; + begin + id := jb_conference_room.new ( + creator_jabber_id => creator_jid_in , + name => name_in , + description => description_in , + object_type => 'jb_conference_room' + ); + end; + + + ELSE + + declare + id integer; + begin + id := jb_conference_room.new ( + creator_jabber_id => creator_jid_in , + name => name_in , + description => description_in , + object_type => 'jb_conference_room' , + creation_user => user_id_in + ); + end; + + + + END IF; + + + COMMIT; + +END; + +/ +show errors + + + +-- Get the next room_id. This procedure is used in the database to get a new room_id, but it takes the ACS3.x datamodel as basis +-- In the OACS4.x datamodel conference_room is implemented as object, so we do not have a sequence, but we do not want the c-module +-- generate an error, so we give him an integer back, but we do not use this room_id (look above) + +create or replace function jb_conference_next_room_id return integer AS r_room_id integer; +BEGIN + SELECT count(*) INTO r_room_id FROM jb_services; + + return r_room_id; +END; +/ +show errors + + + +-- Get the next thread_id + +create or replace function jb_conference_next_thread_id return integer AS r_thread_id integer; +BEGIN + + SELECT jb_conference_room_threads_seq.nextval INTO r_thread_id from dual; + + return r_thread_id; + +END; + +/ +show errors + +@jabber-notification-create.sql \ No newline at end of file Index: openacs-4/contrib/packages/jabber/sql/oracle/jabber-drop.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/sql/oracle/Attic/jabber-drop.sql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/sql/oracle/jabber-drop.sql 1 Oct 2003 04:35:45 -0000 1.1 @@ -0,0 +1,42 @@ + +drop table jb_xml_to_send; +drop table jb_message_log; +drop table jb_subscription_requests; +drop table jb_user_jabber_information; +drop table jb_conference_protocols; +drop table jb_friends; +drop table jb_room_start_from_thread; +drop table jb_room_party_map; +drop table jb_conference_room_threads; +drop table jb_conference_groups; + +drop package jb_screen; +drop table jb_screens; +execute acs_object_type.drop_type('jb_screen'); +show errors + + + +drop package jb_conference_room; +drop table jb_conference_rooms; +execute acs_object_type.drop_type('jb_conference_room'); +show errors + +drop table jb_services; +drop sequence jb_message_log_seq; + +drop procedure jb_reg_validation; +drop procedure jb_update_status; +drop procedure jb_clear_status; +drop function jb_subscription_check; +drop procedure jb_subscription_insert; +drop procedure jb_subscription_del; +drop function jb_get_user_id; +drop function jb_get_jid; +drop procedure jb_conference_thread_finish; +drop procedure jb_conference_thread_new; +drop procedure jb_conference_message; +drop function jb_conference_room_check; +drop procedure jb_conference_rooms_new; +drop function jb_conference_next_room_id; +drop function jb_conference_next_thread_id; Index: openacs-4/contrib/packages/jabber/sql/oracle/jabber-notification-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/sql/oracle/Attic/jabber-notification-create.sql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/sql/oracle/jabber-notification-create.sql 1 Oct 2003 04:35:46 -0000 1.1 @@ -0,0 +1,100 @@ + +-- +-- package/jabber/sql/oracle/jabber-notification-create.sql +-- @author Bjoern Kiesbye +-- @email bkiesbye@sussdorff-roy.com +-- + + + + +-- This function calls register the jabber package with the service-contracts as implementation +-- for the DeliveryMethod interface of the notification package. + + +-- implemeting the notification::imessage::send_or_mail function. + +declare + impl_id integer; + foo integer; +begin + + impl_id := acs_sc_impl.new ( + 'NotificationDeliveryMethod', + 'notification_imessage_or_email', + 'jabber' + ); + + + foo := acs_sc_impl_alias.new ( + 'NotificationDeliveryMethod', + 'notification_imessage_or_email', + 'Send', + 'notification::imessage::send_or_email', + 'TCL' + ); + + + acs_sc_binding.new ( + contract_name => 'NotificationDeliveryMethod', + impl_name => 'notification_imessage_or_email' + ); + + + foo:= notification_delivery_method.new( + short_name => 'imessage_or_email', + sc_impl_id => impl_id, + pretty_name => 'Instant Message or Email', + creation_user => null, + creation_ip => null + ); + + +end; +/ +show errors + +-- implemeting the notification::imessage::send_and_mail function. + +declare + impl_id integer; + foo integer; +begin + + impl_id := acs_sc_impl.new ( + 'NotificationDeliveryMethod', + 'notification_imessage_and_email', + 'jabber' + ); + + + foo := acs_sc_impl_alias.new ( + 'NotificationDeliveryMethod', + 'notification_imessage_and_email', + 'Send', + 'notification::imessage::send_and_email', + 'TCL' + ); + + + acs_sc_binding.new ( + contract_name => 'NotificationDeliveryMethod', + impl_name => 'notification_imessage_and_email' + ); + + + foo:= notification_delivery_method.new( + short_name => 'imessage_and_email', + sc_impl_id => impl_id, + pretty_name => 'Instant Message and Email', + creation_user => null, + creation_ip => null + ); + + +end; +/ +show errors + +@jabber-notification-forum-create.sql + Index: openacs-4/contrib/packages/jabber/sql/oracle/jabber-notification-forum-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/sql/oracle/Attic/jabber-notification-forum-create.sql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/sql/oracle/jabber-notification-forum-create.sql 1 Oct 2003 04:35:46 -0000 1.1 @@ -0,0 +1,51 @@ +-- +-- package/jabber/sql/oracle/jabber-notification-forum-create.sql +-- @author Bjoern Kiesbye +-- @email bkiesbye@sussdorff-roy.com +-- + + + + +-- This code registers the forum (package) with the +-- new NotificationMethodImplementations from the jabber package. +-- When the forum (package is re/installed after the jabber package) +-- the code from this from this file should run after the forum instalation. +-- This hack should be part of the forums package. +-- Comment: it should not be a hack like this anyway , the service contract is responsible +-- ,to let every App., that is interested in making use of the NotificationDeliveryMethod interface, +-- get access to all implementations of this interface. The Notification package is able to handle +-- more then one implementation of it's interface (like it schould by openacs definition) +-- but the service contract package dosn't seem to be able to properly populate multiple implementations +-- of the same interface (service contract). Even if it alowes multiple implementations to exist + +declare +v_type_id_message int; +v_delivery_method_id_and notification_types_del_methods.delivery_method_id%TYPE; +v_type_id_thread notification_types_del_methods.type_id%TYPE; +v_delivery_method_id_or notification_types_del_methods.delivery_method_id%TYPE; +begin + SELECT delivery_method_id INTO v_delivery_method_id_and FROM notification_delivery_methods WHERE short_name like('imessage_and_email'); + + + SELECT delivery_method_id INTO v_delivery_method_id_or FROM notification_delivery_methods WHERE short_name like('imessage_or_email'); + + SELECT type_id INTO v_type_id_message FROM notification_types WHERE short_name like('forums_message_notif'); + + + SELECT type_id INTO v_type_id_thread FROM notification_types WHERE short_name like('forums_forum_notif'); + + insert into notification_types_del_methods (type_id, delivery_method_id) + values ( v_type_id_thread ,v_delivery_method_id_and); + + insert into notification_types_del_methods (type_id, delivery_method_id) + values ( v_type_id_thread , v_delivery_method_id_or ); + + insert into notification_types_del_methods (type_id, delivery_method_id) + values ( v_type_id_message , v_delivery_method_id_and); + + insert into notification_types_del_methods (type_id, delivery_method_id) + values ( v_type_id_message , v_delivery_method_id_or); +end; +/ +show errors Index: openacs-4/contrib/packages/jabber/tcl/jabber-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/tcl/Attic/jabber-procs.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/tcl/jabber-procs.tcl 1 Oct 2003 04:35:46 -0000 1.1 @@ -0,0 +1,757 @@ +# /tcl/jabber-procs + +ad_library { + Procedures for Jabber Module + + @author Bjoern Kiesbye + @creation-date 2002/08/15 22:00:00 + + changed name to jabber-procs, 2002/09/24 luis mosteiro fernandez + changes made by Luis Mosteiro Fernandez, 2002/10/08 +} + + +ad_proc jb_get_transport_id_from_symbol { service } "this func returns the transport_id and takes the services stored in the db" { + + switch $service { + "jabber" { return 1} + "aim" { return 2} + "icq" { return 3} + "msn" { return 4} + "yahoo" { return 5} + "irc" { return 6} + default {return 0} + } + +} + + +ad_proc jb_get_link_color_from_state { state } "this func returns the color for a chat link , it takes the state stored in the db" { + + switch $state { + + "online" { return "green" } + "chat" { return "green" } + "away" { return "yellow" } + "dnd" { return "navy" } + "xa" { return "mediumslateblue"} + "offline" { return "black" } + default {return "black" } + } + +} + + +ad_proc jb_get_colored_link { state jid scope } "this func returns a the colored chat link , it takes the state stored in the db and a full jid" { + + set link_to_return "Message" } + "chat" { append link_to_return "\"green\">Message" } + "away" { append link_to_return "\"yellow\">Message" } + "dnd" { append link_to_return "\"navy\">Message" } + "xa" { append link_to_return "\"mediumslateblue\">Message"} + "offline" { set link_to_return "Offline" } + default {set link_to_return "Offline" } + } + + return $link_to_return + +} + + + +ad_proc jb_get_pritty_name_from_symbol { service } "this func returns a pritty name to be displayed , takes a service symbol from the Table jb_screens" { + + switch $service { + + "aim" { return "AIM" } + "icq" { return "ICQ" } + "yahoo" { return "Yahoo" } + "msn" { return "MSN" } + "irc" { return "IRC" } + "conference" { return "Conference" } + "jabber" { return "Jabber" } + default {return "" } + } + + + +} + +ad_proc jb_smart_get_colored_link { jabber_state state frinds_user_id display_online display_offline } "this func returns a the colored chat link , it takes the state stored in the db and a user_id to chat with and a string to be displayed" { + + set link_to_return "$display_online" } + "chat" { append link_to_return "\"green\">$display_online" } + "away" { append link_to_return "\"yellow\">$display_online" } + "dnd" { append link_to_return "\"navy\">$display_online" } + "xa" { append link_to_return "\"mediumslateblue\">$display_online"} + "offline" { set link_to_return "$display_offline" } + default {set link_to_return "$display_offline" } + } + + return $link_to_return + +} + + +ad_proc jb_register_aprove { user_id jscreen passwd } "This func registers a user with the Jabber server, it asumes that the user has ben approved already. If the tabel entrys for the user doesn't exist they will be created , Returns 0 on succes , -1 if the IM System isn't available (will be proccesed as soon as it becomes available, -2 if the jscreen already exists" { + + if {![db_0or1row check_if_user_has_contacts "select (user_id) as dummy from jb_screens where user_id = :user_id"]} { + db_dml create_a_contacts_table_entry "insert into jb_user_jabber_information (user_id) values (:user_id)" + } + + if {![db_0or1row does_screen_exist "select screen_id from jb_screens where im_screen_name = :jscreen and service = 'j'"]} { + + + db_exec_plsql new_screen { + declare + id integer; + begin + id := jb_screen.new( + user_id => :user_id, + im_screen_name => :jscreen, + service => 'jabber', + status => 'offline', + refcount => '1' + ); + end; + } + + + db_dml register_with_user "update jb_user_jabber_information SET jabber_regstate = 'a' , jabber_passwd = :passwd where user_id = :user_id" + + set success [jb_register $jscreen $passwd] + + return $success + + } else { + return "-3" + } + +} + + +ad_proc jb_subscribe_transport { screen service } "This function takes screenname and a service symbol, it returns the screen_id from jb_screens. If it doesn't exist jet it subscribes this screenname with the service identified by the service symbol" { + + set group "online_trace" + regsub -all "@" $screen "%" screen + + if {[db_0or1row does_screen_exist_2 "select screen_id from jb_screens where lower(im_screen_name) = lower(:screen) and lower(service) = lower(:service)"]} { + + db_dml update_ref_count {update jb_screens set refcount = refcount + 1 where screen_id = :screen_id} + return $screen_id + + } else { + + db_dml add_to_jb_screens {insert into jb_screens (screen_id , im_screen_name , service ,status , refcount ) values (acs_object_id_seq.nextval , lower(:screen) , lower(:service) , 'offline' , '1')} + + set success [jb_addtransportbuddy $screen $group [jb_get_transport_id_from_symbol $service] ] + + db_1row get_the_new_screen_id {select (screen_id) as new_screen_id from jb_screens where im_screen_name = lower(:screen) and service = lower(:service)} + + return $new_screen_id + + } + + +} + + +ad_proc jb_best_chat { user_id_friend } "This function gives back a link to start a chat" { + + + set user_id [ad_get_user_id] + + + + set trans_symbol [list j a i m y r] + + set jabber_user [list "dumy" "offline" ] + set aim_user [list "dumy" "offline" ] + set msn_user [list "dumy" "offline" ] + set icq_user [list "dumy" "offline" ] + set yahoo_user [list "dumy" "offline" ] + set irc_user [list "dumy" "offline" ] + + db_foreach find_m_all "select (sn.im_screen_name) as screen, (sn.service) as service ,(sn.status) as status + FROM jb_screens sn + WHERE sn.user_id = :user_id " { + + + switch $service { + + "jabber" {set jabber_user [list $screen $status $service]} + "aim" {set aim_user [list $screen $status $service]} + "msn" {set msn_user [list $screen $status $service]} + "icq" {set icq_user [list $screen $status $service]} + "yahoo" {set yahoo_user [list $screen $status $service]} + "irc" {set irc_user [list $screen $status $service]} + } + + + } + + + + + + set jabber_friend [list "dumy" "offline" ] + set aim_friend [list "dumy" "offline" ] + set msn_friend [list "dumy" "offline" ] + set icq_friend [list "dumy" "offline" ] + set yahoo_friend [list "dumy" "offline" ] + set irc_friend [list "dumy" "offline" ] + + + + db_foreach find_m_all_friend {select (sn.im_screen_name) as screen, (sn.service) as service ,(sn.status) as status FROM jb_screens sn + WHERE sn.user_id = :user_id_friend } { + + + + switch $service { + + "jabber" {set jabber_friend [list $screen $status $service]} + "aim" {set aim_friend [list $screen $status $service]} + "msn" {set msn_friend [list $screen $status $service]} + "icq" {set icq_friend [list $screen $status $service]} + "yahoo" {set yahoo_friend [list $screen $status $service]} + "irc" {set irc_friend [list $screen $status $service]} + } + + + } + + set best_state [list] + set notifyable 0 + set jabberable 0 + + for {set i 0} {$i < 5} {incr i} { + + + switch $i { + + 0 { if {[lindex $jabber_user 1] != "offline" && [lindex $jabber_friend 1] != "offline" } { + return "chat.tcl?user_id_friend=$user_id_friend" + break + } elseif { [lindex $jabber_friend 1] != "offline"} { + lappend best_state 1.2 + } elseif { [lindex $jabber_user 1] != "offline"} { + set jabberable 1 + } + } + + 1 { if {[lindex $aim_user 1] == "offline" && [lindex $aim_friend 1] != "offline"} { + return "aim:goim?screenname=[jb_get_aim_screen_from_friend_id $user_id_friend]&message=Hello" + } elseif {[lindex $aim_user 1] != "offline" && [lindex $aim_friend 1] != "offline"} { + return "aim:buddyicon?message=Aiesec+Chat+Invite&listofscreennames=[jb_get_aim_screen_from_friend_id $user_id_friend]" + lappend best_state 2 + set notifyable 1 + } else {lappend best_state 0} + } + + 2 { if {[lindex $msn_user 1] != "offline" && [lindex $msn_friend 1] != "offline"} { + lappend best_state 2 + set notifyable 1 + } elseif { [lindex $msn_friend 1] != "offline"} { + lappend best_state 1 + set notifyable 1 + } else { lappend best_state 0} + } + + 3 { if {[lindex $yahoo_user 1] != "offline" && [lindex $yahoo_friend 1] != "offline"} { + lappend best_state 2 + set notifyable 1 + } elseif {[lindex $yahoo_friend 1] != "offline"} { + lappend best_state 1 + set notifyable 1 + } else {lappend best_state 0} + } + + 4 { if { [lindex $icq_user 1] != "offline" && [lindex $icq_friend 1] != "offline"} { + lappend best_state 2 + set notifyable 1 + } elseif {[lindex $icq_friend 1] != "offline"} { + lappend best_state 1 + set notifyable 1 + } else { lappend best_state 0} + } + + 5 { if {[lindex $irc_user 1] != "offline" && [lindex $irc_friend 1] != "offline"} { + lappend best_state 2 + } elseif {[lindex $icq_friend 1] != "offline"} { + lappend best_state 1 + } else {lappend best_state 0} + } + + + } + } + set hiest 0 + set trans_symbols_2 [list jabber aim msn yahoo icq irc] + for {set j 0} {$j <= 5 } {incr j} { + if {[expr [lindex $best_state $j] - $hiest] > 0 } { + set hiest [lindex $best_state $j] + set trans [lindex $trans_symbols_2 [expr $j + 1]] + } + + } + if {$hiest == 2 } { return "display-name.tcl?user_id_friend=$user_id_friend&trans_symbol=$trans" } + if {$hiest == 1.2} { return "go-to-jabber?user_id_friend=$user_id_friend&trans_symbol=$trans"} + if {$hiest == 1 && $jabberable } { return "ask-to-jabber?user_id_friend=$user_id_friend&trans_symbol=$trans"} + if {$hiest == 1 } { return "notify-only?user_id_frind=$user_id_friend&trans_symbol=$trans"} + + return " [lindex $best_state 0 ] $hiest " + + +} + +ad_proc jb_create_jid {screen service} "This function takes a screen_name and a service Symbol and returns a full jid " { + + append screen "@" + append screen [jb_get_transport_url_from_id [jb_get_transport_id_from_symbol $service]] + return $screen + +} + + +ad_proc jb_get_aim_screen_from_friend_id {user_id_friend } "This func returns the Aim Screenname that belongs to a friend id " { + + if {[db_0or1row get_screen "SELECT (sn.im_screen_name) as screen FROM jb_screens sn WHERE sn.user_id = :user_id_friend AND sn.service = 'aim' "]} { + + return $screen + + } else { + + return "error" + + } + +} + + + + +ad_proc jb_invite_user { room_name version return_url } { This funktion returns the URL (href for a link) to invite the user him self (entering a Room) to a Conference Room , the parameters are the 1. name of the room 2. wich version of the invite shuold be used (1 or2) , 3. the url of the page the user schould be redirected to after the invite has been send , 4. display will be what the browser shows to the user (diplayed name of the Link) } { + + set user_id [ad_get_user_id] + set jid_to "" + + if {[db_0or1row get_user_jid "SELECT im_screen_name FROM jb_screens WHERE user_id = :user_id AND service = 'jabber'" ]} { + + set jid_to $im_screen_name + append jid_to "@" + append jid_to [jb_get_transport_url_from_id [jb_get_transport_id_from_symbol jabber ]] + + set return_val "/jabber/conference/invite.tcl?room_name=$room_name&version=$version&jid=$jid_to&room_subject=Self&msg=Invite&return_url=$return_url" + + return $return_val + +} + + return test + +} + + + + + +ad_proc jb_get_room_thread_tree { thread_id party_id active_rooms last_visit max_depth} {try to build up a tree structure of conference Rooms} { + + set return_val "
    " + + if { $max_depth == 5} { + return "" + } + + if {$active_rooms != -1} { + + set room_count [ns_set size $active_rooms] + + } else { + + + set room_count -1 + } + + set rooms_list [list] + set rooms_count 0 + + + db_foreach get_rooms_started_at_thread " SELECT (jcr.room_id) as room_id , (jcr.name) as room_name + FROM jb_room_start_from_thread jrsft , jb_conference_rooms jcr + WHERE jrsft.thread_id = :thread_id + AND jrsft.room_id = jcr.room_id" { + + set cache [list $room_id $room_name] + lappend rooms_list $cache + set rooms_count [expr $rooms_count +1] + + } if_no_rows { + set rooms_count -1 + + } + + + + # multirow -local create test test_value + # set room_rows [multirow size multi_rooms] + + + + if { $rooms_count > 0} { + + for {set k 0} {$k < $rooms_count} {incr k} { + + + + set room_name [lindex [lindex $rooms_list $k] 1] + # room_array(room_name) + set room_id [lindex [lindex $rooms_list $k] 0] + #room_arry(room_name) + ns_log notice "for dem false 1" + + set active "false" + + + if {$room_count != -1} { + + set active "false" + set active_value "-1" + ns_log notice "for dem false 2.1" + for {set i 0 } {$i < $room_count} {incr i} { + if { [ns_set key $active_rooms $i ] == $room_name } { + set active "true" + set active_value [jb_invite_user $room_name 2 index.tcl] + ns_log notice "for dem false 2.2" + } + } + + } + + + + append return_val "
  1. $room_name " + + + ns_log notice "for dem false 3" + if {$active == "false"} { + append return_val " Restart " + ns_log notice "for dem false 4.1" + } else { + append return_val " Enter " + ns_log notice "for dem false 4.2" + } + + + + + set thread_table "" + set thread_list [list] + set thread_count 0 + + db_foreach get_new_conference_threads "SELECT (thread_id) as cur_thread_id , subject , start_time + FROM jb_conference_room_threads + WHERE room_id = :room_id " { + + + set cache [list $cur_thread_id $subject $start_time] + lappend thread_list $cache + set thread_count [expr $thread_count + 1 ] + + } + + if { $thread_count > 0 } { + set thread_table "
      " + for {set j 0} {$j < $thread_count} {incr j} { + + set cur_thread_id [lindex [lindex $thread_list $j] 0] + set subject [lindex [lindex $thread_list $j] 1] + set start_time [lindex [lindex $thread_list $j] 2] + + ns_log debug "for dem false 5.1" + append thread_table "
    1. $subject $start_time View Log" + + set sub_table "" + set sub_table "[jb_get_room_thread_tree $cur_thread_id $party_id $active_rooms $last_visit [expr $max_depth + 1]]" + append thread_table " $sub_table
    2. " + + + if {![empty_string_p $sub_table]} { + append thread_table "
    " + } + + + } + append thread_table "
" + } else { + + ns_log debug "for dem false 5.2" + set thread_table "" + + + } + + + ns_log notice "for dem false ENDE" + + append return_val "$thread_table" + + + + + + + } + } else { + + set return_val "" + } + + + + ns_log notice "for dem false ENDE 2 " + + return $return_val + + + +} + + + +ad_proc jb_get_conference_url_for_group {group_id} {This function gets passed a group_id and returns, the url of the Conferencing main-page for this Group. } { + + #set url [apm_package_url_from_key jabber] + set url "conference/make-group-conference-group.tcl?group_id=$group_id&type=main" + +} + +ad_proc jb_start_conference_room_for_group_url {group_id} {This function gets passed a group_id and returns, the url to start the default Conferencing room of this Group. } { + + #set url [apm_package_url_from_key jabber] + set url "conference/make-group-conference-group.tcl?group_id=$group_id&type=start_room" + +} + + +ad_proc jb_get_default_room_for_group { group_id } { This function returns the default room name for a group, if their is now default room yet it creates one.} { + + if {![db_0or1row get_default_room "SELECT (jcr.name) as room_name FROM jb_conference_groups jcg , jb_conference_rooms jcr + WHERE jcg.group_id = :group_id + AND jcg.default_room_id = jcr.room_id"]} { + + + # no default name yet + if {[db_0or1row get_group_name "SELECT group_name FROM groups WHERE group_id = :group_id"]} { + + # remove all white spaces + + regsub -all {\ } $group_name "-" group_name +ns_log notice "anfang: group_name = $group_name" + # got the groupname, try to create a room_name with it + if {[string length $group_name] <= 16} { + + set room_name $group_name + ns_log notice "A: group_name = $group_name , room_name = $room_name" + } else { + set room_name $group_name + set room_name [string range $group_name 0 15 ] + ns_log notice "B: group_name = $group_name , room_name = $room_name" + } + + set count 0 + + while {1} { + ns_log notice "jb_get_default_room_for_group 1 group_id = $group_id" + if {[db_0or1row check_if_room_exists "SELECT room_id FROM jb_conference_rooms WHERE lower(name) = lower(:room_name)"]} { + + ns_log notice "jb_get_default_room_for_group 2 room_id = $room_id" + #the room exists already , so try to figure out a different name + +set dummy "empty" + if {$count == 0} { + + set room_name [string range $room_name 0 12] + } else { + + regsub -all {[0-9]+} $room_name "" room_name + } + ns_log notice "jb_get_default_room_for_group 3 room_name = $room_name , count = $count ,dummy = $dummy" + + set count [expr $count + 1] + append room_name "$count" + ns_log notice "jb_get_default_room_for_group 3 room_name = $room_name , count = $count ,dummy = $dummy" + + + if {$count > 999} {return -1} + + } else { + + # we have a name so create the room + + set suc [jb_createconferenceroom $room_name [ad_conn user_id] "First Start" "$room_name@[jb_get_transport_url_from_id [jb_get_transport_id_from_symbol jabber]]" "This Room is the default Room for Group: $group_name"] + ns_log notice "jb_get_default_room_for_group 4 suc = $suc" + + if {$suc != "-1"} { + + if {[db_0or1row get_room_id "SELECT (room_id) as new_room_id FROM jb_conference_rooms WHERE name = :room_name"]} { + + db_dml map_new_room_to_group "INSERT INTO jb_room_party_map (room_id , party_id) VALUES (:new_room_id , :group_id)" + db_dml update_the_room_type "UPDATE jb_conference_rooms SET type = 'master' WHERE room_id = :new_room_id " + + + } + + db_dml insert_new_room_as_default "DECLARE + v_room_id jb_conference_rooms.room_id%TYPE; + begin + SELECT room_id INTO v_room_id + FROM jb_conference_rooms + WHERE lower(name) = lower(:room_name); + + UPDATE jb_conference_groups + SET default_room_id = v_room_id + WHERE group_id = :group_id; + END;" + + + return $room_name + } else { + + return "-1" + } + + } + + + + + + } + } else { + return "-1" + } + } else { + + return $room_name + } + } + + + + + +namespace eval notification { + + + namespace eval imessage { + + ad_proc send_and_email { to_user_id reply_object_id notification_type_id subject content } {This procedure Sends a IM-msg to the user user_id, it figures out wich system to use by User preferences and his current online state (the mesage will be trunct to 500 charackters), and sends an email } { + + ns_log notice "notification::imessage::send_and_mail 1" + set suc [ notification::imessage::send $to_user_id $reply_object_id $notification_type_id "$subject" "$content"] + + ns_log notice "notification::imessage::send_and_mail 2 suc = $suc" + + notification::email::send $to_user_id $reply_object_id $notification_type_id "$subject" "$content" + + ns_log notice "notification::imessage::send_and_mail 3" + + } + + + ad_proc -public send_or_email { to_user_id reply_object_id notification_type_id subject content } { This procedure Sends a IM-msg to the user user_id, it figures out wich system to use by User preferences and his current online state (the content will be trunct to 50 charackters). Or in case the user is offline it will send an email } { + ns_log notice "notification::imessage::send_or_mail 1" + set suc 0 + set suc [ notification::imessage::send $to_user_id $reply_object_id $notification_type_id "$subject" "$content"] + ns_log notice "notification::imessage::send_or_mail 2 suc = $suc" + + if {$suc == "-1"} { + ns_log notice "notification::imessage::send_or_mail 3" + notification::email::send $to_user_id $reply_object_id $notification_type_id "$subject" "$content" + } + + ns_log notice "notification::imessage::send_or_mail 4" + + + } + + + ad_proc send { to_user_id reply_object_id notification_type_id subject content } { This procedure Sends a IM-msg to the user user_id, it figures out wich system to use by User preferences and his current online state } { + + ns_log notice "notification::imessage::sendbb" + set state 0 + set cur_screen "" + set cur_service "" + db_foreach get_user_screens_and_state "SELECT im_screen_name , status , service FROM jb_screens WHERE user_id = :to_user_id" { + + + switch $status { + + "online" {set cur_state 5 } + "chat" {set cur_state 4 } + "away" {set cur_state 3 } + "dnd" {set cur_state 2 } + "xa" {set cur_state 1 } + "offline" {set cur_state 0 } + default {set cur_state 0 } + } + + if {$cur_state > $state} { + + set state $cur_state + set cur_screen $im_screen_name + set cur_service $service + } + + + + + } if_no_rows { + + return -1 + } + + + if {$state == 0 } {return -1} + + # we have our best im_screen_name an service create jid + + set jid "$cur_screen@[jb_get_transport_url_from_id [jb_get_transport_id_from_symbol $cur_service]]" + + set sub_len [string length $subject] + + set content_len [string length $content] + + if { $sub_len < 500 } { + + set left_len [expr 500 - $sub_len] + + if { $content_len < $left_len } { + + set msg "$subject $content" + + } else { + + set msg "$subject [string range $content 0 [expr $left_len - 6]] . ." + } + + } else { + + set msg "[string range $subject 0 492] . . . " + } + + + + return [jb_message $jid $msg] + + } + } +} Index: openacs-4/contrib/packages/jabber/www/E4.jar =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/E4.jar,v diff -u -N Binary files differ Index: openacs-4/contrib/packages/jabber/www/JabberApplet.jar =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/JabberApplet.jar,v diff -u -N Binary files differ Index: openacs-4/contrib/packages/jabber/www/WebStart.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/WebStart.html,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/WebStart.html 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/add-external-contact-2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/add-external-contact-2.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/add-external-contact-2.tcl 1 Oct 2003 04:35:46 -0000 1.1 @@ -0,0 +1,82 @@ +ad_page_contract { + + add new contact to IM-Adressbook + inserts new rows in jb_friends + @author Luis Mosteiro Fernandez + @creation-date 2002-10-22 + @param first_names first names of the new contact + @param last_name last name of the new contact + @param screen_name array of screen_names , which should be added + +} { + + first_names:notnull + last_name:notnull + screen_name:array + +} + + +set user_id [ad_conn user_id] +ad_maybe_redirect_for_registration + + +db_foreach get_services "Select service from jb_services where active_check_p = 't'" { + + set user_screen_name $screen_name($service) + + if {$service == "msn"} { + regsub -all "@" $user_screen_name "%" user_screen_name + + } + + + if {![empty_string_p $user_screen_name]} { + + if {![db_0or1row check_screen_id "Select screen_id from jb_screens where im_screen_name = :user_screen_name and service = :service"]} { + + db_exec_plsql new_screen { + declare + id integer; + begin + id := jb_screen.new( + im_screen_name => :user_screen_name, + service => :service, + status => 'offline', + refcount => '1', + object_type => 'jb_screen' + ); + end; + } + + + + db_1row get_new_screen_id {Select screen_id from jb_screens where im_screen_name = :user_screen_name and service = :service} + db_transaction { + + db_dml update_reference {update jb_screens SET refcount = refcount + 1 where screen_id = :screen_id} + db_dml insert_into_friends {insert into jb_friends (user_id, friend_screen_id, friend_first_name, friend_last_name) + values (:user_id, :screen_id, :first_names, :last_name)} + } + + + set success [jb_addtransportbuddy $user_screen_name "online-trace" [jb_get_transport_id_from_symbol $service]] + + + + } else { + + db_1row get_new_screen_id {Select screen_id from jb_screens where im_screen_name = :user_screen_name and service = :service} + + db_transaction { + + db_dml update_reference {update jb_screens SET refcount = refcount + 1 where screen_id = :screen_id} + db_dml insert_into_friends {insert into jb_friends (user_id, friend_screen_id, friend_first_name, friend_last_name) + values (:user_id, :screen_id, :first_names, :last_name)} + } + +} + } +} + +ns_returnredirect "index" \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/add-external-contact-confirm.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/add-external-contact-confirm.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/add-external-contact-confirm.adp 1 Oct 2003 04:35:46 -0000 1.1 @@ -0,0 +1,35 @@ + + + +Edit Contact Information + + +

Please confirm your Entrys!

+Or backup your Browser to coreckt your Entrys! + +

+First Name: @first_names@ +

+

+Last Name: @last_name@ +

+ +
+ + + + + + +

+@new_im_contacts.pretty_name@ : @new_im_contacts.im_screen_name@ +

+
+ +
+ +
+
+ +Back to index page + Index: openacs-4/contrib/packages/jabber/www/add-external-contact-confirm.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/add-external-contact-confirm.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/add-external-contact-confirm.tcl 1 Oct 2003 04:35:46 -0000 1.1 @@ -0,0 +1,41 @@ +ad_page_contract { + + add new contact + @author Bjoern Kiesbye + @creation-date 2003-01-05 + +} { + + screen_name:array + first_names:notnull + last_name:notnull + +} -properties { + + get_services:multirow + context:onevalue + +} + +set context [list "Add external contact"] + +multirow create new_im_contacts im_screen_name service pretty_name display + +db_foreach get_services "Select service , pretty_name from jb_services where active_check_p = 't'" { + + set im_screen_name $screen_name($service) + + + if {![empty_string_p $im_screen_name]} { + + multirow append new_im_contacts $im_screen_name $service $pretty_name true + + } else { + + multirow append new_im_contacts $im_screen_name $service $pretty_name false + } + + +} + +ad_return_template \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/add-external-contact.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/add-external-contact.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/add-external-contact.adp 1 Oct 2003 04:35:46 -0000 1.1 @@ -0,0 +1,16 @@ + +Add new Contact to IM-Adressbook +@context@ + + +

Add new Contact to IM-Adressbook

+ +

Please fill in the following textareas. You have to fill in one of +the textareas for the IM-Services.

+ + + +
+ +Back to index page + Index: openacs-4/contrib/packages/jabber/www/add-external-contact.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/add-external-contact.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/add-external-contact.tcl 1 Oct 2003 04:35:46 -0000 1.1 @@ -0,0 +1,26 @@ +ad_page_contract { + + add new contact + @author Luis Mosteiro Fernandez + @creation-date 2002-10-22 + +} -properties { + + context:onevalue + +} + +set context [list "Add external contact"] + +ad_form -name add-external -action add-external-contact-confirm -form { + {first_names:text(text) {label "First Names:
"}} + {last_name:text(text) {label "Last Name:
"}} +} + +db_foreach get_services "Select service , pretty_name from jb_services where active_check_p = 't'" { + + template::element create add-external screen_name.$service -datatype text -widget text -label "$pretty_name screen:
" + +} + +ad_return_template Index: openacs-4/contrib/packages/jabber/www/aim.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/aim.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/aim.adp 1 Oct 2003 04:35:46 -0000 1.1 @@ -0,0 +1,51 @@ + +Jabber Aim + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Aim Utils:
+ This section works with Internet Explorer and Aim installed only +
+ Send a Chat Invite +
+ Add this Buddy to your Aim Roster +
+ Send a Buddy Icon +
+ This Section works with any Browser +
+ Insert a Message and send it to your Friend ! +
+ +
+ Back +
+ + + + Index: openacs-4/contrib/packages/jabber/www/aim.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/aim.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/aim.tcl 1 Oct 2003 04:35:46 -0000 1.1 @@ -0,0 +1,32 @@ +ad_page_contract { + + aim.tcl + @author Luis Mosteiro Fernandez + @creation-date 2002-10-16 + @param return_url to which url do you want to send the information + @param screen + +} { + + {return_url "index"} + screen:notnull + +} -properties { + + screen:onevalue + return_url:onevalue + aim_value:onevalue + +} + +set aim_value $screen +regsub -all {[@][^ ]+} $screen "" screen +ns_log notice "AIM PAGE $screen $aim_value" + +ad_form -name message -action message-2 -form { + {screen:text(hidden) {value $aim_value}} + {return_url:text(hidden) {value $return_url}} + {message:text(textarea) {html {cols 25}} {html {rows 5}} {label "Message:"}} +} + +ad_return_template \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/ask-to-jabber.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/ask-to-jabber.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/ask-to-jabber.tcl 1 Oct 2003 04:35:46 -0000 1.1 @@ -0,0 +1,31 @@ +ad_page_contract { + +} { + + user_id_friend:notnull,integer + trans_symbol:notnull + {return_url "index.tcl"} + +} + +set user_id [ad_conn user_id] + +db_0or1row get_name_to_notify "SELECT (sn.im_screen_name) as screen FROM jb_screens sn WHERE sn.user_id = :user_id_friend AND sn.service = :trans_symbol" + +set notify_screen "$screen@[jb_get_transport_url_from_id [jb_get_transport_id_from_symbol $trans_symbol]]" + +db_0or1row get_name "select first_names , last_name from persons where person_id =:user_id" + +set message "$first_names $last_name would like you to come to Jabber at ([jb_get_transport_url_from_id 1]) {You cant respond to this Message!}" + +jb_message $notify_screen $message + +db_foreach get_screens "Select (sn.im_screen_name) as screen, (sn.user_id) as cur from jb_screens sn WHERE (sn.user_id = :user_id or sn.user_id = :user_id_friend) AND sn.service = 'jabber'" { + if {$cur == $user_id} { + set user_a $screen + } else {set user_b $screen} +} + +set suc [jb_chat $user_a $user_b] + +ns_returnredirect $return_url Index: openacs-4/contrib/packages/jabber/www/buddy-add.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/buddy-add.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/buddy-add.tcl 1 Oct 2003 04:35:46 -0000 1.1 @@ -0,0 +1,59 @@ +ad_page_contract { + + add a user as buddy of logged-in user + + @param friend_id + @param groupe + @param return_url + +} { + friend_id:integer,notnull + {return_url "/"} + {groupe "aiesec"} +} + +set user_id [ad_conn user_id] +ad_maybe_redirect_for_registration +set user_id_friend $friend_id + +#if {[db_0or1row is_blocked "select blocked from jb_friends where user_id = :user_id and user_id_friend= :user_id_friend"]} { + + # if { $blocked == "t" } { + # set html "

You can't add this Member!

Back

" + # ns_return 200 text/html $html + # } else { + # ad_returnredirect "$return_url" + # } +#} else { + +set both 0 + +db_foreach get_jids "select (sn.user_id) as user_id_cur, (sn.im_screen_name) as jabber_screen from jb_screens sn where (sn.user_id = :user_id or sn.user_id = :user_id_friend) and sn.service = 'jabber'" { + if {$user_id == $user_id_cur } { + set jid_a [list $jabber_screen $jabber_screen $groupe] + set both [expr $both + 1] + } + + if {$user_id_friend == $user_id_cur } { + set jid_b [list $jabber_screen $jabber_screen $groupe] + set both [expr $both + 1] + + } + +} + + +if {$both == 2} { + set success [jb_addbuddy $jid_a $jid_b] +} + +db_foreach get_screen_ids "select screen_id from jb_screens where user_id = :friend_id" { + + db_dml add_buddy "insert into jb_friends (user_id , friend_screen_id) values (:user_id , :screen_id)" + db_dml update_refcount "UPDATE jb_screens set refcount = (refcount +1) where screen_id = :screen_id" + +} + +ad_returnredirect $return_url + +} Index: openacs-4/contrib/packages/jabber/www/buddy-remove.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/buddy-remove.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/buddy-remove.tcl 1 Oct 2003 04:35:46 -0000 1.1 @@ -0,0 +1,49 @@ +ad_page_contract { + + remove a user as buddy of logged-in user + + @param friend_id +} { + friend_id:integer,notnull + {return_url "/"} +} + + + + +if {![info exists grupe]} { + set groupe aiesec +} + +set user_id [ad_conn user_id] +set user_id_friend $friend_id +set both 0 + +db_foreach get_jids "select (sn.user_id) as user_id_cur, (sn.im_screen_name) as jabber_screen from jb_screens sn where (sn.user_id = :user_id or sn.user_id = :user_id_friend) and sn.service = 'jabber'" { + if {$user_id == $user_id_cur } { + set jid_a [list $jabber_screen $jabber_screen $groupe] + set both [expr $both + 1] + } + + if {$user_id_friend == $user_id_cur } { + set jid_b [list $jabber_screen $jabber_screen $groupe] + set both [expr $both + 1] + + } + +} + + +if {$both == 2} { + set success [jb_removebuddy $jid_a $jid_b] +} + +db_foreach get_screen_ids "select screen_id from jb_screens where user_id = :friend_id" { + + db_dml remove_buddy "delete from jb_friends where user_id = :user_id and friend_screen_id = :screen_id" + db_dml update_refcount "UPDATE jb_screens set refcount = (refcount -1) where screen_id = :screen_id" +} + +ad_returnredirect $return_url + + Index: openacs-4/contrib/packages/jabber/www/chat.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/chat.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/chat.tcl 1 Oct 2003 04:35:46 -0000 1.1 @@ -0,0 +1,23 @@ +ad_page_contract { + + @param return_url + @param user_id_friend +} { + + user_id_friend:notnull,integer + {return_url "index.tcl"} +} + + +set user_id [ad_conn user_id] +ad_maybe_redirect_for_registration + +db_foreach get_screens "Select (sn.im_screen_name) as screen, (sn.user_id) as cur from jb_screens sn WHERE (sn.user_id = :user_id or sn.user_id = :user_id_friend) AND service = 'jabber'" { + if {$cur == $user_id} { + set user_a $screen + } else {set user_b $screen} +} + +set suc [jb_chat $user_a $user_b] + +ns_returnredirect $return_url Index: openacs-4/contrib/packages/jabber/www/chat1.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/chat1.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/chat1.adp 1 Oct 2003 04:35:46 -0000 1.1 @@ -0,0 +1,23 @@ + +Jabber Chat + +

Jabber Chat

+ +

Please insert the following varaibles!

+ +
+

Buddy1: +
+

+

Buddy2: +
+

+ +
+ + + + + + + Index: openacs-4/contrib/packages/jabber/www/current-users-online.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/current-users-online.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/current-users-online.adp 1 Oct 2003 04:35:46 -0000 1.1 @@ -0,0 +1,47 @@ + +Current users online +@context@ + +

Here you can see all users online, who are not in your buddy list yet sorted by the prefix of their last name!

+ +

+ + +@prefix_links.prefix@ |  + + +@prefix_links.prefix@ |  + + +

+ + + + + + + +
+ + + + + + + + + + + + + + +
Other Community Users Online
@other_status.first_names@ @other_status.last_name@Add to friends
+ +
+
+
+
+ +

There are no users with the prefix @prefix@, who are online now and not in your list!

+
\ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/current-users-online.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/current-users-online.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/current-users-online.tcl 1 Oct 2003 04:35:46 -0000 1.1 @@ -0,0 +1,76 @@ +ad_page_contract { + + site to display all users online + @author Luis Mosteiro Fernandez, lmosteiro@sussdorff-roy.com + @author Bjoern Kiesbye, bkiesbye@sussdorff-roy.com + @creation-date 2003-03-26 + @param prefix display users depending on this prefix + +} { + + {prefix "A"} + +} -properties { + +} + +set all_invisible [util::whos_online::all_invisible_user_ids] +if {[llength $all_invisible] == 0 } {lappend all_invisible 0} +set all_users [util::whos_online::all_user_ids] + +set context [list "Online users"] + +set user_id [ad_conn user_id] +ad_maybe_redirect_for_registration + +set any_is_online_p 0 + +multirow create prefix_links prefix +set prefix_list [list A B C D E F G H I J K L M N O P Q R S T U V W X Y Z All] +for {set j 0} { $j < [llength $prefix_list]} {incr j} { + multirow append prefix_links [lindex $prefix_list $j] +} + +multirow create other_status any_user_id any_screen_id first_names last_name service status create_jid chat + + +# query to get users within the OACS who are online in Jabber and who are not explicit friends + +if {![string equal $prefix "All"]} { + +db_foreach get_all_other_users_online " + select pr.first_names , pr.last_name , + (pr.person_id) as any_user_id , sn.screen_id, sn.status, sn.service, sn.im_screen_name + from persons pr , jb_screens sn + where pr.person_id = sn.user_id + and lower(pr.last_name) like(lower('$prefix%')) + and sn.user_id != :user_id + and sn.user_id NOT IN [tcl_to_oracle_list $all_invisible] + and status != 'offline' + and sn.screen_id not in (Select friend_screen_id from jb_friends where user_id = :user_id) + ORDER BY any_user_id +" { + set online_any($service) $status + multirow append other_status $any_user_id $screen_id $first_names $last_name $service $status [jb_create_jid $im_screen_name $service] [jb_best_chat $any_user_id] + set any_is_online_p 1 +} + +} else { + +db_foreach get_all_other_users_online " + select pr.first_names , pr.last_name , + (pr.person_id) as any_user_id , sn.screen_id, sn.status, sn.service, sn.im_screen_name + from persons pr , jb_screens sn + where pr.person_id = sn.user_id + and sn.user_id != :user_id + and sn.user_id NOT IN [tcl_to_oracle_list $all_invisible] + and status != 'offline' + and sn.screen_id not in (Select friend_screen_id from jb_friends where user_id = :user_id) + ORDER BY last_name +" { + set online_any($service) $status + multirow append other_status $any_user_id $screen_id $first_names $last_name $service $status [jb_create_jid $im_screen_name $service] [jb_best_chat $any_user_id] + set any_is_online_p 1 +} + +} \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/display-name.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/display-name.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/display-name.adp 1 Oct 2003 04:35:46 -0000 1.1 @@ -0,0 +1,11 @@ + +Jabber + +

Display Screen Name

+ +

You and your friend are both online at @im_service@. +
Your friends Screen Name at @im_service@ is: @im_screen_name@ +
Add this Screen Name to your roster to Chat with him.

+

+ + Index: openacs-4/contrib/packages/jabber/www/display-name.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/display-name.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/display-name.tcl 1 Oct 2003 04:35:46 -0000 1.1 @@ -0,0 +1,29 @@ +ad_page_contract { + + display-name.tcl + @author Bjoern Kiesbye + @author Luis Mosteiro Fernandez + @param trans_symbol which im_service + @param user_id_friend which user + +} { + + trans_symbol:notnull + user_id_friend:notnull,integer + {return_url "index.tcl"} + +} -properties { + + im_service:onevalue + im_screen_name:onevalue + +} + +set user_id [ad_conn user_id] +ad_maybe_redirect_for_registration + +set im_service $trans_symbol + +db_0or1row get_screen "select im_screen_name from jb_screens WHERE user_id = :user_id_friend and service = $trans_symbol" + + Index: openacs-4/contrib/packages/jabber/www/edit-external-contact-2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/edit-external-contact-2.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/edit-external-contact-2.tcl 1 Oct 2003 04:35:49 -0000 1.1 @@ -0,0 +1,174 @@ +ad_page_contract { + + updates the database + @author Luis Mosteiro Fernandez + @creation-date 2002-10-23 + @param screen_id who should be updated + @param first_names new value for first_names + @param last_name new value for last_name + @param im_screen_name new value for im_screen_name + +} { + friend_first_name + friend_last_name + friend_last_name_old + friend_first_name_old + im_screen_name:array + im_screen_name_old:array + services:array +} -properties { + +} + +set user_id [ad_conn user_id] +set peeraddr [ad_conn peeraddr] +set db_nulling [db_null] + +if {$friend_first_name != $friend_first_name_old} { + +db_dml update_first_name "UPDATE jb_friends SET friend_first_name = :friend_first_name + WHERE friend_first_name = :friend_first_name_old + AND friend_last_name = :friend_last_name_old + AND user_id = :user_id" + +set friend_first_name_old "$friend_first_name" + +} + + +if {$friend_last_name != $friend_last_name_old} { + +db_dml update_first_name "UPDATE jb_friends SET friend_last_name = :friend_last_name + WHERE friend_first_name = :friend_first_name_old + AND friend_last_name = :friend_last_name_old + AND user_id = :user_id" + +set friend_last_name_old "$friend_last_name" + + +} + + + + +for {set search [array startsearch services]} { [array anymore services $search]} {} { + + + set cur_service_1 [array nextelement services $search] + set cur_service $services($cur_service_1) +ns_log notice "cur_service = $cur_service , services(cur_service) = $services($cur_service_1)" + + set old_screen $im_screen_name_old($cur_service) + set new_screen $im_screen_name($cur_service) + + if {$new_screen != $old_screen} { + + if {$cur_service == "msn"} { + regsub -all "@" $old_screen "%" old_screen + regsub -all "@" $new_screen "%" new_screen + } + + if {$old_screen != "" } { + + #remove from friends list + + db_1row get_old_screen_id "SELECT (screen_id) as old_screen_id , refcount FROM jb_screens WHERE im_screen_name = :old_screen AND service = :cur_service" + + db_dml delete_from_friendslist "DELETE FROM jb_friends + WHERE friend_screen_id = :old_screen_id + AND user_id = :user_id" + + if {$refcount > 1} { + set refcount [expr $refcount - 1] + db_dml update_refcount "UPDATE jb_screens SET refcount = :refcount WHERE im_screen_name = :old_screen AND service = :cur_service" + } else { + + db_exec_plsql jb_screen_delete " + begin + jb_screen.delete(:old_screen_id); + end; + " + + set success [jb_removetransportbuddy $old_screen [jb_get_transport_id_from_symbol $cur_service]] + + } + + } + + if { $new_screen != "" } { + # check if we alreddy have this screen in the jb_screens table + if { [ db_0or1row get_new_screen_id "SELECT (screen_id) as new_screen_id , (refcount) as new_refcount FROM jb_screens WHERE im_screen_name = :new_screen AND service = :cur_service"]} { + + + #we know this screen just update the friends table. + + db_dml insert_new_frind "INSERT INTO jb_friends (friend_first_name , friend_last_name , friend_screen_id , user_id) values (:friend_first_name_old , :friend_last_name_old , :new_screen_id , :user_id)" + + set new_refcount [expr $new_refcount +1] + + db_dml update_refcount_with_screen_id "UPDATE jb_screens SET refcount = :new_refcount WHERE screen_id = :new_screen_id" + + + } else { + + #we have a total new screen + + + #create a new jb_screen object for the new screen name + db_exec_plsql new_screen { + declare + id integer; + begin + id := jb_screen.new ( + user_id => :db_nulling, + im_screen_name => :new_screen, + service => :cur_service, + status => 'offline', + refcount => '1', + object_type => 'jb_screen', + creation_user => :user_id, + creation_ip => :peeraddr + ); + end; + } + + #now add the new screen to the jabber roster + set success [jb_addtransportbuddy $new_screen "online-trace" [jb_get_transport_id_from_symbol $cur_service]] + + + db_1row get_new_screen_id "SELECT (screen_id) as new_screen_id , (refcount) as new_refcount + FROM jb_screens + WHERE im_screen_name = :new_screen + AND service = :cur_service" + + db_dml insert_new_frind "INSERT INTO jb_friends (friend_first_name , friend_last_name , friend_screen_id , user_id) + VALUES (:friend_first_name_old , :friend_last_name_old , :new_screen_id , :user_id)" + + } + + + + } + + + + + + + + } + + + + + + + +} + + + + + + +ad_returnredirect "view-external-contacts" \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/edit-external-contact-confirm.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/edit-external-contact-confirm.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/edit-external-contact-confirm.adp 1 Oct 2003 04:35:49 -0000 1.1 @@ -0,0 +1,31 @@ + + + +Edit Contact Information +Confirm + +

Please confirm your changes

+ +
+

First Name : @friend_first_name@

+

Last Name : @friend_last_name@

+ + + + + + +

+@new_im_contacts.pretty_name@ : @new_im_contacts.im_screen_name@ +

+ + + + + + +
+ +
+ +Back to index page Index: openacs-4/contrib/packages/jabber/www/edit-external-contact-confirm.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/edit-external-contact-confirm.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/edit-external-contact-confirm.tcl 1 Oct 2003 04:35:49 -0000 1.1 @@ -0,0 +1,47 @@ +ad_page_contract { + + edit external contact + @author Bjoern Kiesbye + @creation-date 2003-06-19 + @param friend Frist and Last name of the conntact that should be edited + +} { + + friend_first_name + friend_last_name + friend_last_name_old + friend_first_name_old + im_screen_name:array + im_screen_name_old:array + services:array + services_pretty:array + + + +} -properties { + + new_im_contacts + friend_first_name:onevalue + friend_last_name:onevalue + friend_last_name_old:onevalue + friend_first_name_old:onevalue +} + + + +multirow create new_im_contacts service pretty_name im_screen_name im_screen_name_old + + + +for {set search [array startsearch services]} { [array anymore services $search]} {} { + + + set cur_service_1 [array nextelement services $search] + set cur_service $services($cur_service_1) +ns_log notice "cur_service = $cur_service , services(cur_service) = $services($cur_service_1)" + + multirow append new_im_contacts $cur_service $services_pretty($cur_service) $im_screen_name($cur_service) $im_screen_name_old($cur_service) + +} + +ad_return_template \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/edit-external-contact.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/edit-external-contact.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/edit-external-contact.adp 1 Oct 2003 04:35:49 -0000 1.1 @@ -0,0 +1,12 @@ + +Edit external contact information +Edit + +

Edit external contact information

+ + + +
+Back to view +Back to index page + Index: openacs-4/contrib/packages/jabber/www/edit-external-contact.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/edit-external-contact.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/edit-external-contact.tcl 1 Oct 2003 04:35:49 -0000 1.1 @@ -0,0 +1,103 @@ +ad_page_contract { + + edit external contact + @author Bjoern Kiesbye + @creation-date 2003-06-19 + @param friend Frist and Last name of the conntact that should be edited + +} { + + friend_first_name:notnull + friend_last_name:notnull + +} -properties { + + im_screen_name:onevalue + service:onevalue + friend_first_name:onevalue + friend_last_name:onevalue + +} + +set user_id [ad_conn user_id] +set services_list [list] + +db_foreach get_services "Select service , pretty_name from jb_services where active_check_p = 't'" { + + lappend services_list $service + set services($service) $pretty_name + set details_im_screen_name($service) "" +} + +db_foreach get_external_contacts_details "Select jb_screens.im_screen_name , jb_screens.service , jb_screens.screen_id + from jb_screens , jb_friends + where jb_friends.friend_first_name = :friend_first_name + and jb_friends.friend_last_name = :friend_last_name + and jb_friends.friend_screen_id = jb_screens.screen_id + and jb_friends.user_id = :user_id" { +ns_log notice "$service / $im_screen_name" + set details_im_screen_name($service) $im_screen_name +# lappend details_service $service + +} + + + + + + +template::form create edit-user -action edit-external-contact-confirm + +template::element create edit-user friend_first_name -datatype text -widget text -label "First Name:" -value $friend_first_name +template::element create edit-user friend_last_name -datatype text -widget text -label "Last Name:" -value $friend_last_name +template::element create edit-user friend_first_name_old -datatype text -widget hidden -value $friend_first_name +template::element create edit-user friend_last_name_old -datatype text -widget hidden -value $friend_last_name + + + +for {set i 0} { $i < [llength $services_list]} { incr i } { + + set err "" + + # catch { set test "$details_im_screen_name([lindex $services_list $i])" } err + # ns_log notice "err = $err" + if {$details_im_screen_name([lindex $services_list $i]) != ""} { + + set displayed_im_screen_name $details_im_screen_name([lindex $services_list $i]) + + if { [lindex $services_list $i] == "msn"} { + regsub -all "%" $displayed_im_screen_name "@" displayed_im_screen_name + + } + + template::element create edit-user im_screen_name.[lindex $services_list $i] -datatype text -widget text -label "$services([lindex $services_list $i]) Screen:" -value "$displayed_im_screen_name" + + + template::element create edit-user im_screen_name_old.[lindex $services_list $i] -datatype text -widget hidden -value "$displayed_im_screen_name" + + template::element create edit-user services.$i -datatype text -widget hidden -value "[lindex $services_list $i]" + + template::element create edit-user services_pretty.[lindex $services_list $i] -datatype text -widget hidden -value "$services([lindex $services_list $i])" + + } else { + + set displayed_im_screen_name $details_im_screen_name([lindex $services_list $i]) + template::element create edit-user im_screen_name.[lindex $services_list $i] -datatype text -widget text -label "$services([lindex $services_list $i]) Screen:" -value "$displayed_im_screen_name" + + + template::element create edit-user im_screen_name_old.[lindex $services_list $i] -datatype text -widget hidden -value "$displayed_im_screen_name" + + template::element create edit-user services.$i -datatype text -widget hidden -value "[lindex $services_list $i]" + + template::element create edit-user services_pretty.[lindex $services_list $i] -datatype text -widget hidden -value "$services([lindex $services_list $i])" + + + } +} + + + + + + +ad_return_template \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/edit-user-2.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/edit-user-2.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/edit-user-2.adp 1 Oct 2003 04:35:49 -0000 1.1 @@ -0,0 +1,6 @@ + + +Edit Contact Information + + +

@test@

Index: openacs-4/contrib/packages/jabber/www/edit-user-2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/edit-user-2.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/edit-user-2.tcl 1 Oct 2003 04:35:49 -0000 1.1 @@ -0,0 +1,206 @@ +ad_page_contract { + + updates existing user preferences + @author Luis Mosteiro Fernandez + @creation-date 2002-10-22 + @param screen_name array of new/old screen names + +} { + + screen_name:array + +} + + +set user_id [ad_conn user_id] +set db_nulling [db_null] +set peeraddr [ad_conn peeraddr] +ns_log debug "edit-user-2 1" + +db_foreach get_services "Select service from jb_services where active_check_p = 't'" { + set screen_id "-1" + set refcount "0" + set user_screen_name $screen_name($service) + if {$service == "msn"} { + regsub -all "@" $user_screen_name "%" user_screen_name + + } + + if {[empty_string_p $screen_name($service)]} { + ns_log debug "edit-user-2 2 $user_screen_name" + #the user did not enter a screen for this service, so just remove old stuff + if {[db_0or1row get_screen_id "SELECT screen_id , refcount , im_screen_name + FROM jb_screens + WHERE user_id = :user_id + AND service = :service"]} { + ns_log debug "edit-user-2 2.1" + #we have a screen for this user_id and no new , so we have to 1. completly remove the screen from jb_screens if no one else + #is interestet in this screen refcount = 1 and remove it from the jabber roster. + #2. just delete the user_id from the screen_id + + if { $refcount == 1 } { + ns_log debug "edit-user-2 2.1.1" + db_exec_plsql jb_screen_delete { + begin + jb_screen.delete(:screen_id); + end; + } + + # db_dml delete_screen "delete from jb_screens where user_id = :user_id and service = :service" + set success [jb_removetransportbuddy $old_screen_name [jb_get_transport_id_from_symbol $service]] + + + } else { + ns_log debug "edit-user-2 2.1.2" + + db_dml update_screen "UPDATE jb_screens SET user_id = :db_nulling WHERE user_id = :user_id AND service = :service" + } + + + } else { ns_log debug "edit-user-2 2.2" + # we have no screen in the db , and no new one , nothing to do. + } + } else { + ns_log debug "edit-user-2 3" + #we have a new screen , see if we have one in the jb_screens table + + if {[db_0or1row get_screen_id "select (screen_id) as old_screen_id , (im_screen_name) as old_screen_name , refcount from jb_screens where user_id = :user_id and service = :service"]} { + ns_log debug "edit-user-2 3.1" + #we have a screen in the db , see if it's a new one. + if { $old_screen_name != $user_screen_name } { + ns_log debug "edit-user-2 3.1.1" + #we have a new screen , see if we can just update the OLD table column + if { [db_0or1row check_new_screen_exists "SELECT (screen_id) as new_screen_id + FROM jb_screens + WHERE im_screen_name = :user_screen_name + AND service = :service"]} { + + ns_log debug "edit-user-2 3.1.1.1" + #ok we already have a new screen_id for this screen, so remove the user_id from the old screen_id and may drop the whole + #column , or just update the user_id , old column to null and the new one to :user_id + if { $refcount == 1 } { + ns_log debug "edit-user-2 3.1.1.1.1" + # no one is interested in the old screen so remove the whole column + # we have to do it with the delete function (ACSOBJECT) + # till then we just delete the user_id + + + db_exec_plsql jb_screen_delete " + begin + -- $old_screen_id + -- $refcount + -- $old_screen_name + -- $user_screen_name + jb_screen.delete(:old_screen_id); + end; + " + + + set success [jb_removetransportbuddy $old_screen_name [jb_get_transport_id_from_symbol $service]] + + } else { + ns_log debug "edit-user-2 3.1.1.1.2" + #just remove the user_id in the old column , and put it in the new column + db_dml remove_old_user_id "UPDATE jb_screens SET user_id = :db_nulling WHERE screen_id = :old_screen_id" + db_dml update_new_screens_column "UPDATE jb_screens SET user_id = :user_id WHERE screen_id = :new_screen_id" + + } + + } else { + ns_log debug "edit-user-2 3.1.1.2" + #the new screen doesen't exists jet create a new one and delete the user_id from the old + + if { $refcount == 1 } { +ns_log debug "edit-user-2 3.1.1.2.1" + # no one is interested in the old screen so remove the whole column + # we have to do it with the delete function (ACSOBJECT) + # till then we just delete the user_id + + + db_exec_plsql jb_screen_delete " + begin + -- $old_screen_id + -- $refcount + -- $old_screen_name + -- $user_screen_name + jb_screen.delete(:old_screen_id); + end; + " + + set success [jb_removetransportbuddy $old_screen_name [jb_get_transport_id_from_symbol $service]] + + } else { +ns_log debug "edit-user-2 3.1.1.2.2" + #just remove the user_id in the old column + db_dml remove_old_user_id "UPDATE jb_screens SET user_id = :db_nulling WHERE screen_id = :old_screen_id" + + } + + #create a new jb_screen object for the new screen name + db_exec_plsql new_screen { + declare + id integer; + begin + id := jb_screen.new ( + user_id => :user_id, + im_screen_name => :user_screen_name, + service => :service, + status => 'offline', + refcount => '1', + object_type => 'jb_screen', + creation_user => :user_id, + creation_ip => :peeraddr + ); + end; + } + + #now add the new screen to the jabber roster + set success [jb_addtransportbuddy $user_screen_name "online-trace" [jb_get_transport_id_from_symbol $service]] + + } + + + } else { +ns_log debug "edit-user-2 3.1.2" + + #old and new screen name match so do nothing + } + } else { +ns_log debug "edit-user-2 3.2" + #we have no old_screen_id for this user_id , so check if we have to fully create a a new one, or just inserting the old user_id. + if { [db_0or1row check_new_screen_exists "SELECT (screen_id) as new_screen_id + FROM jb_screens + WHERE im_screen_name = :user_screen_name + AND service = :service"]} { + + + #just update the user_id column + db_dml insert_new_user_id "UPDATE jb_screens SET user_id = :user_id WHERE screen_id = :new_screen_id" + + + } else { + db_exec_plsql new_screen { + declare + id integer; + begin + id := jb_screen.new ( + user_id => :user_id, + im_screen_name => :user_screen_name, + service => :service, + status => 'offline', + refcount => '1', + object_type => 'jb_screen', + creation_user => :user_id, + creation_ip => :peeraddr + ); + end; + } + + #now add the new screen to the jabber roster + set success [jb_addtransportbuddy $user_screen_name "online-trace" [jb_get_transport_id_from_symbol $service]] + } + } + } +} + +ad_returnredirect "index.tcl" Index: openacs-4/contrib/packages/jabber/www/edit-user-confirm.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/edit-user-confirm.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/edit-user-confirm.adp 1 Oct 2003 04:35:49 -0000 1.1 @@ -0,0 +1,22 @@ + + + +Edit Contact Information + + +

Please confirm your changes

+ + + +

+@new_im_contacts.pretty_name@ : @new_im_contacts.im_screen_name@ +

+ + + +
+ +
+ +Back to index page + Index: openacs-4/contrib/packages/jabber/www/edit-user-confirm.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/edit-user-confirm.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/edit-user-confirm.tcl 1 Oct 2003 04:35:49 -0000 1.1 @@ -0,0 +1,28 @@ +ad_page_contract { + + edit-user-confirm.tcl + @author: bkiesbye@sussdorff-roy.com , lmosteiro@sussdorff-roy.com + + } { + + service_pretty_name:array + service:array + screen_name:array + +} + + +multirow create new_im_contacts service pretty_name im_screen_name + + + +for {set search [array startsearch service]} { [array anymore service $search]} {} { + + + set cur_service [array nextelement service $search] + + + + multirow append new_im_contacts $service($cur_service) $service_pretty_name($cur_service) $screen_name($cur_service) + +} \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/edit-user.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/edit-user.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/edit-user.adp 1 Oct 2003 04:35:49 -0000 1.1 @@ -0,0 +1,23 @@ + + + +Edit Contact Information +@context@ + +

Edit Your Contact Information

+ +

These are the IM-Contact information for @first_names@ +@last_name@. Please edit them, if necessary.

+ +

+ +

+ + +
+ +Back to index page + + + + Index: openacs-4/contrib/packages/jabber/www/edit-user.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/edit-user.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/edit-user.tcl 1 Oct 2003 04:35:49 -0000 1.1 @@ -0,0 +1,42 @@ +ad_page_contract { + + edit user IM-contact information + @author Luis Mosteiro Fernandez + @creation-date 2002-10-22 + +} -properties { + + first_names:onevalue + last_name:onevalue + get_existing_screen:multirow + context:onevalue + +} + +set context [list "Edit contact information"] + +set user_id [ad_conn user_id] +ad_maybe_redirect_for_registration + + +db_1row get_name "select first_names , last_name from persons where person_id = :user_id" + +template::form create edit-user -action edit-user-confirm + +db_foreach get_services { Select service , pretty_name from jb_services where active_check_p = 't' +} { + set im_screen_name "" + db_0or1row get_screen_name { Select im_screen_name from jb_screens where service = :service and user_id = :user_id } + + if {$service == "msn"} { + regsub -all "%" $im_screen_name "@" im_screen_name + + } + + template::element create edit-user screen_name.$service -datatype text -widget text -label "$pretty_name screen name" -value $im_screen_name + template::element create edit-user service_pretty_name.$service -datatype text -widget hidden -value $pretty_name + template::element create edit-user service.$service -datatype text -widget hidden -value $service + +} + +ad_return_template Index: openacs-4/contrib/packages/jabber/www/enigma.jnlp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/enigma.jnlp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/enigma.jnlp 1 Oct 2003 04:35:49 -0000 1.1 @@ -0,0 +1,30 @@ + + + + + + Enigma 3 + Die Horde + http://complat.sourceforge.net + Enigma 3 is a jabber client. + E3 is a java jabber client! + + + + + + + + + + + + + + + + + + + Index: openacs-4/contrib/packages/jabber/www/enter-xml.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/enter-xml.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/enter-xml.adp 1 Oct 2003 04:35:49 -0000 1.1 @@ -0,0 +1,18 @@ + + + +Jabber-XML + + +

ENTER YOUR XML

+ +
+

+ +XML:
+
+

+

+ + + Index: openacs-4/contrib/packages/jabber/www/ext-cont =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/ext-cont,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/ext-cont 1 Oct 2003 04:35:49 -0000 1.1 @@ -0,0 +1,363 @@ +edit-external-contact.tcl0100777000076500007650000000727207674430441015157 0ustar bkiesbyewebad_page_contract { + + edit external contact + @author Bjoern Kiesbye + @creation-date 2003-06-19 + @param friend Frist and Last name of the conntact that should be edited + +} { + + friend_first_name:notnull + friend_last_name:notnull + +} -properties { + + im_screen_name:onevalue + service:onevalue + friend_first_name:onevalue + friend_last_name:onevalue + +} + +set user_id [ad_conn user_id] +set services_list [list] + +db_foreach get_services "Select service , pretty_name from jb_services where active_check_p = 't'" { + + lappend services_list $service + set services($service) $pretty_name + set details_im_screen_name($service) "" +} + +db_foreach get_external_contacts_details "Select jb_screens.im_screen_name , jb_screens.service , jb_screens.screen_id + from jb_screens , jb_friends + where jb_friends.friend_first_name = :friend_first_name + and jb_friends.friend_last_name = :friend_last_name + and jb_friends.friend_screen_id = jb_screens.screen_id + and jb_friends.user_id = :user_id" { +ns_log notice "$service / $im_screen_name" + set details_im_screen_name($service) $im_screen_name +# lappend details_service $service + +} + + + + + + +template::form create edit-user -action edit-external-contact-confirm + +template::element create edit-user friend_first_name -datatype text -widget text -label "First Name:" -value $friend_first_name +template::element create edit-user friend_last_name -datatype text -widget text -label "Last Name:" -value $friend_last_name +template::element create edit-user friend_first_name_old -datatype text -widget hidden -value $friend_first_name +template::element create edit-user friend_last_name_old -datatype text -widget hidden -value $friend_last_name + + + +for {set i 0} { $i < [llength $services_list]} { incr i } { + + set err "" + + # catch { set test "$details_im_screen_name([lindex $services_list $i])" } err + # ns_log notice "err = $err" + if {$details_im_screen_name([lindex $services_list $i]) != ""} { + + set displayed_im_screen_name $details_im_screen_name([lindex $services_list $i]) + + if { [lindex $services_list $i] == "msn"} { + regsub -all "%" $displayed_im_screen_name "@" displayed_im_screen_name + + } + + template::element create edit-user im_screen_name.[lindex $services_list $i] -datatype text -widget text -label "$services([lindex $services_list $i]) Screen:" -value "$displayed_im_screen_name" + + + template::element create edit-user im_screen_name_old.[lindex $services_list $i] -datatype text -widget hidden -value "$displayed_im_screen_name" + + template::element create edit-user services.$i -datatype text -widget hidden -value "[lindex $services_list $i]" + + template::element create edit-user services_pretty.[lindex $services_list $i] -datatype text -widget hidden -value "$services([lindex $services_list $i])" + + } else { + + set displayed_im_screen_name $details_im_screen_name([lindex $services_list $i]) + template::element create edit-user im_screen_name.[lindex $services_list $i] -datatype text -widget text -label "$services([lindex $services_list $i]) Screen:" -value "$displayed_im_screen_name" + + + template::element create edit-user im_screen_name_old.[lindex $services_list $i] -datatype text -widget hidden -value "$displayed_im_screen_name" + + template::element create edit-user services.$i -datatype text -widget hidden -value "[lindex $services_list $i]" + + template::element create edit-user services_pretty.[lindex $services_list $i] -datatype text -widget hidden -value "$services([lindex $services_list $i])" + + + } +} + + + + + + +ad_return_templateedit-external-contact.adp0100777000076500007650000000046607674430463015143 0ustar bkiesbyeweb +Edit external contact information +Edit + +

Edit external contact information

+ + + +
+Back to view +Back to index page + +edit-external-contact-confirm.tcl0100644000076500001440000000211507674430506017147 0ustar bkiesbyeusersad_page_contract { + + edit external contact + @author Bjoern Kiesbye + @creation-date 2003-06-19 + @param friend Frist and Last name of the conntact that should be edited + +} { + + friend_first_name + friend_last_name + friend_last_name_old + friend_first_name_old + im_screen_name:array + im_screen_name_old:array + services:array + services_pretty:array + + + +} -properties { + + new_im_contacts + friend_first_name:onevalue + friend_last_name:onevalue + friend_last_name_old:onevalue + friend_first_name_old:onevalue +} + + + +multirow create new_im_contacts service pretty_name im_screen_name im_screen_name_old + + + +for {set search [array startsearch services]} { [array anymore services $search]} {} { + + + set cur_service_1 [array nextelement services $search] + set cur_service $services($cur_service_1) +ns_log notice "cur_service = $cur_service , services(cur_service) = $services($cur_service_1)" + + multirow append new_im_contacts $cur_service $services_pretty($cur_service) $im_screen_name($cur_service) $im_screen_name_old($cur_service) + +} + +ad_return_templateedit-external-contact-confirm.adp0100644000076500001440000000231707674430526017137 0ustar bkiesbyeusers + + +Edit Contact Information +Confirm + +

Please confirm your changes

+ +
+

First Name : @friend_first_name@

+

Last Name : @friend_last_name@

+ + + + + + +

+@new_im_contacts.pretty_name@ : @new_im_contacts.im_screen_name@ +

+ + + + + + +
+ +
+ +Back to index page +edit-external-contact-2.tcl0100777000076500007650000001140507674430616015313 0ustar bkiesbyewebad_page_contract { + + updates the database + @author Luis Mosteiro Fernandez + @creation-date 2002-10-23 + @param screen_id who should be updated + @param first_names new value for first_names + @param last_name new value for last_name + @param im_screen_name new value for im_screen_name + +} { + friend_first_name + friend_last_name + friend_last_name_old + friend_first_name_old + im_screen_name:array + im_screen_name_old:array + services:array +} -properties { + +} + +set user_id [ad_conn user_id] +set peeraddr [ad_conn peeraddr] + +if {$friend_first_name != $friend_first_name_old} { + +db_dml update_first_name "UPDATE jb_friends SET friend_first_name = :friend_first_name + WHERE friend_first_name = :friend_first_name_old + AND friend_last_name = :friend_last_name_old + AND user_id = :user_id" + +set friend_first_name_old "$friend_first_name" + +} + + +if {$friend_last_name != $friend_last_name_old} { + +db_dml update_first_name "UPDATE jb_friends SET friend_last_name = :friend_last_name + WHERE friend_first_name = :friend_first_name_old + AND friend_last_name = :friend_last_name_old + AND user_id = :user_id" + +set friend_last_name_old "$friend_last_name" + +} + + + + +for {set search [array startsearch services]} { [array anymore services $search]} {} { + + + set cur_service_1 [array nextelement services $search] + set cur_service $services($cur_service_1) +ns_log notice "cur_service = $cur_service , services(cur_service) = $services($cur_service_1)" + + set old_screen $im_screen_name_old($cur_service) + set new_screen $im_screen_name($cur_service) + + if {$new_screen != $old_screen} { + + if {$cur_service == "msn"} { + regsub -all "@" $old_screen "%" old_screen + regsub -all "@" $new_screen "%" new_screen + } + + if {$old_screen != "" } { + + #remove from friends list + + db_1row get_old_screen_id "SELECT (screen_id) as old_screen_id , refcount FROM jb_screens WHERE im_screen_name = :old_screen AND service = :cur_service" + + db_dml delete_from_friendslist "DELETE FROM jb_friends + WHERE friend_screen_id = :old_screen_id + AND user_id = :user_id" + + if {$refcount > 1} { + set refcount [expr $refcount - 1] + db_dml update_refcount "UPDATE jb_screens SET refcount = :refcount WHERE im_screen_name = :old_screen AND service = :cur_service" + } else { + + db_exec_plsql jb_screen_delete " + begin + jb_screen.delete(:old_screen_id); + end; + " + + set success [jb_removetransportbuddy $old_screen [jb_get_transport_id_from_symbol $cur_service]] + + } + + } + + if { $new_screen != "" } { + # check if we alreddy have this screen in the jb_screens table + if { [ db_0or1row get_new_screen_id "SELECT (screen_id) as new_screen_id , (refcount) as new_refcount FROM jb_screens WHERE im_screen_name = :new_screen AND service = :cur_service"]} { + + + #we know this screen just update the friends table. + + db_dml insert_new_frind "INSERT INTO jb_friends (friend_first_name , friend_last_name , friend_screen_id , user_id) values (:friend_first_name_old , :friend_last_name_old , :new_screen_id , :user_id)" + + set new_refcount [expr $new_refcount +1] + + db_dml update_refcount_with_screen_id "UPDATE jb_screens SET refcount = :new_refcount WHERE screen_id = :new_screen_id" + + + } else { + + #we have a total new screen + + + #create a new jb_screen object for the new screen name + db_exec_plsql new_screen { + declare + id integer; + begin + id := jb_screen.new ( + user_id => :user_id, + im_screen_name => :new_screen, + service => :cur_service, + status => 'offline', + refcount => '1', + object_type => 'jb_screen', + creation_user => :user_id, + creation_ip => :peeraddr + ); + end; + } + + #now add the new screen to the jabber roster + set success [jb_addtransportbuddy $new_screen "online-trace" [jb_get_transport_id_from_symbol $cur_service]] + + + db_1row get_new_screen_id "SELECT (screen_id) as new_screen_id , (refcount) as new_refcount + FROM jb_screens + WHERE im_screen_name = :new_screen + AND service = :cur_service" + + db_dml insert_new_frind "INSERT INTO jb_friends (friend_first_name , friend_last_name , friend_screen_id , user_id) + VALUES (:friend_first_name_old , :friend_last_name_old , :new_screen_id , :user_id)" + + } + + + + } + + + + + + + + } + + + + + + + +} + + + + + + +ad_returnredirect "view-external-contacts" \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/go-to-jabber.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/go-to-jabber.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/go-to-jabber.tcl 1 Oct 2003 04:35:49 -0000 1.1 @@ -0,0 +1,28 @@ +ad_page_contract { + + @param user_id_friend + @param return_url +} { + + user_id_friend:notnull,integer + {return_url "index.tcl"} +} + +set user_id [ad_conn user_id] +ad_maybe_redirect_for_registration + +db_foreach get_screens {Select (sn.im_screen_name) as screen, (sn.user_id) as cur + from jb_screens sn + WHERE (sn.user_id = :user_id or sn.user_id = :user_id_friend) + AND sn.service = 'jabber'} { + + if {$cur == $user_id} { + set user_a $screen + } else { + set user_b $screen} +} + +set suc [jb_chat $user_a $user_b] + + +ns_returnredirect "jabber-login.tcl?return_url=$return_url" Index: openacs-4/contrib/packages/jabber/www/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/index.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/index.adp 1 Oct 2003 04:35:49 -0000 1.1 @@ -0,0 +1,204 @@ + +Jabber +@context@ + + +

Who's online?

+ +

The IM System is not avaiable, please try it again later!

+
+Go to the Conference facility +

This page displays users, who are currently online. It differentiate between three user groups. Internal, registered Jabber users, who are on your buddy list including their +other Instant Messaging contacts. Then external friends, who are not registered in @system_name@, but you want to have on your buddy list. At last other internal, registered Jabber users, who are online. This provides you information, who is online, if you want to begin a chat. Furthermore you do not have to search internal users to add them to your buddy list, you have to click only on the link to add them to your friend list. +

+ + + + + +
+ + + + + + + + + + + +
Your Messenger Status
+
+
Log in to and out off the @system_name@ Jabber by clicking on the icon +

Note: The moment you log into the @system_name@ Jabber, you will automatically + be logged into other services that you have authorised the Jabber + to connect with. At this point, the Jabber be your default messenger + for all services. Other instant messaging clients on your desktop + will not work when you are logged in through the Jabber. +

+ + + + + Jabber Applet Active + + + + + + + +
+
+ + + + + + + + + + + +
+ + The screen name you typed in is already in use! + + + Please fill in the form to register with Jabber! + +
+ +
+
+ + + + + + + + + +
+ Edit your contact information + + View your external contacts + + Add a new external contact + + Search for users +
+ + + + +
 
+ + + + + +
+ + + + + + + + + + + + + + + + + +
Your Friends online
@friend_status.first_names@ @friend_status.last_name@Remove from list +
Chat +
+
+
+
+ + + + +
 
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
External Friends Online
@external_status.first_names@ @external_status.last_name@Contact from IM-Addressbook +
Click on Icon
+
+
+ + + + +
 
+

If you want to see all community users online, who are not on your buddy list, follow this link: Current Community users online

+


+ On a public Internet service, the number of casual surfers (unregistered) will + outnumber the registered users by at least 10 to 1. Thus there could be many + more people using this service than it would appear. +

+

+

+ + + + + + + + Index: openacs-4/contrib/packages/jabber/www/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/index.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/index.tcl 1 Oct 2003 04:35:50 -0000 1.1 @@ -0,0 +1,189 @@ +ad_page_contract { + + + @cvs-id index.tcl, + @creation-date 25/8/02 + @author bkiesbye@sussdorff-roy.com + @author lmosteiro@sussdorff-roy.com + @param reg_error checks, whether input was successful + +} { + + {reg_error "nothing"} + +} -properties { + + reg_error_code:onevalue + reg_error_name:onevalue + user_status:multirow + friend_status:multirow + external_status:multirow + other_status:multirow + context:onevalue + return_url:onevalue + friends_is_online_p:onevalue + external_is_online_p:onevalue + any_is_online_p:onevalue + +} + + + +set url_to_conference_group [jb_start_conference_room_for_group_url 15331] +set system_name [ad_system_name] +set trans_symbol [list] +set return_url [ad_conn url] +set context "" +set user_id [ad_conn user_id] +ad_maybe_redirect_for_registration +set reg_need "0" +set connstate [jb_getconnstate] +set user_invisible [util::whos_online::check_invisible $user_id ] +set all_invisible [util::whos_online::all_invisible_user_ids] +if {[llength $all_invisible] == 0 } {lappend all_invisible 0} +set all_users [util::whos_online::all_user_ids] + +#----------------------------------------------------check, whether user is registered------------------------------------- + +if { ![db_0or1row is_user_reg_with_jabber { select (user_id) as reg_check, (uc.jabber_regstate) as reg_stat + from jb_user_jabber_information uc where user_id = :user_id }]} { + set reg_need "1" +} + +ad_form -name user-register -action user-register -form { + {jscreen:text(text) {label "Jabber Screen:
"}} + {passwd:text(password) {label "Password:
"}} + {return_url:text(hidden) {value "index"}} +} + +#-----------------------------------------------------get avaiable services-------------------------------------------------- + +db_foreach get_services { Select service from jb_services where active_check_p = 't'} { + set user_states($service) "offline" + set online_state($service) "offline" + set online_state_name($service) $service + set online_ext($service) "offline" + set online_ext_name($service) $service + set online_any($service) "offline" + set online_any_name($service) $service + append trans_symbol " $service" +} + +#-------------------------------------get the different user states for the IM services----------------------------------------- + +multirow create user_status service status + +db_foreach get_users_state { + select lower(sn.status) as status, + lower(sn.service) as service + FROM jb_screens sn , jb_services + WHERE sn.user_id = :user_id + AND sn.service = jb_services.service + AND jb_services.active_check_p = 't' +} { + multirow append user_status $service $status + set user_states($service) $status +} if_no_rows { + + db_foreach get_services { + select service + from jb_services + where active_check_p = 't' + } { + multirow append user_status $service "no" + set user_states($service) "offline" + } + +} + +set jabber_start "offline" + +for {set j 0} { $j < [llength $trans_symbol]} {incr j} { + if { [lindex $trans_symbol $j] == "jabber" } { + if { [set user_states([lindex $trans_symbol $j])] == "offline" } { + set jabber_start "offline" + } else { + set jabber_start "online" + } + } + if { [lindex $trans_symbol $j] == "aim" } { + if { [set user_states([lindex $trans_symbol $j])] != "offline" } { + set aim_on 1 + } else { + set aim_on 0 + } + } +} + +#-------------------------------internal friend online ------------------------------------------------------------------------------ + +set friend_is_online_p 0 +set onliners [util::whos_online::user_ids] + +multirow create friend_status first_names last_name friend_user_id friend_screen_id service status create_jid chat im_screen_name + + +db_foreach get_a_friend " + select (persons.person_id) as friends_user_id , + persons.first_names as first_names, persons.last_name as last_name + from persons + where persons.person_id IN (Select jb_screens.user_id from jb_screens, jb_friends + where jb_friends.user_id = :user_id + and jb_screens.screen_id = jb_friends.friend_screen_id + and jb_screens.user_id IS NOT NULL) + AND persons.person_id NOT IN [tcl_to_oracle_list $all_invisible] " { + + lappend friends_online_list $friends_user_id + + + db_foreach get_his_online_states " + SELECT (sn.screen_id) as friend_screen_id, + (sn.status) as status , + sn.im_screen_name, + lower(sn.service) as service + FROM jb_screens sn + WHERE sn.user_id = :friends_user_id + AND ( ( lower(sn.status) != 'offline' ) or (sn.user_id IN [tcl_to_oracle_list $onliners]) ) + + " { + set online_state($service) $status + multirow append friend_status $first_names $last_name $friends_user_id $friend_screen_id $service $status [jb_create_jid $im_screen_name $service] [jb_best_chat $friends_user_id] $im_screen_name + set friend_is_online_p 1 + } + +} + +#--------------------------External friends---------------------------------------------------------------------- + +set external_is_online_p 0 + +multirow create external_status friend_screen_id first_names last_name combi_name service status create_jid + + +db_foreach get_friends_users_online { + select (ef.friend_screen_id) as ef_id , + (ef.friend_first_name) as first_names , + (ef.friend_last_name) as last_name + FROM jb_friends ef + WHERE ef.user_id = :user_id + AND ef.friend_screen_id IN ( Select screen_id from jb_screens + where user_id is null ) +} { + + db_foreach get_this_online_anys { select (sn.status) as status , + (sn.service) as service, sn.im_screen_name + FROM jb_screens sn + WHERE sn.screen_id = :ef_id + AND sn.status != 'offline' + } { + set online_ext($service) $status + multirow append external_status $ef_id $first_names $last_name "$first_names $last_name" $service $status [jb_create_jid $im_screen_name $service] + set external_is_online_p 1 + } + +} + + +ad_return_template + + Index: openacs-4/contrib/packages/jabber/www/invisible.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/invisible.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/invisible.tcl 1 Oct 2003 04:35:50 -0000 1.1 @@ -0,0 +1,27 @@ +ad_page_contract { + + + @cvs-id invisible.tcl, + @creation-date 18/3/03 + @author bkiesbye@sussdorff-roy.com + + +} { + + type:notnull + {return_url "[apm_package_url_from_key jabber]"} + +} + +set user_id [ad_conn user_id] + +if {$type == "set"} { + + util::whos_online::set_invisible $user_id + +} elseif { $type == "unset"} { + + util::whos_online::unset_invisible $user_id +} + +ns_returnredirect $return_url \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/jabber-auto-login-greenthumb.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/jabber-auto-login-greenthumb.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/jabber-auto-login-greenthumb.tcl 1 Oct 2003 04:35:50 -0000 1.1 @@ -0,0 +1,58 @@ + +set HTML { + + + + } + + + +set user_id [ad_conn user_id] +ad_maybe_redirect_for_registration + + + +if {[db_0or1row name_pass "Select (jb_screens.im_screen_name) as jabber_screen , jb_user_jabber_information.jabber_passwd + from jb_user_jabber_information, jb_screens + where jb_user_jabber_information.user_id = :user_id + and jb_screens.user_id = :user_id and jb_screens.service = 'jabber'"]} { + + append HTML " + + + + + + + + +If you see this text, the scrolls say your browser does not support java applets. + +" +} else { + append HTML "you are not registert!" +} + +append HTML "" +doc_return 200 text/html $HTML Index: openacs-4/contrib/packages/jabber/www/jabber-auto-login.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/jabber-auto-login.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/jabber-auto-login.tcl 1 Oct 2003 04:35:50 -0000 1.1 @@ -0,0 +1,68 @@ + +set HTML { + + + + } + + + +set user_id [ad_conn user_id] +ad_maybe_redirect_for_registration + + + +if {[db_0or1row name_pass "Select (jb_screens.im_screen_name) as jabber_screen , jb_user_jabber_information.jabber_passwd + from jb_user_jabber_information, jb_screens + where jb_user_jabber_information.user_id = :user_id + and jb_screens.user_id = :user_id and jb_screens.service = 'jabber'"]} { + +ns_returnredirect "jabber-auto-login.tcl?j_screen=$jabber_screen&j_password=$jabber_passwd" + + + +# append HTML " +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# " +ad_script_abort +} else { + append HTML "you are not registert!" +} + +append HTML "" +doc_return 200 text/html $HTML Index: openacs-4/contrib/packages/jabber/www/jabber-auto-webstart-applet.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/jabber-auto-webstart-applet.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/jabber-auto-webstart-applet.tcl 1 Oct 2003 04:35:50 -0000 1.1 @@ -0,0 +1,54 @@ + +set HTML { + + + + + + Jabber Applet + SourceForge + http://jabberapplet.sourceforge.net + JabberApplet + JabberApplet is a lighweight jabber chat client! + + + + + + + +} + +set user_id [ad_conn user_id] +ad_maybe_redirect_for_registration + + + +if {[db_0or1row name_pass "Select (jb_screens.im_screen_name) as jabber_screen , jb_user_jabber_information.jabber_passwd + from jb_user_jabber_information, jb_screens + where jb_user_jabber_information.user_id = :user_id + and jb_screens.user_id = :user_id and jb_screens.service = 'jabber'"]} { + + append HTML " + + + + + + + + + + + + + " +} else { + append HTML "you are not registert!" +} + +append HTML "" +doc_return 200 application/x-java-jnlp-file $HTML Index: openacs-4/contrib/packages/jabber/www/jabber-login-greenthumb.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/jabber-login-greenthumb.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/jabber-login-greenthumb.tcl 1 Oct 2003 04:35:50 -0000 1.1 @@ -0,0 +1,35 @@ +proc auto-login-1 { destination } { + + +set HTML { + + + + Jabber Client + + +} + +append HTML " + +

If no new small window has opened please click this Link to open a new window for the Jabber client, +resize it yourself and then click this Link to proceed. +

+

If you have your own Jabber Client, you can visit the Jabber preference page and disable the Jabber Applet.

+ +" + +doc_return 200 text/html $HTML +} + +set_the_usual_form_variables +auto-login-1 "$return_url" + Index: openacs-4/contrib/packages/jabber/www/jabber-login.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/jabber-login.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/jabber-login.tcl 1 Oct 2003 04:35:50 -0000 1.1 @@ -0,0 +1,35 @@ +proc auto-login-1 { destination } { + + +set HTML { + + + + Jabber Client + + +} + +append HTML " + +

If no new small window has opened please click this Link to open a new window for the Jabber client, +resize it yourself and then click this Link to proceed. +

+

If you have your own Jabber Client, you can visit the Jabber preference page and disable the Jabber Applet.

+ +" + +doc_return 200 text/html $HTML +} + +set_the_usual_form_variables +auto-login-1 "$return_url" + Index: openacs-4/contrib/packages/jabber/www/jabber-webstart-auto-login.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/jabber-webstart-auto-login.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/jabber-webstart-auto-login.tcl 1 Oct 2003 04:35:50 -0000 1.1 @@ -0,0 +1,65 @@ + +set JNLP { + + + + + + Jabber Applet + SourceForge + http://jabberapplet.sourceforge.net + JabberApplet + JabberApplet is a lighweight jabber chat client! + + + + + + + + + + + +} + + + +set user_id [ad_conn user_id] +ad_maybe_redirect_for_registration + + + +if {[db_0or1row name_pass "Select (jb_screens.im_screen_name) as jabber_screen , jb_user_jabber_information.jabber_passwd + from jb_user_jabber_information, jb_screens + where jb_user_jabber_information.user_id = :user_id + and jb_screens.user_id = :user_id and jb_screens.service = 'jabber'"]} { + + append JNLP " + + + + + + + + + + + + +" + +doc_return 200 application/x-java-jnlp-file $JNLP + +} else { + + set HTML "

You are not registert!

" + doc_return 200 text/html $HTML + +} + + + Index: openacs-4/contrib/packages/jabber/www/jabber-webstart-login.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/jabber-webstart-login.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/jabber-webstart-login.tcl 1 Oct 2003 04:35:50 -0000 1.1 @@ -0,0 +1,35 @@ +proc auto-login-1 { destination } { + + +set HTML { + + + + Jabber Client + + +} + +append HTML " + +

If no new small window has opened please click this Link to open a new window for the Jabber client, +resize it yourself and then click this Link to proceed. +

+

If you have your own Jabber Client, you can visit the Jabber preference page and disable the Jabber Applet.

+ +" + +doc_return 200 text/html $HTML +} + +set_the_usual_form_variables +auto-login-1 "$return_url" + Index: openacs-4/contrib/packages/jabber/www/message-2.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/message-2.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/message-2.adp 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,30 @@ + +Send Message + +
+

To: @screen@
+ Your message: @message@ +

+ + + +

The Instant Messaging System is not available.
+ The Message will be send as soon it becomes available!

+

+
+ +

Message has been sent and logged!

+
+
+ +

We had problems to find out who you are. All messages are logged.

+
+ + +
+
+
+

Back to Index page.

+ + + Index: openacs-4/contrib/packages/jabber/www/message-2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/message-2.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/message-2.tcl 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,45 @@ + +ad_page_contract { + + send messages and insert into jb_message_log + @author Bjoern Kiesbye + @author Malte Fliedner + @author Luis Mosteiro Fernandez + @param screen_id + @param screen the jabber_id of the receiver + @param message + +} { + + screen_id:integer,optional + screen:notnull + message:trim + +} -properties { + + success:onevalue + user_check_p:onevalue + +} + +set user_id [ad_conn user_id] +ad_maybe_redirect_for_registration + + +if {[db_0or1row get_name "select first_names , last_name from persons where person_id =:user_id"]} { + + set user_check_p 1 + set name "([string range $first_names 0 0]. $last_name)\n" + append name $message + set message $name + append message "\n(You can't respond to this Message)" + set user_log $screen + set success [jb_message $screen $message] + db_dml insert_log "insert into jb_message_log ( message_id, user_id , message , send , conn_state, receive_jid) values ( jb_message_log_seq.nextval, :user_id , :message , sysdate , :success , :user_log )" + +} else { + set user_check_p 0 +} + + +ad_return_template Index: openacs-4/contrib/packages/jabber/www/message.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/message.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/message.adp 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,11 @@ + +Jabber message + +

Message for "@screen@"

+ + +

Please type your message !

+ + +
+Back to index page Index: openacs-4/contrib/packages/jabber/www/message.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/message.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/message.tcl 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,40 @@ + + +ad_page_contract { + + send message via index page + @author Luis Mosteiro Fernandez + @creation-date 2002-10-29 + @param screen_id + @param screen + +} { + + screen_id:integer + screen:notnull + +} -properties { + + screen_id:onevalue + screen:onevalue + +} + + +set user_id [ad_conn user_id] +ad_maybe_redirect_for_registration + +ad_form -name message -action message-2 -form { + {screen:text(hidden) {value $screen}} + {screen_id:text(hidden) {value $screen_id}} + {message:text(textarea) {html {cols 25}} {html {rows 5}} {label "Message:"}} +} + +ad_return_template + + + + + + + Index: openacs-4/contrib/packages/jabber/www/remove-external-contact.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/remove-external-contact.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/remove-external-contact.tcl 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,28 @@ +ad_page_contract { + + remove external contact from list + @author Luis Mosteiro Fernandez + @creation-date 2002-10-22 + @param screen_id who will be removed from jb_friends + +} { + + screen_id:integer + +} + + +set user_id [ad_conn user_id] +ad_maybe_redirect_for_registration + +db_dml remove_friend { delete from jb_friends where user_id = :user_id and friend_screen_id = :screen_id } +db_dml decrease_reference { update jb_screens set refcount = refcount - 1 where screen_id = :screen_id } + +#db_1row get_jabber_id { Select im_screen_name from jb_screens where user_id = :user_id and service = 'jabber' } +#db_1row get_friend_screen_name { Select (im_screen_name) as friend_screen_name where screen_id = :screen_id } + +#[jb_removetransbuddy $im_screen_name $friend_screen_name] + + + +ad_returnredirect "view-external-contacts" Index: openacs-4/contrib/packages/jabber/www/user-register.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/user-register.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/user-register.adp 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,34 @@ + +Jabber-Register + +

Jabber Register:


+ + + +

Database Error Occured

+

Insert failed : @errormsg@

+
+ +

New JabberID created: @jscreen@\@jabber_server

+ + +

JabberID exists or user is already signed in for Jabber! Please choose another username or user_id!

+
+ + +

We had a problem processing your data! The Jabber Client could not register you!

+
+ +
+
+
+

Back to index.

+ + + + + + + + + Index: openacs-4/contrib/packages/jabber/www/user-register.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/user-register.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/user-register.tcl 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,84 @@ +ad_page_contract { + + register user in jabber + @author Bjoern Kiesbye, Luis Mosteiro Fernandez + @creation_date 2002-10-17 + @param user_id + @param user which jabber screen name + @param pass password for login + +} { + + jscreen:notnull + passwd:notnull + +} -properties { + + user_id:onevalue + user:onevalue + errormsg:onevalue + insert_check_p:onevalue + passwd:onevalue + +} + +set user_id [ad_conn user_id] +set creation_user [ad_conn user_id] +ad_maybe_redirect_for_registration + +set peeraddr [ad_conn peeraddr] + + + + +set success [jb_register $jscreen $passwd] + +if {$success == "r" } { + + db_exec_plsql new_screen { + declare + id integer; + begin + id := jb_screen.new ( + user_id => :user_id, + im_screen_name => :jscreen, + service => 'jabber', + status => 'offline', + refcount => '1', + object_type => 'jb_screen' + ); + end; + } + + db_dml create_contact {insert into jb_user_jabber_information (user_id , jabber_regstate, jabber_passwd) values (:user_id , 'r', :passwd)} + ns_returnredirect "index?reg_error=success" + set insert_check_p 1 + +} elseif {$success == "e"} { + + ns_returnredirect "index?reg_error=exists" + + set insert_check_p 2 + +} else { + + ns_returnredirect "index?reg_error=offline" + set insert_check_p 3 + +} + + + + + + +ad_return_template + + + + + + + + + Index: openacs-4/contrib/packages/jabber/www/user-search.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/user-search.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/user-search.adp 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,44 @@ + +Search users +@context@ + +

Search user

+ +

Please note that you can only search users, who are registered in our Jabber server!

+ + + +
+

Search for Users who's First or Last Name starts with:

+ +
+ + + + +

You can add these users to your buddy list

+ + + + + + + + + + + + + +
First NameLast NameAction
@partys.first_names@@partys.last_name@Add
+
+ +

Sorry, there are no Jabber users with this prefix, try again!

+
+ + + +
+
+
+

Back to admin-page

Index: openacs-4/contrib/packages/jabber/www/user-search.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/user-search.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/user-search.tcl 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,69 @@ +ad_page_contract { + + user-register.tcl + Admin Page to register a user + @author Bjoern Kiesbye, Luis Mosteiro Fernandez + @creation-date 2002-03-05 + @param user_prefix search for user with this user_prefix, so admin can register them + +} { + + {user_prefix ""} + +} -properties { + + partys:multirow + row_check_p:onevalue + +} + +set row_check_p 0 +set context "Search" + + +ad_form -name search -action user-search\#result -form { + {user_prefix:text(text) {value $user_prefix} {label ""}} + {Search:text(submit) {value "Search"}} +} + + +set user_id [ad_conn user_id] +ad_maybe_redirect_for_registration + + +multirow create partys person_id first_names last_name + +if {$user_prefix != ""} { + + set friends_list [list $user_id] + + db_foreach get_friends " + Select distinct user_id from jb_screens where screen_id in (Select friend_screen_id from jb_friends where user_id = :user_id) + and user_id is not null" { + lappend friends_list $user_id + } + + + db_foreach get_users_from_prefix " + SELECT distinct p.person_id , p.first_names , p.last_name + FROM persons p + WHERE ( lower(p.last_name) like(lower('$user_prefix%')) OR lower(p.first_names) like(lower('$user_prefix%')) ) + and p.person_id NOT IN [tcl_to_oracle_list $friends_list] + +" { + + set row_check_p 1 + multirow append partys $person_id $first_names $last_name + + } if_no_rows { + + set row_check_p -1 + } + +} + +set return_url "user-search?user_prefix=$user_prefix" + +ad_return_template + + Index: openacs-4/contrib/packages/jabber/www/view-external-contacts.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/view-external-contacts.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/view-external-contacts.adp 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,35 @@ + + +View Your External Contacts +@context@ + +

Your External Contacts

+ + + + + + + + + + + + + + + + + + + +
First NamesLast NameEdit Remove ?
@get_external_friends.friend_first_name@@get_external_friends.friend_last_name@EditRemove?
+ +
+ +

You don't have any external contacts!

+
+ +
+ +Back to index page Index: openacs-4/contrib/packages/jabber/www/view-external-contacts.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/Attic/view-external-contacts.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/view-external-contacts.tcl 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,35 @@ +ad_page_contract { + + view your external contacts + @author Luis Mosteiro Fernandez + @creation-date 2002-10-22 + +} -properties { + + get_external_friends:multirow + context:onevalue + row_check_p:onevalue + +} + +set context [list "Edit External Contact"] + +set user_id [ad_conn user_id] +ad_maybe_redirect_for_registration + +db_multirow get_external_friends get_external_friends { + Select distinct friend_first_name , friend_last_name + from jb_friends , jb_screens + where jb_screens.user_id is null + and jb_screens.screen_id = jb_friends.friend_screen_id + and jb_friends.user_id = :user_id + order by friend_last_name + + +} { + set row_check_p 1 +} if_no_rows { + set row_check_p 0 +} + +ad_return_template Index: openacs-4/contrib/packages/jabber/www/admin/add-community-members.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/add-community-members.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/add-community-members.tcl 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,38 @@ +ad_page_contract { + + add selected community members + @author Luis Mosteiro Fernandez + @creation-date 2002-12-04 + @param user_id to which user + @param community_members array of user_ids, which should be added + @param rows, we need this variable for our loop through the array + +} { + + user_id:integer + community_members:array + rows:integer + +} + +for {set i 1} { $i <= $rows} {incr i} { + + if {[info exists community_members($i)]} { + set add_user_id $community_members($i) + + #get screen_names + db_0or1row get_jabber_screen_name {Select (im_screen_name) as user_screen from jb_screens where user_id = :user_id and service = 'jabber'} + db_0or1row get_jabber_screen_name_from_add_user {Select im_screen_name , screen_id from jb_screens where user_id = :add_user_id and service = 'jabber'} + #insert into jb_friends and update jb_screens + if {![db_0or1row check_friend "Select * from jb_friends where user_id = :user_id and friend_screen_id = :screen_id"]} { + db_dml insert_into_jb_friends {insert into jb_friends (user_id , friend_screen_id) values (:user_id , :screen_id)} + } + db_dml update_reference_count {update jb_screens SET refcount = refcount + 1 where user_id = :add_user_id and service = 'jabber'} + #add buddy to Jabber roster + set success [jb_addbuddy $user_screen $im_screen_name] + + } +} + + +ns_returnredirect "index" \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/add-group-members.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/add-group-members.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/add-group-members.tcl 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,38 @@ +ad_page_contract { + + add selected group members + @author Luis Mosteiro Fernandez + @creation-date 2002-12-04 + @param user_id to which user + @param group_members array of user_ids, which should be added + @param rows, we need this variable for our loop through the array + +} { + + user_id:integer + group_members:array + rows:integer + +} + +for {set i 1} { $i <= $rows} {incr i} { + + if {[info exists group_members($i)]} { + set add_user_id $group_members($i) + + #get screen_names + db_0or1row get_jabber_screen_name {Select (im_screen_name) as user_screen from jb_screens where user_id = :user_id and service = 'jabber'} + db_0or1row get_jabber_screen_name_from_add_user {Select im_screen_name , screen_id from jb_screens where user_id = :add_user_id and service = 'jabber'} + #insert into jb_friends and update jb_screens + if {![db_0or1row check_friend "Select * from jb_friends where user_id = :user_id and friend_screen_id = :screen_id"]} { + db_dml insert_into_jb_friends {insert into jb_friends (user_id , friend_screen_id) values (:user_id , :screen_id)} + } + db_dml update_reference_count {update jb_screens SET refcount = refcount + 1 where user_id = :add_user_id and service = 'jabber'} + #add buddy to Jabber roster + set success [jb_addbuddy $user_screen $im_screen_name] + + } +} + + +ns_returnredirect "index" \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/add-group.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/add-group.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/add-group.tcl 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,27 @@ +ad_page_contract { + + add-group.tcl + Admin Page for Conference Groups + @author Bjoern Kiesbye, Luis Mosteiro Fernandez + @creation-date 2002-12-20 +} { + group_id:notnull + group_name:notnull + list_members:notnull + new_group_id:notnull +} + + + + +db_exec_plsql new_conference_group { + declare + id integer; + begin + id := composition_rel.new(OBJECT_ID_ONE => :group_id , OBJECT_ID_TWO => :new_group_id ); + end; +} + + + +ns_returnredirect "group-edit.tcl?group_name=$group_name&group_id=$group_id&list_members=$list_members" \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/add-user.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/add-user.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/add-user.tcl 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,27 @@ +ad_page_contract { + + add-user.tcl + Admin Page for Conference Groups + @author Bjoern Kiesbye, Luis Mosteiro Fernandez + @creation-date 2002-12-20 +} { + group_id:notnull + group_name:notnull + list_members:notnull + user_id:notnull +} + + + + +db_exec_plsql new_conference_group { + declare + id integer; + begin + id := membership_rel.new(OBJECT_ID_ONE => :group_id , OBJECT_ID_TWO => :user_id ); + end; +} + + + +ns_returnredirect "group-edit.tcl?group_name=$group_name&group_id=$group_id&list_members=$list_members" \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/addbuddy.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/addbuddy.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/addbuddy.adp 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,39 @@ + +Add buddy to user's roster + +

Here you can add buddies to the user's roster

+ + + +

This is a list of jabber users, who are registered in our internal Jabber Server. You can add those to the user's specific roster only.

+ + + + + + + + + + + + + + + + +
First NamesLast NameScreen nameAction
@internal_users.first_names@@internal_users.last_name@@internal_users.im_screen_name@Add
+ + + +
+
+Add members of a community + +
+ +

There are no other users registert than the user you have chosen, so you cannot add anyone.

+
+ +
+

Back to admin-page

Index: openacs-4/contrib/packages/jabber/www/admin/addbuddy.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/addbuddy.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/addbuddy.tcl 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,37 @@ +ad_page_contract { + + add buddy to user's roster + @author Luis Mosteiro Fernandez + @creation-date 2002-11-12 + @param user_id to whom's roster should the admin add buddies + +} { + + user_id:integer + +} -properties { + + user_id:onevalue + internal_users:multirow + row_check_p:onevalue + +} + + +db_multirow internal_users get_internal_users { + Select persons.first_names, persons.last_name, persons.person_id , jb_screens.im_screen_name + from jb_screens, persons + where persons.person_id = jb_screens.user_id + and jb_screens.service = 'jabber' + and persons.person_id != :user_id + and jb_screens.screen_id not in (Select friend_screen_id from jb_friends where user_id = :user_id) + +} { + set row_check_p 1 +} if_no_rows { + set row_check_p 0 +} + + + +ad_return_template \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/addbuddy2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/addbuddy2.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/addbuddy2.tcl 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,26 @@ +ad_page_contract { + + add buddy to user's roster + @author Luis Mosteiro Fernandez + @creation-date 2002-11-12 + @param username username of the buddy, which should be added + @param user_id + +} { + + user_id:integer + screen_name:notnull + +} + + +db_0or1row get_user_screen_name {Select im_screen_name from jb_screens where user_id = :user_id and service = 'jabber'} +db_0or1row get_screen_id {Select screen_id from jb_screens where im_screen_name = :screen_name and service = 'jabber'} + + +db_dml update_reference {update jb_screens SET refcount = refcount + 1 where im_screen_name = :screen_name and service = 'jabber'} +db_dml insert_into_jb_friends {insert into jb_friends (user_id , friend_screen_id) values (:user_id , :screen_id)} + +set success [jb_addbuddy $im_screen_name $screen_name] + +ns_returnredirect "addbuddy?user_id=$user_id" \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/block-group-2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/block-group-2.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/block-group-2.tcl 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,32 @@ +ad_page_contract { + + block-group-2.tcl + @author Bjoern Kiesbye + @email bkiesbye@sussdorff-roy.com + +} { + + group_id:integer,notnull + type:notnull + {showe_blocked "true"} +} + + +if { $type == "block" } { + + + catch { [db_dml remove_group_from_conferencing "DELETE FROM jb_conference_groups WHERE group_id = :group_id"] + } errormsg + + catch { [db_dml block_group_for_conferencing "INSERT INTO jb_groups_blocked_conference (group_id) values (:group_id)"] + } errormsg + + ns_returnredirect block-group.tcl?showe_blocked=$showe_blocked +} elseif { $type == "unblock"} { + + + catch { [db_dml unblock_group_for_conferencing "DELETE FROM jb_groups_blocked_conference WHERE group_id = :group_id"] + } errormsg + + ns_returnredirect block-group.tcl?showe_blocked=$showe_blocked +} Index: openacs-4/contrib/packages/jabber/www/admin/block-group.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/block-group.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/block-group.adp 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,29 @@ + +Jabber Admin Conference Groups +Conference + + +
    + +
  • @blocked_groups.group_name@ Unblock
  • +
    +
+

Hide this List

+
+ +

Showe List of blocked Groups

+
+ +

Enter a search prefix to find the Group to Block.
+ (Blocking a Group will implicitly remove this Group from the Conference System,
this Group can't be added again as long as the Group is blocked)

+

+ + + + + + \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/block-group.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/block-group.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/block-group.tcl 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,48 @@ +ad_page_contract { + + block-group.tcl + @author Bjoern Kiesbye + @email bkiesbye@sussdorff-roy.com + +} { + + group_prefix:optional + {show_blocked "true"} +} + + +if {$show_blocked == "true"} { +multirow create blocked_groups group_name group_id + +db_foreach get_blocked_groups "SELECT (g.group_name) as group_name , (g.group_id) group_id FROM jb_groups_blocked_conference jgbc , groups g WHERE jgbc.group_id = g.group_id" { + + + multirow append blocked_groups $group_name $group_id + + } +} + + +set searched_rows "false" + +if { [info exists group_prefix]} { + + set searched_rows "true" + + multirow create searched_groups group_name group_id + + db_foreach get_group_from_prefix "SELECT (group_id) as cur_group_id , (group_name) as cur_group_name FROM groups g WHERE lower(g.group_name) like(lower('$group_prefix%'))" { + + multirow append searched_groups $cur_group_name $cur_group_id + + } if_no_rows { + + set searched_rows "false" + } +} + +ad_form -name search -action block-group\#result -form { + {show_blocked:text(hidden) {value $show_blocked}} + {group_prefix:text(text) {label ""}} + {sub1:text(submit) {label "Search"}} +} \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/chatstart.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/chatstart.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/chatstart.adp 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,23 @@ + +Start Chat + + +

Start Chat:


+ + +

Jabber Client Offline!

+
+ +

Chat started between: @user1@ and @user2@!

+
+ +
+
+
+

Back to admin-page

+ + + + + + Index: openacs-4/contrib/packages/jabber/www/admin/chatstart.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/chatstart.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/chatstart.tcl 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,28 @@ +ad_page_contract { + + displays whether chat started or not + @author Bjoern Kiesbye, Luis Mosteiro Fernandez + @param user1 + @param user2 + +} { + + user1:notnull + user2:notnull + +} -properties { + + user1:onevalue + user2:onevalue + success:onevalue + +} + +set success [jb_chat $user1 $user2] + + +ad_return_template + + + + Index: openacs-4/contrib/packages/jabber/www/admin/client.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/client.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/client.adp 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,26 @@ + +Login + +


Login:

+ + +

Jabber Client could not login! See Error Log for details!

+
+ +

Jabber Client logged in! + + Setting Presence failed! See Error Log for details!

+ + + Presence set to 'Online'! + +
+ +
+
+
+

Back to admin-page.

+ + + + Index: openacs-4/contrib/packages/jabber/www/admin/client.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/client.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/client.tcl 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,19 @@ +ad_page_contract { + + display whether client could login or not + @author Bjoern Kiesbye, Luis Mosteiro Fernandez + @creation-date 2002-10-16 + +} -properties { + + success:onevalue + success_presence:onevalue + +} + + +set success [jb_login] + +set success_presence [jb_setpresence] + +ad_return_template \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/conference.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/conference.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/conference.adp 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,23 @@ + +JABBER CONFERENCE ADMIN + +
+
+ + + +
+Manage Blocking of Groups +
+Add or Remove Users or Groups to/from a Conference Group + +
    + +
  • @groups.group_name@
  • +
    +
      + + + +

      There are no Groups!! You have to create a Group before you can add Users to a Group

      +
      \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/conference.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/conference.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/conference.tcl 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,41 @@ +ad_page_contract { + + conference.tcl + Admin Page for Conference Groups + @author Bjoern Kiesbye, Luis Mosteiro Fernandez + @creation-date 2002-10-16 +} -properties { + + +} + +ad_form -name find -action new-group -form { + {group_name:text(text) {label "Find existing    
      group: "}} + {new_group:text(submit) {label "Find"}} +} + +ad_form -name create -action new-group -form { + {group_name:text(text) {label "Create group:"}} + {new_group:text(submit) {label "Create"}} +} + + +set groups_exist "true" + +multirow create groups group_name group_id + + +db_foreach get_conference_groups "SELECT (g.group_name) as group_name , (g.group_id) as group_id + FROM jb_conference_groups jcg, groups g + WHERE jcg.conference_only_p = 't' + AND g.group_id = jcg.group_id" { + + multirow append groups $group_name $group_id + + + } if_no_rows { + + set groups_exist "false" + } + + Index: openacs-4/contrib/packages/jabber/www/admin/group-edit.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/group-edit.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/group-edit.adp 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,70 @@ + +JABBER CONFERENCE GROUP EDIT + + +
      +

      All members of this Group

      + + + + + + +
      NameStateAction
      @users_list.name@@users_list.member_state@delete
      +
      +
      +

      All Groups of this Conference Group

      + + + + + + + + + + +
      NameAction
      @groups_list.name@remove
      +
      +

      Don't show this list

      +
      + + +

      Show a list of all Members

      +
      + + +Here you can search for Users or Groups to add them to the Conference group @group_name@ ! + + + + + +
      +

      Search for Users who's Last Name starts with:

      +

      +
      +

      Search for Groups who's Name starts with

      +

      +
      + + + + +

      You can add this @multi@ to the Conference group @group_name@

      + +
      + + + +

      You can add this @multi@ to the Conference group @group_name@

      + +
      \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/group-edit.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/group-edit.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/group-edit.tcl 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,104 @@ +ad_page_contract { + + group-edit.tcl + Admin Page for Conference Groups + @author Bjoern Kiesbye, Luis Mosteiro Fernandez + @creation-date 2002-10-16 +} { + {user_prefix ""} + {group_prefix ""} + group_id:notnull + group_name:notnull + {list_members "true"} +} -properties { + +} + +set multi "" + +multirow create partys party_id name + +if {$user_prefix != ""} { + + set multi users + + db_foreach get_users_from_prefix "SELECT person_id , first_names , last_name FROM persons p WHERE lower(p.last_name) like(lower('$user_prefix%'))" { + + + multirow append partys $person_id "$first_names $last_name" + } if_no_rows { + + set multi "" + } +} elseif { $group_prefix != ""} { + + set multi groups + + db_foreach get_users_from_prefix "SELECT (group_id) as cur_group_id , (group_name) as cur_group_name FROM groups g WHERE lower(g.group_name) like(lower('$group_prefix%'))" { + + + multirow append partys $cur_group_id $cur_group_name + } if_no_rows { + + set multi "" + } + + +} + + + + + +if {$list_members == "true" } { +multirow create users_list name rel_id member_state + +db_foreach get_users_from_this_group "SELECT (p.last_name) as last_name , (p.first_names) as first_names , (gmm.rel_id) as rel_id , (mr.member_state) as member_state + FROM persons p, group_member_map gmm, membership_rels mr + WHERE gmm.group_id = :group_id + AND gmm.group_id = gmm.container_id + AND gmm.member_id = p.person_id + AND mr.rel_id = gmm.rel_id" { + + multirow append users_list "$first_names $last_name" $rel_id $member_state + + } if_no_rows { + + } + + + + +multirow create groups_list name rel_id + + + +db_foreach get_users_from_this_group " SELECT (g.group_name) as name, (gcm.rel_id) as rel_id + FROM groups g , group_component_map gcm + WHERE gcm.group_id = :group_id + AND gcm.component_id = g.group_id " { + + multirow append groups_list $name $rel_id + + } if_no_rows { + + } + + +} + +ad_form -name user_search -action group-edit\#result -form { + {group_id:text(hidden) {value $group_id}} + {group_name:text(hidden) {value $group_name}} + {list_members:text(hidden) {value $list_members}} + {user_prefix:text(text) {label ""}} + {sub1:text(submit) {label "Search User"}} +} + +ad_form -name group_search -action group-edit\#result -form { + {group_id:text(hidden) {value $group_id}} + {group_name:text(hidden) {value $group_name}} + {list_members:text(hidden) {value $list_members}} + {group_prefix:text(text) {label ""}} + {sub2:text(submit) {label "Search Group"}} +} Index: openacs-4/contrib/packages/jabber/www/admin/group-state-change.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/group-state-change.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/group-state-change.tcl 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,24 @@ +ad_page_contract { + + group-state-change.tcl + Admin Page for Conference Groups + @author Bjoern Kiesbye, Luis Mosteiro Fernandez + @creation-date 2002-10-16 +} { + group_id:notnull + group_name:notnull + list_members:notnull + rel_id:notnull + +} + + + +db_exec_plsql new_conference_group { + begin + composition_rel.delete(:rel_id ); + end; +} + + +ns_returnredirect "group-edit.tcl?group_name=$group_name&group_id=$group_id&list_members=$list_members" \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/index.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/index.adp 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,71 @@ + +JABBER ADMIN PAGE + + +

      JABBER ADMIN PAGE

      +
      + +

      Conference Groups Administration

      +

      Start the JabberApplet

      + + +
      + + + + + + +

      Client Control:

      + + + + + + + + + + + + + +
      Connection State: OFFLINE ONLINE
      + +
      +

      Add New IM-Service:

      + + +
      +

      Show online users

      +
      +

      Show registered users
      Search and register non registered users

      Services view/deactivate

      +
      +

      Add Buddy to User's roster

      +

      Remove Buddy from User's roster

      +
      + + + + + + +

      Send message:

      + + +
      +

      Start Chat:

      + + +
      +
      + + + + + + + + + + Index: openacs-4/contrib/packages/jabber/www/admin/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/index.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/index.tcl 1 Oct 2003 04:35:53 -0000 1.1 @@ -0,0 +1,59 @@ +ad_page_contract { + + jabber-admin.tcl + Admin Page for Jabber server + @author Bjoern Kiesbye, Luis Mosteiro Fernandez + @creation-date 2002-10-16 + +} -properties { + + url:onevalue + state:onevalue + user_id:onevalue + +} + + + set url [ad_conn url] + set jconn [jb_getconnstate] + + if {$jconn == "-1"} { + set state 0 + } else { + set state 1 + } + + set user_id [ad_conn user_id] + ad_maybe_redirect_for_registration + +# define the different forms + +ad_form -name login -action client -form { + {Login:text(submit) {label "Log In"}} +} + +ad_form -name logout -action logout -form { + {Logout:text(submit) {label "Log Out"}} +} + +ad_form -name service-add -action service-add -form { + {service:text(text) {label "Service Name:
      (Database reference name)"}} + {pretty_name:text(text) {label "Pretty Name:"}} +} + +ad_form -name message -action message2 -form { + {receive_user:text(text) {label "Username:"}} + {message:text(textarea) {html {cols 25}} {html {rows 5}} {label "Message:"}} + {Send:text(submit)} +} + +ad_form -name chat -action chatstart -form { + {user1:text(text) {label "1.User:"}} + {user2:text(text) {label "2.User:"}} + {Chat:text(submit)} +} + +ad_return_template + + + Index: openacs-4/contrib/packages/jabber/www/admin/jabber-users.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/jabber-users.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/jabber-users.adp 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,49 @@ + +Jabber - Jabber Users + + + +

      Jabber Users:


      [refresh] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      UserIDJabberIDPasswordStatusActionView user's roster
      @get_users.user_id@@get_users.screen_name@@get_users.pass@@get_users.regstate@RegisterApprove and RegisterRemove userView buddies
      +

      Jabber Users:


      +

      Actually there are no users registered!

      + +
      +[refresh] +
      +
      +
      +

      Back to admin-page.

      + Index: openacs-4/contrib/packages/jabber/www/admin/jabber-users.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/jabber-users.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/jabber-users.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,33 @@ +ad_page_contract { + + display registered jabber users + @author Bjoern Kiesbye, Luis Mosteiro Fernandez + @creation-date 2002-10-17 + +} -properties { + + register:onevalue + get_users:multirow + row_check_p:onevalue + +} + + + + + +db_multirow get_users get_users { + Select (un.user_id) as user_id , (sn.im_screen_name) as screen_name , + (un.jabber_passwd) as pass , (un.jabber_regstate) as regstate + from jb_screens sn , jb_user_jabber_information un + where un.user_id = sn.user_id and sn.service = 'jabber'} { + + set regstate [string trimright $regstate] + set row_check_p 1 + +} if_no_rows { + + set row_check_p 0 +} + +ad_return_template Index: openacs-4/contrib/packages/jabber/www/admin/logout.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/logout.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/logout.adp 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,20 @@ + +Logout + + +

      Logout:


      + + +

      Jabber Client could not logout properly! No Connection found!

      +
      + +

      Jabber Client logged out!

      +
      + + +
      +
      +
      +

      Back to admin-page.

      + + Index: openacs-4/contrib/packages/jabber/www/admin/logout.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/logout.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/logout.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,16 @@ +ad_page_contract { + + logout page + @author Bjoern Kiesbye, Luis Mosteiro Fernandez + +} -properties { + + success:onevalue + +} + +set success [jb_logout] + + + +ad_return_template Index: openacs-4/contrib/packages/jabber/www/admin/message2.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/message2.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/message2.adp 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,24 @@ + +Send Message + +

      Send Message:

      +
      + + + +

      Jabber Client Offline!

      +
      + +

      Following message has been sent to '@receive_user@':

      +
      +

      '@message@'

      +
      +
      + +

      You are not registered

      +
      + +
      +
      +
      +

      Back to admin-page.

      Index: openacs-4/contrib/packages/jabber/www/admin/message2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/message2.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/message2.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,41 @@ +ad_page_contract { + + inserts messages written on the admin-page into the database + @author Bjoern Kiesbye, Luis Mosteiro Fernandez + @creation-date 2002-10-18 + @param receive_user who shall receive the message + @param message message + +} { + + receive_user:notnull + message:optional + +} + +set user_id [ad_conn user_id] +ad_maybe_redirect_for_registration + +if {[db_0or1row get_name "select first_names , last_name from persons where person_id = :user_id"]} { + + set register_check_p 1 + set name "([string range $first_names 0 1]. $last_name)\n" + append name $message + set message $name + set user_log "$receive_user" + set success [jb_message $receive_user $message] + db_dml insert_log "insert into jb_message_log ( message_id , user_id , message , send , conn_state , receive_jid) values ( jb_message_log_seq.nextval , '[ad_get_user_id]' , :message , sysdate , :success , :user_log )" + + + + +} else { + + set register_check_p 0 + +} + + +ad_return_template + + Index: openacs-4/contrib/packages/jabber/www/admin/new-group-2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/new-group-2.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/new-group-2.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,20 @@ +ad_page_contract { + + new-groups-2.tcl + Admin Page for Conference Groups + @author Bjoern Kiesbye + @email bkiesbye@sussdorff-roy.com + @creation-date 2003-03-13 + +} { + + + group_id:notnull + +} + + +catch { [db_dml add_group_for_conferencing "INSERT INTO jb_conference_groups (group_id) values (:group_id)"] + } errormsg + +ns_returnredirect conference.tcl Index: openacs-4/contrib/packages/jabber/www/admin/new-group.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/new-group.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/new-group.adp 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,18 @@ + +Jabber Admin Confernce Groups +1 +

      +This Groups are able to be used with the Conference System ( Blocked Groups will not show up. +If you want to add a previously blocked Group you have to unblock this Group first). +

      + +
        + +
      • @groups.group_name@ Add
      • +
        +
          + + + +

          No Group Name found that starts with "@group_name@" + \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/new-group.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/new-group.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/new-group.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,55 @@ +ad_page_contract { + + new-groups.tcl + Admin Page for Conference Groups + @author Bjoern Kiesbye, Luis Mosteiro Fernandez + @creation-date 2002-12-18 + +} { + + + group_name:notnull + new_group:notnull +} + +set searched_rows "false" + +if {$new_group == "Create"} { + + catch { + db_exec_plsql new_conference_group { + declare + id integer; + begin + id := acs_group.new(group_name => :group_name); + insert into jb_conference_groups (group_id) values (id); + end; + } + } errormsg + + +ns_returnredirect conference.tcl +ad_script_abort + +} elseif {$new_group == "Find" } { + + set searched_rows true + + multirow create groups group_name group_id + + db_foreach get_group_from_prefix "SELECT (group_id) as cur_group_id , (group_name) as cur_group_name + FROM groups g + WHERE lower(g.group_name) like(lower('$group_name%')) + AND g.group_id NOT IN (SELECT group_id FROM jb_groups_blocked_conference)" { + + multirow append groups $cur_group_name $cur_group_id + + + } if_no_rows { + + set searched_rows "false" + + + } + +} \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/online-users.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/online-users.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/online-users.adp 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,38 @@ + +Jabber - Online Users + + + +

          Online Users:


          [refresh] + + + + + + + + + + + + + + + + + + + + +

          Online Users:


          +
          JabberIDResourceStatusServiceStart a ChatAdd this user to my Roster
          @get_users.im_screen_name@@get_users.resource@@get_users.status@@get_users.service@@ltext@ @get_users.im_screen_name@add to my roster +
          +

          There are no users online!

          + +
          +[refresh] +
          +
          +
          +

          Back to admin-page.

          + Index: openacs-4/contrib/packages/jabber/www/admin/online-users.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/online-users.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/online-users.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,55 @@ +ad_page_contract { + + display users who are online + @author Bjoern Kiesbye, Luis Mosteiro Fernandez + @creation-date 2002-10-17 + +} -properties { + + caller:onevalue + ltext:onevalue + get_users:multirow + online_check_p:onevalue + statecolour:onevalue + +} + + +set user_id [ad_conn user_id] +ad_maybe_redirect_for_registration + +set sql "select im_screen_name from jb_screens where user_id= :user_id and service = 'jabber'" + +if { [db_0or1row reg_gequest $sql] } { + set caller $im_screen_name + set ltext "Start chat" +} else { + set caller "" + set ltext "You are not registered" +} + + +multirow create get_users screen_id status statecolour im_screen_name service resource +db_foreach get_users "select * from jb_screens where status != 'offline'" { + + set online_check_p 1 + + if { $status == "online" } { + set statecolour "green" + } elseif { $status == "away" } { + set statecolour "mediumslateblue" + } elseif { $status == "dnd" } { + set statecolour "navy" + } else { + set statecolour "black" + } + + multirow append get_users $screen_id $status $statecolour $im_screen_name $service $resourc +} if_no_rows { + + set online_check_p 0 + +} + + +ad_return_template \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/remove-user.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/remove-user.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/remove-user.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,24 @@ +ad_page_contract { + + group-edit.tcl + Admin Page for Conference Groups + @author Bjoern Kiesbye, Luis Mosteiro Fernandez + @creation-date 2002-10-16 +} { + group_id:notnull + group_name:notnull + list_members:notnull + rel_id:notnull +} -properties { + +} + + +db_exec_plsql new_conference_group { + begin + membership_rel.delete(:rel_id ); + end; +} + + +ns_returnredirect "group-edit.tcl?group_name=$group_name&group_id=$group_id&list_members=$list_members" \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/remove.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/remove.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/remove.adp 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,17 @@ + +Remove registered user + + +

          Remove registered user

          + + +

          We had problems processing your data, we could not remove the user from the the Jabber server. Database transaction was aborted!

          +
          + + +

          DML statement failed!

          +
          + + +

          DML statement failed!

          +
          \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/remove.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/remove.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/remove.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,77 @@ +ad_page_contract { + + remove user from the jabber server + @author Luis Mosteiro Fernandez + @creation-date 2002-12-10 + @param user_id + @param user the Jabber screenname of the user + +} { + + user_id:integer + user:notnull + +} + +set user_screen_ids [list] +set delete_screens_check 1 +set delete_jabber_information_check 1 + +# remove user from the Jabber server +set success [jb_remove $user] + +# get all screen IDs from user to delete them with the jb_screens_delete func + + +if {$success == "1"} { + + db_foreach get_screen_ids { Select screen_id from jb_screens where user_id = :user_id } { + + lappend user_screen_ids $screen_id + + } + + # delete rows from the database + + for { set i 0 } {$i <= [llenght $user_screen_ids] - 1} {incr i} { + + set user_screen_id [lindex $user_screen_ids $i] + + db_transaction { + + db_exec_plsql jb_screen_delete { + begin + jb_screen.delete(:user_screen_id); + end; + } + } on_error { + set delete_screens_check 0 + } + + } + + db_transaction { + + db_dml delete_jabber_information {delete from jb_user_jabber_information where user_id = :user_id } + + } on_error { + + set delete_jabber_information_check 0 + + } + + if { $delete_screens_check == "1" && $delete_jabber_information == "1" } { + ns_returnredirect "jabber-users" + } else { + ad_return_template + } + + +} else { + + ad_return_template + +} + + + Index: openacs-4/contrib/packages/jabber/www/admin/removebuddy.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/removebuddy.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/removebuddy.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,25 @@ +ad_page_contract { + + remove buddy from user's roster + @author Luis Mosteiro Fernandez + @creation-date 2002-11-13 + @param user_id which roster + @param screen_id who should be removed + +} { + + user_id:integer + screen_id:integer + +} + + +db_1row get_user_jid { Select im_screen_name from jb_screens where user_id = :user_id and service = 'jabber' } +db_1row get_friend_screen_name { Select (im_screen_name) as friend_screen_name from jb_screens where screen_id = :screen_id } + +db_dml remove_from_jb_friends { delete from jb_friends where user_id = :user_id and friend_screen_id = :screen_id } +db_dml decrease_reference { update jb_screens SET refcount = refcount - 1 where screen_id = :screen_id } + +set success [jb_removebuddy $im_screen_name $friend_screen_name] + +ns_returnredirect "view-users-roster?user_id=$user_id&action=remove" \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/service-activate.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/service-activate.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/service-activate.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,17 @@ +ad_page_contract { + + enable a IM-Service + @author Luis Mosteiro Fernandez + @creation-date 2002-11-6 + @param service which service should be activated + +} { + + service:notnull + +} + + +db_dml activate_service { update jb_services SET active_check_p = 't' where service = :service } + +ns_returnredirect "service-view" \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/service-add.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/service-add.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/service-add.adp 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,21 @@ + +Add New Service + + +

          Add New Service

          + + + +

          Insert was successfull, new service is now available!

          + +
          + + +

          Insert failed. Service exists already, maybe it is deactivated, please check following the link + on the admin page! +

          + +
          + +
          +

          Back to admin-page

          \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/service-add.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/service-add.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/service-add.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,37 @@ +ad_page_contract { + + add new service to jb_services + @author Luis Mosteiro Fernandez + @creation-date 2002-11-6 + @param service database name for the IM-service + @param pretty_name pretty_name for the service + +} { + + service:notnull + pretty_name:notnull + +} -properties { + + insert_check_p:onevalue + +} + + + + +#check, whether service is in the database or not + +if {![db_0or1row get_services { Select service , pretty_name from jb_services where service = :service }]} { + + db_dml insert "insert into jb_services (service , pretty_name , active_check_p ) values ( :service , :pretty_name , 't')" + + set insert_check_p 1 + +} else { + + set insert_check_p 0 + +} + +ad_return_template \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/service-deactivate.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/service-deactivate.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/service-deactivate.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,17 @@ +ad_page_contract { + + disable a IM-Service + @author Luis Mosteiro Fernandez + @creation-date 2002-11-6 + @param service which service should be deactivated + +} { + + service:notnull + +} + + +db_dml deactivate_service { update jb_services SET active_check_p = 'f' where service = :service } + +ns_returnredirect "service-view" \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/service-view.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/service-view.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/service-view.adp 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,39 @@ + +Available IM-Services + + +

          Available IM-Services and their activation status

          + + + + + + + + + + + + + + + + + + + + + + + + + + + +

          Sorry, there are no IM-services available! Please add one!

          + +
          +
          Pretty NameService Name (database name)StatusChange Status
          @get_services.pretty_name@@get_services.service@ENABLED        disableDISABLED        enable
          + +
          +

          Back to admin-page

          \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/service-view.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/service-view.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/service-view.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,25 @@ +ad_page_contract { + + page to display all IM-Services + @author Luis Mosteiro Fernandez + @creation-date 2002-11-6 + +} -properties { + + get_services:multirow + row_check_p:onevalue + +} + +db_multirow get_services get_service { Select * from jb_services } { + + set row_check_p 1 + +} if_no_rows { + + set row_check_p 0 + +} + +ad_return_template + Index: openacs-4/contrib/packages/jabber/www/admin/user-register-2.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/user-register-2.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/user-register-2.adp 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,35 @@ + +Register user + + +

          Sorry, the IM Service is not avaiable now, please try again later.

          +
          +
          +
          +

          Back to admin-page

          +
          + +

          Register user

          + + + + + + + +
          + + The screen name you typed in is already in use! + + + Please fill in the form to register user with Jabber! + +
          +
          +
          +
          +
          +

          Back to search list +
          +Back to admin-page

          +
          \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/user-register-2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/user-register-2.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/user-register-2.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,34 @@ +ad_page_contract { + + register user through admin page, uses form like the form in the Jabber index page + @author Bjoern Kiesbye bkiesbye@sussdorff-roy.com + @author Luis Mosteiro Fernandez lmosteiro@sussdorff-roy.com + @creation-date 2003-03-06 + @param user_id which user should be registered + @param user_prefix + @param reg_error error code for failed registration + +} { + + user_id:integer,notnull + {user_prefix ""} + {reg_error "nothing"} + +} -properties { + + connstate:onevalue + user_id:onevalue + user_prefix:onevalue + +} + +set connstate [jb_getconnstate] + +ad_form -name user-register -action user-register-3 -form { + {jscreen:text(text) {label "Jabber screen:"}} + {passwd:text(password) {label "Password:"}} + {return_url:text(hidden) {value "index"}} + {user_id:integer(hidden) {value $user_id}} + {user_prefix:text(hidden) {value $user_prefix}} + {Register:text(submit) {value "Register"}} +} \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/user-register-3.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/user-register-3.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/user-register-3.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,64 @@ +ad_page_contract { + + final registration process, checks, whether registration was successful, throws exception and redirects to registration form + @author Bjoern Kiesbye bkiesbye@sussdorff-roy.com + @author Luis Mosteiro Fernandez lmosteiro@sussdorff-roy.com + @creation-date 2003-03-06 + @param user_id which user should be registered + @param jscreen which name should the user have + @param passwd which password will the user have + @param user_prefix + +} { + + user_id:integer,notnull + jscreen:notnull + passwd:notnull + {user_prefix ""} + +} -properties { + +} + + + +set success [jb_register $jscreen $passwd] + +if {$success == "r" } { + + db_exec_plsql new_screen { + declare + id integer; + begin + id := jb_screen.new ( + user_id => :user_id, + im_screen_name => :jscreen, + service => 'jabber', + status => 'offline', + refcount => '1', + object_type => 'jb_screen' + ); + end; + } + + db_dml create_contact {insert into jb_user_jabber_information (user_id , jabber_regstate, jabber_passwd) values (:user_id , 'r', :passwd)} + ns_returnredirect "user-register?user_prefix=$user_prefix" + set insert_check_p 1 + +} elseif {$success == "e"} { + + ns_returnredirect "user-register-2?reg_error=exists&user_id=$user_id" + + set insert_check_p 2 + +} else { + + ns_returnredirect "user-register-2?reg_error=offline&user_id=$user_id" + set insert_check_p 3 + +} + +ad_return_template + + + Index: openacs-4/contrib/packages/jabber/www/admin/user-register.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/user-register.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/user-register.adp 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,30 @@ + +Register user to the Jabber Server + +

          Register user to the Jabber Server

          + +

          Here you can search for Users, who are not registered to the Jabber Server yet, so you can register them now!

          + + + +
          +

          Search for Users who's First or Last Name starts with:

          + +
          + + + + +

          You can add this @multi@ to the Jabber Server

          + +
          + + +
          +
          +
          +

          Back to admin-page

          Index: openacs-4/contrib/packages/jabber/www/admin/user-register.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/user-register.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/user-register.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,53 @@ +ad_page_contract { + + user-register.tcl + Admin Page to register a user + @author Bjoern Kiesbye, Luis Mosteiro Fernandez + @creation-date 2002-03-05 + @param user_prefix search for user with this user_prefix, so admin can register them + +} { + + {user_prefix ""} + +} -properties { + + partys:multirow + multi:onevalue + +} + +set multi "" + + +ad_form -name search -action user-register\#result -form { + {user_prefix:text(text) {value $user_prefix} {label ""}} + {Search:text(submit) {value "Search"}} +} + + + +multirow create partys party_id name + +if {$user_prefix != ""} { + + + set multi users + + + + db_foreach get_users_from_prefix "SELECT distinct person_id , first_names , last_name FROM persons p WHERE (lower(p.last_name) like(lower('$user_prefix%')) OR lower(p.first_names) like(lower('$user_prefix%'))) and p.person_id not in (Select distinct user_id from jb_screens where user_id is not null)" { + + multirow append partys $person_id "$first_names $last_name" + + } if_no_rows { + + set multi "" + } + +} + +ad_return_template + + +# \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/user-state-change.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/user-state-change.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/user-state-change.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,36 @@ +ad_page_contract { + + group-edit.tcl + Admin Page for Conference Groups + @author Bjoern Kiesbye, Luis Mosteiro Fernandez + @creation-date 2002-10-16 +} { + group_id:notnull + group_name:notnull + list_members:notnull + rel_id:notnull + new_state:notnull +} -properties { + +} + +if {$new_state == "deleted" } { + +db_exec_plsql new_conference_group { + begin + membership_rel.delete(:rel_id ); + end; +} +} elseif {$new_state == "approved" } { + +db_exec_plsql new_conference_group { + begin + membership_rel.approve(:rel_id ); + end; +} + + +} + + +ns_returnredirect "group-edit.tcl?group_name=$group_name&group_id=$group_id&list_members=$list_members" \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/view-communities.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/view-communities.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/view-communities.adp 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,46 @@ + +View User's Communities + + +

          This are the groups and communities this user is member of

          + + + +

          Following is a list of groups:

          + + + +
          + +

          The user is not member of any group!

          +
          + +
          + + + +

          Following is a list of dotlrn communities:

          + + + + + + + + + + + + + + +
          Community TypeCommunity NameView members
          @get_dotlrn_communities.community_type@@get_dotlrn_communities.pretty_name@View
          + +
          + +

          The user is not member of a dotlrn community!

          +
          \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/view-communities.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/view-communities.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/view-communities.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,79 @@ +ad_page_contract { + + view the communities the user is member of + @author Luis Mosteiro Fernandez + @creation-date 2002-12-4 + @param user_id which user + +} { + + user_id:integer + +} -properties { + + dotlrn_row_check_p:onevalue + get_dotlrn_communities:multirow + groups_row_check_p:onevalue + get_groups:multirow + user_id:onevalue + +} + + +set dotlrn_row_check_p 0 + + +if {![db_0or1row check_dotlrn "select * from apm_packages where instance_name = 'dotlrn'"]} { + +db_multirow get_dotlrn_communities get_dotlrn_communities { + select dotlrn_communities.community_id, + dotlrn_communities.community_type, + dotlrn_communities.pretty_name, + dotlrn_communities.description, + dotlrn_communities.package_id, + dotlrn_community.url(dotlrn_communities.community_id) as url, + dotlrn_member_rels_approved.rel_type, + dotlrn_member_rels_approved.role, + '' as role_pretty_name, + decode(dotlrn_community_admin_p(dotlrn_communities.community_id, dotlrn_member_rels_approved.user_id),'f',0,1) as admin_p + from dotlrn_communities, + dotlrn_member_rels_approved + where dotlrn_member_rels_approved.user_id = :user_id + and dotlrn_communities.community_id = dotlrn_member_rels_approved.community_id + and dotlrn_communities.community_type != 'dotlrn_community' + order by dotlrn_communities.pretty_name + +} { + + set dotlrn_row_check_p 1 + +} if_no_rows { + + set dotlrn_row_check_p 0 + +} + +} + + +db_multirow get_groups get_groups { + + select gr.group_name , gr.group_id + from groups gr, group_approved_member_map grm + where grm.member_id = :user_id + and gr.group_id = grm.group_id + and gr.group_id > 1 + and gr.group_name != 'Main Site Parties' + and gr.group_name != 'subsite Parties' + +} { + + set groups_row_check_p 1 + +} if_no_rows { + + set groups_row_check_p 0 + +} + +ad_return_template \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/view-community-members.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/view-community-members.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/view-community-members.adp 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,21 @@ + +View Community Members + + +

          These are the members of the selected dotlrn community.

          +

          Please take under consideration that not all user's displayed are registered users in our Jabber server!

          + + +

          Select the user's you want to add.

          +

          + + + + @users.first_names@   @users.last_name@ (@users.role@)
          +
          +

          +

          + +

          + Index: openacs-4/contrib/packages/jabber/www/admin/view-community-members.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/view-community-members.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/view-community-members.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,26 @@ +ad_page_contract { + + view members of an dotlrn community + @author Luis Mosteiro Fernandez + @creation-date 2002-12-04 + @param community_id + +} { + + community_id:integer + user_id:integer + +} -properties { + + users:multirow + +} + +#Get members +set community_members [dotlrn_community::list_users $community_id] + +template::util::list_of_ns_sets_to_multirow \ + -rows $community_members \ + -var_name "users" + +ad_return_template \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/view-group-members.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/view-group-members.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/view-group-members.adp 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,15 @@ + +View Group Members + + +

          These are the members of the selected group and registered users in our Jabber server without users, who are in your buddy list already!

          + + + +

          Please select the user's you want to add

          + + +
          + +

          You already have all users of these group on your buddy list!

          +
          \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/view-group-members.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/view-group-members.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/view-group-members.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,52 @@ +ad_page_contract { + + view members of a group + @author Luis Mosteiro Fernandez + @creation-date 2002-12-04 + @param group_id which group + @param user_id to which user + +} { + + group_id:integer + user_id:integer + +} -properties { + + get_group_members:multirow + member_row_check_p:onevalue + +} + +set row_count 0 + +ad_form -name group_members -action add-group-members -form { + {user_id:text(hidden) {value $user_id}} +} + +db_foreach get_group_members { + Select pe.person_id , pe.first_names , pe.last_name + from persons pe, group_approved_member_map grm , jb_screens js + where grm.group_id = :group_id + and pe.person_id = grm.member_id + and pe.person_id = js.user_id + and js.service = 'jabber' + and pe.person_id != :user_id + and js.screen_id not in (Select friend_screen_id from jb_friends where user_id = :user_id) +} { + set options [list [list "" $person_id]] + incr row_count + template::element create group_members group_members.$row_count -datatype text -widget checkbox -label "$first_names $last_name" -options $options + set member_row_check_p 1 + +} if_no_rows { + set member_row_check_p 0 +} + +ad_form -extend -name group_members -form { + {rows:integer(hidden) {value $row_count}} +} + +ad_return_template + + \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/view-users-roster.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/view-users-roster.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/view-users-roster.adp 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,66 @@ + +View user's roster or buddy list + + + + + +

          Internal buddies

          + + + + + + + + + + + + + + + + + +
          First NamesLast NameService
          @internal_buddies.first_names@@internal_buddies.last_name@@internal_buddies.service@Remove
          +
          + +

          Sorry, no internal buddies

          +
          + +

          External buddies

          + + + + + + + + + + + + + + + + + +
          First NamesLast NameService
          @external_buddies.friend_first_name@@external_buddies.friend_last_name@@external_buddies.service@Remove
          +
          + +

          Sorry, no external buddies

          +
          +
          + +

          This user has no buddies in his roster

          +
          + + +
          + Add buddies to this user +
          + +
          +

          Back to admin-page

          Index: openacs-4/contrib/packages/jabber/www/admin/view-users-roster.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/view-users-roster.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/view-users-roster.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,44 @@ +ad_page_contract { + + view user's roster or buddy list + @author Luis Mosteiro Fernandez + @creation-date 2002-11-12 + @param user_id who's roster do you want to see + @param action what do you want to do with user's roster + +} { + + user_id:integer + action:notnull + +} -properties { + + row_check_p:onevalue + action:onevalue + internal_buddies:multirow + external_buddies:multirow + +} + +set row_check_p 0 + +db_multirow internal_buddies get_internal { + Select persons.first_names, persons.last_name, jb_screens.screen_id, jb_screens.service + from jb_screens, persons + where persons.person_id = jb_screens.user_id + and jb_screens.user_id is not null + and jb_screens.screen_id IN (Select friend_screen_id from jb_friends where user_id = :user_id) +} { + set row_check_p [expr $row_check_p + 1] +} + +db_multirow external_buddies get_external { + Select jb_friends.friend_first_name, jb_friends.friend_last_name , jb_screens.screen_id , jb_screens.service + from jb_friends , jb_screens + where jb_friends.user_id = :user_id + and friend_first_name is not null + and friend_last_name is not null + and jb_friends.friend_screen_id = jb_screens.screen_id +} { + set row_check_p [expr $row_check_p + 2] +} Index: openacs-4/contrib/packages/jabber/www/admin/view-users.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/view-users.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/view-users.adp 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,28 @@ + +Select a user + + +

          Please select a user to @action@ buddies

          + + + + + + + + + + + + + + +
          First NameLast Name
          @get_users.first_names@@get_users.last_name@Select
          +
          + +

          Sorry, there are no jabber-users

          +
          + +
          + +

          Back to admin-page

          \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/admin/view-users.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/admin/Attic/view-users.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/admin/view-users.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,36 @@ +ad_page_contract { + + view of jabber users, so the admin can choose for which user he wants to add or remove buddies + @author Luis Mosteiro Fernandez + @creation-date 2002-11-12 + @param action , what does the admin want to do with user's roster, add or remove buddies + +} { + + action:notnull + +} -properties { + + row_check_p:onevalue + action:onevalue + get_users:multirow + +} + +db_multirow get_users get_users { + Select persons.first_names, persons.last_name, persons.person_id + from jb_screens, persons + where persons.person_id = jb_screens.user_id + and jb_screens.service = 'jabber' +} { + set row_check_p 1 + +} if_no_rows { + + set row_check_p 0 + +} + + + +ad_return_template \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/conference/JabberApplet.jar =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/JabberApplet.jar,v diff -u -N Binary files differ Index: openacs-4/contrib/packages/jabber/www/conference/append-chat-2.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/append-chat-2.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/append-chat-2.adp 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,9 @@ + +Jabber +conference + +

          +The Topic '@topic@' , in Room '@room_name@' cant be appended.
          +Reason: The IM System is not available, or the Room is not spelled correctly. + +

          \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/conference/append-chat-2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/append-chat-2.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/append-chat-2.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,30 @@ +ad_page_contract { + append-chat.tcl + author: bkiesbye@sussdorff-roy.com + 26.2.2003 +} { + + room_name:notnull + thread_id:notnull + subject:notnull + {display_status "true"} + {party_id "0"} + {room_id "0"} + +} + + + +set ret [jb_append_subject $room_name $subject $subject $thread_id] +ns_log notice "thread_id in append_chat-2.tcl ghj $thread_id" + +if { $ret == "0"} { +ns_returnredirect recorded-chat.tcl?name=$room_name&thread_id=$thread_id&party_id=$party_id&subject=$subject$display_status=$display_status&room_id=$room_id + +ad_script_abort + +} else { + +ad_return_template + +} \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/conference/append-chat.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/append-chat.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/append-chat.adp 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,28 @@ + +Jabber +conference + +

          +The Room '@room_name@' is Active, at the moment the Topic '@current_subject@' is disscused.
          If you change the Topic, everything submitted to this Room will be appended to the discussion on Topic '@subject@'. +

          + +Room: @room_name@
          Current Topic: @current_subject@
          New Topic: @subject@
          + +

          + + + + + +
          Users in this Room
          @members.nick@
          +

          + +

          +Are you sure you want to +change the Topic to @subject@ ? +

          + +

          +or you rather +return , and don't change anything ? +

          \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/conference/append-chat.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/append-chat.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/append-chat.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,58 @@ +ad_page_contract { + append-chat.tcl + author: bkiesbye@sussdorff-roy.com + 26.2.2003 +} { + + room_name:notnull + thread_id:notnull + subject:notnull + {display_status "true"} + {party_id "0"} + {room_id "0"} + +} + +set current_subject "Unknowen" + +set active_rooms "-1" + +set active_members [jb_activeroommembers $room_name] + +if {$active_members == -1} { +ns_returnredirect append-chat-2.tcl?room_name=$room_name&thread_id=$thread_id&party_id=$party_id&subject=$subject$display_status=display_status&room_id=$room_id +} else { + set active_rooms [jb_activeconferencerooms] + if {$active_rooms != -1} { + + set rooms_count [ns_set size $active_rooms] + + for {set i 0 } {$i < $rooms_count} {incr i} { + if { [ns_set key $active_rooms $i ] == $room_name } { + set current_subject "[ns_set value [ns_set value $active_rooms $i ] 1 ]" + + } + } + } + + + + + set member_count [ns_set size $active_members] + + multirow create members nick color + + if {$member_count != -1} { + + for {set j 0} {$j < $member_count } {incr j} { + + set cur_member [ns_set value $active_members $j] + multirow append members [ns_set value $cur_member 0] [jb_get_link_color_from_state [ns_set value $cur_member 2 ]] + + } + + } + + + +} \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/conference/create-room.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/create-room.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/create-room.adp 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,9 @@ + +Jabber +conference + + + +

          Before you can invite Users to a Room you may have to Restart it, or you may have to create a fully new one

          +

          + \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/conference/create-room.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/create-room.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/create-room.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,41 @@ +ad_page_contract { + + create-room.tcl + +} { + + party_id:notnull + {create "false"} + {return_url "index"} + +} -properties { + + jid:onevalue + +} + +set jid "bjoern@intranet.sussdorff-roy.com" + +set user_id [ad_conn user_id] + +if {[db_0or1row get_user_screen "Select im_screen_name FROM jb_screens WHERE user_id = :user_id AND service = 'jabber'" ]} { + + + set jid [jb_create_jid $im_screen_name jabber] + +} else { + + set jid "bjoern@intranet.sussdorff-roy.com" + +} + +ad_form -name room_create -action room-create -form { + {party_id:text(hidden) {value $party_id}} + {create:text(hidden) {value $create}} + {roomname:text(text) {label "Please Enter the
          Name of the Room:
          "} {html {size 75}}} + {roomsubject:text(text) {label "Please Enter a short
          description of the Room:
          "} {html {size 75}} {value "Not specified"}} + {jid:text(text) {label "Your Jabber ID:"} {value $jid} {html {size 40}}} + {threadname:text(text) {label "New topics name:"} {value "Not specified"} {html {size 75}}} + {threadsubject:text(text) {label "New topics description:"} {value "Not specified"} {html {size 75}}} + {sub1:text(submit) {label "Create room"}} +} \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/conference/help.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/help.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/help.adp 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,62 @@ + +Jabber + + + +

          +-Rooms
          +Rooms describe a chat between 2 or more Persons everything you write to the +Room will be recorded (stored ) , so in case you want to lock up something +you have been discussing (Your Homework’s , or the Planing of a new +Business Project ) Yesterday , last week or may even a year ago , you can +go to the Group main Page ( Business ). and browse to the Room to read the +old discussion. +

          + + +

          +-Topics
          +Topics separate Rooms in logical blocks , so you can have a Room in your +Business Group for Daily_meetings, you can then separate this Room in Topics +like Monday-morning , Monday-midday , Tuesday-morning and so on. You can +never discuss two Topics in one Room at the same time. So in case you have +to split your Group on Tuesday-midday in to two parts, so part 1 can discuss +Project A and part 2 can discuss Project B you can start a new Room to discuss +Project B. The easiest way to start this kind of new Room is to go to the +index Page, you will find the actual discussion ‘Tuesday-midday’ +in the new Topics section . Click on the Read Link to display what you already +discussed on Tuesday-midday (i.e. that you have to split), click on one +of the first names to start a new Room , this Room will then be displayed +next to the Tuesday-midday Topic in the Rooms and Topic hierarchy. You can +go on to the invite Page to invite the rest of the Persons who should work +in Part 2 on Project B. +

          +

          + + +- Index Page
          + Here you find a list with all Groups you are a Member of, following this +Link will bring you to the Conference main Page of this Group. Below the +you find a list with all new topics , that have been discussed in the Groups +you are a Member of , since your Last visit. +

          +

          + +- main Page
          + On the Main Page of a Group you find all Rooms and Topics ordered in a hierarchy. +You can browse the topics and may create new Rooms and/or Topics that you +want to discuss . After you created a Room you can invite other Members of + this Group to join your new Room to discuss the new topic. +

          +

          +-recorded-chat Page
          +When you read a recorded Chat you will find that the first Names of the members +in every Row are Links. Clicking this Link will automatically create a new +Room, this Room will bee placed right next to the Topic from where you started +it , in the Room and Topics hierarchy on the main Page. You and the Person +who’s first name you clicked will automatically receive an invite to +the new Room. Thais is you should use this Link to discuss subtopics , +or in some cases further questions. The preferred way to discuss further +questions is to Enter or to Restart the Room in which the Topic has been +discussed (you can do this from the main Page). +

          \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/conference/help.htm =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/help.htm,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/help.htm 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,53 @@ + +Jabber +@context@ + + + +-Rooms +Rooms describe a chat between 2 or more Persons everything you write to the +Room will be recorded (stored ) , so in case you want to lock up something +you have been discussing (Your Homework’s , or the Planing of a new +Business Project ) Yesterday , last week or may even a year ago , you can +go to the Group main Page ( Business ). and browse to the Room to read the +old discussion. + +-Topics +Topics separate Rooms in logical blocks , so you can have a Room in your +Business Group for Daily_meetings, you can then separate this Room in Topics +like Monday-morning , Monday-midday , Tuesday-morning and so on. You can +never discuss two Topics in one Room at the same time. So in case you have +to split your Group on Tuesday-midday in to two parts, so part 1 can discuss +Project A and part 2 can discuss Project B you can start a new Room to discuss +Project B. The easiest way to start this kind of new Room is to go to the +index Page, you will find the actual discussion ‘Tuesday-midday’ +in the new Topics section . Click on the Read Link to display what you already +discussed on Tuesday-midday (i.e. that you have to split), click on one +of the first names to start a new Room , this Room will then be displayed +next to the Tuesday-midday Topic in the Rooms and Topic hierarchy. You can +go on to the invite Page to invite the rest of the Persons who should work +in Part 2 on Project B. + + +- Index Page + Here you find a list with all Groups you are a Member of, following this +Link will bring you to the Conference main Page of this Group. Below the +you find a list with all new topics , that have been discussed in the Groups +you are a Member of , since your Last visit. + +- main Page + On the Main Page of a Group you find all Rooms and Topics ordered in a hierarchy. +You can browse the topics and may create new Rooms and/or Topics that you +want to discuss . After you created a Room you can invite other Members of + this Group to join your new Room to discuss the new topic. + +-recorded-chat Page +When you read a recorded Chat you will find that the first Names of the members +in every Row are Links. Clicking this Link will automatically create a new +Room, this Room will bee placed right next to the Topic from where you started +it , in the Room and Topics hierarchy on the main Page. You and the Person +who’s first name you clicked will automatically receive an invite to +the new Room. Thais is you should use this Link to discuss subtopics , +or in some cases further questions. The preferred way to discuss further +questions is to Enter or to Restart the Room in which the Topic has been +discussed (you can do this from the main Page). Index: openacs-4/contrib/packages/jabber/www/conference/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/index.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/index.adp 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,32 @@ + +Jabber +Conference +

          Help

          +

          Visite Conferences of Group:

          + + + + +

          New Topics since your last Visit!

          +
            + + +
          1. @rooms_table.room_name@ + + Enter + + + Restart + + + @rooms_table.thread_table@
          2. +
            + + + + You don't have access to any rooms Yet + \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/conference/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/index.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/index.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,130 @@ +ad_page_contract { + + + @cvs-id index.tcl, + @creation-date 04/12/02 + @author bkiesbye@sussdorff-roy.com + + +} -properties { + + + + room_table:multirow + context:onevalue + is_room_table:onevalue + time:onevalue + groups:multirow +} + +set time [ns_time] + +set active "false" + +set active_value "-1" + +set context "" + +set user_id [ad_conn user_id] + +set is_room_table "true" + +set thread_list "" + +set active_rooms [jb_activeconferencerooms] + +if {$active_rooms != -1} { + + set room_count [ns_set size $active_rooms] +} else { + + set room_count "-1" +} + + + + +if {[db_0or1row get_last_visit "select last_visit FROM users WHERE user_id = :user_id"]} { + set last_visit_t $last_visit + } + + +multirow create groups group_name group_id + +db_foreach groups_of_this_user "SELECT (gp.group_name) as group_name , (gp.group_id) as group_id + FROM group_distinct_member_map gdmm , groups gp , jb_conference_groups jcg + WHERE gdmm.member_id = :user_id + AND gdmm.group_id = jcg.group_id + AND gdmm.group_id = gp.group_id" { + + multirow append groups $group_name $group_id +} + + +multirow create rooms_table room_name room_id active thread_table active_value party_id + + +db_foreach get_conference_group_rooms "SELECT (jrpm.party_id) as party_id , (jrpm.room_id) as room_id , (jcr.name) room_name + FROM + group_distinct_member_map gdmm , + jb_room_party_map jrpm , + jb_conference_rooms jcr , + jb_conference_groups jcg + WHERE gdmm.member_id = :user_id + AND gdmm.group_id = jcg.group_id + AND gdmm.group_id = jrpm.party_id + AND jcr.room_id = jrpm.room_id + ORDER BY gdmm.group_id" { + + + + if {$room_count != -1} { + + set active "false" + set active_value "-1" + + for {set i 0 } {$i < $room_count} {incr i} { + if { [ns_set key $active_rooms $i ] == $room_name } { + set active "true" + set active_value [jb_invite_user $room_name 2 index.tcl] + } + } + + } + + + + +set thread_list "
              " + +db_foreach get_new_conference_threads "SELECT thread_id , subject , start_time + FROM jb_conference_room_threads + WHERE room_id = :room_id + AND start_time > to_date(:last_visit , 'YYYY-MM-DD')" { + + + append thread_list "
            1. $subject $start_time View Log
            2. " + + + } if_no_rows { + + set thread_list "" + } + + + if { $thread_list != ""} { + append thread_list "
            " + + + + + multirow append rooms_table $room_name $room_id $active $thread_list $active_value $party_id + + set thread_list "" + } + + } if_no_rows { + + + set is_room_table "false" + } \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/conference/index2.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/index2.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/index2.adp 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,26 @@ + +Jabber +@context@ +

            Bold entrys indicate Rooms, Rooms are indexed by Upper Letters . If there is some one in the Room you can enter the Room. +If there is no one in the Room you can Restart it

            +

            Plain Entrys are indexed by numbers, they describe topics that where discussed in the above Room , you can Read the discussions.
            Every Topic may have one ore more Room Entrys diplayed just beneath them , those Rooms where created to to discuss a sub Topic of the above displayed major Topic

            + +
              + + +
            1. @rooms_table.room_name@ + + Enter + + + Restart + + + @rooms_table.thread_table@

            2. + +
              +
            +
            + + You don't have access to any rooms Yet + \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/conference/index2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/index2.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/index2.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,115 @@ +ad_page_contract { + + + @cvs-id index.tcl, + @creation-date 04/12/02 + @author bkiesbye@sussdorff-roy.com + + +} { + + last_visit:optional + +} -properties { + + + + room_table:multirow + context:onevalue + is_room_table:onevalue + time:onevalue +} + +set time [ns_time] + + +set context "" + +set user_id [ad_conn user_id] + +set is_room_table "true" + + +set active_rooms [jb_activeconferencerooms] + +if {$active_rooms != -1} { + + set room_count [ns_set size $active_rooms] +} else { + + set room_count "-1" +} + + +if {![info exists last_visit]} { + +if {[db_0or1row get_last_visit "select last_visit FROM users WHERE user_id = :user_id"]} { + set last_visit_t $last_visit + } +} elseif {$last_visit == -1} { + +if {[db_0or1row get_last_visit "select (last_visit - 1000) as last_visit FROM users WHERE user_id = :user_id"]} { + set last_visit_t $last_visit + } + + +} + + +multirow create rooms_table room_name room_id active thread_table active_value party_id + + +db_foreach get_conference_group_rooms "SELECT (jrpm.party_id) as party_id , (jrpm.room_id) as room_id , (jcr.name) room_name + FROM group_distinct_member_map gdmm , jb_room_party_map jrpm , jb_conference_rooms jcr + WHERE gdmm.member_id = :user_id + AND gdmm.group_id = jrpm.party_id + AND jcr.room_id = jrpm.room_id + ORDER BY jcr.name" { + + + + if {$room_count != -1} { + + set active "false" + set active_value "-1" + + for {set i 0 } {$i < $room_count} {incr i} { + if { [ns_set key $active_rooms $i ] == $room_name } { + set active "true" + set active_value [jb_invite_user $room_name 1 index.tcl] + } + } + + } + + + + + +set thread_table "
              " + db_foreach get_new_conference_threads "SELECT thread_id , subject , start_time + FROM jb_conference_room_threads + WHERE room_id = :room_id + " { + + append thread_table "
            1. $subject $start_time Read [jb_get_room_thread_tree $thread_id $party_id $active_rooms $last_visit]
            2. " + + } if_no_rows { + append thread_table "
            3. Nothing new
            4. " + + + } + + +append thread_table "
            " + + multirow append rooms_table $room_name $room_id $active $thread_table $active_value $party_id + + + + + } if_no_rows { + + + set is_room_table "false" + } \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/conference/invit-group.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/invit-group.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/invit-group.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,100 @@ +ad_page_contract { + + + @cvs-id invite-group.tcl, + @creation-date 04/12/02 + @author bkiesbye@sussdorff-roy.com + + +} { + group_id:integer,notnull + + +} -properties { + + + + users_table:multirow + context:onevalue + is_users_table:onevalue + +} + +set is_rooms_table "true" + +set active_rooms [jb_activeconferencerooms] + +if {$active_rooms != -1} { + + set room_count [ns_set size $active_rooms] +} else { + + set room_count "-1" +} + +multirow create active_rooms_table name + +multirow create closed_rooms_table name + + +db_foreach get_rooms_from_group "SELECT (jcr.name) room_name + FROM jb_room_party_map jrpm , jb_conference_rooms jcr + WHERE jrpm.party_id = :group_id + AND jcr.room_id = jrpm.room_id + AND lower(jcr.type) != 'child' + ORDER BY jcr.name" { + + + if {$room_count != -1} { + + multirow append closed_rooms_table $room_name + for {set i 0 } {$i < $room_count} {incr i} { + if { [ns_set key $active_rooms $i ] == $room_name } { + + multirow append active_rooms_table $room_name + + } else { + + multirow append closed_rooms_table $room_name + + } + } + + } + + + + multirow append closed_rooms_table $room_name + } if_no_rows { + + set is_rooms_table "false" +} + + + + + +multirow create users_table first_name last_name screen status + +db_foreach get_users_from_group "SELECT (pe.first_names) as first_name , (pe.last_name) as last_name , (js.im_screen_name) as screen , (js.status) as status + FROM group_distinct_member_map gdmm , jb_screens js, persons pe + WHERE gdmm.member_id = js.user_id + AND gdmm.member_id = pe.person_id + AND js.service = 'jabber' + AND gdmm.group_id = :group_id + ORDER BY last_name" { + + + +#AND js.status = 'offline' + + +append screen "@" +append screen [jb_get_transport_url_from_id [jb_get_transport_id_from_symbol jabber ]] + + +multirow append users_table $first_name $last_name $screen [jb_get_link_color_from_state $status] + + +} + Index: openacs-4/contrib/packages/jabber/www/conference/invite-group-1.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/invite-group-1.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/invite-group-1.adp 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,16 @@ + +Jabber +@context@ + + +

            Inviting Users to a Conference:

            + + +

            Here you can select the users you want to Invite to the Conference Room,
            + @room_name@
            + you can select more than one user, but you have to select at least one user +

            + + + +
            \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/conference/invite-group-1.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/invite-group-1.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/invite-group-1.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,51 @@ +ad_page_contract { + + @email bkiesbye@sussdorff-roy.com +} { + room_name:notnull + group_id:notnull,integer +} + +template::form create invite -action invite-group-2 + +set context 0 +set user_checkbox_options [list] + + +multirow create users_table first_name last_name screen status + + + +db_foreach get_users_from_group "SELECT (pe.first_names) as first_name , (pe.last_name) as last_name , (js.im_screen_name) as screen , (js.status) as status + FROM group_distinct_member_map gdmm , jb_screens js, persons pe + WHERE gdmm.member_id = js.user_id + AND gdmm.member_id = pe.person_id + AND js.service = 'jabber' + AND js.status != 'offline' + AND gdmm.group_id = :group_id + ORDER BY last_name" { + + + +append screen "@" +append screen [jb_get_transport_url_from_id [jb_get_transport_id_from_symbol jabber ]] + + +set user_checkbox_options [concat [list [list "$first_name $last_name" $screen]] $user_checkbox_options] +multirow append users_table $first_name $last_name $screen [jb_get_link_color_from_state $status] + + +} if_no_rows { + + + set is_users_table "false" +} + +# form template invite + +template::element create invite jids -datatype text -widget checkbox -label "Select users" -options $user_checkbox_options -optional +template::element create invite room_subject -datatype text -widget text -label "The topic you want to discuss:" -optional +template::element create invite msg -datatype text -widget textarea -label "A short message to
            the user you want to invite:" -optional +template::element create invite room_name -datatype text -widget hidden -label -value $room_name +template::element create invite sub-invite -datatype text -widget submit -label "Invite" + Index: openacs-4/contrib/packages/jabber/www/conference/invite-group-2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/invite-group-2.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/invite-group-2.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,29 @@ +ad_page_contract { + + conf-room-create.tcl + +} { + + room_name:notnull + {room_subject "Not specified"} + {msg "Not specified"} + jids:notnull,multiple + + {return_url "index.tcl"} + {version "2"} +} + +set length [llength $jids] + + +for {set i 0} {$i < $length} {incr i} { + + set suc [jb_invite [lindex $jids $i] $room_name $room_subject $msg $version ] + + ns_log Notice "hello" + +} + + + +ns_returnredirect $return_url Index: openacs-4/contrib/packages/jabber/www/conference/invite-group.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/invite-group.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/invite-group.adp 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,20 @@ + +Jabber +@context@ + + +

            Inviting Users to a Conference:

            + + +

            Please select first a conference room to which you want to invite users. +

            + + + + +
            +
            + + +

            Before you can invite Users to a Room you may have to Restart it, or you may have to create a fully new one

            + Index: openacs-4/contrib/packages/jabber/www/conference/invite-group.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/invite-group.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/invite-group.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,125 @@ +ad_page_contract { + + + @cvs-id invite-group.tcl, + @creation-date 04/12/02 + @author bkiesbye@sussdorff-roy.com + + +} { + group_id:integer,notnull + {return_url "index.tcl"} + +} -properties { + + + + active_rooms_table:multirow + closed_rooms_table:multirow + users_table:multirow + context:onevalue + is_users_table:onevalue + +} + +set is_rooms_table "true" + +set context "" + +set active_rooms [jb_activeconferencerooms] + +set user_id [ad_conn user_id] + +if {[db_0or1row get_user_screen "Select im_screen_name FROM jb_screens WHERE user_id = :user_id AND service = 'jabber'" ]} { + + set jid [jb_create_jid $im_screen_name jabber] +} + +if {$active_rooms != -1} { + + set room_count [ns_set size $active_rooms] +} else { + + set room_count "-1" +} + +template::form create invite -action invite-group-1 +template::form create create -action room-create + +set user_checkbox_options [list] +set active_select_options [list] +set closed_select_options [list] + +multirow create active_rooms_table name + +multirow create closed_rooms_table name + + +db_foreach get_rooms_from_group "SELECT (jcr.name) room_name + FROM jb_room_party_map jrpm , jb_conference_rooms jcr + WHERE jrpm.party_id = :group_id + AND jcr.room_id = jrpm.room_id + ORDER BY jcr.name" { + + + if {$room_count != -1} { + + set active_r false + + for {set i 0 } {$i < $room_count} {incr i} { + if { [ns_set key $active_rooms $i ] == $room_name } { + + set active_select_options [concat [list [list $room_name $room_name]] $active_select_options] + multirow append active_rooms_table $room_name + set active_r true + } + } + + + if { $active_r == "true"} { + + set active_r false + + } else { + + set closed_select_options [concat [list [list $room_name $room_name]] $closed_select_options] + multirow append closed_rooms_table $room_name + + + } + + + + } else { + + set closed_select_options [concat [list [list $room_name $room_name]] $closed_select_options] + + multirow append closed_rooms_table $room_name + + } + + + + + } if_no_rows { + + set is_rooms_table "false" +} + + + + + + +# form template invite + +template::element create invite room_name -datatype text -widget select -label "Select room" -options $active_select_options +template::element create invite sub-invite -datatype text -widget submit -label "Invite" +template::element create invite group_id -datatype text -widget hidden -value $group_id +# form template create +template::element create create roomname -datatype text -widget select -label "Select room" -options $closed_select_options +template::element create create roomsubject -datatype text -widget hidden -value "restart" +template::element create create jid -datatype text -widget hidden -value $jid +template::element create create threadname -datatype text -widget text -label "New topics name:" +template::element create create threadsubject -datatype text -widget text -label "New topics subject:" +template::element create create sub-restart -datatype text -widget submit -label "Restart" Index: openacs-4/contrib/packages/jabber/www/conference/invite.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/invite.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/invite.tcl 1 Oct 2003 04:35:54 -0000 1.1 @@ -0,0 +1,32 @@ +ad_page_contract { + + conf-room-create.tcl + +} { + + room_name:notnull + room_subject:notnull + msg:notnull + jid:notnull + second_jid:optional + second_user_id:optional + {return_url "index.tcl"} + {version "1"} +} + + + + +set suc [jb_invite $jid $room_name $room_subject $msg $version ] + +if {[info exists second_jid]} { + +set suc [jb_invite $second_jid $room_name $room_subject $msg $version ] + + +} +#set suc [jb_activeconferencerooms] +#set suc [jb_invite] + + +ns_returnredirect $return_url Index: openacs-4/contrib/packages/jabber/www/conference/main.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/main.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/main.adp 1 Oct 2003 04:35:57 -0000 1.1 @@ -0,0 +1,28 @@ + +Jabber +Rooms +

            Bold entrys indicate Rooms, Rooms are indexed by Upper Letters . If there is some one in the Room you can enter the Room. +If there is no one in the Room you can Restart it

            +

            Plain Entrys are indexed by numbers, they describe topics that where discussed in the above Room , you can Read the discussions.
            Every Topic may have one ore more Room Entrys diplayed just beneath them , those Rooms where created to to discuss a sub Topic of the above displayed major Topic

            +

            Create a new top level Room

            +

            Invite other Users to a Room

            + +
              + + +
            1. @rooms_table.room_name@ + + Enter + + + Restart + + + @rooms_table.thread_table@

            2. + +
              +
            +
            + + You don't have access to any rooms Yet + \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/conference/main.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/main.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/main.tcl 1 Oct 2003 04:35:57 -0000 1.1 @@ -0,0 +1,127 @@ +ad_page_contract { + + + @cvs-id index.tcl, + @creation-date 04/12/02 + @author bkiesbye@sussdorff-roy.com + + +} { + group_id:integer,notnull + last_visit:optional + +} -properties { + + + + room_table:multirow + context:onevalue + is_room_table:onevalue + time:onevalue +} + +set time [ns_time] + + +set context "" + +set package_installed_p [apm_package_installed_p jabber] +#set package_url [apm_package_url_from_key jabber] + +set user_id [ad_conn user_id] + +set is_room_table "true" + +set active_value "-1" +set active "false" + +set active_rooms [jb_activeconferencerooms] + +if {$active_rooms != -1} { + + set room_count [ns_set size $active_rooms] +} else { + + set room_count "-1" +} + + +if {![info exists last_visit]} { + +if {[db_0or1row get_last_visit "select last_visit FROM users WHERE user_id = :user_id"]} { + set last_visit_t $last_visit + } +} elseif {$last_visit == -1} { + +if {[db_0or1row get_last_visit "select (last_visit - 1000) as last_visit FROM users WHERE user_id = :user_id"]} { + set last_visit_t $last_visit + } + + +} + + +multirow create rooms_table room_name room_id active thread_table active_value party_id + + +db_foreach get_conference_group_rooms "SELECT (jrpm.party_id) as party_id , (jrpm.room_id) as room_id , (jcr.name) room_name + FROM jb_room_party_map jrpm , jb_conference_rooms jcr + WHERE jrpm.party_id = :group_id + AND jcr.room_id = jrpm.room_id + AND lower(jcr.type) != 'child' + ORDER BY jcr.name" { + + + set active "false" + if {$room_count != -1} { + + set active "false" + set active_value "-1" + + for {set i 0 } {$i < $room_count} {incr i} { + if { [ns_set key $active_rooms $i ] == $room_name } { + set active "true" + set active_value [jb_invite_user $room_name 2 index.tcl] + } + } + + + } + + + + + +set thread_table "
              " + db_foreach get_new_conference_threads "SELECT thread_id , subject , start_time + FROM jb_conference_room_threads + WHERE room_id = :room_id + " { +set sub_table "" +set sub_table "[jb_get_room_thread_tree $thread_id $party_id $active_rooms $last_visit 0]" + + append thread_table "
            1. $subject $start_time View Log $sub_table
            2. " + +if {![empty_string_p $sub_table]} { + append thread_table "
            " +} + #set active "main jb_get_room_thread_tree" + } if_no_rows { + append thread_table "
          3. Nothing new
          4. " + + + } + + +append thread_table "
          " + + multirow append rooms_table "$room_name" $room_id $active "$thread_table" $active_value $party_id + + + + + } if_no_rows { + + + set is_room_table "false" + } \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/conference/make-group-conference-group.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/make-group-conference-group.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/make-group-conference-group.adp 1 Oct 2003 04:35:57 -0000 1.1 @@ -0,0 +1,8 @@ + +Jabber Conference +1 + + +

          The Group @group-name@ is not allowed for Conferencing.

          +
          +@errormsg@ \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/conference/make-group-conference-group.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/make-group-conference-group.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/make-group-conference-group.tcl 1 Oct 2003 04:35:57 -0000 1.1 @@ -0,0 +1,96 @@ +ad_page_contract { + + make-group-conference-group.tcl + @author Bjoern Kiesbye + @email bkiesbye@sussdorff-roy.com + + } { + + + group_id:integer,notnull + type:notnull + {return_url "jabber"} + {errormsg ""} +} +set user_id [ad_conn user_id] +set group_name "Unknown" + +# First check if our system is online +if {[jb_getconnstate ] == -1 } { + + ns_returnredirect $return_url +} + +# test if this group is already a conference group , if its blocked or if it doesn't meet our constrains, + +if { $group_id > 10 } { + + if { ![db_0or1row check_if_group_is_blocked "SELECT (jgbc.group_id) as test_group_id FROM jb_groups_blocked_conference jgbc WHERE group_id =:group_id "]} { + if {![db_0or1row check_group_for_existence_at_conference "SELECT group_id FROM jb_conference_groups WHERE group_id = :group_id"]} { + + + # this group_id is not a conference group yet ,and it's not blocked so make it one. + + db_dml enabling_group_for_conferencing "INSERT INTO jb_conference_groups (group_id , conference_only_p ) values (:group_id , 'f')" + + + } + + + + + + # At least now it's a group_id free for conferencing , redirect him to the groups main page / or just Start the Default Room. + + if {$type == "start_room"} { + + # Check if the user is registerd with jabber, and if get his/her screen and online status + if {[db_0or1row get_jabber_user_screen "SELECT im_screen_name , status FROM jb_screens WHERE user_id = :user_id AND service = 'jabber'"]} { + set jid "$im_screen_name@[jb_get_transport_url_from_id [jb_get_transport_id_from_symbol "jabber"]]" + } else { + + # the user is not registerd just redirect him to the jabber/index.tcl + + ns_returnredirect "[apm_package_url_from_key jabber]index" + ad_script_abort + } + + # We got jid and online status, now try to get the default room + + set room_name [jb_get_default_room_for_group $group_id] + ns_log notice "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRoom_name = $room_name" + if {$room_name == "-1"} { + # we could not get a default room name + set errormsg "We had problems to figure out your default Room , please contact your admin" + ad_return_template + ad_script_abort + } + + + # now we have a room just try to start it + set suc [jb_createconferenceroom $room_name [ad_conn user_id] "First Start" $jid "Automatic Started Room ,this room: $room_name will be the Groups default name"] + + # now invite him any way + + set suc [jb_invite $jid $room_name "Groups discussion room" "You send this invite throug your web server" 1] + + # now return or let him login + if {$status == "offline"} { + + ns_returnredirect [apm_package_url_from_key jabber]jabber-webstart-login.tcl?return_url=$return_url + ad_script_abort + } else { + ns_returnredirect $return_url + ad_script_abort + } + + } else { + ns_returnredirect main.tcl?group_id=$group_id + + ad_script_abort + + + + } + } +} \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/conference/recorded-chat.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/recorded-chat.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/recorded-chat.adp 1 Oct 2003 04:35:57 -0000 1.1 @@ -0,0 +1,32 @@ + +Jabber + + + + + + +

          Recorded Chat from
          Room: @name@
          Subject: @subject@


          +

          Pic up Topic
          (Here you can restart the discussion on this Topic. All new submissions will be appended to the end of this document. )

          + + + + +
          +Here you can create a new Room to discuss a sub Topic of the current Topic. The new Room will be displayed next to the current Topic. +

          + + + + + + + + + + + + + + +
          NickMessageDate
          @msg.link_url@@msg.nick@@msg.text@@msg.date@
          Index: openacs-4/contrib/packages/jabber/www/conference/recorded-chat.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/recorded-chat.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/recorded-chat.tcl 1 Oct 2003 04:35:57 -0000 1.1 @@ -0,0 +1,122 @@ +ad_page_contract { + recordings + +} { + room_id:integer,notnull + thread_id:notnull + party_id:notnull + {name:optional "Unknowen"} + {subject:optional "Unknowen"} + {display_status "true"} +} -properties { + + name:onevalue + subject:onevalue + msg:multirow + nothing:onevalue + nothing_message:onevalue + thread_id:onevalue + return_url:onevalue + time:onevalue + user_jid:onevalue + party_id:onevalue + new_name:onevalue + +} + +set link "false" +set user_id [ad_conn user_id] +set user_id_cur "NULL" +set first_names "Unknown" +set last_name "Unknown" +set email "Unknowen" +set nothing false +set nothing_message "" +set status "offline" +set return_url [ad_conn url] +set time [ns_fmttime [ns_time] "%D %T"] +set ad_url [ad_url] + +regsub -all ":" $time "-" time +regsub -all "/" $time "_" time +regsub -all " " $time "at" time +regsub -all "(0-9)(0-9)_(0-9)(0-9)_(0-9)(0-9)at(0-9)(0-9)-(0-9)(0-9)-(0-9)(0-9)" $name $time new_name + +regsub -all {[0-9][0-9]_[0-9][0-9]_[0-9][0-9]at[0-9][0-9]-[0-9][0-9]-[0-9][0-9]} $name $time new_name + +if {$name == $new_name} { + + set new_name $time + append new_name $name +} + +append return_url "?thread_id=$thread_id&room_id=$room_id" + +multirow create msg nick text date link link_url + +if {[db_0or1row get_user_jid "SELECT im_screen_name FROM jb_screens WHERE user_id = :user_id AND service = 'jabber'" ]} { +set user_jid $im_screen_name +append user_jid "@" +append user_jid [jb_get_transport_url_from_id [jb_get_transport_id_from_symbol jabber ]] + +} else { + + set user_jid false +} + +if { $thread_id == "full" } { + +set sql "Select (user_id) as user_id_cur , jid , message , to_date(stored , 'HH:MM:SS') as stored from jb_conference_protocols where room_id=:room_id order by stored" + +} else { + + +set sql "Select (user_id) as user_id_cur , jabber_id , message , stored + FROM jb_conference_protocols + WHERE room_id= :room_id + AND thread_id= :thread_id + ORDER BY stored" + + + + + +} + +db_foreach messages_from_room_and_thread $sql { + + regsub -all {(@).*} $jabber_id "" nick + + if {$user_id_cur != "NULL" } { + + + set link "true" + set link_url [acs_community_member_link -user_id $user_id_cur -label "$nick"] + + } + + multirow append msg nick $message $stored $link $link_url + + + +set user_id_cur "NULL" +set nick "Unknown" + +} if_no_rows { + set nothing true + set nothing_message "Sorry but we din't find any discussion from Room: $name and Thread: $subject" + +} + +ad_form -name room_create -action room-create -form { + {jid:text(hidden) {value $user_jid}} + {party_id:text(hidden) {value $party_id}} + {thread_id:text(hidden) {value $thread_id}} + {return_url:text(hidden) {value "invite-group?group_id=$party_id"}} + {type:text(hidden) {value "insert"}} + {roomname:text(text) {label "New room name:"}} + {roomsubject:text(text) {label "New room description:"} {value "Not specified"}} + {threadname:text(text) {label "New topic:"}} + {threadsubject:text(text) {label "New topic description:"} {value "Not specified"}} + {sub1:text(submit) {label "Create"}} +} Index: openacs-4/contrib/packages/jabber/www/conference/room-create.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/room-create.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/room-create.adp 1 Oct 2003 04:35:57 -0000 1.1 @@ -0,0 +1,7 @@ + +Jabber Conference Error + + +

          Sorry an Error happend!! :

          +

          @errormsg@

          +

          Please backup your Browser and correcht your entrys!

          \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/conference/room-create.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/conference/Attic/room-create.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/conference/room-create.tcl 1 Oct 2003 04:35:57 -0000 1.1 @@ -0,0 +1,169 @@ +ad_page_contract { + + room-create.tcl + +} { + + roomname:notnull + roomsubject:notnull + threadname:notnull + threadsubject:notnull + jid:optional + jid_to:optional + thread_id:optional,integer + room_id:optional + party_id:optional,notnull + type:optional + {return_url "index.tcl"} + {create "false"} + {restart "false"} +} -properties { + + error:onevalue + +} +set pos 0 + +set errormsg "Position: " + +set allow_creation false + +set user_id [ad_conn user_id] + +set roomname [string trim $roomname] +set roomname [string tolower $roomname] +set err "" +set suc "" +if {[regexp {([ ]+)|(!+)|(/+)|([-]+)|([:]+)|(;+)|("+)|('+)|([*]+)|(%+)|(&+)|([$]+)|(�+)} $roomname match ]} { + +set pos 1 + set errormsg "Room: $roomname cant' be created.
          + Because you used the charackter : \"$match\" , in your RoomName.
          + Do not use iligal caracters like ! , + , / , : , ; , \$ , \' , \" , % , & or spaces in your RoomName.
          + Use the carackters a to z, numbers 0 to 9 and the singnes \"-\" and \"_\" only." + + set allow_creation false + +} else { +set pos 1.1 +set allow_creation true +} + + +if {![info exists jid]} { +set jid "www.sussdorff-roy.com" +} + + + + +# This code is used when some one starts a room (a discussion from an existing thread), we have to map the old thread to the new Room + + +if { [info exists thread_id] && [info exists type] && $type == "insert" && $allow_creation == "true" } { + + if { [db_0or1row get_room_id "SELECT (room_id) as new_room_id FROM jb_conference_rooms WHERE name = :roomname"] } { + + catch {[ set suc [jb_createconferenceroom $roomname $user_id $threadname $jid $roomsubject ] ]} err + + set error_txt "The Room: $roomname is all ready in use" + + set suc "-10" + + } else { + + catch {[ set suc [jb_createconferenceroom $roomname $user_id $threadname $jid $roomsubject ] ]} err + } + + if {$suc == -10 } { + + set errormsg "Room creation unsuccessful. $error_txt" +} else { + + if { [db_0or1row get_room_id "SELECT (room_id) as new_room_id FROM jb_conference_rooms WHERE name = :roomname"] } { + + catch {[db_dml map_new_room_to_old_thread "INSERT INTO jb_room_start_from_thread (room_id , thread_id) VALUES (:new_room_id , :thread_id)"]} errormsg + catch {[db_dml map_new_room_to_group "INSERT INTO jb_room_party_map (room_id , party_id) VALUES (:new_room_id , :party_id)"]} errormsg +} + + +# the room is created now invite the persons + + ns_returnredirect invite-group-1.tcl?group_id=$party_id&room_name=$roomname + + #ns_returnredirect invite.tcl?room_name=$roomname&room_subject=$roomsubject&msg=Question_about:_$roomname&version=1&jid=$jid&second_jid=$jid_to&thread_id=$thread_id&room_id=$room_id + + + } + + +} + + + + + + +#This happens at a normal room creation + +if { $create == "true" && $allow_creation == "true"} { + + + set pos 3 + + ns_log notice "form room creation $roomname $user_id $threadname $jid $roomsubject" + + catch { + [set suc [jb_createconferenceroom $roomname $user_id $threadname $jid $roomsubject ]] + } err + +ns_log notice "nach dem room creation" + if {$suc != 0} { + set pos 3.1 + set errormsg "Room creation unsuccessful. error $suc. Jabber Server not available." + } else { + set pos 3.2 + set im "keine ahnung" + if { $create == "true" } { + + if {[db_0or1row get_room_id "SELECT (room_id) as new_room_id FROM jb_conference_rooms WHERE name = :roomname"]} { + set pos 3.3 + db_dml map_new_room_to_group "INSERT INTO jb_room_party_map (room_id , party_id) VALUES (:new_room_id , :party_id)" + db_dml update_the_room_type "UPDATE jb_conference_rooms SET type = 'master' WHERE room_id = :new_room_id " + + set im ja + } else { + set pos 3.4 + set im nein + } + + } + + + #ns_return 200 text/html "room: $roomname create: $create im if? $im " + ns_returnredirect [jb_invite_user $roomname 1 $return_url] + set pos 3.5 + } + +} + +append errormsg " $allow_creation, $restart nnnn" + +if { $allow_creation == "true" && $restart == "true" } { + + catch { + [set suc [jb_createconferenceroom $roomname $user_id $threadname $jid $roomsubject ]] + } err + + + if {$suc == -10 } { + + set errormsg "Room creation unsuccessful. error $suc" + } else { + + ns_returnredirect [jb_invite_user $roomname 2 $return_url] + + } +} + +set pos "ende" \ No newline at end of file Index: openacs-4/contrib/packages/jabber/www/doc/admin.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/doc/Attic/admin.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/doc/admin.adp 1 Oct 2003 04:35:57 -0000 1.1 @@ -0,0 +1,21 @@ + +Conferencing for Admins + +
          +Back: Conferencing user help (advanced) +Next: Requirements +
          + + +

          Conferencing for Admins:

          + + +

          On the www/jabber/admin/conference.adp page you are able to define Group�s , this Groups will be able to use the Conferencing facility of the Jabber module. You can define a new Group by entering a name in the Group Name Field and pressing the create Button. Once a Group is created it will show up in the list of existing Conference Group�s below. The Group names link you to a page where you can add and remove Users or whole Groups to the one you have just created. At the bottom of the page you can search the System for Users or Groups , the search results will be displayed below your search entry . Clicking on one of the search results will add this User/Group to your Conference Group. At the top of the Page two lists are displayed the first shows all Users (their names) of the Conference Group , the second shows all Groups of your Conference Group (their names). Behind every Name you have a Link to remove this User/Group from your Conference Group.

          +

          You are able to add a hole Group A to your Group Conf , all users who are members of Group A will then be members of Group Conf , even if members from Group A wont show up in the Users List of Group Conf.

          + + +
          +Back: Conferencing user help (advanced) +Next: Requirements +
          + Index: openacs-4/contrib/packages/jabber/www/doc/conference-v2-final..htm =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/jabber/www/doc/Attic/conference-v2-final..htm,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/jabber/www/doc/conference-v2-final..htm 1 Oct 2003 04:35:58 -0000 1.1 @@ -0,0 +1,105 @@ + + + + + + + +

          Before you start:

          +
          +

          If you want to use the Conferencing facility you should have a Jabber account already and you should be online with the Enigma Jabber Client (or any other Jabber Client that supports Conferencing, the Jabber Applet doesn�t support Conferencing ).

          + +

           

          +

          How to get to the Conference facility :

          +
          +

          In your (dotLRN) Classes workspace you will find a Link that:

          +

          1. Brings you to the Conferencing main page of this Class

          +

          2. Let you directly enter this Classes default Conference Room (this facility is not implemented yet).

          +

          +

          The global main Page (Pic. 1) for conferencing is usually the LINK (if you don�t find it there email your System administrator).

          + +

          At the global main Page you will see a list displaying all the Conference Groups you are a member of, below you will see a List displaying all new Topics that have been discussed since you last visited this System. Clicking on one of the �View Log� links behind a new topic brings you directly to the page that shows the whole discussion on this Topic. If you follow one of the Group Name Links ,at the top, you get to the main Page of this Group.

          + +

          Pic. 1

          + +

          +
          +

          On the Groups main Page (Pic. 2) you find two Links one to Create a new Top level Room , a second to Invite other Users to a Conference Room.

          +

          Below them you find a structure displaying all Rooms of this Group with all Topics that have been discussed.

          +

          Behind every room you find a Link ,in case other users are currently in this Room , saying Enter. If you are online with Enigma you enter this Room when you Click on the Enter Link. If no one is currently in this Room the Link will be named Restart, clicking this link will restart the Room and you will enter it, again.

          + +

          Pic. 2

          +

          +
          +

          1. Invite other users.

          +

          2. Create a new Top level Room.

          +

          3.View a Log.

          +

          4. Create a new Sublevel Room.

          +

          5. Structure your Rooms and Topics (Example).

          +
          + +

          1. Invite other Users:

          + +

          Go to the Invite Page (Pic.2 ) (just follow the Link �Invite other Users to a Room� at the top of the page Pic. 2), here you find a List off all users which are currently online and in the same group you are in. . Select the once you want to invite , below you find a Selection Box with all active Rooms including the one you want to Invite your friends to , select it.

          +

          Note: You are able to select only those Rooms which are currently open (Re/Started).

          + +

          In the two Text Fields below enter some words that let the Users you are going to Invite know why you are inviting them and what you want to discuss.

          +

          Now you can press the �Invite� button, every User you selected above will be asked to come to the Room you selected.

          +

          At the bottom of the Page you find an extra Section from where you can restart Rooms as well, in case the Room you want to invite users to hasn�t been opened/restarted yet.

          + +

          Pic. 3

          +

          + +
          +

          2.Create a new Top level Room:

          + +

          To Create a new Top Level Room just click the link on the Groups main Page saying �Create new Top level Room �. A page will be displayed asking you to enter a new Room Name a description of this Room, as well as the name of the initial Topic and its description. Pressing the create Button will create and start a new Room which will be identified by the Room Name you have entered before.

          +

          Back at the Groups main Page you find a Link saying �Create new' Top Level Room at the top of the Page, this Link will bring you to a page where you can create an new Room. This way to create a Room is a special one, it will be displayed at the very left of the Room and Topic hierarchy (as you can see it on Pic. 4.1+4.3), you should only use it when there are no Rooms in this Group yet , or if you want to start a completely different Topic to what is usually discussed in this Group

          + +

          Pic.4

          + +

          +
          +

          3. View Log

          + +

          You can view a Log from a previously recorded chat by clicking on the �View Log/Read� Link behind a Topic name (Pic. 4). On this Page the discussion in Room (RoomName) about the Topic (TopicName) will be displayed Line by Line (Pic. 5.3). Every Line starts with the nickname of the User who submitted the Text displayed in this Line. If this nickname belongs to a local User you can view it�s user information (including online and contact information) by clicking on his/her nickname. At the end of every Line the time , when the Text where submitted to the Room , is displayed.

          +

          At the Top of every Log Page you have two options, the first is to pick up the Topic (Pic. 5.1). Be carefull using the Pickup option, there can be only one Topic at the time, discussed in one Room. Picking up a Topic means that everything submitted to the Room (RoomName) will be appended to this Log Page , until someone changes the Topic again. The system will warn you, in case someone discusses a different Topic in this Room at the moment, before it picks up a Topic.

          + +

           

          +

          The second option is to create a sublevel Room (SubRoomName), a sublevel Room has all the features of a top level Room (RoomName) has, the difference is where it is going to be displayed on the Groups main Page. If you create a sublevel Room (SubRoomName ) from a Topic�s Log Page, the new Room name will be displayed next to this Topic�s name, just below and a little bit to the left (Pic. 4.4).

          +

          +

          Pic. 5

          +

          +
          +

           

          +
          +

          4. Create a sublevel Room

          +
          +

          On the View Log Page you find a Form at the top of the page (Pic. 5.2), asking you for the new Rooms name ,this Rooms description , the name of the initial Topic and a description for this topic. When you press the 'Create' button at the bottom of the Form , the new Room (SubRoomName) will be created and you�ll be brought??? to the Invite Page to let you invite other users to the new Room.

          +

          If you create a sublevel Room (SubRoomName ) from a Topic�s Log Page, the new Room name will be displayed next to this Topic�s name, just below and a little bit to the left (Pic. 4.4).

          + +

           

          +
          +

          5. Structure your Rooms and Topics (Example)

          + +

          There are two types of Rooms (top and sub level) both have the same features, their types differentiate them to let them be created/displayed in a structured way . This makes it easier for you and others, to navigate through and find the information, they are interested in.

          + +

          Overview:

          +
          +