--
-- @author Dave Bauer (dave@thedesignexperience.org)
-- @creation-date 2004-05-16
-- @cvs-id $Id: upgrade-5.1.0d3-5.1.0d4.sql,v 1.7 2013/03/31 12:01:24 gustafn Exp $
--
drop view fs_objects;
create view fs_objects
as
select cr_items.item_id as object_id,
cr_items.live_revision,
case
when cr_items.content_type = 'content_folder' then 'folder'
when cr_items.content_type = 'content_extlink' then 'url'
else cr_revisions.mime_type
end as type,
case
when cr_items.content_type = 'content_folder'
then (select count(*)
from cr_items ci2
where ci2.content_type <> 'content_folder'
and ci2.tree_sortkey between cr_items.tree_sortkey and tree_right(cr_items.tree_sortkey))
else cr_revisions.content_length
end as content_size,
case
when cr_items.content_type = 'content_folder' then cr_folders.label
when cr_items.content_type = 'content_extlink' then cr_extlinks.label
else cr_items.name
end as name,
cr_items.name as file_upload_name,
cr_revisions.title,
cr_revisions.mime_type,
acs_objects.last_modified,
cr_extlinks.url,
cr_items.parent_id,
cr_items.name as key,
case
when cr_items.content_type = 'content_folder' then 0
else 1
end as sort_key,
cr_mime_types.label as pretty_type
from cr_items left join cr_extlinks on (cr_items.item_id = cr_extlinks.extlink_id)
left join cr_folders on (cr_items.item_id = cr_folders.folder_id)
left join cr_revisions on (cr_items.live_revision = cr_revisions.revision_id)
left join cr_mime_types on (cr_revisions.mime_type = cr_mime_types.mime_type)
join acs_objects on (cr_items.item_id = acs_objects.object_id);
-- dropped old version in d1-d2 upgrade script.
-- added
select define_function_args('file_storage__new_root_folder','package_id,folder_name,url,description');
--
-- procedure file_storage__new_root_folder/4
--
CREATE OR REPLACE FUNCTION file_storage__new_root_folder(
new_root_folder__package_id integer,
new_root_folder__folder_name varchar,
new_root_folder__url varchar,
new_root_folder__description varchar
) RETURNS integer AS $$
-- fs_root_folders.folder_id%TYPE
DECLARE
v_folder_id fs_root_folders.folder_id%TYPE;
BEGIN
v_folder_id := content_folder__new (
new_root_folder__url, -- name
new_root_folder__folder_name, -- label
new_root_folder__description, -- description
null, -- parent_id (default)
new_root_folder__package_id, --context_id
null, --folder_id
null, --creation_date
null, --creation_user
null --creation_ip
);
insert into fs_root_folders
(package_id, folder_id)
values
(new_root_folder__package_id, v_folder_id);
-- allow child items to be added
-- JS: Note that we need to set include_subtypes to
-- JS: true since we created a new subtype.
PERFORM content_folder__register_content_type(
v_folder_id, -- folder_id
'content_revision', -- content_types
't' -- include_subtypes
);
PERFORM content_folder__register_content_type(
v_folder_id, -- folder_id
'content_folder', -- content_types
't' -- include_subtypes
);
PERFORM content_folder__register_content_type(
v_folder_id, -- folder_id
'content_symlink', -- content_types
't' -- include_subtypes
);
PERFORM content_folder__register_content_type(
v_folder_id, -- folder_id
'content_extlink', -- content_types
't' -- include_subtypes
);
return v_folder_id;
END;
$$ LANGUAGE plpgsql;