Index: openacs-4/packages/xowiki/xowiki.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/xowiki.info,v
diff -u -N -r1.54 -r1.55
--- openacs-4/packages/xowiki/xowiki.info 14 Jul 2007 18:14:26 -0000 1.54
+++ openacs-4/packages/xowiki/xowiki.info 19 Jul 2007 21:20:12 -0000 1.55
@@ -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)
- 2007-07-14
+ 2007-07-19
<pre>
XoWiki is a wiki implementation for OpenACS in XOTcl. Instead of
trying to implement the full set of wiki markup commands of systems
@@ -131,16 +131,16 @@
BSD-Style
0
-
+
-
+
Index: openacs-4/packages/xowiki/catalog/xowiki.de_DE.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/catalog/xowiki.de_DE.ISO-8859-1.xml,v
diff -u -N -r1.17 -r1.18
--- openacs-4/packages/xowiki/catalog/xowiki.de_DE.ISO-8859-1.xml 15 Jul 2007 23:46:35 -0000 1.17
+++ openacs-4/packages/xowiki/catalog/xowiki.de_DE.ISO-8859-1.xml 19 Jul 2007 21:20:12 -0000 1.18
@@ -1,16 +1,16 @@
-
+
Verwalten
Zur�ck
+ Neuen Eintrag vom Typ %type% erstellen
Erzeuge diese Seite in der folgenden Sprache:
L�schen
Bearbeiten
bearbeiten
Formular
Formular Einschr�nkungen
Index
- Neue Seite
Verst�ndigungen
Creator
Kurzbeschreibung
Index: openacs-4/packages/xowiki/catalog/xowiki.en_US.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/catalog/xowiki.en_US.ISO-8859-1.xml,v
diff -u -N -r1.23 -r1.24
--- openacs-4/packages/xowiki/catalog/xowiki.en_US.ISO-8859-1.xml 17 Jul 2007 00:16:19 -0000 1.23
+++ openacs-4/packages/xowiki/catalog/xowiki.en_US.ISO-8859-1.xml 19 Jul 2007 21:20:12 -0000 1.24
@@ -1,8 +1,9 @@
-
+
Admin
Back
+ Create new entry of type %type%
Create this page in a different language
Delete
Edit
@@ -31,7 +32,7 @@
OK
%errorMsg%
Index
- New Page
+ New Page
Notifications
Invalid numeric value
Creator
Index: openacs-4/packages/xowiki/catalog/xowiki.es_ES.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/catalog/xowiki.es_ES.ISO-8859-1.xml,v
diff -u -N -r1.4 -r1.5
--- openacs-4/packages/xowiki/catalog/xowiki.es_ES.ISO-8859-1.xml 15 Jul 2007 23:46:35 -0000 1.4
+++ openacs-4/packages/xowiki/catalog/xowiki.es_ES.ISO-8859-1.xml 19 Jul 2007 21:20:12 -0000 1.5
@@ -9,7 +9,7 @@
editar tags
Forme
�ndice
- Nueva P�gina
+ Nueva P�gina
Notificaciones
Autor
Descripci�n
Index: openacs-4/packages/xowiki/tcl/adp-generator-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/adp-generator-procs.tcl,v
diff -u -N -r1.8 -r1.9
--- openacs-4/packages/xowiki/tcl/adp-generator-procs.tcl 23 Apr 2007 11:55:21 -0000 1.8
+++ openacs-4/packages/xowiki/tcl/adp-generator-procs.tcl 19 Jul 2007 21:20:12 -0000 1.9
@@ -67,7 +67,7 @@
return {
#xowiki.edit# ·
#xotcl-core.revisions# ·
-
#xowiki.new# ·
+
#xowiki.new_page# ·
#xowiki.delete# ·
#xowiki.admin# ·
#xowiki.notifications#
Index: openacs-4/packages/xowiki/tcl/xowiki-portlet-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/Attic/xowiki-portlet-procs.tcl,v
diff -u -N -r1.71 -r1.72
--- openacs-4/packages/xowiki/tcl/xowiki-portlet-procs.tcl 19 Jul 2007 09:36:15 -0000 1.71
+++ openacs-4/packages/xowiki/tcl/xowiki-portlet-procs.tcl 19 Jul 2007 21:20:12 -0000 1.72
@@ -74,6 +74,31 @@
return [expr {$user(screen_name) ne "" ? $user(screen_name) : $user(name)}]
}
+
+ ::xowiki::Portlet proc incr_page_order {p} {
+ regexp {^(.*[.]?)([^.])$} $p _ prefix suffix
+ if {[string is integer -strict $suffix]} {
+ incr suffix
+ } elseif {[string is lower -strict $suffix]} {
+ regexp {^(.*)(.)$} $suffix _ before last
+ if {$last eq "z"} {
+ set last "aa"
+ } else {
+ set last [format %c [expr {[scan $last %c] + 1}]]
+ }
+ set suffix $before$last
+ } elseif {[string is upper -strict $suffix]} {
+ regexp {^(.*)(.)$} $suffix _ before last
+ if {$last eq "Z"} {
+ set last "AA"
+ } else {
+ set last [format %c [expr {[scan $last %c] + 1}]]
+ }
+ set suffix $before$last
+ }
+ return $prefix$suffix
+ }
+
::xowiki::Portlet instproc locale_clause {package_id locale} {
set default_locale [$package_id default_locale]
set system_locale ""
@@ -1525,6 +1550,7 @@
{__decoration plain}
{parameter_declaration {
{-category_id}
+ {-menu_buttons edit-item-button}
}}
}
@@ -1573,9 +1599,13 @@
set content [string map [list "\{\{" "\\\{\{"] $content]
}
}
- set menu [$p include_portlet "edit-item-button"]
+ set menu [list]
+ foreach b $menu_buttons {
+ set html [$p include_portlet $b]
+ if {$html ne ""} {lappend menu $html}
+ }
append output "" \
- "$menu
" \
+ "" [join $menu " "] "
" \
"$page_order $title" \
$content
}
@@ -1590,14 +1620,21 @@
{__decoration none}
}
- item-button instproc render_button {-method -src -return_url} {
- my get_parameters
- my instvar __including_page
+ item-button instproc render_button {
+ -page
+ -method
+ -src
+ -alt
+ -title
+ -return_url
+ -page_order
+ } {
set html ""
- set page [expr {[info exists page_id] ? $page_id : $__including_page}]
-
+ set package_id [$page package_id]
set p_link [$package_id pretty_link [$page name]]
- set edit_link [$package_id make_link -link $p_link $page $method return_url]
+ if {![info exists return_url]} {set return_url $p_link}
+ if {![info exists alt]} {set alt $method}
+ set edit_link [$package_id make_link -link $p_link $page $method return_url page_order]
if {$edit_link ne ""} {
set html ""
}
@@ -1608,50 +1645,71 @@
-parameter {
{parameter_declaration {
{-page_id}
- {-title "edit item"}
+ {-title "#xowiki.edit#"}
{-alt "edit"}
}}
}
edit-item-button instproc render {} {
- return [my render_button -method edit -src /resources/acs-subsite/Edit16.gif]
+ my get_parameters
+ my instvar __including_page
+ set page [expr {[info exists page_id] ? $page_id : $__including_page}]
+ if {[$page istype ::xowiki::FormPage]} {
+ set template [$page page_template]
+ set title "$title [$template title] [$page name]"
+ }
+ return [my render_button \
+ -page $page -method edit \
+ -title $title -alt $alt \
+ -return_url [::xo::cc url] \
+ -src /resources/acs-subsite/Edit16.gif]
}
-# {
-# my get_parameters
-# my instvar __including_page
-# set html ""
-# set page [expr {$page_id ? $page_id : $__including_page}]
-# set p_link [$package_id pretty_link [$page name]]
-# set edit_link [$package_id make_link -link $p_link $page edit return_url]
-# if {$edit_link ne ""} {
-# set html ""
-# }
-# return $html
-# }
+ Class create delete-item-button -superclass ::xowiki::portlet::item-button \
+ -parameter {
+ {__decoration none}
+ {parameter_declaration {
+ {-page_id}
+ {-title "#xowiki.delete#"}
+ {-alt "delete"}
+ }}
+ }
- Class create new-item-button -superclass ::xowiki::portlet::item-button \
+ delete-item-button instproc render {} {
+ my get_parameters
+ my instvar __including_page
+ set page [expr {[info exists page_id] ? $page_id : $__including_page}]
+ return [my render_button \
+ -page $page -method delete \
+ -title $title -alt $alt \
+ -return_url [::xo::cc url] \
+ -src /resources/acs-subsite/Delete16.gif]
+ }
+
+ Class create create-item-button -superclass ::xowiki::portlet::item-button \
-parameter {
{__decoration none}
{parameter_declaration {
{-page_id}
- {-title "new item"}
{-alt "new"}
}}
}
-
- new-item-button instproc render {} {
+
+ create-item-button instproc render {} {
my get_parameters
my instvar __including_page
- set html ""
- set page [expr {$page_id ? $page_id : $__including_page}]
-
- set p_link [$package_id pretty_link [$page name]]
- set edit_link [$package_id make_link -link $p_link $page edit return_url]
- if {$edit_link ne ""} {
- set html ""
+ set page [expr {[info exists page_id] ? $page_id : $__including_page}]
+ if {[$page istype ::xowiki::FormPage]} {
+ set template [$page page_template]
+ set page_order [::xowiki::Portlet incr_page_order [$page page_order]]
+ return [my render_button \
+ -page $template -method create-new \
+ -title [_ xowiki.create_new_entry_of_type [list type [$template title]]] \
+ -alt $alt -page_order $page_order \
+ -return_url [::xo::cc url] \
+ -src /resources/acs-subsite/Add16.gif]
}
- return $html
+ return ""
}
}
Index: openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl,v
diff -u -N -r1.86 -r1.87
--- openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 19 Jul 2007 09:36:15 -0000 1.86
+++ openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 19 Jul 2007 21:20:12 -0000 1.87
@@ -781,7 +781,11 @@
if {$form eq ""} {
my msg "no form found in page [$page_template name]"
} else {
- $form setAttribute action [$package_id pretty_link [my name]]?m=edit method POST
+ if {[my exists_query_parameter "return_url"]} {
+ set return_url [my query_parameter "return_url"]
+ }
+ set url [export_vars -base [$package_id pretty_link [my name]] {{m "edit"} return_url}]
+ $form setAttribute action $url method POST
set oldCSSClass [expr {[$form hasAttribute class] ? [$form getAttribute class] : ""}]
$form setAttribute class [string trim "$oldCSSClass margin-form"]
}
@@ -1012,10 +1016,20 @@
-parent_id [my parent_id] \
-publish_status "production" \
-page_template [my item_id]]
+
+ # set some default values if they are provided
+ foreach key {name title page_order last_page_id} {
+ if {[$package_id exists_query_parameter $key]} {
+ $f set $key [$package_id query_parameter $key]
+ }
+ }
$f set __title_prefix [my title]
$f save_new
+ if {[my exists_query_parameter "return_url"]} {
+ set return_url [my query_parameter "return_url"]
+ }
$package_id returnredirect \
- [my query_parameter "return_url" [$package_id pretty_link [$f name]]?m=edit]
+ [export_vars -base [$package_id pretty_link [$f name]] {{m edit} return_url}]
}
Index: openacs-4/packages/xowiki/www/oacs-view.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/oacs-view.adp,v
diff -u -N -r1.38 -r1.39
--- openacs-4/packages/xowiki/www/oacs-view.adp 25 Jun 2007 12:18:57 -0000 1.38
+++ openacs-4/packages/xowiki/www/oacs-view.adp 19 Jul 2007 21:20:13 -0000 1.39
@@ -1,4 +1,4 @@
-
+
@title;noquote@
@context;noquote@
@@ -56,7 +56,7 @@
#xowiki.edit# ·
#xotcl-core.revisions# ·
-
#xowiki.new# ·
+
#xowiki.new_page# ·
#xowiki.delete# ·
#xowiki.admin# ·
#xowiki.notifications#
Index: openacs-4/packages/xowiki/www/oacs-view2.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/oacs-view2.adp,v
diff -u -N -r1.17 -r1.18
--- openacs-4/packages/xowiki/www/oacs-view2.adp 25 Jun 2007 12:18:57 -0000 1.17
+++ openacs-4/packages/xowiki/www/oacs-view2.adp 19 Jul 2007 21:20:13 -0000 1.18
@@ -1,4 +1,4 @@
-
+
@title;noquote@
@context;noquote@
@@ -58,7 +58,7 @@
#xowiki.edit# ·
#xotcl-core.revisions# ·
-
#xowiki.new# ·
+
#xowiki.new_page# ·
#xowiki.delete# ·
#xowiki.admin# ·
#xowiki.notifications#
Index: openacs-4/packages/xowiki/www/oacs-view3.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/oacs-view3.adp,v
diff -u -N -r1.12 -r1.13
--- openacs-4/packages/xowiki/www/oacs-view3.adp 25 Jun 2007 12:18:57 -0000 1.12
+++ openacs-4/packages/xowiki/www/oacs-view3.adp 19 Jul 2007 21:20:13 -0000 1.13
@@ -1,4 +1,4 @@
-
+
@title;noquote@
@context;noquote@
@@ -58,7 +58,7 @@
#xowiki.edit# ·
#xotcl-core.revisions# ·
-
#xowiki.new# ·
+
#xowiki.new_page# ·
#xowiki.delete# ·
#xowiki.admin# ·
#xowiki.notifications#
Index: openacs-4/packages/xowiki/www/view-default.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/view-default.adp,v
diff -u -N -r1.34 -r1.35
--- openacs-4/packages/xowiki/www/view-default.adp 25 Jun 2007 12:18:57 -0000 1.34
+++ openacs-4/packages/xowiki/www/view-default.adp 19 Jul 2007 21:20:13 -0000 1.35
@@ -1,4 +1,4 @@
-
+
@title;noquote@
@context;noquote@
@@ -50,7 +50,7 @@