Index: openacs-4/packages/xotcl-core/xotcl-core.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xotcl-core/xotcl-core.info,v diff -u -r1.46 -r1.47 --- openacs-4/packages/xotcl-core/xotcl-core.info 10 Mar 2008 13:15:01 -0000 1.46 +++ openacs-4/packages/xotcl-core/xotcl-core.info 14 Mar 2008 20:04:57 -0000 1.47 @@ -8,10 +8,10 @@ t xotcl - + Gustaf Neumann XOTcl library functionality (e.g. thread handling, online documentation, Generic Form and List Classes) - 2008-03-10 + 2008-03-14 Gustaf Neumann, WU Wien This component contains some core functionality for OACS applications using XOTcl. It includes @@ -41,7 +41,7 @@ BSD-Style 0 - + Index: openacs-4/packages/xotcl-core/tcl/05-db-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xotcl-core/tcl/05-db-procs.tcl,v diff -u -r1.57 -r1.58 --- openacs-4/packages/xotcl-core/tcl/05-db-procs.tcl 14 Mar 2008 10:29:05 -0000 1.57 +++ openacs-4/packages/xotcl-core/tcl/05-db-procs.tcl 14 Mar 2008 20:04:57 -0000 1.58 @@ -99,6 +99,7 @@ set uniquepart [expr {$unique ? "UNIQUE" : ""}] set name [::xo::db::mk_sql_constraint_name $table $colpart $suffix] if {![db_0or1row [my qn ""] [subst [my set [db_driverkey ""]_index_exists]]]} { + if {[db_driverkey ""] eq "oracle"} {set using ""} set using [expr {$using ne "" ? "using $using" : ""}] db_dml [my qn create-index-$name] \ "create $uniquepart index $name ON $table $using ($col)" @@ -211,6 +212,7 @@ string { set type text } long_text { set type text } date { set type timestampz } + ltree { set type [expr {[::xo::db::has_ltree] ? "ltree" : "text" }] } } return $type } @@ -257,6 +259,7 @@ text { set type varchar2(4000) } long_text { set type clob } boolean { set type char(1) } + ltree { set type varchar2(1000) } } return $type } Fisheye: Tag 1.5 refers to a dead (removed) revision in file `openacs-4/packages/xotcl-core/tcl/10-recreation-procs.tcl-old'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/xowiki/xowiki.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/xowiki.info,v diff -u -r1.76 -r1.77 --- openacs-4/packages/xowiki/xowiki.info 10 Mar 2008 13:16:02 -0000 1.76 +++ openacs-4/packages/xowiki/xowiki.info 14 Mar 2008 20:04:56 -0000 1.77 @@ -8,11 +8,11 @@ f xowiki - + Gustaf Neumann A more generic xotcl-based wikis example with object types and subtypes based on the content repository (with category support) - 2008-03-10 + 2008-03-14 Gustaf Neumann, WU Wien <pre> XoWiki is a Wiki implementation for OpenACS in XOTcl. Instead of @@ -54,12 +54,12 @@ BSD-Style 0 - + - + 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.17 -r1.18 --- openacs-4/packages/xowiki/tcl/includelet-procs.tcl 14 Mar 2008 13:17:37 -0000 1.17 +++ openacs-4/packages/xowiki/tcl/includelet-procs.tcl 14 Mar 2008 20:04:56 -0000 1.18 @@ -558,17 +558,7 @@ } else { foreach {orderby direction} [split $order_items_by ,] break ;# e.g. "title,asc" set increasing [expr {$direction ne "desc"}] - - # - # If we have ltree, we query the order_column from the database, - # otherwise we don't retrieve it, but set the Tcl variable page_order empty. - # - if {[::xo::db::has_ltree]} { - set order_column ", p.page_order" - } else { - set order_column "" - set page_order "" - } + set order_column ", p.page_order" db_foreach [my qn get_pages] \ "select ci.item_id, ci.name, ci.content_type, r.title, category_id $order_column from $sql" { Index: openacs-4/packages/xowiki/tcl/package-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/package-procs.tcl,v diff -u -r1.112 -r1.113 --- openacs-4/packages/xowiki/tcl/package-procs.tcl 10 Mar 2008 13:16:02 -0000 1.112 +++ openacs-4/packages/xowiki/tcl/package-procs.tcl 14 Mar 2008 20:04:56 -0000 1.113 @@ -169,7 +169,7 @@ } Package instproc show_page_order {} { - return [expr {[::xo::db::has_ltree] && [my get_parameter display_page_order 1]}] + return [my get_parameter display_page_order 1] } # Index: openacs-4/packages/xowiki/tcl/xowiki-callback-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/xowiki-callback-procs.tcl,v diff -u -r1.39 -r1.40 --- openacs-4/packages/xowiki/tcl/xowiki-callback-procs.tcl 28 Feb 2008 09:05:41 -0000 1.39 +++ openacs-4/packages/xowiki/tcl/xowiki-callback-procs.tcl 14 Mar 2008 20:04:56 -0000 1.40 @@ -389,6 +389,12 @@ } copy_parameter top_portlet top_includelet } + set v 0.83 + if {[apm_version_names_compare $from_version_name $v] == -1 && + [apm_version_names_compare $to_version_name $v] > -1} { + ns_log notice "-- upgrading to $v" + ::xowiki::add_ltree_order_column + } } proc copy_parameter {from to} { @@ -450,24 +456,20 @@ } ad_proc add_ltree_order_column {} { - add ltree order column, if ltree is configured + add page_order of type ltree, when ltree is configured (otherwise string) } { - if {[::xo::db::has_ltree]} { - # catch sql statement to allow multiple runs - catch {::xo::db::sql::content_type create_attribute \ - -content_type ::xowiki::Page \ - -attribute_name page_order \ - -datatype text \ - -pretty_name Order \ - -column_spec ltree} - - ::xo::db::require index -table xowiki_page -col page_order -using gist - set result 1 - } else { - set result 0 - } + # catch sql statement to allow multiple runs + catch {::xo::db::sql::content_type create_attribute \ + -content_type ::xowiki::Page \ + -attribute_name page_order \ + -datatype text \ + -pretty_name Order \ + -column_spec [::xo::db::sql map_datatype ltree]} + + ::xo::db::require index -table xowiki_page -col page_order \ + -using [expr {[::xo::db::has_ltree] ? "gist" : ""}] ::xowiki::update_views - return $result + return 1 } proc unmounted_instances {} { Index: openacs-4/packages/xowiki/tcl/xowiki-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/xowiki-procs.tcl,v diff -u -r1.212 -r1.213 --- openacs-4/packages/xowiki/tcl/xowiki-procs.tcl 14 Mar 2008 13:17:37 -0000 1.212 +++ openacs-4/packages/xowiki/tcl/xowiki-procs.tcl 14 Mar 2008 20:04:56 -0000 1.213 @@ -15,10 +15,8 @@ -table_name "xowiki_page" -id_column "page_id" \ -mime_type text/html \ -slots { - if {[::xo::db::has_ltree]} { - ::xo::db::CrAttribute create page_order \ - -sqltype ltree -validator page_order -default "" - } + ::xo::db::CrAttribute create page_order \ + -sqltype ltree -validator page_order -default "" ::xo::db::CrAttribute create creator # The following slots are defined elsewhere, but we override # some default values, such as pretty_names, required state, @@ -175,12 +173,9 @@ time timestamp" ::xo::db::require index -table xowiki_tags -col user_id,item_id ::xo::db::require index -table xowiki_tags -col tag,package_id + ::xo::db::require index -table xowiki_page -col page_order \ + -using [expr {[::xo::db::has_ltree] ? "gist" : ""}] - - if {[::xo::db::has_ltree]} { - ::xo::db::require index -table xowiki_page -col page_order -using gist - } - set sortkeys [expr {[db_driverkey ""] eq "oracle" ? "" : ", ci.tree_sortkey, ci.max_child_sortkey"}] ::xo::db::require view xowiki_page_live_revision \ "select p.*, cr.*,ci.parent_id, ci.name, ci.locale, ci.live_revision, \ @@ -256,12 +251,8 @@ my set parent_id $parent_id my set package_id $package_id my set creation_user $creation_user - # - # if we import from an instance without page_orders into an instance - # with page_orders, we need default values - if {[::xo::db::has_ltree] && ![my exists page_order]} { - my set page_order "" - } + # if we import from an old database without page_order, take care about this + if {![my exists page_order]} {my set page_order ""} # in the general case, no more actions required } Index: openacs-4/packages/xowiki/www/admin/list.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/admin/list.tcl,v diff -u -r1.20 -r1.21 --- openacs-4/packages/xowiki/www/admin/list.tcl 10 Mar 2008 13:16:02 -0000 1.20 +++ openacs-4/packages/xowiki/www/admin/list.tcl 14 Mar 2008 20:04:57 -0000 1.21 @@ -72,9 +72,7 @@ -alt "publish status" -label [_ xowiki.publish_status] -html {style "padding: 2px;"} } Field syndicated -label "RSS" -html {style "padding: 2px;"} - if {[::xo::db::has_ltree]} { - AnchorField page_order -label [_ xowiki.order] -orderby page_order -html {style "padding: 2px;"} - } + AnchorField page_order -label [_ xowiki.Page-page_order] -orderby page_order -html {style "padding: 2px;"} AnchorField name -label [_ xowiki.Page-name] -orderby name -html {style "padding: 2px;"} AnchorField title -label [_ xowiki.Page-title] -orderby title Field object_type -label [_ xowiki.page_type] -orderby object_type -html {style "padding: 2px;"} @@ -92,13 +90,8 @@ # for content_length, we need cr_revision and cannot use the base table set attributes [list revision_id content_length creation_user title \ - "to_char(last_modified,'YYYY-MM-DD HH24:MI:SS') as last_modified"] + "to_char(last_modified,'YYYY-MM-DD HH24:MI:SS') as last_modified" page_order] - -if {[::xo::db::has_ltree]} { - lappend attributes page_order -} - set folder_id [::$package_id folder_id] foreach i [db_list get_syndicated { select object_id from syndication s, cr_items ci @@ -145,9 +138,7 @@ [export_vars -base [$package_id package_url]admin/set-publish-state \ {state revision_id return_url}] } - if {[::xo::db::has_ltree]} { - [t1 last_child] set page_order $page_order - } + [t1 last_child] set page_order $page_order } set t1 [t1 asHTML]