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 "\"$alt\"" } @@ -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 "\"$alt\"" -# } -# 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 "\"$alt\"" + 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 @@
#xowiki.edit# · #xotcl-core.revisions# · - #xowiki.new# · + #xowiki.new_page# · #xowiki.delete# · #xowiki.admin# · #xowiki.notifications# Index: openacs-4/packages/xowiki/www/view-links.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/view-links.adp,v diff -u -N -r1.24 -r1.25 --- openacs-4/packages/xowiki/www/view-links.adp 25 Jun 2007 12:18:57 -0000 1.24 +++ openacs-4/packages/xowiki/www/view-links.adp 19 Jul 2007 21:20:13 -0000 1.25 @@ -1,11 +1,11 @@ - +
#xowiki.edit# · #xotcl-core.revisions# · - #xowiki.new# · + #xowiki.new_page# · #xowiki.delete# · #xowiki.admin# · #xowiki.notifications# Index: openacs-4/packages/xowiki/www/view-page.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/view-page.adp,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/xowiki/www/view-page.adp 28 Jan 2007 23:03:26 -0000 1.2 +++ openacs-4/packages/xowiki/www/view-page.adp 19 Jul 2007 21:20:13 -0000 1.3 @@ -6,7 +6,7 @@
#xowiki.edit# · #xotcl-core.revisions# · - #xowiki.new# · + #xowiki.new_page# · #xowiki.delete# · #xowiki.admin# · #xowiki.notifications# Index: openacs-4/packages/xowiki/www/view-plain.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/view-plain.adp,v diff -u -N -r1.20 -r1.21 --- openacs-4/packages/xowiki/www/view-plain.adp 25 Jun 2007 12:18:57 -0000 1.20 +++ openacs-4/packages/xowiki/www/view-plain.adp 19 Jul 2007 21:20:13 -0000 1.21 @@ -1,4 +1,4 @@ - +