Index: openacs-4/packages/categories/categories.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/categories/categories.info,v
diff -u -N -r1.7 -r1.8
--- openacs-4/packages/categories/categories.info 24 Jul 2004 15:14:24 -0000 1.7
+++ openacs-4/packages/categories/categories.info 6 Feb 2005 18:42:19 -0000 1.8
@@ -8,13 +8,13 @@
f
categories
-
+
timo@timohentschel.de
Manage categories in category trees and let users map objects to categories.
2003-04-16
Datamodel for category trees with supporting API and management pages. Provides a widget for
general categorization of arbitrary objects and tracks which package instances use which category trees. Also supports localization.
-
+
Index: openacs-4/packages/categories/sql/oracle/category-package.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/categories/sql/oracle/category-package.sql,v
diff -u -N -r1.3 -r1.4
--- openacs-4/packages/categories/sql/oracle/category-package.sql 8 Feb 2004 17:27:33 -0000 1.3
+++ openacs-4/packages/categories/sql/oracle/category-package.sql 6 Feb 2005 18:42:19 -0000 1.4
@@ -91,7 +91,8 @@
creation_date => creation_date,
creation_user => creation_user,
creation_ip => creation_ip,
- context_id => tree_id
+ context_id => tree_id,
+ title => name
);
if (new.parent_id is null) then
Index: openacs-4/packages/categories/sql/oracle/category-tree-package.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/categories/sql/oracle/category-tree-package.sql,v
diff -u -N -r1.6 -r1.7
--- openacs-4/packages/categories/sql/oracle/category-tree-package.sql 11 Feb 2004 10:54:30 -0000 1.6
+++ openacs-4/packages/categories/sql/oracle/category-tree-package.sql 6 Feb 2005 18:42:19 -0000 1.7
@@ -98,7 +98,8 @@
creation_date => creation_date,
creation_user => creation_user,
creation_ip => creation_ip,
- context_id => context_id
+ context_id => context_id,
+ title => tree_name
);
insert into category_trees
Index: openacs-4/packages/categories/sql/oracle/upgrade/upgrade-1.1d2-1.1d3.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/categories/sql/oracle/upgrade/upgrade-1.1d2-1.1d3.sql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/categories/sql/oracle/upgrade/upgrade-1.1d2-1.1d3.sql 6 Feb 2005 18:42:19 -0000 1.1
@@ -0,0 +1,8 @@
+-- Populate the title field of acs_objects with the category
+-- name or tree name
+--
+-- @author Jeff Davis
+-- @creation-date 2005-02-06
+
+@@ ../category-package.sql
+@@ ../category-tree-package.sql
Index: openacs-4/packages/categories/sql/postgresql/category-package.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/categories/sql/postgresql/category-package.sql,v
diff -u -N -r1.4 -r1.5
--- openacs-4/packages/categories/sql/postgresql/category-package.sql 8 Feb 2004 17:29:03 -0000 1.4
+++ openacs-4/packages/categories/sql/postgresql/category-package.sql 6 Feb 2005 18:42:19 -0000 1.5
@@ -41,7 +41,9 @@
p_creation_user, -- creation_user
p_creation_ip, -- creation_ip
p_tree_id, -- context_id
- ''t'' -- security_inherit_p
+ ''t'', -- security_inherit_p
+ p_name, -- title
+ null -- package_id
);
if (p_parent_id is null) then
Index: openacs-4/packages/categories/sql/postgresql/category-tree-package.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/categories/sql/postgresql/category-tree-package.sql,v
diff -u -N -r1.7 -r1.8
--- openacs-4/packages/categories/sql/postgresql/category-tree-package.sql 24 Jul 2004 15:14:24 -0000 1.7
+++ openacs-4/packages/categories/sql/postgresql/category-tree-package.sql 6 Feb 2005 18:42:19 -0000 1.8
@@ -37,7 +37,9 @@
p_creation_date, -- creation_date
p_creation_user, -- creation_user
p_creation_ip, -- creation_ip
- p_context_id -- context_id
+ p_context_id, -- context_id
+ p_tree_name, -- title
+ null -- package_id
);
insert into category_trees
Index: openacs-4/packages/categories/sql/postgresql/upgrade/upgrade-1.1d2-1.1d3.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/categories/sql/postgresql/upgrade/upgrade-1.1d2-1.1d3.sql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/categories/sql/postgresql/upgrade/upgrade-1.1d2-1.1d3.sql 6 Feb 2005 18:42:19 -0000 1.1
@@ -0,0 +1,158 @@
+-- Populate the title field of acs_objects with the category
+-- name or tree name
+--
+-- @author Jeff Davis
+-- @creation-date 2005-02-06
+
+create or replace function category__new (
+ integer, -- category_id
+ integer, -- tree_id
+ varchar, -- locale
+ varchar, -- name
+ varchar, -- description
+ integer, -- parent_id
+ char, -- deprecated_p
+ timestamp with time zone, -- creation_date
+ integer, -- creation_user
+ varchar -- creation_ip
+)
+returns integer as '
+declare
+ p_category_id alias for $1;
+ p_tree_id alias for $2;
+ p_locale alias for $3;
+ p_name alias for $4;
+ p_description alias for $5;
+ p_parent_id alias for $6;
+ p_deprecated_p alias for $7;
+ p_creation_date alias for $8;
+ p_creation_user alias for $9;
+ p_creation_ip alias for $10;
+
+ v_category_id integer;
+ v_left_ind integer;
+ v_right_ind integer;
+begin
+ v_category_id := acs_object__new (
+ p_category_id, -- object_id
+ ''category'', -- object_type
+ p_creation_date, -- creation_date
+ p_creation_user, -- creation_user
+ p_creation_ip, -- creation_ip
+ p_tree_id, -- context_id
+ ''t'', -- security_inherit_p
+ p_name, -- title
+ null -- package_id
+ );
+
+ if (p_parent_id is null) then
+ select 1, coalesce(max(right_ind)+1,1) into v_left_ind, v_right_ind
+ from categories
+ where tree_id = p_tree_id;
+ else
+ select left_ind, right_ind into v_left_ind, v_right_ind
+ from categories
+ where category_id = p_parent_id;
+ end if;
+
+ insert into categories
+ (category_id, tree_id, deprecated_p, parent_id, left_ind, right_ind)
+ values
+ (v_category_id, p_tree_id, p_deprecated_p, p_parent_id, -1, -2);
+
+ -- move right subtrees to make room for new category
+ update categories
+ set left_ind = left_ind + 2,
+ right_ind = right_ind + 2
+ where tree_id = p_tree_id
+ and left_ind > v_right_ind;
+
+ -- expand upper nodes to make room for new category
+ update categories
+ set right_ind = right_ind + 2
+ where tree_id = p_tree_id
+ and left_ind <= v_left_ind
+ and right_ind >= v_right_ind;
+
+ -- insert new category
+ update categories
+ set left_ind = v_right_ind,
+ right_ind = v_right_ind + 1
+ where category_id = v_category_id;
+
+ insert into category_translations
+ (category_id, locale, name, description)
+ values
+ (v_category_id, p_locale, p_name, p_description);
+
+ return v_category_id;
+end;
+' language 'plpgsql';
+
+
+create or replace function category_tree__new (
+ integer, -- tree_id
+ varchar, -- locale
+ varchar, -- tree_name
+ varchar, -- description
+ char, -- site_wide_p
+ timestamp with time zone, -- creation_date
+ integer, -- creation_user
+ varchar, -- creation_ip
+ integer -- context_id
+)
+returns integer as '
+declare
+ p_tree_id alias for $1;
+ p_locale alias for $2;
+ p_tree_name alias for $3;
+ p_description alias for $4;
+ p_site_wide_p alias for $5;
+ p_creation_date alias for $6;
+ p_creation_user alias for $7;
+ p_creation_ip alias for $8;
+ p_context_id alias for $9;
+
+ v_tree_id integer;
+begin
+ v_tree_id := acs_object__new (
+ p_tree_id, -- object_id
+ ''category_tree'', -- object_type
+ p_creation_date, -- creation_date
+ p_creation_user, -- creation_user
+ p_creation_ip, -- creation_ip
+ p_context_id, -- context_id
+ p_tree_name, -- title
+ null -- package_id
+ );
+
+ insert into category_trees
+ (tree_id, site_wide_p)
+ values
+ (v_tree_id, p_site_wide_p);
+
+ perform acs_permission__grant_permission (
+ v_tree_id, -- object_id
+ p_creation_user, -- grantee_id
+ ''category_tree_read'' -- privilege
+ );
+ perform acs_permission__grant_permission (
+ v_tree_id, -- object_id
+ p_creation_user, -- grantee_id
+ ''category_tree_write'' -- privilege
+ );
+ perform acs_permission__grant_permission (
+ v_tree_id, -- object_id
+ p_creation_user, -- grantee_id
+ ''category_tree_grant_permissions'' -- privilege
+ );
+
+ insert into category_tree_translations
+ (tree_id, locale, name, description)
+ values
+ (v_tree_id, p_locale, p_tree_name, p_description);
+
+ return v_tree_id;
+end;
+' language 'plpgsql';
+