--
-- wp_slide__new/14
--
create or replace function wp_slide__new(
integer,
timestamp with time zone,
integer,
character varying,
character varying,
integer,
integer,
integer,
character varying,
character varying,
character varying,
boolean,
boolean,
integer
) returns int4 as $$
declare
p_pres_item_id alias for $1;
p_creation_date alias for $2;
p_creation_user alias for $3;
p_creation_ip alias for $4;
p_slide_title alias for $5;
p_style alias for $6;
p_original_slide_id alias for $7;
p_sort_key alias for $8;
p_preamble alias for $9;
p_bullet_items alias for $10;
p_postamble alias for $11;
p_include_in_outline_p alias for $12;
p_context_break_after_p alias for $13;
p_context_id alias for $14;
v_item_id cr_items.item_id%TYPE;
v_preamble_item_id cr_items.item_id%TYPE;
v_postamble_item_id cr_items.item_id%TYPE;
v_bullet_items_item_id cr_items.item_id%TYPE;
v_revision_id cr_revisions.revision_id%TYPE;
v_preamble_revision_id cr_revisions.revision_id%TYPE;
v_postamble_revision_id cr_revisions.revision_id%TYPE;
v_bullet_items_revision_id cr_revisions.revision_id%TYPE;
v_max_id integer;
v_name varchar;
begin
select coalesce(max(item_id),0) into v_max_id
from cr_items
where content_type = 'cr_wp_slide'
and name like p_slide_title || '%';
v_name := p_slide_title || '_' || v_max_id;
v_item_id := content_item__new(
v_name,
p_pres_item_id,
null,
null,
p_creation_date,
p_creation_user,
null,
p_creation_ip,
'content_item',
'cr_wp_slide',
null,
null,
'text/plain',
null,
null,
'text'
);
v_revision_id := content_revision__new(
null,
null,
current_timestamp,
'text/plain',
null,
null,
v_item_id,
null,
p_creation_date,
p_creation_user,
p_creation_ip
);
perform content_item__set_live_revision(v_revision_id);
update cr_wp_slides
set sort_key = sort_key + 1
where sort_key >= p_sort_key
and exists (select 1 from cr_items, cr_revisions
where parent_id = p_pres_item_id
and cr_items.item_id = cr_revisions.item_id
and cr_revisions.revision_id=cr_wp_slides.slide_id);
insert into cr_wp_slides (
slide_id,
original_slide_id,
sort_key,
slide_title,
include_in_outline_p,
context_break_after_p,
style
) values (
v_revision_id,
p_original_slide_id,
p_sort_key,
p_slide_title,
p_include_in_outline_p,
p_context_break_after_p,
p_style
);
v_preamble_item_id := content_item__new(
'preamble',
v_item_id,
null,
null,
p_creation_date,
p_creation_user,
null,
p_creation_ip,
'content_item',
'cr_wp_slide_preamble',
null,
null,
'text/plain',
null,
null,
'text'
);
v_preamble_revision_id := content_revision__new(
null,
null,
current_timestamp,
'text/plain',
null,
p_preamble,
v_preamble_item_id,
null,
p_creation_date,
p_creation_user,
p_creation_ip
);
perform content_item__set_live_revision(v_preamble_revision_id);
insert into cr_wp_slides_preamble
(id, slide_id)
values
(v_preamble_revision_id, v_revision_id);
v_postamble_item_id := content_item__new(
'postamble',
v_item_id,
null,
null,
p_creation_date,
p_creation_user,
null,
p_creation_ip,
'content_item',
'cr_wp_slide_postamble',
null,
null,
'text/plain',
null,
null,
'text'
);
v_postamble_revision_id := content_revision__new(
null,
null,
current_timestamp,
'text/plain',
null,
p_postamble,
v_postamble_item_id,
null,
p_creation_date,
p_creation_user,
p_creation_ip
);
perform content_item__set_live_revision(v_postamble_revision_id);
insert into cr_wp_slides_postamble
(id, slide_id)
values
(v_postamble_revision_id, v_revision_id);
v_bullet_items_item_id := content_item__new(
'bullet_items',
v_item_id,
null,
null,
p_creation_date,
p_creation_user,
null,
p_creation_ip,
'content_item',
'cr_wp_slide_bullet_items',
null,
null,
null,
'text/plain',
null,
'text'
);
v_bullet_items_revision_id := content_revision__new(
null,
null,
current_timestamp,
'text/plain',
null,
p_bullet_items,
v_bullet_items_item_id,
null,
p_creation_date,
p_creation_user,
p_creation_ip
);
perform content_item__set_live_revision(v_bullet_items_revision_id);
insert into cr_wp_slides_bullet_items
(id, slide_id)
values
(v_bullet_items_revision_id, v_revision_id);
return v_item_id;
end;$$ language plpgsql;