-- -- content_folder__new/4 -- create or replace function content_folder__new( character varying, character varying, character varying, integer ) returns int4 as $$ declare new__name alias for $1; new__label alias for $2; new__description alias for $3; -- default null new__parent_id alias for $4; -- default null begin return content_folder__new(new__name, new__label, new__description, new__parent_id, null, null, now(), null, null, 't', null ); end;$$ language plpgsql; -- -- content_folder__new/5 -- create or replace function content_folder__new( character varying, character varying, character varying, integer, integer ) returns int4 as $$ declare new__name alias for $1; new__label alias for $2; new__description alias for $3; -- default null new__parent_id alias for $4; -- default null new__package_id alias for $5; -- default null begin return content_folder__new(new__name, new__label, new__description, new__parent_id, null, null, now(), null, null, new__package_id ); end;$$ language plpgsql; -- -- content_folder__new/9 -- create or replace function content_folder__new( character varying, character varying, character varying, integer, integer, integer, timestamp with time zone, integer, character varying ) returns int4 as $$ declare new__name alias for $1; new__label alias for $2; new__description alias for $3; -- default null new__parent_id alias for $4; -- default null new__context_id alias for $5; -- default null new__folder_id alias for $6; -- default null new__creation_date alias for $7; -- default now() new__creation_user alias for $8; -- default null new__creation_ip alias for $9; -- default null begin return content_folder__new(new__name, new__label, new__description, new__parent_id, new__context_id, new__folder_id, new__creation_date, new__creation_user, new__creation_ip, 't', null::integer ); end;$$ language plpgsql; -- -- content_folder__new/10 -- create or replace function content_folder__new( character varying, character varying, character varying, integer, integer, integer, timestamp with time zone, integer, character varying, boolean ) returns int4 as $$ declare new__name alias for $1; new__label alias for $2; new__description alias for $3; -- default null new__parent_id alias for $4; -- default null new__context_id alias for $5; -- default null new__folder_id alias for $6; -- default null new__creation_date alias for $7; -- default now() new__creation_user alias for $8; -- default null new__creation_ip alias for $9; -- default null new__security_inherit_p alias for $10; -- default true begin return content_folder__new(new__name, new__label, new__description, new__parent_id, new__context_id, new__folder_id, new__creation_date, new__creation_user, new__creation_ip, new__security_inherit_p, null::integer ); end;$$ language plpgsql; -- -- content_folder__new/10 -- create or replace function content_folder__new( character varying, character varying, character varying, integer, integer, integer, timestamp with time zone, integer, character varying, integer ) returns int4 as $$ declare new__name alias for $1; new__label alias for $2; new__description alias for $3; -- default null new__parent_id alias for $4; -- default null new__context_id alias for $5; -- default null new__folder_id alias for $6; -- default null new__creation_date alias for $7; -- default now() new__creation_user alias for $8; -- default null new__creation_ip alias for $9; -- default null new__package_id alias for $10; -- default null v_folder_id cr_folders.folder_id%TYPE; v_context_id acs_objects.context_id%TYPE; v_package_id acs_objects.package_id%TYPE; begin return content_folder__new(new__name, new__label, new__description, new__parent_id, new__context_id, new__folder_id, new__creation_date, new__creation_user, new__creation_ip, 't', new__package_id ); end;$$ language plpgsql; -- -- content_folder__new/11 -- create or replace function content_folder__new( character varying, character varying, character varying, integer, integer, integer, timestamp with time zone, integer, character varying, boolean, integer ) returns int4 as $$ declare new__name alias for $1; new__label alias for $2; new__description alias for $3; -- default null new__parent_id alias for $4; -- default null new__context_id alias for $5; -- default null new__folder_id alias for $6; -- default null new__creation_date alias for $7; -- default now() new__creation_user alias for $8; -- default null new__creation_ip alias for $9; -- default null new__security_inherit_p alias for $10; -- default true new__package_id alias for $11; -- default null v_folder_id cr_folders.folder_id%TYPE; v_context_id acs_objects.context_id%TYPE; begin -- set the context_id if new__context_id is null then v_context_id := new__parent_id; else v_context_id := new__context_id; end if; -- parent_id = security_context_root means that this is a mount point if new__parent_id != -4 and content_folder__is_folder(new__parent_id) and content_folder__is_registered(new__parent_id,'content_folder','f') = 'f' then raise EXCEPTION '-20000: This folder does not allow subfolders to be created'; return null; else v_folder_id := content_item__new( new__folder_id, new__name, new__parent_id, null, new__creation_date, new__creation_user, new__context_id, new__creation_ip, 'f', 'text/plain', null, 'text', new__security_inherit_p, 'CR_FILES', 'content_folder', 'content_folder', new__package_id ); insert into cr_folders ( folder_id, label, description, package_id ) values ( v_folder_id, new__label, new__description, new__package_id ); -- set the correct object title update acs_objects set title = new__label where object_id = v_folder_id; -- inherit the attributes of the parent folder if new__parent_id is not null then insert into cr_folder_type_map select v_folder_id as folder_id, content_type from cr_folder_type_map where folder_id = new__parent_id; end if; -- update the child flag on the parent update cr_folders set has_child_folders = 't' where folder_id = new__parent_id; return v_folder_id; end if; return v_folder_id; end;$$ language plpgsql;