248 lines
12 KiB
MySQL
Executable File
248 lines
12 KiB
MySQL
Executable File
-- create the appilcation types
|
|
|
|
-- first, we populate the application_types table with the appropriate
|
|
-- portal types
|
|
|
|
declare
|
|
new_type_id integer;
|
|
begin
|
|
select acs_object_id_seq.nextval into new_type_id from dual;
|
|
|
|
update apm_package_types
|
|
set package_key = 'workspace',
|
|
pretty_name = 'Portal Workspace',
|
|
pretty_plural = null,
|
|
dispatcher_class = 'com.arsdigita.london.portal.dispatcher.JSPDispatcher',
|
|
package_uri = 'http://arsdigita.com/workspace'
|
|
where package_key = 'portal';
|
|
|
|
insert into application_types (application_type_id, description, has_embedded_view_p, has_full_page_view_p, object_type, package_type_id, singleton_p, title, workspace_application_p)
|
|
values (new_type_id, 'Portal based collaborative workspaces', '0', '1', 'com.arsdigita.london.portal.Workspace',
|
|
(select package_type_id from apm_package_types where package_key = 'workspace'), '0', 'Portal Workspace', '1');
|
|
|
|
select acs_object_id_seq.nextval into new_type_id from dual;
|
|
insert into application_types (application_type_id, description, object_type, title)
|
|
values (new_type_id, 'A Portal!', 'com.arsdigita.portal.Portal', 'Portal');
|
|
|
|
select acs_object_id_seq.nextval into new_type_id from dual;
|
|
insert into application_types (application_type_id, description, object_type, title, has_embedded_view_p, has_full_page_view_p, profile)
|
|
values (new_type_id, 'Displays the current date and time', 'com.arsdigita.london.portal.portlet.TimeOfDayPortlet', 'Time of Day',
|
|
'1', '0', 'wide');
|
|
select acs_object_id_seq.nextval into new_type_id from dual;
|
|
insert into application_types (application_type_id, description, object_type, title, has_embedded_view_p, has_full_page_view_p, profile)
|
|
values (new_type_id, 'Displays a list of content sections', 'com.arsdigita.london.portal.portlet.ContentSectionsPortlet', 'Content Sections',
|
|
'1', '0', 'wide');
|
|
select acs_object_id_seq.nextval into new_type_id from dual;
|
|
insert into application_types (application_type_id, description, object_type, title, has_embedded_view_p, has_full_page_view_p, profile)
|
|
values (new_type_id, 'Displays a freeform block of HTML', 'com.arsdigita.london.portal.portlet.FreeformHTMLPortlet', 'Freeform HTML',
|
|
'1', '0', 'wide');
|
|
select acs_object_id_seq.nextval into new_type_id from dual;
|
|
insert into application_types (application_type_id, description, object_type, title, has_embedded_view_p, has_full_page_view_p, profile)
|
|
values (new_type_id, 'Displays the body of a content item', 'com.arsdigita.london.portal.portlet.ContentItemPortlet', 'Content Item',
|
|
'1', '0', 'wide');
|
|
select acs_object_id_seq.nextval into new_type_id from dual;
|
|
insert into application_types (application_type_id, description, object_type, title, has_embedded_view_p, has_full_page_view_p, profile)
|
|
values (new_type_id, 'Displays a login form or user details', 'com.arsdigita.london.portal.portlet.LoginPortlet', 'Site Login',
|
|
'1', '0', 'wide');
|
|
select acs_object_id_seq.nextval into new_type_id from dual;
|
|
insert into application_types (application_type_id, description, object_type, title, has_embedded_view_p, has_full_page_view_p, profile)
|
|
values (new_type_id, 'Displays an RSS Feed', 'com.arsdigita.london.portal.portlet.RSSFeedPortlet', 'RSS Feed',
|
|
'1', '0', 'wide');
|
|
select acs_object_id_seq.nextval into new_type_id from dual;
|
|
insert into application_types (application_type_id, description, object_type, title, has_embedded_view_p, has_full_page_view_p, profile)
|
|
values (new_type_id, 'Displays the assigned CMS tasks', 'com.arsdigita.london.portal.portlet.TaskListPortlet', 'Task List',
|
|
'1', '0', 'wide');
|
|
end;
|
|
/
|
|
show errors
|
|
|
|
-- deal with the workspaces...they now extend Application instead of
|
|
-- ACSObject
|
|
insert into applications (application_id, primary_url, title, description, timestamp, application_type_id, package_id)
|
|
select workspace_id, '/portal/', 'Portal Homepage', null, sysdate, application_type_id,
|
|
(select object_id from site_nodes where name = 'portal')
|
|
from workspaces, application_types
|
|
where lower(application_types.object_type) = 'com.arsdigita.london.portal.workspace'
|
|
and workspaces.party_id is null;
|
|
|
|
|
|
-- XXX we are dropping the title, renderer, and editor without keeping them
|
|
declare
|
|
new_package_id integer;
|
|
new_site_node_id integer;
|
|
parent_node_id integer;
|
|
cursor workspaces is
|
|
select * from workspaces where party_id is not null;
|
|
begin
|
|
select node_id into parent_node_id from site_nodes where url = '/portal/';
|
|
|
|
for workspace in workspaces loop
|
|
begin
|
|
select acs_object_id_seq.nextval into new_site_node_id from dual;
|
|
select acs_object_id_seq.nextval into new_package_id from dual;
|
|
|
|
insert into acs_objects (object_id, default_domain_class, display_name, object_type)
|
|
values (new_package_id,
|
|
'com.arsdigita.kernel.PackageInstance',
|
|
'/portal/personal-' || workspace.party_id || '/',
|
|
'com.arsdigita.kernel.PackageInstance');
|
|
|
|
insert into apm_packages (package_id, locale_id, package_type_id, pretty_name)
|
|
values (new_package_id, null, (select package_type_id from apm_package_types where package_key = 'workspace'),
|
|
'Portal Workspace');
|
|
|
|
insert into acs_objects (object_id, default_domain_class, display_name, object_type)
|
|
values (new_site_node_id,
|
|
'com.arsdigita.kernel.SiteNode',
|
|
'/portal/personal-' || workspace.party_id || '/',
|
|
'com.arsdigita.kernel.SiteNode');
|
|
|
|
insert into site_nodes (node_id, directory_p, name, object_id, parent_id, pattern_p, url)
|
|
values (new_site_node_id, 1, 'personal-' || workspace.party_id,
|
|
new_package_id, parent_node_id, 0, '/portal/personal-' || workspace.party_id || '/');
|
|
|
|
|
|
insert into applications (application_id, primary_url, title, description, timestamp, application_type_id, package_id)
|
|
values (workspace.workspace_id, '/portal/personal-' || workspace.party_id || '/',
|
|
'Personal Workspace for ' || (select display_name from acs_objects where object_id = workspace.party_id),
|
|
null, sysdate, (select application_type_id from application_types where object_type = 'com.arsdigita.london.portal.Workspace'),
|
|
new_package_id);
|
|
end;
|
|
end loop;
|
|
end;
|
|
/
|
|
show errors
|
|
|
|
|
|
|
|
-- XXX we are dropping the title, renderer, and editor without keeping them
|
|
declare
|
|
new_group_id integer;
|
|
new_hidden_group_id integer;
|
|
new_role_id integer;
|
|
curr_workspace_id integer;
|
|
begin
|
|
select acs_object_id_seq.nextval into new_group_id from dual;
|
|
select acs_object_id_seq.nextval into new_hidden_group_id from dual;
|
|
select acs_object_id_seq.nextval into new_role_id from dual;
|
|
select workspace_id into curr_workspace_id from workspaces where party_id is null;
|
|
|
|
insert into acs_objects (object_id, default_domain_class, display_name, object_type)
|
|
values (new_group_id,
|
|
'com.arsdigita.kernel.Group',
|
|
'Portal Homepage',
|
|
'com.arsdigita.kernel.Group');
|
|
insert into parties (party_id, primary_email, uri)
|
|
values (new_group_id, null, null);
|
|
insert into groups (group_id, name) values (new_group_id, 'Portal Homepage');
|
|
|
|
insert into acs_objects (object_id, default_domain_class, display_name, object_type)
|
|
values (new_hidden_group_id,
|
|
'com.arsdigita.kernel.Group',
|
|
'Portal Homepage Administrators',
|
|
'com.arsdigita.kernel.Group');
|
|
insert into parties (party_id, primary_email, uri)
|
|
values (new_hidden_group_id, null, null);
|
|
insert into groups (group_id, name) values (new_hidden_group_id, 'Portal Homepage Administrators');
|
|
|
|
insert into roles (role_id, description, group_id, implicit_group_id, name)
|
|
values (new_role_id, null, new_group_id, new_hidden_group_id, 'Administrators');
|
|
|
|
update workspaces set party_id = new_group_id where party_id is null;
|
|
|
|
insert into acs_permissions (privilege, object_id, grantee_id, creation_date, creation_ip, creation_user)
|
|
values ('admin', curr_workspace_id, new_hidden_group_id, sysdate, '127.0.0.1', null);
|
|
|
|
insert into acs_permissions (privilege, object_id, grantee_id, creation_date, creation_ip, creation_user)
|
|
values ('read', curr_workspace_id, new_group_id, sysdate, '127.0.0.1', null);
|
|
end;
|
|
/
|
|
show errors
|
|
|
|
|
|
--update apm_package_types set package_uri = 'http://arsdigita.com/portal' where package_key = 'portal';
|
|
--update apm_packages
|
|
-- set package_type_id = (select package_type_id from apm_package_types where package_key = 'workspace')
|
|
-- where package_id in (select object_id from site_nodes where url like '/portal%');
|
|
|
|
-- XXXXXXXX I think that everything below this line should work
|
|
|
|
alter table portals drop column title;
|
|
|
|
--
|
|
-- update the portals
|
|
--
|
|
insert into applications
|
|
(application_id, primary_url, title, description, timestamp,
|
|
application_type_id)
|
|
select
|
|
portal_id, null, portals_old.title, null, sysdate,
|
|
(select application_type_id from application_types
|
|
where lower(application_types.object_type) = 'com.arsdigita.portal.portal')
|
|
from portals_old;
|
|
|
|
insert into portals select portal_id, '0' from portals_old;
|
|
|
|
update acs_objects
|
|
set default_domain_class = 'com.arsdigita.portal.Portal',
|
|
object_type = 'com.arsdigita.portal.Portal'
|
|
where object_id in (select portal_id from portals_old);
|
|
|
|
insert into workspace_portal_map
|
|
(workspace_id, portal_id, tab_number)
|
|
select workspace_id, portal_id, tab_number from portals_old;
|
|
|
|
-- we drop the package_id since it is no longer needed
|
|
alter table workspaces drop column package_id;
|
|
|
|
|
|
-- update the portlets
|
|
insert into applications (
|
|
application_id, primary_url, title, description, timestamp,
|
|
application_type_id, cell_number, sort_key
|
|
)
|
|
select portlet_id, null, portlets_old.title, null, sysdate, application_type_id,
|
|
column_number+1, row_number
|
|
from portlets_old, application_types, portlet_types
|
|
where lower(application_types.object_type) = lower(class_name)
|
|
and portlets_old.portlet_type_id = portlet_types.portlet_type_id;
|
|
|
|
insert into portlets (portlet_id, portal_id)
|
|
select portlet_id, portal_id from portlets_old;
|
|
|
|
-- make all of the tables point to portlets instead of portlets old
|
|
alter table PORTLET_CONTENT_ITEM drop constraint PTL_CI_PORTLET_ID_FK;
|
|
alter table PORTLET_CONTENT_ITEM
|
|
add constraint PORT_CONT_ITE_PORTL_ID_F_N19Z_
|
|
foreign key (PORTLET_ID) references PORTLETS(portlet_id) on delete CASCADE ;
|
|
alter table PORTLET_FREEFORM_HTML drop constraint PTL_FFH_PORTLET_ID_FK;
|
|
alter table PORTLET_FREEFORM_HTML
|
|
add constraint PORT_FREEF_HTM_PORT_ID_F_NE2B4
|
|
foreign key (PORTLET_ID) references PORTLETS (portlet_id) on delete CASCADE ;
|
|
alter table PORTLET_RSS_FEED drop constraint PTL_RSS_PORTLET_ID_FK;
|
|
alter table PORTLET_RSS_FEED
|
|
add constraint PORTL_RSS_FEE_PORTL_ID_F_CB7OG
|
|
foreign key (PORTLET_ID) references PORTLETS (portlet_id) on delete CASCADE ;
|
|
|
|
|
|
drop table portlets_old;
|
|
drop table portals_old;
|
|
|
|
-- XXX we are dropping the title, renderer, and editor without keeping them
|
|
declare
|
|
cursor types is
|
|
select portlet_type_id from portlet_types;
|
|
begin
|
|
for type in types loop
|
|
begin
|
|
execute immediate 'delete from portlet_types where portlet_type_id = ' || type.portlet_type_id;
|
|
execute immediate 'delete from acs_objects where object_id = ' || type.portlet_type_id;
|
|
end;
|
|
end loop;
|
|
end;
|
|
/
|
|
show errors
|
|
|
|
drop table portlet_types;
|
|
|