Commit 76105a0f authored by Frank Bergmann's avatar Frank Bergmann

- Upgrade to OpenACS 5.6

parent cb02ee6f
-- Add a few common mime types
insert into cr_mime_types (label,mime_type,file_extension) values ('XPInstall', 'application/x-xpinstall', 'xpi');
insert into cr_mime_types (label,mime_type,file_extension) values ('Video MP4', 'video/mp4', 'mp4');
insert into cr_mime_types (label,mime_type,file_extension)
select 'Video MP4', 'video/mp4', 'mp4' from dual
where not exists (select 1 from cr_mime_types where mime_type = 'video/mp4');
insert into cr_extension_mime_type_map (extension, mime_type)
select 'mp4', 'video/mp4' from dual
where not exists (select 1 from cr_extension_mime_type_map where mime_type = 'video/mp4');
insert into cr_mime_types (label,mime_type,file_extension)
select 'XPInstall', 'application/x-xpinstall', 'xpi' from dual
where not exists (select 1 from cr_mime_types where mime_type = 'application/x-xpinstall');
insert into cr_extension_mime_type_map (extension, mime_type)
select 'xpi', 'application/x-xpinstall' from dual
where not exists (select 1 from cr_extension_mime_type_map where mime_type = 'application/x-xpinstall');
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
create index cr_revisions_publish_date_idx on cr_revisions(publish_date);
\ No newline at end of file
-- Add a few common mime types
insert into cr_mime_types (label,mime_type,file_extension) select 'Audio - WAV','audio/wav', 'wav' from dual where not exists (select 1 from cr_mime_types where mime_type = 'audio/wav');
insert into cr_mime_types (label,mime_type,file_extension) select 'Audio - MPEG','audio/mpeg', 'mpeg' from dual where not exists (select 1 from cr_mime_types where mime_type = 'audio/mpeg');
insert into cr_mime_types (label, mime_type, file_extension) select 'Audio - MP3','audio/mp3', 'mp3' from dual where not exists (select 1 from cr_mime_types where mime_type = 'audio/mp3');
insert into cr_mime_types (label,mime_type,file_extension) select 'Image - Progressive JPEG','image/pjpeg', 'pjpeg' from dual where not exists (select 1 from cr_mime_types where mime_type = 'image/pjpeg');
This diff is collapsed.
-- @cvs-id $Id$
-- @author davis@xarg.net
-- cascade on delete of folder and of content_type
alter table cr_folder_type_map drop constraint cr_folder_type_map_fldr_fk;
alter table cr_folder_type_map add constraint cr_folder_type_map_fldr_fk
foreign key (folder_id) references cr_folders on delete cascade;
alter table cr_folder_type_map drop constraint cr_folder_type_map_typ_fk;
alter table cr_folder_type_map add constraint cr_folder_type_map_typ_fk
foreign key (content_type) references acs_object_types on delete cascade;
This diff is collapsed.
This diff is collapsed.
-- update package content_template to add package_id parameter
create or replace package content_template
as
c_root_folder_id constant integer := -200;
function get_root_folder return cr_folders.folder_id%TYPE;
function new (
--/** Creates a new content template which can be used to render content items.
-- @author Karl Goldstein
-- @param name The name for the template, must be a valid UNIX-like filename.
-- If a template with this name already exists under the specified
-- parent item, an error is thrown
-- @param text The body of the .adp template itself, defaults to null
-- @param parent_id The parent of this item, defaults to null
-- @param is_live The should the revision be set live, defaults to 't'. Requires
-- that text is not null or there will be no revision to begin with
-- @param template_id The id of the new template. A new id will be allocated if this
-- parameter is null
-- @param creation_date As in <tt>acs_object.new</tt>
-- @param creation_ip As in <tt>acs_object.new</tt>
-- @param creation_user As in <tt>acs_object.new</tt>
-- @return The id of the newly created template
-- @see {acs_object.new}, {content_item.new}, {content_item.register_template},
-- {content_type.register_template}
--*/
name in cr_items.name%TYPE,
text in varchar2 default null,
parent_id in cr_items.parent_id%TYPE default null,
is_live in char default 't',
template_id in cr_templates.template_id%TYPE default null,
creation_date in acs_objects.creation_date%TYPE
default sysdate,
creation_user in acs_objects.creation_user%TYPE
default null,
creation_ip in acs_objects.creation_ip%TYPE default null,
package_id in acs_objects.package_id%TYPE default null
) return cr_templates.template_id%TYPE;
procedure del (
--/** Deletes the specified template, and unregisters the template from
-- all content types and content items.
-- Use with caution - this operation cannot be undone.
-- @author Karl Goldstein
-- @param template_id The id of the template to delete
-- @see {acs_object.delete}, {content_item.unregister_template},
-- {content_type.unregister_template},
--*/
template_id in cr_templates.template_id%TYPE
);
function is_template (
--/** Determine if an item is a template.
-- @author Karl Goldstein
-- @param item_id The item id
-- @return 't' if the item is a template, 'f' otherwise
-- @see {content_template.new}
--*/
template_id in cr_templates.template_id%TYPE
) return varchar2;
function get_path (
--/** Retrieves the full path to the template, as described in content_item.get_path
-- @author Karl Goldstein
-- @param template_id The id of the template for which the path is to
-- be retrieved
-- @param root_folder_id Starts path resolution at this folder
-- @return The path to the template, starting with the specified root folder
-- @see {content_item.get_path}
--*/
template_id in cr_templates.template_id%TYPE,
root_folder_id in cr_folders.folder_id%TYPE default c_root_folder_id
) return varchar2;
end content_template;
/
show errors
create or replace package body content_template
as
function get_root_folder
return cr_folders.folder_id%TYPE
is
begin
return c_root_folder_id;
end get_root_folder;
function new (
name in cr_items.name%TYPE,
text in varchar2 default null,
parent_id in cr_items.parent_id%TYPE default null,
is_live in char default 't',
template_id in cr_templates.template_id%TYPE default null,
creation_date in acs_objects.creation_date%TYPE
default sysdate,
creation_user in acs_objects.creation_user%TYPE
default null,
creation_ip in acs_objects.creation_ip%TYPE default null,
package_id in acs_objects.package_id%TYPE default null
) return cr_templates.template_id%TYPE
is
v_template_id cr_templates.template_id%TYPE;
v_parent_id cr_items.parent_id%TYPE;
v_package_id acs_objects.package_id%TYPE;
begin
if parent_id is null then
v_parent_id := c_root_folder_id;
else
v_parent_id := parent_id;
end if;
-- make sure we're allowed to create a template in this folder
if content_folder.is_folder(parent_id) = 't' and
content_folder.is_registered(parent_id,'content_template') = 'f' then
raise_application_error(-20000,
'This folder does not allow templates to be created');
else
if package_id is null then
v_package_id := acs_object.package_id(v_parent_id);
else
v_package_id := package_id;
end if;
v_template_id := content_item.new (
item_id => content_template.new.template_id,
name => content_template.new.name,
text => content_template.new.text,
parent_id => v_parent_id,
package_id => v_package_id,
content_type => 'content_template',
is_live => content_template.new.is_live,
creation_date => content_template.new.creation_date,
creation_user => content_template.new.creation_user,
creation_ip => content_template.new.creation_ip
);
insert into cr_templates (
template_id
) values (
v_template_id
);
return v_template_id;
end if;
end new;
-- delete all template relations
procedure del (
template_id in cr_templates.template_id%TYPE
) is
begin
delete from cr_type_template_map
where template_id = content_template.del.template_id;
delete from cr_item_template_map
where template_id = content_template.del.template_id;
delete from cr_templates
where template_id = content_template.del.template_id;
content_item.del(content_template.del.template_id);
end del;
function is_template (
template_id in cr_templates.template_id%TYPE
) return varchar2
is
v_ret varchar2(1);
begin
select 't' into v_ret from cr_templates
where template_id = is_template.template_id;
return v_ret;
exception when no_data_found then
return 'f';
end is_template;
function get_path (
template_id in cr_templates.template_id%TYPE,
root_folder_id in cr_folders.folder_id%TYPE default c_root_folder_id
) return varchar2 is
begin
return content_item.get_path(template_id, root_folder_id);
end get_path;
end content_template;
/
show errors
This diff is collapsed.
--
-- packages/acs-content-repository/sql/oracle/upgrade/upgrade-5.3.0d3-5.3.0d4.sql
--
-- @author Emmanuelle Raffenne (eraffenne@dia.uned.es)
-- @creation-date 2006-12-15
-- @arch-tag: a67a9b16-d809-4da4-a47a-62f96f7e8d1e
-- @cvs-id $Id$
--
create or replace procedure update_mime_types (
v_mime_type in cr_mime_types.mime_type%TYPE,
v_file_extension in cr_mime_types.file_extension%TYPE,
v_label in cr_mime_types.label%TYPE
) is
v_count integer;
begin
select count(*) into v_count from cr_mime_types where file_extension = v_file_extension;
if v_count = 0 then
insert into cr_mime_types (mime_type, file_extension, label) values (v_mime_type, v_file_extension, v_label);
else
update cr_mime_types set mime_type=v_mime_type, label=v_label where file_extension=v_file_extension;
end if;
select count(*) into v_count from cr_extension_mime_type_map where extension=v_file_extension;
if v_count = 0 then
insert into cr_extension_mime_type_map (mime_type, extension) values (v_mime_type, v_file_extension);
else
update cr_extension_mime_type_map set mime_type=v_mime_type where extension=v_file_extension;
end if;
end update_mime_types;
/
show errors;
begin
update_mime_types('application/vnd.oasis.opendocument.text', 'odt', 'OpenDocument Text');
update_mime_types('application/vnd.oasis.opendocument.text-template', 'ott','OpenDocument Text Template');
update_mime_types('application/vnd.oasis.opendocument.text-web', 'oth', 'HTML Document Template');
update_mime_types('application/vnd.oasis.opendocument.text-master', 'odm', 'OpenDocument Master Document');
update_mime_types('application/vnd.oasis.opendocument.graphics', 'odg', 'OpenDocument Drawing');
update_mime_types('application/vnd.oasis.opendocument.graphics-template', 'otg', 'OpenDocument Drawing Template');
update_mime_types('application/vnd.oasis.opendocument.presentation', 'odp', 'OpenDocument Presentation');
update_mime_types('application/vnd.oasis.opendocument.presentation-template', 'otp', 'OpenDocument Presentation Template');
update_mime_types('application/vnd.oasis.opendocument.spreadsheet', 'ods', 'OpenDocument Spreadsheet');
update_mime_types('application/vnd.oasis.opendocument.spreadsheet-template', 'ots', 'OpenDocument Spreadsheet Template');
update_mime_types('application/vnd.oasis.opendocument.chart', 'odc', 'OpenDocument Chart');
update_mime_types('application/vnd.oasis.opendocument.formula', 'odf', 'OpenDocument Formula');
update_mime_types('application/vnd.oasis.opendocument.database', 'odb', 'OpenDocument Database');
update_mime_types('application/vnd.oasis.opendocument.image', 'odi', 'OpenDocument Image');
end;
/
show errors;
drop procedure update_mime_types;
-- Introduces some changes from Quest
CREATE UNIQUE INDEX CR_CHILD_RELS_kids_IDx ON CR_CHILD_RELS(CHILD_ID);
--
--
--
-- @author Dave Bauer (dave@thedesignexperience.org)
-- @creation-date 2008-05-13
-- @cvs-id $Id$
--
drop table cr_doc_filter;
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
-- procedure for content symlink delete
select define_function_args('content_symlink__delete','symlink_id');
create or replace function content_symlink__delete (integer)
returns integer as '
declare
delete__symlink_id alias for $1;
begin
PERFORM content_symlink__del(delete__symlink_id);
return 0;
end;' language 'plpgsql';
select define_function_args('content_symlink__del','symlink_id');
create or replace function content_symlink__del (integer)
returns integer as '
declare
del__symlink_id alias for $1;
begin
delete from cr_symlinks
where symlink_id = del__symlink_id;
PERFORM content_item__delete(del__symlink_id);
return 0;
end;' language 'plpgsql';
create or replace function content_item__move (integer,integer,varchar)
returns integer as '
declare
move__item_id alias for $1;
move__target_folder_id alias for $2;
move__name alias for $3;
begin
if move__target_folder_id is null then
raise exception ''attempt to move item_id % to null folder_id'', move__item_id;
end if;
if content_folder__is_folder(move__item_id) = ''t'' then
PERFORM content_folder__move(move__item_id, move__target_folder_id);
elsif content_folder__is_folder(move__target_folder_id) = ''t'' then
if content_folder__is_registered(move__target_folder_id,
content_item__get_content_type(move__item_id),''f'') = ''t'' and
content_folder__is_registered(move__target_folder_id,
content_item__get_content_type(content_symlink__resolve(move__item_id)),''f'') = ''t''
then
-- update the parent_id for the item
update cr_items
set parent_id = move__target_folder_id,
name = coalesce(move__name, name)
where item_id = move__item_id;
end if;
if move__name is not null then
update acs_objects
set title = move__name
where object_id = move__item_id;
end if;
end if;
return 0;
end;' language 'plpgsql';
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
-- add package_id to defined args for content_folder__new
select define_function_args('content_folder__new','name,label,description,parent_id,context_id,folder_id,creation_date;now,creation_user,creation_ip,security_inherit_p;t,package_id');
-- this one had a rename__label as rename_label so replace it.
create or replace function content_folder__rename (integer,varchar,varchar,varchar)
returns integer as '
declare
rename__folder_id alias for $1;
rename__name alias for $2; -- default null
rename__label alias for $3; -- default null
rename__description alias for $4; -- default null
v_name_already_exists_p integer;
begin
if rename__name is not null and rename__name != '''' then
PERFORM content_item__rename(rename__folder_id, rename__name);
end if;
if rename__label is not null and rename__label != '''' then
update acs_objects
set title = rename__label
where object_id = rename__folder_id;
end if;
if rename__label is not null and rename__label != '''' and
rename__description is not null and rename__description != '''' then
update cr_folders
set label = rename__label,
description = rename__description
where folder_id = rename__folder_id;
else if(rename__label is not null and rename__label != '''') and
(rename__description is null or rename__description = '''') then
update cr_folders
set label = rename__label
where folder_id = rename__folder_id;
end if; end if;
return 0;
end;' language 'plpgsql';
--
--
--
-- @author Dave Bauer (dave@thedesignexperience.org)
-- @creation-date 2005-01-06
-- @arch-tag: a39c54fa-1262-4d8c-8ceb-5f5bed0089ee
-- @cvs-id $Id$
--
select define_function_args('content_template__new','name,parent_id,template_id,creation_date;now,creation_user,creation_ip,text,is_live;f');
\ No newline at end of file
create index cr_revisions_publish_date_idx on cr_revisions(publish_date);
\ No newline at end of file
This diff is collapsed.
--
--
--
-- @author Dave Bauer (dave@thedesignexperience.org)
-- @creation-date 2005-03-20
-- @arch-tag: 8694a7de-393a-4d70-a3ce-36019afdf05c
-- @cvs-id $Id$
--
-- add define function args calls for content_keyword
-- add content_keyword__del to coincide with oracle
select define_function_args ('content_keyword__get_heading','keyword_id');
select define_function_args ('content_keyword__get_description','keyword_id');
select define_function_args ('content_keyword__set_heading','keyword_id,heading');
select define_function_args ('content_keyword__set_description','keyword_id,description');
select define_function_args ('content_keyword__is_leaf','keyword_id');
select define_function_args ('content_keyword__del','keyword_id');
select define_function_args ('content_keyword__item_assign','item_id,keyword_id,context_id;null,creation_user;null,creation_ip;null');
select define_function_args ('content_keyword__item_unassign','item_id,keyword_id');
select define_function_args ('content_keyword__is_assigned','item_id,keyword_id,recurse;none');
select define_function_args ('content_keyword__get_path','keyword_id');
create or replace function content_keyword__del (integer)
returns integer as '
declare
delete__keyword_id alias for $1;
v_rec record;
begin
for v_rec in select item_id from cr_item_keyword_map
where keyword_id = delete__keyword_id LOOP
PERFORM content_keyword__item_unassign(v_rec.item_id, delete__keyword_id);
end LOOP;
PERFORM acs_object__delete(delete__keyword_id);
return 0;
end;' language 'plpgsql';
create or replace function content_keyword__delete (integer)
returns integer as '
declare
delete__keyword_id alias for $1;
v_rec record;
begin
perform content_keyword__del(delete__keyword_id);
return 0;
end;' language 'plpgsql';
This diff is collapsed.
-- Add a few common mime types
insert into cr_mime_types (label,mime_type,file_extension) select 'Audio - WAV','audio/wav', 'wav' from dual where not exists (select 1 from cr_mime_types where mime_type = 'audio/wav');
insert into cr_mime_types (label,mime_type,file_extension) select 'Audio - MPEG','audio/mpeg', 'mpeg' from dual where not exists (select 1 from cr_mime_types where mime_type = 'audio/mpeg');
insert into cr_mime_types (label, mime_type, file_extension) select 'Audio - MP3','audio/mp3', 'mp3' from dual where not exists (select 1 from cr_mime_types where mime_type = 'audio/mp3');
insert into cr_mime_types (label,mime_type,file_extension) select 'Image - Progressive JPEG','image/pjpeg', 'pjpeg' from dual where not exists (select 1 from cr_mime_types where mime_type = 'image/pjpeg');
This diff is collapsed.
select define_function_args('content_item__set_live_revision','revision_id,publish_status;ready');
This diff is collapsed.
-- @cvs-id $Id$
-- @author davis@xarg.net
-- cascade on delete of folder and of content_type
alter table cr_folder_type_map drop constraint cr_folder_type_map_fldr_fk;
alter table cr_folder_type_map add constraint cr_folder_type_map_fldr_fk
foreign key (folder_id) references cr_folders on delete cascade;
alter table cr_folder_type_map drop constraint cr_folder_type_map_typ_fk;
alter table cr_folder_type_map add constraint cr_folder_type_map_typ_fk
foreign key (content_type) references acs_object_types on delete cascade;
-- define additional plpgsql
select define_function_args('content_item__delete','item_id');
select define_function_args('content_item__copy','item_id,target_folder_id,creation_user,creation_ip;null,name;null');
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
-- Whoever added package_id forgot to add it to this call...
select define_function_args('content_item__new','name,parent_id,item_id,locale,creation_date;now,creation_user,context_id,creation_ip,item_subtype;content_item,content_type;content_revision,title,description,mime_type;text/plain,nls_language,text,data,relation_tag,is_live;f,storage_type;lob,package_id');
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
select define_function_args('content_type__drop_type','content_type,drop_children_p;f,drop_table_p;f,drop_objects_p;f');
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
alter table cr_folders add foreign key (folder_id) references cr_items(item_id) on delete cascade;
drop trigger cr_folder_ins_up_ri_trg on cr_folders;
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment