Index: openacs-4/packages/xowiki/tcl/includelet-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/includelet-procs.tcl,v diff -u -r1.106 -r1.107 --- openacs-4/packages/xowiki/tcl/includelet-procs.tcl 11 Apr 2009 10:17:40 -0000 1.106 +++ openacs-4/packages/xowiki/tcl/includelet-procs.tcl 11 Apr 2009 12:37:17 -0000 1.107 @@ -1685,9 +1685,61 @@ ############################################################################# # includelets based on order # + Class create PageReorderSupport + PageReorderSupport instproc page_reorder_check_allow {allow_reorder} { + if {$allow_reorder ne ""} { + my instvar package_id + set granted [$package_id check_permissions \ + -user_id [[$package_id context] user_id] \ + -package_id $package_id \ + $package_id change-page-order] + #my msg "granted=$granted" + if {$granted} { + set ajaxhelper 0 + ::xowiki::Includelet require_YUI_JS -ajaxhelper $ajaxhelper "utilities/utilities.js" + ::xowiki::Includelet require_YUI_JS -ajaxhelper $ajaxhelper "selector/selector-min.js" + ::xo::Page requireJS "/resources/xowiki/yui-page-order-region.js" + } else { + # the user has not enough permissions, so disallow + set allow_reorder "" + } + } + return $allow_reorder + } + + PageReorderSupport instproc page_reorder_init_vars {-allow_reorder js_ last_level_ ID_ min_level_} { + my upvar $js_ js $last_level_ last_level $ID_ ID $min_level_ min_level + set js "YAHOO.xo_page_order_region.DDApp.package_url = '[[my package_id] package_url]';\n" + set last_level 0 + set ID [my js_name] + if {[string is integer -strict $allow_reorder]} { + set min_level $allow_reorder + } else { + set min_level 1 + } + } + PageReorderSupport instproc page_reorder_open_ul {-min_level -ID -prefix_js l} { + set l1 [expr {$l + 2}] + set id ${ID}__l${l1}_${prefix_js} + set css_class [expr {$l1 >= $min_level ? "page_order_region" : "page_order_region_no_target"}] + return "