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.52 -r1.53
--- openacs-4/packages/acs-content-repository/acs-content-repository.info 24 Feb 2005 13:32:58 -0000 1.52
+++ openacs-4/packages/acs-content-repository/acs-content-repository.info 18 Mar 2005 13:44:56 -0000 1.53
@@ -7,7 +7,7 @@
t
t
-
+
OpenACS
The canonical repository for OpenACS content.
@@ -21,7 +21,7 @@
other CMS backing functionality. Utilized by Bug Tracker, File Storage, and other packages.
-
+
Index: openacs-4/packages/acs-content-repository/sql/postgresql/upgrade/upgrade-5.2.0d12-5.2.0d13.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/postgresql/upgrade/upgrade-5.2.0d12-5.2.0d13.sql,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-content-repository/sql/postgresql/upgrade/upgrade-5.2.0d12-5.2.0d13.sql 18 Mar 2005 13:44:56 -0000 1.1
@@ -0,0 +1,86 @@
+--
+-- daveb fixes for content_folder__move.
+--
+select define_function_args('content_folder__move','folder_id,target_folder_id,name;NULL');
+
+create or replace function content_folder__move (integer,integer,varchar)
+returns integer as '
+declare
+ move__folder_id alias for $1;
+ move__target_folder_id alias for $2;
+ move__name alias for $3;
+ v_source_folder_id integer;
+ v_valid_folders_p integer;
+begin
+
+ select
+ count(*)
+ into
+ v_valid_folders_p
+ from
+ cr_folders
+ where
+ folder_id = move__target_folder_id
+ or
+ folder_id = move__folder_id;
+
+ if v_valid_folders_p != 2 then
+ raise EXCEPTION ''-20000: content_folder.move - Not valid folder(s)'';
+ end if;
+
+ if move__folder_id = content_item__get_root_folder(null) or
+ move__folder_id = content_template__get_root_folder() then
+ raise EXCEPTION ''-20000: content_folder.move - Cannot move root folder'';
+ end if;
+
+ if move__target_folder_id = move__folder_id then
+ raise EXCEPTION ''-20000: content_folder.move - Cannot move a folder to itself'';
+ end if;
+
+ if content_folder__is_sub_folder(move__folder_id, move__target_folder_id) = ''t'' then
+ raise EXCEPTION ''-20000: content_folder.move - Destination folder is subfolder'';
+ end if;
+
+ if content_folder__is_registered(move__target_folder_id,''content_folder'',''f'') != ''t'' then
+ raise EXCEPTION ''-20000: content_folder.move - Destination folder does not allow subfolders'';
+ end if;
+
+ select parent_id into v_source_folder_id from cr_items
+ where item_id = move__folder_id;
+
+ -- update the parent_id for the folder
+ update cr_items
+ set parent_id = move__target_folder_id,
+ name = coalesce ( move_name, name )
+ where item_id = move__folder_id;
+
+ -- update the has_child_folders flags
+
+ -- update the source
+ update cr_folders set has_child_folders = ''f''
+ where folder_id = v_source_folder_id and not exists (
+ select 1 from cr_items
+ where parent_id = v_source_folder_id
+ and content_type = ''content_folder'');
+
+ -- update the destination
+ update cr_folders set has_child_folders = ''t''
+ where folder_id = move__target_folder_id;
+
+ return 0;
+end;' language 'plpgsql';
+
+create or replace function content_folder__move (integer,integer)
+returns integer as '
+declare
+ move__folder_id alias for $1;
+ move__target_folder_id alias for $2;
+begin
+
+ perform content_folder__move (
+ move__folder_id,
+ move__target_folder_id,
+ NULL
+ );
+ return null;
+end;' language 'plpgsql';