-- -- 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 -- create a new revision using whichever call is appropriate if p_data is not null then -- need to take care of blob? v_revision_id := content_revision__new ( p_title, -- title p_description, -- description now(), -- publish_date p_mime_type, -- mime_type null, -- nls_language p_data, -- data p_message_id, -- item_id p_creation_date, -- creation_date p_creation_user, -- creation_user p_creation_ip -- creation_ip ); else if p_title is not null or p_text is not null then v_revision_id := content_revision__new ( p_title, -- title p_description, -- description now(), -- publish_date p_mime_type, -- mime_type null, -- nls_language p_text, -- text p_message_id, -- item_id null, -- revision_id p_creation_date, -- creation_date p_creation_user, -- creation_user p_creation_ip, -- creation_ip null, -- content_length null -- package_id ); end if; end if; -- test for auto approval of revision if p_is_live then perform content_item__set_live_revision(v_revision_id); end if; return v_revision_id; END; $$ LANGUAGE plpgsql; DROP FUNCTION IF EXISTS acs_message__new_file(integer,integer,character varying,character varying,text,character varying,integer,timestamp with time zone,integer,character varying,boolean,character varying,integer); DROP FUNCTION IF EXISTS acs_message__new_file(integer,integer,character varying,character varying,text,character varying,integer,timestamp with time zone,integer,character varying,boolean,character varying); 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 cr_items.storage_type%TYPE, -- 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 v_file_id := content_item__new ( p_file_name, -- name p_message_id, -- parent_id p_file_id, -- item_id null, -- locale p_creation_date, -- creation_date p_creation_user, -- creation_user null, -- context_id p_creation_ip, -- creation_ip 'content_item', -- item_subtype 'content_revision', -- content_type null, -- title null, -- description 'text/plain', -- mime_type null, -- nls_language null, -- text null, -- data null, -- relation_tag false, -- is_live p_storage_type, -- storage_type p_package_id, -- package_id true -- with_child_rels ); -- create an initial revision for the new attachment v_revision_id := acs_message__edit_file ( v_file_id, -- file_id p_title, -- title p_description, -- description p_mime_type, -- mime_type p_data, -- data p_creation_date, -- creation_date p_creation_user, -- creation_user p_creation_ip, -- creation_ip p_is_live -- is_live ); return v_file_id; END; $$ LANGUAGE plpgsql; DROP FUNCTION IF EXISTS acs_message__new_image(integer,integer,character varying,character varying,text,character varying,integer,integer,integer,timestamp with time zone,integer,character varying,boolean,character varying); DROP FUNCTION IF EXISTS acs_message__new_image(integer,integer,character varying,character varying,text,character varying,integer,integer,integer,timestamp with time zone,integer,character varying,boolean,character varying,integer); -- -- 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 cr_items.storage_type%TYPE, -- 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 v_image_id := content_item__new ( p_file_name, -- name p_message_id, -- parent_id p_image_id, -- item_id null, -- locale p_creation_date, -- creation_date p_creation_user, -- creation_user null, -- context_id p_creation_ip, -- creation_ip 'content_item', -- item_subtype 'content_revision', -- content_type null, -- title null, -- description 'text/plain', -- mime_type null, -- nls_language null, -- text p_storage_type, -- storage_type p_package_id -- package_id ); -- create an initial revision for the new attachment v_revision_id := acs_message__edit_image ( v_image_id, -- image_id p_title, -- title p_description, -- description p_mime_type, -- mime_type p_data, -- data p_width, -- width p_height, -- height p_creation_date, -- creation_date p_creation_user, -- creation_user p_creation_ip, -- creation_ip p_is_live -- is_live ); return v_image_id; END; $$ LANGUAGE plpgsql;