Commit 7e568207 authored by Frank Bergmann's avatar Frank Bergmann

- Comitting OpenACS 5.9

parent 4f53500e
......@@ -7,23 +7,22 @@
<initial-install-p>t</initial-install-p>
<singleton-p>t</singleton-p>
<version name="5.7.0" url="http://openacs.org/repository/download/apm/acs-messaging-5.7.0.apm">
<version name="5.10.0d1" url="http://openacs.org/repository/download/apm/acs-messaging-5.10.0d1.apm">
<owner url="mailto:akk+@cs.cmu.edu">Anukul Kapoor</owner>
<owner url="mailto:prevost@maya.com">John Prevost</owner>
<owner url="mailto:vinod@kurup.com">Vinod Kurup</owner>
<summary>General messaging for bboard and general comments.</summary>
<release-date>2011-06-12</release-date>
<release-date>2013-09-08</release-date>
<maturity>3</maturity>
<vendor url="http://openacs.org">OpenACS</vendor>
<license url="http://www.gnu.org/copyleft/gpl.html">GPL</license>
<maturity>3</maturity>
<description format="text/html">Provides generic message services, with email sending. acs-mail-lite and notifications are the
prefered packages for delivering this functionality and it is anticipated that this package will ultimately be deprecated.</description>
<provides url="acs-messaging" version="5.7.0"/>
<requires url="acs-content-repository" version="5.7.0"/>
<requires url="acs-kernel" version="5.7.0"/>
<requires url="acs-mail-lite" version="5.7.0"/>
<provides url="acs-messaging" version="5.10.0d1"/>
<requires url="acs-content-repository" version="5.10.0d1"/>
<requires url="acs-kernel" version="5.10.0d1"/>
<requires url="acs-mail-lite" version="5.10.0d1"/>
<callbacks>
</callbacks>
......
......@@ -95,18 +95,35 @@ comment on column acs_messages.rfc822_id is '
-- support for tree queries on acs_messages
create or replace function acs_message_get_tree_sortkey(integer) returns varbit as '
declare
p_message_id alias for $1;
begin
-- added
select define_function_args('acs_message_get_tree_sortkey','message_id');
--
-- procedure acs_message_get_tree_sortkey/1
--
CREATE OR REPLACE FUNCTION acs_message_get_tree_sortkey(
p_message_id integer
) RETURNS varbit AS $$
DECLARE
BEGIN
return tree_sortkey from acs_messages where message_id = p_message_id;
end;' language 'plpgsql' stable strict;
END;
$$ LANGUAGE plpgsql stable strict;
create or replace function acs_message_insert_tr () returns opaque as '
declare
--
-- procedure acs_message_insert_tr/0
--
CREATE OR REPLACE FUNCTION acs_message_insert_tr(
) RETURNS trigger AS $$
DECLARE
v_parent_sk varbit default null;
v_max_value integer;
begin
BEGIN
if new.reply_to is null then
select max(tree_leaf_key_to_int(tree_sortkey)) into v_max_value
from acs_messages
......@@ -125,20 +142,28 @@ begin
return new;
end;' language 'plpgsql';
END;
$$ LANGUAGE plpgsql;
create trigger acs_message_insert_tr before insert
on acs_messages
for each row
execute procedure acs_message_insert_tr ();
create function acs_message_update_tr () returns opaque as '
declare
--
-- procedure acs_message_update_tr/0
--
CREATE OR REPLACE FUNCTION acs_message_update_tr(
) RETURNS trigger AS $$
DECLARE
v_parent_sk varbit default null;
v_max_value integer;
v_rec record;
clr_keys_p boolean default ''t'';
begin
clr_keys_p boolean default 't';
BEGIN
if new.message_id = old.message_id and
((new.reply_to = old.reply_to) or
(new.reply_to is null and old.reply_to is null)) then
......@@ -155,7 +180,7 @@ begin
if clr_keys_p then
update acs_messages set tree_sortkey = null
where tree_sortkey between new.tree_sortkey and tree_right(new.tree_sortkey);
clr_keys_p := ''f'';
clr_keys_p := 'f';
end if;
select max(tree_leaf_key_to_int(tree_sortkey)) into v_max_value
......@@ -174,7 +199,8 @@ begin
return new;
end;' language 'plpgsql';
END;
$$ LANGUAGE plpgsql;
create trigger acs_message_update_tr after update
on acs_messages
......
This diff is collapsed.
......@@ -2,35 +2,42 @@
-- errors on calls from query files using bindvar emulation, where
-- all the parameters are quoted and therefore of unknown type.
create or replace function acs_message__new (integer,integer,timestamptz,integer,
varchar,varchar,varchar,varchar,text,integer,integer,integer,integer,
varchar,varchar,boolean)
returns integer as '
declare
p_message_id alias for $1; --default null,
p_reply_to alias for $2; --default null,
p_sent_date alias for $3; --default sysdate,
p_sender alias for $4; --default null,
p_rfc822_id alias for $5; --default null,
p_title alias for $6; --default null,
p_description alias for $7; --default null,
p_mime_type alias for $8; --default ''text/plain'',
p_text alias for $9; --default null,
p_data alias for $10; --default null,
p_parent_id alias for $11; --default 0,
p_context_id alias for $12;
-- added
select define_function_args('acs_message__new','message_id,reply_to,sent_date,sender,rfc822_id,title,description,mime_type,text,data,parent_id,context_id,creation_user,creation_ip,object_type,is_live');
--
-- procedure acs_message__new/16
--
CREATE OR REPLACE FUNCTION acs_message__new(
p_message_id integer, --default null,
p_reply_to integer, --default null,
p_sent_date timestamptz, --default sysdate,
p_sender integer, --default null,
p_rfc822_id varchar, --default null,
p_title varchar, --default null,
p_description varchar, --default null,
p_mime_type varchar, --default 'text/plain',
p_text text, --default null,
p_data integer, --default null,
p_parent_id integer, --default 0,
p_context_id integer,
p_creation_user integer, --default null,
p_creation_ip varchar, --default null,
p_object_type varchar, --default 'acs_message',
p_is_live boolean --default 't'
) RETURNS integer AS $$
DECLARE
p_creation_date timestamptz := current_timestamp; -- alias for $13 --default sysdate,
p_creation_user alias for $13; --default null,
p_creation_ip alias for $14; --default null,
p_object_type alias for $15; --default ''acs_message'',
p_is_live alias for $16; --default ''t''
v_message_id acs_messages.message_id%TYPE;
v_rfc822_id acs_messages.rfc822_id%TYPE;
v_revision_id cr_revisions.revision_id%TYPE;
v_system_url varchar;
v_domain_name varchar;
v_idx integer;
begin
BEGIN
-- generate a message id now so we can get an rfc822 message-id
if p_message_id is null then
select acs_object_id_seq.nextval into v_message_id;
......@@ -39,18 +46,18 @@ declare
end if;
-- need to make this mandatory also - jg
-- this needs to be fixed up, but Oracle doesn''t give us a way
-- this needs to be fixed up, but Oracle doesn't give us a way
-- to get the FQDN
-- vk: get SystemURL parameter and use it to extract domain name
select apm__get_value(package_id, ''SystemURL'') into v_system_url
from apm_packages where package_key=''acs-kernel'';
v_idx := position(''http://'' in v_system_url);
select apm__get_value(package_id, 'SystemURL') into v_system_url
from apm_packages where package_key='acs-kernel';
v_idx := position('http://' in v_system_url);
v_domain_name := trim (substr(v_system_url, v_idx + 7));
if p_rfc822_id is null then
v_rfc822_id := current_date || ''.'' || v_message_id || ''@'' ||
v_domain_name || ''.hate'';
v_rfc822_id := current_date || '.' || v_message_id || '@' ||
v_domain_name || '.hate';
else
v_rfc822_id := p_rfc822_id;
end if;
......@@ -65,13 +72,13 @@ declare
p_context_id, -- context_id
p_creation_ip, -- creation_ip
p_object_type, -- item_subtype
''acs_message_revision'', -- content_type
'acs_message_revision', -- content_type
null, -- title
null, -- description
''text/plain'', -- mime_type
'text/plain', -- mime_type
null, -- nls_language
null, -- text
''text'' -- storage_type
'text' -- storage_type
);
insert into acs_messages
......@@ -94,5 +101,6 @@ declare
);
return v_message_id;
end;' language 'plpgsql';
END;
$$ LANGUAGE plpgsql;
-- call image__delete instead.
create or replace function acs_message__delete_image (integer)
returns integer as '
declare
p_image_id alias for $1;
begin
-- added
select define_function_args('acs_message__delete_image','image_id');
--
-- procedure acs_message__delete_image/1
--
CREATE OR REPLACE FUNCTION acs_message__delete_image(
p_image_id integer
) RETURNS integer AS $$
DECLARE
BEGIN
perform image__delete(p_image_id);
return 1;
end;' language 'plpgsql';
END;
$$ LANGUAGE plpgsql;
......@@ -9,5 +9,5 @@ ad_library {
}
# Schedule every 15 minutes
ad_schedule_proc -thread t 900 acs_messaging_process_queue
ad_schedule_proc -thread t 907 acs_messaging_process_queue
......@@ -133,7 +133,7 @@ ad_proc -private acs_messaging_timezone_offset {
} {
Returns a best guess of the timezone offset for the machine.
} {
return [format "%+05d" [expr ([lindex [ns_localtime] 2] - [lindex [ns_gmtime] 2]) * 100]]
return [format "%+05d" [expr {([lindex [ns_localtime] 2] - [lindex [ns_gmtime] 2]) * 100]}]
}
ad_proc -private acs_messaging_process_queue {
......
......@@ -9,7 +9,7 @@
<ul>
<li><a href="requirements">requirements</a>
<li><a href="../bboard/design">bboard design</a>
<li><a href="design">design</a>
</ul>
<hr>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment