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.35 -r1.36 --- openacs-4/packages/new-portal/sql/oracle/portal-core-create.sql 25 Jan 2002 20:04:45 -0000 1.35 +++ openacs-4/packages/new-portal/sql/oracle/portal-core-create.sql 18 Feb 2002 19:54:52 -0000 1.36 @@ -41,7 +41,8 @@ constraint p_datasources_datasource_id_pk primary key, description varchar(200), - name varchar(200) not null + name varchar(200) not null, + pretty_name varchar(200) not null ); 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.8 -r1.9 --- openacs-4/packages/new-portal/tcl/portal-procs-oracle.xql 28 Jan 2002 17:51:46 -0000 1.8 +++ openacs-4/packages/new-portal/tcl/portal-procs-oracle.xql 18 Feb 2002 19:54:52 -0000 1.9 @@ -57,9 +57,8 @@ set region = :region, page_id = :page_id, sort_key = (select nvl((select max(pem.sort_key) + 1 - from portal_element_map pem, portal_pages pp - where pp.portal_id = :portal_id - and pp.page_id = pem.page_id + from portal_element_map pem + where pem.page_id = :page_id and region = :region), 1) from dual) @@ -90,18 +89,26 @@ (:new_element_id, :ds_name, :ds_name, :page_id, :ds_id, :region, nvl((select max(sort_key) + 1 from portal_element_map - where region = :region), 1)) + where region = :region + and page_id = :page_id), 1)) + + + select page_id as my_page_id + from portal_element_map + where element_id = :element_id + + + update portal_element_map set region = :target_region, sort_key = (select nvl((select max(pem.sort_key) + 1 - from portal_element_map pem, portal_pages pp - where pp.portal_id = :portal_id - and pp.page_id = pem.page_id + from portal_element_map pem + where page_id = :my_page_id and region = :target_region), 1) from dual) @@ -125,11 +132,5 @@ - - - - - - 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.112 -r1.113 --- openacs-4/packages/new-portal/tcl/portal-procs.tcl 18 Feb 2002 19:51:23 -0000 1.112 +++ openacs-4/packages/new-portal/tcl/portal-procs.tcl 18 Feb 2002 19:54:52 -0000 1.113 @@ -454,7 +454,6 @@ "swap" { portal::swap_element $portal_id \ [ns_set get $form element_id] \ - [ns_set get $form sort_key] \ [ns_set get $form region] \ [ns_set get $form direction] } @@ -878,22 +877,23 @@ ad_proc -private swap_element { portal_id element_id - sort_key region dir } { Moves a PE in the up or down by swapping its sk with its neighbor's @param portal_id @param element_id - @param sort_key of the element to be moved @param region @param dir either up or down } { ad_require_permission $portal_id portal_read_portal ad_require_permission $portal_id portal_edit_portal + # get this element's sk + db_1row get_my_sort_key_and_page_id {} + if { $dir == "up" } { # get the sort_key and id of the element above if {[db_0or1row get_prev_sort_key {}] == 0} { @@ -952,7 +952,9 @@ ad_return_complaint 1 "portal::move_element Bad direction!" } - # just move the element to the bottom of the region + # get this element's page_id + db_1row get_my_page_id {} + db_dml update {} } Index: openacs-4/packages/new-portal/tcl/portal-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/new-portal/tcl/portal-procs.xql,v diff -u -N -r1.16 -r1.17 --- openacs-4/packages/new-portal/tcl/portal-procs.xql 11 Feb 2002 06:05:43 -0000 1.16 +++ openacs-4/packages/new-portal/tcl/portal-procs.xql 18 Feb 2002 19:54:52 -0000 1.17 @@ -300,15 +300,24 @@ + + + select sort_key as my_sort_key, page_id as my_page_id + from portal_element_map + where element_id = :element_id + + + select sort_key as other_sort_key, element_id as other_element_id from (select pem.sort_key, element_id from portal_element_map pem, portal_pages pp where pp.portal_id = :portal_id + and pem.page_id = :my_page_id and pp.page_id = pem.page_id and region = :region - and pem.sort_key < :sort_key + and pem.sort_key < :my_sort_key and state != 'pinned' order by pem.sort_key desc) where rownum = 1 @@ -320,9 +329,10 @@ from (select pem.sort_key, element_id from portal_element_map pem, portal_pages pp where pp.portal_id = :portal_id + and pem.page_id = :my_page_id and pem.page_id = pp.page_id and region = :region - and pem.sort_key > :sort_key + and pem.sort_key > :my_sort_key and state != 'pinned' order by pem.sort_key) where rownum = 1 @@ -337,7 +347,7 @@ - update portal_element_map set sort_key = :sort_key + update portal_element_map set sort_key = :my_sort_key where element_id = :other_element_id Index: openacs-4/packages/new-portal/www/place-element.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/new-portal/www/place-element.adp,v diff -u -N -r1.27 -r1.28 --- openacs-4/packages/new-portal/www/place-element.adp 28 Jan 2002 17:51:46 -0000 1.27 +++ openacs-4/packages/new-portal/www/place-element.adp 18 Feb 2002 19:54:52 -0000 1.28 @@ -13,10 +13,10 @@ - move up + move up - move down + move down