Index: openacs-4/packages/acs-content-repository/acs-content-repository.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/acs-content-repository.info,v diff -u -r1.112 -r1.113 --- openacs-4/packages/acs-content-repository/acs-content-repository.info 4 Sep 2017 06:23:58 -0000 1.112 +++ openacs-4/packages/acs-content-repository/acs-content-repository.info 25 Oct 2017 07:33:25 -0000 1.113 @@ -7,7 +7,7 @@ t t - + f t OpenACS @@ -21,7 +21,7 @@ GPL 3 - + Index: openacs-4/packages/acs-content-repository/sql/postgresql/upgrade/upgrade-5.10.0d2-5.10.0d3.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/postgresql/upgrade/upgrade-5.10.0d2-5.10.0d3.sql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-content-repository/sql/postgresql/upgrade/upgrade-5.10.0d2-5.10.0d3.sql 25 Oct 2017 07:33:25 -0000 1.1 @@ -0,0 +1,207 @@ +-- +-- For whatever reason, old installations with many upgrades +-- (e.g. openacs.org) might have still the very old definition without +-- the named parameters. +-- +DROP FUNCTION IF EXISTS image__new(character varying, integer, integer, integer, character varying, integer, character varying, character varying, character varying, character varying, boolean, timestamp without time zone, character varying, integer, integer, integer); + +-- +-- Some installations (e.g. learn) have a version where the p_storage_type is still varchar +-- +DROP FUNCTION IF EXISTS image__new(character varying, integer, integer, integer, character varying, integer, character varying, character varying, character varying, character varying, character varying, character varying, timestamp with time zone, integer, integer, integer); + +-- +-- To be on the safe side, update both versions (same functions as in the 5.9.1 release) +-- + +-- +-- procedure image__new/17 +-- +CREATE OR REPLACE FUNCTION image__new( + new__name varchar, + new__parent_id integer, -- default null + new__item_id integer, -- default null + new__revision_id integer, -- default null + new__mime_type varchar, -- default jpeg + new__creation_user integer, -- default null + new__creation_ip varchar, -- default null + new__relation_tag varchar, -- default null + new__title varchar, -- default null + new__description varchar, -- default null + new__is_live boolean, -- default f + new__publish_date timestamptz, -- default now() + new__path varchar, + new__file_size integer, + new__height integer, + new__width integer, + new__package_id integer default null + +) RETURNS integer AS $$ +DECLARE + + new__locale varchar default null; + new__nls_language varchar default null; + new__creation_date timestamptz default current_timestamp; + new__context_id integer; + + v_item_id cr_items.item_id%TYPE; + v_package_id acs_objects.package_id%TYPE; + v_revision_id cr_revisions.revision_id%TYPE; + BEGIN + new__context_id := new__parent_id; + + if new__package_id is null then + v_package_id := acs_object__package_id(new__parent_id); + else + v_package_id := new__package_id; + end if; + + v_item_id := content_item__new ( + new__name, + new__parent_id, + new__item_id, + new__locale, + new__creation_date, + new__creation_user, + new__context_id, + new__creation_ip, + 'content_item', + 'image', + null, + new__description, + new__mime_type, + new__nls_language, + null, + 'file', -- storage_type + v_package_id + ); + + -- update cr_child_rels to have the correct relation_tag + update cr_child_rels + set relation_tag = new__relation_tag + where parent_id = new__parent_id + and child_id = new__item_id + and relation_tag = content_item__get_content_type(new__parent_id) || '-' || 'image'; + + v_revision_id := content_revision__new ( + new__title, + new__description, + new__publish_date, + new__mime_type, + new__nls_language, + new__path, + v_item_id, + new__revision_id, + new__creation_date, + new__creation_user, + new__creation_ip, + new__file_size, + v_package_id + ); + + insert into images + (image_id, height, width) + values + (v_revision_id, new__height, new__width); + + -- is_live => 't' not used as part of content_item.new + -- because content_item.new does not let developer specify revision_id, + -- revision_id is determined in advance + + if new__is_live = 't' then + PERFORM content_item__set_live_revision (v_revision_id); + end if; + + return v_item_id; +END; +$$ LANGUAGE plpgsql; + +-- DRB's version +-- +-- procedure image__new/16 +-- +-- compared to image_new/17: +-- * has no relation_tag, is_live, path, file_size +-- * but has storage_type, content_type, nls_language +-- +CREATE OR REPLACE FUNCTION image__new( + p_name varchar, + p_parent_id integer, -- default null + p_item_id integer, -- default null + p_revision_id integer, -- default null + p_mime_type varchar, -- default jpeg + p_creation_user integer, -- default null + p_creation_ip varchar, -- default null + p_title varchar, -- default null + p_description varchar, -- default null + p_storage_type cr_items.storage_type%TYPE, + p_content_type varchar, + p_nls_language varchar, + p_publish_date timestamptz, + p_height integer, + p_width integer, + p_package_id integer default null + +) RETURNS integer AS $$ +DECLARE + v_item_id cr_items.item_id%TYPE; + v_revision_id cr_revisions.revision_id%TYPE; + v_package_id acs_objects.package_id%TYPE; + BEGIN + + if content_item__is_subclass(p_content_type, 'image') = 'f' then + raise EXCEPTION '-20000: image__new can only be called for an image type'; + end if; + + if p_package_id is null then + v_package_id := acs_object__package_id(p_parent_id); + else + v_package_id := p_package_id; + end if; + + v_item_id := content_item__new ( + p_name, + p_parent_id, + p_item_id, + null, + current_timestamp, + p_creation_user, + p_parent_id, + p_creation_ip, + 'content_item', + p_content_type, + null, + null, + null, + null, + null, + p_storage_type, + v_package_id + ); + + -- We will let the caller fill in the LOB data or file path. + + v_revision_id := content_revision__new ( + p_title, + p_description, + p_publish_date, + p_mime_type, + p_nls_language, + null, -- text + v_item_id, + p_revision_id, + current_timestamp, + p_creation_user, + p_creation_ip, + null, -- content_length + v_package_id + ); + + insert into images + (image_id, height, width) + values + (v_revision_id, p_height, p_width); + + return v_item_id; +END; +$$ LANGUAGE plpgsql; Index: openacs-4/packages/acs-content-repository/www/index.vuh =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/index.vuh,v diff -u -r1.12 -r1.13 --- openacs-4/packages/acs-content-repository/www/index.vuh 7 Aug 2017 23:47:47 -0000 1.12 +++ openacs-4/packages/acs-content-repository/www/index.vuh 25 Oct 2017 07:33:25 -0000 1.13 @@ -10,7 +10,7 @@ } { { revision_id "" } } - +ns_log notice "======= index.vuh" # Get the paths set the_root $::acs::pageroot set the_url [ad_conn path_info]