Index: openacs-4/packages/new-portal/new-portal.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/new-portal/new-portal.info,v
diff -u -N -r1.29.2.3 -r1.29.2.4
--- openacs-4/packages/new-portal/new-portal.info 12 Mar 2007 03:00:13 -0000 1.29.2.3
+++ openacs-4/packages/new-portal/new-portal.info 29 Mar 2007 00:43:37 -0000 1.29.2.4
@@ -8,14 +8,14 @@
t
portal
-
+
OpenACS
Portals.
2006-12-31
OpenACS
New Portal Package aka NPP. Portals are used to aggregate content from different sources within a single page. Props to Ian Baker for "Portal".
-
+
Index: openacs-4/packages/new-portal/sql/oracle/api-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/new-portal/sql/oracle/api-create.sql,v
diff -u -N -r1.42.2.1 -r1.42.2.2
--- openacs-4/packages/new-portal/sql/oracle/api-create.sql 12 Mar 2007 03:00:13 -0000 1.42.2.1
+++ openacs-4/packages/new-portal/sql/oracle/api-create.sql 29 Mar 2007 00:43:38 -0000 1.42.2.2
@@ -29,6 +29,7 @@
function new (
page_id in portal_pages.page_id%TYPE default null,
pretty_name in portal_pages.pretty_name%TYPE default 'Untitled Page',
+ accesskey in portal_pages.accesskey%TYPE default null,
portal_id in portal_pages.portal_id%TYPE,
layout_id in portal_pages.layout_id%TYPE default null,
hidden_p in portal_pages.hidden_p%TYPE default 'f',
@@ -53,6 +54,7 @@
function new (
page_id in portal_pages.page_id%TYPE default null,
pretty_name in portal_pages.pretty_name%TYPE default 'Untitled Page',
+ accesskey in portal_pages.accesskey%TYPE default null,
portal_id in portal_pages.portal_id%TYPE,
layout_id in portal_pages.layout_id%TYPE default null,
hidden_p in portal_pages.hidden_p%TYPE default 'f',
@@ -90,9 +92,9 @@
where portal_id = portal_page.new.portal_id;
insert into portal_pages
- (page_id, pretty_name, portal_id, layout_id, sort_key, hidden_p)
+ (page_id, pretty_name, accesskey, portal_id, layout_id, sort_key, hidden_p)
values
- (v_page_id, pretty_name, portal_id, v_layout_id, v_sort_key, hidden_p);
+ (v_page_id, pretty_name, accesskey, portal_id, v_layout_id, v_sort_key, hidden_p);
return v_page_id;
Index: openacs-4/packages/new-portal/sql/oracle/portal-core-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/new-portal/sql/oracle/portal-core-create.sql,v
diff -u -N -r1.46.2.1 -r1.46.2.2
--- openacs-4/packages/new-portal/sql/oracle/portal-core-create.sql 12 Mar 2007 03:00:13 -0000 1.46.2.1
+++ openacs-4/packages/new-portal/sql/oracle/portal-core-create.sql 29 Mar 2007 00:43:38 -0000 1.46.2.2
@@ -169,6 +169,8 @@
default 'Untitled Page'
constraint portal_pages_pretty_name_nn
not null,
+ accesskey char(1)
+ default null,
portal_id constraint portal_pages_portal_id_fk
references portals (portal_id)
constraint portal_pages_portal_id_nn
Index: openacs-4/packages/new-portal/sql/oracle/upgrade/upgrade-2.3.0d3-2.3.0d4.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/new-portal/sql/oracle/upgrade/upgrade-2.3.0d3-2.3.0d4.sql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/new-portal/sql/oracle/upgrade/upgrade-2.3.0d3-2.3.0d4.sql 29 Mar 2007 00:43:38 -0000 1.1.2.1
@@ -0,0 +1,132 @@
+alter table add accesskey char(1) default null;
+
+create or replace package portal_page
+as
+
+ function new (
+ page_id in portal_pages.page_id%TYPE default null,
+ pretty_name in portal_pages.pretty_name%TYPE default 'Untitled Page',
+ accesskey in portal_pages.accesskey%TYPE default null,
+ portal_id in portal_pages.portal_id%TYPE,
+ layout_id in portal_pages.layout_id%TYPE default null,
+ hidden_p in portal_pages.hidden_p%TYPE default 'f',
+ object_type in acs_object_types.object_type%TYPE default 'portal_page',
+ 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,
+ context_id in acs_objects.context_id%TYPE default null
+ ) return portal_pages.page_id%TYPE;
+
+ procedure del (
+ page_id in portal_pages.page_id%TYPE
+ );
+
+end portal_page;
+/
+show errors
+
+create or replace package body portal_page
+as
+
+ function new (
+ page_id in portal_pages.page_id%TYPE default null,
+ pretty_name in portal_pages.pretty_name%TYPE default 'Untitled Page',
+ accesskey in portal_pages.accesskey%TYPE default null,
+ portal_id in portal_pages.portal_id%TYPE,
+ layout_id in portal_pages.layout_id%TYPE default null,
+ hidden_p in portal_pages.hidden_p%TYPE default 'f',
+ object_type in acs_object_types.object_type%TYPE default 'portal_page',
+ 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,
+ context_id in acs_objects.context_id%TYPE default null
+ ) return portal_pages.page_id%TYPE
+ is
+ v_page_id portal_pages.page_id%TYPE;
+ v_layout_id portal_pages.layout_id%TYPE;
+ v_sort_key portal_pages.sort_key%TYPE;
+ begin
+
+ v_page_id := acs_object.new(
+ object_type => object_type,
+ creation_date => creation_date,
+ creation_user => creation_user,
+ creation_ip => creation_ip,
+ context_id => context_id
+ );
+
+ if layout_id is null then
+ select min(layout_id)
+ into v_layout_id
+ from portal_layouts;
+ else
+ v_layout_id := layout_id;
+ end if;
+
+ select nvl(max(sort_key) + 1, 0)
+ into v_sort_key
+ from portal_pages
+ where portal_id = portal_page.new.portal_id;
+
+ insert into portal_pages
+ (page_id, pretty_name, accesskey, portal_id, layout_id, sort_key, hidden_p)
+ values
+ (v_page_id, pretty_name, accesskey, portal_id, v_layout_id, v_sort_key, hidden_p);
+
+ return v_page_id;
+
+ end new;
+
+ procedure del (
+ page_id in portal_pages.page_id%TYPE
+ )
+ is
+ v_portal_id portal_pages.portal_id%TYPE;
+ v_sort_key portal_pages.sort_key%TYPE;
+ v_curr_sort_key portal_pages.sort_key%TYPE;
+ v_page_count_from_0 integer;
+ begin
+
+ -- IMPORTANT: sort keys MUST be an unbroken sequence from 0 to max(sort_key)
+
+ select portal_id, sort_key
+ into v_portal_id, v_sort_key
+ from portal_pages
+ where page_id = portal_page.del.page_id;
+
+ select (count(*) - 1)
+ into v_page_count_from_0
+ from portal_pages
+ where portal_id = v_portal_id;
+
+ for i in 0 .. v_page_count_from_0 loop
+
+ if i = v_sort_key then
+
+ delete
+ from portal_pages
+ where page_id = portal_page.del.page_id;
+
+ elsif i > v_sort_key then
+
+ update portal_pages
+ set sort_key = -1
+ where sort_key = i
+ and page_id = portal_page.del.page_id;
+
+ update portal_pages
+ set sort_key = i - 1
+ where sort_key = -1
+ and page_id = portal_page.del.page_id;
+
+ end if;
+
+ end loop;
+
+ acs_object.del(page_id);
+
+ end del;
+
+end portal_page;
+/
+show errors
Index: openacs-4/packages/new-portal/sql/postgresql/api-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/new-portal/sql/postgresql/api-create.sql,v
diff -u -N -r1.14.2.1 -r1.14.2.2
--- openacs-4/packages/new-portal/sql/postgresql/api-create.sql 12 Mar 2007 03:00:13 -0000 1.14.2.1
+++ openacs-4/packages/new-portal/sql/postgresql/api-create.sql 29 Mar 2007 00:43:38 -0000 1.14.2.2
@@ -23,21 +23,22 @@
-- @version $Id$
--
-select define_function_args('portal_page__new','page_id,pretty_name,portal_id,layout_id,hidden_p,object_type;portal_page,creation_date,creation_user,creation_ip,context_id');
+select define_function_args('portal_page__new','page_id,pretty_name,accesskey,portal_id,layout_id,hidden_p,object_type;portal_page,creation_date,creation_user,creation_ip,context_id');
-create function portal_page__new (integer,varchar,integer,integer,char,varchar,timestamptz,integer,varchar,integer)
+create function portal_page__new (integer,char,varchar,integer,integer,char,varchar,timestamptz,integer,varchar,integer)
returns integer as '
declare
p_page_id alias for $1;
p_pretty_name alias for $2;
- p_portal_id alias for $3;
- p_layout_id alias for $4;
- p_hidden_p alias for $5;
- p_object_type alias for $6;
- p_creation_date alias for $7;
- p_creation_user alias for $8;
- p_creation_ip alias for $9;
- p_context_id alias for $10;
+ p_accesskey alias for $3;
+ p_portal_id alias for $4;
+ p_layout_id alias for $5;
+ p_hidden_p alias for $6;
+ p_object_type alias for $7;
+ p_creation_date alias for $8;
+ p_creation_user alias for $9;
+ p_creation_ip alias for $10;
+ p_context_id alias for $11;
v_page_id portal_pages.page_id%TYPE;
v_layout_id portal_pages.layout_id%TYPE;
v_sort_key portal_pages.sort_key%TYPE;
@@ -67,9 +68,9 @@
where portal_id = p_portal_id;
insert into portal_pages
- (page_id, pretty_name, portal_id, layout_id, sort_key, hidden_p)
+ (page_id, pretty_name, accesskey, portal_id, layout_id, sort_key, hidden_p)
values
- (v_page_id, p_pretty_name, p_portal_id, v_layout_id, v_sort_key, p_hidden_p);
+ (v_page_id, p_pretty_name, p_accesskey, p_portal_id, v_layout_id, v_sort_key, p_hidden_p);
return v_page_id;
Index: openacs-4/packages/new-portal/sql/postgresql/portal-core-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/new-portal/sql/postgresql/portal-core-create.sql,v
diff -u -N -r1.5.2.1 -r1.5.2.2
--- openacs-4/packages/new-portal/sql/postgresql/portal-core-create.sql 12 Mar 2007 03:00:14 -0000 1.5.2.1
+++ openacs-4/packages/new-portal/sql/postgresql/portal-core-create.sql 29 Mar 2007 00:43:38 -0000 1.5.2.2
@@ -173,6 +173,8 @@
default 'Untitled Page'
constraint portal_pages_pretty_name_nn
not null,
+ accesskey char(1)
+ default null,
portal_id integer
constraint portal_pages_portal_id_fk
references portals (portal_id)
Index: openacs-4/packages/new-portal/sql/postgresql/upgrade/upgrade-2.3.0d3-2.3.0d4.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/new-portal/sql/postgresql/upgrade/upgrade-2.3.0d3-2.3.0d4.sql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/new-portal/sql/postgresql/upgrade/upgrade-2.3.0d3-2.3.0d4.sql 29 Mar 2007 00:43:38 -0000 1.1.2.1
@@ -0,0 +1,56 @@
+alter table portal_pages add accesskey char(1) default null;
+
+select define_function_args('portal_page__new','page_id,pretty_name,accesskey,portal_id,layout_id,hidden_p,object_type;portal_page,creation_date,creation_user,creation_ip,context_id');
+
+drop function portal_page__new (integer,varchar,integer,integer,char,varchar,timestamptz,integer,varchar,integer);
+
+create or replace function portal_page__new (integer,char,varchar,integer,integer,char,varchar,timestamptz,integer,varchar,integer)
+returns integer as '
+declare
+ p_page_id alias for $1;
+ p_pretty_name alias for $2;
+ p_accesskey alias for $3;
+ p_portal_id alias for $4;
+ p_layout_id alias for $5;
+ p_hidden_p alias for $6;
+ p_object_type alias for $7;
+ p_creation_date alias for $8;
+ p_creation_user alias for $9;
+ p_creation_ip alias for $10;
+ p_context_id alias for $11;
+ v_page_id portal_pages.page_id%TYPE;
+ v_layout_id portal_pages.layout_id%TYPE;
+ v_sort_key portal_pages.sort_key%TYPE;
+begin
+
+ v_page_id := acs_object__new(
+ null,
+ p_object_type,
+ p_creation_date,
+ p_creation_user,
+ p_creation_ip,
+ p_context_id,
+ ''t''
+ );
+
+ if p_layout_id is null then
+ select min(layout_id)
+ into v_layout_id
+ from portal_layouts;
+ else
+ v_layout_id := p_layout_id;
+ end if;
+
+ select coalesce(max(sort_key) + 1, 0)
+ into v_sort_key
+ from portal_pages
+ where portal_id = p_portal_id;
+
+ insert into portal_pages
+ (page_id, pretty_name, accesskey, portal_id, layout_id, sort_key, hidden_p)
+ values
+ (v_page_id, p_pretty_name, p_accesskey, p_portal_id, v_layout_id, v_sort_key, p_hidden_p);
+
+ return v_page_id;
+
+end;' language 'plpgsql';
Index: openacs-4/packages/new-portal/tcl/portal-procs-oracle.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/new-portal/tcl/portal-procs-oracle.xql,v
diff -u -N -r1.21 -r1.21.12.1
--- openacs-4/packages/new-portal/tcl/portal-procs-oracle.xql 30 Sep 2003 13:11:41 -0000 1.21
+++ openacs-4/packages/new-portal/tcl/portal-procs-oracle.xql 29 Mar 2007 00:43:38 -0000 1.21.12.1
@@ -122,6 +122,7 @@
begin
:1 := portal_page.new(
pretty_name => :pretty_name,
+ access_key => :access_key,
portal_id => :portal_id,
layout_id => :layout_id
);
Index: openacs-4/packages/new-portal/tcl/portal-procs-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/new-portal/tcl/portal-procs-postgresql.xql,v
diff -u -N -r1.10 -r1.10.2.1
--- openacs-4/packages/new-portal/tcl/portal-procs-postgresql.xql 8 Aug 2006 21:26:59 -0000 1.10
+++ openacs-4/packages/new-portal/tcl/portal-procs-postgresql.xql 29 Mar 2007 00:43:38 -0000 1.10.2.1
@@ -123,6 +123,7 @@
select portal_page__new(
null,
:pretty_name,
+ :accesskey,
:portal_id,
:layout_id,
'f',
Index: openacs-4/packages/new-portal/tcl/portal-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/new-portal/tcl/portal-procs.tcl,v
diff -u -N -r1.179.2.13 -r1.179.2.14
--- openacs-4/packages/new-portal/tcl/portal-procs.tcl 16 Mar 2007 11:24:40 -0000 1.179.2.13
+++ openacs-4/packages/new-portal/tcl/portal-procs.tcl 29 Mar 2007 00:43:38 -0000 1.179.2.14
@@ -150,16 +150,19 @@
if {![empty_string_p $csv_list]} {
set page_name_and_layout_list [split [string trimright $csv_list ";"] ";"]
set page_name_list [list]
+ set page_accesskey_list [list]
set layout_name_list [list]
# seperate name and layout
foreach item $page_name_and_layout_list {
lappend page_name_list [lindex [split $item ","] 0]
lappend layout_name_list [lindex [split $item ","] 1]
+ lappend page_accesskey_list [lindex [split $item ","] 2]
}
}
set default_page_name [lindex $page_name_list 0]
+ set default_access_key [lindex $page_accesskey_list 0]
set layout_name [lindex $layout_name_list 0]
# get the default layout_id - simple2
@@ -190,6 +193,7 @@
for {set i 1} {$i < [expr [llength $page_name_list]]} {incr i} {
portal::page_create -portal_id $portal_id \
-pretty_name [lindex $page_name_list $i] \
+ -access_key [lindex $page_accesskey_list $i] \
-layout_name [lindex $layout_name_list $i]
}
}
@@ -1070,6 +1074,7 @@
{-layout_name ""}
{-pretty_name:required}
{-portal_id:required}
+ {-access_key ""}
} {
Appends a new blank page for the given portal_id.