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]