Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
acs-messaging
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
project-open
acs-messaging
Commits
7e568207
Commit
7e568207
authored
Dec 03, 2015
by
Frank Bergmann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- Comitting OpenACS 5.9
parent
4f53500e
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
583 additions
and
363 deletions
+583
-363
acs-messaging.info
acs-messaging.info
+6
-7
acs-messaging-create.sql
sql/postgresql/acs-messaging-create.sql
+41
-15
acs-messaging-packages.sql
sql/postgresql/acs-messaging-packages.sql
+478
-300
upgrade-4.6.2-4.6.3.sql
sql/postgresql/upgrade/upgrade-4.6.2-4.6.3.sql
+40
-32
upgrade-5.0.0b3-5.0.0b4.sql
sql/postgresql/upgrade/upgrade-5.0.0b3-5.0.0b4.sql
+15
-6
acs-messaging-init.tcl
tcl/acs-messaging-init.tcl
+1
-1
acs-messaging-procs.tcl
tcl/acs-messaging-procs.tcl
+1
-1
index.html
www/doc/index.html
+1
-1
No files found.
acs-messaging.info
View file @
7e568207
...
...
@@ -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>
201
1-06-12
</release-date>
<release-date>
201
3-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>
...
...
sql/postgresql/acs-messaging-create.sql
View file @
7e568207
...
...
@@ -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
...
...
sql/postgresql/acs-messaging-packages.sql
View file @
7e568207
...
...
@@ -10,21 +10,30 @@
-- updated for OpenACS by Jon Griffin
--
create
or
replace
function
acs_message__edit
(
integer
,
varchar
,
varchar
,
varchar
,
text
,
integer
,
timestamptz
,
integer
,
varchar
,
boolean
)
returns
integer
as
'
declare
p_message_id alias for $1;
p_title alias for $2; -- default null
p_description alias for $3; -- default null
p_mime_type alias for $4; -- default
''
text/plain
''
p_text alias for $5; -- default null
p_data alias for $6; -- default null
p_creation_date alias for $7; -- default sysdate
p_creation_user alias for $8; -- default null
p_creation_ip alias for $9; -- default null
p_is_live alias for $10; -- default
''
t
''
-- added
select
define_function_args
(
'acs_message__edit'
,
'message_id,title;null,description;null,mime_type;text/plain,text;null,data;null,creation_date;sysdate,creation_user;null,creation_ip;null,is_live;t'
);
--
-- procedure acs_message__edit/10
--
CREATE
OR
REPLACE
FUNCTION
acs_message__edit
(
p_message_id
integer
,
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_creation_date
timestamptz
,
-- default sysdate
p_creation_user
integer
,
-- default null
p_creation_ip
varchar
,
-- default null
p_is_live
boolean
-- default 't'
)
RETURNS
integer
AS
$$
DECLARE
v_revision_id
cr_revisions
.
revision_id
%
TYPE
;
begin
BEGIN
-- create a new revision using whichever call is appropriate
if
p_data
is
not
null
then
-- need to take care of blob?
...
...
@@ -61,7 +70,8 @@ begin
end
if
;
return
v_revision_id
;
end;'
language
'plpgsql'
;
END
;
$$
LANGUAGE
plpgsql
;
----------------
-- MAJOR NOTE OF NON-COMPLIANCE
...
...
@@ -73,56 +83,63 @@ end;' language 'plpgsql';
-- Jon Griffin 05-21-2001
----------------
create
or
replace
function
acs_message__new
(
integer
,
integer
,
timestamptz
,
integer
,
varchar
,
varchar
,
varchar
,
varchar
,
text
,
integer
,
integer
,
integer
,
integer
,
varchar
,
varchar
,
boolean
,
integer
)
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,package_id'
);
--
-- procedure acs_message__new/17
--
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'
p_package_id
integer
)
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
''
p_package_id alias for $17;
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 nextval(
'
'
t_acs_object_id_seq
'
'
) into v_message_id;
select
nextval
(
'
t_acs_object_id_seq
'
)
into
v_message_id
;
else
v_message_id
:
=
p_message_id
;
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
;
...
...
@@ -137,13 +154,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
p_package_id
);
...
...
@@ -167,31 +184,36 @@ declare
);
return
v_message_id
;
end;'
language
'plpgsql'
;
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;
END
;
$$
LANGUAGE
plpgsql
;
--
-- 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
''
begin
BEGIN
return
acs_message__new
(
p_message_id
,
p_reply_to
,
p_sent_date
,
...
...
@@ -210,60 +232,97 @@ begin
p_is_live
,
null
::
integer
);
end;'
language
'plpgsql'
;
END
;
$$
LANGUAGE
plpgsql
;
-- added
select
define_function_args
(
'acs_message__delete'
,
'message_id'
);
create
or
replace
function
acs_message__delete
(
integer
)
returns
integer
as
'
declare
p_message_id alias for $1;
begin
--
-- procedure acs_message__delete/1
--
CREATE
OR
REPLACE
FUNCTION
acs_message__delete
(
p_message_id
integer
)
RETURNS
integer
AS
$$
DECLARE
BEGIN
delete
from
acs_messages
where
message_id
=
p_message_id
;
perform
content_item__delete
(
p_message_id
);
return
1
;
end;'
language
'plpgsql'
;
END
;
$$
LANGUAGE
plpgsql
;
create
or
replace
function
acs_message__message_p
(
integer
)
returns
boolean
as
'
declare
p_message_id alias for $1;
-- added
select
define_function_args
(
'acs_message__message_p'
,
'message_id'
);
--
-- procedure acs_message__message_p/1
--
CREATE
OR
REPLACE
FUNCTION
acs_message__message_p
(
p_message_id
integer
)
RETURNS
boolean
AS
$$
DECLARE
v_check_message_id
integer
;
begin
BEGIN
select
count
(
message_id
)
into
v_check_message_id
from
acs_messages
where
message_id
=
p_message_id
;
if
v_check_message_id
<>
0
then
return
'
'
t
'
'
;
return
'
t
'
;
else
return
'
'
f
'
'
;
return
'
f
'
;
end
if
;
end;'
language
'plpgsql'
stable
;
create
or
replace
function
acs_message__send
(
integer
,
varchar
,
integer
,
timestamptz
)
returns
integer
as
'
declare
p_message_id alias for $1;
p_to_address alias for $2;
p_grouping_id alias for $3; -- default null
p_wait_until alias for $4; -- default sysdate
END
;
$$
LANGUAGE
plpgsql
stable
;
-- added
--
-- procedure acs_message__send/4
--
CREATE
OR
REPLACE
FUNCTION
acs_message__send
(
p_message_id
integer
,
p_to_address
varchar
,
p_grouping_id
integer
,
-- default null
p_wait_until
timestamptz
-- default sysdate
)
RETURNS
integer
AS
$$
DECLARE
v_wait_until
timestamptz
;
begin
BEGIN
v_wait_until
:
=
coalesce
(
p_wait_until
,
current_timestamp
);
insert
into
acs_messages_outgoing
(
message_id
,
to_address
,
grouping_id
,
wait_until
)
values
(
p_message_id
,
p_to_address
,
p_grouping_id
,
v_wait_until
);
return
1
;
end;'
language
'plpgsql'
;
create
or
replace
function
acs_message__send
(
integer
,
integer
,
integer
,
timestamptz
)
returns
integer
as
'
declare
p_message_id alias for $1;
p_recipient_id alias for $2;
p_grouping_id alias for $3; -- default null
p_wait_until alias for $4; -- default sysdate
END
;
$$
LANGUAGE
plpgsql
;
-- added
select
define_function_args
(
'acs_message__send'
,
'message_id,recipient_id,grouping_id;null,wait_until;sysdate'
);
--
-- procedure acs_message__send/4
--
CREATE
OR
REPLACE
FUNCTION
acs_message__send
(
p_message_id
integer
,
p_recipient_id
integer
,
p_grouping_id
integer
,
-- default null
p_wait_until
timestamptz
-- default sysdate
)
RETURNS
integer
AS
$$
DECLARE
v_wait_until
timestamptz
;
begin
BEGIN
v_wait_until
:
=
coalesce
(
p_wait_until
,
current_timestamp
);
insert
into
acs_messages_outgoing
(
message_id
,
to_address
,
grouping_id
,
wait_until
)
...
...
@@ -271,18 +330,27 @@ begin
from
parties
p
where
p
.
party_id
=
p_recipient_id
;
return
1
;
end;'
language
'plpgsql'
;
END
;
$$
LANGUAGE
plpgsql
;
-- Ported to take advantage of tree_sortkey column by DLP
create
or
replace
function
acs_message__first_ancestor
(
integer
)
returns
integer
as
'
declare
p_message_id alias for $1;
-- added
select
define_function_args
(
'acs_message__first_ancestor'
,
'message_id'
);
--
-- procedure acs_message__first_ancestor/1
--
CREATE
OR
REPLACE
FUNCTION
acs_message__first_ancestor
(
p_message_id
integer
)
RETURNS
integer
AS
$$
DECLARE
v_message_id
acs_messages
.
message_id
%
TYPE
;
v_ancestor_sk
varbit
;
begin
BEGIN
select
tree_ancestor_key
(
tree_sortkey
,
1
)
into
v_ancestor_sk
from
acs_messages
where
message_id
=
p_message_id
;
...
...
@@ -292,7 +360,8 @@ begin
where
tree_sortkey
=
v_ancestor_sk
;
return
v_message_id
;
end;'
language
'plpgsql'
stable
strict
;
END
;
$$
LANGUAGE
plpgsql
stable
strict
;
-- ACHTUNG! WARNING! ACHTUNG! WARNING! ACHTUNG! WARNING! --
...
...
@@ -301,26 +370,34 @@ end;' language 'plpgsql' stable strict;
-- functions will migrate to another PL/SQL package or be replaced
-- by direct calls to CR code in the near future.
create
or
replace
function
acs_message__new_file
(
integer
,
integer
,
varchar
,
varchar
,
text
,
varchar
,
integer
,
timestamptz
,
integer
,
varchar
,
boolean
,
varchar
,
integer
)
returns
integer
as
'
declare
p_message_id alias for $1;
p_file_id alias for $2; -- default null
p_file_name alias for $3;
p_title alias for $4; -- default null
p_description alias for $5; -- default null
p_mime_type alias for $6; -- default
''
text/plain
''
p_data alias for $7; -- default null
p_creation_date alias for $8; -- default sysdate
p_creation_user alias for $9; -- default null
p_creation_ip alias for $10; -- default null
p_is_live alias for $11; -- default
''
t
''
p_storage_type alias for $12; -- default
''
file
''
p_package_id alias for $13; -- default null
-- added
select
define_function_args
(
'acs_message__new_file'
,
'message_id,file_id;null,file_name,title;null,description;null,mime_type;text/plain,data;null,creation_date;sysdate,creation_user;null,creation_ip;null,is_live;t,storage_type;file,package_id;null'
);
--
-- procedure acs_message__new_file/13
--
CREATE
OR
REPLACE
FUNCTION
acs_message__new_file
(
p_message_id
integer
,
p_file_id
integer
,
-- default null
p_file_name
varchar
,
p_title
varchar
,
-- default null
p_description
text
,
-- default null
p_mime_type
varchar
,
-- default 'text/plain'
p_data
integer
,
-- default null
p_creation_date
timestamptz
,
-- default sysdate
p_creation_user
integer
,
-- default null
p_creation_ip
varchar
,
-- default null
p_is_live
boolean
,
-- default 't'
p_storage_type
varchar
,
-- default 'file'
p_package_id
integer
-- default null
)
RETURNS
integer
AS
$$
DECLARE
v_file_id
cr_items
.
item_id
%
TYPE
;
v_revision_id
cr_revisions
.
revision_id
%
TYPE
;
begin
BEGIN
v_file_id
:
=
content_item__new
(
p_file_name
,
-- name
p_message_id
,
-- parent_id
...
...
@@ -330,11 +407,11 @@ begin
p_creation_user
,
-- creation_user
null
,
-- context_id
p_creation_ip
,
-- creation_ip
'
'
content_item
'
'
, -- item_subtype
'
'
content_revision
'
'
, -- content_type
'
content_item
'
,
-- item_subtype
'
content_revision
'
,
-- content_type
null
,
-- title
null
,
-- description
'
'
text/plain
'
'
, -- mime_type
'
text/plain
'
,
-- mime_type
null
,
-- nls_language
null
,
-- text
p_storage_type
,
-- storage_type
...
...
@@ -355,25 +432,31 @@ begin
);
return
v_file_id
;
end;'
language
'plpgsql'
;
create
or
replace
function
acs_message__new_file
(
integer
,
integer
,
varchar
,
varchar
,
text
,
varchar
,
integer
,
timestamptz
,
integer
,
varchar
,
boolean
,
varchar
)
returns
integer
as
'
declare
p_message_id alias for $1;
p_file_id alias for $2; -- default null
p_file_name alias for $3;
p_title alias for $4; -- default null
p_description alias for $5; -- default null
p_mime_type alias for $6; -- default
''
text/plain
''
p_data alias for $7; -- default null
p_creation_date alias for $8; -- default sysdate
p_creation_user alias for $9; -- default null
p_creation_ip alias for $10; -- default null
p_is_live alias for $11; -- default
''
t
''
p_storage_type alias for $12; -- default
''
file
''
begin
END
;
$$
LANGUAGE
plpgsql
;
--
-- procedure acs_message__new_file/12
--
CREATE
OR
REPLACE
FUNCTION
acs_message__new_file
(
p_message_id
integer
,
p_file_id
integer
,
-- default null
p_file_name
varchar
,
p_title
varchar
,
-- default null
p_description
text
,
-- default null
p_mime_type
varchar
,
-- default 'text/plain'
p_data
integer
,
-- default null
p_creation_date
timestamptz
,
-- default sysdate
p_creation_user
integer
,
-- default null
p_creation_ip
varchar
,
-- default null
p_is_live
boolean
,
-- default 't'
p_storage_type
varchar
-- default 'file'
)
RETURNS
integer
AS
$$
DECLARE
BEGIN
return
acs_message__new_file
(
p_message_id
,
p_file_id
,
p_file_name
,
...
...
@@ -388,23 +471,32 @@ begin
p_storage_type
,
null
);
end;'
language
'plpgsql'
;
create
or
replace
function
acs_message__edit_file
(
integer
,
varchar
,
text
,
varchar
,
integer
,
timestamptz
,
integer
,
varchar
,
boolean
)
returns
integer
as
'
declare
p_file_id alias for $1;
p_title alias for $2; -- default null
p_description alias for $3; -- default null
p_mime_type alias for $4; -- default
''
text/plain
''
p_data alias for $5; -- default null
p_creation_date alias for $6; -- default sysdate
p_creation_user alias for $7; -- default null
p_creation_ip alias for $8; -- default null
p_is_live alias for $9; -- default
''
t
''
END
;
$$
LANGUAGE
plpgsql
;
-- added
select
define_function_args
(
'acs_message__edit_file'
,
'file_id,title;null,description;null,mime_type;text/plain,data;null,creation_date;sysdate,creation_user;null,creation_ip;null,is_live;t'
);
--
-- procedure acs_message__edit_file/9
--
CREATE
OR
REPLACE
FUNCTION
acs_message__edit_file
(
p_file_id
integer
,
p_title
varchar
,
-- default null
p_description
text
,
-- default null
p_mime_type
varchar
,
-- default 'text/plain'
p_data
integer
,
-- default null
p_creation_date
timestamptz
,
-- default sysdate
p_creation_user
integer
,
-- default null
p_creation_ip
varchar
,
-- default null
p_is_live
boolean
-- default 't'
)
RETURNS
integer
AS
$$
DECLARE
v_revision_id
cr_revisions
.
revision_id
%
TYPE
;
begin
BEGIN
v_revision_id
:
=
content_revision__new
(
p_title
,
-- title
p_description
,
...
...
@@ -425,39 +517,57 @@ begin
end
if
;
return
v_revision_id
;
end;'
language
'plpgsql'
;
END
;
$$
LANGUAGE
plpgsql
;
create
or
replace
function
acs_message__delete_file
(
integer
)
returns
integer
as
'
declare
p_file_id alias for $1;
begin
-- added
select
define_function_args
(
'acs_message__delete_file'
,
'file_id'
);
--
-- procedure acs_message__delete_file/1
--
CREATE
OR
REPLACE
FUNCTION
acs_message__delete_file
(
p_file_id
integer
)
RETURNS
integer
AS
$$
DECLARE
BEGIN
perform
content_item__delete
(
p_file_id
);
return
1
;
end;'
language
'plpgsql'
;
create
or
replace
function
acs_message__new_image
(
integer
,
integer
,
varchar
,
varchar
,
text
,
varchar
,
integer
,
integer
,
integer
,
timestamptz
,
integer
,
varchar
,
boolean
,
varchar
,
integer
)
returns
integer
as
'
declare
p_message_id alias for $1;
p_image_id alias for $2; -- default null
p_file_name alias for $3;
p_title alias for $4; -- default null
p_description alias for $5; -- default null
p_mime_type alias for $6; -- default
''
text/plain
''
p_data alias for $7; -- default null
p_width alias for $8; -- default null
p_height alias for $9; -- default null
p_creation_date alias for $10; -- default sysdate
p_creation_user alias for $11; -- default null
p_creation_ip alias for $12; -- default null
p_is_live alias for $13; -- default
''
t
''
p_storage_type alias for $14; -- default
''
file
''
p_package_id alias for $15; -- default null
END
;
$$
LANGUAGE
plpgsql
;
-- added
select
define_function_args
(
'acs_message__new_image'
,
'message_id,image_id;null,file_name,title;null,description;null,mime_type;text/plain,data;null,width;null,height;null,creation_date;sysdate,creation_user;null,creation_ip;null,is_live;t,storage_type;file,package_id;null'
);
--
-- procedure acs_message__new_image/15
--
CREATE
OR
REPLACE
FUNCTION
acs_message__new_image
(
p_message_id
integer
,
p_image_id
integer
,
-- default null
p_file_name
varchar
,
p_title
varchar
,
-- default null
p_description
text
,
-- default null
p_mime_type
varchar
,
-- default 'text/plain'
p_data
integer
,
-- default null
p_width
integer
,
-- default null
p_height
integer
,
-- default null
p_creation_date
timestamptz
,
-- default sysdate
p_creation_user
integer
,
-- default null
p_creation_ip
varchar
,
-- default null
p_is_live
boolean
,
-- default 't'
p_storage_type
varchar
,
-- default 'file'
p_package_id
integer
-- default null
)
RETURNS
integer
AS
$$
DECLARE
v_image_id
cr_items
.
item_id
%
TYPE
;
v_revision_id
cr_revisions
.
revision_id
%
TYPE
;
begin
BEGIN
v_image_id
:
=
content_item__new
(
p_file_name
,
-- name
p_message_id
,
-- parent_id
...
...
@@ -467,14 +577,14 @@ begin
p_creation_user
,
-- creation_user
null
,
-- context_id
p_creation_ip
,
-- creation_ip
'
'
content_item
'
'
, -- item_subtype
'
'
content_revision
'
'
, -- content_type
'
content_item
'
,
-- item_subtype
'
content_revision
'
,
-- content_type
null
,
-- title
null
,
-- description
'
'
text/plain
'
'
, -- mime_type
'
text/plain
'
,
-- mime_type
null
,
-- nls_language
null
,
-- text
'
'
file
'
'
, -- storage_type
'
file
'
,
-- storage_type
p_package_id
-- package_id
);
...
...
@@ -494,27 +604,33 @@ begin
);
return
v_image_id
;
end;'
language
'plpgsql'
;
create
or
replace
function
acs_message__new_image
(
integer
,
integer
,
varchar
,
varchar
,
text
,
varchar
,
integer
,
integer
,
integer
,
timestamptz
,
integer
,
varchar
,
boolean
,
varchar
)
returns
integer
as
'
declare
p_message_id alias for $1;
p_image_id alias for $2; -- default null
p_file_name alias for $3;
p_title alias for $4; -- default null
p_description alias for $5; -- default null
p_mime_type alias for $6; -- default
''
text/plain
''
p_data alias for $7; -- default null
p_width alias for $8; -- default null
p_height alias for $9; -- default null
p_creation_date alias for $10; -- default sysdate
p_creation_user alias for $11; -- default null
p_creation_ip alias for $12; -- default null
p_is_live alias for $13; -- default
''
t
''
p_storage_type alias for $14; -- default
''
file
''
begin
END
;
$$
LANGUAGE
plpgsql
;
--
-- procedure acs_message__new_image/14
--
CREATE
OR
REPLACE
FUNCTION
acs_message__new_image
(
p_message_id
integer
,
p_image_id
integer
,
-- default null
p_file_name
varchar
,
p_title
varchar
,
-- default null
p_description
text
,
-- default null
p_mime_type
varchar
,
-- default 'text/plain'
p_data
integer
,
-- default null
p_width
integer
,
-- default null
p_height
integer
,
-- default null
p_creation_date
timestamptz
,
-- default sysdate
p_creation_user
integer
,
-- default null
p_creation_ip
varchar
,
-- default null
p_is_live
boolean
,
-- default 't'
p_storage_type
varchar
-- default 'file'
)
RETURNS
integer
AS
$$
DECLARE
BEGIN
return
acs_message__new_image
(
p_message_id
,
p_image_id
,
p_file_name
,
...
...
@@ -531,25 +647,34 @@ begin
p_storage_type
,
null
);
end;'
language
'plpgsql'
;
create
or
replace
function
acs_message__edit_image
(
integer
,
varchar
,
text
,
varchar
,
integer
,
integer
,
integer
,
timestamptz
,
integer
,
varchar
,
boolean
)
returns
integer
as
'
declare
p_image_id alias for $1;
p_title alias for $2; -- default null
p_description alias for $3; -- default null
p_mime_type alias for $4; -- default
''
text/plain
''
p_data alias for $5; -- default null
p_width alias for $6; -- default null
p_height alias for $7; -- default null
p_creation_date alias for $8; -- default sysdate
p_creation_user alias for $9; -- default null
p_creation_ip alias for $10; -- default null
p_is_live alias for $11; -- default
''
t
''
END
;
$$
LANGUAGE
plpgsql
;
-- added
select
define_function_args
(
'acs_message__edit_image'
,
'image_id,title;null,description;null,mime_type;text/plain,data;null,width;null,height;null,creation_date;sysdate,creation_user;null,creation_ip;null,is_live;t'
);
--
-- procedure acs_message__edit_image/11
--
CREATE
OR
REPLACE
FUNCTION
acs_message__edit_image
(
p_image_id
integer
,
p_title
varchar
,
-- default null
p_description
text
,
-- default null
p_mime_type
varchar
,
-- default 'text/plain'
p_data
integer
,
-- default null
p_width
integer
,
-- default null
p_height
integer
,
-- default null
p_creation_date
timestamptz
,
-- default sysdate
p_creation_user
integer
,
-- default null
p_creation_ip
varchar
,
-- default null
p_is_live
boolean
-- default 't'
)
RETURNS
integer
AS
$$
DECLARE
v_revision_id
cr_revisions
.
revision_id
%
TYPE
;
begin
BEGIN
-- not sure which __new to use
v_revision_id
:
=
content_revision__new
(
p_title
,
-- title
...
...
@@ -578,35 +703,53 @@ begin
end
if
;
return
v_revision_id
;
end;'
language
'plpgsql'
;
END
;
$$
LANGUAGE
plpgsql
;
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
0
;
end;'
language
'plpgsql'
;
END
;
$$
LANGUAGE
plpgsql
;
-- XXX should just call content_extlink.new
create
or
replace
function
acs_message__new_extlink
(
varchar
,
integer
,
varchar
,
varchar
,
text
,
integer
,
timestamptz
,
integer
,
varchar
,
integer
)
returns
integer
as
'
declare
p_name alias for $1; -- default null
p_extlink_id alias for $2; -- default null
p_url alias for $3;
p_label alias for $4; -- default null
p_description alias for $5; -- default null
p_parent_id alias for $6;
p_creation_date alias for $7; -- default sysdate
p_creation_user alias for $8; -- default null
p_creation_ip alias for $9; -- default null
p_package_id alias for $10; -- default null
-- added
select
define_function_args
(
'acs_message__new_extlink'
,
'name;null,extlink_id;null,url,label;null,description;null,parent_id,creation_date;sysdate,creation_user;null,creation_ip;null,package_id;null'
);
--
-- procedure acs_message__new_extlink/10
--
CREATE
OR
REPLACE
FUNCTION
acs_message__new_extlink
(
p_name
varchar
,
-- default null
p_extlink_id
integer
,
-- default null
p_url
varchar
,
p_label
varchar
,
-- default null
p_description
text
,
-- default null
p_parent_id
integer
,
p_creation_date
timestamptz
,
-- default sysdate
p_creation_user
integer
,
-- default null
p_creation_ip
varchar
,
-- default null
p_package_id
integer
-- default null
)
RETURNS
integer
AS
$$
DECLARE
v_extlink_id
cr_extlinks
.
extlink_id
%
TYPE
;
begin
BEGIN
v_extlink_id
:
=
content_extlink__new
(
p_name
,
-- name
p_url
,
-- url
...
...
@@ -621,22 +764,28 @@ begin
);
return
v_extlink_id
;
end;'
language
'plpgsql'
;
END
;
$$
LANGUAGE
plpgsql
;
create
or
replace
function
acs_message__new_extlink
(
varchar
,
integer
,
varchar
,
varchar
,
text
,
integer
,
timestamptz
,
integer
,
varchar
)
returns
integer
as
'
declare
p_name alias for $1; -- default null
p_extlink_id alias for $2; -- default null
p_url alias for $3;
p_label alias for $4; -- default null
p_description alias for $5; -- default null
p_parent_id alias for $6;
p_creation_date alias for $7; -- default sysdate
p_creation_user alias for $8; -- default null
p_creation_ip alias for $9; -- default null
begin
--
-- procedure acs_message__new_extlink/9
--
CREATE
OR
REPLACE
FUNCTION
acs_message__new_extlink
(
p_name
varchar
,
-- default null
p_extlink_id
integer
,
-- default null
p_url
varchar
,
p_label
varchar
,
-- default null
p_description
text
,
-- default null
p_parent_id
integer
,
p_creation_date
timestamptz
,
-- default sysdate
p_creation_user
integer
,
-- default null
p_creation_ip
varchar
-- default null
)
RETURNS
integer
AS
$$
DECLARE
BEGIN
return
acs_message__new_extlink
(
p_name
,
p_extlink_id
,
p_url
,
...
...
@@ -648,20 +797,30 @@ begin
p_creation_ip
,
null
);
end;'
language
'plpgsql'
;
END
;
$$
LANGUAGE
plpgsql
;
-- XXX should just edit extlink
create
or
replace
function
acs_message__edit_extlink
(
integer
,
varchar
,
varchar
,
text
)
returns
integer
as
'
declare
p_extlink_id alias for $1;
p_url alias for $2;
p_label alias for $3; -- default null
p_description alias for $4; -- default null
-- added
select
define_function_args
(
'acs_message__edit_extlink'
,
'extlink_id,url,label;null,description'
);
--
-- procedure acs_message__edit_extlink/4
--
CREATE
OR
REPLACE
FUNCTION
acs_message__edit_extlink
(
p_extlink_id
integer
,
p_url
varchar
,
p_label
varchar
,
-- default null
p_description
text
-- default null
)
RETURNS
integer
AS
$$
DECLARE
v_is_extlink
boolean
;
begin
BEGIN
v_is_extlink
:
=
content_extlink__is_extlink
(
p_extlink_id
);
if v_is_extlink =
'
'
t
'
'
then
if
v_is_extlink
=
'
t
'
then
update
cr_extlinks
set
url
=
p_url
,
label
=
p_label
,
...
...
@@ -669,27 +828,46 @@ begin
where
extlink_id
=
p_extlink_id
;
end
if
;
return
0
;
end;'
language
'plpgsql'
;
END
;
$$
LANGUAGE
plpgsql
;
create
or
replace
function
acs_message__delete_extlink
(
integer
)
returns
integer
as
'
declare
p_extlink_id alias for $1;
begin
-- added
select
define_function_args
(
'acs_message__delete_extlink'
,
'extlink_id'
);
--
-- procedure acs_message__delete_extlink/1
--
CREATE
OR
REPLACE
FUNCTION
acs_message__delete_extlink
(
p_extlink_id
integer
)
RETURNS
integer
AS
$$
DECLARE
BEGIN
perform
content_extlink__delete
(
p_extlink_id
);
return
0
;
end;'
language
'plpgsql'
;
END
;
$$
LANGUAGE
plpgsql
;
create
or
replace
function
acs_message__name
(
integer
)
returns
varchar
as
'
declare
p_message_id alias for $1;
-- added
select
define_function_args
(
'acs_message__name'
,
'message_id'
);
--
-- procedure acs_message__name/1
--
CREATE
OR
REPLACE
FUNCTION
acs_message__name
(
p_message_id
integer
)
RETURNS
varchar
AS
$$
DECLARE
v_message_name
cr_revisions
.
title
%
TYPE
;
begin
BEGIN
select
title
into
v_message_name
from
acs_messages_all
where
message_id
=
p_message_id
;
return
v_message_name
;
end;'
language
'plpgsql'
stable
strict
;
END
;
$$
LANGUAGE
plpgsql
stable
strict
;
sql/postgresql/upgrade/upgrade-4.6.2-4.6.3.sql
View file @
7e568207
...
...
@@ -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
;
sql/postgresql/upgrade/upgrade-5.0.0b3-5.0.0b4.sql
View file @
7e568207
-- 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
;
tcl/acs-messaging-init.tcl
View file @
7e568207
...
...
@@ -9,5 +9,5 @@ ad_library {
}
# Schedule every 15 minutes
ad_schedule_proc -thread t 90
0
acs_messaging_process_queue
ad_schedule_proc -thread t 90
7
acs_messaging_process_queue
tcl/acs-messaging-procs.tcl
View file @
7e568207
...
...
@@ -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
{
...
...
www/doc/index.html
View file @
7e568207
...
...
@@ -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>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment