Index: openacs-4/packages/lorsm/www/admin/reorder-items.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/admin/reorder-items.xql,v diff -u -r1.2 -r1.3 --- openacs-4/packages/lorsm/www/admin/reorder-items.xql 15 May 2007 20:14:43 -0000 1.2 +++ openacs-4/packages/lorsm/www/admin/reorder-items.xql 12 Dec 2008 14:25:36 -0000 1.3 @@ -1,40 +1,63 @@ - - - select - man_id - from - ims_cp_organizations o, ims_cp_items i - where - ims_item_id=:item_id - and o.org_id=i.org_id - - + + + select man_id + from ims_cp_organizations o, ims_cp_items i + where ims_item_id=:item_id + and o.org_id=i.org_id + + - - - select - sort_order, parent_item - from - ims_cp_items - where - ims_item_id = :ims_item_id - - + + + select sort_order, parent_item + from ims_cp_items + where ims_item_id = :ims_item_id + + - - - select sort_order from ims_cp_items where parent_item=:parent_item and sort_order > :sort_order order by sort_order limit 1 - - + + + select sort_order + from ims_cp_items + where parent_item=:parent_item + and sort_order > :sort_order + order by sort_order + limit 1 + + - - - select sort_order from ims_cp_items where parent_item=:parent_item and sort_order < :sort_order order by sort_order desc limit 1 - - + + + select sort_order + from ims_cp_items + where parent_item=:parent_item + and sort_order < :sort_order + order by sort_order desc + limit 1 + + + + + select ims_item_id + from ims_cp_items + where parent_item=:parent_item for update + + + + + + update ims_cp_items + set sort_order = + ( case when sort_order = :sort_order :: integer then :next_sort_order :: integer + when sort_order = :next_sort_order ::integer then :sort_order end ) + where parent_item=:parent_item + and sort_order in (:sort_order, :next_sort_order) + + +